Add files via upload

This commit is contained in:
Spmario233 2019-11-03 09:48:39 +08:00 committed by GitHub
parent 9719663325
commit 5f822df9d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 140 additions and 59 deletions

View File

@ -55,7 +55,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanping:['male','shu',4,['longyin']], guanping:['male','shu',4,['longyin']],
liaohua:['male','shu',4,['xindangxian','xinfuli']], liaohua:['male','shu',4,['xindangxian','xinfuli']],
chengpu:['male','wu',4,['lihuo','chunlao']], chengpu:['male','wu',4,['lihuo','chunlao']],
gaoshun:['male','qun',4,['xianzhen','jinjiu']], gaoshun:['male','qun',4,['xinxianzhen','jinjiu']],
caozhen:['male','wei',4,['xinsidi']], caozhen:['male','wei',4,['xinsidi']],
wuyi:['male','shu',4,['xinbenxi']], wuyi:['male','shu',4,['xinbenxi']],
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']], hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
@ -224,12 +224,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}; };
} }
else{ else{
if(!player.storage.xindanshou) player.storage.xindanshou=0;
player.storage.xindanshou++;
if(!['basic','trick'].contains(get.type(trigger.card,'trick'))){ if(!['basic','trick'].contains(get.type(trigger.card,'trick'))){
event.finish(); event.finish();
return; return;
}; };
if(!player.storage.xindanshou) player.storage.xindanshou=0;
player.storage.xindanshou++;
player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(player.storage.xindanshou)+'张牌)',get.translation('xindanshou_info')); player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(player.storage.xindanshou)+'张牌)',get.translation('xindanshou_info'));
} }
'step 1' 'step 1'
@ -428,18 +428,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
summer:{ summer:{
sub:true, sub:true,
trigger:{player:['phaseAfter','useCardAfter']}, trigger:{player:['phaseAfter','useCardAfter','useCard']},
silent:true, silent:true,
content:function(){ content:function(){
if(trigger.name=='phase'){ if(trigger.name=='phase'){
player.storage.xinbenxi=0; player.storage.xinbenxi=0;
} }
else if(event.triggername=='useCard'){
player.logSkill('xinbenxi');
player.storage.xinbenxi++;
player.syncStorage('xinbenxi');
}
else{ else{
player.storage.xinbenxi_unequip.remove(event.card); player.storage.xinbenxi_unequip.remove(event.card);
player.storage.xinbenxi_directHit.remove(event.card); player.storage.xinbenxi_directHit.remove(event.card);
player.storage.xinbenxi_damage.remove(event.card); player.storage.xinbenxi_damage.remove(event.card);
player.storage.xinbenxi++;
player.syncStorage('xinbenxi');
} }
}, },
}, },
@ -1441,6 +1444,53 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
}, },
rezhenjun:{
audio:"jieyue",
trigger:{
player:"phaseBegin",
},
filter:function (event,player){
return game.hasPlayer(function(current){
return current.countCards('h')>0;
});
},
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt2('rezhenjun')).ai=function(target){
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
};
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
var num=Math.max(target.countCards('h')-target.hp,1);
player.logSkill('rezhenjun',target);
player.discardPlayerCard(num,target,true);
}
'step 2'
if(result.cards&&result.cards.length){
event.num=0;
for(var i=0;i<result.cards.length;i++){
if(get.type(result.cards[i])!='equip'){
event.num++;
}
}
if(event.num>0){
var prompt='弃置'+get.cnNumber(event.num)+'张牌,或令'+get.translation(event.target)+'摸'+get.cnNumber(event.num)+'张牌';
player.chooseToDiscard(event.num,prompt,'he').ai=function(card){
return 5-get.value(card);
}
}
else event.finish();
}
else event.finish();
'step 3'
if(!result.bool){
event.target.draw(event.num);
}
},
},
fenli:{ fenli:{
audio:2, audio:2,
group:['fenli_draw','fenli_use','fenli_discard'], group:['fenli_draw','fenli_use','fenli_discard'],
@ -4800,39 +4850,79 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jinjiu:{ jinjiu:{
mod:{ mod:{
cardEnabled:function(card,player){ cardname:function(card,player){
if(card.name=='jiu'&&get.position(card)=='h'&&_status.event.skill==undefined) return false; if(card.name=='jiu') return 'sha';
},
cardUsable:function(card,player){
if(card.name=='jiu'&&get.position(card)=='h'&&_status.event.skill==undefined) return false;
},
cardRespondable:function(card,player){
if(card.name=='jiu'&&get.position(card)=='h'&&_status.event.skill==undefined) return false;
},
cardSavable:function(card,player){
if(card.name=='jiu'&&get.position(card)=='h'&&_status.event.skill==undefined) return false;
}, },
}, },
enable:['chooseToUse','chooseToRespond'],
filter:function(event,player){
return player.countCards('h','jiu')>0;
},
filterCard:{name:'jiu'},
viewAs:{name:'sha'},
viewAsFilter:function(player){
if(!player.countCards('h','jiu')) return false;
},
check:function(){return 1},
ai:{ ai:{
skillTagFilter:function(player){ skillTagFilter:function(player){
if(!player.countCards('h','jiu')) return false; if(!player.countCards('h','jiu')) return false;
}, },
respondSha:true, respondSha:true,
order:4,
useful:-1,
value:-1
} }
}, },
xinxianzhen:{
audio:'xianzhen',
inherit:'xianzhen',
},
xinxianzhen2:{
audio:'xianzhen',
mod:{
targetInRange:function(card,player,target){
if(target==player.storage.xinxianzhen) return true;
},
cardUsable:function(card,player,num){
if(typeof num=='number') return num+100;
},
playerEnabled:function(card,player,target){
if(card.name=='sha'&&player.storage.xinxianzhen!=target&&!ui.selected.targets.contains(player.storage.xinxianzhen)){
var num=player.getCardUsable(card)-100;
if(num<=0) return false;
}
}
},
ai:{
unequip:true,
skillTagFilter:function(player,tag,arg){
if(arg.target!=player.storage.xinxianzhen) return false;
},
},
trigger:{player:'useCard2'},
filter:function(event,player){
return (event.card.name=='sha'||get.type(event.card)=='trick')&&
event.targets&&event.targets.length==1&&!event.targets.contains(player.storage.xinxianzhen);
},
check:function(event,player){
return get.effect(player.storage.xinxianzhen,event.card,player,player)>0;
},
logTarget:function(event,player){
return player.storage.xinxianzhen;
},
prompt2:'令该角色也成为此牌的目标',
content:function(){
var target=player.storage.xinxianzhen;
trigger.targets.push(target);
game.log(target,'成为了',trigger.card,'的额外目标');
},
},
xinxianzhen3:{
charlotte:true,
mod:{
cardEnabled:function(card){
if(card.name=='sha') return false;
},
ignoredHandcard:function(card,player){
if(get.name(card)=='sha'){
return true;
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&get.name(card)=='sha'){
return false;
}
},
},
},
xianzhen:{ xianzhen:{
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
@ -4848,11 +4938,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseToCompare(target); player.chooseToCompare(target);
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.storage.xianzhen=target; player.storage[event.name]=target;
player.addTempSkill('xianzhen2'); player.addTempSkill(event.name+2);
} }
else{ else{
player.addTempSkill('xianzhen3'); player.addTempSkill(event.name+3);
} }
}, },
ai:{ ai:{
@ -4888,6 +4978,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xianzhen2:{ xianzhen2:{
charlotte:true,
mod:{ mod:{
targetInRange:function(card,player,target){ targetInRange:function(card,player,target){
if(target==player.storage.xianzhen) return true; if(target==player.storage.xianzhen) return true;
@ -4910,6 +5001,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xianzhen3:{ xianzhen3:{
charlotte:true,
mod:{ mod:{
cardEnabled:function(card){if(card.name=='sha') return false} cardEnabled:function(card){if(card.name=='sha') return false}
} }
@ -5921,30 +6013,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
shizhi:{ shizhi:{
mod:{ mod:{
cardRespondable:function(card,player){ cardname:function(card,player,name){
if(card.name=='shan'&&player.hp==1&&_status.event.skill!='shizhi') return false; if(card.name=='shan'&&player.hp==1) return 'sha';
}, },
}, },
enable:['chooseToUse','chooseToRespond'],
filter:function(event,player){
return player.hp==1;
},
filterCard:{name:'shan'},
viewAs:{name:'sha'},
viewAsFilter:function(player){
if(!player.countCards('h','shan')) return false;
if(player.hp!=1) return false;
},
check:function(){return 1},
ai:{ ai:{
skillTagFilter:function(player){ skillTagFilter:function(player){
if(!player.countCards('h','shan')) return false; if(!player.countCards('h','shan')) return false;
if(player.hp!=1) return false; if(player.hp!=1) return false;
}, },
respondSha:true, respondSha:true,
order:4,
useful:-1,
value:-1
} }
}, },
wurong:{ wurong:{
@ -6051,11 +6129,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 6" "step 6"
game.log(player,'展示了',event.card1); game.log(player,'展示了',event.card1);
game.log(target,'展示了',event.card2); game.log(target,'展示了',event.card2);
var name1=event.card1.name; var name1=get.name(event.card1);
if(player.hp==1&&name1=='shan'){ var name2=get.name(event.card2);
name1='sha'; if(name1=='sha'&&name2!='shan'){
}
if(name1=='sha'&&event.card2.name!='shan'){
player.discard(event.card1).set('animate',false); player.discard(event.card1).set('animate',false);
target.$gain2(event.card2); target.$gain2(event.card2);
var clone=event.card1.clone; var clone=event.card1.clone;
@ -6075,7 +6151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},event.card1); },event.card1);
target.damage('nocard'); target.damage('nocard');
} }
else if(name1!='sha'&&event.card2.name=='shan'){ else if(name1!='sha'&&name2=='shan'){
player.discard(event.card1).set('animate',false); player.discard(event.card1).set('animate',false);
target.$gain2(event.card2); target.$gain2(event.card2);
var clone=event.card1.clone; var clone=event.card1.clone;
@ -8591,7 +8667,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
position:'he', position:'he',
filterCard:function(card){ filterCard:function(card){
return card.name=='sha'||get.type(card)=='equip'; return get.name(card)=='sha'||get.type(card)=='equip';
}, },
filter:function(event,player){ filter:function(event,player){
return player.countCards('h','sha')>0||player.countCards('he',{type:'equip'})>0; return player.countCards('h','sha')>0||player.countCards('he',{type:'equip'})>0;
@ -10798,6 +10874,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"qingxian_draw_info":"", "qingxian_draw_info":"",
zhenjun:"镇军", zhenjun:"镇军",
"zhenjun_info":"准备阶段你可以弃置一名手牌数多于体力值的角色的X张牌X为其手牌数和体力值之差然后选择一项1.你弃置等同于其中非装备牌数量的牌2.其摸等量的牌。", "zhenjun_info":"准备阶段你可以弃置一名手牌数多于体力值的角色的X张牌X为其手牌数和体力值之差然后选择一项1.你弃置等同于其中非装备牌数量的牌2.其摸等量的牌。",
rezhenjun:"镇军",
rezhenjun_info:"准备阶段你可以弃置一名手牌数多于体力值的角色的X张牌X为其手牌数和体力值之差且至少为1然后选择一项1.你弃置X张牌2.其摸X张牌。X为其弃置的牌中非装备牌的数量",
xinzhenjun:'镇军', xinzhenjun:'镇军',
xinzhenjun_info:'出牌阶段开始时你可以将一张牌交给一名其他角色令其选择是否使用一张不为黑色的【杀】。若其选择是则你于此【杀】结算完成后摸一张牌且当此【杀】造成伤害时你摸X张牌(X为伤害点数)。若其选择否则你对其或其攻击范围内的一名其他角色造成1点伤害。', xinzhenjun_info:'出牌阶段开始时你可以将一张牌交给一名其他角色令其选择是否使用一张不为黑色的【杀】。若其选择是则你于此【杀】结算完成后摸一张牌且当此【杀】造成伤害时你摸X张牌(X为伤害点数)。若其选择否则你对其或其攻击范围内的一名其他角色造成1点伤害。',
fenli:'奋励', fenli:'奋励',
@ -10924,7 +11002,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jieyue4:'节钺', jieyue4:'节钺',
jieyue_info:'结束阶段开始时,你可以弃置一张手牌,然后令一名其他角色选择一项:将一张牌置于你的武将牌上(称之为“节”);或令你弃置其一张牌。当你你武将牌上有“节”时,你可以将红色手牌当作【闪】、黑色的手牌当作【无懈可击】使用或打出。准备阶段开始时,你获得你武将牌上的“节”。', jieyue_info:'结束阶段开始时,你可以弃置一张手牌,然后令一名其他角色选择一项:将一张牌置于你的武将牌上(称之为“节”);或令你弃置其一张牌。当你你武将牌上有“节”时,你可以将红色手牌当作【闪】、黑色的手牌当作【无懈可击】使用或打出。准备阶段开始时,你获得你武将牌上的“节”。',
xianzhen:'陷阵', xianzhen:'陷阵',
xianzhen_info:'出牌阶段,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。每回合限一次', xianzhen_info:'出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。',
xinxianzhen:'陷阵',
xinxianzhen_info:'出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视该角色的防具且对其使用牌没有次数和距离限制。若你没赢,你不能使用【杀】且你的【杀】不计入手牌上限直到回合结束。',
xinxianzhen2:'陷阵',
jinjiu:'禁酒', jinjiu:'禁酒',
jinjiu_info:'锁定技,你的【酒】均视为【杀】。', jinjiu_info:'锁定技,你的【酒】均视为【杀】。',
chunlao:'醇醪', chunlao:'醇醪',
@ -10939,7 +11020,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
benxi:'奔袭', benxi:'奔袭',
benxi_info:'锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束你的回合内若你与所有角色的距离均为1你无视其他角色的防具且你使用的【杀】可额外指定一个目标', benxi_info:'锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束你的回合内若你与所有角色的距离均为1你无视其他角色的防具且你使用的【杀】可额外指定一个目标',
xinbenxi:'奔袭', xinbenxi:'奔袭',
xinbenxi_info:'锁定技,当你于回合内使用牌,你本回合计算与其他角色的距离-1。你的回合内若你至场上所有其他角色的距离均不大于1则当你使用牌选择唯一目标后你选择至多两项1.为此牌多指定一个目标2.令此牌无视防具3.令此牌不可被响应4.你因此牌造成伤害时摸一张牌。', xinbenxi_info:'锁定技,当你于回合内使用牌,你本回合计算与其他角色的距离-1。你的回合内若你至场上所有其他角色的距离均不大于1则当你使用牌选择唯一目标后你选择至多两项1.为此牌多指定一个目标2.令此牌无视防具3.令此牌不可被响应4.你因此牌造成伤害时摸一张牌。',
sidi:'司敌', sidi:'司敌',
sidi2:'司敌', sidi2:'司敌',
sidi3:'司敌', sidi3:'司敌',
@ -11193,7 +11274,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongshi_info:'锁定技,你的手牌上限+XX为场上现存势力数。', zongshi_info:'锁定技,你的手牌上限+XX为场上现存势力数。',
danshou_info:'出牌阶段你可以选择你攻击范围内的一名其他角色然后弃置X张牌X为此前你于此阶段你发动“胆守”的次数+1。若X为1你弃置该角色的一张牌为2令该角色交给你一张牌为3你对该角色造成1点伤害不小于4你与该角色各摸两张牌。', danshou_info:'出牌阶段你可以选择你攻击范围内的一名其他角色然后弃置X张牌X为此前你于此阶段你发动“胆守”的次数+1。若X为1你弃置该角色的一张牌为2令该角色交给你一张牌为3你对该角色造成1点伤害不小于4你与该角色各摸两张牌。',
olddanshou_info:'当你造成伤害后,你可以摸一张牌。若如此做,终止一切结算,当前回合结束。', olddanshou_info:'当你造成伤害后,你可以摸一张牌。若如此做,终止一切结算,当前回合结束。',
xindanshou_info:'①每回合限一次当你成为基本牌或锦囊牌的目标时你可以摸X张牌X为你本回合内成为过牌的目标的次数。②一名其他角色的结束阶段若你本回合内没有发动过〖胆守①〗则你可以弃置X张牌并对其造成1点伤害X为其手牌数。', xindanshou_info:'①每回合限一次当你成为基本牌或锦囊牌的目标时你可以摸X张牌X为你本回合内成为过基本牌或锦囊牌的目标的次数。②一名其他角色的结束阶段若你本回合内没有发动过〖胆守①〗则你可以弃置X张牌并对其造成1点伤害X为其手牌数。',
yizhong_info:'锁定技,当你的防具栏为空时,黑色的杀对你无效', yizhong_info:'锁定技,当你的防具栏为空时,黑色的杀对你无效',
xinzhan_info:'出牌阶段限一次你可以观看牌堆顶的3张牌然后展示其中任意数量♥的牌并获得之。', xinzhan_info:'出牌阶段限一次你可以观看牌堆顶的3张牌然后展示其中任意数量♥的牌并获得之。',
huilei_info:'锁定技,当你死亡时,杀死你的角色弃置所有的牌。', huilei_info:'锁定技,当你死亡时,杀死你的角色弃置所有的牌。',