手杀☆周不疑;一将成名2023:陈式、费曜、孙礼、夏侯楙
This commit is contained in:
parent
c0e0ce83bc
commit
f97557425c
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
characterSort:{
|
characterSort:{
|
||||||
mobile:{
|
mobile:{
|
||||||
mobile_default:['xin_guozhao',"miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan","ruanhui","xin_mamidi","sp_caosong","yangfu","wangjun","sp_pengyang","qianzhao",'shichangshi'],
|
mobile_default:['xin_guozhao',"miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan","ruanhui","xin_mamidi","sp_caosong","yangfu","wangjun","sp_pengyang","qianzhao",'shichangshi'],
|
||||||
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning",'yj_huangzhong','yj_weiyan'],
|
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning",'yj_huangzhong','yj_weiyan','yj_zhoubuyi'],
|
||||||
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
|
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
|
||||||
mobile_shenhua_feng:['re_xiaoqiao',"xin_zhoutai"],
|
mobile_shenhua_feng:['re_xiaoqiao',"xin_zhoutai"],
|
||||||
mobile_shenhua_huo:["re_pangtong","re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","xin_yuanshao"],
|
mobile_shenhua_huo:["re_pangtong","re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","xin_yuanshao"],
|
||||||
|
@ -26,6 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
yj_zhoubuyi:['male','wei',3,['mbhuiyao','mbquesong']],
|
||||||
xin_guozhao:['female','wei',3,['yichong','wufei']],
|
xin_guozhao:['female','wei',3,['yichong','wufei']],
|
||||||
xin_zhangyi:['male','shu',4,['xinwurong','shizhi']],
|
xin_zhangyi:['male','shu',4,['xinwurong','shizhi']],
|
||||||
xin_sunliang:['male','wu',3,['xinzhizheng','xinkuizhu','xinlijun'],['zhu']],
|
xin_sunliang:['male','wu',3,['xinzhizheng','xinkuizhu','xinlijun'],['zhu']],
|
||||||
|
@ -379,6 +380,94 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//☆周不疑
|
||||||
|
mbhuiyao:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filterTarget:lib.filter.notMe,
|
||||||
|
content:function(){
|
||||||
|
player.damage('nosource');
|
||||||
|
target.damage('unreal');
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
if(player.getHp()+player.countCards('hs',card=>player.canSaveCard(card,player))<1) return 0;
|
||||||
|
var _hp=target.hp,_maxhp=target.maxHp;
|
||||||
|
target.hp=10; target.maxHp=10;
|
||||||
|
var att=-get.sgnAttitude(player,target);
|
||||||
|
var val=get.damageEffect(target,player,target)*att;
|
||||||
|
target.getSkills(null,false,false).forEach(skill=>{
|
||||||
|
var info=get.info(skill);
|
||||||
|
if(info&&info.ai&&(info.ai.maixie||info.ai.maixie_hp||info.ai.maixie_defend)) val=Math[val>0?'max':'min'](val>0?0.1:-0.1,val+2*att);
|
||||||
|
});
|
||||||
|
var eff=100/val;
|
||||||
|
target.hp=_hp; target.maxHp=_maxhp;
|
||||||
|
if(eff<25) return 0;
|
||||||
|
return eff/30;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mbquesong:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseJieshuBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getHistory('damage').length;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt2('mbquesong')).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(get.attitude(player,target)<=0) return 0;
|
||||||
|
var len=[1,2,3,4,5].reduce((p,c)=>p+target.countEmptySlot(c),0);hp=target.getHp();
|
||||||
|
return len+target.isTurnedOver()*2+1.5*Math.min(4,target.getDamagedHp())/(hp+1);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('mbquesong',target);
|
||||||
|
var len=[1,2,3,4,5].reduce((p,c)=>p+target.countEmptySlot(c),0);hp=target.getHp();
|
||||||
|
var forced=false;
|
||||||
|
if(len==0) forced=true;
|
||||||
|
if(hp==0){
|
||||||
|
if(forced) event.finish();
|
||||||
|
else event._result={bool:false};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var str=`${forced?'请':'是否'}弃置${get.cnNumber(hp)}张手牌并回复1点体力${forced?'':'?或点击“取消”摸'+get.cnNumber(len)+'张牌并复原武将牌'}。`;
|
||||||
|
target.chooseToDiscard(get.translation(player)+'对你发动了【雀颂】',str,forced,'h',hp).set('ai',card=>{
|
||||||
|
if(!_status.event.goon) return 0;
|
||||||
|
return 6-get.value(card);
|
||||||
|
}).set('goon',function(){
|
||||||
|
var _hp=hp+target.isTurnedOver()*1.5;
|
||||||
|
if(forced||_hp+player.countCards('hs',card=>get.tag(card,'recover'))<=2) return true;
|
||||||
|
return len>_hp;
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
target.recover();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
target.draw([1,2,3,4,5].reduce((p,c)=>p+target.countEmptySlot(c),0));
|
||||||
|
player.link(false);
|
||||||
|
player.turnOver(false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
maixie:true,
|
||||||
|
skillTagFilter:function(player,tag){
|
||||||
|
if(player.getStat().damaged) return false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
//郭照
|
//郭照
|
||||||
yichong:{
|
yichong:{
|
||||||
init:function(player){
|
init:function(player){
|
||||||
|
@ -14009,6 +14098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'],
|
yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'],
|
||||||
qiaozhou:['yj_qiaozhou','qiaozhou'],
|
qiaozhou:['yj_qiaozhou','qiaozhou'],
|
||||||
sunhanhua:['dc_sunhanhua','sunhanhua'],
|
sunhanhua:['dc_sunhanhua','sunhanhua'],
|
||||||
|
zhoubuyi:['zhoubuyi','yj_zhoubuyi'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
liuzan:'手杀留赞',
|
liuzan:'手杀留赞',
|
||||||
|
@ -14671,6 +14761,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yichong_info:'①准备阶段,你可以选择一名其他角色并选择一个花色,然后你获得其所有此花色的牌,移除场上的所有“雀”标记,令其获得“雀”标记直到你的下个回合开始。②拥有“雀”标记的角色获得你最后一次发动〖易宠①〗选择的花色的牌后,你获得这些牌(你至多通过每个“雀”得到五张牌)。',
|
yichong_info:'①准备阶段,你可以选择一名其他角色并选择一个花色,然后你获得其所有此花色的牌,移除场上的所有“雀”标记,令其获得“雀”标记直到你的下个回合开始。②拥有“雀”标记的角色获得你最后一次发动〖易宠①〗选择的花色的牌后,你获得这些牌(你至多通过每个“雀”得到五张牌)。',
|
||||||
wufei:'诬诽',
|
wufei:'诬诽',
|
||||||
wufei_info:'若场上存在拥有“雀”标记的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于1且A的体力值大于你,则你可以对A造成1点伤害。',
|
wufei_info:'若场上存在拥有“雀”标记的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于1且A的体力值大于你,则你可以对A造成1点伤害。',
|
||||||
|
yj_zhoubuyi:'☆周不疑',
|
||||||
|
mbhuiyao:'慧夭',
|
||||||
|
mbhuiyao_info:'出牌阶段限一次。你可以受到1点无来源伤害,视为对一名其他角色造成过1点伤害。',
|
||||||
|
mbquesong:'雀颂',
|
||||||
|
mbquesong_info:'一名角色的结束阶段,若你于本回合受到过伤害,你可以令一名角色选择一项:1.摸等同于其装备区中空栏的数量的牌并复原武将牌;2.弃置等同于其体力值的手牌并回复1点体力。',
|
||||||
|
|
||||||
mobile_standard:'手杀异构·标准包',
|
mobile_standard:'手杀异构·标准包',
|
||||||
mobile_shenhua_feng:'手杀异构·其疾如风',
|
mobile_shenhua_feng:'手杀异构·其疾如风',
|
||||||
|
|
|
@ -311,6 +311,7 @@ window.noname_character_rank={
|
||||||
'dc_liubei',
|
'dc_liubei',
|
||||||
'dc_sunquan',
|
'dc_sunquan',
|
||||||
'yuechen',
|
'yuechen',
|
||||||
|
'sunli',
|
||||||
'key_misuzu',
|
'key_misuzu',
|
||||||
'key_sunohara',
|
'key_sunohara',
|
||||||
'key_umi',
|
'key_umi',
|
||||||
|
@ -601,6 +602,8 @@ window.noname_character_rank={
|
||||||
'ol_zhouqun',
|
'ol_zhouqun',
|
||||||
'caoxi',
|
'caoxi',
|
||||||
'zhaoxiang',
|
'zhaoxiang',
|
||||||
|
'chenshi',
|
||||||
|
'xiahoumao',
|
||||||
],
|
],
|
||||||
bp:[
|
bp:[
|
||||||
'chess_diaochan',
|
'chess_diaochan',
|
||||||
|
@ -1254,6 +1257,8 @@ window.noname_character_rank={
|
||||||
'jsrg_zoushi',
|
'jsrg_zoushi',
|
||||||
'gaoxiang',
|
'gaoxiang',
|
||||||
'ol_qianzhao',
|
'ol_qianzhao',
|
||||||
|
'yj_zhoubuyi',
|
||||||
|
'feiyao',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
|
|
@ -14,9 +14,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yijiang_2016:['guohuanghou','sunziliufang','huanghao','liyan','sundeng','cenhun','zhangrang','liuyu'],
|
yijiang_2016:['guohuanghou','sunziliufang','huanghao','liyan','sundeng','cenhun','zhangrang','liuyu'],
|
||||||
yijiang_2017:['xinxianying','jikang','wuxian','qinmi','xuezong','xushi','caiyong','caojie'],
|
yijiang_2017:['xinxianying','jikang','wuxian','qinmi','xuezong','xushi','caiyong','caojie'],
|
||||||
yijiang_2022:['lukai','kebineng','zhugeshang','liwan','wuanguo','hanlong','yj_sufei','yj_qiaozhou'],
|
yijiang_2022:['lukai','kebineng','zhugeshang','liwan','wuanguo','hanlong','yj_sufei','yj_qiaozhou'],
|
||||||
|
yijiang_2023:['xiahoumao','chenshi','sunli','feiyao'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
xiahoumao:['male','wei',4,['tongwei','cuguo']],
|
||||||
|
chenshi:['male','shu',4,['qingbei']],
|
||||||
|
sunli:['male','wei',4,['kangli']],
|
||||||
|
feiyao:['male','wei',4,['zhenfeng']],
|
||||||
wuanguo:['male','qun',4,['diezhang','duanwan']],
|
wuanguo:['male','qun',4,['diezhang','duanwan']],
|
||||||
hanlong:['male','wei',4,['duwang','cibei']],
|
hanlong:['male','wei',4,['duwang','cibei']],
|
||||||
yj_qiaozhou:['male','shu',3,['shiming','jiangxi']],
|
yj_qiaozhou:['male','shu',3,['shiming','jiangxi']],
|
||||||
|
@ -108,6 +113,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yujin:["male","wei",4,["rezhenjun"],[]],
|
yujin:["male","wei",4,["rezhenjun"],[]],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
sunli:'孙礼(?—250年),字德达,涿郡容城县人。三国时期曹魏名将。曹操平定幽州后,孙礼被征召为司空军谋掾。后被任命为河间郡丞,升至荥阳都尉。后孙礼被调为鲁国相。历任山阳、平原、平昌、琅邪郡太守。从大司马曹休在夹石征吴,孙礼谏其不可深入作战,曹休不听遂战败。后孙礼调任阳平郡太守。明帝时入为尚书,受遗诏拜大将军长史,加散骑常侍。曹爽令孙礼出任扬州刺史,加管伏波将军,赐爵关内侯。孙礼率兵御东吴军队,奋不顾身,贼众乃退。朝廷赐绢七百匹,孙礼皆以绢付亡者家,无以入身。后征拜少府,出为荆州刺史,迁冀州牧。爽见礼奏,大怒,劾礼怨望,结刑五岁。在家期年,众人多以为言,除城门校尉。出为并州刺史,加振武将军,使持节,护匈奴中郎将。爽诛后,入为司隶校尉。迁司空,封大利亭侯,邑一百户。嘉平二年(250年),孙礼去世,谥号景侯。其孙孙元继承爵位。《全三国文》录有孙礼文一篇《清河平原争界案图宜属平原疏》。陈寿评曰“孙礼刚断伉厉”。',
|
||||||
|
xiahoumao:'夏侯楙,字子林,沛国谯县(今安徽省亳州市)人,曹魏名将夏侯惇之子,三国时期魏国官员、将领,其妻为曹操之女清河公主。在魏国历任侍中、尚书、安西将军、镇东将军,假节,封列侯。曾一度驻守曹魏都城长安,但蜀汉北伐后就被调离。',
|
||||||
|
chenshi:'陈式,生卒年不详,三国时期蜀汉将领。最初为刘备军中重要的基层指挥官,后成长为高级将领。在诸葛亮第三次北伐期间,在诸葛亮的军事指挥下攻克了魏国的武都、阴平二郡。',
|
||||||
|
feiyao:'费曜(生卒年不详),又作费瑶、费繇,三国时期曹魏将领。魏初,参与平河西之乱。明帝时官任后将军,跟随曹真、司马懿多次对抗蜀汉。《三国演义》中作“费耀”,随曹真和诸葛亮的第二次北伐军作战。怀疑姜维作内应是假,自告奋勇替曹真出征,结果被事先埋伏的姜维包围,自尽而死。',
|
||||||
wuanguo:'武安国,历史小说《三国演义》中人物,是北海太守孔融的部将,兵器为一把长柄铁锤,重五十余斤。诸侯伐董时,双方于虎牢关相峙,吕布撰战,一合而斩穆顺,关东军大惊。北海太守孔融部将武安国,使铁锤飞马而出,吕布挥戟拍马来迎,战到十余合,一戟砍断安国手腕,安国弃锤于地而走,八路军兵齐出,这才救了他性命。',
|
wuanguo:'武安国,历史小说《三国演义》中人物,是北海太守孔融的部将,兵器为一把长柄铁锤,重五十余斤。诸侯伐董时,双方于虎牢关相峙,吕布撰战,一合而斩穆顺,关东军大惊。北海太守孔融部将武安国,使铁锤飞马而出,吕布挥戟拍马来迎,战到十余合,一戟砍断安国手腕,安国弃锤于地而走,八路军兵齐出,这才救了他性命。',
|
||||||
hanlong:'韩龙,汉末三国时期刺客。韩龙使得魏国北方边得到数十年的安宁,减少魏国的军政压力,得以休养生息。太和二年,豫遣译夏舍诣比能女婿郁筑鞬部,舍为鞬所杀。其秋,豫将西部鲜卑蒲头、泄归泥出塞讨郁筑鞬,大破之。还至马城,比能自将三万骑围豫七日。上谷太守阎志,阎柔之弟也,素为鲜卑所信。志往解喻,即解围去。后幽州刺史王雄并领校尉,抚以恩信。比能数款塞,诣州奉贡献。至青龙元年,比能诱纳步度根,使叛并州,与结和亲,自勒万骑迎其累重於陉北。并州刺史毕轨遣将军苏尚、董弼等击之,比能遣子将骑与尚等会战於楼烦,临陈害尚、弼。至三年中,雄遣勇士韩龙刺杀比能,更立其弟。',
|
hanlong:'韩龙,汉末三国时期刺客。韩龙使得魏国北方边得到数十年的安宁,减少魏国的军政压力,得以休养生息。太和二年,豫遣译夏舍诣比能女婿郁筑鞬部,舍为鞬所杀。其秋,豫将西部鲜卑蒲头、泄归泥出塞讨郁筑鞬,大破之。还至马城,比能自将三万骑围豫七日。上谷太守阎志,阎柔之弟也,素为鲜卑所信。志往解喻,即解围去。后幽州刺史王雄并领校尉,抚以恩信。比能数款塞,诣州奉贡献。至青龙元年,比能诱纳步度根,使叛并州,与结和亲,自勒万骑迎其累重於陉北。并州刺史毕轨遣将军苏尚、董弼等击之,比能遣子将骑与尚等会战於楼烦,临陈害尚、弼。至三年中,雄遣勇士韩龙刺杀比能,更立其弟。',
|
||||||
liwan:'李婉(生卒年不详),字淑文,里居不详,贾充之妻,魏晋时期才女,约景元年间(260年前后)在世。著有《典戒》。《隋书·经籍志》载李婉有文集一卷,今失传。',
|
liwan:'李婉(生卒年不详),字淑文,里居不详,贾充之妻,魏晋时期才女,约景元年间(260年前后)在世。著有《典戒》。《隋书·经籍志》载李婉有文集一卷,今失传。',
|
||||||
|
@ -209,6 +218,288 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhonghui:['jiangwei'],
|
zhonghui:['jiangwei'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//一将2023
|
||||||
|
//孙礼
|
||||||
|
kangli:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.draw(2).gaintag=['kangli'];
|
||||||
|
player.when({source:'damageBegin1'})
|
||||||
|
.then(()=>{
|
||||||
|
var cards=player.getCards('h',card=>card.hasGaintag('kangli'));
|
||||||
|
if(cards.length) player.discard(cards);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
maixie:true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//夏侯楙
|
||||||
|
tongwei:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('he',card=>lib.skill.tongwei.filterCard(card,player))>1&&game.hasPlayer(i=>i!=player);
|
||||||
|
},
|
||||||
|
filterTarget:lib.filter.notMe,
|
||||||
|
filterCard:lib.filter.cardRecastable,
|
||||||
|
selectCard:2,
|
||||||
|
position:'he',
|
||||||
|
discard:false,
|
||||||
|
lose:false,
|
||||||
|
delay:false,
|
||||||
|
check:function(card){
|
||||||
|
var num=6.5;
|
||||||
|
if(ui.selected.cards.length){
|
||||||
|
var cardx=ui.selected.cards[0];
|
||||||
|
num=get.number(cardx);
|
||||||
|
}
|
||||||
|
var del=Math.abs(get.number(card)-num);
|
||||||
|
return 5+del/5-get.value(card);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.recast(cards);
|
||||||
|
'step 1'
|
||||||
|
var numbers=cards.map(c=>get.number(c,player)).sort((a,b)=>a-b);
|
||||||
|
target.when('useCard1')
|
||||||
|
.then(()=>{
|
||||||
|
trigger._tongwei_checked=true;
|
||||||
|
})
|
||||||
|
target.when('useCardAfter')
|
||||||
|
.assign({
|
||||||
|
numbers:numbers,
|
||||||
|
playerx:player,
|
||||||
|
})
|
||||||
|
.filter((event,player)=>{
|
||||||
|
return event._tongwei_checked;
|
||||||
|
})
|
||||||
|
.then(()=>{
|
||||||
|
var number=get.number(trigger.card);
|
||||||
|
var numbers=get.info(event.name).numbers;
|
||||||
|
event.playerx=get.info(event.name).playerx;
|
||||||
|
if(number<=numbers[0]||number>=numbers[1]) event.finish();
|
||||||
|
})
|
||||||
|
.then(()=>{
|
||||||
|
var playerx=event.playerx;
|
||||||
|
var names=['sha','guohe'].filter(name=>playerx.canUse({name:name,isCard:true},player,false));
|
||||||
|
if(!names.length) event.finish();
|
||||||
|
else if(names.length==1) event._result={control:names[0]};
|
||||||
|
else playerx.chooseControl(names).set('prompt',`统围:视为对${get.translation(player)}使用一张【杀】或【过河拆桥】`).set('ai',()=>{
|
||||||
|
return _status.event.choice;
|
||||||
|
}).set('choice',function(){
|
||||||
|
var list=names.map(name=>{
|
||||||
|
return [name,get.effect(player,{name:name,isCard:true},playerx,playerx)];
|
||||||
|
}).sort((a,b)=>{
|
||||||
|
return b[1]-a[1];
|
||||||
|
});
|
||||||
|
return list[0][0];
|
||||||
|
}());
|
||||||
|
})
|
||||||
|
.then(()=>{
|
||||||
|
var name=result.control;
|
||||||
|
var card={name:name,isCard:true},playerx=event.playerx;
|
||||||
|
if(playerx.canUse(card,player,false)) playerx.useCard(card,player);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
order:7,
|
||||||
|
threaten:2.2,
|
||||||
|
result:{
|
||||||
|
target:-1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cuguo:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:['shaMiss','eventNeutralized']},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='card'&&event.name!='_wuxie') return false;
|
||||||
|
if(!event.target||!event.target.isIn()||!player.canUse({
|
||||||
|
name:event.card.name,
|
||||||
|
nature:event.card.nature,
|
||||||
|
isCard:true,
|
||||||
|
},event.target,false)) return false;
|
||||||
|
if(!player.hasCard(card=>lib.filter.cardDiscardable(card,player),'he')) return false;
|
||||||
|
var history=game.getGlobalHistory('everything');
|
||||||
|
for(var evt of history){
|
||||||
|
if(evt._neutralized||evt.responded&&(!evt.result||!evt.result.bool)){
|
||||||
|
var evtx=evt.getParent();
|
||||||
|
return evtx.name=='useCard'&&evtx.player==player&&evt==event;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var card={
|
||||||
|
name:trigger.card.name,
|
||||||
|
nature:trigger.card.nature,
|
||||||
|
isCard:true,
|
||||||
|
storage:{cuguo:true},
|
||||||
|
};
|
||||||
|
event.card=card;
|
||||||
|
player.chooseToDiscard('蹙国:请弃置一张牌',`视为你对${get.translation(trigger.target)}使用一张${get.translation(card.nature||'')}【${get.translation(card.name)}】`,'he',true).set('logSkill',['cuguo',trigger.target]);
|
||||||
|
'step 1'
|
||||||
|
if(player.canUse(card,trigger.target,false)){
|
||||||
|
player.useCard(card,trigger.target);
|
||||||
|
player.when('useCardAfter')
|
||||||
|
.filter(event=>{
|
||||||
|
return event.card.storage&&event.card.storage.cuguo;
|
||||||
|
})
|
||||||
|
.then(()=>{
|
||||||
|
if(game.hasGlobalHistory('everything',evt=>{
|
||||||
|
if(evt._neutralized||evt.responded&&(!evt.result||!evt.result.bool)){
|
||||||
|
if(evt.getParent()==trigger) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
})){
|
||||||
|
player.loseHp();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//陈式
|
||||||
|
qingbei:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'roundStart'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var next=player.chooseButton(['###擎北:是否选择任意种花色?###<div class="text center">你不能于本轮能使用这些花色,且使用牌后摸等同于选择花色数的牌</div>',[lib.suit.map(i=>['','','lukai_'+i]),'vcard']],[1,4]);
|
||||||
|
next.set('ai',button=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var suit=button.link[2].slice(6);
|
||||||
|
var val=player.getCards('hs',{suit:suit}).map(card=>{
|
||||||
|
return get.value(card)+player.getUseValue(card)/3;
|
||||||
|
}).reduce((p,c)=>{
|
||||||
|
return p+c;
|
||||||
|
},0);
|
||||||
|
if(val>10&&ui.selected.buttons.length>0) return -1;
|
||||||
|
if(val>6&&ui.selected.buttons.length==2) return -1;
|
||||||
|
if(ui.selected.buttons.length==3) return -1;
|
||||||
|
return 1+1/val;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var suits=result.links.map(i=>i[2].slice(6));
|
||||||
|
player.addTempSkill('qingbei_effect','roundStart');
|
||||||
|
player.setStorage('qingbei_effect',suits);
|
||||||
|
player.markSkill('qingbei_effect');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:2.3,
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
audio:'qingbei',
|
||||||
|
trigger:{
|
||||||
|
player:'useCardAfter',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getStorage('qingbei_effect').length;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(player.getStorage('qingbei_effect').length);
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:(storage)=>`本轮内不能使用${get.translation(storage)}花色的牌,且使用牌后摸${get.cnNumber(storage.length)}张牌`,
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card,player){
|
||||||
|
if(player.getStorage('qingbei_effect').contains(get.suit(card))) return false;
|
||||||
|
},
|
||||||
|
cardSavable:function(card,player){
|
||||||
|
if(player.getStorage('qingbei_effect').contains(get.suit(card))) return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//费曜
|
||||||
|
zhenfeng:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'useCard'},
|
||||||
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player!=player&&event.player==_status.currentPhase&&event.player.countCards('h')<=event.player.getHp();
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
var type=get.type2(event.card,event.player);
|
||||||
|
if(type=='equip'&&event.player.hasCard(card=>event.player.hasValueTarget(card))) return false;
|
||||||
|
if(get.attitude(player,event.player)>0&&event.player.getHp()+event.player.countCards('hs',['shan','caochuan'])<=3) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var choices=Array.from({length:trigger.player.countCards('h')+1}).map((_,i)=>get.cnNumber(i,true));
|
||||||
|
var type=get.type2(trigger.card,trigger.player);
|
||||||
|
player.chooseControl(choices).set('prompt','镇锋:猜测其手牌中的'+get.translation(type)+'牌数').set('ai',()=>{
|
||||||
|
return _status.event.choice;
|
||||||
|
}).set('choice',function(){
|
||||||
|
var num=trigger.player.countCards('h',card=>get.type2(card)==type);
|
||||||
|
var numx;
|
||||||
|
if(type=='basic') numx=num+(Math.random()<0.2?(Math.random()>0.5?1:-1):0);
|
||||||
|
else if(type=='trick'){
|
||||||
|
if(num>2) numx=2;
|
||||||
|
else numx=1;
|
||||||
|
if(Math.random()<0.5){
|
||||||
|
numx+=Math.random()>0.5?1:-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
numx=[0,1].randomGet();
|
||||||
|
}
|
||||||
|
if(numx<0) numx=0;
|
||||||
|
else if(numx>choices.length) numx=choices.length;
|
||||||
|
return numx;
|
||||||
|
}());
|
||||||
|
'step 1'
|
||||||
|
var guessedNum=result.index;
|
||||||
|
var type=get.type2(trigger.card,trigger.player);
|
||||||
|
var count=trigger.player.countCards('h',card=>get.type2(card)==type);
|
||||||
|
player.chat('我猜'+get.cnNumber(guessedNum)+'张');
|
||||||
|
game.log(player,'猜测',trigger.player,'有',get.cnNumber(guessedNum)+'张'+get.translation(type)+'牌');
|
||||||
|
game.delay();
|
||||||
|
if(count==guessedNum){
|
||||||
|
player.popup('猜测正确','wood');
|
||||||
|
game.log(player,'猜测','#g正确');
|
||||||
|
if(player.countMark('zhenfeng')<5) player.addMark('zhenfeng',1,false);
|
||||||
|
player.draw(player.countMark('zhenfeng'));
|
||||||
|
if(player.canUse('sha',trigger.player,false)) player.useCard({name:'sha',isCard:true},trigger.player);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.popup('猜测错误','fire');
|
||||||
|
game.log(player,'猜测','#y错误');
|
||||||
|
player.clearMark('zhenfeng');
|
||||||
|
if(Math.abs(count-guessedNum)>1&&trigger.player.canUse('sha',player,false)){
|
||||||
|
trigger.player.useCard({name:'sha',isCard:true},player,false,'noai');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
content:'已连续猜对#次',
|
||||||
|
},
|
||||||
|
},
|
||||||
//新杀小加强 李严
|
//新杀小加强 李严
|
||||||
dcduliang:{
|
dcduliang:{
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
|
@ -9246,9 +9537,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'phaseUseEnd'},
|
trigger:{player:'phaseUseEnd'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.getHistory('useSkill',function(evt){
|
return player.getHistory('lose',function(evt){
|
||||||
return evt.skill=='yanyu'&&evt.event.getParent(2)==event;
|
var evt2=evt.getParent();
|
||||||
}).length>=2&&game.hasPlayer(target=>target.hasSex('male')&&target!=player);
|
return evt2.name=='useSkill'&&evt2.skill=='yanyu'&&evt.getParent(3)==event;
|
||||||
|
}).length>=2;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
@ -14286,6 +14578,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcduliang:'督粮',
|
dcduliang:'督粮',
|
||||||
dcduliang2:'督粮',
|
dcduliang2:'督粮',
|
||||||
dcduliang_info:'出牌阶段限一次。你可以获得一名其他角色的一张牌,然后选择一项:1.你观看牌堆顶的两张牌,然后令其获得其中的一或两张基本牌;2.令其于下回合的摸牌阶段额外摸一张牌。',
|
dcduliang_info:'出牌阶段限一次。你可以获得一名其他角色的一张牌,然后选择一项:1.你观看牌堆顶的两张牌,然后令其获得其中的一或两张基本牌;2.令其于下回合的摸牌阶段额外摸一张牌。',
|
||||||
|
sunli:'孙礼',
|
||||||
|
kangli:'伉厉',
|
||||||
|
kangli_info:'当你造成或受到伤害后,你摸两张牌。然后你下次造成伤害时弃置这些牌。',
|
||||||
|
xiahoumao:'夏侯楙',
|
||||||
|
tongwei:'统围',
|
||||||
|
tongwei_info:'出牌阶段限一次。你可以重铸两张牌并指定一名其他角色,当其使用的下一张牌结算结束后,若此牌点数在你上次以此法重铸的牌的点数之间,你视为对其使用一张【杀】或【过河拆桥】。',
|
||||||
|
cuguo:'蹙国',
|
||||||
|
cuguo_info:'锁定技。当你于一回合使用牌首次被抵消后,你弃置一张牌,视为对此牌的目标角色使用一张该被抵消的牌。此牌结算结束后,若此牌被抵消,你失去1点体力。',
|
||||||
|
chenshi:'陈式',
|
||||||
|
qingbei:'擎北',
|
||||||
|
qingbei_info:'一轮游戏开始时,你可以选择任意种花色,你不能于本轮内使用这些花色的牌。然后当你于本轮使用牌结算结束后,你摸等同于你上一次〖擎北〗选择过的花色数的牌。',
|
||||||
|
feiyao:'费曜',
|
||||||
|
zhenfeng:'镇锋',
|
||||||
|
zhenfeng_info:'每回合限一次。当其他角色于其回合内使用牌时,若其手牌数不大于其体力值,你可以猜测其手牌中与此牌类别相同的牌数。若你猜对,你摸X张牌并视为对其使用一张【杀】(X为你连续猜对的次数且至多为5);若你猜错且差值大于1,其视为对你使用一张【杀】。',
|
||||||
|
|
||||||
yijiang_2011:'一将成名2011',
|
yijiang_2011:'一将成名2011',
|
||||||
yijiang_2012:'一将成名2012',
|
yijiang_2012:'一将成名2012',
|
||||||
|
@ -14295,6 +14601,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yijiang_2016:'原创设计2016',
|
yijiang_2016:'原创设计2016',
|
||||||
yijiang_2017:'原创设计2017',
|
yijiang_2017:'原创设计2017',
|
||||||
yijiang_2022:'原创设计2022',
|
yijiang_2022:'原创设计2022',
|
||||||
|
yijiang_2023:'一将成名2023',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -159,6 +159,7 @@ var pinyin_dict_polyphone = {
|
||||||
"沾露": " lù",
|
"沾露": " lù",
|
||||||
"禁咒": "jìn ",
|
"禁咒": "jìn ",
|
||||||
"挟令": "xié lìng",
|
"挟令": "xié lìng",
|
||||||
|
"膴仕": "wǔ ",
|
||||||
// END
|
// END
|
||||||
"撒贝宁": "sà ",
|
"撒贝宁": "sà ",
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 145 KiB |
Binary file not shown.
After Width: | Height: | Size: 168 KiB |
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
Loading…
Reference in New Issue