v1.9.114.3
|
@ -13,6 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
extra_yin:['shen_liubei','shen_luxun'],
|
||||
extra_lei:['shen_ganning','shen_zhangliao'],
|
||||
extra_key:['key_kagari','key_shiki','db_key_hina'],
|
||||
extra_decade:['shen_jiangwei'],
|
||||
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji'],
|
||||
extra_mobilezhi:['shen_guojia','shen_xunyu'],
|
||||
extra_mobilexin:['shen_taishici','shen_sunce'],
|
||||
|
@ -20,6 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
shen_jiangwei:['male','shen',4,['jiufa','tianren','pingxiang'],['shen']],
|
||||
key_kagari:['female','shen',3,['kagari_zongsi'],['key']],
|
||||
key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']],
|
||||
db_key_hina:['female','key',3,['hina_shenshi','hina_xingzhi'],['doublegroup:key:shen']],
|
||||
|
@ -63,6 +65,193 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
jiufa:{
|
||||
audio:2,
|
||||
trigger:{player:'useCardAfter'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
return event.jiufa_counted&&player.getStorage('jiufa').length>=9;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.unmarkSkill('jiufa');
|
||||
event.cards=get.cards(9);
|
||||
event.cards.sort(function(a,b){
|
||||
return get.number(b)-get.number(a);
|
||||
})
|
||||
game.cardsGotoOrdering(event.cards);
|
||||
event.videoId=lib.status.videoId++;
|
||||
game.broadcastAll(function(player,id,cards){
|
||||
var str;
|
||||
if(player==game.me&&!_status.auto){
|
||||
str='九伐:选择任意张点数相同的牌';
|
||||
}
|
||||
else{
|
||||
str='九伐';
|
||||
}
|
||||
var dialog=ui.create.dialog(str,cards);
|
||||
dialog.videoId=id;
|
||||
},player,event.videoId,event.cards);
|
||||
event.time=get.utc();
|
||||
game.addVideo('showCards',player,['涉猎',get.cardsInfo(event.cards)]);
|
||||
game.addVideo('delay',null,2);
|
||||
"step 1"
|
||||
var next=player.chooseButton([1,9],true);
|
||||
next.set('dialog',event.videoId);
|
||||
next.set('filterButton',function(button){
|
||||
if(!ui.selected.buttons.length) return true;
|
||||
return get.number(ui.selected.buttons[0].link)==get.number(button.link);
|
||||
});
|
||||
next.set('ai',function(button){
|
||||
return get.value(button.link,_status.event.player)*_status.event.getParent().cards.filter(function(i){
|
||||
return get.number(i)==get.number(button.link);
|
||||
}).length;
|
||||
});
|
||||
"step 2"
|
||||
if(result.bool&&result.links){
|
||||
event.cards2=result.links;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
var time=1000-(get.utc()-event.time);
|
||||
if(time>0){
|
||||
game.delay(0,time);
|
||||
}
|
||||
"step 3"
|
||||
game.broadcastAll('closeDialog',event.videoId);
|
||||
var cards2=event.cards2;
|
||||
player.gain(cards2,'log','gain2');
|
||||
},
|
||||
marktext:'⑨',
|
||||
intro:{
|
||||
content:'已记录牌名:$',
|
||||
onunmark:true,
|
||||
},
|
||||
group:'jiufa_count',
|
||||
subSkill:{
|
||||
count:{
|
||||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
popup:false,
|
||||
firstDo:true,
|
||||
filter:function(event,player){
|
||||
return !player.getStorage('jiufa').contains(event.card.name);
|
||||
},
|
||||
content:function(){
|
||||
trigger.jiufa_counted=true;
|
||||
player.markAuto('jiufa',[trigger.card.name]);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
tianren:{
|
||||
audio:2,
|
||||
trigger:{global:['loseAfter','cardsDiscardAfter']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(event.name=='lose'){
|
||||
if(event.position!=ui.discardPile) return false;
|
||||
}
|
||||
else{
|
||||
var evt=event.getParent();
|
||||
if(evt.relatedEvent&&evt.relatedEvent.name=='useCard') return false;
|
||||
}
|
||||
for(var i of event.cards){
|
||||
var owner=false;
|
||||
if(event.hs&&event.hs.contains(i)) owner=event.player;
|
||||
var type=get.type(i,null,owner);
|
||||
if(type=='basic'||type=='trick') return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
var num=0;
|
||||
for(var i of trigger.cards){
|
||||
var owner=false;
|
||||
if(trigger.hs&&trigger.hs.contains(i)) owner=trigger.player;
|
||||
var type=get.type(i,null,owner);
|
||||
if(type=='basic'||type=='trick') num++;
|
||||
}
|
||||
player.addMark('tianren',num);
|
||||
},
|
||||
group:'tianren_maxHp',
|
||||
intro:{content:'mark'},
|
||||
subSkill:{
|
||||
maxHp:{
|
||||
trigger:{player:['tianrenAfter','gainMaxHpAfter','loseMaxHpAfter']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.countMark('tianren')>=player.maxHp;
|
||||
},
|
||||
content:function(){
|
||||
player.removeMark('tianren',player.maxHp);
|
||||
player.gainMaxHp();
|
||||
player.draw(2);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
pingxiang:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'ice',
|
||||
filter:function(event,player){
|
||||
return player.maxHp>9;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('pingxiang');
|
||||
player.loseMaxHp(9);
|
||||
event.num=0;
|
||||
'step 1'
|
||||
event.num++;
|
||||
player.chooseUseTarget({
|
||||
name:'sha',
|
||||
nature:'fire',
|
||||
isCard:true,
|
||||
},'请选择火【杀】的目标('+(event.num==9?'⑨':event.num)+'/9)',false);
|
||||
'step 2'
|
||||
if(result.bool&&event.num<9) event.goto(1);
|
||||
else{
|
||||
player.removeSkill('jiufa');
|
||||
player.addSkill('pingxiang_effect');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:function(){
|
||||
return get.order({
|
||||
name:'sha',
|
||||
nature:'fire',
|
||||
isCard:true,
|
||||
});
|
||||
},
|
||||
result:{
|
||||
player:function(player){
|
||||
if(player.hasValueTarget({
|
||||
name:'sha',
|
||||
nature:'fire',
|
||||
isCard:true,
|
||||
})) return 1;
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
effect:{
|
||||
marktext:'襄',
|
||||
intro:{content:'手牌上限基数改为体力上限'},
|
||||
mod:{
|
||||
maxHandcardBase:function(player){
|
||||
return player.maxHp;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
hina_shenshi:{
|
||||
groupSkill:true,
|
||||
trigger:{player:['phaseUseBegin','phaseUseEnd']},
|
||||
|
@ -4917,6 +5106,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
scfuhai_info:'锁定技。①当你使用牌指定目标后,若目标角色有“平定”标记,则其不可响应此牌。若你本回合内以此法获得的牌数小于2,则你摸一张牌。②拥有“平定”标记的角色死亡时,你增加X点体力上限并摸X张牌。(X为其拥有的“平定”标记数)。',
|
||||
pinghe:'冯河',
|
||||
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时,若你有牌且你的体力上限大于1,则你防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
|
||||
shen_jiangwei:'神姜维',
|
||||
jiufa:'九伐',
|
||||
jiufa_info:'①当你声明使用牌时,你记录此牌的牌名。②当你使用牌结算结束后,若你的〖九伐〗记录中包含至少⑨种不同的牌名,则你可以展示牌堆顶的⑨张牌,选择并获得其中任意张点数相同的牌,清除所有的记录,将其余牌置入弃牌堆。',
|
||||
tianren:'天任',
|
||||
tianren_info:'锁定技。①当有一张基本牌或普通锦囊牌不因使用而进入弃牌堆后,你获得一枚“天任”标记。②当你获得“天任”标记或体力上限变化后,若你的“天任”数不小于X,则你移去X枚“天任”,加1点体力上限并摸两张牌(X为你的体力上限)。',
|
||||
pingxiang:'平襄',
|
||||
pingxiang_info:'限定技。出牌阶段,若你的体力上限大于⑨,则你可减⑨点体力上限,视为使用至多⑨张火【杀】,然后失去〖九伐〗,并将手牌上限基数改为体力上限直到游戏结束。',
|
||||
|
||||
key_kagari:'篝',
|
||||
kagari_zongsi:'纵丝',
|
||||
|
@ -4944,6 +5140,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
extra_mobilezhi:'始计篇·智',
|
||||
extra_mobilexin:'始计篇·信',
|
||||
extra_offline:'神话再临·线下',
|
||||
extra_decade:'十周年服神将',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobile_mougongtong:['sp_yangwan','liucheng'],
|
||||
mobile_sunben:["re_sunben"],
|
||||
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
|
||||
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
|
||||
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong","re_caiwenji"],
|
||||
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai","re_gaoshun"],
|
||||
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui"],
|
||||
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
|
||||
|
@ -27,6 +27,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
re_caiwenji:['female','qun',3,['rebeige','duanchang']],
|
||||
sp_jianggan:['male','wei',3,['spdaoshu','spdaizui']],
|
||||
peixiu:['male','qun',3,['xingtu','juezhi']],
|
||||
re_gaoshun:['male','qun',4,['rexianzhen','rejinjiu']],
|
||||
|
@ -2739,11 +2740,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.getEquip(1);
|
||||
},
|
||||
selectTarget:[0,1],
|
||||
//filterTarget:function(card,player,target){
|
||||
// return target!=player&&target.getEquip(1);
|
||||
//},
|
||||
//selectTarget:[0,1],
|
||||
content:function(){
|
||||
var card=get.cardPile2(function(card){
|
||||
return get.subtype(card)=='equip1';
|
||||
});
|
||||
if(card) player.gain(card,'gain2');
|
||||
else{
|
||||
var targets=game.filterPlayer(function(current){
|
||||
return current.getEquip(1);
|
||||
});
|
||||
if(targets.length){
|
||||
var target=targets.randomGet();
|
||||
player.gain(target.getEquip(1),target,'give');
|
||||
}
|
||||
}
|
||||
},
|
||||
content_old:function(){
|
||||
'step 0'
|
||||
if(!target){
|
||||
var card=get.cardPile2(function(card){
|
||||
|
@ -15790,7 +15806,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_bianfuren:['ol_bianfuren','sp_bianfuren'],
|
||||
wangshuang:['wangshuang','sp_wangshuang'],
|
||||
huaman:['huaman','sp_huaman'],
|
||||
gaolan:['gaolan','sp_gaolan'],
|
||||
gaolan:['dc_gaolan','gaolan','sp_gaolan'],
|
||||
cuiyan:['sp_cuiyan','cuiyan'],
|
||||
wujing:['tw_wujing','wujing'],
|
||||
},
|
||||
|
@ -16441,7 +16457,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinjiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌并防止此伤害。',
|
||||
xin_caozhen:'手杀曹真',
|
||||
discretesidi:'司敌',
|
||||
discretesidi_info:'①当你使用的不为延时锦囊牌的牌结算结束后,你可选择一名R内不存在以a为第一序偶的二元序偶的其他角色a,并选择一名角色b,在关系R内建立二元序偶<a,b>(b对其他角色不可见)。②一名角色a使用不为延时锦囊牌的牌指定b为目标时,若(aRb)∧(此牌目标数为1)为真,则{你从R内移除<a,b>,且:若b为你,你摸一张牌;若b不为你,你可选择:⒈取消此牌的目标,然后若场上没有处于濒死状态的角色,则你对a造成1点伤害。⒉摸两张牌};否则{你清除R内以a为第一元素的二元序偶}。',
|
||||
discretesidi_info:'①当你使用的不为延时锦囊牌的牌结算结束后,你可选择一名R内不存在以a为第一序偶的二元序偶的其他角色a,并选择一名角色b,在关系R内建立二元序偶<a,b>(b对其他角色不可见)。②一名角色a使用不为延时锦囊牌的牌指定b为目标时,若(aRb)∧(此牌目标数为1)为真,则{你从R内移除<a,b>,且:若b为你,你摸一张牌;若b不为你,你可选择:⒈取消此牌的目标,然后若场上没有处于濒死状态的角色,则你对a造成1点伤害。⒉摸两张牌};否则{你清除R内以a为第一元素的二元序偶}。',
|
||||
sp_chendong:'陈武董袭',
|
||||
spyilie:'毅烈',
|
||||
spyilie_info:'出牌阶段开始时,你可选择:①本阶段内使用【杀】的次数上限+1。②本回合内使用【杀】被【闪】抵消时,摸一张牌。③背水:失去1点体力,然后依次执行上述所有选项。',
|
||||
|
@ -16492,7 +16508,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yiyong:'异勇',
|
||||
yiyong_info:'当你受到其他角色造成的渠道为【杀】的伤害后,若你的装备区内有武器牌,则你可以获得此【杀】对应的所有实体牌,然后将这些牌当做【杀】对伤害来源使用(无距离限制)。若其装备区内没有武器牌,则此伤害+1。',
|
||||
shanxie:'擅械',
|
||||
shanxie_info:'①出牌阶段限一次,你可选择一项:⒈从牌堆中获得一张武器牌。⒉获得一名其他角色装备区内的一张武器牌并使用,然后其将一张手牌当做【杀】对你使用。②当其他角色使用【闪】响应你使用的【杀】时,若此【闪】没有点数或点数不大于你攻击范围的二倍,则你令此【闪】无效。',
|
||||
shanxie_info:'①出牌阶段限一次,你可从牌堆中获得一张武器牌。若牌堆中没有武器牌,则你改为随机获得一名角色装备区内的一张武器牌。②当其他角色使用【闪】响应你使用的【杀】时,若此【闪】没有点数或点数不大于你攻击范围的二倍,则你令此【闪】无效。',
|
||||
shanxie_info_old:'①出牌阶段限一次,你可选择一项:⒈从牌堆中获得一张武器牌。⒉获得一名其他角色装备区内的一张武器牌并使用,然后其将一张手牌当做【杀】对你使用。②当其他角色使用【闪】响应你使用的【杀】时,若此【闪】没有点数或点数不大于你攻击范围的二倍,则你令此【闪】无效。',
|
||||
sunyi:'手杀孙翊',
|
||||
zaoli:'躁厉',
|
||||
zaoli_info:'锁定技。①你不能于回合内使用你手牌中不为本回合获得的牌。②当你使用或打出手牌时,你获得一个“厉”(至多4个)。③回合开始时,若你有“厉”,则你移去所有“厉”并弃置任意张牌,然后摸X+Y张牌。若X大于2,你失去1点体力(X为你移去的标记数,Y为你弃置的牌数)。',
|
||||
|
@ -16613,6 +16630,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
spdaoshu_info:'每轮限一次。一名敌方角色的出牌阶段开始时,若其有手牌,则你可以令其视为使用一张【酒】。其须声明一个基本牌的牌名,然后你判断其手牌区内是否有该牌名的牌。若你判断正确,则你随机获得其五张手牌,否则你不能响应其使用的牌直到回合结束。',
|
||||
spdaizui:'戴罪',
|
||||
spdaizui_info:'限定技。当你受到伤害值不小于体力值的伤害时,你可防止此伤害并将此伤害渠道对应的所有实体牌置于伤害来源的武将牌上,称为“释”。本回合结束时,其获得所有“释”。',
|
||||
re_caiwenji:'手杀蔡琰',
|
||||
|
||||
mobile_standard:'手杀异构·标准包',
|
||||
mobile_shenhua:'手杀异构·神话再临',
|
||||
|
|
172
character/old.js
|
@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_yijiang2:["old_zhonghui","madai"],
|
||||
old_yijiang3:["liru","old_zhuran","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||
old_yijiang5:["old_caoxiu","old_zhuzhi"],
|
||||
old_yijiang67:["ol_zhangrang","ol_liuyu"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","old_wangyun"],
|
||||
old_yingbian:['junk_simayi'],
|
||||
|
@ -55,7 +55,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_lingtong:['male','wu',4,['oldxuanfeng']],
|
||||
old_caoxiu:['male','wei',4,['taoxi']],
|
||||
old_caozhen:['male','wei',4,['sidi']],
|
||||
old_quancong:['male','wu',4,['zhenshan']],
|
||||
old_lingju:['female','qun',3,['jieyuan','fenxin_old']],
|
||||
old_maliang:['male','shu',3,['xiemu','naman']],
|
||||
old_chenqun:['male','wei',3,['dingpin','oldfaen']],
|
||||
|
@ -492,169 +491,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
expose:0.2
|
||||
}
|
||||
},
|
||||
zhenshan:{
|
||||
trigger:{player:'chooseToRespondBegin'},
|
||||
filter:function(event,player){
|
||||
if(event.responded) return false;
|
||||
if(!event.filterCard({name:'shan'},player,event)&&!event.filterCard({name:'sha'},player,event)) return false;
|
||||
if(player.hasSkill('zhenshan2')) return false;
|
||||
var nh=player.countCards('h');
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')<nh;
|
||||
});
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt('zhenshan'),function(card,player,target){
|
||||
return target.countCards('h')<player.countCards('h');
|
||||
}).set('ai',function(target){
|
||||
return get.attitude(player,target)
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
trigger.untrigger();
|
||||
trigger.responded=true;
|
||||
if(trigger.filterCard({name:'shan',isCard:true})){
|
||||
trigger.result={bool:true,card:{name:'shan',isCard:true}}
|
||||
}
|
||||
else{
|
||||
trigger.result={bool:true,card:{name:'sha',isCard:true}}
|
||||
}
|
||||
player.logSkill('zhenshan',result.targets);
|
||||
player.addTempSkill('zhenshan2');
|
||||
player.swapHandcards(result.targets[0]);
|
||||
}
|
||||
},
|
||||
group:'zhenshan_use'
|
||||
},
|
||||
zhenshan2:{},
|
||||
zhenshan_use:{
|
||||
enable:'chooseToUse',
|
||||
filter:function(event,player){
|
||||
if(player.hasSkill('zhenshan2')) return false;
|
||||
var nh=player.countCards('h');
|
||||
if(!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')<nh;
|
||||
})){
|
||||
return false;
|
||||
}
|
||||
return event.filterCard({name:'sha'},player,event)||
|
||||
event.filterCard({name:'jiu'},player,event)||
|
||||
event.filterCard({name:'tao'},player,event)||
|
||||
event.filterCard({name:'shan'},player,event);
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=[];
|
||||
if(event.filterCard({name:'sha'},player,event)){
|
||||
list.push(['基本','','sha']);
|
||||
list.push(['基本','','sha','fire']);
|
||||
list.push(['基本','','sha','thunder']);
|
||||
list.push(['基本','','sha','ice']);
|
||||
}
|
||||
if(event.filterCard({name:'tao'},player,event)){
|
||||
list.push(['基本','','tao']);
|
||||
}
|
||||
if(event.filterCard({name:'jiu'},player,event)){
|
||||
list.push(['基本','','jiu']);
|
||||
}
|
||||
if(event.filterCard({name:'shan'},player,event)){
|
||||
list.push(['基本','','shan']);
|
||||
}
|
||||
return ui.create.dialog('振赡',[list,'vcard'],'hidden');
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
var card={name:button.link[2],nature:button.link[3]};
|
||||
if(card.name=='jiu') return 0;
|
||||
if(game.hasPlayer(function(current){
|
||||
return player.canUse(card,current)&&get.effect(current,card,player,player)>0;
|
||||
})){
|
||||
if(card.name=='sha'){
|
||||
if(card.nature=='fire') return 2.95;
|
||||
else if(card.nature=='fire') return 2.92;
|
||||
else return 2.9;
|
||||
}
|
||||
else if(card.name=='tao'||card.name=='shan'){
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
filterCard:function(){return false},
|
||||
viewAs:{name:links[0][2],nature:links[0][3],isCard:true},
|
||||
selectCard:-1,
|
||||
popname:true,
|
||||
log:false,
|
||||
precontent:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('选择交换手牌的目标',function(card,player,target){
|
||||
return target.countCards('h')<player.countCards('h')
|
||||
},true).ai=function(target){
|
||||
return get.attitude(player,target);
|
||||
}
|
||||
player.addTempSkill('zhenshan2');
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('zhenshan',result.targets);
|
||||
player.swapHandcards(result.targets[0]);
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '选择'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'的目标';
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:function(){
|
||||
var player=_status.event.player;
|
||||
var event=_status.event;
|
||||
var nh=player.countCards('h');
|
||||
if(game.hasPlayer(function(current){
|
||||
return get.attitude(player,current)>0&¤t.countCards('h')<nh;
|
||||
})){
|
||||
if(event.type=='dying'){
|
||||
if(event.filterCard({name:'tao'},player,event)){
|
||||
return 0.5;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(event.filterCard({name:'tao'},player,event)||event.filterCard({name:'shan'},player,event)){
|
||||
return 4;
|
||||
}
|
||||
if(event.filterCard({name:'sha'},player,event)){
|
||||
return 2.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
save:true,
|
||||
respondSha:true,
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(player.hasSkill('zhenshan2')) return false;
|
||||
var nh=player.countCards('h');
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')<nh;
|
||||
});
|
||||
},
|
||||
result:{
|
||||
player:function(player){
|
||||
if(_status.event.type=='dying'){
|
||||
return get.attitude(player,_status.event.dying);
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
oldxuanfeng:{
|
||||
audio:'xuanfeng',
|
||||
trigger:{player:'loseAfter'},
|
||||
|
@ -729,7 +565,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_zhuran:'旧朱然',
|
||||
old_caoxiu:'旧曹休',
|
||||
old_caozhen:'旧曹真',
|
||||
old_quancong:'旧全琮',
|
||||
old_lingju:'旧灵雎',
|
||||
old_maliang:'旧马良',
|
||||
old_chenqun:'旧陈群',
|
||||
|
@ -773,11 +608,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
oldanxu_info:'出牌阶段限一次,你可以选择手牌数不相等的两名其他角色,令其中手牌少的角色获得手牌多的角色的一张手牌并展示之,然后若此牌不为黑桃,你摸一张牌。',
|
||||
oldfaen:'法恩',
|
||||
oldfaen_info:'当一名角色翻面或横置后,你可以令其摸一张牌。',
|
||||
zhenshan:'振赡',
|
||||
zhenshan_use:'振赡',
|
||||
zhenshan_use_backup:'振赡',
|
||||
zhenshan_info:'每名角色的回合限一次,每当你需要使用或打出一张基本牌时,你可以与一名手牌数少于你的角色交换手牌。若如此做,视为你使用或打出了此牌',
|
||||
zhenshan_use_info:'每名角色的回合限一次,每当你需要使用或打出一张基本牌时,你可以与一名手牌数少于你的角色交换手牌。若如此做,视为你使用或打出了此牌',
|
||||
oldxuanfeng:'旋风',
|
||||
oldxuanfeng_info:'每当你失去一次装备区里的牌时,你可以执行下列两项中的一项:1.视为对任意一名其他角色使用一张【杀】(此【杀】不计入每回合的使用限制);2.对与你距离1以内的一名其他角色造成一点伤害',
|
||||
ol_yuanshu:'旧袁术',
|
||||
|
|
|
@ -266,6 +266,8 @@ window.noname_character_rank={
|
|||
'sunhanhua',
|
||||
're_pangdegong',
|
||||
're_fengfangnv',
|
||||
'caomao',
|
||||
'guanning',
|
||||
'key_misuzu',
|
||||
'key_sunohara',
|
||||
'key_umi',
|
||||
|
@ -505,6 +507,8 @@ window.noname_character_rank={
|
|||
'sp_jianggan',
|
||||
'tw_caozhao',
|
||||
'tw_guohuai',
|
||||
'shen_jiangwei',
|
||||
'dc_luotong',
|
||||
],
|
||||
bp:[
|
||||
'chess_diaochan',
|
||||
|
@ -768,6 +772,7 @@ window.noname_character_rank={
|
|||
'tw_wangchang',
|
||||
'jin_jiachong',
|
||||
'licaiwei',
|
||||
'tengyin',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -990,6 +995,8 @@ window.noname_character_rank={
|
|||
'xin_wuguotai',
|
||||
'dc_xushu',
|
||||
'dc_jiben',
|
||||
'ol_caiwenji',
|
||||
'dc_gaolan',
|
||||
],
|
||||
bm:[
|
||||
'diy_xizhenxihong',
|
||||
|
@ -1148,6 +1155,7 @@ window.noname_character_rank={
|
|||
'haomeng',
|
||||
'mamidi',
|
||||
'tw_wujing',
|
||||
'dc_zhuling',
|
||||
],
|
||||
c:[
|
||||
'xiahoudun',
|
||||
|
@ -1331,6 +1339,8 @@ window.noname_character_rank={
|
|||
'tw_gexuan',
|
||||
'fengfangnv',
|
||||
'zhangmancheng',
|
||||
'guanning',
|
||||
'shen_jiangwei',
|
||||
'key_tomoya',
|
||||
'key_masato',
|
||||
'key_shiorimiyuki',
|
||||
|
@ -1526,6 +1536,7 @@ window.noname_character_rank={
|
|||
'tw_liuhong',
|
||||
'tw_caozhao',
|
||||
'wufan',
|
||||
'dc_luotong',
|
||||
'key_kano',
|
||||
'key_haruko',
|
||||
'key_akiko',
|
||||
|
@ -1906,7 +1917,11 @@ window.noname_character_rank={
|
|||
'tw_wangcan',
|
||||
'tw_wangchang',
|
||||
'licaiwei',
|
||||
'jin_jiachongp',
|
||||
'jin_jiachong',
|
||||
'ol_caiwenji',
|
||||
'tengyin',
|
||||
'dc_gaolan',
|
||||
'caomao',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
|
|
@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
|
||||
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
||||
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','ol_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu','ol_lusu'],
|
||||
refresh_shan:['ol_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
|
||||
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
|
||||
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu'],
|
||||
refresh_yijiang2:['re_madai','re_wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
|
||||
|
@ -121,7 +121,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_sunjian:['male','wu','4/5',['gzyinghun','wulie']],
|
||||
re_caopi:['male','wei',3,['rexingshang','refangzhu','songwei'],['zhu']],
|
||||
ol_jiangwei:['male','shu',4,['oltiaoxin','olzhiji']],
|
||||
re_caiwenji:['female','qun',3,['rebeige','duanchang']],
|
||||
ol_caiwenji:['female','qun',3,['olbeige','duanchang']],
|
||||
ol_liushan:['male','shu',3,['xiangle','olfangquan','olruoyu'],['zhu']],
|
||||
re_zhangzhang:['male','wu',3,['rezhijian','guzheng']],
|
||||
|
||||
|
@ -143,6 +143,101 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_xushu:['zhaoyun','sp_zhugeliang'],
|
||||
},
|
||||
skill:{
|
||||
//OL界蔡文姬
|
||||
olbeige:{
|
||||
audio:'beige',
|
||||
audioname:['ol_caiwenji'],
|
||||
trigger:{global:'damageEnd'},
|
||||
logTarget:'player',
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&event.player.isIn()&&player.countCards('he')>0;
|
||||
},
|
||||
check:function(event,player){
|
||||
if(event.player.hasSkill('xinleiji')) return get.attitude(player,event.player)>0;
|
||||
return true;
|
||||
},
|
||||
prompt2:'令其进行判定,然后你可根据判定结果,弃置一张牌并令其执行对应效果。',
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.target=trigger.player;
|
||||
event.source=trigger.source;
|
||||
trigger.player.judge();
|
||||
'step 1'
|
||||
event.judgeResult=get.copy(result);
|
||||
var str='是否弃置一张牌',strt=get.translation(target),strs=get.translation(source),goon=0;
|
||||
switch(result.suit){
|
||||
case 'heart':
|
||||
if(target.isIn()&&target.isDamaged()){
|
||||
str+=(',令'+strt+'回复1点体力');
|
||||
goon=get.recoverEffect(target,player,player);
|
||||
}
|
||||
break;
|
||||
case 'diamond':
|
||||
if(target.isIn()){
|
||||
str+=(',令'+strt+'摸两张牌');
|
||||
goon=get.effect(target,{name:'wuzhong'},player,player);
|
||||
}
|
||||
break;
|
||||
case 'spade':
|
||||
if(source&&source.isIn()){
|
||||
str+=(',令'+strs+'翻'+(source.isTurnedOver()?'回正':'')+'面');
|
||||
goon=get.attitude(player,source)*(source.isTurnedOver()?2:-2);
|
||||
}
|
||||
break;
|
||||
case 'club':
|
||||
if(source&&source.isIn()){
|
||||
str+=(',令'+strs+'弃置两张牌');
|
||||
var cards=source.getCards('he').sort(function(a,b){
|
||||
return get.value(a,source)-get.value(b,source);
|
||||
}).slice(0,2);
|
||||
for(var i of cards) goon+=get.value(i,source);
|
||||
goon*=(-get.sgn(get.attitude(player,source)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
str+='?';
|
||||
var str2=('若弃置点数为'+get.strNumber(result.number)+'的牌则收回自己弃置的牌');
|
||||
if(get.position(result.card,true)=='d'){
|
||||
str2+=(';若弃置花色为'+get.translation(result.suit)+'的牌则获得'+get.translation(result.card));
|
||||
}
|
||||
player.chooseToDiscard('he',str,str2).set('goon',goon).set('ai',function(card){
|
||||
var goon=_status.event.goon;
|
||||
var player=_status.event.player;
|
||||
var result=_status.event.getParent().judgeResult;
|
||||
var eff=Math.min(7,goon);
|
||||
if(eff<=0) return 0;
|
||||
if(get.suit(card,player)==result.suit) eff+=get.value(result.card,player);
|
||||
if(get.number(card,player)==result.number) return eff;
|
||||
return eff-get.value(card);
|
||||
});
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
event.card=result.cards[0];
|
||||
switch(event.judgeResult.suit){
|
||||
case 'heart':
|
||||
if(target.isIn()&&target.isDamaged()) target.recover();
|
||||
break;
|
||||
case 'diamond':
|
||||
if(target.isIn()) target.draw(2);
|
||||
break;
|
||||
case 'spade':
|
||||
if(source&&source.isIn()) source.turnOver();
|
||||
player.addExpose(0.1);
|
||||
break;
|
||||
case 'club':
|
||||
if(source&&source.isIn()&&source.countCards('he')>0) source.chooseToDiscard(2,'he',true);
|
||||
player.addExpose(0.1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
var gains=[];
|
||||
if(get.position(event.judgeResult.card,true)=='d'&&get.suit(card,player)==event.judgeResult.suit) gains.push(event.judgeResult.card);
|
||||
if(get.position(card,true)=='d'&&get.number(card,player)==event.judgeResult.number) gains.push(card);
|
||||
if(gains.length) player.gain(gains,'gain2');
|
||||
},
|
||||
},
|
||||
//OL界张郃
|
||||
reqiaobian:{
|
||||
audio:2,
|
||||
|
@ -159,8 +254,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.addMark('reqiaobian',2);
|
||||
game.delayx();
|
||||
},
|
||||
mark:true,
|
||||
marktext:'变',
|
||||
intro:{
|
||||
name2:'变',
|
||||
content:function(storage,player){
|
||||
var str='共有'+(storage||0)+'个标记';
|
||||
if(player.storage.reqiaobian_jieshu){
|
||||
|
@ -1508,8 +1604,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
if(list.length&&game.hasPlayer((current)=>(current!=player))){
|
||||
var next=player.chooseButton(['是否将一张锦囊牌交给一名其他角色?',list]).set('ai',function(button){
|
||||
return get.value(button.link,'raw');
|
||||
});
|
||||
if(_status.event.goon) return Math.max(0.1,get.value(button.link,'raw'));
|
||||
return 0;
|
||||
}).set('goon',game.hasPlayer(function(current){
|
||||
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
|
||||
}));
|
||||
if(!result.moved[1].length) next.set('forced',true);
|
||||
}
|
||||
else event.finish();
|
||||
|
@ -1521,7 +1620,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.card=card;
|
||||
player.chooseTarget(lib.filter.notMe,true,'令一名其他角色获得'+get.translation(card)).set('card',card).set('ai',function(target){
|
||||
var card=_status.event.card,player=_status.event.player;
|
||||
var eff=get.value(card,target)*get.attitude(player,target);
|
||||
var eff=Math.max(0.1,get.value(card,target))*get.attitude(player,target);
|
||||
if(target.hasSkill('nogain')) eff/=10;
|
||||
return eff;
|
||||
});
|
||||
|
@ -8464,11 +8563,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function (){
|
||||
"step 0"
|
||||
target.chooseCard(true).ai=function(card){
|
||||
if(!target.countCards('h')){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
else target.chooseCard(true,'h').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
if((player.hasShan()||player.hp<3)&&get.color(card)=='black') return 0.5;
|
||||
return Math.max(1,20-get.value(card));
|
||||
};
|
||||
});
|
||||
"step 1"
|
||||
target.showCards(result.cards);
|
||||
event.card2=result.cards[0];
|
||||
|
@ -11515,7 +11618,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rezaiqi:'再起',
|
||||
rezaiqi_info:'结束阶段开始时,你可以令至多X名角色选择一项:1.摸一张牌,2.令你回复1点体力(X为本回合进入弃牌堆的红色牌数)',
|
||||
ol_jiangwei:'界姜维',
|
||||
re_caiwenji:'界蔡琰',
|
||||
ol_caiwenji:'界蔡琰',
|
||||
re_baosanniang:'手杀鲍三娘',
|
||||
retuntian:'屯田',
|
||||
rebeige:'悲歌',
|
||||
|
@ -11526,6 +11629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_zhangzhang:'界张昭张纮',
|
||||
rehunzi:'魂姿',
|
||||
rehunzi_info:'觉醒技,准备阶段,若你的体力值不大于2,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
|
||||
rezhijian:'直谏',
|
||||
rezhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。当你使用装备牌时,你可以摸一张牌。',
|
||||
refangquan:'放权',
|
||||
refangquan_info:'你可跳过你的出牌阶段,若如此做,你本回合的手牌上限为你的体力上限,且回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
|
||||
|
@ -11819,7 +11923,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinbuyi_info:'一名角色进入濒死状态时,你可展示其一张手牌。若此牌不为基本牌,则其弃置此牌并回复1点体力。若其以此法弃置的牌移动前为其的唯一一张手牌,则其摸一张牌。',
|
||||
decadexianzhen:'陷阵',
|
||||
decadexianzhen2:'陷阵',
|
||||
decadexianzhen_info:'每回合限一次。出牌阶段,你可以和一名其他角色拼点。若你赢:本回合你无视该角色的防具,且对其使用牌没有次数和距离限制,且本回合使用【杀】或普通锦囊牌选择唯一目标后,可以令其也成为此牌的目标,且本回合对其使用牌造成伤害时,此伤害+1(每种牌名每回合限一次);若你没赢:你本回合内不能使用【杀】,且【杀】不计入手牌上限。',
|
||||
decadexianzhen_info:'每回合限一次。出牌阶段,你可以和一名其他角色拼点。若你赢:本回合你无视该角色的防具,且对其使用牌没有次数和距离限制,且本回合对其使用牌造成伤害时,此伤害+1(每种牌名每回合限一次);若你没赢:你本回合内不能使用【杀】,且【杀】不计入手牌上限。',
|
||||
decadejinjiu:'禁酒',
|
||||
decadejinjiu_info:'锁定技。你的【酒】的牌名均视为【杀】且点数视为K;你的回合内,其他角色不能使用【酒】。',
|
||||
dc_xushu:'界徐庶',
|
||||
|
@ -11832,6 +11936,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_zhanghe:'界张郃',
|
||||
reqiaobian:'巧变',
|
||||
reqiaobian_info:'①游戏开始时,你获得两枚“变”。②判定阶段开始时,你可弃置一张牌或一枚“变”并跳过此阶段。③摸牌阶段开始时,你可弃置一张牌或一枚“变”并跳过此阶段,然后可以获得至多两名其他角色的各一张手牌。④出牌阶段开始时,你可弃置一张牌或一枚“变”并跳过此阶段,然后你可以移动场上的一张牌。⑤弃牌阶段开始时,你可弃置一张牌或一枚“变”并跳过此阶段。⑥结束阶段,若你的〖巧变⑥〗记录中不包含你的手牌数,则你获得一枚“变”并记录你的手牌数。',
|
||||
olbeige:'悲歌',
|
||||
olbeige_info:'当有角色受到渠道为【杀】的伤害后,若你有牌,你可令其进行判定。然后你可弃置一张牌,根据判定结果执行以下的一个选项:♥,其回复1点体力;♦,其摸两张牌;♣,伤害来源弃置两张牌️;♠,伤害来源将武将牌翻面。若你弃置的牌与判定结果:点数相同,则你获得你弃置的牌;花色相同,则你获得判定牌。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -7301,7 +7301,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunce:['re_sunben','re_sunce','sunce'],
|
||||
zhangzhang:['re_zhangzhang','zhangzhang'],
|
||||
zuoci:['re_zuoci','zuoci'],
|
||||
caiwenji:['re_caiwenji','caiwenji'],
|
||||
caiwenji:['ol_caiwenji','re_caiwenji','caiwenji'],
|
||||
xuyou:['sp_xuyou','xuyou'],
|
||||
guanqiujian:['guanqiujian','re_guanqiujian','old_guanqiujian'],
|
||||
chendao:['chendao','ns_chendao'],
|
||||
|
|
|
@ -11238,6 +11238,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool) player.addToExpansion(result.cards,player,'give').gaintag.add('yishe');
|
||||
},
|
||||
group:'yishe_recover',
|
||||
ai:{combo:'bushi'},
|
||||
subSkill:{
|
||||
recover:{
|
||||
audio:'yishe',
|
||||
|
@ -11292,7 +11293,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else event.finish();
|
||||
'step 3'
|
||||
if(event.count>0&&player.getExpansions('yishe').length) event.goto(1);
|
||||
}
|
||||
},
|
||||
ai:{combo:'yishe'},
|
||||
},
|
||||
midao:{
|
||||
audio:2,
|
||||
|
@ -11352,6 +11354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
ai:{
|
||||
combo:'yishe',
|
||||
rejudge:true,
|
||||
tag:{
|
||||
rejudge:0.6
|
||||
|
@ -12827,9 +12830,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
qiangwu3:{
|
||||
mod:{
|
||||
aiOrder:function(player,card,num){
|
||||
if(card.name=='sha'&&get.number(card)>player.storage.qiangwu) return num+2;
|
||||
},
|
||||
targetInRange:function(card,player){
|
||||
if(_status.currentPhase==player&&card.name=='sha'&&get.number(card)<player.storage.qiangwu) return true;
|
||||
},
|
||||
|
@ -13778,7 +13778,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{source:'damageSource'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(event._notrigger.contains(event.player)||event.player.isIn()) return false;
|
||||
if(event._notrigger.contains(event.player)||!event.player.isIn()) return false;
|
||||
return event.nature=='fire';
|
||||
},
|
||||
logTarget:'player',
|
||||
|
@ -14467,7 +14467,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filterCard:true,
|
||||
position:'he',
|
||||
content:function(){
|
||||
player.gain(target.getCards('h'),target,'giveAuto');
|
||||
player.gainPlayerCard(target,true,'',target.countCards('h'));
|
||||
player.turnOver();
|
||||
player.addSkill('lihun2');
|
||||
player.storage.lihun=target;
|
||||
|
@ -16055,11 +16055,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zongyu:['sp_zongyu','zongyu'],
|
||||
ol_dongzhao:['ol_dongzhao','tw_dongzhao'],
|
||||
mayunlu:['tw_mayunlu','mayunlu'],
|
||||
zhuling:['ol_zhuling','zhuling'],
|
||||
zhuling:['ol_zhuling','dc_zhuling','zhuling'],
|
||||
zangba:['tw_zangba','zangba'],
|
||||
zhangbao:['zhangbao','re_zhangbao'],
|
||||
jianggan:['jianggan','sp_jianggan'],
|
||||
dc_jiben:['dc_jiben','sp_jiben'],
|
||||
yangyi:['ol_yangyi','yangyi'],
|
||||
},
|
||||
translate:{
|
||||
"xinfu_lingren":"凌人",
|
||||
|
@ -16712,7 +16713,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mingshi_info:'当你受到伤害时,若伤害来源的体力值大于你,你可以弃置一张黑色手牌,令伤害值-1。',
|
||||
lirang_info:'当你的牌因弃置而置入弃牌堆后,你可以将其中的任意张牌交给其他角色。',
|
||||
moukui_info:'当你使用【杀】指定目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,当此【杀】被【闪】抵消时,目标角色弃置你的一张牌。 ',
|
||||
qiangwu_info:'出牌阶段,你可以进行判定。若如此做,直到回合结束,你使用点数小于判定结果的【杀】时不受距离限制,且你使用点数大于判定结果的【杀】时不计入出牌阶段的使用次数限制。',
|
||||
qiangwu_info:'出牌阶段,你可以进行判定。若如此做,直到回合结束,你使用点数小于判定结果的【杀】时不受距离限制,且你使用点数大于判定结果的【杀】时无使用次数限制。',
|
||||
shenxian_info:'每名角色的回合限一次,你的回合外,当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
|
||||
oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
|
||||
qiluan_info:'一名角色的回合结束时,你可以摸3X+Y张牌。(X为你本回合内杀死过的角色数,Y为本回合内其他角色杀死过的角色数)',
|
||||
|
@ -16933,7 +16934,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
wuyan:'吾彦',
|
||||
lanjiang:'澜疆',
|
||||
lanjiang_info:'结束阶段,你可以选择令所有手牌数不小于你的角色。这些角色依次选择是否令你摸一张牌。然后你可以对其中一名手牌数等于你的角色造成1点伤害,随后可以对其中一名手牌数小于你的角色摸一张牌。',
|
||||
ol_zhuling:'朱灵',
|
||||
ol_zhuling:'OL朱灵',
|
||||
jixian:'急陷',
|
||||
jixian_info:'摸牌阶段结束时,你可以选择一名满足以下至少一项条件的角色:⒈装备区内有防具牌;⒉拥有的普通技能数大于你;⒊体力值等于体力上限。你视为对其使用一张【杀】,然后摸X张牌(X为其于此【杀】结算前满足的条件数);若此【杀】未造成伤害,则你失去1点体力。',
|
||||
ol_chendeng:'OL陈登',
|
||||
|
|
1036
character/sp2.js
145
character/tw.js
|
@ -6,12 +6,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
characterSort:{
|
||||
tw:{
|
||||
tw_mobile:['nashime','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_huojun','tw_caocao','tw_zhangmancheng','tw_caozhao','tw_wangchang'],
|
||||
tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_chengpu','tw_guohuai','tw_wujing','tw_wangcan'],
|
||||
tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_chengpu','tw_guohuai','tw_wujing','tw_wangcan','old_quancong'],
|
||||
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
|
||||
tw_english:['kaisa'],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
old_quancong:['male','wu',4,['zhenshan']],
|
||||
tw_wujing:['male','wu',4,['twfenghan','twcongji']],
|
||||
tw_wangcan:['male','wei',3,['twdianyi','twyingji','twshanghe']],
|
||||
tw_wangchang:['male','wei',3,['twkaiji','twshepan']],
|
||||
|
@ -169,6 +170,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//全琮
|
||||
zhenshan:{
|
||||
audio:2,
|
||||
enable:['chooseToUse','chooseToRespond'],
|
||||
filter:function(event,player){
|
||||
if(event.type=='wuxie') return false;
|
||||
var nh=player.countCards('h');
|
||||
if(!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')<nh;
|
||||
})){
|
||||
return false;
|
||||
}
|
||||
for(var i of lib.inpile){
|
||||
if(get.type(i)!='basic') continue;
|
||||
var card={name:i,isCard:true};
|
||||
if(event.filterCard(card,player,event)) return true;
|
||||
if(i=='sha'){
|
||||
for(var j of lib.inpile_nature){
|
||||
card.nature=j;
|
||||
if(event.filterCard(card,player,event)) return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=[];for(var i of lib.inpile){
|
||||
if(get.type(i)!='basic') continue;
|
||||
var card={name:i,isCard:true};
|
||||
if(event.filterCard(card,player,event)) list.push(['基本','',i]);
|
||||
if(i=='sha'){
|
||||
for(var j of lib.inpile_nature){
|
||||
card.nature=j;
|
||||
if(event.filterCard(card,player,event)) list.push(['基本','',i,j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ui.create.dialog('振赡',[list,'vcard'],'hidden');
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
var card={name:button.link[2],nature:button.link[3]};
|
||||
if(card.name=='jiu') return 0;
|
||||
if(game.hasPlayer(function(current){
|
||||
return get.effect(current,card,player,player)>0;
|
||||
})){
|
||||
if(card.name=='sha'){
|
||||
var eff=player.getUseValue(card);
|
||||
if(eff>0) return 2.9+eff/10;
|
||||
return 0;
|
||||
}
|
||||
else if(card.name=='tao'||card.name=='shan'){
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
filterCard:function(){return false},
|
||||
viewAs:{
|
||||
name:links[0][2],
|
||||
nature:links[0][3],
|
||||
isCard:true,
|
||||
},
|
||||
selectCard:-1,
|
||||
precontent:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('选择一名手牌数小于你的角色交换手牌',function(card,player,target){
|
||||
return target!=player&&target.countCards('h')<player.countCards('h')
|
||||
},true).set('ai',function(target){
|
||||
return get.attitude(player,target)*Math.sqrt(target.countCards('h')+1);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('zhenshan',result.targets);
|
||||
player.swapHandcards(result.targets[0]);
|
||||
delete event.result.skill;
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
game.delayx();
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '选择【'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'】的目标';
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:function(){
|
||||
var player=_status.event.player;
|
||||
var event=_status.event;
|
||||
var nh=player.countCards('h');
|
||||
if(game.hasPlayer(function(current){
|
||||
return get.attitude(player,current)>0&¤t.countCards('h')<nh;
|
||||
})){
|
||||
if(event.type=='dying'){
|
||||
if(event.filterCard({name:'tao'},player,event)){
|
||||
return 0.5;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(event.filterCard({name:'tao'},player,event)||event.filterCard({name:'shan'},player,event)){
|
||||
return 4;
|
||||
}
|
||||
if(event.filterCard({name:'sha'},player,event)){
|
||||
return 2.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
save:true,
|
||||
respondSha:true,
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
var nh=player.countCards('h');
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')<nh;
|
||||
});
|
||||
},
|
||||
result:{
|
||||
player:function(player){
|
||||
if(_status.event.type=='dying'){
|
||||
return get.attitude(player,_status.event.dying);
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
//吴景
|
||||
twfenghan:{
|
||||
audio:2,
|
||||
|
@ -872,7 +1008,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{global:'useCard'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.card.name=='sha'&&event.player.countCards('he')>0&&event.player.getExpansions('twchunlao').length>0;
|
||||
return event.card.name=='sha'&&event.player.countCards('he')>0&&event.player.getExpansions('twchunlao').length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -903,7 +1039,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool){
|
||||
target.logSkill('twchunlao',player);
|
||||
if(!target.hasSkill('twchunlao')) game.trySkillAudio('twchunlao',player);
|
||||
player.gain(result.cards,target,'giveAuto');
|
||||
if(player!=target) player.gain(result.cards,target,'giveAuto');
|
||||
trigger.baseDamage++;
|
||||
}
|
||||
},
|
||||
|
@ -4185,6 +4321,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
twfenghan_info:'每回合限一次。当你使用【杀】或伤害类锦囊牌指定第一个目标后,你可令至多X名角色各摸一张牌(X为此牌的目标数)。',
|
||||
twcongji:'从击',
|
||||
twcongji_info:'当你的红色牌于回合外因弃置而进入弃牌堆后,你可令一名其他角色获得这些牌。',
|
||||
old_quancong:'TW全琮',
|
||||
zhenshan:'振赡',
|
||||
zhenshan_info:'当你需要使用或打出一张基本牌时,你可以与一名手牌数少于你的角色交换手牌,视为使用或打出此牌。',
|
||||
|
||||
tw_mobile:'移动版·海外服',
|
||||
tw_mobile2:'海外服异构',
|
||||
|
|
|
@ -6013,7 +6013,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
button=result.links[0];
|
||||
}
|
||||
if(button){
|
||||
player.loseToDiscardpile('sidi');
|
||||
player.loseToDiscardpile(button);
|
||||
trigger.player.addTempSkill('sidi3');
|
||||
trigger.player.addMark('sidi3',1,false);
|
||||
}
|
||||
|
|
|
@ -30,8 +30,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yingbian:{
|
||||
yingbian_pack1:['jin_simayi','jin_zhangchunhua','ol_lisu','simazhou','cheliji','ol_huaxin'],
|
||||
yingbian_pack2:['jin_simashi','jin_xiahouhui','zhanghuyuechen','shibao','jin_yanghuiyu'],
|
||||
yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu','jin_jiachong'],
|
||||
yingbian_pack4:['zhongyan','xinchang'],
|
||||
yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu'],
|
||||
yingbian_pack4:['zhongyan','xinchang','jin_jiachong'],
|
||||
yingbian_pack5:['yangyan','yangzhi'],
|
||||
},
|
||||
},
|
||||
|
@ -41,18 +41,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{global:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&event.player.countCards('he')>0&&player.countCards('he')>player.countMark('xiongshu_count');
|
||||
return player!=event.player&&event.player.countCards('he')>0&&player.countCards('he')>=player.countMark('xiongshu_count');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.target=trigger.player;
|
||||
var num=1+player.countMark('xiongshu_count');
|
||||
player.chooseToDiscard('he',num,get.prompt('xiongshu',trigger.player),'弃置'+get.cnNumber(num)+'张牌并展示其一张牌').set('goon',get.attitude(player,event.target)<0).set('ai',function(card){
|
||||
var num=player.countMark('xiongshu_count');
|
||||
if(num>0) player.chooseToDiscard('he',num,get.prompt('xiongshu',trigger.player),'弃置'+get.cnNumber(num)+'张牌并展示其一张牌').set('goon',get.attitude(player,event.target)<0).set('ai',function(card){
|
||||
if(!_status.event.goon) return 0;
|
||||
return 6-_status.event.player.countMark('xiongshu_count')-get.value(card);
|
||||
}).logSkill=['xiongshu',trigger.player];
|
||||
else player.chooseBool(get.prompt('xiongshu',trigger.player),'展示其一张牌').set('goon',get.attitude(player,event.target)<0).set('ai',function(card){
|
||||
return _status.event.goon;
|
||||
})
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(!result.cards.length) player.logSkill('xiongshu',target);
|
||||
player.addTempSkill('xiongshu_count','roundStart');
|
||||
player.addMark('xiongshu_count',1,false);
|
||||
}
|
||||
|
@ -106,10 +110,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
var target=trigger.player;
|
||||
var info=player.storage.xiongshu_effect;
|
||||
var card=info[0];
|
||||
if(target.hasHistory('useCard',function(evt){
|
||||
return evt.card.name==info[1]&&evt.getParent('phaseUse')==trigger;
|
||||
})==info[2]) target.damage();
|
||||
else if(target.getCards('he').contains(card)) player.gain(card,target,'give');
|
||||
else if(target.getCards('hej').contains(card)) player.gain(card,target,'give');
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -395,7 +400,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'loseAfter'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.type=='discard'&&event.getParent(3).name!='weishu_discard'&&event.getParent('phaseDiscard').player!=player&&game.hasPlayer((target)=>(target!=player&&target.countDiscardableCards(player,'he')>0));
|
||||
return event.type=='discard'&&event.getParent(3).name!='weishu_discard'&&event.getParent('phaseDiscard').player!=player&&event.cards2.length>0&&game.hasPlayer((target)=>(target!=player&&target.countDiscardableCards(player,'he')>0));
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -3133,7 +3138,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yangyan:'杨艳(238年-274年8月25日),字琼芝,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第一任皇后,曹魏通事郎杨炳之女。自幼父母双亡,为舅舅赵俊所养,跟随继母段氏生活。聪明贤慧,善于书法,天生丽质,娴熟女红,嫁给了世子司马炎。泰始元年(265年),晋武帝即位,建立西晋。泰始二年(266年),杨艳受册为皇后,深得晋武帝宠幸,生下三子三女,包括晋惠帝司马衷。泰始十年(274年),去世,时年三十七,陪葬于峻阳陵,谥号武元皇后。',
|
||||
yangzhi:'杨芷(259年-292年3月6日),字季兰,小字男胤,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第二任皇后,东汉太尉杨震幼子杨奉后裔,东汉末年东莱太守、蓩亭侯杨众曾孙女,西晋太傅杨骏与嫡妻庞氏之女,武元皇后杨艳堂妹。咸宁二年(276年),立为皇后,史称“婉嫕有妇德, 美映椒房”,得宠于晋武帝。生渤海殇王,早薨,之后再无生育。其父杨骏擅权引起皇后贾南风忌恨,贾南风联络汝南王司马亮、楚王司马玮发动政变,杀死杨骏,并唆使大臣上书状告杨芷谋反,让晋惠帝司马衷将其贬为庶人,押到金墉城居住。元康二年(292年),杨芷冻饿而死,谥号武悼皇后。',
|
||||
xinchang:'辛敞(生卒年不详),字泰雍,陇西人氏,是曹魏时代官员。卫尉辛毗之子,辛宪英之弟。',
|
||||
xuangongzhu:'高陵宣公主(?—?)司马氏,晋宣帝司马懿第二女。司马氏下嫁杜预。其兄弟司马炎登基时,司马氏已经去世。泰始年间(265年—274年)追赠高陵公主。',
|
||||
xuangongzhu:'高陵宣公主(?—?)司马氏,晋宣帝司马懿第二女。司马氏下嫁杜预。其侄司马炎登基时,司马氏已经去世。泰始年间(265年—274年)追赠高陵公主。',
|
||||
},
|
||||
characterTitle:{},
|
||||
perfectPair:{},
|
||||
|
@ -3322,7 +3327,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
weishu_info:'锁定技。①当你于摸牌阶段外不因〖卫戊①〗而摸牌后,你令一名角色摸一张牌。②当你于弃牌阶段外不因〖卫戊②〗而弃置牌后,你弃置一名其他角色的一张牌。',
|
||||
jin_jiachong:'贾充',
|
||||
xiongshu:'凶竖',
|
||||
xiongshu_info:'其他角色的出牌阶段开始时,你可弃置X张牌(X为你本轮内已发动过此技能的次数+1)并展示其一张牌,然后你预测“其本阶段内是否会使用与展示牌牌名相同的牌”。此阶段结束时,若你的预测正确,则你对其造成1点伤害;否则你获得展示牌。',
|
||||
xiongshu_info:'其他角色的出牌阶段开始时,你可弃置X张牌(X为你本轮内此前已发动过此技能的次数,为0则不弃)并展示其一张牌,然后你预测“其本阶段内是否会使用与展示牌牌名相同的牌”。此阶段结束时,若你的预测正确,则你对其造成1点伤害;否则你获得展示牌。',
|
||||
jianhui:'奸回',
|
||||
jianhui_info:'锁定技。当你造成伤害后,若受伤角色为A,则你摸一张牌;当你受到伤害后,若伤害来源为A,则A弃置一张牌。(A为除本次伤害外最近一次对你造成过伤害的角色)',
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.114',
|
||||
'v1.9.114.3',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -889,6 +889,18 @@ window.noname_asset_list=[
|
|||
'audio/die/dc_jiben.mp3',
|
||||
'audio/die/licaiwei.mp3',
|
||||
'audio/die/tw_wangchang.mp3',
|
||||
'audio/die/caomao.mp3',
|
||||
'audio/die/dc_gaolan.mp3',
|
||||
'audio/die/dc_luotong.mp3',
|
||||
'audio/die/dc_zhuling.mp3',
|
||||
'audio/die/guanning.mp3',
|
||||
'audio/die/ol_caiwenji.mp3',
|
||||
'audio/die/old_quancong.mp3',
|
||||
'audio/die/shen_jiangwei.mp3',
|
||||
'audio/die/tengyin.mp3',
|
||||
'audio/die/tw_caozhao.mp3',
|
||||
'audio/die/xin_quancong.mp3',
|
||||
'audio/die/xuyou.mp3',
|
||||
|
||||
'audio/skill/decadezishou1.mp3',
|
||||
'audio/skill/decadezishou2.mp3',
|
||||
|
@ -4088,6 +4100,62 @@ window.noname_asset_list=[
|
|||
'audio/skill/yijiao2.mp3',
|
||||
'audio/skill/zhishi1.mp3',
|
||||
'audio/skill/zhishi2.mp3',
|
||||
'audio/skill/chenjian1.mp3',
|
||||
'audio/skill/chenjian2.mp3',
|
||||
'audio/skill/dczhanyi1.mp3',
|
||||
'audio/skill/dczhanyi2.mp3',
|
||||
'audio/skill/duanchang_ol_caiwenji1.mp3',
|
||||
'audio/skill/duanchang_ol_caiwenji2.mp3',
|
||||
'audio/skill/dunshi1.mp3',
|
||||
'audio/skill/dunshi2.mp3',
|
||||
'audio/skill/fensi1.mp3',
|
||||
'audio/skill/fensi2.mp3',
|
||||
'audio/skill/gzjieyue1.mp3',
|
||||
'audio/skill/gzjieyue2.mp3',
|
||||
'audio/skill/jianglue1.mp3',
|
||||
'audio/skill/jianglue2.mp3',
|
||||
'audio/skill/jinjian1.mp3',
|
||||
'audio/skill/jinjian2.mp3',
|
||||
'audio/skill/jiufa1.mp3',
|
||||
'audio/skill/jiufa2.mp3',
|
||||
'audio/skill/juetao1.mp3',
|
||||
'audio/skill/juetao2.mp3',
|
||||
'audio/skill/olbeige1.mp3',
|
||||
'audio/skill/olbeige2.mp3',
|
||||
'audio/skill/pingxiang1.mp3',
|
||||
'audio/skill/pingxiang2.mp3',
|
||||
'audio/skill/qianlong1.mp3',
|
||||
'audio/skill/qianlong2.mp3',
|
||||
'audio/skill/renzheng1.mp3',
|
||||
'audio/skill/renzheng2.mp3',
|
||||
'audio/skill/tianren1.mp3',
|
||||
'audio/skill/tianren2.mp3',
|
||||
'audio/skill/twchongqi1.mp3',
|
||||
'audio/skill/twchongqi2.mp3',
|
||||
'audio/skill/twdianyi1.mp3',
|
||||
'audio/skill/twdianyi2.mp3',
|
||||
'audio/skill/twfeifu1.mp3',
|
||||
'audio/skill/twfeifu2.mp3',
|
||||
'audio/skill/twfucuan1.mp3',
|
||||
'audio/skill/twfucuan2.mp3',
|
||||
'audio/skill/twshanghe1.mp3',
|
||||
'audio/skill/twshanghe2.mp3',
|
||||
'audio/skill/twyingji1.mp3',
|
||||
'audio/skill/twyingji2.mp3',
|
||||
'audio/skill/xinhuangtian2_re_zhangjiao1.mp3',
|
||||
'audio/skill/xinhuangtian2_re_zhangjiao2.mp3',
|
||||
'audio/skill/xinyaoming1.mp3',
|
||||
'audio/skill/xinyaoming2.mp3',
|
||||
'audio/skill/xixiu1.mp3',
|
||||
'audio/skill/xixiu2.mp3',
|
||||
'audio/skill/xizhen1.mp3',
|
||||
'audio/skill/xizhen2.mp3',
|
||||
'audio/skill/yuzhang1.mp3',
|
||||
'audio/skill/yuzhang2.mp3',
|
||||
'audio/skill/zhenshan1.mp3',
|
||||
'audio/skill/zhenshan2.mp3',
|
||||
'audio/skill/zhushi1.mp3',
|
||||
'audio/skill/zhushi2.mp3',
|
||||
|
||||
'audio/voice/male/0.mp3',
|
||||
'audio/voice/male/1.mp3',
|
||||
|
@ -5164,6 +5232,14 @@ window.noname_asset_list=[
|
|||
'image/character/tw_wangcan.jpg',
|
||||
'image/character/tw_wangchang.jpg',
|
||||
'image/character/tw_wujing.jpg',
|
||||
'image/character/caomao.jpg',
|
||||
'image/character/dc_gaolan.jpg',
|
||||
'image/character/dc_luotong.jpg',
|
||||
'image/character/dc_zhuling.jpg',
|
||||
'image/character/guanning.jpg',
|
||||
'image/character/ol_caiwenji.jpg',
|
||||
'image/character/shen_jiangwei.jpg',
|
||||
'image/character/tengyin.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
49
game/game.js
|
@ -7646,6 +7646,7 @@
|
|||
}
|
||||
}
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
if(window.bannedExtensions.contains(lib.config.extensions[i])) continue;
|
||||
var extcontent=localStorage.getItem(lib.configprefix+'extension_'+lib.config.extensions[i]);
|
||||
if(extcontent){
|
||||
_status.evaluatingExtension=true;
|
||||
|
@ -7665,6 +7666,7 @@
|
|||
else{
|
||||
if(lib.config.mode!='connect'||(!localStorage.getItem(lib.configprefix+'directstart')&&show_splash)){
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
if(window.bannedExtensions.contains(lib.config.extensions[i])) continue;
|
||||
game.import('extension',{name:lib.config.extensions[i]});
|
||||
}
|
||||
}
|
||||
|
@ -10791,7 +10793,12 @@
|
|||
if(info.notarget||range[1]<=-1){
|
||||
if(!info.notarget&&range[1]<=-1){
|
||||
for(var i=0;i<targets.length;i++){
|
||||
if(!player.canUse(card,targets[i],event.nodistance?false:null,event.addCount===false?null:true)){
|
||||
if(event.filterTarget){
|
||||
if(!event.filterTarget(card,player,targets[i])){
|
||||
targets.splice(i--,1);
|
||||
}
|
||||
}
|
||||
else if(!player.canUse(card,targets[i],event.nodistance?false:null,event.addCount===false?null:true)){
|
||||
targets.splice(i--,1);
|
||||
}
|
||||
}
|
||||
|
@ -10806,6 +10813,7 @@
|
|||
else event.targets2=[];
|
||||
if(event.forced){
|
||||
event._result={bool:true};
|
||||
return;
|
||||
}
|
||||
else{
|
||||
var next=player.chooseBool();
|
||||
|
@ -10822,9 +10830,23 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(event.filterTarget){
|
||||
var targets=game.filterPlayer(function(current){
|
||||
return event.filterTarget(card,player,current);
|
||||
});
|
||||
if(targets.length<range[0]){
|
||||
event._result={bool:false};
|
||||
return;
|
||||
}
|
||||
else if(!info.complexTarget&&targets.length==range[0]&&range[0]==range[1]){
|
||||
event.targets2=targets;
|
||||
event._result={bool:true};
|
||||
return;
|
||||
}
|
||||
}
|
||||
var next=player.chooseTarget();
|
||||
next.set('_get_card',card);
|
||||
next.set('filterTarget',function(card,player,target){
|
||||
next.set('filterTarget',event.filterTarget||function(card,player,target){
|
||||
if(!_status.event.targets.contains(target)) return false;
|
||||
if(!_status.event.nodistance&&!lib.filter.targetInRange(card,player,target)) return false;
|
||||
return lib.filter.targetEnabledx(card,player,target);
|
||||
|
@ -15556,6 +15578,23 @@
|
|||
}
|
||||
},player,card);
|
||||
}
|
||||
if(event.skill){
|
||||
if(player.stat[player.stat.length-1].skill[event.skill]==undefined){
|
||||
player.stat[player.stat.length-1].skill[event.skill]=1;
|
||||
}
|
||||
else{
|
||||
player.stat[player.stat.length-1].skill[event.skill]++;
|
||||
}
|
||||
var sourceSkill=get.info(event.skill).sourceSkill;
|
||||
if(sourceSkill){
|
||||
if(player.stat[player.stat.length-1].skill[sourceSkill]==undefined){
|
||||
player.stat[player.stat.length-1].skill[sourceSkill]=1;
|
||||
}
|
||||
else{
|
||||
player.stat[player.stat.length-1].skill[sourceSkill]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(cards.length&&(cards.length>1||cards[0].name!=card.name)){
|
||||
game.log(player,'打出了',card,'(',cards,')');
|
||||
}
|
||||
|
@ -20830,10 +20869,15 @@
|
|||
if(next.source==undefined&&!nosource) next.source=event.player;
|
||||
if(next.source&&next.source.isDead()) delete next.source;
|
||||
if(next.num==undefined) next.num=1;
|
||||
next.original_num=next.num;
|
||||
next.change_history=[];
|
||||
if(next.nature=='poison') delete next._triggered;
|
||||
next.setContent('damage');
|
||||
next.filterStop=function(){
|
||||
if(this.source&&this.source.isDead()) delete this.source;
|
||||
var num=this.original_num;
|
||||
for(var i of this.change_history) num+=i;
|
||||
if(num!=this.num) this.change_history.push(this.num-num);
|
||||
if(this.num<=0){
|
||||
delete this.filterStop;
|
||||
this.trigger('damageZero');
|
||||
|
@ -36382,6 +36426,7 @@
|
|||
roundNumber:0,
|
||||
shuffleNumber:0,
|
||||
};
|
||||
window['b'+'ann'+'e'+'dE'+'x'+'ten'+'s'+'i'+'o'+'ns']=[];
|
||||
var ui={
|
||||
updates:[],
|
||||
thrown:[],
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
window.noname_update={
|
||||
version:'1.9.114.2',
|
||||
update:'1.9.114.1',
|
||||
version:'1.9.114.3',
|
||||
update:'1.9.114.2',
|
||||
changeLog:[
|
||||
'OL贾充',
|
||||
'十周年李采薇、吉本',
|
||||
'海外服吴景、王粲、王昶',
|
||||
'OL界蔡文姬',
|
||||
'十周年神姜维、曹髦、高览、骆统、朱灵、管宁、腾胤',
|
||||
'振赡全琮解禁',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
|
@ -22,7 +22,7 @@ window.noname_update={
|
|||
//'card/yongjian.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
//'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
|
@ -30,7 +30,7 @@ window.noname_update={
|
|||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
'character/offline.js',
|
||||
//'character/offline.js',
|
||||
//'character/old.js',
|
||||
//'character/ow.js',
|
||||
'character/rank.js',
|
||||
|
@ -38,7 +38,7 @@ window.noname_update={
|
|||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
'character/standard.js',
|
||||
//'character/standard.js',
|
||||
'character/tw.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
|
@ -56,9 +56,9 @@ window.noname_update={
|
|||
//'mode/brawl.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/connect.js',
|
||||
//'mode/doudizhu.js',
|
||||
'mode/doudizhu.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/identity.js',
|
||||
'mode/identity.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/tafang.js',
|
||||
|
|
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 81 KiB |
|
@ -1823,7 +1823,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
baiyidujiang:'白衣渡江',
|
||||
baiyidujiang_info:'出牌阶段,对地主使用。你选择一项:①令其将手牌数摸至全场最多。②令其将手牌数弃置至全场最少。',
|
||||
shuiyanqijuny:'水淹七军',
|
||||
shuiyanqijuny_info:'此牌不对目标角色进行座次排序。出牌阶段,对至多两名角色使用。目标角色受到1点雷属性伤害,然后若其:是第一个目标,其弃置一张牌;不是第一个目标,其摸一张牌。',
|
||||
shuiyanqijuny_info:'出牌阶段,对至多两名角色使用。目标角色受到1点雷属性伤害,然后若其:是此牌的使用者选择的第一个目标,其弃置一张牌;不是第一个目标,其摸一张牌。',
|
||||
luojingxiashi:'落井下石',
|
||||
luojingxiashi_info:'出牌阶段,对所有其他的已受伤角色使用。目标角色受到1点伤害。',
|
||||
binglinchengxia:'兵临城下',
|
||||
|
@ -2757,12 +2757,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
filterTarget:true,
|
||||
type:'trick',
|
||||
selectTarget:[1,2],
|
||||
targetprompt:['受伤弃牌','受伤摸牌'],
|
||||
contentBefore:function(){
|
||||
event.getParent().fixedSeat=true;
|
||||
var evt=event.getParent(),target=evt.stocktargets[0];
|
||||
evt.shuiyanqijun_target=target;
|
||||
},
|
||||
content:function(){
|
||||
target.damage('thunder');
|
||||
if(num>0) target.draw();
|
||||
if(target!=event.getParent().shuiyanqijun_target) target.draw();
|
||||
else target.chooseToDiscard('he',true);
|
||||
},
|
||||
ai:{
|
||||
|
|
|
@ -3954,23 +3954,39 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
return lib.skill.gzxingzhao.getNum()>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
event.cards=get.cards(4);
|
||||
player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶',true).set('ai',ai.get.buttonValue);
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
var choice=[];
|
||||
for(var i=0;i<result.links.length;i++){
|
||||
choice.push(result.links[i]);
|
||||
cards.remove(result.links[i]);
|
||||
}
|
||||
for(var i=0;i<cards.length;i++){
|
||||
ui.cardPile.appendChild(cards[i]);
|
||||
}
|
||||
while(choice.length){
|
||||
ui.cardPile.insertBefore(choice.pop(),ui.cardPile.firstChild);
|
||||
'step 0'
|
||||
var cards=get.cards(4);
|
||||
game.cardsGotoOrdering(cards);
|
||||
var next=player.chooseToMove('恂恂:将两张牌置于牌堆顶',true);
|
||||
next.set('list',[
|
||||
['牌堆顶',cards],
|
||||
['牌堆底'],
|
||||
]);
|
||||
next.set('filterMove',function(from,to,moved){
|
||||
if(to==1&&moved[1].length>=2) return false;
|
||||
return true;
|
||||
});
|
||||
next.set('filterOk',function(moved){
|
||||
return moved[1].length==2;
|
||||
});
|
||||
next.set('processAI',function(list){
|
||||
var cards=list[0][1].slice(0).sort(function(a,b){
|
||||
return get.value(b)-get.value(a);
|
||||
});
|
||||
return [cards,cards.splice(2)];
|
||||
})
|
||||
'step 1'
|
||||
var top=result.moved[0];
|
||||
var bottom=result.moved[1];
|
||||
top.reverse();
|
||||
for(var i=0;i<top.length;i++){
|
||||
ui.cardPile.insertBefore(top[i],ui.cardPile.firstChild);
|
||||
}
|
||||
for(i=0;i<bottom.length;i++){
|
||||
ui.cardPile.appendChild(bottom[i]);
|
||||
}
|
||||
game.updateRoundNumber();
|
||||
game.delayx();
|
||||
},
|
||||
},
|
||||
use:{
|
||||
|
@ -11475,6 +11491,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
junling6_bg:'令',
|
||||
junling6_info:'若被执行,执行者选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌。',
|
||||
|
||||
gz_miheng:'祢衡',
|
||||
gzshensu:'神速',
|
||||
gzshensu_info:'①判定阶段开始时,你可跳过此阶段和摸牌阶段,视为使用一张【杀】(无距离限制)。②出牌阶段开始时,你可跳过此阶段并弃置一张装备牌,视为使用一张【杀】(无距离限制)。③弃牌开始时,你可跳过此阶段并失去1点体力,视为使用一张【杀】(无距离限制)。',
|
||||
gzwushuang:'无双',
|
||||
|
|
|
@ -1086,7 +1086,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
list.remove('shen');
|
||||
if(list.length) player.group=function(){
|
||||
if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo','jin_simashi'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo','jin_simashi','caomao'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(game.zhu.name=='yl_yuanshu'){
|
||||
if(player.identity=='zhong') list.remove('qun');
|
||||
else return 'qun';
|
||||
|
@ -2073,7 +2073,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(!lib.group.contains(list[ix])) list.splice(ix--,1);
|
||||
}
|
||||
if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo','jin_simashi'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo','jin_simashi','caomao'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(game.zhu.name=='yl_yuanshu'){
|
||||
if(player.identity=='zhong') list.remove('qun');
|
||||
else return 'qun';
|
||||
|
|