Key 20th Memorial Update

This commit is contained in:
Spmario233 2020-10-05 13:33:08 +08:00 committed by GitHub
parent dce0325211
commit 37785dd359
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 6088 additions and 5820 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/lianpo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lianpo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/renjie21.mp3 Normal file

Binary file not shown.

BIN
audio/skill/renjie22.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbaiyin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbaiyin2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1341,6 +1341,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
subtype:'spell_silver', subtype:'spell_silver',
enable:true, enable:true,
usable:1, usable:1,
updateUsable:'phaseUse',
forceUsable:true, forceUsable:true,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target==player; return target==player;

View File

@ -67,6 +67,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
type:'basic', type:'basic',
enable:true, enable:true,
usable:1, usable:1,
updateUsable:'phaseUse',
range:{attack:1}, range:{attack:1},
selectTarget:1, selectTarget:1,
filterTarget:function(card,player,target){return player!=target}, filterTarget:function(card,player,target){return player!=target},

10959
card/swd.js

File diff suppressed because it is too large Load Diff

View File

@ -2020,17 +2020,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
selectTarget:function(){ selectTarget:function(){
if(!ui.selected.cards.length) return [1,1]; if(!ui.selected.cards.length) return [1,1];
return [0,1]; return [0,0];
}, },
selectCard:function(){ selectCard:function(){
if(ui.selected.targets.length) return [0,0];
if(!ui.selected.cards.length) return [0,2]; if(!ui.selected.cards.length) return [0,2];
return [2,2]; return [2,2];
}, },
prompt:get.prompt2('yuzuru_wuxin'), prompt:get.prompt2('yuzuru_wuxin'),
complexCard:true,
complexTarget:true,
ai1:function(card){ ai1:function(card){
var player=_status.event.player; var player=_status.event.player;
if(player.hp>3) return 0; if(player.hp>3) return 0;
return player.getDamagedHp()*2-get.value(card); return (player.getDamagedHp()*2)-get.value(card);
}, },
ai2:function(target){ ai2:function(target){
if(player.hp<4||target.hasSkillTag('nogain')) return 0; if(player.hp<4||target.hasSkillTag('nogain')) return 0;
@ -2076,7 +2079,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
content:function(){ content:function(){
'step 0' 'step 0'
if(!player._yuzuru_sss) player.loseHp(); if(!player.storage._yuzuru_sss) player.loseHp();
player.draw(2); player.draw(2);
'step 1' 'step 1'
if(player.countCards('he')<2) event.finish(); if(player.countCards('he')<2) event.finish();
@ -2126,7 +2129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
complexSelect:true, complexSelect:true,
check:function(card){ check:function(card){
if(!_status.event.player._yuzuru_sss&&get.color(card)=='black') return -1; if(!_status.event.player.storage._yuzuru_sss&&get.color(card)=='black') return -1;
return 9-get.value(card); return 9-get.value(card);
}, },
line:{color:[194,117,92]}, line:{color:[194,117,92]},
@ -2134,7 +2137,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
target.recover(); target.recover();
"step 1" "step 1"
if(target==targets[targets.length-1]&&!player._yuzuru_sss){ if(target==targets[targets.length-1]&&!player.storage._yuzuru_sss){
for(var i=0;i<cards.length;i++){ for(var i=0;i<cards.length;i++){
if(get.color(cards[i],player)=='black'){ if(get.color(cards[i],player)=='black'){
player.loseHp(); player.loseHp();
@ -2161,7 +2164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
trigger.cancel(); trigger.cancel();
player.awakenSkill('yuzuru_wangsheng'); player.awakenSkill('yuzuru_wangsheng');
player._yuzuru_sss=true; player.storage._yuzuru_sss=true;
if(player.countCards('he')>0){ if(player.countCards('he')>0){
player.chooseCardTarget({ player.chooseCardTarget({
selectCard:[1,Infinity], selectCard:[1,Infinity],
@ -3906,23 +3909,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
var list=[]; var list=[];
if(player._ichiban_no_takaramono) list.push('cancel2'); if(player.storage._ichiban_no_takaramono) list.push('cancel2');
player.chooseControl.apply(player,list).set('choiceList',[ player.chooseControl.apply(player,list).set('choiceList',[
'令此阶段内的所有红色牌视为【杀】', '令此阶段内的所有红色牌视为【杀】',
'令此阶段内的所有【杀】视为【决斗】' '令此阶段内的所有【杀】视为【决斗】'
]).set('prompt',player._ichiban_no_takaramono?get.prompt('yui_lieyin'):'烈音:请选择一项').set('ai',function(){ ]).set('prompt',player.storage._ichiban_no_takaramono?get.prompt('yui_lieyin'):'烈音:请选择一项').set('ai',function(){
var player=_status.event.player; var player=_status.event.player;
var shas=player.countCards('h','sha') var shas=player.countCards('h','sha')
if(shas>0){ if(shas>0){
if(game.hasPlayer(function(current){ if(game.hasPlayer(function(current){
return get.attitude(player,current)<0&&player.canUse('juedou',current)&&!current.hasSha()&&get.effect(current,{name:'juedou'},player,player)>0; return get.attitude(player,current)<0&&player.canUse('juedou',current)&&!current.hasSha()&&get.effect(current,{name:'juedou'},player,player)>0;
})) return 1; })) return 1;
if(player._ichiban_no_takaramono) return 'cancel2'; if(player.storage._ichiban_no_takaramono) return 'cancel2';
} }
if(player.countCards('h',function(card){ if(player.countCards('h',function(card){
return get.color(card)=='red'&&card.name!='sha'&&player.hasValueTarget(card); return get.color(card)=='red'&&card.name!='sha'&&player.hasValueTarget(card);
})==0) return 0; })==0) return 0;
if(player._ichiban_no_takaramono) return 'cancel2'; if(player.storage._ichiban_no_takaramono) return 'cancel2';
return 1; return 1;
}); });
'step 1' 'step 1'
@ -3967,7 +3970,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
player.awakenSkill('yui_takaramono'); player.awakenSkill('yui_takaramono');
player.addSkill('yui_yinhang'); player.addSkill('yui_yinhang');
player._ichiban_no_takaramono=true; player.storage._ichiban_no_takaramono=true;
player.gainMaxHp(); player.gainMaxHp();
player.recover(); player.recover();
}, },
@ -10178,6 +10181,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.3 threaten:1.3
}, },
}, },
dynamicTranslate:{
nsjiquan:function(player){
if(player.storage.nsfuwei) return '锁定技与你距离1以内的其他角色造成或受到伤害后你将其区域内的一张牌置于你的武将牌上称为“威”。你使用【杀】的次数上限+XX为“威”数。';
return '与你距离1以内的其他角色造成或受到伤害后你可以将其区域内的一张牌置于你的武将牌上称为“威”。你使用【杀】的次数上限+XX为“威”数。';
},
abyusa_jueqing:function(player){
if(player.hasSkill('abyusa_jueqing_1st')) return '锁定技,你即将造成的伤害均视为失去体力。';
return '当你对其他角色造成伤害时你可以防止此伤害。若如此做你令其失去2X点体力修改〖绝情〗并对自己造成2X点伤害。';
},
tomoya_shangxian:function(player){
if(player.storage.tomoya_shangxian) return '锁定技,你计算与其他角色的距离时始终从顺时针方向计算。出牌阶段开始时,你可摸一张牌,并改变此方向。';
return '锁定技,你计算与其他角色的距离时始终从逆时针方向计算。出牌阶段开始时,你可摸一张牌,并改变此方向。';
},
yui_lieyin:function(player){
if(player.storage._ichiban_no_takaramono) return '锁定技,出牌阶段开始时,你可选择一项:①本阶段内的红色牌均视为【杀】;②本阶段内的【杀】均视为【决斗】。';
return '锁定技,出牌阶段开始时,你选择一项:①本阶段内的红色牌均视为【杀】;②本阶段内的【杀】均视为【决斗】。';
},
yuzuru_kunfen:function(player){
if(player.storage._yuzuru_sss) return '锁定技,结束阶段,你摸两张牌。然后你可以将两张牌交给一名其他角色。';
return '锁定技结束阶段你失去1点体力并摸两张牌。然后你可以将两张牌交给一名其他角色。';
},
yuzuru_quji:function(player){
if(player.storage._yuzuru_sss) return '出牌阶段限一次你可以弃置X张牌并选择至多等量已受伤的其他角色这些角色各回复1点体力。X为你已损失的体力值';
return '出牌阶段限一次你可以弃置X张牌并选择至多等量已受伤的其他角色这些角色各回复1点体力。若你以此法弃置了黑色牌则你失去1点体力。X为你已损失的体力值';
},
kamome_jieban:function(player){
if(player.storage.kamome_jieban) return '转换技。每回合限一次,当你受到或造成伤害后,阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。<span class="bluetext">阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。</span>';
return '转换技。每回合限一次,当你受到或造成伤害后,<span class="bluetext">阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。</span>阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。';
},
},
translate:{ translate:{
diy_liufu:'刘馥', diy_liufu:'刘馥',
diy_xizhenxihong:'习珍习宏', diy_xizhenxihong:'习珍习宏',

View File

@ -983,7 +983,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
lianpo:{ lianpo:{
audio:true, audio:2,
trigger:{global:'phaseAfter'}, trigger:{global:'phaseAfter'},
frequent:true, frequent:true,
filter:function(event,player){ filter:function(event,player){
@ -1098,7 +1098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
renjie:{ renjie:{
audio:true, audio:'renjie2',
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
forced:true, forced:true,
unique:true, unique:true,
@ -1146,7 +1146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
renjie2:{ renjie2:{
audio:true, audio:2,
trigger:{player:'loseAfter'}, trigger:{player:'loseAfter'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1165,7 +1165,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
unique:true, unique:true,
audio:true, audio:2,
filter:function(event,player){ filter:function(event,player){
return player.countMark('renjie')>=4; return player.countMark('renjie')>=4;
}, },
@ -1180,7 +1180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear'] group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear']
}, },
jilue_guicai:{ jilue_guicai:{
audio:true, audio:1,
trigger:{global:'judge'}, trigger:{global:'judge'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
@ -1237,7 +1237,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jilue_fangzhu:{ jilue_fangzhu:{
audio:true, audio:1,
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
direct:true, direct:true,
//priority:-1, //priority:-1,
@ -1270,7 +1270,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
jilue_wansha:{ jilue_wansha:{
audio:true, audio:'wansha',
audioname:['shen_simayi'],
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filter:function(event,player){ filter:function(event,player){
@ -1282,7 +1283,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jilue_zhiheng:{ jilue_zhiheng:{
audio:true, audio:1,
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filter:function(event,player){ filter:function(event,player){
@ -1339,7 +1340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
jilue_jizhi:{ jilue_jizhi:{
audio:true, audio:1,
trigger:{player:'useCard'}, trigger:{player:'useCard'},
filter:function(event,player){ filter:function(event,player){
return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie')); return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie'));
@ -1412,6 +1413,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
trigger.directHit.addArray(game.players); trigger.directHit.addArray(game.players);
if(trigger.addCount!==false){
trigger.addCount=false;
if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--;
}
}
}, },
ai:{ ai:{
effect:{ effect:{
@ -2691,15 +2698,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'1':{ '1':{
audio:2, audio:2,
trigger:{ trigger:{
player:'linkAfter', player:['linkBefore','enterGame'],
global:'gameDrawAfter', global:'gameDrawAfter',
}, },
forced:true, forced:true,
filter:function (event,player){ filter:function(event,player){
return !player.isLinked(); return player.isLinked()==(event.name=='link');
}, },
content:function(){ content:function(){
player.link(true); if(trigger.name!='link') player.link(true);
else trigger.cancel();
}, },
}, },
'2':{ '2':{
@ -3258,6 +3266,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
dynamicTranslate:{
nzry_longnu:function(player){
if(player.hasSkill('nzry_longnu_2')) return '转换技锁定技出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。<span class="legendtext">阳出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。</span>';
if(player.hasSkill('nzry_longnu_1')) return '转换技,锁定技,<span class="legendtext">阴出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。</span>阳出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。';
if(player.storage.nzry_longnu==true) return '转换技锁定技出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。<span class="bluetext">阳出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。</span>';
return '转换技,锁定技,<span class="bluetext">阴出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。</span>阳出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。';
},
},
translate:{ translate:{
"shen_luxun":"神陆逊", "shen_luxun":"神陆逊",
"nzry_junlve":"军略", "nzry_junlve":"军略",
@ -3268,7 +3284,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_dinghuo_info":"限定技出牌阶段你可以移去全部“军略”标记令至多等量的已横置角色弃置所有装备区内的牌。然后你对其中一名角色造成1点火焰伤害。", "nzry_dinghuo_info":"限定技出牌阶段你可以移去全部“军略”标记令至多等量的已横置角色弃置所有装备区内的牌。然后你对其中一名角色造成1点火焰伤害。",
"shen_liubei":"神刘备", "shen_liubei":"神刘备",
"nzry_longnu":"龙怒", "nzry_longnu":"龙怒",
"nzry_longnu_info":"转换技,锁定技,出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。", "nzry_longnu_info":"转换技,锁定技,阴:出牌阶段开始时你失去1点体力并摸一张牌然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时你减1点体力上限并摸一张牌然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。",
"nzry_jieying":"结营", "nzry_jieying":"结营",
"nzry_jieying_info":"锁定技,游戏开始时或当你的武将牌重置时,你横置;所有已横置的角色手牌上限+2结束阶段你横置一名其他角色。", "nzry_jieying_info":"锁定技,游戏开始时或当你的武将牌重置时,你横置;所有已横置的角色手牌上限+2结束阶段你横置一名其他角色。",

View File

@ -10,9 +10,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"], mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
mobile_sunben:["re_sunben"], mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun"], mobile_standard:["xin_xiahoudun"],
mobile_shenhua:["re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"], mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng"], mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","re_pangtong","old_liuzan","xin_chengpu"], mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","old_liuzan"],
mobile_trashbin:['old_jiakui'], mobile_trashbin:['old_jiakui'],
}, },
}, },
@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hujinding:['female','shu','2/6',['renshi','wuyuan','huaizi']], hujinding:['female','shu','2/6',['renshi','wuyuan','huaizi']],
re_zhanggong:['male','wei',3,['reqianxin','xinfu_zhenxing']], re_zhanggong:['male','wei',3,['reqianxin','rezhenxing']],
re_xugong:['male','wu',3,['rebiaozhao','yechou']], re_xugong:['male','wu',3,['rebiaozhao','yechou']],
re_weiwenzhugezhi:['male','wu',4,['refuhai']], re_weiwenzhugezhi:['male','wu',4,['refuhai']],
@ -194,7 +194,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
order:9.5, order:9.5,
equipValue:function (card,player){ equipValue:function(card,player){
if(player.hp==player.maxHp) return 5; if(player.hp==player.maxHp) return 5;
if(player.countCards('h','rewrite_baiyin')) return 6; if(player.countCards('h','rewrite_baiyin')) return 6;
return 0; return 0;
@ -239,7 +239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subtype:"equip2", subtype:"equip2",
cardnature:"fire", cardnature:"fire",
ai:{ ai:{
equipValue:function (card,player){ equipValue:function(card,player){
if(player.hasSkillTag('maixie')&&player.hp>1) return 0; if(player.hasSkillTag('maixie')&&player.hp>1) return 0;
if(player.hasSkillTag('noDirectDamage')) return 10; if(player.hasSkillTag('noDirectDamage')) return 10;
if(get.damageEffect(player,player,player,'fire')>=0) return 10; if(get.damageEffect(player,player,player,'fire')>=0) return 10;
@ -268,7 +268,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
type:"equip", type:"equip",
subtype:"equip1", subtype:"equip1",
ai:{ ai:{
equipValue:function (card,player){ equipValue:function(card,player){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; return player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0;
})){ })){
@ -295,6 +295,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
characterFilter:{}, characterFilter:{},
skill:{ skill:{
//通渠张恭
rezhenxing:{
audio:'xinfu_zhenxing',
trigger:{
player:["damageEnd","phaseJieshuBegin"],
},
frequent:true,
content:function(){
'step 0'
event.cards=get.cards(3);
player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){
var cards=_status.event.cards;
for(var i=0;i<cards.length;i++){
if(button.link!=cards[i]&&get.suit(cards[i])==get.suit(button.link)) return false;
}
return true;
}).set('ai',function(button){
return get.value(button.link);
}).set('cards',event.cards);
'step 1'
for(var i=event.cards.length-1;i>=0;i--){
if(result.bool&&result.links.contains(event.cards[i])){
player.gain(event.cards[i],'gain2');
}
else{
event.cards[i].fix();
ui.cardPile.insertBefore(event.cards[i],ui.cardPile.childNodes[0]);
}
}
game.updateRoundNumber();
},
},
//芙蓉,手杀廖化,手杀曹彰 //芙蓉,手杀廖化,手杀曹彰
rejiangchi:{ rejiangchi:{
audio:2, audio:2,
@ -388,19 +420,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(card) player.gain(card,'gain2'); if(card) player.gain(card,'gain2');
'step 1' 'step 1'
game.updateRoundNumber(); game.updateRoundNumber();
player.phaseUse(); var next=player.phaseUse();
'step 2' event.next.remove(next);
var stat=player.getStat(); trigger.next.push(next);
stat.card={};
for(var i in stat.skill){
var bool=false;
var info=lib.skill[i];
if(info.enable!=undefined){
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
}
if(bool) stat.skill[i]=0;
}
}, },
}, },
xuewei:{ xuewei:{
@ -1980,7 +2002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
maixie:true, maixie:true,
"maixie_hp":true, "maixie_hp":true,
effect:{ effect:{
target:function (card,player,target){ target:function(card,player,target){
if(get.tag(card,'damage')){ if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return; if(!target.hasFriend()) return;
@ -2531,10 +2553,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseJieshuBegin", player:"phaseJieshuBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function(event,player){
return player.countCards('he')>0&&!player.storage.rebiaozhao; return player.countCards('he')>0&&!player.storage.rebiaozhao;
}, },
content:function (){ content:function(){
'step 0' 'step 0'
player.chooseCard('he',get.prompt2('rebiaozhao')).ai=function(card){ player.chooseCard('he',get.prompt2('rebiaozhao')).ai=function(card){
return 6-get.value(card); return 6-get.value(card);
@ -2558,7 +2580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true, charlotte:true,
forced:true, forced:true,
audio:"biaozhao", audio:"biaozhao",
filter:function (event,player){ filter:function(event,player){
if(!player.storage.rebiaozhao) return false; if(!player.storage.rebiaozhao) return false;
var num=get.number(player.storage.rebiaozhao[0]); var num=get.number(player.storage.rebiaozhao[0]);
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
@ -2566,7 +2588,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return false; return false;
}, },
content:function (){ content:function(){
"step 0" "step 0"
var card=player.storage.rebiaozhao[0]; var card=player.storage.rebiaozhao[0];
delete player.storage.rebiaozhao; delete player.storage.rebiaozhao;
@ -2584,10 +2606,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
charlotte:true, charlotte:true,
audio:"biaozhao", audio:"biaozhao",
filter:function (event,player){ filter:function(event,player){
return player.storage.rebiaozhao!=undefined; return player.storage.rebiaozhao!=undefined;
}, },
content:function (){ content:function(){
"step 0" "step 0"
var card=player.storage.rebiaozhao[0]; var card=player.storage.rebiaozhao[0];
delete player.storage.rebiaozhao; delete player.storage.rebiaozhao;
@ -2823,13 +2845,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
silent:true, silent:true,
popup:false, popup:false,
filter:function (event,player){ filter:function(event,player){
if(!event.source) return false; if(!event.source) return false;
if(!player.isDying()) return false; if(!player.isDying()) return false;
var evt=event.getParent('dying').getParent(2); var evt=event.getParent('dying').getParent(2);
return evt.name=='rexushen'&&evt.player==player; return evt.name=='rexushen'&&evt.player==player;
}, },
content:function (){ content:function(){
trigger.rexushen=true; trigger.rexushen=true;
}, },
sub:true, sub:true,
@ -2839,14 +2861,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:"recoverAfter", player:"recoverAfter",
}, },
filter:function (event,player){ filter:function(event,player){
if(player.isDying()) return false; if(player.isDying()) return false;
return event.rexushen==true; return event.rexushen==true;
}, },
direct:true, direct:true,
silent:true, silent:true,
popup:false, popup:false,
content:function (){ content:function(){
'step 0' 'step 0'
player.removeSkill('rexushen2'); player.removeSkill('rexushen2');
player.chooseBool('是否令'+get.translation(trigger.source)+'获得技能〖武圣〗和〖当先〗').ai=function(){ player.chooseBool('是否令'+get.translation(trigger.source)+'获得技能〖武圣〗和〖当先〗').ai=function(){
@ -2884,7 +2906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
meiyong:{ meiyong:{
inherit:'xinfu_wuniang', inherit:'xinfu_wuniang',
audio:'xinfu_wuniang', audio:'xinfu_wuniang',
content:function (){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('meiyong'),'获得一名其他角色的一张牌,然后其摸一张牌。',function(card,player,target){ player.chooseTarget(get.prompt('meiyong'),'获得一名其他角色的一张牌,然后其摸一张牌。',function(card,player,target){
if(player==target) return false; if(player==target) return false;
@ -3218,7 +3240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete p.storage[s+1]; delete p.storage[s+1];
}, },
enable:"chooseToUse", enable:"chooseToUse",
filter:function (event,player){ filter:function(event,player){
if(event.filterCard({name:'sha'},player,event)|| if(event.filterCard({name:'sha'},player,event)||
event.filterCard({name:'jiu'},player,event)|| event.filterCard({name:'jiu'},player,event)||
event.filterCard({name:'tao'},player,event)){ event.filterCard({name:'tao'},player,event)){
@ -3229,7 +3251,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false; return false;
}, },
chooseButton:{ chooseButton:{
dialog:function (event,player){ dialog:function(event,player){
var list=[]; var list=[];
if(event.filterCard({name:'sha'},player,event)){ if(event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']); list.push(['基本','','sha']);
@ -3244,7 +3266,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return ui.create.dialog('战意',[list,'vcard'],'hidden'); return ui.create.dialog('战意',[list,'vcard'],'hidden');
}, },
check:function (button){ check:function(button){
var player=_status.event.player; var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]}; var card={name:button.link[2],nature:button.link[3]};
if(game.hasPlayer(function(current){ if(game.hasPlayer(function(current){
@ -3263,7 +3285,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return 0; return 0;
}, },
backup:function (links,player){ backup:function(links,player){
return { return {
audio:'zhanyi', audio:'zhanyi',
filterCard:function(card,player,target){ filterCard:function(card,player,target){
@ -3277,12 +3299,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
popname:true, popname:true,
} }
}, },
prompt:function (links,player){ prompt:function(links,player){
return '将一张基本牌当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用'; return '将一张基本牌当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用';
}, },
}, },
ai:{ ai:{
order:function (){ order:function(){
var player=_status.event.player; var player=_status.event.player;
var event=_status.event; var event=_status.event;
if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.countCards('h',{type:'basic'})>=2){ if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.countCards('h',{type:'basic'})>=2){
@ -3292,7 +3314,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
save:true, save:true,
respondSha:true, respondSha:true,
skillTagFilter:function (player,tag,arg){ skillTagFilter:function(player,tag,arg){
if(player.hasCard(function(card){ if(player.hasCard(function(card){
return get.type(card)=='basic'; return get.type(card)=='basic';
},'he')){ },'he')){
@ -3349,10 +3371,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:"damageBegin4", player:"damageBegin4",
}, },
filter:function (event,player){ filter:function(event,player){
return event.source!=undefined&&player.countCards('h')>0; return event.source!=undefined&&player.countCards('h')>0;
}, },
content:function (){ content:function(){
'step 0' 'step 0'
player.showHandcards(); player.showHandcards();
'step 1' 'step 1'
@ -3392,15 +3414,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
audio:2, audio:2,
init:function (player,skill){ init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[]; if(!player.storage[skill]) player.storage[skill]=[];
}, },
filter:function (event,player){ filter:function(event,player){
return player.storage.xinfu_zhaoxin.length<3&&player.countCards('h')>0; return player.storage.xinfu_zhaoxin.length<3&&player.countCards('h')>0;
}, },
visible:true, visible:true,
filterCard:true, filterCard:true,
selectCard:function (){ selectCard:function(){
var player=_status.event.player; var player=_status.event.player;
return [1,3-player.storage.xinfu_zhaoxin.length]; return [1,3-player.storage.xinfu_zhaoxin.length];
}, },
@ -3408,7 +3430,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
toStorage:true, toStorage:true,
//lose:false, //lose:false,
delay:false, delay:false,
content:function (){ content:function(){
'step 0' 'step 0'
//player.lose(cards,ui.special,'toStorage') //player.lose(cards,ui.special,'toStorage')
player.$give(cards,player,false); player.$give(cards,player,false);
@ -3417,7 +3439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
player.draw(cards.length); player.draw(cards.length);
}, },
check:function (card){ check:function(card){
return 6-get.value(card); return 6-get.value(card);
}, },
ai:{ ai:{
@ -3431,12 +3453,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
global:"phaseDrawAfter", global:"phaseDrawAfter",
}, },
filter:function (event,player){ filter:function(event,player){
if(!player.storage.xinfu_zhaoxin||!player.storage.xinfu_zhaoxin.length) return false; if(!player.storage.xinfu_zhaoxin||!player.storage.xinfu_zhaoxin.length) return false;
return player==event.player||player.inRange(event.player); return player==event.player||player.inRange(event.player);
}, },
direct:true, direct:true,
content:function (){ content:function(){
'step 0' 'step 0'
player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.storage.xinfu_zhaoxin,function(button){ player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.storage.xinfu_zhaoxin,function(button){
return true; return true;
@ -3479,12 +3501,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_qianchong":{ "xinfu_qianchong":{
audio:3, audio:3,
mod:{ mod:{
targetInRange:function (card,player,target){ targetInRange:function(card,player,target){
if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))){ if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))){
return true; return true;
} }
}, },
cardUsable:function (card,player,num){ cardUsable:function(card,player,num){
if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))) return Infinity; if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))) return Infinity;
}, },
}, },
@ -3498,12 +3520,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:"phaseAfter", player:"phaseAfter",
}, },
content:function (){ content:function(){
player.storage.xinfu_qianchong=[]; player.storage.xinfu_qianchong=[];
}, },
}, },
}, },
init:function (event,player){ init:function(event,player){
event.storage[player]=[]; event.storage[player]=[];
}, },
trigger:{ trigger:{
@ -3511,7 +3533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
locked:false, locked:false,
direct:true, direct:true,
filter:function (event,player){ filter:function(event,player){
var es=player.getCards('e'); var es=player.getCards('e');
if(!es.length) return true; if(!es.length) return true;
var col=get.color(es[0]); var col=get.color(es[0]);
@ -3520,7 +3542,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return false; return false;
}, },
content:function (){ content:function(){
'step 0' 'step 0'
var list=['basic','trick','equip','cancel2']; var list=['basic','trick','equip','cancel2'];
for(var i=0;i<player.storage.xinfu_qianchong.length;i++){ for(var i=0;i<player.storage.xinfu_qianchong.length;i++){
@ -3546,7 +3568,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"qc_weimu":{ "qc_weimu":{
audio:"xinfu_qianchong", audio:"xinfu_qianchong",
mod:{ mod:{
targetEnabled:function (card,player,target){ targetEnabled:function(card,player,target){
var bool=true; var bool=true;
var es=target.getCards('e'); var es=target.getCards('e');
if(!es.length) bool=false; if(!es.length) bool=false;
@ -3564,7 +3586,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:["useCard","respond","loseAfter"], player:["useCard","respond","loseAfter"],
}, },
frequent:true, frequent:true,
filter:function (event,player){ filter:function(event,player){
if(player.hasSkill('mingzhe')) return false; if(player.hasSkill('mingzhe')) return false;
if(player==_status.currentPhase) return false; if(player==_status.currentPhase) return false;
var es=player.getCards('e'); var es=player.getCards('e');
@ -3581,7 +3603,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return false; return false;
}, },
content:function (){ content:function(){
"step 0" "step 0"
event.count=1; event.count=1;
if(trigger.name=='lose'){ if(trigger.name=='lose'){
@ -3613,7 +3635,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseJieshuBegin", global:"phaseJieshuBegin",
}, },
audio:2, audio:2,
filter:function (event,player){ filter:function(event,player){
var num=0; var num=0;
player.getHistory('lose',function(evt){ player.getHistory('lose',function(evt){
if(evt.cards2) num+=evt.cards2.length; if(evt.cards2) num+=evt.cards2.length;
@ -3621,7 +3643,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return num>0&&num<=player.hp return num>0&&num<=player.hp
}, },
frequent:true, frequent:true,
content:function (){ content:function(){
'step 0' 'step 0'
var num=0; var num=0;
player.getHistory('lose',function(evt){ player.getHistory('lose',function(evt){
@ -3635,7 +3657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"rw_bagua_skill":{ "rw_bagua_skill":{
inherit:"bagua_skill", inherit:"bagua_skill",
audio:"bagua_skill", audio:"bagua_skill",
content:function (){ content:function(){
"step 0" "step 0"
player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5}); player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5});
"step 1" "step 1"
@ -3664,15 +3686,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
priority:20, priority:20,
filter:function (event,player){ filter:function(event,player){
return !player.isLinked(); return !player.isLinked();
}, },
content:function (){ content:function(){
trigger.cancel(); trigger.cancel();
}, },
ai:{ ai:{
effect:{ effect:{
target:function (card,player,target,current){ target:function(card,player,target,current){
if(['tiesuo','lulitongxin'].contains(card.name)){ if(['tiesuo','lulitongxin'].contains(card.name)){
return 'zerotarget'; return 'zerotarget';
} }
@ -3683,7 +3705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"rw_renwang_skill":{ "rw_renwang_skill":{
inherit:"renwang_skill", inherit:"renwang_skill",
audio:"renwang_skill", audio:"renwang_skill",
filter:function (event,player){ filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false; if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{ if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null, name:event.card?event.card.name:null,
@ -3694,7 +3716,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
effect:{ effect:{
target:function (card,player,target){ target:function(card,player,target){
if(target.hasSkillTag('unequip2')) return; if(target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{ if(player.hasSkillTag('unequip',false,{
name:card?card.name:null, name:card?card.name:null,
@ -3723,7 +3745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
inherit:"rw_minguangkai_link", inherit:"rw_minguangkai_link",
ai:{ ai:{
effect:{ effect:{
target:function (card,player,target,current){ target:function(card,player,target,current){
if(['tiesuo','lulitongxin'].contains(card.name)){ if(['tiesuo','lulitongxin'].contains(card.name)){
return 'zeroplayertarget'; return 'zeroplayertarget';
} }
@ -3736,10 +3758,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:"tengjia1", audio:"tengjia1",
}, },
"xinfu_pingcai":{ "xinfu_pingcai":{
"wolong_card":function (){ "wolong_card":function(){
'step 0' 'step 0'
var ingame=game.hasPlayer(function(current){ var ingame=game.hasPlayer(function(current){
return ['sp_zhugeliang','re_sp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang'].contains(current.name2); return ['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name2);
})?true:false; })?true:false;
var prompt='请选择'; var prompt='请选择';
prompt+=ingame?'至多两名':'一名'; prompt+=ingame?'至多两名':'一名';
@ -3757,10 +3779,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
"fengchu_card":function (){ "fengchu_card":function(){
'step 0' 'step 0'
var ingame=game.hasPlayer(function(current){ var ingame=game.hasPlayer(function(current){
return ['re_pangtong','pangtong'].contains(current.name)||['re_pangtong','pangtong'].contains(current.name2); return ['re_pangtong','pangtong','ol_pangtong'].contains(current.name)||['re_pangtong','pangtong','ol_pangtong'].contains(current.name2);
})?true:false; })?true:false;
var prompt='请选择'; var prompt='请选择';
prompt+=ingame?'至多四名':'至多三名'; prompt+=ingame?'至多四名':'至多三名';
@ -3778,7 +3800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
"xuanjian_card":function (){ "xuanjian_card":function(){
'step 0' 'step 0'
event.ingame=game.hasPlayer(function(current){ event.ingame=game.hasPlayer(function(current){
return ['re_xushu','xin_xushu','xushu'].contains(current.name)||['re_xushu','xin_xushu','xushu'].contains(current.name2); return ['re_xushu','xin_xushu','xushu'].contains(current.name)||['re_xushu','xin_xushu','xushu'].contains(current.name2);
@ -3798,7 +3820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.ingame) player.draw(); if(event.ingame) player.draw();
} }
}, },
"shuijing_card":function (){ "shuijing_card":function(){
'step 0' 'step 0'
event.ingame=game.hasPlayer(function(current){ event.ingame=game.hasPlayer(function(current){
return current.name=='simahui'||current.name2=='simahui'; return current.name=='simahui'||current.name2=='simahui';
@ -3906,7 +3928,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
content:function (){ content:function(){
"step 0" "step 0"
var list=["wolong","fengchu","xuanjian","shuijing"]; var list=["wolong","fengchu","xuanjian","shuijing"];
var list2=[]; var list2=[];
@ -3980,7 +4002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"xinfu_pdgyingshi":{ "xinfu_pdgyingshi":{
mod:{ mod:{
targetEnabled:function (card,player,target){ targetEnabled:function(card,player,target){
if(get.type(card)=='delay'){ if(get.type(card)=='delay'){
return false; return false;
} }
@ -4005,7 +4027,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
priority:15, priority:15,
content:function (){ content:function(){
trigger.cancel(); trigger.cancel();
game.log(player,'跳过了判定阶段'); game.log(player,'跳过了判定阶段');
}, },
@ -4025,7 +4047,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"yizan_respond_sha":{ "yizan_respond_sha":{
audio:2, audio:2,
enable:["chooseToRespond"], enable:["chooseToRespond"],
filterCard:function (card,player,target){ filterCard:function(card,player,target){
if(player.storage.yizan) return get.type(card)=='basic'; if(player.storage.yizan) return get.type(card)=='basic';
else if(ui.selected.cards.length){ else if(ui.selected.cards.length){
if(get.type(ui.selected.cards[0])=='basic') return true; if(get.type(ui.selected.cards[0])=='basic') return true;
@ -4033,7 +4055,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return true; return true;
}, },
selectCard:function (){ selectCard:function(){
var player=_status.event.player; var player=_status.event.player;
if(player.storage.yizan) return 1; if(player.storage.yizan) return 1;
return 2; return 2;
@ -4043,7 +4065,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:"sha", name:"sha",
}, },
complexCard:true, complexCard:true,
viewAsFilter:function (player){ viewAsFilter:function(player){
if(!player.storage.yizan){ if(!player.storage.yizan){
if(player.countCards('h')<2) return false; if(player.countCards('h')<2) return false;
} }
@ -4051,17 +4073,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type(card)=='basic'; return get.type(card)=='basic';
},'h'); },'h');
}, },
prompt:function (){ prompt:function(){
var player=_status.event.player; var player=_status.event.player;
var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌';
return '将'+str+'当做杀打出'; return '将'+str+'当做杀打出';
}, },
check:function (card){ check:function(card){
if(!ui.selected.cards.length&&get.type(card)=='basic') return 6; if(!ui.selected.cards.length&&get.type(card)=='basic') return 6;
return 5-get.value(card); return 5-get.value(card);
}, },
ai:{ ai:{
skillTagFilter:function (player){ skillTagFilter:function(player){
if(!player.storage.yizan){ if(!player.storage.yizan){
if(player.countCards('he')<2) return false; if(player.countCards('he')<2) return false;
} }
@ -4073,7 +4095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
"yizan_use":{ "yizan_use":{
init:function (player){ init:function(player){
if(!player.storage.yizan_use) player.storage.yizan_use=0; if(!player.storage.yizan_use) player.storage.yizan_use=0;
if(!player.storage.yizan) player.storage.yizan=false; if(!player.storage.yizan) player.storage.yizan=false;
}, },
@ -4083,7 +4105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
group:["yizan_respond_sha","yizan_respond_shan","yizan_count"], group:["yizan_respond_sha","yizan_respond_shan","yizan_count"],
enable:"chooseToUse", enable:"chooseToUse",
filter:function (event,player){ filter:function(event,player){
if(!player.storage.yizan&&player.countCards('he')<2) return false; if(!player.storage.yizan&&player.countCards('he')<2) return false;
if(event.filterCard({name:'sha'},player,event)|| if(event.filterCard({name:'sha'},player,event)||
event.filterCard({name:'jiu'},player,event)|| event.filterCard({name:'jiu'},player,event)||
@ -4095,7 +4117,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false; return false;
}, },
chooseButton:{ chooseButton:{
dialog:function (event,player){ dialog:function(event,player){
var list=[]; var list=[];
if(event.filterCard({name:'sha'},player,event)){ if(event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']); list.push(['基本','','sha']);
@ -4110,7 +4132,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return ui.create.dialog('翊赞',[list,'vcard'],'hidden'); return ui.create.dialog('翊赞',[list,'vcard'],'hidden');
}, },
check:function (button){ check:function(button){
var player=_status.event.player; var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]}; var card={name:button.link[2],nature:button.link[3]};
if(game.hasPlayer(function(current){ if(game.hasPlayer(function(current){
@ -4129,7 +4151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return 0; return 0;
}, },
backup:function (links,player){ backup:function(links,player){
return { return {
filterCard:function(card,player,target){ filterCard:function(card,player,target){
if(player.storage.yizan) return get.type(card)=='basic'; if(player.storage.yizan) return get.type(card)=='basic';
@ -4157,13 +4179,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
} }
}, },
prompt:function (links,player){ prompt:function(links,player){
var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌';
return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用'; return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用';
}, },
}, },
ai:{ ai:{
order:function (){ order:function(){
var player=_status.event.player; var player=_status.event.player;
var event=_status.event; var event=_status.event;
if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.storage.yizan&&player.countCards('h',{type:'basic'})>2){ if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.storage.yizan&&player.countCards('h',{type:'basic'})>2){
@ -4173,7 +4195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
save:true, save:true,
respondSha:true, respondSha:true,
skillTagFilter:function (player,tag,arg){ skillTagFilter:function(player,tag,arg){
if(!player.storage.yizan&&player.countCards('he')<2) return false; if(!player.storage.yizan&&player.countCards('he')<2) return false;
if(player.hasCard(function(card){ if(player.hasCard(function(card){
return get.type(card)=='basic'; return get.type(card)=='basic';
@ -4195,7 +4217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
complexCard:true, complexCard:true,
audio:2, audio:2,
enable:["chooseToUse","chooseToRespond"], enable:["chooseToUse","chooseToRespond"],
filterCard:function (card,player,target){ filterCard:function(card,player,target){
if(player.storage.yizan) return get.type(card)=='basic'; if(player.storage.yizan) return get.type(card)=='basic';
else if(ui.selected.cards.length){ else if(ui.selected.cards.length){
if(get.type(ui.selected.cards[0])=='basic') return true; if(get.type(ui.selected.cards[0])=='basic') return true;
@ -4203,7 +4225,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return true; return true;
}, },
selectCard:function (){ selectCard:function(){
var player=_status.event.player; var player=_status.event.player;
if(player.storage.yizan) return 1; if(player.storage.yizan) return 1;
return 2; return 2;
@ -4212,7 +4234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{ viewAs:{
name:"shan", name:"shan",
}, },
viewAsFilter:function (player){ viewAsFilter:function(player){
if(!player.storage.yizan){ if(!player.storage.yizan){
if(player.countCards('he')<2) return false; if(player.countCards('he')<2) return false;
} }
@ -4220,18 +4242,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type(card)=='basic'; return get.type(card)=='basic';
},'h'); },'h');
}, },
prompt:function (){ prompt:function(){
var player=_status.event.player; var player=_status.event.player;
var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌';
return '将'+str+'当做闪使用或打出'; return '将'+str+'当做闪使用或打出';
}, },
check:function (card){ check:function(card){
if(!ui.selected.cards.length&&get.type(card)=='basic') return 6; if(!ui.selected.cards.length&&get.type(card)=='basic') return 6;
return 5-get.value(card); return 5-get.value(card);
}, },
ai:{ ai:{
respondShan:true, respondShan:true,
skillTagFilter:function (player){ skillTagFilter:function(player){
if(!player.storage.yizan){ if(!player.storage.yizan){
if(player.countCards('he')<2) return false; if(player.countCards('he')<2) return false;
} }
@ -4240,7 +4262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},'h'); },'h');
}, },
effect:{ effect:{
target:function (card,player,target,current){ target:function(card,player,target,current){
if(get.tag(card,'respondShan')&&current<0) return 0.6 if(get.tag(card,'respondShan')&&current<0) return 0.6
}, },
}, },
@ -4256,23 +4278,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
juexingji:true, juexingji:true,
trigger:{ trigger:{
player:["useCardAfter","respondAfter"], player:'phaseZhunbeiBegin',
}, },
init:function (player){
player.storage.xinfu_longyuan=false;
},
delay:1.2,
skillAnimation:true, skillAnimation:true,
animationColor:'orange', animationColor:'orange',
filter:function (event,player){ filter:function(event,player){
if(player.storage.xinfu_longyuan) return false; if(player.storage.xinfu_longyuan) return false;
return player.storage.yizan_use>2; return player.storage.yizan_use&&player.storage.yizan_use>2;
}, },
content:function (){ content:function(){
player.awakenSkill('xinfu_longyuan'); player.awakenSkill('xinfu_longyuan');
player.storage.yizan=true; player.storage.yizan=true;
game.delay(1); game.delay(1);
}, },
derivation:'yizan_rewrite',
}, },
"yizan_count":{ "yizan_count":{
forced:true, forced:true,
@ -4281,11 +4300,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:["respond","useCard1"], player:["respond","useCard1"],
}, },
filter:function (event,player){ filter:function(event,player){
if(event.skill!='yizan_respond_sha'&&event.skill!='yizan_respond_shan'&&event.skill!='yizan_use_backup') return false; if(event.skill!='yizan_respond_sha'&&event.skill!='yizan_respond_shan'&&event.skill!='yizan_use_backup') return false;
return player.storage.yizan_use!=undefined; return player.storage.yizan_use!=undefined;
}, },
content:function (){ content:function(){
player.storage.yizan_use++; player.storage.yizan_use++;
player.markSkill('yizan_use'); player.markSkill('yizan_use');
}, },
@ -4303,14 +4322,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return false; return false;
}, },
filterCard:function (card){ filterCard:function(card){
return ["bagua","baiyin","lanyinjia","renwang","tengjia","zhuge"].contains(card.name); return ["bagua","baiyin","lanyinjia","renwang","tengjia","zhuge"].contains(card.name);
}, },
discard:false, discard:false,
check:function(){ check:function(){
return 1; return 1;
}, },
content:function (){ content:function(){
"step 0" "step 0"
player.showCards(cards); player.showCards(cards);
"step 1" "step 1"
@ -4330,10 +4349,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:"重铸一张防具牌然后将体力回复至1点。", prompt:"重铸一张防具牌然后将体力回复至1点。",
audio:'xinfu_jingxie', audio:'xinfu_jingxie',
enable:"chooseToUse", enable:"chooseToUse",
filterCard:function (card){ filterCard:function(card){
return get.subtype(card)=='equip2'; return get.subtype(card)=='equip2';
}, },
filter:function (event,player){ filter:function(event,player){
if(event.type=='dying'){ if(event.type=='dying'){
if(player!=event.dying) return false; if(player!=event.dying) return false;
return player.countCards('he',function(card){ return player.countCards('he',function(card){
@ -4352,7 +4371,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.$throw(cards,1000); player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆') game.log(player,'将',cards,'置入了弃牌堆')
}, },
content:function (){ content:function(){
'step 0' 'step 0'
player.draw(); player.draw();
'step 1' 'step 1'
@ -4361,7 +4380,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
order:0.5, order:0.5,
skillTagFilter:function (player){ skillTagFilter:function(player){
if(player.hp>0) return false; if(player.hp>0) return false;
return player.countCards('he',function(card){ return player.countCards('he',function(card){
return get.subtype(card)=='equip2'; return get.subtype(card)=='equip2';
@ -4369,7 +4388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
save:true, save:true,
result:{ result:{
player:function (player){ player:function(player){
return 10; return 10;
}, },
}, },
@ -4378,7 +4397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_qiaosi":{ "xinfu_qiaosi":{
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
content:function (){ content:function(){
'step 0' 'step 0'
if(get.isLuckyStar(player)){ if(get.isLuckyStar(player)){
event.num=6; event.num=6;
@ -5568,6 +5587,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
dynamicTranslate:{
yizan_use:function(player){
if(player.storage.yizan) return '你可以将一张基本牌当做任意基本牌使用或打出。';
return '你可以将两张牌(其中至少一张为基本牌)当做任意基本牌使用或打出。';
},
},
translate:{ translate:{
old_liuzan:'手杀留赞', old_liuzan:'手杀留赞',
re_sp_zhugeliang:"手杀卧龙", re_sp_zhugeliang:"手杀卧龙",
@ -5675,7 +5700,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"yizan_respond_shan":"翊赞", "yizan_respond_shan":"翊赞",
"yizan_respond_shan_info":"", "yizan_respond_shan_info":"",
"xinfu_longyuan":"龙渊", "xinfu_longyuan":"龙渊",
"xinfu_longyuan_info":"觉醒技当你使用或打出的基本牌结算完成后若你本局游戏内发动过〖翊赞〗的次数大于等于3则你将〖翊赞〗描述中的“两张牌”改为“一张牌”。", "xinfu_longyuan_info":"觉醒技准备阶段若你本局游戏内发动过〖翊赞〗的次数大于等于3则你修改〖翊赞〗。",
yizan_rewrite:'翊赞·改',
yizan_rewrite_info:'你可以将一张基本牌当做任意基本牌使用或打出。',
"yizan_count":"翊赞", "yizan_count":"翊赞",
"yizan_count_info":"", "yizan_count_info":"",
"xinfu_jingxie1":"精械", "xinfu_jingxie1":"精械",
@ -5834,7 +5861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shuaiyan_info:'弃牌阶段开始时若你的手牌数大于1则你可以展示所有手牌然后你令一名其他角色交给你一张牌。', shuaiyan_info:'弃牌阶段开始时若你的手牌数大于1则你可以展示所有手牌然后你令一名其他角色交给你一张牌。',
zhengxuan:'郑玄', zhengxuan:'郑玄',
zhengjing:'整经', zhengjing:'整经',
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,w 跳过此回合的判定和摸牌阶段。', zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,且跳过此回合的判定和摸牌阶段。',
zhengjing2:'整经', zhengjing2:'整经',
mobile_yijiang:'武将设计征集大赛', mobile_yijiang:'武将设计征集大赛',
@ -5894,7 +5921,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refuli_info:'限定技当你处于濒死状态时你可以将体力值回复至X点X为势力数。然后若你的体力值为全场唯一最多你翻面。', refuli_info:'限定技当你处于濒死状态时你可以将体力值回复至X点X为势力数。然后若你的体力值为全场唯一最多你翻面。',
xin_caozhang:'手杀曹彰', xin_caozhang:'手杀曹彰',
"rejiangchi":"将驰", "rejiangchi":"将驰",
"rejiangchi_info":"出牌阶段开始时你可以选择一项1、摸一张牌若如此做你本阶段内不能使用【杀】。 2、弃置一张牌若如此做此阶段你使用【杀】无距离限制且你可以额外使用一张【杀。", "rejiangchi_info":"出牌阶段开始时你可以选择一项1、摸一张牌若如此做你本阶段内不能使用【杀】。 2、弃置一张牌若如此做此阶段你使用【杀】无距离限制且你可以额外使用一张【杀】。",
rezhenxing:"镇行",
rezhenxing_info:"结束阶段开始时或当你受到伤害后,你可以观看牌堆顶的三张牌,然后你获得其中与其余牌花色均不相同的一张牌。",
mobile_standard:'手杀异构·标准包', mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临', mobile_shenhua:'手杀异构·神话再临',
mobile_yijiang1:'手杀异构·一将成名', mobile_yijiang1:'手杀异构·一将成名',

View File

@ -43,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_wuyi:['male','shu',4,['xinbenxi']], re_wuyi:['male','shu',4,['xinbenxi']],
re_zhuran:['male','wu',4,['xindanshou']], re_zhuran:['male','wu',4,['xindanshou']],
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']], re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
ol_pangtong:['male','shu',3,['xinlianhuan','olniepan'],[]], ol_pangtong:['male','shu',3,['ollianhuan','olniepan'],[]],
re_zhangyi:['male','shu',4,['rewurong','shizhi']], re_zhangyi:['male','shu',4,['rewurong','shizhi']],
re_wuguotai:['female','wu',3,['reganlu','buyi']], re_wuguotai:['female','wu',3,['reganlu','buyi']],
re_gaoshun:['male','qun',4,['rexianzhen','rejinjiu']], re_gaoshun:['male','qun',4,['rexianzhen','rejinjiu']],
@ -7120,6 +7120,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
dynamicTranslate:{
rejiushi:function(player){
if(player.storage.chengzhang) return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。';
return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面并获得牌堆中的一张随机锦囊。';
},
},
translate:{ translate:{
re_zhangliao:'界张辽', re_zhangliao:'界张辽',
re_huangyueying:'新黄月英', re_huangyueying:'新黄月英',
@ -7493,7 +7499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinyicong:'义从', xinyicong:'义从',
xinyicong_info:'锁定技,你计算与其他角色的距离时-X其他角色计算与你的距离时+Y。X为你的体力值-1Y为你的已损失体力值-1', xinyicong_info:'锁定技,你计算与其他角色的距离时-X其他角色计算与你的距离时+Y。X为你的体力值-1Y为你的已损失体力值-1',
oltianxiang:'天香', oltianxiang:'天香',
oltianxiang_info:'当你受到伤害时,你可以弃置一张红桃牌,防止此伤害并选择一名其他角色然后你选择一项1.令其受到伤害来源对其造成的1点伤害然后摸X张牌X为其已损失体力值且至多为52.令其失去1点体力然后获得你弃置的牌。', oltianxiang_info:'当你受到伤害时,你可以弃置一张红桃防止此伤害并选择一名其他角色然后你选择一项1.令其受到伤害来源对其造成的1点伤害然后摸X张牌X为其已损失体力值且至多为52.令其失去1点体力然后获得你弃置的牌。',
olhongyan:'红颜', olhongyan:'红颜',
olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。', olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。',
piaoling:'飘零', piaoling:'飘零',

View File

@ -2440,6 +2440,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
ollianhuan:{
audio:'xinlianhuan',
audioname:['ol_pangtong'],
group:['ollianhuan3','ollianhuan5','lianhuan4'],
},
ollianhuan5:{
inherit:'lianhuan2',
audioname:['ol_pangtong'],
audio:['xinlianhuan',2],
position:'he',
filter:function(event,player){
return player.countCards('he',{suit:'club'})>0;
},
},
ollianhuan3:{
audio:['xinlianhuan',1],
audioname:['ol_pangtong'],
enable:'chooseToUse',
filter:function(event,player){
return player.countCards('he',{suit:'club'})>0;
},
filterCard:{suit:'club'},
viewAs:{name:'tiesuo'},
prompt:'将一张梅花牌当铁锁连环使用',
check:function(card){return 6-get.value(card)},
position:'he',
},
xinlianhuan:{ xinlianhuan:{
audio:2, audio:2,
audioname:['ol_pangtong'], audioname:['ol_pangtong'],
@ -5995,7 +6022,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin4'}, trigger:{player:'damageBegin4'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('h',{suit:'heart'})>0&&event.num>0; return player.countCards('h',function(card){
return _status.connectMode||get.suit(card,player)=='heart';
})>0&&event.num>0;
}, },
content:function(){ content:function(){
"step 0" "step 0"
@ -6006,7 +6035,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return player!=target; return player!=target;
}, },
// position:'he',
ai1:function(card){ ai1:function(card){
return 10-get.value(card); return 10-get.value(card);
}, },
@ -7094,6 +7122,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
disable_judge:{}, disable_judge:{},
}, },
dynamicTranslate:{
nzry_juzhan:function(player){
if(player.storage.nzry_juzhan1==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。<span class="bluetext">阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。</span>';
return '转换技,<span class="bluetext">阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。</span>阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
},
nzry_zhenliang:function(player){
if(player.storage.nzry_zhenliang==true) return '转换技出牌阶段限一次你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1。<span class="bluetext">阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。</span>';
return '转换技,<span class="bluetext">阴出牌阶段限一次你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1。</span>阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。';
},
nzry_chenglve:function(player){
if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。<span class="bluetext">阳:你可以摸两张牌,然后弃置一张手牌。</span>若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
return '转换技,出牌阶段限一次,<span class="bluetext">阴:你可以摸一张牌,然后弃置两张手牌。</span>阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
},
nzry_shenshi:function(player){
if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。<span class="bluetext">阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。</span>';
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。</span>阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。';
},
},
translate:{ translate:{
"feichu_equip1":"已废除", "feichu_equip1":"已废除",
"feichu_equip1_info":"武器栏已废除", "feichu_equip1_info":"武器栏已废除",
@ -7136,21 +7182,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhoufei:"周妃", zhoufei:"周妃",
"nzry_jianxiang":"荐降", "nzry_jianxiang":"荐降",
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌", "nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌",
"nzry_shenshi1":"审时", "nzry_shenshi1":"审时",
"nzry_shenshi":"审时", "nzry_shenshi":"审时",
"nzry_shenshi_info":"转换技,出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张", "nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张",
"nzry_mingren":"明任", "nzry_mingren":"明任",
"nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”", "nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”",
"nzry_zhenliang":"贞良", "nzry_zhenliang":"贞良",
"nzry_zhenliang_info":"转换技,出牌阶段限一次你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌", "nzry_zhenliang_info":"转换技,阴:出牌阶段限一次你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌",
"nzry_chenglve1":"成略", "nzry_chenglve1":"成略",
"nzry_chenglve":"成略", "nzry_chenglve":"成略",
"nzry_chenglve_info":"转换技,出牌阶段限一次,①你可以摸一张牌,然后弃置两张手牌。②你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制", "nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制",
"nzry_shicai":"恃才", "nzry_shicai":"恃才",
"nzry_shicai_info":"当你使用牌时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌", "nzry_shicai_info":"当你使用牌时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌",
"nzry_cunmu":"寸目", "nzry_cunmu":"寸目",
"nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌", "nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌",
"nzry_kuizhu":"溃诛", "nzry_kuizhu":"溃诛",
"nzry_kuizhu_info":"弃牌阶段结束后你可以选择一项令至多X名角色各摸一张牌或对任意名体力值之和为X的角色造成一点伤害若不少于2名角色你须受到一点伤害。X为你此阶段弃置的牌数", "nzry_kuizhu_info":"弃牌阶段结束后你可以选择一项令至多X名角色各摸一张牌或对任意名体力值之和为X的角色造成一点伤害若不少于2名角色你须受到一点伤害。X为你此阶段弃置的牌数",
"nzry_zhizheng":"掣政", "nzry_zhizheng":"掣政",
@ -7171,7 +7217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌", "nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌",
"nzry_juzhan1":"拒战", "nzry_juzhan1":"拒战",
"nzry_juzhan":"拒战", "nzry_juzhan":"拒战",
"nzry_juzhan_info":"转换技,当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌", "nzry_juzhan_info":"转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌",
liangyin:"良姻", liangyin:"良姻",
"liangyin_info":"当有牌移至游戏外时,你可以令手牌数大于你的一名角色摸一张牌;当有牌从游戏外加入任意角色的手牌时,你可以令手牌数小于你的一名角色弃置一张牌", "liangyin_info":"当有牌移至游戏外时,你可以令手牌数大于你的一名角色摸一张牌;当有牌从游戏外加入任意角色的手牌时,你可以令手牌数小于你的一名角色弃置一张牌",
@ -7374,11 +7420,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bazhen:'八阵', bazhen:'八阵',
kanpo:'看破', kanpo:'看破',
xinlianhuan:'连环', xinlianhuan:'连环',
ollianhuan:'连环',
lianhuan:'连环', lianhuan:'连环',
lianhuan1:'连环', lianhuan1:'连环',
lianhuan3:'连环', lianhuan3:'连环',
lianhuan2:'连铸', lianhuan2:'连铸',
lianhuan5:'连铸', lianhuan5:'连铸',
ollianhuan3:'连环',
niepan:'涅槃', niepan:'涅槃',
oldniepan:'涅槃', oldniepan:'涅槃',
quhu:'驱虎', quhu:'驱虎',
@ -7392,6 +7440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xueyi:'血裔', xueyi:'血裔',
mengjin:'猛进', mengjin:'猛进',
xinlianhuan_info:' 你可以将一张♣手牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。', xinlianhuan_info:' 你可以将一张♣手牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。',
ollianhuan_info:' 你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。',
huoji_info:'出牌阶段,你可以将你的任意一张红色手牌当作【火攻】使用。', huoji_info:'出牌阶段,你可以将你的任意一张红色手牌当作【火攻】使用。',
bazhen_info:'锁定技,若你的防具栏内没有牌且没有被废除,则你视为装备着【八卦阵】。', bazhen_info:'锁定技,若你的防具栏内没有牌且没有被废除,则你视为装备着【八卦阵】。',
kanpo_info:'你可以将你的任意一张黑色手牌当做【无懈可击】使用。', kanpo_info:'你可以将你的任意一张黑色手牌当做【无懈可击】使用。',

View File

@ -571,6 +571,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
logTarget:'player', logTarget:'player',
skillAnimation:true, skillAnimation:true,
limited:true,
animationColor:'thunder', animationColor:'thunder',
content:function(){ content:function(){
'step 0' 'step 0'
@ -601,7 +602,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player!=event.player&&event.player.countCards('he')&&!event.player.countCards('j'); return player!=event.player&&!event.player.storage._disableJudge&&event.player.countCards('he')&&!event.player.countCards('j');
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -615,8 +616,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card=result.cards[0]; var card=result.cards[0];
trigger.player.$throw(card); trigger.player.$throw(card);
game.delayx(); game.delayx();
if(get.type(card)=='delay') trigger.player.addJudge(card); if(get.type(card,false)=='delay') trigger.player.addJudge(card);
else trigger.player.addJudge({name:get.color(card)=='red'?'lebu':'bingliang'},result.cards); else trigger.player.addJudge({name:get.color(card,false)=='red'?'lebu':'bingliang'},result.cards);
} }
}, },
group:'shanzhuan_draw', group:'shanzhuan_draw',
@ -2701,11 +2702,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:["new_luoyan_tianxiang","new_luoyan_liuli"], group:["new_luoyan_tianxiang","new_luoyan_liuli"],
}, },
"new_luoyan_tianxiang":{ "new_luoyan_tianxiang":{
inherit:"retianxiang", inherit:"oltianxiang",
filter:function (event,player){ filter:function (event,player){
if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false; if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false;
if(player.hasSkill('retianxiang')||player.hasSkill('tianxiang')) return false; if(player.hasSkill('oltianxiang')) return false;
return lib.skill.retianxiang.filter(event,player); return lib.skill.oltianxiang.filter(event,player);
}, },
audio:"tianxiang", audio:"tianxiang",
}, },
@ -5068,6 +5069,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.remove(players[i].name1); list.remove(players[i].name1);
list.remove(players[i].name2); list.remove(players[i].name2);
} }
list.remove('zhaoyun');
list.remove('re_zhaoyun');
list.remove('ol_zhaoyun');
// var dialog=ui.create.dialog(); // var dialog=ui.create.dialog();
// dialog.add([list.randomGets(5),'character']); // dialog.add([list.randomGets(5),'character']);
player.chooseButton(true).set('ai',function(button){ player.chooseButton(true).set('ai',function(button){
@ -8639,15 +8643,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{source:'damageBegin1'}, trigger:{source:'damageBegin1'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){ if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){
if(!player.countCards('h',{color:'black'})) return false; if(_status.connectMode&&get.position(card)=='h') return true;
} return get.color(card)=='black';
})) return false;
return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player; return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var goon=(get.attitude(player,trigger.player)<0); var goon=(get.attitude(player,trigger.player)<0);
var next=player.chooseToDiscard(get.prompt('jieyuan',trigger.player)); var next=player.chooseToDiscard(get.prompt('jieyuan',trigger.player),player.hasSkill('fenxin_nei')?'he':'h');
if(!player.hasSkill('fenxin_nei')){ if(!player.hasSkill('fenxin_nei')){
next.set('filterCard',function(card){ next.set('filterCard',function(card){
return get.color(card)=='black'; return get.color(card)=='black';
@ -8675,15 +8680,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'damageBegin2'}, trigger:{player:'damageBegin2'},
filter:function(event,player){ filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){ if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){
if(!player.countCards('h',{color:'red'})) return false; if(_status.connectMode&&get.position(card)=='h') return true;
} return get.color(card)=='black';
})) return false;
return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source; return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source;
}, },
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
var next=player.chooseToDiscard(get.prompt('jieyuan')); var next=player.chooseToDiscard(get.prompt('jieyuan'),player.hasSkill('fenxin_nei')?'he':'h');
if(!player.hasSkill('fenxin_nei')){ if(!player.hasSkill('fenxin_nei')){
next.set('filterCard',function(card){ next.set('filterCard',function(card){
return get.color(card)=='red'; return get.color(card)=='red';
@ -12951,17 +12957,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
event.target1=targets[0]; event.target1=targets[0];
targets[0].gain(cards,player,'give'); targets[0].gain(cards,player,'giveAuto');
"step 1"
if(!targets[0].countCards('h')){
event.finish();
return;
}
var players=game.filterPlayer(); var players=game.filterPlayer();
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
if(players[i].countCards('h')&&players[i]!=event.target1&&players[i]!=player){ if(players[i]!=event.target1&&players[i]!=player&&event.target1.canCompare(players[i])){
break; break;
} }
} }
if(i==players.length){ if(i==players.length){
event.finish(); event.finish();
} }
"step 1" "step 2"
player.chooseTarget(true,'选择拼点目标',function(card,player,target){ player.chooseTarget(true,'选择拼点目标',function(card,player,target){
return _status.event.target1.canCompare(target)&&target!=player; return _status.event.target1.canCompare(target)&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
@ -12972,8 +12983,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return eff-10; return eff-10;
} }
return eff; return eff;
}).set('target1',event.target1); }).set('target1',event.target1).set('forceDie',true);
"step 2" "step 3"
if(result.targets.length){ if(result.targets.length){
event.target2=result.targets[0]; event.target2=result.targets[0];
event.target1.line(event.target2); event.target1.line(event.target2);
@ -12982,10 +12993,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
event.finish(); event.finish();
} }
"step 3" "step 4"
if(!result.tie){ if(!result.tie){
if(result.bool&&event.target1.canUse({name:'sha',isCard:true},event.target2,false)){ if(result.bool){
event.target1.useCard({name:'sha',isCard:true},event.target2); if(event.target1.canUse({name:'sha',isCard:true},event.target2,false)) event.target1.useCard({name:'sha',isCard:true},event.target2);
} }
else if(event.target2.canUse({name:'sha',isCard:true},event.target1,false)){ else if(event.target2.canUse({name:'sha',isCard:true},event.target1,false)){
event.target2.useCard({name:'sha',isCard:true},event.target1); event.target2.useCard({name:'sha',isCard:true},event.target1);
@ -14483,6 +14494,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
dynamicTranslate:{
kunfen:function(player){
if(player.storage.kunfen) return '结束阶段开始时你可以失去1点体力然后摸两张牌。';
return '锁定技结束阶段开始时你失去1点体力然后摸两张牌。';
},
jieyuan:function(player){
var str='当你对一名其他角色造成伤害时,'
if(!player.hasSkill('fenxin_fan')) str+='若其体力值大于或等于你的体力值,';
str+='你可弃置一张';
if(!player.hasSkill('fenxin_nei')) str+='黑色手';
str+='牌,令此伤害+1当你受到一名其他角色造成的伤害时';
if(!player.hasSkill('fenxin_zhong')) str+='若其体力值大于或等于你的体力值,';
str+='你可弃置一张'
if(!player.hasSkill('fenxin_nei')) str+='红色手';
str+='牌,令此伤害-1。';
return str;
},
},
translate:{ translate:{
"xinfu_lingren":"凌人", "xinfu_lingren":"凌人",
"xinfu_lingren_info":"每回合限一次。当你于出牌阶段使用带有「伤害」这一标签的基本牌或普通锦囊牌指定目标后你可以猜测其中的一个目标的手牌中是否有基本牌锦囊牌或装备牌。若你猜中的项目数≥1此牌对该角色的伤害+1≥2你摸两张牌≥3你获得技能〖奸雄〗和〖行殇〗直到下回合开始。", "xinfu_lingren_info":"每回合限一次。当你于出牌阶段使用带有「伤害」这一标签的基本牌或普通锦囊牌指定目标后你可以猜测其中的一个目标的手牌中是否有基本牌锦囊牌或装备牌。若你猜中的项目数≥1此牌对该角色的伤害+1≥2你摸两张牌≥3你获得技能〖奸雄〗和〖行殇〗直到下回合开始。",
@ -15004,7 +15033,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1当你受到一名其他角色造成的伤害时若其体力值大于或等于你的体力值你可弃置一张红色手牌令此伤害-1。', jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1当你受到一名其他角色造成的伤害时若其体力值大于或等于你的体力值你可弃置一张红色手牌令此伤害-1。',
fenxin:'焚心', fenxin:'焚心',
fenxin_old:'焚心', fenxin_old:'焚心',
fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色限制。', fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色和区域限制。',
fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)', fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)',
qingyi:'轻逸', qingyi:'轻逸',
qingyi1:'轻逸', qingyi1:'轻逸',

View File

@ -1307,17 +1307,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player,name){ filter:function(event,player,name){
if(!player.countCards('he')||player.hasSkill('souying2')) return false; if(!player.countCards('he')||player.hasSkill('souying2')) return false;
if(!event.targets||event.targets.length!=1||event.player==event.target) return false; if(!event.targets||event.targets.length!=1||event.player==event.target) return false;
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
if(name=='useCardToPlayered'){ if(name=='useCardToPlayered'){
if(!event.cards.filterInD().length) return false; if(!event.cards.filterInD().length) return false;
var target=event.target; var target=event.target;
return player.getHistory('useCard',function(evt){ return player.getHistory('useCard',function(evt){
return evt.targets&&evt.targets.length==1&&evt.targets[0]==target; return evt.targets&&evt.targets.contains(target);
}).indexOf(event.getParent())>0; }).indexOf(event.getParent())>0;
} }
else{ else{
var source=event.player; var source=event.player;
return source.getHistory('useCard',function(evt){ return source.getHistory('useCard',function(evt){
return evt.targets&&event.targets.length==1&&evt.targets[0]==player; return evt.targets&&evt.targets.contains(player);
}).indexOf(event.getParent())>0; }).indexOf(event.getParent())>0;
} }
}, },
@ -1955,19 +1956,68 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
fenglve2:{ fenglve2:{
trigger:{player:'chooseToCompareAfter'}, trigger:{
player:'chooseToCompareAfter',
target:'chooseToCompareAfter',
},
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)*get.value(event.card1,event.target,'raw')>0; var card,target;
if(player==event.player){
card=event.card1;
target=event.target;
}
else{
card=event.card2;
target=event.player;
}
return get.attitude(player,target)*get.value(card,target,'raw')>0;
}, },
filter:function(event,player){ filter:function(event,player){
return event.getParent().name=='fenglve'&&get.position(event.card1,true)=='o'; if(event.targets) return false;
var card,target;
if(player==event.player){
card=event.card1;
target=event.target;
}
else{
card=event.card2;
target=event.player;
}
return get.position(card,true)=='o';
}, },
prompt:function(event){ prompt:function(event,player){
return '是否令'+get.translation(event.target)+'获得'+get.translation(event.card1)+'' var card,target;
if(player==event.player){
card=event.card1;
target=event.target;
}
else{
card=event.card2;
target=event.player;
}
return '是否发动【锋略】,令'+get.translation(target)+'获得'+get.translation(card)+''
},
logTarget:function(event,player){
var target;
if(player==event.player){
target=event.target;
}
else{
target=event.player;
}
return target;
}, },
logTarget:'target',
content:function(){ content:function(){
trigger.target.gain(trigger.card1,'gain2','log'); var card,target;
if(player==trigger.player){
card=trigger.card1;
target=trigger.target;
}
else{
card=trigger.card2;
target=trigger.player;
}
target.gain(card,'gain2','log');
}, },
}, },
mouzhi:{ mouzhi:{
@ -4588,13 +4638,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 2' 'step 2'
event.cards=get.cards(num); event.cards=get.cards(num);
player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){ player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){
for(var i=0;i<event.cards.length;i++){ var cards=_status.event.cards;
if(button.link!=event.cards[i]&&get.suit(event.cards[i])==get.suit(button.link)) return false; for(var i=0;i<cards.length;i++){
if(button.link!=cards[i]&&get.suit(cards[i])==get.suit(button.link)) return false;
} }
return true; return true;
}).set('ai',function(button){ }).set('ai',function(button){
return get.value(button.link); return get.value(button.link);
}); }).set('cards',event.cards);
'step 3' 'step 3'
var tothrow=[]; var tothrow=[];
for(var i=event.cards.length-1;i>=0;i--){ for(var i=event.cards.length-1;i>=0;i--){
@ -5215,6 +5266,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return mode=='versus'&&['guandu','4v4','four'].contains(_status.mode); return mode=='versus'&&['guandu','4v4','four'].contains(_status.mode);
}, },
}, },
dynamicTranslate:{
xinlvli:function(player){
var str='每回合限一次';
if(player.storage.choujue) str+='(自己的回合内则改为限两次)';
str+=',当你造成';
if(player.storage.beishui) str+='或受到';
str+='伤害后你可选择1若你的体力值大于你的手牌数你摸张牌2若你的手牌数大于你的体力值且你已受伤你回复点体力为你的手牌数与体力值之差。';
return str;
},
mubing:function(player){
if(player.storage.mubing2) return '出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。';
return '出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。';
},
},
translate:{ translate:{
lijue:"李傕", lijue:"李傕",
zhangji:"张济", zhangji:"张济",
@ -5379,7 +5444,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xunchen:'荀谌', xunchen:'荀谌',
fenglve:'锋略', fenglve:'锋略',
fenglve2:'锋略', fenglve2:'锋略',
fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。拼点结算后你可以令其获得你拼点的牌。', fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。当你的单人拼点结算后,你可以令对方获得你拼点的牌。',
mouzhi:'谋识', mouzhi:'谋识',
mouzhi2:'谋识', mouzhi2:'谋识',
mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。', mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。',
@ -5434,7 +5499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mansi:'蛮嗣', mansi:'蛮嗣',
mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。', mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
souying:'薮影', souying:'薮影',
souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张牌,你可以弃置一张牌将此牌收回手牌(或令此牌对你无效)。', souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用【杀】或普通锦囊牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张【杀】或普通锦囊牌,你可以弃置一张牌,获得此牌对应的所有实体牌(或令此牌对你无效)。',
zhanyuan:'战缘', zhanyuan:'战缘',
zhanyuan_info:'觉醒技准备阶段若你已因蛮嗣累计获得超过7张牌你加一点体力上限并回复1点体力并可以选择一名男性角色你与其获得技能〖系力〗然后你失去技能〖蛮嗣〗', zhanyuan_info:'觉醒技准备阶段若你已因蛮嗣累计获得超过7张牌你加一点体力上限并回复1点体力并可以选择一名男性角色你与其获得技能〖系力〗然后你失去技能〖蛮嗣〗',
hmxili:'系力', hmxili:'系力',

View File

@ -2748,15 +2748,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinbiyue:'闭月', xinbiyue:'闭月',
pileTop:'牌堆顶', pileTop:'牌堆顶',
pileBottom:'牌堆底', pileBottom:'牌堆底',
ganglie_info:'当你受到伤害后,你可以进行判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。', ganglie_info:'当你受到伤害后,你可以判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。',
tuxi_info:'摸牌阶段,你可以改为获得至多两名其他角色的各一张手牌。', tuxi_info:'摸牌阶段,你可以改为获得至多两名其他角色的各一张手牌。',
luoyi_info:'摸牌阶段,你可以少摸一张牌。若如此做,当你本回合内使用【杀】或【决斗】造成伤害时,此伤害+1。', luoyi_info:'摸牌阶段,你可以少摸一张牌。若如此做,当你本回合内使用【杀】或【决斗】造成伤害时,此伤害+1。',
tiandu_info:'当你的判定牌生效后,你可以获得之。', tiandu_info:'当你的判定牌生效后,你可以获得之。',
yiji_info:'当你受到一点伤害后,你可以观看牌堆顶的两张牌,然后将其分配给任意角色。', yiji_info:'当你受到一点伤害后,你可以观看牌堆顶的两张牌,然后将其分配给任意角色。',
luoshen_info:'准备阶段,你可以进行判定。若结果为黑色,你获得判定牌。你可重复此流程,直到出现红色的判定结果。', luoshen_info:'准备阶段,你可以判定。若结果为黑色,你获得判定牌。你可重复此流程,直到出现红色的判定结果。',
luoshen_info_guozhan:'准备阶段,你可以进行一次判定。若结果为黑色,则可以继续判定,直到出现红色的判定牌。然后你获得所有黑色的判定牌。(判定结果为黑色的牌在此过程中不会进入弃牌堆)', luoshen_info_guozhan:'准备阶段,你可以判定。若结果为黑色,则可以继续判定,直到出现红色的判定牌。然后你获得所有黑色的判定牌。(判定结果为黑色的牌在此过程中不会进入弃牌堆)',
xinluoshen_info:'准备阶段,你可以进行一定判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌', xinluoshen_info:'准备阶段,你可以判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌',
xinluoshen_info_alter:'准备阶段,你可以进行一定判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌。你通过洛神获得的牌,不计入当前回合的手牌上限', xinluoshen_info_alter:'准备阶段,你可以判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌。你通过洛神获得的牌,不计入当前回合的手牌上限',
qingguo_info:'你可以将一张黑色手牌当做【闪】使用或打出。', qingguo_info:'你可以将一张黑色手牌当做【闪】使用或打出。',
rende_info:'出牌阶段你可以将任意张手牌交给其他角色。当你以此法于一回合内给出第二张牌时你回复1点体力。', rende_info:'出牌阶段你可以将任意张手牌交给其他角色。当你以此法于一回合内给出第二张牌时你回复1点体力。',
jijiang_info:'主公技,当你需要使用或打出【杀】时,你可以令其他蜀势力角色依次选择是否打出一张【杀】。若有角色响应,则你视为使用或打出了此【杀】。', jijiang_info:'主公技,当你需要使用或打出【杀】时,你可以令其他蜀势力角色依次选择是否打出一张【杀】。若有角色响应,则你视为使用或打出了此【杀】。',
@ -2824,9 +2824,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhongyi2:'忠义', zhongyi2:'忠义',
zhongyi_info:'限定技,出牌阶段,你可以将一张牌置于武将牌上。你的武将牌上有〖忠义〗牌时,己方角色使用【杀】造成的伤害+1。下轮游戏开始时你将〖忠义〗牌置入弃牌堆。', zhongyi_info:'限定技,出牌阶段,你可以将一张牌置于武将牌上。你的武将牌上有〖忠义〗牌时,己方角色使用【杀】造成的伤害+1。下轮游戏开始时你将〖忠义〗牌置入弃牌堆。',
zhanshen:'战神', zhanshen:'战神',
zhanshen_info:'觉醒技准备阶段若场上有已死亡的其他己方角色且你已受伤则你弃置装备区的武器牌减1点体力上限获得技能〖马术〗和〖神戟〗', zhanshen_info:'觉醒技准备阶段若场上有已死亡的其他己方角色且你已受伤则你弃置装备区的武器牌减1点体力上限获得技能〖马术〗和〖神戟〗',
shenji:'神戟', shenji:'神戟',
shenji_info:'锁定技,你使用【杀】指定的目标数上限+2次数上限+1', shenji_info:'锁定技,你使用【杀】指定的目标数上限+2次数上限+1',
standard_2008:"2008版标准包", standard_2008:"2008版标准包",
standard_2013:"2013版标准包", standard_2013:"2013版标准包",

View File

@ -889,19 +889,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
} }
'step 2' 'step 2'
var stat=trigger.player.getStat(); var next=trigger.player.phaseUse();
stat.card={}; event.next.remove(next);
for(var i in stat.skill){ trigger.getParent('phase').next.push(next);
var bool=false;
var info=lib.skill[i];
if(info.enable!=undefined){
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
}
if(bool) stat.skill[i]=0;
}
'step 3'
trigger.player.phaseUse();
}, },
ai:{ ai:{
expose:0.5, expose:0.5,

View File

@ -878,20 +878,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'dangxian', audio:'dangxian',
audioname:['guansuo','xin_liaohua','re_liaohua'], audioname:['guansuo','xin_liaohua','re_liaohua'],
content:function(){ content:function(){
'step 0' var next=player.phaseUse();
player.phaseUse().xindangxian=true; next.xindangxian=true;
'step 1' event.next.remove(next);
var stat=player.getStat(); trigger.next.push(next);
stat.card={};
for(var i in stat.skill){
var bool=false;
var info=lib.skill[i];
if(info.enable!=undefined){
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
}
if(bool) stat.skill[i]=0;
}
}, },
group:'xindangxian_rewrite', group:'xindangxian_rewrite',
subSkill:{ subSkill:{
@ -1443,8 +1433,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else if(pe==te) return "摸一张牌"; else if(pe==te) return "摸一张牌";
else if(pe<te) return "失去体力"; else if(pe<te) return "失去体力";
}, },
line:"thunder", line:"thunder",
content:function (){ content:function (){
var pe=player.countCards('e'); var pe=player.countCards('e');
var te=target.countCards('e'); var te=target.countCards('e');
if(pe>te) target.recover(); if(pe>te) target.recover();
@ -6051,20 +6041,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
audioname:['guansuo'], audioname:['guansuo'],
content:function(){ content:function(){
'step 0' var next=player.phaseUse();
player.phaseUse(); event.next.remove(next);
'step 1' trigger.next.push(next);
var stat=player.getStat();
stat.card={};
for(var i in stat.skill){
var bool=false;
var info=lib.skill[i];
if(info.enable!=undefined){
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
}
if(bool) stat.skill[i]=0;
}
} }
}, },
longyin:{ longyin:{
@ -12033,6 +12012,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
dynamicTranslate:{
rejueqing:function(player){
if(player.hasSkill('rejueqing_1st')) return '锁定技,你即将造成的伤害均视为失去体力。';
return '当你对其他角色造成伤害时你可以防止此伤害。若如此做你令其失去2X点体力修改〖绝情〗并对自己造成2X点伤害。';
},
reyanzhu:function(player){
if(!player.storage.reyanzhu) return '出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。';
return '出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。';
},
rexingxue:function(player){
if(player.storage.reyanzhu) return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。';
return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。';
},
jiaozhao:function(player){
if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。';
if(player.storage.jiaozhao1) return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。';
return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。';
},
funan:function(player){
if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。';
return '其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。';
},
},
translate:{ translate:{
old_huaxiong:'华雄', old_huaxiong:'华雄',
yufan:'虞翻', yufan:'虞翻',
@ -12213,9 +12215,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xintaoluan_info:'若场上没有濒死的角色则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用此牌不得是本回合内你以此法使用过的牌然后你令一名其他角色选择一项1.交给你X张与你以此法使用的牌类别不同的牌2.你失去X点体力且滔乱无效直到回合结束X为你本回合内发动过〖滔乱〗的次数且至多为3', xintaoluan_info:'若场上没有濒死的角色则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用此牌不得是本回合内你以此法使用过的牌然后你令一名其他角色选择一项1.交给你X张与你以此法使用的牌类别不同的牌2.你失去X点体力且滔乱无效直到回合结束X为你本回合内发动过〖滔乱〗的次数且至多为3',
jiaozhao:'矫诏', jiaozhao:'矫诏',
jiaozhao2:'矫诏', jiaozhao2:'矫诏',
jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标', jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标',
danxin:'殚心', danxin:'殚心',
danxin_info:'当你受到伤害后你可以摸一张牌或对“矫诏”的描述依次执行下列一项修改1.将“基本牌”改为“基本牌或普通锦囊牌”2.将“选择距离最近的一名其他角色,该角色”改为“你”', danxin_info:'当你受到伤害后你可以摸一张牌或对“矫诏”的描述依次执行下列一项修改1.将“基本牌”改为“基本牌或普通锦囊牌”2.将“选择距离最近的一名其他角色,该角色”改为“你”',
duliang:'督粮', duliang:'督粮',
duliang2:'督粮', duliang2:'督粮',
duliang_info:'出牌阶段限一次你可以获得一名其他角色的一张手牌然后选择一项1.令其观看牌堆顶的两张牌然后获得其中的基本牌2.令其于下个摸牌阶段额外摸一张牌。', duliang_info:'出牌阶段限一次你可以获得一名其他角色的一张手牌然后选择一项1.令其观看牌堆顶的两张牌然后获得其中的基本牌2.令其于下个摸牌阶段额外摸一张牌。',
@ -12314,7 +12316,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyanzhu2:'宴诛', reyanzhu2:'宴诛',
reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。', reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。',
reyanzhu_rewrite:'宴诛·改', reyanzhu_rewrite:'宴诛·改',
reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1', reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。',
rexingxue:'兴学', rexingxue:'兴学',
rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。', rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。',
rexingxue_rewrite:'兴学·改', rexingxue_rewrite:'兴学·改',

View File

@ -613,18 +613,18 @@ window.noname_asset_list=[
'audio/die/xin_gongsunzan.mp3', 'audio/die/xin_gongsunzan.mp3',
'audio/die/xin_liaohua.mp3', 'audio/die/xin_liaohua.mp3',
'audio/die/xin_xusheng.mp3', 'audio/die/xin_xusheng.mp3',
'audio/die/bianfuren.mp3.mp3', 'audio/die/bianfuren.mp3',
'audio/die/caochun.mp3.mp3', 'audio/die/caochun.mp3',
'audio/die/mizhu.mp3.mp3', 'audio/die/mizhu.mp3',
'audio/die/re_hanhaoshihuan.mp3.mp3', 'audio/die/re_hanhaoshihuan.mp3',
'audio/die/re_panfeng.mp3.mp3', 'audio/die/re_panfeng.mp3',
'audio/die/re_panzhangmazhong.mp3.mp3', 'audio/die/re_panzhangmazhong.mp3',
'audio/die/shen_ganning.mp3.mp3', 'audio/die/shen_ganning.mp3',
'audio/die/shen_zhangliao.mp3.mp3', 'audio/die/shen_zhangliao.mp3',
'audio/die/shixie.mp3.mp3', 'audio/die/shixie.mp3',
'audio/die/simazhao.mp3.mp3', 'audio/die/simazhao.mp3',
'audio/die/sunqian.mp3.mp3', 'audio/die/sunqian.mp3',
'audio/die/wuxian.mp3.mp3', 'audio/die/wuxian.mp3',
'audio/skill/anguo1.mp3', 'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3', 'audio/skill/anguo2.mp3',
@ -2717,28 +2717,40 @@ window.noname_asset_list=[
'audio/skill/zhuiyi_re_bulianshi2.mp3', 'audio/skill/zhuiyi_re_bulianshi2.mp3',
'audio/skill/zishou_re_liubiao1.mp3', 'audio/skill/zishou_re_liubiao1.mp3',
'audio/skill/zishou_re_liubiao2.mp3', 'audio/skill/zishou_re_liubiao2.mp3',
'audio/skill/gzfudi1.mp3.mp3', 'audio/skill/gzfudi1.mp3',
'audio/skill/gzfudi2.mp3.mp3', 'audio/skill/gzfudi2.mp3',
'audio/skill/reanjian1.mp3.mp3', 'audio/skill/reanjian1.mp3',
'audio/skill/reanjian2.mp3.mp3', 'audio/skill/reanjian2.mp3',
'audio/skill/reduodao1.mp3.mp3', 'audio/skill/reduodao1.mp3',
'audio/skill/reduodao2.mp3.mp3', 'audio/skill/reduodao2.mp3',
'audio/skill/relonghun1.mp3.mp3', 'audio/skill/relonghun1.mp3',
'audio/skill/relonghun2.mp3.mp3', 'audio/skill/relonghun2.mp3',
'audio/skill/reshenduan1.mp3.mp3', 'audio/skill/reshenduan1.mp3',
'audio/skill/reshenduan2.mp3.mp3', 'audio/skill/reshenduan2.mp3',
'audio/skill/reyonglve1.mp3.mp3', 'audio/skill/reyonglve1.mp3',
'audio/skill/reyonglve2.mp3.mp3', 'audio/skill/reyonglve2.mp3',
'audio/skill/wanwei1.mp3.mp3', 'audio/skill/wanwei1.mp3',
'audio/skill/wanwei2.mp3.mp3', 'audio/skill/wanwei2.mp3',
'audio/skill/xiaoji_sp_sunshangxiang1.mp3.mp3', 'audio/skill/xiaoji_sp_sunshangxiang1.mp3',
'audio/skill/xiaoji_sp_sunshangxiang2.mp3.mp3', 'audio/skill/xiaoji_sp_sunshangxiang2.mp3',
'audio/skill/xinjuejing1.mp3.mp3', 'audio/skill/xinjuejing1.mp3',
'audio/skill/xinjuejing2.mp3.mp3', 'audio/skill/xinjuejing2.mp3',
'audio/skill/xinkuangfu1.mp3.mp3', 'audio/skill/xinkuangfu1.mp3',
'audio/skill/xinkuangfu2.mp3.mp3', 'audio/skill/xinkuangfu2.mp3',
'audio/skill/yuejian1.mp3.mp3', 'audio/skill/yuejian1.mp3',
'audio/skill/yuejian2.mp3.mp3', 'audio/skill/yuejian2.mp3',
'audio/skill/jilue_fangzhu1.mp3',
'audio/skill/jilue_guicai1.mp3',
'audio/skill/jilue_jizhi1.mp3',
'audio/skill/jilue_zhiheng1.mp3',
'audio/skill/lianpo1.mp3',
'audio/skill/lianpo2.mp3',
'audio/skill/renjie21.mp3',
'audio/skill/renjie22.mp3',
'audio/skill/sbaiyin1.mp3',
'audio/skill/sbaiyin2.mp3',
'audio/skill/wansha_shen_simayi1.mp3',
'audio/skill/wansha_shen_simayi2.mp3',
'font/huangcao.ttf', 'font/huangcao.ttf',
'font/shousha.ttf', 'font/shousha.ttf',
@ -5210,6 +5222,12 @@ window.noname_skin_list={
key_kamome:1, key_kamome:1,
key_umi:1, key_umi:1,
key_umi2:1, key_umi2:1,
key_mio:1, key_mio:3,
key_midori:1, key_midori:1,
key_akane:1,
key_kagari:1,
key_kud:2,
key_misuzu:1,
key_nagisa:1,
key_rin:3,
}; };

View File

@ -45,6 +45,7 @@
characterPack:{}, characterPack:{},
characterFilter:{}, characterFilter:{},
characterSort:{}, characterSort:{},
dynamicTranslate:{},
cardPack:{}, cardPack:{},
onresize:[], onresize:[],
onphase:[], onphase:[],
@ -9876,7 +9877,8 @@
card.cards=cards.slice(0); card.cards=cards.slice(0);
event.card=card; event.card=card;
} }
if(!lib.filter.cardEnabled(card,player)){ if(!lib.filter.cardEnabled(card,player)||(event.addCount!==false&&!lib.filter.cardUsable(card,player))){
event.result={bool:false};
event.finish(); event.finish();
return; return;
} }
@ -9961,6 +9963,7 @@
if(event.noTargetDelay) next.targetDelay=false; if(event.noTargetDelay) next.targetDelay=false;
if(event.nodelayx) next.delayx=false; if(event.nodelayx) next.delayx=false;
} }
else event.result={bool:false};
}, },
chooseToDuiben:function(){ chooseToDuiben:function(){
'step 0' 'step 0'
@ -10934,8 +10937,9 @@
else if(typeof info.prompt2=='string'){ else if(typeof info.prompt2=='string'){
next.set('prompt2',info.prompt2); next.set('prompt2',info.prompt2);
} }
else if(info.prompt2!=false&&lib.translate[event.skill+'_info']){ else if(info.prompt2!=false){
next.set('prompt2',lib.translate[event.skill+'_info']); if(lib.dynamicTranslate[event.skill]) next.set('prompt2',lib.dynamicTranslate[event.skill](player,event.skill));
else if(lib.translate[event.skill+'_info']) next.set('prompt2',lib.translate[event.skill+'_info']);
} }
if(trigger.skillwarn){ if(trigger.skillwarn){
if(next.prompt2){ if(next.prompt2){
@ -11399,7 +11403,24 @@
delete ui.tempnowuxie; delete ui.tempnowuxie;
} }
}); });
//delete player.using; "step 2"
var stat=player.getStat();
for(var i in stat.skill){
var bool=false;
var info=lib.skill[i];
if(!info) continue;
if(info.enable!=undefined){
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
}
if(bool) stat.skill[i]=0;
}
for(var i in stat.card){
var bool=false;
var info=lib.card[i];
if(!info) continue;
if(info.updateUsable=='phaseUse') stat.card[i]=0;
}
}, },
phaseDiscard:function(){ phaseDiscard:function(){
"step 0" "step 0"
@ -24331,11 +24352,14 @@
}, },
cardUsable:function(card,player,event){ cardUsable:function(card,player,event){
card=get.autoViewAs(card,null,player); card=get.autoViewAs(card,null,player);
if(player!=_status.event.player) return true; var info=get.info(card);
event=event||_status.event; if(info.updateUsable=='phaseUse'){
if(event.getParent().name!='phaseUse') return true; event=event||_status.event;
if(event.getParent().player!=player) return true; if(player!=_status.event.player) return true;
var num=get.info(card).usable; if(event.getParent().name!='phaseUse') return true;
if(event.getParent().player!=player) return true;
}
var num=info.usable;
if(typeof num=='function') num=num(card,player); if(typeof num=='function') num=num(card,player);
num=game.checkMod(card,player,num,'cardUsable',player); num=game.checkMod(card,player,num,'cardUsable',player);
if(typeof num!='number') return true; if(typeof num!='number') return true;
@ -45916,6 +45940,9 @@
else if(info.promptfunc){ else if(info.promptfunc){
event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+info.promptfunc(event,event.player)+'</div></div>'); event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+info.promptfunc(event,event.player)+'</div></div>');
} }
else if(lib.dynamicTranslate[skill]){
event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+lib.dynamicTranslate[skill](event.player,skill)+'</div></div>');
}
else if(lib.translate[skill+'_info']){ else if(lib.translate[skill+'_info']){
event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+lib.translate[skill+'_info']+'</div></div>'); event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+lib.translate[skill+'_info']+'</div></div>');
} }
@ -49036,7 +49063,8 @@
} }
return get.translation(str); return get.translation(str);
}, },
skillInfoTranslation:function(name){ skillInfoTranslation:function(name,player){
if(player&&lib.dynamicTranslate[name]) return lib.dynamicTranslate[name](player,name);
var str=lib.translate[name+'_info']; var str=lib.translate[name+'_info'];
if(!str) return ''; if(!str) return '';
return str; return str;
@ -49738,15 +49766,15 @@
else{ else{
forbidstr+='(双将禁用)<br>'; forbidstr+='(双将禁用)<br>';
} }
forbidstr+=get.skillInfoTranslation(skills[i])+'</div></div>' forbidstr+=get.skillInfoTranslation(skills[i],node)+'</div></div>'
uiintro.add(forbidstr); uiintro.add(forbidstr);
} }
else if(!skills2.contains(skills[i])){ else if(!skills2.contains(skills[i])){
uiintro.add('<div style="opacity:0.5"><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>'); uiintro.add('<div style="opacity:0.5"><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i],node)+'</div></div>');
} }
else if(lib.skill[skills[i]].temp||!node.skills.contains(skills[i])||lib.skill[skills[i]].thundertext){ else if(lib.skill[skills[i]].temp||!node.skills.contains(skills[i])||lib.skill[skills[i]].thundertext){
if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){ if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){
uiintro.add('<div><div class="skill thundertext thunderauto">【'+translation+'】</div><div class="thundertext thunderauto">'+get.skillInfoTranslation(skills[i])+'<br><div class="underlinenode on gray" style="position:relative;padding-left:0;padding-top:7px">自动发动</div></div></div>'); uiintro.add('<div><div class="skill thundertext thunderauto">【'+translation+'】</div><div class="thundertext thunderauto">'+get.skillInfoTranslation(skills[i],node)+'<br><div class="underlinenode on gray" style="position:relative;padding-left:0;padding-top:7px">自动发动</div></div></div>');
var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode'); var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode');
if(lib.skill[skills[i]].frequent){ if(lib.skill[skills[i]].frequent){
if(lib.config.autoskilllist.contains(skills[i])){ if(lib.config.autoskilllist.contains(skills[i])){
@ -49767,11 +49795,11 @@
underlinenode.listen(ui.click.autoskill2); underlinenode.listen(ui.click.autoskill2);
} }
else{ else{
uiintro.add('<div><div class="skill thundertext thunderauto">【'+translation+'】</div><div class="thundertext thunderauto">'+get.skillInfoTranslation(skills[i])+'</div></div>'); uiintro.add('<div><div class="skill thundertext thunderauto">【'+translation+'】</div><div class="thundertext thunderauto">'+get.skillInfoTranslation(skills[i],node)+'</div></div>');
} }
} }
else if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){ else if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){
uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'<br><div class="underlinenode on gray" style="position:relative;padding-left:0;padding-top:7px">自动发动</div></div></div>'); uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i],node)+'<br><div class="underlinenode on gray" style="position:relative;padding-left:0;padding-top:7px">自动发动</div></div></div>');
var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode'); var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode');
if(lib.skill[skills[i]].frequent){ if(lib.skill[skills[i]].frequent){
if(lib.config.autoskilllist.contains(skills[i])){ if(lib.config.autoskilllist.contains(skills[i])){
@ -49792,7 +49820,7 @@
underlinenode.listen(ui.click.autoskill2); underlinenode.listen(ui.click.autoskill2);
} }
else if(lib.skill[skills[i]].clickable&&node.isIn()&&node.isUnderControl(true)){ else if(lib.skill[skills[i]].clickable&&node.isIn()&&node.isUnderControl(true)){
var intronode=uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'<br><div class="menubutton skillbutton" style="position:relative;margin-top:5px">点击发动</div></div></div>').querySelector('.skillbutton'); var intronode=uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i],node)+'<br><div class="menubutton skillbutton" style="position:relative;margin-top:5px">点击发动</div></div></div>').querySelector('.skillbutton');
if(!_status.gameStarted||(lib.skill[skills[i]].clickableFilter&&!lib.skill[skills[i]].clickableFilter(node))){ if(!_status.gameStarted||(lib.skill[skills[i]].clickableFilter&&!lib.skill[skills[i]].clickableFilter(node))){
intronode.classList.add('disabled'); intronode.classList.add('disabled');
intronode.style.opacity=0.5; intronode.style.opacity=0.5;
@ -49808,7 +49836,7 @@
uiintro.add('<div><div class="skilln">'+get.translation(skills[i])+'</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>'); uiintro.add('<div><div class="skilln">'+get.translation(skills[i])+'</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>');
} }
else{ else{
uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>'); uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i],node)+'</div></div>');
} }
if(lib.translate[skills[i]+'_append']){ if(lib.translate[skills[i]+'_append']){
uiintro._place_text=uiintro.add('<div class="text">'+lib.translate[skills[i]+'_append']+'</div>') uiintro._place_text=uiintro.add('<div class="text">'+lib.translate[skills[i]+'_append']+'</div>')

View File

@ -1,3 +1,3 @@
window.bannedKeyWords=[ window.bannedKeyWords=[
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为', 'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎',
]; ];

View File

@ -1,9 +1,8 @@
window.noname_update={ window.noname_update={
version:'1.9.104.1', version:'1.9.105',
update:'1.9.104', update:'1.9.104.1',
changeLog:[ changeLog:[
'界小乔', '动态技能描述(dynamicTranslate)',
'新的默认联机地址',
'bug修复', 'bug修复',
], ],
@ -11,22 +10,22 @@ window.noname_update={
//'card/extra.js', //'card/extra.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/sp.js', //'card/sp.js',
//'card/standard.js', 'card/standard.js',
//'card/swd.js', 'card/swd.js',
//'card/mtg.js', //'card/mtg.js',
//'card/gujian.js', //'card/gujian.js',
//'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', 'card/gwent.js',
//'card/yunchou.js', //'card/yunchou.js',
//'card/zhenfa.js', //'card/zhenfa.js',
'card/zhulu.js', 'card/zhulu.js',
//'character/diy.js', 'character/diy.js',
'character/extra.js', 'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
'character/refresh.js', 'character/refresh.js',
@ -34,17 +33,17 @@ window.noname_update={
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
//'character/standard.js', 'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
//'character/xinghuoliaoyuan.js', 'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', 'layout/default/layout.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', 'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',

BIN
image/key_akane/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
image/key_kagari/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
image/key_kud/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
image/key_kud/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
image/key_mio/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
image/key_mio/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
image/key_misuzu/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
image/key_nagisa/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
image/key_rin/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
image/key_rin/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
image/key_rin/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

@ -2735,14 +2735,14 @@ div:not(.handcards)>.card>.info>span,
opacity: 0 !important; opacity: 0 !important;
} }
.player[data-position='0'].unseen>.avatar, #arena:not(.observe) .player[data-position='0'].unseen>.avatar,
.player[data-position='0'].unseen2>.avatar2, #arena:not(.observe) .player[data-position='0'].unseen2>.avatar2,
.player[data-position='0'].unseen>.name:not(.name2):not(.name_seat), #arena:not(.observe) .player[data-position='0'].unseen>.name:not(.name2):not(.name_seat),
.player[data-position='0'].unseen2>.name2, #arena:not(.observe) .player[data-position='0'].unseen2>.name2,
.unseen_v>.avatar, #arena:not(.observe) .unseen_v>.avatar,
.unseen2_v>.avatar2, #arena:not(.observe) .unseen2_v>.avatar2,
.unseen_v>.name:not(.name2):not(.name_seat), #arena:not(.observe) .unseen_v>.name:not(.name2):not(.name_seat),
.unseen2_v>.name2 { #arena:not(.observe) .unseen2_v>.name2 {
opacity: 0.2 !important opacity: 0.2 !important
} }
@ -2752,6 +2752,7 @@ div:not(.handcards)>.card>.info>span,
.player:not([data-position='0']).unseen.unseen2>.name_seat { .player:not([data-position='0']).unseen.unseen2>.name_seat {
opacity: 1 !important; opacity: 1 !important;
} }
.linked>.avatar,.linked>.avatar2 { .linked>.avatar,.linked>.avatar2 {
transform: rotate(-90deg); transform: rotate(-90deg);
} }

View File

@ -1205,7 +1205,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJudgeBegin'}, trigger:{player:'phaseJudgeBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player==game.zhu&&player.countCards('j'); return player==game.zhu&&player.countCards('j')&&player.countCards('h')>1;
}, },
content:function(){ content:function(){
"step 0" "step 0"

View File

@ -1157,40 +1157,43 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
filter:function(event,player){return event.source&&event.source.isAlive()&&event.source!=player&&event.player==player&&player.countCards('h')&&event.num>0}, filter:function(event,player){return event.source&&event.source.isAlive()&&event.source!=player&&event.player==player&&player.countCards('h')&&event.num>0},
content:function(){ content:function(){
'step 0' 'step 0'
event.players=game.filterPlayer(function(current){ var players=game.filterPlayer(function(current){
return current.isFriendOf(trigger.source)&&current.hp>=player.hp&&!game.hasPlayer(function(current2){ return current.isFriendOf(trigger.source)&&current.hp>=player.hp&&!game.hasPlayer(function(current2){
return current2.hp>current.hp&&current2.isFriendOf(current); return current2.hp>current.hp&&current2.isFriendOf(trigger.source);
}) })
}); });
var str=event.players.length?',然后对'+get.translation(event.players)+(event.players.length==1?'':'中的一名角色')+'造成一点伤害':'';
var check=true; var check=true;
if(!event.players.length) check=false; if(!players.length) check=false;
else{ else{
if(get.attitude(player,trigger.source)>=0) check=false; if(get.attitude(player,trigger.source)>=0) check=false;
else if(!player.countCards('h',function(card){return get.value(card)<9})) check=false;
} }
player.chooseCard('附敌</br></br><div class="center text">交给'+get.translation(trigger.source)+'一张手牌'+str+'</div>').set('aicheck',check).set('ai',function(card){ player.chooseCard(get.prompt('gzfudi'),'交给其一张手牌然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){
if(!_status.event.aicheck) return 0; if(!_status.event.aicheck) return 0;
return 9-get.value(card); return 9-get.value(card);
}); });
'step 1' 'step 1'
if(result.cards){ if(result.bool){
player.logSkill('gzfudi',trigger.source); player.logSkill('gzfudi',trigger.source);
trigger.source.gain(result.cards,player,'giveAuto'); trigger.source.gain(result.cards,player,'giveAuto');
if(event.players.length==1) event.target=event.players[0];
else if(event.players.length) player.chooseTarget('附敌</br></br><div class="center text">对'+get.translation(event.players)+'中的一名角色造成一点伤害</div>',function(card,player,target){
return target.isFriendOf(_status.event.getTrigger().source)&&target.hp>=player.hp&&!game.hasPlayer(function(current){
return current.isFriendOf(target)&&current.hp>target.hp;
})
},true).set('ai',function(target){return get.damageEffect(target,player,player)});
else event.finish();
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
var target=event.target||result.targets[0]; var list=game.filterPlayer(function(current){
if(target){ return current.hp>=player.hp&&current.isFriendOf(trigger.source)&&!game.hasPlayer(function(current2){
player.line(target,'green'); return current2.hp>current.hp&&current2.isFriendOf(trigger.source);
target.damage(player); });
});
if(list.length){
if(list.length==1) event._result={bool:true,targets:list};
else player.chooseTarget(true,'对'+get.translation(trigger.source)+'势力中体力值最大的一名角色造成1点伤害',function(card,player,target){
return _status.event.list.contains(target);
}).set('list',list).set('ai',function(target){return get.damageEffect(target,player,player)});
}
else event.finish();
'step 3'
if(result.bool&&result.targets.length){
player.line(result.targets[0]);
result.targets[0].damage();
} }
}, },
ai:{ ai:{
@ -1216,7 +1219,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
audio:'drlt_congjian', audio:'drlt_congjian',
filter:function(event,player,name){ filter:function(event,player,name){
if(event.num<=0) return false; if(event.num<=0) return false;
if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; if(name=='damageBegin1'&&_status.currentPhase!=player) return true;
if(name=='damageBegin3'&&_status.currentPhase==player) return true; if(name=='damageBegin3'&&_status.currentPhase==player) return true;
return false; return false;
}, },
@ -1224,9 +1227,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return _status.currentPhase!=player; return _status.currentPhase!=player;
}, },
content:function(){trigger.num++}, content:function(){trigger.num++},
ai:{
//damageBones:true,
}
}, },
jianan:{ jianan:{
audio:2, audio:2,