This commit is contained in:
Spmario233 2021-09-23 23:07:50 +08:00
parent 94afb5113b
commit c44fd358cf
24 changed files with 1014 additions and 521 deletions

View File

@ -330,6 +330,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(get.suit(card)=='club') return 0;
return -3;
},
judge2:function(result){
if(result.bool==false) return true;
return false;
},
effect:function(){
if(result.bool==false){
if(get.is.changban()) player.addTempSkill('bingliang_changban');

View File

@ -1509,6 +1509,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(get.suit(card)=='heart') return 0;
return -3;
},
judge2:function(result){
if(result.bool==false) return true;
return false;
},
effect:function(){
if(result.bool==false){
player.skip('phaseUse');
@ -1555,6 +1559,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(get.suit(card)=='spade'&&get.number(card)>1&&get.number(card)<10) return -6;
return 0;
},
judge2:function(result){
if(result.bool==false) return true;
return false;
},
effect:function(){
if(result.bool==false){
player.damage(3,'thunder','nosource');
@ -2135,7 +2143,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
content:function(){
"step 0"
trigger.bagua_skill=true;
player.judge('bagua',function(card){return (get.color(card)=='red')?1.5:-0.5});
player.judge('bagua',function(card){return (get.color(card)=='red')?1.5:-0.5}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.judge>0){
trigger.untrigger();
@ -2615,7 +2625,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
juedou_info:'出牌阶段对一名其他角色使用。由其开始其与你轮流打出一张【杀】直到其中一方未打出【杀】为止。未打出【杀】的一方受到另一方对其造成的1点伤害。',
shunshou_info:'出牌阶段对距离为1且区域里有牌的一名其他角色使用。你获得其区域里的一张牌。',
guohe_info:'出牌阶段,对区域里有牌的一名其他角色使用。你弃置其区域里的一张牌。',
jiedao_info:'出牌阶段,对装备区里有武器牌且有使用【杀】的目标的一名其他角色使用。令其对你指定的一名角色使用一张【杀】,否则将其装备区里的武器牌交给你。',
jiedao_info:'出牌阶段,对装备区里有武器牌且有使用【杀】的目标的一名其他角色使用。令其对你指定的一名角色使用一张【杀】,否则将其装备区里的武器牌交给你。<br><span class="text" style="font-family: yuanli">这是一种十分含蓄的计谋。</span>',
wuxie_info:'一张锦囊牌生效前,对此牌使用。抵消此牌对一名角色产生的效果,或抵消另一张【无懈可击】产生的效果。',
lebu_info:'出牌阶段,对一名其他角色使用。若判定结果不为红桃,跳过其出牌阶段。',
shandian_info:'出牌阶段对自己使用。若判定结果为黑桃2~9则目标角色受到3点雷电伤害。若判定不为黑桃2~9将之移动到下家的判定区里。',

View File

@ -472,7 +472,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
//function(card,player,target){
// return !target.isLinked();
//},
'是否发动【太公阴符】横置一名角色?').set('ai',function(target){
'是否发动【太公阴符】横置或重置一名角色?').set('ai',function(target){
return get.effect(target,{name:'tiesuo'},_status.event.player,_status.event.player);
});
'step 1'
@ -1001,7 +1001,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
help:{
'应变篇':('<div style="margin:10px">应变机制</div><ul style="margin-top:0">'+
'<li>当一名角色声明使用右下角标注了应变条件的卡牌后,若其满足应变条件,则其触发此牌的“应变”效果。<br><li>长按或鼠标右键点击卡牌,即可查看此牌所拥有的应变效果。'+
'<br><li>应变条件<br><ul style="padding-left:20px;padding-top:5px"><li>空巢该角色声明使用此牌后其手牌数为0。<br><li>富甲:该角色声明使用此牌后,其手牌数为全场最多或之一。<br><li>残躯该角色声明使用此牌后其体力值为1。<br><li>助战:该角色声明使用此牌后,其发起“助战”。其他角色可弃置一张与此牌类型系统的卡牌,响应此“助战”。若有角色响应,则视为其应变成功。</ul></ul>'),
'<br><li>应变条件<br><ul style="padding-left:20px;padding-top:5px"><li>空巢该角色声明使用此牌后其手牌数为0。<br><li>富甲:该角色声明使用此牌后,其手牌数为全场最多或之一。<br><li>残躯该角色声明使用此牌后其体力值为1。<br><li>助战:该角色声明使用此牌后,其发起“助战”。其他角色可弃置一张与此牌类型相同的卡牌,响应此“助战”。若有角色响应,则视为其应变成功。</ul></ul>'),
},
}
});

View File

@ -3012,7 +3012,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addTempSkill('shiroha_guying_temp');
player.judge(function(card){
return (get.color(card)==(_status.event.getParent('shiroha_guying').num>0?'black':'red'))?2:0;
});
}).judge2=function(result){
return result.bool?true:false;
};
}
else event.finish();
'step 2'
@ -6136,7 +6138,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.judge(function(card){
return get.suit(card)=='spade'?2:-2;
});
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool){
player.chooseTarget(lib.filter.notMe,true,'选择一名其他角色对其造成1点雷属性伤害').set('ai',function(target){
@ -7097,7 +7101,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.judge(function(card){
return get.color(card)=='red'?5:0;
});
}).judge2=function(result){
return result.bool?true:false;
};
'step 1'
if(result.bool){
player.line(trigger.getParent().playerfalse);
@ -8137,6 +8143,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'key',
content:function(){
'step 0'
player.awakenSkill('umi_qihuan');
player.reinit('key_umi','key_umi2');
player.recover(game.countGroup()||1);
if(!game.dead.length) event.finish();
@ -14998,7 +15005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_doruji:'多鲁基',
key_yuiko:'来谷唯湖',
key_riki:'直枝理树'/*+'子'*/,
key_hisako:'久子',
key_hisako:'高桥久子',
key_hinata:'日向秀树',
key_noda:'野田',
key_tomoya:'冈崎朋也',

View File

@ -278,7 +278,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(result){
if(get.color(result)=='red') return 2;
return -1;
});
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool){
trigger.targets.remove(player);
@ -428,7 +430,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1;
}).set('callback',function(){
event.getParent().orderingCards.remove(event.judgeResult.card);
});
}).judge2=function(result){
return result.bool?true:false;
};
'step 2'
event.cards.push(result.card);
if(result.bool&&player.maxHp<10){
@ -1522,7 +1526,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.judge(function(card){
if(['tao','taoyuan'].contains(card.name)) return 10;
return -10;
});
}).judge2=function(result){
return result.bool==false?true:false;
};
"step 3"
if(!result.bool){
lib.element.player.die.apply(target,[]);

View File

@ -983,8 +983,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:['useCard','respond']},
forced:true,
filter:function(event,player){
if(get.is.converted(event)) return false;
if(event.card.zhenying_link) return false;
if(!event.card.isCard) return false;
if(event.cards[0]&&event.cards[0].zhenying_link) return false;
if(get.color(event.card)!='black') return false;
if(['delay','equip'].contains(get.type(event.card))) return false;
return true;

View File

@ -15,14 +15,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin"],
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan"],
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui"],
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou"],
mobile_yijiang4:[,"xin_zhoucang","xin_caifuren"],
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong"],
mobile_yijiang67:["re_jikang"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
xin_guyong:['male','wu',3,['xinshenxing','xinbingyi']],
re_zhonghui:['male','wei',4,['requanji','zili']],
xin_caifuren:['female','qun',3,['xinqieting','xianzhou']],
sp_yanghu:['male','qun',3,['mingfa','rongbei']],
qiaogong:['male','wu',3,['yizhu','luanchou']],
@ -129,6 +131,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
},
characterIntro:{
gongsunkang:'公孙康生卒年不详辽东襄平今辽宁辽阳人。东汉末年辽东地区割据军阀辽东太守公孙度长子一作庶子、车骑将军公孙恭之兄。公孙康在其父死后继任辽东太守。建安十二年207年擒斩图谋不轨的袁尚、袁熙兄弟将其首级献予曹操被拜为左将军封襄平侯。建安十四年209年公孙康大破高句丽陷其国都并讨伐韩濊设置带方郡。死后因二子年幼由公孙恭继任。曹丕称帝后被追赠为大司马。',
qiaogong:'桥公,亦作“乔公”,名字不详,是中国汉末三国时期的长者,江东二乔的父亲,三国时期庐江郡皖县(今安徽潜山)人,中国长篇古典名著《三国演义》中称之为“乔国老”。',
liuzhang:'刘璋(生卒年不详),字季玉,江夏竟陵(今湖北省天门市)人。东汉末年宗室、军阀,益州牧刘焉幼子,在父亲刘焉死后继任益州牧。刘璋为人懦弱多疑。汉中张鲁骄纵,不听刘璋号令,于是刘璋杀张鲁母弟,双方成为仇敌,刘璋派庞羲攻击张鲁,战败。后益州内乱,平定后,又有曹操将前来袭击的消息。在内外交逼之下,刘璋听信手下张松、法正之言,迎接刘备入益州,想借刘备之力,抵抗曹操。不料此举乃引狼入室,刘备反手攻击刘璋,又有法正为内应,进至成都。成都吏民都想抵抗刘备,但刘璋为百姓计而开城出降,群下莫不流涕。刘备占据成都后,刘璋以振威将军的身份被迁往荆州居住,关羽失荆州后,刘璋归属东吴,被孙权任命为益州牧,不久后去世,卒年不详。',
zhangzhongjing:'张仲景约公元150154年—约公元215219年名机字仲景南阳涅阳县今河南省邓州市穰东镇张寨村人。东汉末年著名医学家被后人尊称为“医圣”。张仲景广泛收集医方写出了传世巨著《伤寒杂病论》。它确立的“辨证论治”原则是中医临床的基本原则是中医的灵魂所在。在方剂学方面《伤寒杂病论》也做出了巨大贡献创造了很多剂型记载了大量有效的方剂。其所确立的六经辨证的治疗原则受到历代医学家的推崇。这是中国第一部从理论到实践、确立辨证论治法则的医学专著是中国医学史上影响最大的著作之一是后学者研习中医必备的经典著作广泛受到医学生和临床大夫的重视。',
@ -561,6 +564,146 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//顾雍
xinshenxing:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return (player.getStat('skill').xinshenxing||0)<player.hp&&player.countCards('he')>1;
},
selectCard:2,
position:'he',
check:function(card){
if(!ui.selected.cards.length||get.color(card)!=get.color(ui.selected.cards[0])) return 6.5-get.value(card);
return 6.5-get.value(card)-get.value(ui.selected.cards[0]);
},
filterCard:true,
content:function(){
player.draw(get.color(cards)=='none'?2:1);
},
ai:{
order:1,
result:{player:1},
},
},
xinbingyi:{
audio:'bingyi',
audioname:['xin_guyong'],
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
return player.countCards('h')>0;
},
filterx:function(event,player){
var cards=player.getCards('h');
if(cards.length==1) return true;
var color=get.color(cards[0],player),type=get.type(cards[0],player);
for(var i=1;i<cards.length;i++){
if(color&&get.color(cards[i],player)!=color) color=false;
if(type&&get.type(cards[i],player)!=type) color=false;
if(!color&&!type) return false;
}
return true;
},
direct:true,
content:function(){
"step 0"
if(lib.skill.xinbingyi.filterx(trigger,player)){
player.chooseTarget(get.prompt('xinbingyi'),'展示所有手牌,并选择至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[0,player.countCards('h')],function(card,player,target){
return true;
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
}
else player.chooseBool(get.prompt('bingyi'),'展示所有手牌').ai=function(){return false};
"step 1"
if(result.bool){
player.logSkill('xinbingyi');
player.showHandcards(get.translation(player)+'发动了【秉壹】');
event.targets=result.targets;
}
else{
event.finish();
}
"step 2"
if(targets&&targets.length){
player.line(targets,'green');
targets.sortBySeat();
game.asyncDraw(targets);
}
},
ai:{
expose:0.1,
}
},
//钟会
requanji:{
audio:2,
trigger:{player:['damageEnd','phaseUseEnd']},
frequent:true,
locked:false,
notemp:true,
init:function(player){
if(!player.storage.quanji) player.storage.quanji=[];
},
filter:function(event,player){
if(event.name=='phaseUse') return player.countCards('h')>player.hp;
return event.num>0;
},
content:function(){
"step 0"
event.count=trigger.num||1;
"step 1"
event.count--;
player.draw();
"step 2"
if(player.countCards('h')){
player.chooseCard('将一张手牌置于武将牌上作为“权”',true);
}
else{
event.goto(4);
}
"step 3"
if(result.cards&&result.cards.length){
player.lose(result.cards,ui.special,'toStorage');
player.storage.quanji=player.storage.quanji.concat(result.cards);
player.syncStorage('quanji');
player.markSkill('quanji');
game.log(player,'将',result.cards,'置于武将牌上作为“权”');
}
"step 4"
if(event.count>0){
player.chooseBool(get.prompt2('requanji')).set('frequentSkill','requanji');
}
else event.finish();
"step 5"
if(result.bool){
player.logSkill('requanji');
event.goto(1);
}
},
mod:{
maxHandcard:function(player,num){
return num+player.storage.quanji.length;
}
},
ai:{
maixie:true,
maixie_hp:true,
threaten:0.8,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
if(!target.hasSkill('paiyi')&&target.hp>1) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==3) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
//王凌
xingqi:{
audio:2,
@ -3734,7 +3877,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.number(card)>6) return 2;
return 0;
});
}).judge2=function(result){
return result.bool?true:false;
};
'step 1'
if(result.bool){
trigger.targets.length=0;
@ -9033,9 +9178,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
if(!player.storage.relianji) player.storage.relianji=0;
player.storage.relianji++;
if(player.storage.relianji>2){
event.trigger('remoucheng_awaken');
}
},
},
},
@ -9046,6 +9189,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'remoucheng_awaken'
},
forced:true,
filter:function(event,player){
return player.storage.relianji&&player.storage.relianji>2;
},
audio:'moucheng',
juexingji:true,
skillAnimation:true,
@ -9640,7 +9786,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:"bagua_skill",
content:function(){
"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}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.judge>0){
trigger.untrigger();
@ -10120,7 +10268,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
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])+'使用或打出';
},
},
@ -11544,7 +11692,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
relianji:'连计',
relianji_info:'出牌阶段限一次你可以选择两名其他角色。第一名角色随机使用牌堆中的一张武器牌然后这名角色视为对另一名角色随机使用一张下列的牌名的牌【决斗】、【火攻】、【南蛮入侵】、【万箭齐发】或普【杀】。然后若此牌造成伤害你获得X枚“连计”标记X为此次扣减的体力值点数。',
remoucheng:'谋逞',
remoucheng_info:'觉醒技,当一名角色造成伤害后若你拥有的“连计”标记数大于2你加1点体力上限回复1点体力失去“连计”获得“矜功”。',
remoucheng_info:'觉醒技,当一名角色因〖连计〗造成伤害后若你拥有的“连计”标记数大于2你加1点体力上限回复1点体力失去“连计”获得“矜功”。',
mobile_default:'常规',
mobile_others:'其他',
@ -11916,7 +12064,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guying_info:'锁定技。每回合限一次,当你于回合外因使用/打出/弃置而失去牌后若牌数为1则你获得一枚“固”并令当前回合角色选择一项①随机交给你一张牌。②令你获得本次失去的牌若为装备牌则你使用之。准备阶段开始时你移去所有“固”并弃置等量的牌。',
muzhen:'睦阵',
muzhen_backup:'睦阵',
muzhen_info:'出牌阶段各限一次。①你可以将两张牌交给一名装备区内有牌的其他角色,然后获得其装备区内的一张牌。②你可以将装备区内的一张牌置于其他角色的装备区内,然后获得其一张牌。',
muzhen_info:'出牌阶段各限一次。①你可以将两张牌交给一名装备区内有牌的其他角色,然后获得其装备区内的一张牌。②你可以将装备区内的一张牌置于其他角色的装备区内,然后获得其一张牌。',
sp_huaxin:'手杀华歆',
hxrenshi:'仁仕',
hxrenshi_info:'出牌阶段每名角色限一次。你可以将一张手牌交给一名其他角色。',
@ -11998,7 +12146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xuancun:'悬存',
xuancun_info:'其他角色的回合结束时若你的手牌数小于体力值则你可以令其摸X张牌X为你的体力值与手牌数之差且至多为2',
xinlirang:'礼让',
xinlirang_info:'①其他角色的摸牌阶段开始时,若你没有“谦”标记,则你可以获得一枚“谦”标记。若如此做,其额定摸牌数+2且本回合的弃牌阶段开始时你可以获得其弃置的至多两张牌。②摸牌阶段开始时若你有“谦”标记则你跳过牌阶段并移除“谦”标记。',
xinlirang_info:'①其他角色的摸牌阶段开始时,若你没有“谦”标记,则你可以获得一枚“谦”标记。若如此做,其额定摸牌数+2且本回合的弃牌阶段开始时你可以获得其弃置的至多两张牌。②摸牌阶段开始时若你有“谦”标记则你跳过此摸牌阶段并移除“谦”标记。',
xinmingshi:'名仕',
xinmingshi_info:'锁定技当你受到伤害后若你有“谦”标记则伤害来源弃置一张牌。若此牌为黑色你获得之。红色你回复1点体力。',
xingqi:'星启',
@ -12009,6 +12157,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mibei_info:'使命技。①使命当你使用的牌结算完成后若你的“备”中包含的基本牌锦囊牌装备牌数量均大于1则你从牌堆中获得这三种类型的牌各一张并获得技能“谋立”。②失败结束阶段开始时若你没有“备”且你于本回合的准备阶段开始时也没有“备”则你减1点体力上限。',
xinmouli:'谋立',
xinmouli_info:'出牌阶段限一次,你可以指定一名其他角色。其移去你的一个“备”,然后从牌堆中获得一张与此“备”名称相同的牌。',
re_zhonghui:'手杀钟会',
requanji:'权计',
requanji_info:'出牌阶段结束时若你的手牌数大于体力值或当你受到1点伤害后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”你的手牌上限+XX为“权”的数量。',
xin_guyong:'手杀顾雍',
xinshenxing:'慎行',
xinshenxing_info:'出牌阶段限X次X为你的体力值你可以弃置两张牌然后摸一张牌。若这两张牌颜色不同则改为摸两张牌。',
xinbingyi:'秉壹',
xinbingyi_info:'结束阶段你可展示所有手牌。若这些牌的颜色或类型均相同则你可以令至多X名角色各摸一张牌X为你的手牌数。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',

View File

@ -142,7 +142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'longyi_effect',
subSkill:{
effect:{
trigger:{player:'useCard'},
trigger:{player:['useCard','respond']},
forced:true,
charlotte:true,
popup:false,
@ -160,7 +160,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
map[get.type2(i,player)]=true;
}
if(map.trick) player.draw();
if(map.equip) trigger.directHit.addArray(game.players);
if(map.equip&&trigger.directHit) trigger.directHit.addArray(game.players);
},
},
backup:{},

View File

@ -694,6 +694,8 @@ window.noname_character_rank={
'sp_kongrong',
'qiaogong',
'liuzhang',
're_guyong',
'xin_zhonghui',
],
b:[
'diy_feishi',
@ -1032,6 +1034,7 @@ window.noname_character_rank={
'caizhenji',
'longyufei',
'sp_zhangwen',
're_zoushi',
],
c:[
'xiahoudun',
@ -1384,6 +1387,7 @@ window.noname_character_rank={
'ns_yanghu',
'ol_huaxin',
'longyufei',
're_guyong',
'key_haruko',
'key_akiko',
'key_sunohara',
@ -1714,6 +1718,7 @@ window.noname_character_rank={
'qiaogong',
'liuzhang',
'zhangzhongjing',
'xin_zhonghui',
],
junk:[
'sunshao',

View File

@ -10,15 +10,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo','ol_zhurong'],
refresh_shan:['ol_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','xin_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','xin_guyong'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','re_guyong'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji'],
},
},
connect:true,
character:{
xin_guyong:['male','wu',3,['xinshenxing','bingyi']],
re_guyong:['male','wu',3,['reshenxing','rebingyi']],
xin_zhonghui:['male','wei',4,['xinquanji','xinzili']],
re_caifuren:['female','qun',3,['reqieting','rexianzhou']],
re_guanping:['male','shu',4,['relongyin','jiezhong']],
re_guotufengji:['male','qun',3,['rejigong','shifei']],
@ -49,7 +50,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_taishici:['male','wu',4,['tianyi','hanzhan']],
re_masu:['male','shu',3,['resanyao','rezhiman']],
re_sunluban:['female','wu',3,['rechanhui','rejiaojin']],
re_zhonghui:['male','wei',4,['requanji','zili']],
xin_handang:['male','wu',4,['xingongji','xinjiefan']],
yujin_yujin:['male','wei',4,['decadezhenjun']],
re_caozhang:['male','wei',4,['xinjiangchi']],
@ -137,26 +137,319 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
xinshenxing:{
//顾雍
reshenxing:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return (player.getStat('skill').xinshenxing||0)<player.hp&&player.countCards('he')>1;
return player.countCards('he')>=Math.min(2,(player.getStat('skill').reshenxing||0));
},
selectCard:function(){
return Math.min(2,(_status.event.player.getStat('skill').reshenxing||0));
},
prompt:function(){
return '弃置'+get.cnNumber(Math.min(2,(_status.event.player.getStat('skill').reshenxing||0)))+'张牌并摸一张牌';
},
selectCard:2,
position:'he',
check:function(card){
if(!ui.selected.cards.length||get.color(card)!=get.color(ui.selected.cards[0])) return 6.5-get.value(card);
return 6.5-get.value(card)-get.value(ui.selected.cards[0]);
var num=_status.event.player.countCards('h',{color:get.color(card)});
if(get.position(card)=='e') num++;
return (Math.max(4,7.1-num)-get.value(card))/num;
},
filterCard:true,
position:'he',
content:function(){
player.draw(get.color(cards)=='none'?2:1);
player.draw();
},
ai:{
order:function(item,player){
if(!player.getStat('skill').reshenxing) return 10;
return 1;
},
result:{player:1},
},
},
rebingyi:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
return player.countCards('h')>0;
},
filterx:function(player){
var cards=player.getCards('h');
if(cards.length==1) return true;
var color=get.color(cards[0],player);
for(var i=1;i<cards.length;i++){
if(get.color(cards[i],player)!=color) return false;
}
return true;
},
filtery:function(player){
var cards=player.getCards('h');
if(cards.length==1) return true;
var color=get.number(cards[0],player);
for(var i=1;i<cards.length;i++){
if(get.number(cards[i],player)!=color) return false;
}
return true;
},
direct:true,
content:function(){
"step 0"
if(lib.skill.rebingyi.filtery(player)) event.draw=true;
if(lib.skill.rebingyi.filterx(player)){
player.chooseTarget(get.prompt('xinbingyi'),'展示所有手牌,并选择至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[0,player.countCards('h')],function(card,player,target){
return true;
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
}
else player.chooseBool(get.prompt('bingyi'),'展示所有手牌').ai=function(){return false};
"step 1"
if(result.bool){
player.logSkill('xinbingyi');
player.showHandcards(get.translation(player)+'发动了【秉壹】');
event.targets=result.targets;
}
else{
event.finish();
}
"step 2"
if(targets&&targets.length){
player.line(targets,'green');
targets.sortBySeat();
game.asyncDraw(targets);
}
else event.finish();
if(event.draw){
player.draw();
event.finish();
}
"step 3"
game.delayx();
},
},
//钟会
xinquanji:{
audio:2,
trigger:{
global:'gainAfter',
player:'damageEnd',
},
frequent:true,
filter:function(event,player){
if(event.name=='damage') return true;
if(player==event.player) return false;
var evt=event.getl(player);
return evt&&evt.cards2&&evt.cards2.length>0;
},
content:function(){
'step 0'
event.count=(trigger.name=='damage'?trigger.num:1);
'step 1'
event.count--;
player.draw();
'step 2'
var hs=player.getCards('h');
if(hs.length){
if(hs.length==1) event._result={bool:true,cards:hs};
else player.chooseCard('h',true,'选择一张手牌作为“权”');
}
else event.goto(4);
'step 3'
if(result.bool&&result.cards&&result.cards.length){
var card=result.cards[0];
player.lose(card,ui.special,'toStorage');
player.markAuto('xinquanji',result.cards);
game.log(player,'将',card,'置于了武将牌上');
}
'step 4'
if(event.count>0){
player.chooseBool(get.prompt2('xinquanji')).set('frequentSkill','xinquanji');
}
else event.finish();
'step 5'
if(result.bool){
player.logSkill('xinquanji');
event.goto(1);
}
},
locked:false,
intro:{
content:'cards',
onunmark:'throw',
},
mod:{
maxHandcard:function(player,num){
return num+player.getStorage('xinquanji').length;
},
},
ai:{
maixie:true,
maixie_hp:true,
threaten:0.8,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
if(!target.hasSkill('xinpaiyi')&&target.hp>1) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==3) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
xinzili:{
derivation:'xinpaiyi',
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
juexingji:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return player.getStorage('xinquanji').length>2;
},
content:function(){
player.awakenSkill('xinzili');
player.recover();
player.draw(2);
player.loseMaxHp();
player.addSkill('xinpaiyi');
},
},
xinpaiyi:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.getStorage('xinquanji').length>0&&(!player.hasSkill('xinpaiyi_0')||!player.hasSkill('xinpaiyi_1'))
},
chooseButton:{
check:function(button){
if(typeof button.link=='object') return 1;
var player=_status.event.player,num=player.storage.xinquanji.length-1;
if(button.link==1){
if(game.countPlayer(function(current){
return get.damageEffect(current,player,player)>0;
})<num) return 0.5;
return 2;
}
if(num<2) return 0;
return 1;
},
dialog:function(event,player){
var dialog=ui.create.dialog('权计','hidden');
var table=document.createElement('div');
table.classList.add('add-setting');
table.style.margin='0';
table.style.width='100%';
table.style.position='relative';
var list=['摸牌','造成伤害'];
for(var i=0;i<list.length;i++){
if(player.hasSkill('xinpaiyi_'+i)) continue;
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
td.innerHTML='<span>'+(list[i])+'</span>';
td.link=i;
td.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
for(var j in lib.element.button){
td[j]=lib.element.button[j];
}
table.appendChild(td);
dialog.buttons.add(td);
}
dialog.content.appendChild(table);
dialog.add(player.storage.xinquanji);
return dialog;
},
select:2,
filter:function(button,player){
if(ui.selected.buttons.length) return (typeof ui.selected.buttons[0].link)!=(typeof button.link)
return true;
},
backup:function(links){
if(typeof links[0]=='object') links.reverse();
var next=get.copy(lib.skill['xinpaiyi_backup'+links[0]]);
next.card=links[1];
return next;
},
prompt:function(links,player){
if(typeof links[0]=='object') links.reverse();
var num=get.cnNumber(Math.max(1,player.storage.xinquanji.length-1)),card=get.translation(links[1]);
if(links[0]==0) return '移去'+card+'并令一名角色摸'+num+'张牌';
return '移去'+card+'并对至多'+num+'名角色造成1点伤害';
},
},
ai:{
order:1,
result:{player:1},
},
subSkill:{
0:{},
1:{},
backup0:{
audio:'xinpaiyi',
filterCard:()=>false,
selectCard:-1,
filterTarget:true,
delay:false,
content:function(){
'step 0'
player.addTempSkill('xinpaiyi_0','phaseUseEnd');
var card=lib.skill.xinpaiyi_backup.card;
player.unmarkAuto('xinquanji',[card]);
game.log(card,'进入了弃牌堆');
player.$throw(card,1000);
game.delayx();
game.cardsDiscard(card);
'step 1'
target.draw(Math.max(1,player.getStorage('xinquanji').length));
},
ai:{
result:{
target:function(player,target){
if(target.hasSkill('nogain')) return 0;
if(player==target&&!player.needsToDiscard()) return 3;
return 1;
},
},
},
},
backup1:{
audio:'xinpaiyi',
filterCard:()=>false,
selectCard:-1,
filterTarget:true,
delay:false,
multitarget:true,
multiline:true,
selectTarget:function(){
return [1,Math.max(1,_status.event.player.storage.xinquanji.length-1)];
},
content:function(){
'step 0'
targets.sortBySeat();
player.addTempSkill('xinpaiyi_1','phaseUseEnd');
var card=lib.skill.xinpaiyi_backup.card;
player.unmarkAuto('xinquanji',[card]);
game.log(card,'进入了弃牌堆');
player.$throw(card,1000);
game.delayx();
game.cardsDiscard(card);
'step 1'
for(var i of targets) i.damage();
},
ai:{
tag:{
damage:1,
},
result:{
target:-1.5,
},
},
},
},
},
//界蔡夫人
reqieting:{
@ -628,7 +921,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'diamond':return get.sgn(get.attitude(evt.target,evt.player))*-3;
}
return 0;
});
}).judge2=function(result){
if(result.color=='black') return true;
return false;
};
'step 1'
switch(result.suit){
case 'spade': case 'club':
@ -670,6 +966,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
//界曹彰
xinjiangchi:{
audio:'new_jiangchi',
trigger:{player:'phaseUseBegin'},
direct:true,
content:function(){
@ -2463,7 +2760,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.judge(function(card){
return get.suit(card)=='heart'?2:0;
});
}).judge2=function(result){
return result.bool?true:false;
};
'step 1'
event.card=result.card;
if(result.bool&&get.position(event.card,true)=='d'){
@ -2615,7 +2914,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.suit(card)=='spade') return 4;
return 0;
});
}).judge2=function(result){
return result.bool?true:false;
};
}
else{
event.finish();
@ -3035,74 +3336,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
requanji:{
audio:2,
trigger:{player:['damageEnd','phaseUseEnd']},
frequent:true,
locked:false,
notemp:true,
init:function(player){
if(!player.storage.quanji) player.storage.quanji=[];
},
filter:function(event,player){
if(event.name=='phaseUse') return player.countCards('h')>player.hp;
return event.num>0;
},
content:function(){
"step 0"
event.count=trigger.num||1;
"step 1"
event.count--;
player.draw();
"step 2"
if(player.countCards('h')){
player.chooseCard('将一张手牌置于武将牌上作为“权”',true);
}
else{
event.goto(4);
}
"step 3"
if(result.cards&&result.cards.length){
player.lose(result.cards,ui.special,'toStorage');
player.storage.quanji=player.storage.quanji.concat(result.cards);
player.syncStorage('quanji');
player.markSkill('quanji');
game.log(player,'将',result.cards,'置于武将牌上作为“权”');
}
"step 4"
if(event.count>0){
player.chooseBool(get.prompt2('requanji')).set('frequentSkill','requanji');
}
else event.finish();
"step 5"
if(result.bool){
player.logSkill('requanji');
event.goto(1);
}
},
mod:{
maxHandcard:function(player,num){
return num+player.storage.quanji.length;
}
},
ai:{
maixie:true,
maixie_hp:true,
threaten:0.8,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
if(!target.hasSkill('paiyi')&&target.hp>1) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==3) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
ollongdan:{
audio:'longdan_sha',
audioname:['re_zhaoyun'],
@ -5585,7 +5818,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 0;
},
content:function(){
player.judge(lib.skill.xinleiji.judgeCheck);
player.judge(lib.skill.xinleiji.judgeCheck).judge2=function(result){
return result.bool?true:false;
};
},
ai:{
useShan:true,
@ -6907,7 +7142,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var next=player.judge(function(card){
if(get.color(card)=='black') return 1.5;
return -1.5;
});
}).judge2=function(result){
return result.bool;
};
if(get.mode()!='guozhan'&&!player.hasSkillTag('rejudge')) next.set('callback',function(){
if(event.judgeResult.color=='black'&&get.position(card,true)=='o'){
player.gain(card,'gain2').gaintag.add('reluoshen');
@ -9637,9 +9874,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ollongdan_info:'你可以将一张【杀】当做【闪】、【闪】当做【杀】、【酒】当做【桃】、【桃】当做【酒】使用或打出。',
olyajiao:'涯角',
olyajiao_info:'当你于回合外因使用或打出而失去手牌后,你可以展示牌堆顶的一张牌。若这两张牌的类别相同,你可以将展示的牌交给一名角色;若类别不同,你可弃置攻击范围内包含你的角色区域里的一张牌。',
re_zhonghui:'界钟会',
requanji:'权计',
requanji_info:'出牌阶段结束时若你的手牌数大于体力值或当你受到1点伤害后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”你的手牌上限+XX为“权”的数量。',
regongji:'弓骑',
regongji_info:'出牌阶段限一次,你可以弃置一张非基本牌,然后弃置一名其他角色的一张牌。锁定技,当你的装备区内有坐骑牌时,你的攻击范围无限。',
ol_sunjian:'界孙坚',
@ -9801,9 +10035,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reqieting_info:'其他角色的回合结束时,若其本回合内未造成过伤害,则你可将其装备区内的一张牌置于你的装备区内;若其本回合内未对其他角色使用过牌,则你可摸一张牌。',
rexianzhou:'献州',
rexianzhou_info:'限定技。出牌阶段你可将装备区内的所有牌交给一名其他角色。你回复X点体力然后对其攻击范围内的至多X名角色各造成1点伤害X为你以此法给出的牌数。',
xin_guyong:'界顾雍',
xinshenxing:'慎行',
xinshenxing_info:'出牌阶段限X次X为你的体力值你可以弃置两张牌然后摸一张牌。若这两张牌颜色不同则改为摸两张牌。',
xin_zhonghui:'界钟会',
xinquanji:'权计',
xinquanji_info:'①当你受到1点伤害后或你的牌被其他角色获得后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”。②你的手牌上限+XX为“权”的数量。',
xinzili:'自立',
xinzili_info:'觉醒技。准备阶段若你的“权”数大于2则你回复1点体力并摸两张牌减1点体力上限并获得〖排异〗。',
xinpaiyi:'排异',
xinpaiyi_backup:'排异',
xinpaiyi_info:'出牌阶段每项各限一次你可移去一张“权”并选择一项①令一名角色摸X张牌。②对至多X名角色各造成1点伤害。X为“权”数',
re_guyong:'界顾雍',
reshenxing:'慎行',
reshenxing_info:'出牌阶段你可以X为你本阶段内发动过〖慎行〗的次数然后摸一张牌。若这两张牌颜色不同则改为摸两张牌。',
rebingyi:'秉壹',
rebingyi_info:'结束阶段你可展示所有手牌。若这些牌颜色均相同则你可以令至多X名角色各摸一张牌X为你的手牌数点数均相同则你摸一张牌。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -3261,6 +3261,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.suit(card)=='heart') return -1;
return 1;
});
next.judge2=function(result){
return result.bool;
};
if(get.mode()!='guozhan'){
next.callback=lib.skill.tuntian.callback;
event.finish();
@ -4903,7 +4906,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.source.judge(function(card){
if(get.suit(card)=='spade') return 4;
return 0;
});
}).judge2=function(result){
return result.bool?true:false;
};
}
else{
event.finish();
@ -5834,7 +5839,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(suit=='spade') return -4;
if(suit=='club') return -2;
return 0;
});
}).judge2=function(result){
return result.bool==false?true:false;
};
}
else{
event.finish();
@ -6519,7 +6526,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
group:'gzbuqu_recover',
//locked:true,
frequent:true,
forced:true,
locked:false,
ondisable:true,
onremove:function(player){
if(player.storage.gzbuqu.length){
@ -6725,7 +6733,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.target.judge(function(card){
if(get.suit(card)=='spade') return -4;
return 0;
});
}).judge2=function(result){
return result.bool==false?true:false;
};
}
else{
event.finish();
@ -7715,7 +7725,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinliegong:'烈弓',
xinkuanggu:'狂骨',
gzbuqu:'不屈',
gzbuqu_info:'当你扣减1点体力时若你的体力值为0你可以将牌堆顶的一张牌置于你的武将牌上若此牌的点数与你武将牌上的其他牌均不同你不会死亡若你的武将牌上有点数相同的牌你进入濒死状态',
gzbuqu_info:'①当你扣减1点体力时若你的体力值小于1则你将牌堆顶的一张牌置于你的武将牌上称为“创”。②当你回复1点体力时你移去一张“创”。③若你有“创”且点数均不相同则你不结算濒死状态。',
xinkuanggu_info:'当你对距离1以内的一名角色造成1点伤害后你可以回复1点体力或摸一张牌。',
xinliegong_info:'你使用【杀】可以选择你距离不大于此【杀】点数的角色为目标当你使用【杀】指定一个目标后你可以根据下列条件执行相应的效果1.其手牌数小于等于你的手牌数此【杀】不可被【闪】响应2.其体力值大于等于你的体力值,此【杀】伤害+1。',
jiewei_info:'当你的武将牌翻面后,你可以摸一张牌。然后你可以使用一张锦囊牌或装备牌,并可以在此牌结算后弃置场上一张同类型的牌',

View File

@ -75,7 +75,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhanglu:['male','qun',3,['yishe','bushi','midao']],
wutugu:['male','qun',15,['ranshang','hanyong']],
sp_caiwenji:['female','wei',3,['chenqing','mozhi']],
zhugeguo:['female','shu',3,['yuhua','qirang']],
zhugeguo:['female','shu',3,['qirang','yuhua']],
lingju:['female','qun',3,['jieyuan','fenxin']],
@ -132,7 +132,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiling:['male','qun',4,['shuangren']],
zangba:['male','wei',4,['rehengjiang']],
zhangren:['male','qun',4,['chuanxin','zfengshi']],
zoushi:['female','qun',3,['zhuoshui','zqingcheng']],
wangyun:['male','qun',4,['xinlianji','xinmoucheng']],
sunqian:['male','shu',3,['qianya','shuimeng']],
@ -1104,7 +1103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(lib.skill.jinzhi_backup.viewAs.name=='jiu'&&!player.countCards('h',function(cardx){
return card!=cardx&&!ui.selected.cards.contains(cardx)&&get.name(cardx,player)=='sha';
})) return 0;
return 6-get.value(card);
return Math.min(0.01,6-get.value(card));
},
precontent:function(){
player.logSkill('jinzhi');
@ -2237,7 +2236,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.color(result)=='red') return -1;
return 0;
};
player.judge(func);
player.judge(func).judge2=function(result){
return result.color=='red'?true:false;
};
'step 1'
if(result.color=='red'&&get.itemtype(trigger.source)=='player'&&player.canUse('sha',trigger.source,false)){
player.useCard({name:'sha',isCard:true},trigger.source,false,'noai');
@ -3279,8 +3280,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=result.cards;
player.gain(cards,trigger.target,'giveAuto');
}
else trigger.getParent().directHit.add(trigger.target);
else{
trigger.getParent().directHit.add(trigger.target);
game.delay();
}
},
},
//变权移植
@ -5215,159 +5218,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
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'},
forced:true,
content:function(){
game.countPlayer(function(current){
if(current!=player&&!current.hasSkill('fengyin')){
player.line(current,'green');
current.addTempSkill('fengyin');
}
});
}
},
zqingcheng:{
audio:'qingcheng',
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{type:'equip'});
},
filterCard:{type:'equip'},
position:'he',
filterTarget:function(card,player,target){
return target!=player;
},
check:function(card){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return get.attitude(player,current)>2&&current.isTurnedOver();
})){
return 10-get.value(card,player);
}
return 6-get.value(card,player);
},
content:function(){
'step 0'
target.turnOver();
'step 1'
target.draw(2);
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.hasSkillTag('noturn')) return 0;
if(target.isTurnedOver()) return 2;
return -0.5;
}
}
}
},
zfengshi:{
audio:2,
trigger:{player:'useCardToPlayered'},
@ -6036,19 +5886,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
filterTarget:function(card,player,target){
return !target.hasSkill('fuman2')&&target!=player;
if(target==player) return false;
var stat=player.getStat().fuman_targets;
return !stat||!stat.contains(target);
},
filter:function(event,player){
return player.countCards('h','sha');
return player.countCards('h')>0&&game.hasPlayer((current)=>lib.skill.fuman.filterTarget(null,player,current));
},
discard:false,
lose:false,
delay:false,
filterCard:{name:'sha'},
filterCard:true,
content:function(){
target.gain(cards,player,'giveAuto').gaintag.add('fuman');
target.storage.fuman2=player;
target.addTempSkill('fuman2',{player:'phaseAfter'});
target.addSkill('fuman2');
player.addSkill('fuman_draw');
var stat=player.getStat('skill');
if(!stat.fuman_targets) stat.fuman_targets=[];
stat.fuman_targets.push(target);
},
check:function(card){
return 6-get.value(card);
@ -6061,40 +5916,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1;
}
}
}
},
fuman2:{
mod:{
aiOrder:function(player,card,num){
if(get.itemtype(card)=='card'&&card.hasGaintag('fuman')&&player.storage.fuman2.isIn()) return num+get.sgn(get.attitude(player,player.storage.fuman2));
},
},
trigger:{player:'useCard'},
subSkill:{
draw:{
trigger:{global:'useCardAfter'},
forced:true,
charlotte:true,
filter:function(event,player){
if(!player.storage.fuman2.isIn()) return false;
return player.getHistory('lose',function(evt){
return event.player.hasHistory('lose',function(evt){
if(evt.getParent()!=event) return false;
for(var i in evt.gaintag_map){
if(evt.gaintag_map[i].contains('fuman')) return true;
}
return false;
}).length>0;
},
mark:true,
intro:{
content:'下个回合结束之前使用“抚蛮”牌时,令$摸一张牌'
});
},
logTarget:'player',
content:function(){
'step 0'
game.delayx();
'step 1'
player.line(player.storage.fuman2,'green');
player.storage.fuman2.draw();
player.draw(trigger.player.hasHistory('sourceDamage',function(evt){
return evt.card==trigger.card;
})?2:1);
},
},
},
},
fuman2:{
mod:{
aiOrder:function(player,card,num){
if(get.itemtype(card)=='card'&&card.hasGaintag('fuman')) return num+1;
},
cardname:function(card,player){
if(get.itemtype(card)=='card'&&card.hasGaintag('fuman')) return 'sha';
},
onremove:function(player){
delete player.storage.fuman2;
player.removeGaintag('fuman');
},
},
qizhou:{
@ -6651,14 +6504,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
yjixi:{
init:function(player){
player.storage.yjixi=0;
},
derivation:'rewangzun',
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.storage.yjixi>=3;
return player.countMark('yjixi')>=3;
},
skillAnimation:true,
animationColor:'gray',
@ -6715,23 +6565,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
group:['yjixi_count1','yjixi_count2'],
subSkill:{
count1:{
trigger:{player:'phaseZhunbeiBegin'},
silent:true,
content:function(){
player.storage.yjixi++;
}
},
count2:{
trigger:{player:'loseHpAfter'},
silent:true,
content:function(){
player.storage.yjixi=0;
}
}
}
},
xinyongsi:{
group:['xinyongsi1','xinyongsi2'],
@ -6763,7 +6596,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(!result.bool){
player.loseHp();
var num=player.countMark('yjixi');
if(num) player.removeMark('yjixi',num,false);
}
else player.addMark('yjixi',1,false);
}
},
lianzhu:{
@ -9524,9 +9360,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'equipEnd'},
frequent:true,
content:function(){
player.gain(get.cardPile(function(card){
var card=get.cardPile(function(card){
return get.type(card,'trick')=='trick';
}),'gain2');
});
if(card) player.gain(card,'gain2').gaintag.add('qirang');
},
ai:{
effect:{
@ -9535,16 +9372,82 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
threaten:1.3
},
group:'qirang_use',
subSkill:{
use:{
audio:'qirang',
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
if(get.type(event.card)!='trick') return false;
if(!event.targets||event.targets.length!=1) return false;
var info=get.info(event.card);
if(info.allowMultiple==false) return false;
if(!player.hasHistory('lose',function(evt){
if(evt.getParent()!=event) return false;
for(var i in evt.gaintag_map){
if(evt.gaintag_map[i].contains('qirang')) return true;
}
return false;
})) return false;
if(!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
player.chooseTarget(get.prompt('qirang'),function(card,player,target){
var player=_status.event.player;
if(_status.event.targets.contains(target)) return false;
return lib.filter.targetEnabled2(_status.event.card,player,target)&&lib.filter.targetInRange(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player)*(_status.event.targets.contains(target)?-1:1);
}).set('targets',trigger.targets).set('card',trigger.card);
'step 1'
if(result.bool){
if(!event.isMine()&&!event.isOnline()) game.delayx();
event.targets=result.targets;
}
else{
event.finish();
}
'step 2'
if(event.targets){
player.logSkill('qirang_use',event.targets);
trigger.targets.addArray(event.targets);
}
},
},
},
},
yuhua:{
trigger:{player:'phaseDiscardBegin'},
trigger:{player:'phaseJieshuBegin'},
forced:true,
locked:false,
audio:2,
filter:function(event,player){
return player.countCards('h')>player.getHandcardLimit();
return player.countCards('h')>player.maxHp;
},
content:function(){
'step 0'
var cards=get.cards();
game.cardsGotoOrdering(cards);
event.card=cards[0];
player.chooseControl('牌堆顶','牌堆底').set('dialog',['羽化:牌堆顶的一张牌',cards]);
'step 1'
if(result.control=='牌堆顶') ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
else ui.cardPile.appendChild(card);
game.updateRoundNumber();
},
content:function(){},
mod:{
ignoredHandcard:function(card,player){
if(get.type(card)!='basic'){
@ -15091,14 +14994,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenyue2_bg:'钺',
fenyue_info:'出牌阶段限X次你可以与一名角色拼点若你赢你选择一项1.令其不能使用或打出手牌直到回合结束2.视为你对其使用了【杀】不计入次数限制。若你没赢你结束出牌阶段。X为存活的忠臣数',
huoshui:'祸水',
huoshui_info:'出牌阶段,你可以明置此武将牌:你的回合内,若此武将牌处于明置状态,其他角色不能明置其武将牌。',
qingcheng:'倾城',
qingcheng_info:'出牌阶段,你可以弃置一张装备牌并选择一名两张武将牌均明置的其他角色,你暗置其一张武将牌',
zhuoshui:'祸水',
zhuoshui_info:'锁定技,准备阶段,你令所有其他角色的非锁定技失效直到回合结束。',
zqingcheng:'倾城',
zqingcheng_info:'出牌阶段,你可以弃置一张装备牌,然后令一名角色翻面并摸两张牌。',
zfengshi:'锋矢',
zfengshi_info:'当你使用【杀】指定目标后,你可以令目标弃置装备区内的一张牌。',
chuanxin:'穿心',
@ -15124,7 +15019,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sheyan_info:'当你成为普通锦囊牌的目标时(【借刀杀人】等带有指向目标的锦囊除外),你可以为此牌增加一个目标或令其对其中一个目标无效。(有效目标数至少为一)',
fuman:'抚蛮',
fuman2:'抚蛮',
fuman_info:'出牌阶段,你可以将一张【杀】交给一名本回合未获得过〖抚蛮〗牌的其他角色,其于下个回合结束之前使用〖抚蛮〗牌时,你摸一张牌。',
fuman_info:'出牌阶段每名角色限一次,你可以将一张手牌交给一名其他角色并标记为“抚蛮”且“抚蛮”牌的牌名视为【杀】。然后当一名角色使用“抚蛮”牌结算结束后,你摸一张牌。若此牌造成过伤害,则改为摸两张牌。',
qizhou:'绮胄',
qizhou_info:'锁定技你根据装备区里牌的花色数获得以下技能1种或以上〖马术〗2种或以上〖英姿〗3种或以上〖短兵〗4种〖奋威〗。',
shanxi:'闪袭',
@ -15265,9 +15160,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xisheng:'牺牲',
xisheng_info:'每名其他角色的回合限一次,你可以将两张牌当做【桃】使用。',
yuhua:'羽化',
yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌上限。',
yuhua_info:'锁定技,你的非基本牌不计入手牌上限。结束阶段若你的手牌数大于体力上限则你卜算1。',
qirang:'祈禳',
qirang_info:'当有装备牌进入你的装备区时,你可以随机获得牌堆中的一张锦囊牌。',
qirang_info:'当有装备牌进入你的装备区时,你可获得牌堆中的一张锦囊牌。②当你使用“祈禳”牌选择唯一目标后,可为此牌增加一个目标。',
biluan:'避乱',
biluan_info:'摸牌阶段开始时若有与你距离不大于1的其他角色你可以放弃摸牌。若如此做本局内其他角色计算与你的距离时+X。X为势力数',
lixia:'礼下',
@ -15285,7 +15180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bushi_info:'当你受到1点伤害后或其他角色受到你造成的1点伤害后受到伤害的角色可以获得你的一张「米」',
midao_info:'一名角色的判定牌生效前,你可以打出一张「米」代替之。',
fengpo:'凤魄',
fengpo_info:'每种牌名限一次当你于出牌阶段内第一次使用【杀】或【决斗】指定目标后若目标角色数为1你可以选择一项1.摸X张牌2.令此牌的伤害值基数+X。X为其手牌中牌的数量)',
fengpo_info:'每种牌名限一次当你于出牌阶段内第一次使用【杀】或【决斗】指定目标后若目标角色数为1你可以选择一项1.摸X张牌2.令此牌的伤害值基数+X。X为其手牌中牌的数量)',
chenqing:'陈情',
chenqing_info:'每轮限一次,当一名角色处于濒死状态时,你可以令另一名其他角色摸四张牌,然后其弃置四张牌。若其以此法弃置的四张牌花色各不相同,则视为该角色对濒死的角色使用一张【桃】。',
mozhi:'默识',
@ -15601,11 +15496,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juguan_info:'出牌阶段限一次,你可将一张手牌当【杀】或【决斗】使用。若受到此牌伤害的角色未在你的下回合开始前对你造成过伤害,你的下个摸牌阶段摸牌数+2。',
duxi:'杜袭',
quxi:'驱徙',
quxi_info:'限定技。出牌阶段结束时,你可跳过下个弃牌阶段并选择两名手牌数不同的其他角色。你将翻至背面,令这两名角色中手牌数较少的角色获得另一名角色的一张牌并获得一枚“丰”,另一名角色获得一枚“歉”。拥有“丰”/“歉”的角色的摸牌阶段额定摸牌数+1/-1。拥有“丰”/“歉”的角色死亡时,或一轮游戏开始时,你可转移“丰”/“歉”。',
quxi_info:'限定技。出牌阶段结束时,你可跳过下个弃牌阶段并选择两名手牌数不同的其他角色。你将武将牌翻至背面,令这两名角色中手牌数较少的角色获得另一名角色的一张牌并获得一枚“丰”,另一名角色获得一枚“歉”。拥有“丰”/“歉”的角色的摸牌阶段额定摸牌数+1/-1。拥有“丰”/“歉”的角色死亡时,或一轮游戏开始时,你可转移“丰”/“歉”。',
bixiong:'避凶',
bixiong2:'避凶',
bixiong_info:'锁定技,当你于弃牌阶段弃置手牌后,你不能成为与这些牌花色相同的牌的目标直到你下回合开始。',
sp_default:"常规",
sp_tongque:"铜雀台",
sp_zhongdan:"忠胆英杰",

View File

@ -4,10 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
re_zoushi:['female','qun',3,['rehuoshui','reqingcheng']],
luyusheng:['female','wu',3,['zhente','zhiwei']],
huaxin:['male','wei',3,['spwanggui','xibing']],
re_dongbai:['female','qun',3,['relianzhu','rexiahui']],
qiuliju:['male','qun',6,['koulve','qljsuiren']],
qiuliju:['male','qun','4/6',['koulve','qljsuiren']],
heyan:['male','wei',3,['yachai','qingtan']],
re_hucheer:['male','qun',4,['redaoji','fuzhong']],
re_dongcheng:['male','qun',4,['xuezhao']],
@ -97,10 +98,56 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_qihuan:['liubian','zhaozhong'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_niujin','re_dongzhao','re_hucheer','re_dongcheng','yangwan','qiuliju','heyan'],
sp_zhongyuan:['re_hucheer','re_zoushi'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_niujin','re_dongzhao','re_dongcheng','yangwan','qiuliju','heyan'],
}
},
skill:{
rehuoshui:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
'step 0'
var num=Math.min(game.countPlayer()-1,Math.max(1,player.getDamagedHp()));
player.chooseTarget([1,num],get.prompt('rehuoshui'),'令至多'+get.cnNumber(num)+'名角色的非锁定技失效直到回合结束',lib.filter.notMe).set('ai',function(target){
var att=-get.attitude(_status.event.player,target);
if(att<=0) return 0;
if(target.hasSkillTag('maixie')||target.hasSkill('maixie_hp')||target.hasSkill('maixie_defed')) att*=3;
return att/get.threaten(target);
});
'step 1'
if(result.bool){
var targets=result.targets.sortBySeat();
player.logSkill('rehuoshui',targets);
for(var i of targets) i.addTempSkill('fengyin');
game.delayx();
}
},
},
reqingcheng:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.hasPlayer((current)=>lib.skill.reqingcheng.filterTarget(null,player,current));
},
filterTarget:function(card,player,target){
return target!=player&&target.sex=='male'&&target.countCards('h')<player.countCards('h');
},
content:function(){
player.swapHandcards(target);
},
ai:{
order:1,
result:{
player:function(player,target){
if(target.countCards('h')>0) return -Math.max(get.value(target.getCards('h'),player)-get.value(player.getCards('h'),player),0);
return 0;
},
},
},
},
//陆郁生
zhente:{
audio:2,
@ -437,6 +484,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
//董白
relianzhu:{
audio:'lianzhu',
enable:'phaseUse',
usable:1,
filter:function(event,player){
@ -490,6 +538,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
rexiahui:{
audio:'xiahui',
mod:{
ignoredHandcard:function(card,player){
if(get.color(card,player)=='black') return true;
@ -554,7 +603,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
player.removeSkill('rexiahui_block');
},
onremove:function(){
onremove:function(player){
player.removeSkill('rexiahui_block');
},
},
@ -1222,7 +1271,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin4'},
direct:true,
filter:function(event,player){
return event.source!=player&&event.source!=player.storage.jielie;
return (!event.source)||(event.source!=player&&event.source!=player.storage.jielie);
},
content:function(){
'step 0'
@ -2904,10 +2953,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
audio:'xinfu_wuniang',
direct:true,
filter:function (event,player){
filter:function(event,player){
return event.card.name=='sha';
},
content:function (){
content:function(){
'step 0'
player.chooseTarget(get.prompt2('decadewuniang'),function(card,player,target){
if(player==target) return false;
@ -3492,11 +3541,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
global:"useCardToPlayered",
},
filter:function (event,player){
filter:function(event,player){
return event.isFirstTarget&&event.targets&&event.targets.length>1&&get.type2(event.card)=='trick';
},
direct:true,
content:function (){
content:function(){
"step 0"
player.chooseTarget(get.prompt('decadezhennan'),'对一名其他角色造成1点伤害',function(card,player,target){
return target!=player;
@ -4456,21 +4505,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
global:"phaseUseBegin",
},
filter:function (event,player){
filter:function(event,player){
return event.player!=player&&event.player.isAlive()&&event.player.inRange(player)&&player.countCards('he')>0;
},
direct:true,
derivation:["rezhixi"],
checkx:function (event,player){
checkx:function(event,player){
if(get.attitude(player,event.player)>=0) return false;
var e2=player.getEquip(2);
if(e2){
if(e2.name=='tengjia') return true;
if(e2.name=='bagua') return true;
}
return event.player.countCards('h')>event.player.hp;
},
content:function (){
content:function(){
"step 0"
var check=lib.skill.new_meibu.checkx(trigger,player);
player.chooseToDiscard(get.prompt2('remeibu',trigger.player),'he').set('ai',function(card){
@ -4482,12 +4526,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=trigger.player;
var card=result.cards[0];
player.line(target,'green');
player.markAuto('remeibu_gain',[get.suit(card,player)]);
player.addTempSkill('remeibu_gain');
target.addTempSkill('rezhixi','phaseUseEnd');
}
},
ai:{
expose:0.2,
},
subSkill:{
gain:{
trigger:{global:'loseAfter'},
forced:true,
charlotte:true,
popup:false,
onremove:true,
filter:function(event,player){
return event.getParent(3).name=='rezhixi'&&player.getStorage('remeibu_gain').contains(get.suit(event.cards[0],event.player))&&get.position(event.cards[0])=='d';
},
content:function(){
player.gain(trigger.cards[0],'gain2');
},
},
},
},
remumu:{
audio:"mumu",
@ -4495,50 +4556,52 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseUseBegin",
},
direct:true,
content:function (){
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countCards('e')>0;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('remumu'),'弃置一名角色装备区内的一张牌,或者获得一名角色装备区内的防具牌',function(card,player,target){
if(target==player) return target.getEquip(2)!=undefined;
player.chooseTarget(get.prompt2('remumu'),function(card,player,target){
return target.countCards('e')>0;
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target)
if(target.getEquip(2)&&player.isEmpty(2)){
return -2*att;
var player=_status.event.player,att=get.attitude(player,target),es=target.getCards('e'),val=0;
for(var i of es){
var eff=-(get.value(i,target)-0.1)*att;
if(eff>val) val=eff;
}
return -att;
return eff;
});
'step 1'
if(result.bool&&result.targets&&result.targets.length){
event.target=result.targets[0];
player.logSkill('remumu',event.target);
player.line(event.target,'green');
var e=event.target.getEquip(2);
event.e=e;
if(target==player) event.choice='获得一张防具牌';
else if(e){
player.chooseControl('弃置一张装备牌','获得一张防具牌').set('ai',function(){
if(_status.event.player.getEquip(2)){
return '弃置一张装备牌';
}
return '获得一张防具牌';
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('remumu',target);
if(player==target) event._result={index:1};
else{
var str=get.translation(target);
player.chooseControl().set('choiceList',[
'弃置'+str+'装备区的一张牌且本阶段使用【杀】的次数上限+1',
'获得'+str+'装备区的一张牌且本阶段使用【杀】的次数上限-1',
]).set('ai',function(){
var player=_status.event.player;
if(player.countCards('hs',function(card){
return get.name(card,player)=='sha'&&player.hasValueTarget(card);
})<Math.max(1,player.getCardUsable('sha'))) return 1;
return 0;
});
}
else{
event.choice='弃置一张装备牌';
}
}else event.finish();
else event.finish();
'step 2'
var choice=event.choice||result.control;
if(choice=='弃置一张装备牌'){
player.discardPlayerCard(event.target,'e',true);
player.addTempSkill('remumu3');
if(result.index==0){
player.addTempSkill('remumu3','phaseUseAfter');
player.discardPlayerCard(target,'e',true);
}
else{
if(event.e){
player.gain(event.e,event.target,'give');
player.addTempSkill('remumu2')
}
player.addTempSkill('remumu2','phaseUseAfter');
player.gainPlayerCard(target,'e',true);
}
},
},
@ -4981,7 +5044,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'trick': return -4;
default: return 0;
}
});
}).judge2=function(result){
return result.bool;
};
'step 1'
if(trigger.getParent().addCount!==false){
trigger.getParent().addCount=false;
@ -5459,6 +5524,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
kuiji:{
audio:2,
usable:1,
enable:"phaseUse",
filter:function(event,player){
if(player.hasJudge('bingliang')) return false;
@ -5676,7 +5742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseUseBegin",
},
direct:true,
content:function (){
content:function(){
'step 0'
var goon=player.hasCard(function(card){
if(get.position(card)!="h") return false;
@ -6331,7 +6397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
card:trigger.card,
});
},
content:function (){
content:function(){
"step 0"
var num=player.getDamagedHp();
var map={};
@ -6369,10 +6435,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseJieshuBegin",
},
direct:true,
filter:function (event,player){
filter:function(event,player){
return player.countCards('he')>0&&!player.storage.biaozhao;
},
content:function (){
content:function(){
'step 0'
player.chooseCard('he',get.prompt2('biaozhao')).ai=function(card){
return 6-get.value(card);
@ -6399,7 +6465,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true,
forced:true,
audio:"biaozhao",
filter:function (event,player){
filter:function(event,player){
if(!player.storage.biaozhao) return false;
var suit=get.suit(player.storage.biaozhao[0]);
var num=get.number(player.storage.biaozhao[0]);
@ -6409,7 +6475,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return false;
},
content:function (){
content:function(){
"step 0"
var card=player.storage.biaozhao[0];
delete player.storage.biaozhao;
@ -6433,10 +6499,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
charlotte:true,
audio:"biaozhao",
filter:function (event,player){
filter:function(event,player){
return player.storage.biaozhao!=undefined;
},
content:function (){
content:function(){
"step 0"
var card=player.storage.biaozhao[0];
delete player.storage.biaozhao;
@ -6470,7 +6536,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forceDie:true,
skillAnimation:true,
animationColor:'wood',
content:function (){
content:function(){
"step 0"
player.chooseTarget(get.prompt2('yechou'),function(card,player,target){
return player!=target&&target.getDamagedHp()>1
@ -6500,7 +6566,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseAfter",
},
forced:true,
content:function (){player.loseHp()},
content:function(){player.loseHp()},
},
yanjiao:{
audio:2,
@ -6513,10 +6579,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return target!=player;
},
content:function (){
content:function(){
"step 0"
var num=4;
if(player.storage.xingshen){
@ -6710,7 +6776,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
event.goto(8);
},
getResult:function (cards){
getResult:function(cards){
var cl=cards.length;
var maxmium=Math.pow(3,cl);
var filter=function(list){
@ -6763,7 +6829,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:"本回合手牌上限-1",
},
mod:{
maxHandcard:function (player,num){
maxHandcard:function(player,num){
return num-1;
},
},
@ -6777,7 +6843,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"damageEnd",
},
frequent:true,
content:function (){
content:function(){
player.draw(player.isMinHandcard()?2:1);
if(!player.storage.xingshen) player.storage.xingshen=0;
player.storage.xingshen+=player.isMinHp()?2:1;
@ -7286,7 +7352,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(suit=='spade') return -10;
if(suit=='club') return -5;
return 0;
});
}).judge2=function(result){
return result.color=='black'?true:false;
};
'step 1'
if(result.suit=='spade'){
trigger.target.damage(3,'thunder');
@ -7388,7 +7456,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.number(card)<_status.lslixun) return -_status.lslixun;
return 1;
});
}).judge2=function(result){
return result.bool?true:false;
};
'step 1'
delete _status.lslixun;
if(!result.bool){
@ -8134,13 +8204,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
player:"useCardEnd",
},
check:function (event,player){
check:function(event,player){
return get.value(event.cards)+player.maxHp*2-18>0;
},
filter:function (event,player){
filter:function(event,player){
return player.isPhaseUsing()&&get.type(event.card)=='trick'&&event.cards.filterInD().length>0;
},
content:function (){
content:function(){
player.loseMaxHp();
player.gain(trigger.cards.filterInD(),'gain2','log');
},
@ -8151,12 +8221,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
player:"useCardAfter",
},
filter:function (event,player){
filter:function(event,player){
if(!player.isPhaseUsing()) return false;
if(get.type(event.card)==undefined) return false;
return (event.targets&&event.targets.length==1);
},
content:function (){
content:function(){
var card=get.cardPile2(function(card){
return card.number==6;
});
@ -8180,10 +8250,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return player!=target&&target.countCards('e')<player.countCards('e');
},
content:function (){
content:function(){
"step 0"
var list=[1,2,3,4,5,6,7,8,9,10,11,12,13].map((i)=>get.strNumber(i));
target.chooseControl(list).set('ai',function(){
@ -8217,7 +8287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
order:9,
result:{
target:function (player,target){
target:function(player,target){
var numj=target.countCards('j');
var numhe=target.countCards('he');
if(numhe==0) return numj>0?6:-6;
@ -8234,13 +8304,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true,
enable:"phaseUse",
audio:2,
filter:function (event,player){
filter:function(event,player){
if(player.storage.xinfu_tunjun) return false;
return player.storage.xinfu_lveming&&player.storage.xinfu_lveming>0;
},
filterTarget:true,
selectTarget:1,
content:function (){
content:function(){
"step 0"
player.awakenSkill('xinfu_tunjun');
event.num=player.storage.xinfu_lveming;
@ -8273,7 +8343,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:"limited",
},
init:function (player){
init:function(player){
player.storage.xinfu_tunjun=false;
},
},
@ -8281,10 +8351,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return player!=target;
},
content:function (){
content:function(){
"step 0"
if(target.countCards('hej')==0){
event._result={index:1};
@ -8310,11 +8380,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
order:function (){
order:function(){
return [2,4,6,8,10].randomGet();
},
result:{
target:function (player,target){
target:function(player,target){
return -2-target.countCards('h');
},
},
@ -8381,11 +8451,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{
name:"shunshou",
},
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return _status.event.targets&&_status.event.targets.contains(target)&&lib.filter.filterTarget.apply(this,arguments);
},
prompt:"将一张手牌当顺手牵羊使用",
check:function (card){return 7-get.value(card)},
check:function(card){return 7-get.value(card)},
onuse:function(links,player){player.addTempSkill('xinfu_sidaoy')},
},
xinfu_sidaoy:{},
@ -8399,10 +8469,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return target!=player;
},
content:function (){
content:function(){
'step 0'
event.cards=get.cards(1);
player.showCards(get.translation(player)+'对'+get.translation(target)+'发动了【图南】',event.cards);
@ -8462,7 +8532,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseDiscardBegin",
},
audio:'xinfu_bijing',
filter:function (event,player){
filter:function(event,player){
if(event.player==player) return false;
return player.getHistory('lose',function(evt){
for(var i in evt.gaintag_map){
@ -8487,7 +8557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return card.hasGaintag('xinfu_bijing');
}).length>0;
},
content:function (){
content:function(){
player.discard(player.getCards('h',function(card){
return card.hasGaintag('xinfu_bijing');
}));
@ -8499,10 +8569,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseJieshuBegin",
},
direct:true,
filter:function (player,event){
filter:function(player,event){
return event.countCards('h')>0;
},
content:function (){
content:function(){
'step 0'
player.chooseCard(get.prompt2('xinfu_bijing'),'h').set('ai',function(card){
if(card.name=='shan') return 6;
@ -8521,7 +8591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:["damageEnd","phaseJieshuBegin"],
},
direct:true,
content:function (){
content:function(){
'step 0'
player.chooseControl('一张','两张','三张','cancel2').set('prompt',get.prompt2('xinfu_zhenxing')).set('',function(){return 0});
'step 1'
@ -8626,7 +8696,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
dis:{
mod:{
maxHandcard:function (player,num){
maxHandcard:function(player,num){
return num-2;
},
},
@ -8640,7 +8710,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{
global:"phaseDiscardBegin",
},
filter:function (event,player){
filter:function(event,player){
if(player.storage.xinfu_qianxin2!=event.player) return false;
if(!player.storage.xinfu_qianxin) return false;
var hs=event.player.getCards('h');
@ -8655,7 +8725,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return false;
},
content:function (){
content:function(){
'step 0'
delete player.storage.xinfu_qianxin2;
if(player.countCards('h')>=4){
@ -8693,18 +8763,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:"已指定过#个目标",
},
enable:"phaseUse",
filter:function (event,player){
filter:function(event,player){
if(player.hasSkill('xinfu_fuhai_next')&&player.hasSkill('xinfu_fuhai_previous')) return false;
return player.countCards('h')>0;
},
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
if(![player.next,player.previous].contains(target)||target.countCards('h')==0) return false;
if(player.hasSkill('xinfu_fuhai_next')) return target==player.previous;
if(player.hasSkill('xinfu_fuhai_previous')) return target==player.next;
return true;
},
line:false,
content:function (){
content:function(){
'step 0'
event.side=target==player.next?'next':'previous';
event.current=target;
@ -8794,16 +8864,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
silent:true,
popup:false,
filter:function (event,player){
filter:function(event,player){
return player.storage.xinfu_fuhai!=undefined;
},
content:function (){
content:function(){
player.unmarkSkill('xinfu_fuhai');
delete player.storage.xinfu_fuhai;
},
},
"xz_xunxun":{
filter:function (event,player){
filter:function(event,player){
var num=game.countPlayer(function(current){
return current.isDamaged();
});
@ -8814,7 +8884,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseDrawBegin1",
},
//priority:10,
content:function (){
content:function(){
"step 0"
event.cards=get.cards(4);
player.chooseCardButton(true,event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
@ -8839,7 +8909,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:["xz_xunxun","xinfu_xingzhao2"],
mark:true,
intro:{
content:function (storage,player){
content:function(storage,player){
var num=game.countPlayer(function(current){
return current.isDamaged();
})
@ -8860,14 +8930,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"useCard",
},
forced:true,
filter:function (event,player){
filter:function(event,player){
if(get.type(event.card)!='equip') return false;
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=2;
},
content:function (){
content:function(){
player.draw();
},
},
@ -8877,13 +8947,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseDiscardBefore",
},
forced:true,
filter:function (event,player){
filter:function(event,player){
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=3;
},
content:function (){
content:function(){
trigger.cancel();
game.log(player,'跳过了弃牌阶段');
},
@ -8895,10 +8965,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"enterGame",
},
forced:true,
filter:function (){
filter:function(){
return game.players.length>1;
},
content:function (){
content:function(){
'step 0'
player.chooseTarget('选择【点虎】的目标',lib.translate.xinfu_dianhu_info,true,function(card,player,target){
return target!=player&&!target.hasSkill('xinfu_dianhu2');
@ -8928,13 +8998,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
forced:true,
popup:false,
filter:function (event,player){
filter:function(event,player){
if(player.storage.xinfu_dianhu2&&player.storage.xinfu_dianhu2.isIn()){
if(event.name=='damage') return event.source==player.storage.xinfu_dianhu2;
return true;
};
},
content:function (){
content:function(){
'step 0'
var target=player.storage.xinfu_dianhu2;
target.logSkill('xinfu_dianhu');
@ -8946,10 +9016,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
filterTarget:function(card,player,target){
return target!=player;
},
content:function (){
content:function(){
'step 0'
target.draw();
'step 1'
@ -8980,7 +9050,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"useCardToPlayered",
},
frequent:true,
filter:function (event,player){
filter:function(event,player){
if(!event.targets||!event.targets.length||
event.getParent().triggeredTargets3.length>1||!event.isPhaseUsing(player)) return false;
var evt=player.getLastUsed(1);
@ -8990,7 +9060,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return false;
},
content:function (){
content:function(){
'step 0'
player.draw();
'step 1'
@ -9178,6 +9248,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pengyang:'彭羕184年220年字永年广汉今四川广汉北人。东汉末年官吏。彭羕起初在益州任书佐但后来其他人向益州牧刘璋诽谤他刘璋于是以“髡钳”剃去头发和胡须并戴上刑具处罚他并且贬奴隶。此时刘备入蜀彭羕想投靠刘备于是去见庞统。庞统和他会面后很欣赏他而法正亦很清楚彭羕于是二人共同向刘备推荐彭羕。刘备多次命令彭羕传递军情和指示给诸将表现都十分满意日渐被赏识。刘备入主益州领益州牧后就任命他为治州从事。彭羕见此又变得嚣张自矜诸葛亮对他礼待但心中并不喜欢他多次密告刘备说彭羕“心大志广难可保安”。刘备见诸葛亮这样说决定疏远彭羕又观察他行事于是贬他为江阳太守。彭羕见将被派往外地心感不悦与马超见面时又曾对他说“老革荒悖可复道邪”“卿为其外我为其内天下不足定也。”马超听后大惊彭羕走后以他的说话告发彭羕彭羕于是被收监下狱。最后彭羕被处死死时三十七岁。',
huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
dongxie:'董卓之女,牛辅之妻。在《三国群英传》中名为董宜,在电视剧《三国群英会之吕布与貂蝉》中名为董媛。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -9498,11 +9569,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liji_info:'出牌阶段限X次你可以弃置一张牌并对一名其他角色造成1点伤害。X为本回合内进入过弃牌堆的卡牌数除以8若场上人数小于5则改为除以4向下取整',
re_sunluyu:'孙鲁育',
remeibu:'魅步',
remeibu_info:'其他角色的出牌阶段开始时,若你在其攻击范围内,你可以弃置一张牌该角色于本阶段内拥有〖止息〗。',
remeibu_info:'其他角色的出牌阶段开始时,若你在其攻击范围内,你可以弃置一张牌A,该角色于本阶段内拥有〖止息〗且当其因〖止息〗弃置与牌A花色相同的牌时你获得之。',
rezhixi:'止息',
rezhixi_info:'锁定技,当你使用【杀】或普通锦囊牌时,你弃置一张手牌。',
remumu:'穆穆',
remumu_info:'出牌阶段开始时你可以选择一项1.弃置一名其他角色装备区里的一张牌,然后你本回合可使用【杀】的次数+12.获得一名角色装备区里的一张防具牌,然后你本回合可使用【杀】的次数-1。',
remumu_info:'出牌阶段开始时你可以选择一项1.弃置一名其他角色装备区里的一张牌,然后你本回合可使用【杀】的次数+12.获得一名角色装备区里的一张牌,然后你本回合可使用【杀】的次数-1。',
sp_zhangliao:'SP张辽',
//这仨技能给SP仲村由理毫无违和感好吗
mubing:'募兵',
@ -9720,7 +9791,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qingtan:'清谈',
qingtan_info:'出牌阶段限一次,你可令所有有手牌的角色同时选择一张手牌并同时展示。你可以获得其中花色唯一最多的牌,然后展示此花色牌的角色各摸一张牌。若如此做,弃置其他的牌。',
qiuliju:'丘力居',
koulve:'略',
koulve:'略',
koulve_info:'当你于出牌阶段内对其他角色造成伤害后你可以展示其一张手牌。若此牌为带有伤害标签的基本牌或锦囊牌则你获得之为红色牌你失去1点体力若已受伤则改为减1点体力上限然后摸两张牌。',
qljsuiren:'随认',
qljsuiren_info:'当你死亡时,你可以将手牌中所有的带有伤害标签的基本牌或锦囊牌交给一名其他角色。',
@ -9746,6 +9817,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiwei2:'至微',
zhiwei_info:'游戏开始时/你的回合开始时,若场上没有因此法被选择过的角色存活,则你选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',
zhiwei_info_guozhan:'你明置此武将牌时,选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。该角色死亡时,若你的两个武将牌均明置,你暗置此武将牌。 ',
re_zoushi:'邹氏',
rehuoshui:'祸水',
rehuoshui_info:'准备阶段你可以令至多X名角色的非锁定技无效直到回合结束X为你已损失的体力值且至少为1。',
reqingcheng:'倾城',
reqingcheng_info:'出牌阶段限一次,你可以与一名手牌数小于你的男性角色交换手牌。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -9760,6 +9836,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:'徐州风云',
sp_caizijiaren:'才子佳人',
sp_qihuan:'戚宦之争',
sp_zhongyuan:'中原狼烟',
sp_decade:'其他新服武将',
},
};

View File

@ -363,7 +363,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.suit(card)=='heart') return -2;
return 2;
})
}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.judge<2){
event.finish();return;
@ -410,7 +412,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.suit(card)=='heart') return -2;
return 2;
})
}).judge2=function(result){
return result.bool;
};
"step 3"
if(result.judge<2){
event.finish();return;
@ -623,6 +627,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.color(card)=='black') return 1.5;
return -1.5;
});
next.judge2=function(result){
return result.bool;
};
if(get.mode()!='guozhan'&&!player.hasSkillTag('rejudge')) next.set('callback',function(){
if(event.judgeResult.color=='black'&&get.position(card,true)=='o') player.gain(card,'gain2');
});
@ -667,7 +674,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.color(card)=='black') return 1.5;
return -1.5;
},ui.special);
},ui.special).judge2=function(result){
return result.bool;
};
"step 1"
if(result.judge>0){
event.cards.push(result.card);
@ -1592,7 +1601,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.color(card)=='red') return 2;
}
return -0.5;
});
}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.bool){
trigger.getParent().directHit.add(trigger.target);

View File

@ -92,7 +92,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'water',
unique:true,
filter:function(event,player){
return game.roundNumber>=3&&player.countUsed()>player.hp;
return game.roundNumber>=3&&player.getHistory('useCard').length>player.hp;
},
content:function(){
'step 0'

View File

@ -373,7 +373,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.judge(function(card){
return get.color(card)=='black'?1:-1;
});
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool&&player.maxHp>player.hp){
var cards=get.cards(player.maxHp-player.hp);
@ -423,7 +425,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.judge(function(card){
return get.suit(card)!='heart'?1:-1;
});
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool){
trigger.cancel();
@ -5024,7 +5028,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.target.judge(function(card){
if(get.color(card)=='red') return -1;
return 0;
});
}).judge2=function(result){
return result.bool==false?true:false;
};
}
'step 2'
if(result.color=='red') trigger.directHit.add(trigger.target);
@ -6620,7 +6626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 4'
if(result&&result.cards){
event.card=result.cards[0];
event.current.lose(result.cards,ui.cardPile,'visible','insert');
event.current.lose(result.cards,ui.cardPile,'insert');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
@ -8932,7 +8938,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.dingpin.push(get.type(cards[0],'trick'));
target.judge(function(card){
return get.color(card)=='black'?1:-1;
});
}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.bool){
target.draw(target.maxHp-target.hp);
@ -12082,7 +12090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wuguotai:['re_wuguotai','wuguotai'],
lingtong:['xin_lingtong','re_lingtong','lingtong','old_lingtong'],
gaoshun:['gaoshun','re_gaoshun'],
zhonghui:['re_zhonghui','zhonghui','old_zhonghui'],
zhonghui:['re_zhonghui','xin_zhonghui','zhonghui','old_zhonghui'],
wangyi:['wangyi','old_wangyi'],
caozhang:['re_caozhang','xin_caozhang','caozhang'],
guanzhang:['guanzhang','old_guanzhang'],
@ -12122,7 +12130,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guotufengji:['re_guotufengji','guotufengji'],
guanping:['re_guanping','guanping'],
caifuren:['xin_caifuren','re_caifuren','caifuren'],
guyong:['xin_guyong','guyong'],
guyong:['re_guyong','xin_guyong','guyong'],
},
translate:{
old_huaxiong:'华雄',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.8.6',
'v1.9.110.9.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -4374,6 +4374,9 @@ window.noname_asset_list=[
'image/character/xin_caifuren.jpg',
'image/character/xin_guyong.jpg',
'image/character/zhangzhongjing.jpg',
'image/character/re_guyong.jpg',
'image/character/re_zoushi.jpg',
'image/character/xin_zhonghui.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -6646,8 +6646,8 @@
globalId:0,
},
help:{
'游戏操作':'<ul><li>长按/鼠标悬停/右键单击显示信息<li>触屏模式中,双指点击切换暂停;下划显示菜单,上划切换托管<li>键盘快捷键<br>'+
'<table><tr><td>A<td>切换托管<tr><td>W<td>切换不询问无懈<tr><td>空格<td>暂停</table><li>编辑牌堆<br>在卡牌包中修改牌堆后,将自动创建一个临时牌堆,在所有模式中共用,当保存当前牌堆后,临时牌堆被清除。每个模式可设置不同的已保存牌堆,设置的牌堆优先级大于临时牌堆</ul>',
'游戏操作':'<ul><li>长按/鼠标悬停/右键单击显示信息<li>触屏模式中,双指点击切换暂停;下划显示菜单,上划切换托管<li>键盘快捷键<br>'+
'<table><tr><td>A<td>切换托管<tr><td>W<td>切换不询问无懈<tr><td>空格<td>暂停</table><li>编辑牌堆<br>在卡牌包中修改牌堆后,将自动创建一个临时牌堆,在所有模式中共用,当保存当前牌堆后,临时牌堆被清除。每个模式可设置不同的已保存牌堆,设置的牌堆优先级大于临时牌堆</ul>',
'游戏命令':'<div style="margin:10px">变量名</div><ul style="margin-top:0"><li>场上角色<br>game.players<li>阵亡角色<br>game.dead'+
'<li>玩家<br>game.me<li>玩家的上/下家<br>game.me.previous/next'+
'<li>玩家的上/下家(含阵亡)<br>game.me.previousSeat/<br>nextSeat'+
@ -6662,10 +6662,10 @@
'<li>角色资料<br>lib.character<li>卡牌资料<br>lib.card</ul>',
'游戏名词':'<ul><li>智囊:无名杀默认为过河拆桥/无懈可击/无中生有/洞烛先机。牌堆中没有的智囊牌会被过滤。可在卡牌设置中自行增减。若没有可用的智囊,则改为随机选取的三种锦囊牌的牌名。'+
'<li>仁库:部分武将使用的游戏外共通区域。至多包含六张牌。当有新牌注入后,若牌数超过上限,则将最早进入仁库的溢出牌置入弃牌堆。'+
'<li>护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限'+
'<li>随从:通过技能获得,拥有独立的技能、手牌区和装备区(共享判定区),出场时替代主武将的位置;随从死亡时自动切换回主武将'+
'<li>发现:从三张随机亮出的牌中选择一张,若无特殊说明,则获得此牌'+
'<li>蓄力技:发动时可以增大黄色的数字。若如此做,红色数字于技能的结算过程中改为原来的两倍'
'<li>护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限'+
'<li>随从:通过技能获得,拥有独立的技能、手牌区和装备区(共享判定区),出场时替代主武将的位置;随从死亡时自动切换回主武将'+
'<li>发现:从三张随机亮出的牌中选择一张,若无特殊说明,则获得此牌'+
'<li>蓄力技:发动时可以增大黄色的数字。若如此做,红色数字于技能的结算过程中改为原来的两倍'
},
setIntro:function(node,func,left){
if(lib.config.touchscreen){
@ -16194,12 +16194,10 @@
else event.result.bool=null;
player.judging.shift();
game.checkMod(player,event.result,'judge',player);
if(event.result.bool==true){
player.popup('洗具');
}
else if(event.result.bool==false){
player.popup('杯具');
}
if(event.judge2){
var judge2=event.judge2(event.result);
if(typeof judge2=='boolean') player.tryJudgeAnimate(judge2);
};
if(event.clearArena!=false){
game.broadcastAll(ui.clear);
}
@ -16596,6 +16594,14 @@
},1200);
},600);
},
tryJudgeAnimate:function(bool){
var player=this;
game.broadcast(function(player,bool){
player.trySkillAnimate(bool);
},player,bool);
if(bool) this.popup('判定生效','wood',false);
else this.popup('判定失效','fire',false);
},
trySkillAnimate:function(name,popname,checkShow){
if(!game.online&&lib.config.skill_animation_type!='off'&&lib.skill[name]&&lib.skill[name].skillAnimation){
if(lib.config.skill_animation_type=='default'){
@ -17134,7 +17140,7 @@
}
}
this.maxHp=parseInt(config.number);
this.hp=info[3];
this.hp=Math.min(this.maxHp,info[3]);
if(this.hp<this.maxHp||config.gameStarted) str+=('人数:'+this.hp+'/'+this.maxHp);
else str+=('人数:<span class="firetext">'+this.hp+'/'+this.maxHp+'</span>');
@ -20465,6 +20471,7 @@
}
if(next.card&&next.judge==undefined){
next.judge=get.judge(next.card);
next.judge2=get.judge2(next.card);
}
if(next.judge==undefined) next.judge=function(){return 0};
if(next.position==undefined) next.position=ui.discardPile;
@ -44103,6 +44110,7 @@
// }
ui.sortCard=ui.create.system('整理手牌',function(){
if(!game.me) return;
var hs=game.me.getCards('h');
if(!hs.length) return;
game.addVideo('lose',game.me,[get.cardsInfo(hs),[],[],[]]);
@ -50023,16 +50031,16 @@
}
else if(config.mode=='single'){
switch(config.single_mode){
case 'normal':return '新1v1';
case 'normal':return '新';
case 'changban':return '血战长坂坡';
case 'dianjiang':return '点将单挑';
}
}
else if(config.mode=='identity'&&config.identity_mode!='normal'){
else if(config.mode=='identity'){
switch(config.identity_mode){
case 'purple':return '三对三对二';
case 'zhong':return (config.double_character?'双将':'')+'忠胆英杰';
default:return (config.double_character?'双将':'')+get.cnNumber(parseInt(config.number))+'人身份';
default:return get.cnNumber(parseInt(config.number))+'人'+(config.double_character?'双将':'')+'身份';
}
}
else if(config.mode=='guozhan'&&config.guozhan_mode!='normal'){
@ -50877,6 +50885,10 @@
if(card.viewAs) return lib.card[card.viewAs].judge;
return get.info(card).judge;
},
judge2:function(card){
if(card.viewAs) return lib.card[card.viewAs].judge2;
return get.info(card).judge2;
},
distance:function(from,to,method){
if(from==to) return 0;
if(!game.players.contains(from)&&!game.dead.contains(from)) return Infinity;

View File

@ -1,47 +1,48 @@
window.noname_update={
version:'1.9.110.9',
update:'1.9.110.8.6.1',
version:'1.9.110.9.1',
update:'1.9.110.9',
changeLog:[
'联机服务器改版',
'界钟会,界顾雍,邹氏',
'诸葛果、孙鲁育技能调整',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
//'character/extra.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/offline.js',
'character/offline.js',
//'character/old.js',
//'character/ow.js',
//'character/rank.js',
//'character/refresh.js',
//'character/shenhua.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/sp2.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
'layout/default/layout.css',
@ -51,11 +52,11 @@ window.noname_update={
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
'mode/connect.js',
//'mode/connect.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
'mode/guozhan.js',
//'mode/identity.js',
//'mode/single.js',
'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

View File

@ -538,6 +538,45 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//邹氏
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,
},
qingcheng_ai:{
ai:{
effect:{
target:function(card){
if(get.tag(card,'damage')) return 2;
}
}
}
},
//文聘
gzzhenwei:{
trigger:{player:'phaseDiscardBegin'},
@ -5117,7 +5156,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
result:{
target:function(player,target){
if(target.hp<=0) return -5;
if(player.getStat().skill.qingcheng) return 0;
if(player.getStat().skill.new_qingcheng) return 0;
if(!target.hasSkillTag('maixie')) return 0;
if(get.attitude(player,target)>=0) return 0;
if(player.hasCard(function(card){
@ -10438,6 +10477,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"new_luanji_info":"你可以将两张与你本回合以此法转化的花色均不相同的手牌当【万箭齐发】使用。当一名与你势力相同的角色因响应此牌而打出【闪】时,该角色摸一张牌。",
"new_qingcheng":"倾城",
"new_qingcheng_info":"出牌阶段,你可以弃置一张黑色牌并选择一名武将牌均明置的其他角色,然后你暗置其一张武将牌。若你以此法弃置的牌为装备牌,则你可以暗置另一名武将牌均明置的角色的一张武将牌。",
huoshui:'祸水',
huoshui_info:'出牌阶段,你可以明置此武将牌:你的回合内,若此武将牌处于明置状态,其他角色不能明置其武将牌。',
"new_kongcheng":"空城",
"new_kongcheng_info":"锁定技若你没有手牌1.当你成为【杀】或【决斗】的目标时取消之2.你的回合外,其他角色交给你牌后,你将这些牌置于你的武将牌上。摸牌阶段开始时,你获得武将牌上的这些牌。",
"new_keji":"克己",

View File

@ -355,11 +355,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}).set('dialog',event.videoId);
"step 4"
game.me.init(result.links[0]);
game.addRecentCharacter(result.links[0]);
game.me.chooseButton(true).set('ai',function(button){
return Math.random();
}).set('dialog',event.videoId);
"step 5"
game.me.next.init(result.links[0]);
game.addRecentCharacter(result.links[0]);
setTimeout(function(){
ui.arena.classList.remove('choose-character');
},500);