This commit is contained in:
Sukincen 2019-12-09 22:49:08 +08:00 committed by GitHub
parent 790d5029b5
commit f3124e5ae4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 194 additions and 35 deletions

View File

@ -1655,9 +1655,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(Math.abs(targets[0].hp-targets[1].hp)==1){
player.loseHp();
}
else{
player.die();
}
//else{
//player.die();
//}
},
ai:{
order:10,
@ -3738,7 +3738,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
return target!=player;
return target!=player&&!target.hasSkill('liangji_1');
},
content:function (){
'step 0'
@ -5299,7 +5299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nsjianning:'奸佞',
nsjianning_info:'出牌阶段限一次,如果你的身份为内奸,你可以与一名手牌数比你少的角色交换手牌,并对其造成一点伤害',
nschangshi:'常仕',
nschangshi_info:'出牌阶段限一次如果你的身份为反贼你可以指定两名其他角色互换体力如果两名角色体力之差等于1你失去一点体力,否则你立即死亡',
nschangshi_info:'出牌阶段限一次如果你的身份为反贼你可以指定两名其他角色互换体力如果两名角色体力之差等于1你失去一点体力',
nsbaquan:'霸权',
nsbaquan_info:'回合结束时,你可以弃置所有手牌,并获得相应点数的护甲,你的新一回合开始时清除所有护甲',
nsbugua:'卜卦',
@ -5382,7 +5382,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yiesheng:'回雪',
yiesheng_info:'出牌阶段,你可以弃置任意数量的黑色手牌,然后摸等量的牌。',
liangji:'环计',
liangji_info:'出牌阶段限一次,你可以选择一名其他角色并将一张手牌置于其武将牌上。目标角色于摸牌阶段开始时,获得此牌。若其为男性角色,则获得技能【无双】,若其为女性角色,则获得技能【离间】,直到回合结束。',
liangji_info:'出牌阶段限一次,你可以选择一名未以此法放置牌的其他角色并将一张手牌置于其武将牌上。目标角色于摸牌阶段开始时,获得此牌。若其为男性角色,则获得技能【无双】,若其为女性角色,则获得技能【离间】,直到回合结束。',
chengmou:'逞谋',
chengmou_info:'摸牌阶段开始时,若你有“功”牌,你获得之并跳过摸牌阶段,若你所获得的“功”牌多于两张,你须失去一点体力。',
jugong:'居功',

View File

@ -99,7 +99,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"chooseToUse",
filter:function (event,player){
if(!player.countCards('h')) return false;
var list=['sha','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
var list=['sha','tao','shan','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
if(get.mode()=='guozhan'){
list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']);
}
@ -208,9 +208,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.cardsDiscard(trigger.cards);
trigger.cancel();
game.asyncDraw(event.betray);
game.delay();
if(trigger.name=='useCard'&&trigger.parent) trigger.parent.goto(0);
}
}
'step 4'
game.delay();
},
},
"old_guhuo_respond":{

View File

@ -41,6 +41,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_lidian:'字曼成,曹操麾下将领。李典深明大义,不与人争功,崇尚学习与高贵儒雅,尊重博学之士,在军中被称为长者。李典有长者之风,官至破虏将军,三十六岁去世。魏文帝曹丕继位后追谥号为愍侯。',
},
skill:{
botu:{
audio:2,
group:'botu_kanade',
trigger:{player:'phaseAfter'},
frequent:true,
filter:function(event,player){
return player.storage.botu&&player.storage.botu.length>=4;
},
content:function(){
player.insertPhase();
},
subSkill:{
kanade:{
trigger:{player:['useCard','phaseBefore']},
silent:true,
content:function(){
if(trigger.name=='phase') player.storage.botu=[];
else{
var suit=get.suit(trigger.card);
if(suit) player.storage.botu.add(suit);
}
},
},
},
},
xinleiji:{
group:'xinleiji_misa',
audio:'releiji',
@ -3400,7 +3425,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qinxue_info:'觉醒技准备阶段开始时若你的手牌数比体力值多3人数不少于7时改为2或更多你须减一点体力上限并获得技能【攻心】',
retuxi_info:'摸牌阶段摸牌时,你可以少摸任意张牌,然后选择等量的手牌数大于或等于你的其他角色,获得这些角色的各一张手牌。',
reluoyi_info:'你可以跳过摸牌阶段,然后展示牌堆顶的三张牌,获得其中的基本牌、武器牌和【决斗】,若如此做,直到你的下回合开始,你为伤害来源的【杀】或【决斗】造成的伤害+1。',
reganglie_info:'每当你受到1点伤害后可进行一次判定若结果为红色你对伤害来源造成1点伤害若结果为黑色你弃置其一张牌。'
reganglie_info:'每当你受到1点伤害后可进行一次判定若结果为红色你对伤害来源造成1点伤害若结果为黑色你弃置其一张牌。',
botu:'博图',
botu_info:'回合结束时,若你本回合使用的牌包含四种花色,则你可以进行一个额外回合。',
},
};
});

View File

@ -3467,7 +3467,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
setup:function(player,gain){
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)) continue;
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
var add=false;
for(var j=0;j<lib.character[i][3].length;j++){
var info=lib.skill[lib.character[i][3][j]];
@ -4612,7 +4612,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
huoji:{
audio:2,
enable:'chooseToUse',
enable:'phaseUse',
filterCard:function(card){
return get.color(card)=='red';
},
@ -4626,7 +4626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.countCards('h')>player.hp){
return 6-get.value(card);
}
return 4-get.value(card)
return 3-get.value(card)
}
},
bazhen:{

View File

@ -161,7 +161,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beimihu:['female','qun',3,['zongkui','guju','baijia']],
sp_liuqi:['male','qun',3,['spwenji','sptunjiang']],
luzhi:['male','wei',3,['qingzhong','weijing']],
luzhi:['male','wei',3,['qingzhongx','weijing']],
//kaisa:["male","western",4,["zhengfu"]],
},
@ -741,10 +741,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xpchijie3:{
trigger:{global:'damageBegin4'},
forced:true,
//forced:true,
filter:function(event,player){
return event.card&&event.card==player.storage.xpchijie2;
},
logTarget:'player',
check:function(event,player){
return get.damageEffect(event.player,event.source,player)<0;
},
content:function(){
trigger.cancel();
},
@ -1167,7 +1171,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(player.storage.lvli>1) return false;
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
return event.type!='wuxie';
return event.type!='wuxie'&&event.type!='respondShan';
},
chooseButton:{
dialog:function(event,player){
@ -1286,9 +1290,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
player.popup('杯具');
trigger.cancel();
if(trigger.name=='respond'){
var evt=trigger.getParent();
if(evt&&evt.result) evt.result.bool=false;
if(!trigger.getParent().lvli6){
trigger.getParent().goto(0);
}
game.broadcastAll(function(str){
var dialog=ui.create.dialog(str);
@ -1312,6 +1315,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
lvli4:{
log:false,
enable:'chooseToUse',
filter:function(event,player){
if(player.storage.lvli>1) return false;
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
return true;
},
filterCard:function(){return false},
selectCard:-1,
viewAs:{name:'shan'},
ai:{
skillTagFilter:function(player){
if(player.storage.lvli>1) return false;
@ -1348,7 +1361,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('norestore',true);
next.set('_backupevent','lvli');
next.backup('lvli');
next.lvli6=true;
next.set('lvli6',true);
},
},
choujue:{
@ -2210,7 +2223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
if(target!=player) return 0;
if(get.damageEffect(target,player,player)>0) return 10;
if(get.damageEffect(target,player,player)>=0) return 10;
if(target.hp>=4) return 5;
if(target.hp==3){
if(player.countCards('h')<=2&&game.hasPlayer(function(current){
@ -2861,9 +2874,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardEnabled:function (card){if(card.name=='sha') return false},
},
},
qingzhong:{
audio:2,
},
qingzhongx:{
audio:'weijing',
trigger:{player:'phaseUseBegin'},
check:function(event,player){
if(game.hasPlayer(function(current){
@ -2878,7 +2893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.draw(2);
player.addTempSkill('qingzhong_give');
player.addTempSkill('qingzhongx_give');
},
subSkill:{
give:{
@ -2886,7 +2901,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return !player.isMinHandcard(true);
},
audio:'qingzhong',
audio:'weijing',
forced:true,
content:function(){
'step 0'
@ -2920,10 +2935,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
weijing:{
audio:2,
audio:'qingzhong',
group:['weijing_sha','weijing_shan'],
subSkill:{
sha:{
audio:'qingzhong',
enable:'chooseToUse',
viewAs:{name:'sha'},
filterCard:function(){return false},
@ -2954,6 +2970,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
shan:{
audio:'qingzhong',
enable:'chooseToUse',
viewAs:{name:'shan'},
mark:false,
@ -2970,7 +2987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
order:function(){
var player=_status.event.player;
if(player.hasSkill('qingzhong_give')) return 2.95;
if(player.hasSkill('qingzhongx_give')) return 2.95;
return 3.15;
},
skillTagFilter:function(player){
@ -3705,6 +3722,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:'当你受到伤害后,$受到等量的伤害,当你回复体力后,$回复等量的体力'
},
nopop:true,
charlotte:true,
trigger:{player:['damageEnd','recoverEnd']},
forced:true,
popup:false,
@ -4507,6 +4525,110 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:'不能使用或打出手牌'
}
},
huoshui:{
audio:2,
enable:'phaseUse',
unique:true,
forceunique:true,
filter:function(event,player){
if(player.name1=='gz_zoushi') return player.isUnseen(0);
return player.isUnseen(1);
},
content:function(){
if(player.name1=='gz_zoushi') player.showCharacter(0);
else player.showCharacter(1);
},
global:'huoshui_mingzhi'
},
huoshui_mingzhi:{
ai:{
nomingzhi:true,
skillTagFilter:function(player){
if(_status.currentPhase&&_status.currentPhase!=player&&_status.currentPhase.hasSkill('huoshui')){
return true;
}
return false;
}
}
},
qingcheng:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{type:'equip'})&&game.hasPlayer(function(current){
return current!=player&&!current.isUnseen(2);
});
},
filterCard:{type:'equip'},
position:'he',
filterTarget:function(card,player,target){
return !target.isUnseen(2);
},
check:function(card){
return 6-get.value(card,_status.event.player);
},
content:function(){
'step 0'
if(get.is.jun(target)){
event._result={control:'副将'};
}
else{
var choice='主将';
var skills=lib.character[target.name2][3];
for(var i=0;i<skills.length;i++){
var info=get.info(skills[i]);
if(info&&info.ai&&info.ai.maixie){
choice='副将';break;
}
}
if(target.name=='gz_zhoutai'){
choice='主将';
}
else if(target.name2=='gz_zhoutai'){
choice='副将';
}
player.chooseControl('主将','副将',function(){
return _status.event.choice;
}).set('prompt','暗置'+get.translation(target)+'的一张武将牌').set('choice',choice);
}
'step 1'
if(result.control=='主将'){
target.hideCharacter(0);
}
else{
target.hideCharacter(1);
}
target.addTempSkill('qingcheng_ai');
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.hp<=0) return -5;
if(player.getStat().skill.qingcheng) return 0;
if(!target.hasSkillTag('maixie')) return 0;
if(get.attitude(player,target)>=0) return 0;
if(player.hasCard(function(card){
return get.tag(card,'damage')&&player.canUse(card,target,true,true);
})){
if(target.maxHp>3) return -0.5;
return -1;
}
return 0;
}
}
}
},
qingcheng_ai:{
ai:{
effect:{
target:function(card){
if(get.tag(card,'damage')) return 2;
}
}
}
},
zhuoshui:{
audio:'huoshui',
trigger:{player:'phaseZhunbeiBegin'},
@ -4521,6 +4643,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
zqingcheng:{
audio:'qingcheng',
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{type:'equip'});
@ -11157,7 +11280,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.attitude(player,event.player)>0;
},
filter:function(event,player){
if(event.player.countCards('h')) return false;
if(event.player.isDead()||event.player.countCards('h')) return false;
if(_status.currentPhase==event.player) return false;
for(var i=0;i<event.cards.length;i++){
if(event.cards[i].original=='h') return true;
@ -13137,7 +13260,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lskuizhu_info:'出牌阶段结束时你可以选择体力值全场最多的一名其他角色将手牌摸至与该角色相同最多摸至五张然后该角色观看你的手牌弃置任意张手牌并从观看的牌中获得等量的牌。若其获得的牌大于一张则你选择一项移去一个“珠”或令其对其攻击范围内的一名角色造成1点伤害。',
xpchijie:'持节',
xpchijie_info:'每回合限一次,当你成为其他角色使用牌的目标后,你可以获得如下效果:当此牌对其他角色造成伤害时,若此牌已对你造成过伤害,则你获得此牌;当此牌使用结算完成时,你可以获得此牌对应的所有实体牌。',
xpchijie_info:'每回合限一次,当你成为其他角色使用牌的目标后,你可以获得如下效果:当此牌对其他角色造成伤害时,若此牌已对你造成过伤害,则你防止此伤害;当此牌使用结算完成时,你可以获得此牌对应的所有实体牌。',
xpchijie3:'持节',
yinju:'引裾',
yinju_info:'限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你对此角色使用牌时,你摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。',
@ -13268,7 +13391,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fengying_info:'限定技出牌阶段你可以弃置所有手牌。若如此做你可以令等量的角色将手牌摸至X张(X为其体力上限且至多为5)。然后,你结束出牌阶段,并在当前回合结束后进行一个新的回合。',
qingzhong:'清忠',
qingzhong_info:'出牌阶段开始时,你可以摸两张牌,若如此做,本阶段结束时,你与手牌数最少的角色交换手牌。',
qingzhongx:'清忠',
qingzhongx_info:'出牌阶段开始时,你可以摸两张牌,若如此做,本阶段结束时,你与手牌数最少的角色交换手牌。',
weijing:'卫境',
weijing_info:'每轮限一次,你可以在需要使用【杀】或【闪】时,视为使用一张【杀】或【闪】。',
spwenji:'问计',
@ -13341,6 +13465,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenyue2:'奋钺',
fenyue2_bg:'钺',
fenyue_info:'出牌阶段限X次你可以与一名角色拼点若你赢你选择一项1.其不能使用或打出手牌直到回合结束2.视为你对其使用了【杀】不计入次数限制。若你没赢你结束出牌阶段。X为存活的忠臣数',
huoshui:'祸水',
huoshui_info:'出牌阶段,你可以明置此武将牌;你的回合内,若此武将牌处于明置状态,其他角色不能明置其武将牌',
qingcheng:'倾城',
qingcheng_info:'出牌阶段,你可以弃置一张装备牌并选择一名两张武将牌均明置的其他角色,你暗置其一张武将牌',
zhuoshui:'祸水',
zhuoshui_info:'锁定技,准备阶段,你令所有其他角色的非锁定技失效直到回合结束',
zqingcheng:'倾城',
@ -13653,7 +13782,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌颜色不同,则你可以摸一张牌。',
fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1若结果为红色该角色获得此牌。',
fulu_info:'你可以将【杀】当雷【杀】使用。',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置其此类别的手牌,直到其下个回合开始。',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置其此类别的手牌,直到其下个回合开始。',
danlao:'啖酪',
danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌并令此牌对你无效。',
gongao:'功獒',

View File

@ -3774,7 +3774,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true,
filter:function (event,player){
if(get.type(event.card)=='equip') return false;
if(event.getParent().triggeredTargets3>1) return false;
if(event.getParent().triggeredTargets3.length>1) return false;
return event.targets.length>0&&!player.countCards('h',{type:'basic',});
},
content:function (){
@ -4004,6 +4004,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.cardsDiscard(trigger.cards);
game.broadcastAll(ui.clear);
trigger.cancel();
if(trigger.name=='useCard'&&trigger.parent) trigger.parent.goto(0);
}
game.delay();
},

View File

@ -837,7 +837,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xintaoluan:{
enable:'chooseToUse',
filter:function(event,player){
return event.type!='wuxie'&&!player.hasSkill('xintaoluan3')&&player.countCards('he')>0&&!_status.dying.length;
return event.type!='wuxie'&&event.type!='respondShan'&&!player.hasSkill('xintaoluan3')&&player.countCards('he')>0&&!_status.dying.length;
},
init:function(player){
if(!player.storage.xintaoluan) player.storage.xintaoluan=[];
@ -862,7 +862,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog('滔乱',[list,'vcard']);
},
filter:function(button,player){
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
return _status.event.getParent().filterCard({name:button.link[2]},player,_status.event.getParent());
},
check:function(button){
var player=_status.event.player;
@ -3509,7 +3509,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'chooseToUse',
filter:function(event,player){
return event.type!='wuxie'&&!player.hasSkill('taoluan3')&&player.countCards('he')>0&&!_status.dying.length;
return event.type!='wuxie'&&event.type!='respondShan'&&!player.hasSkill('taoluan3')&&player.countCards('he')>0&&!_status.dying.length;
},
init:function(player){
if(!player.storage.taoluan) player.storage.taoluan=[];
@ -3534,7 +3534,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog('滔乱',[list,'vcard']);
},
filter:function(button,player){
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
return _status.event.getParent().filterCard({name:button.link[2]},player,_status.event.getParent());
},
check:function(button){
var player=_status.event.player;
@ -10182,7 +10182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.broadcastAll(function(player,id,cards){
var str;
if(player==game.me&&!_status.auto){
str='称象选择任意张点数不大于13的牌';
str='称象选择任意张点数不大于1'+(event.name=='chengxiang'?3:2)+'的牌';
}
else{
str='称象';