v1.9.92.1(Part 2)

This commit is contained in:
Spmario233 2019-08-23 23:03:21 +08:00 committed by GitHub
parent a51ee6c5df
commit 84be63df00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 545 additions and 262 deletions

View File

@ -836,16 +836,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wushen:{
mod:{
cardEnabled:function(card,player){
if(_status.event.skill!='wushen'&&card.name!='sha'&&get.suit(card)=='heart') return false;
if(_status.event.skill==undefined&&card.name!='sha'&&get.suit(card)=='heart') return false;
},
cardUsable:function(card,player){
if(_status.event.skill!='wushen'&&card.name!='sha'&&get.suit(card)=='heart') return false;
if(_status.event.skill==undefined&&card.name!='sha'&&get.suit(card)=='heart') return false;
},
cardRespondable:function(card,player){
if(_status.event.skill!='wushen'&&card.name!='sha'&&get.suit(card)=='heart') return false;
if(_status.event.skill==undefined&&card.name!='sha'&&get.suit(card)=='heart') return false;
},
cardSavable:function(card,player){
if(_status.event.skill!='wushen'&&card.name!='sha'&&get.suit(card)=='heart') return false;
if(_status.event.skill==undefined&&card.name!='sha'&&get.suit(card)=='heart') return false;
},
targetInRange:function(card){
if(get.suit(card)=='heart'||_status.event.skill=='wushen') return true;
@ -2416,26 +2416,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
'drlt_jieying':{
audio:2,
drlt_jieying_mark:{
init:function(player){
game.log(player,'获得了“营”标记');
},
onremove:function(player){
game.log(player,'失去了“营”标记');
},
mark:true,
marktext:"营",
intro:{
content:function(storage){
return '已获得“营”标记';
},
},
mod:{
cardUsable:function (card,player,num){
if(game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying');
})&&card.name=='sha') return num+1;
},
maxHandcard:function (player,num){
if(game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying');
})) return num+1;
},
},
audio:'drlt_jieying',
trigger:{
player:'phaseDrawBegin'
},
forced:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying');
});
},
content:function(){
trigger.num++;
},
},
'drlt_jieying':{
audio:2,
locked:false,
group:["drlt_jieying_1","drlt_jieying_2","drlt_jieying_3"],
subSkill:{
'1':{
audio:'drlt_jieying',
trigger:{
global:'gameStart'
player:'phaseBegin'
},
forced:true,
filter:function(event,player){
return !game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying_mark');
});
},
content:function(){
player.storage.drlt_jieying=player;
player.markSkill('drlt_jieying');
game.log(player,'获得了“营”标记');
player.addSkill('drlt_jieying_mark');
},
},
'2':{
@ -2444,6 +2482,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseEnd",
},
direct:true,
filter:function(event,player){
return player.hasSkill('drlt_jieying_mark');
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('drlt_jieying'),function(card,player,target){
@ -2463,63 +2504,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
var target=result.targets[0];
player.line(target);
player.logSkill('drlt_jieying');
player.storage.drlt_jieying=target;
target.storage.drlt_jieying2=player;
player.unmarkSkill('drlt_jieying');
game.log(player,'失去了“营”标记');
target.markSkill('drlt_jieying');
game.log(target,'获得了“营”标记');
player.logSkill('drlt_jieying',target);
target.addSkill('drlt_jieying_mark');
};
},
},
'3':{
audio:'drlt_jieying',
trigger:{
global:['phaseAfter','dieAfter']
global:'phaseAfter',
},
forced:true,
filter:function(event,player){
return player.storage.drlt_jieying==event.player&&player!=event.player;
return player!=event.player&&event.player.hasSkill('drlt_jieying_mark')&&event.player.isAlive();
},
logTarget:'player',
content:function(){
if(trigger.player.isAlive()){
if(trigger.player.countCards('h')>0){
trigger.player.give(trigger.player.getCards('h'),player);
}
delete trigger.player.storage.drlt_jieying2;
trigger.player.unmarkSkill('drlt_jieying');
game.log(trigger.player,'失去了“营”标记');
content:function(){
if(trigger.player.countCards('h')>0){
trigger.player.give(trigger.player.getCards('h'),player);
}
player.storage.drlt_jieying=player;
player.markSkill('drlt_jieying');
game.log(player,'获得了“营”标记');
trigger.player.removeSkill('drlt_jieying_mark');
},
},
},
global:'g_drlt_jieying',
},
'g_drlt_jieying':{
mod:{
cardUsable:function (card,player,num){
if((player.storage.drlt_jieying==player||(player.storage.drlt_jieying2&&player.storage.drlt_jieying2.isAlive()&&player.storage.drlt_jieying2.storage.drlt_jieying==player))&&card.name=='sha') return num+1;
},
maxHandcard:function (player,num){
if(player.storage.drlt_jieying==player||(player.storage.drlt_jieying2&&player.storage.drlt_jieying2.isAlive()&&player.storage.drlt_jieying2.storage.drlt_jieying==player)) return num+1;
},
},
audio:'drlt_jieying',
trigger:{
player:'phaseDrawBegin'
},
forced:true,
filter:function(event,player){
return player.storage.drlt_jieying==player||(player.storage.drlt_jieying2&&player.storage.drlt_jieying2.isAlive()&&player.storage.drlt_jieying2.storage.drlt_jieying==player);
},
content:function(){
trigger.num++;
},
},
},
translate:{
@ -2542,7 +2549,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_poxi":"魄袭",
"drlt_poxi_info":"出牌阶段限一次你可以观看一名其他角色的手牌然后你可以弃置你与其手牌中的四张花色不同的牌。若如此做根据此次弃置你的牌的数量执行以下效果1.没有扣减一点体力上限2.一张,立即结束出牌阶段且本回合手牌上限-1三张恢复一点体力四张摸四张牌",
"drlt_jieying":"劫营",
"drlt_jieying_info":"游戏开始时,你获得一个“营”标记。结束阶段,你可以将“营”标记置于一名角色的武将牌旁;有“营”标记的角色摸牌阶段多摸一张牌、出牌阶段可多使用一张【杀】、手牌上限+1。有“营”标记的其他角色的回合结束后你获得其所有手牌并收回“营”标记。",
"drlt_jieying_info":"回合开始时若没有角色有“营”标记你获得1个“营”标记结束阶段你可以将你的“营”交给一名角色有“营”标记的角色摸牌阶段多摸一张牌其于出牌阶段使用【杀】的次数上限+1其手牌上限+1。有“营”的其他角色回合结束后其移去“营”标记然后你获得其所有手牌。",
drlt_jieying_mark:"劫营",
"drlt_duorui1":"失效技能",
"drlt_duorui1_bg":"锐",
"drlt_duorui":"夺锐",

View File

@ -4,6 +4,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'mobile',
connectBanned:['miheng'],
connect:true,
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","liuzan","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong"],
mobile_fire:["re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","re_pangtong","xin_yuanshao"],
mobile_others:["re_jikang","old_bulianshi","old_caochun","old_yuanshu"],
},
},
character:{
re_jikang:["male","wei",3,["new_qingxian","new_juexiang"]],
old_bulianshi:['female','wu',3,['anxu','zhuiyi']],
@ -36,6 +43,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_jikang:"新嵇康",
old_bulianshi:'新步练师',
old_caochun:'旧曹纯',
mobile_default:'常规',
mobile_fire:'界限突破•火',
mobile_others:'其他',
}
};
});

View File

@ -2,6 +2,13 @@
game.import('character',function(lib,game,ui,get,ai,_status){
return {
name:'old',
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_chenqun","old_zhuhuan","old_zhuzhi"],
old_yijiang:["masu","xushu","fazheng","liru","yujin","xin_yujin","old_zhonghui","old_xusheng","old_zhuran","old_lingtong","old_madai","old_caoxiu","old_wangyi","old_caozhen","old_quancong"],
old_sp:["old_lingju","old_maliang","old_machao","zhangliang"],
},
},
character:{
yuji:['male','qun',3,['old_guhuo'],['forbidai']],
zhangjiao:['male','qun',3,['leiji','guidao','huangtian'],['zhu']],
@ -836,6 +843,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldqianxi_info:'当你使用【杀】对距离为1的目标角色造成伤害时你可以进行一次判定若判定结果不为红桃你防止此伤害令其减1点体力上限',
oldxuanfeng:'旋风',
oldxuanfeng_info:'每当你失去一次装备区里的牌时你可以执行下列两项中的一项1.视为对任意一名其他角色使用一张【杀】此【杀】不计入每回合的使用限制2.对与你距离1以内的一名其他角色造成一点伤害',
old_shenhua:'神话再临',
old_yijiang:'一将成名',
old_sp:'SP',
}
};
});

View File

@ -1206,7 +1206,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&player.storage.reluoshen&&player.storage.reluoshen.contains(card)){
return true;
return false;
}
},
},
@ -2945,6 +2945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.player.isAlive()&&event.source.isAlive()&&event.source!=event.player;
},
check:function(event,player){
if(player.isPhaseUsing()) return true;
if(event.player==player) return get.attitude(player,event.source)>-3;
return get.attitude(player,event.player)>-3;
},
@ -2954,9 +2955,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
game.asyncDraw([trigger.player,trigger.source],trigger.num);
event.count=trigger.num;
"step 1"
game.asyncDraw([trigger.player,trigger.source]);
event.count--;
"step 2"
game.delay();
"step 3"
if(event.count){
player.chooseBool(get.prompt2('wangxi',lib.skill.wangxi.logTarget(trigger,player)))
}
else event.finish();
"step 4"
if(result.bool){
player.logSkill('wangxi',lib.skill.wangxi.logTarget(trigger,player));
event.goto(1);
}
},
ai:{
maixie:true,

View File

@ -4,6 +4,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'shenhua',
connect:true,
connectBanned:['zuoci'],
characterSort:{
shenhua:{
shenhua_feng:['caoren','xiahouyuan','huangzhong','weiyan','xiaoqiao','zhoutai','sp_zhangjiao','re_yuji'],
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','pangde'],
shenhua_lin:['caopi','xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
shenhua_shan:['dengai','zhanghe','liushan','jiangwei','zhangzhang','sunce','caiwenji','zuoci'],
shenhua_yin:['wangji','kuailiangkuaiyue','yanyan','wangping','sunliang','luji','xuyou','yl_luzhi'],
shenhua_lei:['haozhao','guanqiujian','chendao','zhugezhan','lukang','zhoufei','zhangxiu','yl_yuanshu'],
},
},
character:{
xiahouyuan:['male','wei',4,['xinshensu']],
caoren:['male','wei',4,['xinjushou','xinjiewei']],
@ -1924,7 +1934,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 4'
if(event.toequip){
player.useCard(event.toequip,player).nopopup=true;
player.useCard(event.toequip,player).set('animate',false).nopopup=true;
}
},
ai:{
@ -6694,6 +6704,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huangtian_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张【闪】或【闪电】。',
guhuo_info:'每名角色的回合限一次你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌若为假则此牌作废若为真则质疑角色获得技能“缠怨”锁定技你不能质疑于吉只要你的体力值为1你失去你的武将技能',
fenji_info:'每当一名角色的手牌于回合外被其他角色弃置或获得时你可以失去1点体力然后令该角色摸两张牌。',
shenhua_feng:'神话再临•风',
shenhua_huo:'神话再临•火',
shenhua_lin:'神话再临•林',
shenhua_shan:'神话再临•山',
shenhua_yin:'神话再临•阴',
shenhua_lei:'神话再临•雷',
},
};
});

View File

@ -3,7 +3,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return {
name:'sp',
connect:true,
characterSort:{
sp:{
sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","mangyachang","xugong","zhangchangpu"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zangba","zhangren","zoushi"],
sp_others:["kaisa","hanba"],
},
},
character:{
mangyachang:["male","qun",4,["spjiedao"],[]],
xugong:["male","wu",4,["biaozhao","yechou"],[]],
zhangchangpu:["female","wei",3,["yanjiao","xingshen"],[]],
lijue:["male","qun","4/6",["xinfu_langxi","xinfu_yisuan"],[]],
zhangji:["male","qun",4,["xinfu_lveming","xinfu_tunjun"],[]],
fanchou:["male","qun",4,["xinfu_xingluan"],[]],
@ -136,6 +152,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
zhangchangpu:"钟会的母亲。《母夫人张氏传》:夫人张氏,字昌蒲,太原兹氏人,太傅定陵成侯之命妇也。",
xugong:"许贡是东汉末官吏。先后任吴郡都尉、太守欲送密信给曹操要曹操注意孙策却被孙策发现而被杀。许贡生前招揽了一些门客当中有三人不忘故主千方百计想要手刃仇人。建安五年公元200年广陵太守陈登派人秘密联系孙策治下的山贼余党企图颠覆孙策在江东的统治。孙策决定讨伐陈登行军到丹徒时许贡门客终于找到了机会。因为孙策有单骑出猎在野外思考的习惯三门客趁孙策轻装外出打猎时放冷箭射中孙策面颊。这些门客后来在与孙策的搏斗中被赶到的侍卫杀死。孙策此后因为伤口感染并且俊美的容貌被毁终于不治身亡去世时年仅26岁。",
mangyachang:"南蛮王孟获的部将,使一口截头大刀,骑一匹黄骠马。率军与蜀军交战,战败王平。后被平北将军马岱斩杀。只出现在《三国演义》里,正史中无此人。",
huangjinleishi:"黄巾军中负责施法的女祭司二人组。",
lijue:"李傕jué一说“傕”读音“què”—198年字稚然。北地郡泥阳县今陕西省耀县汉末群雄之一。东汉末年汉献帝时的军阀、权臣官至大司马、车骑将军、开府、领司隶校尉、假节。<br>李傕本为董卓部将后被董卓的女婿牛辅派遣至中牟与朱儁交战大破朱儁进而至陈留、颍川等地劫掠。初平三年192年董卓和牛辅被杀后李傕归无所依于是采用贾诩之谋伙同郭汜、张济、樊稠等原董卓部曲将攻向长安。击败吕布杀死王允等人占领长安把持朝廷大权。后诸将不和李傕在会议上杀死了樊稠又与郭汜分别劫持了汉献帝和众臣相互交战张济率兵赶来和解于是二人罢兵李傕出屯池阳黄白城郭汜、张济等人随汉献帝东归前往弘农。<br>后来李傕、郭汜、张济反悔联合起来追击汉献帝与杨奉、董承等人几番交战。汉献帝一路逃亡狼狈不堪到达安邑与李傕等人讲和。不久汉献帝被曹操迎往许都。建安三年198年曹操派谒者仆射裴茂召集关西诸将段煨等人征讨李傕灭其三族。",
zhangji:"张济196年武威郡祖厉县今甘肃靖远东南人。东汉末年割据军阀之一。 张济原为董卓部将,董卓被诛杀后,张济与李傕一同率军攻破长安,任中郎将。不久,升任镇东将军,封平阳侯,出屯弘农。献帝东迁时,张济升任骠骑将军,率军护卫献帝,后来因与董承等人有矛盾,便与李傕、郭汜一同追赶献帝。 建安元年196年张济因军队缺粮而进攻穰城中流矢而死。死后部队由侄儿张绣接管。",
@ -772,6 +791,329 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//和沙摩柯一起上线的新服三将
spjiedao:{
audio:2,
trigger:{
source:"damageBegin",
},
usable:1,
direct:true,
popup:false,
content:function (){
'step 0'
event.num=player.maxHp-player.hp;
if(event.num>0) player.chooseBool(get.prompt2('spjiedao',trigger.player)).ai=function(){
if(get.attitude(player,trigger.player)>=-1) return false;
return !trigger.player.getEquip('baiyin')&&!trigger.player.getEquip('rewrite_baiyin');
};
'step 1'
if(result.bool){
player.logSkill('spjiedao',trigger.player);
trigger.num+=num;
var next=game.createEvent('spjiedao_after',null,trigger.getParent());
next.player=player;
next.target=trigger.player;
next.num=num;
next.setContent(function(){
if(target.isAlive()) player.chooseToDiscard(num,true);
});
}
},
},
biaozhao:{
audio:2,
group:["biaozhao2","biaozhao3"],
intro:{
content:"cards",
},
trigger:{
player:"phaseEnd",
},
direct:true,
filter:function (event,player){
return player.countCards('he')>0&&!player.storage.biaozhao;
},
content:function (){
'step 0'
player.chooseCard('he',get.prompt2('biaozhao')).ai=function(card){
return 6-get.value(card);
}
'step 1'
if(result.bool){
player.logSkill('biaozhao');
player.lose(result.cards,ui.special,'toStorage');
player.storage.biaozhao=result.cards;
player.markSkill('biaozhao');
}
},
},
"biaozhao2":{
trigger:{
global:["loseEnd","cardsDiscardEnd"],
},
forced:true,
audio:"biaozhao",
filter:function (event,player){
if(!player.storage.biaozhao) return false;
if(event.getParent().name=='biaozhao2') return false;
var suit=get.suit(player.storage.biaozhao[0]);
var num=get.number(player.storage.biaozhao[0]);
for(var i=0;i<event.cards.length;i++){
if(get.position(event.cards[i])=='d'&&get.suit(event.cards[i])==suit
&&get.number(event.cards[i])==num) return true;
}
return false;
},
content:function (){
"step 0"
var card=player.storage.biaozhao[0];
delete player.storage.biaozhao;
if(trigger.getParent().name=='discard'){
trigger.player.gain(card,'fromStorage');
player.$give(card,trigger.player);
}
else{
player.$throw(card);
game.cardsDiscard(card);
player.loseHp();
}
"step 1"
player.unmarkSkill('biaozhao');
game.delay();
},
},
"biaozhao3":{
trigger:{
player:"phaseBegin",
},
forced:true,
audio:"biaozhao",
filter:function (event,player){
return player.storage.biaozhao!=undefined;
},
content:function (){
"step 0"
var card=player.storage.biaozhao[0];
delete player.storage.biaozhao;
player.unmarkSkill('biaozhao');
game.cardsDiscard(card);
event.num=0;
game.countPlayer(function(current){
if(current.countCards('h')>event.num) event.num=current.countCards('h');
});
player.chooseTarget('是否令一名角色将手牌摸至'+event.num+'张并回复1点体力').ai=function(target){
var num=Math.min(event.num-target.countCards('h'),5);
if(target.isDamaged()) num++;
return num*get.attitude(_status.event.player,target);
};
"step 1"
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
var draw=Math.min(num-target.countCards('h'),5);
if(draw) target.draw(draw);
target.recover();
}
},
},
yechou:{
audio:2,
trigger:{
player:"dieBegin",
},
direct:true,
skillAnimation:true,
content:function (){
var next=game.createEvent('yechou',null,trigger.parent);
next.forceDie=true;
next.player=player;
next.setContent(lib.skill.yechou.contentx);
},
contentx:function (){
"step 0"
player.chooseTarget(get.prompt2('yechou'),function(card,player,target){
return player!=target&&target.maxHp-target.hp>1
}).set('forceDie',true).set('ai',function(target){
var num=get.attitude(_status.event.player,target);
return -num;
});
"step 1"
if(result.bool){
var target=result.targets[0];
player.logSkill('yechou',target);
player.line(target,'green');
target.addTempSkill('yechou2',{player:'phaseBeginStart'});
}
},
ai:{
expose:0.5,
},
},
"yechou2":{
mark:true,
marktext:"仇",
intro:{
content:"每个回合结束时失去1点体力直到回合开始",
},
trigger:{
global:"phaseAfter",
},
forced:true,
content:function (){player.loseHp()},
},
yanjiao:{
audio:2,
ai:{
order:10,
result:{
player:1,
target:1.1,
},
},
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
return target!=player;
},
content:function (){
"step 0"
var num=4;
if(player.storage.xingshen){
num+=player.storage.xingshen;
player.storage.xingshen=0;
player.unmarkSkill('xingshen');
}
event.cards=get.cards(num);
player.showCards(event.cards);
"step 1"
event.preResult=lib.skill.yanjiao.getResult(cards);
if(!event.preResult.length){
game.cardsDiscard(cards);
player.addTempSkill('yanjiao2');
event.finish();
}
else{
var choiceList=ui.create.dialog('请选择一种方案','hidden','forcebutton');
for(var i=0;i<event.preResult.length;i++){
var str='<div class="popup text" style="width:calc(100% - 10px);display:inline-block">方案'+get.cnNumber(i+1,true);
str+='<br>第一组:';
var current=event.preResult[i];
str+=get.translation(current[0]);
str+='<br>第二组:';
str+=get.translation(current[1]);
if(current[2].length){
str+='<br>剩余:';
str+=get.translation(current[2]);
}
str+='</div>';
var next=choiceList.add(str);
next.firstChild.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
next.firstChild.link=i;
for(var j in lib.element.button){
next[j]=lib.element.button[i];
}
choiceList.buttons.add(next.firstChild);
}
event.choiceList=choiceList;
target.chooseButton(choiceList,true,function(button){
return true;
});
}
"step 2"
event.index=result.links[0]||0;
event.togain=event.preResult[event.index];
target.showCards(event.togain[0],get.translation(target)+'分出的第一份牌');
"step 3"
target.showCards(event.togain[1],get.translation(target)+'分出的第二份牌');
"step 4"
player.chooseControl().set('choiceList',[
'获得'+get.translation(event.togain[0]),
'获得'+get.translation(event.togain[1])
]).ai=function(){return Math.random()<0.5?1:0};
"step 5"
player.gain(event.togain[result.index],'gain2');
target.gain(event.togain[1-result.index],'gain2');
if(event.togain[2].length){
game.cardsDiscard(event.togain[2]);
if(event.togain[2].length>1) player.addTempSkill('yanjiao2');
}
},
getResult:function (cards){
var cl=cards.length;
var maxmium=Math.pow(3,cl);
var filter=function(list){
if(!list[1].length||!list[0].length) return false;
var num1=0;
for(var i=0;i<list[1].length;i++){
num1+=list[1][i].number;
}
var num2=0;
for(var j=0;j<list[0].length;j++){
num2+=list[0][j].number;
}
return num1==num2
};
var results=[];
for(var i=0;i<maxmium;i++){
var result=[[],[],[]];
for(var j=0;j<cl;j++){
result[Math.floor((i%Math.pow(3,j+1))/Math.pow(3,j))].push(cards[j]);
}
if(filter(result)) results.push(result);
}
var filterSame=function(list1,list2){
if(list1[1].length==list2[0].length&&list1[0].length==list2[1].length){
for(var i=0;i<list1[0].length;i++){
if(!list2[1].contains(list1[0][i])) return false;
}
for(var i=0;i<list1[1].length;i++){
if(!list2[0].contains(list1[1][i])) return false;
}
return true;
}
return false;
}
for(var i=0;i<results.length;i++){
for(var j=i+1;j<results.length;j++){
if(filterSame(results[i],results[j])) results.splice(j--,1);
}
}
results.sort(function(a,b){
return a[2].length-b[2].length;
});
return results;
},
},
"yanjiao2":{
marktext:"教",
mark:true,
intro:{
content:"本回合手牌上限-1",
},
mod:{
maxHandcard:function (player,num){
return num-1;
},
},
},
xingshen:{
audio:2,
intro:{
content:"下一次发动【严教】时多展示#张牌",
},
trigger:{
player:"damageEnd",
},
frequent:true,
content:function (){
player.draw(player.isMinHandcard()?2:1);
if(!player.storage.xingshen) player.storage.xingshen=0;
player.storage.xingshen+=player.isMinHp()?2:1;
if(player.storage.xingshen>4) player.storage.xingshen=4;
player.markSkill('xingshen');
},
},
//统率三军诸葛瑾和文聘
"zhenwei_three":{
global:"zhenwei_three_others",
@ -1470,9 +1812,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 3'
if(result.links){
player.$throw(result.links);
player.storage.new_xingwu=[];
for(var i=0;i<result.links.length;i++) player.storage.new_xingwu.remove(result.links[i]);
game.cardsDiscard(result.links);
player.syncStorage();
player.syncStorage('new_xingwu');
player.updateMarks('new_xingwu');
if(!player.storage.new_xingwu.length) player.unmarkSkill('new_xingwu');
player.chooseTarget(function(card,player,target){
return target!=player;
@ -1513,97 +1856,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){
if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false;
if(player.hasSkill('retianxiang')||player.hasSkill('tianxiang')) return false;
return lib.skill.tianxiang.filter(event,player);
return lib.skill.retianxiang.filter(event,player);
},
audio:"tianxiang",
trigger:{
player:"damageBefore",
},
direct:true,
content:function (){
"step 0"
player.chooseCardTarget({
filterCard:function(card,player){
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
},
filterTarget:function(card,player,target){
return player!=target;
},
// position:'he',
ai1:function(card){
return 10-get.value(card);
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
da=10;
}
var eff=get.damageEffect(target,trigger.source,target);
if(att==0) return 0.1+da;
if(eff>=0&&att>0){
return att+da;
}
if(att>0&&target.hp>1){
if(target.maxHp-target.hp>=3) return att*1.1+da;
if(target.maxHp-target.hp>=2) return att*0.9+da;
}
return -att+da;
},
prompt:get.prompt('retianxiang'),
prompt2:lib.translate.retianxiang_info
});
"step 1"
if(result.bool){
player.discard(result.cards,ui.special);
var target=result.targets[0];
player.chooseControlList(true,function(event,player){
var target=_status.event.target;
var att=get.attitude(player,target);
if(target.hasSkillTag('maihp')) att=-att;
if(att>0){
return 0;
}
else{
return 1;
}
},
['令'+get.translation(target)+'受到伤害来源对其造成的1点伤害然后摸X张牌X为其已损失体力值且至多为5',
'令'+get.translation(target)+'失去1点体力然后获得'+get.translation(result.cards)]).set('target',target);
player.logSkill(event.name,target);
trigger.cancel();
event.target=target;
event.card=result.cards[0];
}
else{
event.finish();
}
"step 2"
if(typeof result.index=='number'){
if(result.index){
event.target.loseHp().type='retianxiang';
event.target.addSkill('retianxiang3');
event.target.storage.retianxiang3=event.card;
}
else{
event.target.damage(trigger.source).type='retianxiang';
event.target.addSkill('retianxiang2');
if(get.position(event.card)=='s'){
game.cardsDiscard(event.card);
}
}
}
},
ai:{
"maixie_defend":true,
effect:{
target:function (card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return;
if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7;
},
},
},
},
"new_luoyan_liuli":{
inherit:"liuli",
@ -1613,87 +1868,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return lib.skill.liuli.filter(event,player);
},
audio:"liuli",
trigger:{
target:"shaBefore",
},
direct:true,
priority:5,
content:function (){
"step 0"
var next=player.chooseCardTarget({
position:'he',
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
var trigger=_status.event.getTrigger();
if(get.distance(player,target,'attack')<=1&&
target!=trigger.player&&target!=player){
if(player.canUse(trigger.card,target)) return true;
}
return false;
},
ai1:function(card){
return get.unuseful(card)+9;
},
ai2:function(target){
if(_status.event.player.countCards('h','shan')){
return -get.attitude(_status.event.player,target);
}
if(get.attitude(_status.event.player,target)<5){
return 6-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==1&&player.countCards('h','shan')==0){
return 10-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==2&&player.countCards('h','shan')==0){
return 8-get.attitude(_status.event.player,target);
}
return -1;
},
prompt:get.prompt('liuli')
});
"step 1"
if(result.bool){
player.discard(result.cards);
player.logSkill(event.name,result.targets);
trigger.target=result.targets[0];
trigger.targets.remove(player);
trigger.targets.push(result.targets[0]);
}
else{
event.finish();
}
"step 2"
trigger.untrigger();
trigger.trigger('useCardToBefore');
trigger.trigger('shaBefore');
game.delay();
},
ai:{
effect:{
target:function (card,player,target){
if(target.countCards('he')==0) return;
if(card.name!='sha') return;
var min=1;
var friend=get.attitude(player,target)>0;
var vcard={name:'shacopy',nature:card.nature,suit:card.suit};
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(player!=players[i]&&
get.attitude(target,players[i])<0&&
target.canUse(card,players[i])){
if(!friend) return 0;
if(get.effect(players[i],vcard,player,player)>0){
if(!player.canUse(card,players[0])){
return [0,0.1];
}
min=0;
}
}
}
return min;
},
},
},
},
//新孙鲁育
"new_meibu":{
@ -2714,7 +2888,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseTarget(get.prompt2('bmcanshi'),[1,Infinity],function(card,player,target){
if(!target.hasSkill('zongkui_mark')) return false;
var trigger=_status.event.getTrigger();
return !trigger.targets.contains(target)&&lib.filter.filterTarget2(trigger.card,player,target);
return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(trigger.card,player,target);
}).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,_status.event.getTrigger().card,player,player);
@ -2762,7 +2936,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'已因此技能获得#张牌'
},
trigger:{global:'damageAfter'},
trigger:{global:'damageEnd'},
forced:true,
filter:function(event,player){
return event.player!=player&&event.player.hasSkill('zongkui_mark');
@ -8959,7 +9133,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=get.attitude(player,trigger.player);
return result*attitude;
}).set('judging',trigger.player.judging);
}).set('judging',trigger.player.judging[0]);
"step 1"
if(result.bool){
player.logSkill('midao',trigger.player);
@ -10030,6 +10204,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(event,player){
return get.attitude(player,event.target)>=0;
},
priority:7,
content:function(){
"step 0"
player.draw();
@ -10065,7 +10240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
"step 3"
if(result.bool){
trigger.target.useCard(event.card).nopopup=true;
trigger.target.useCard(event.card,trigger.target).nopopup=true;
}
},
ai:{
@ -12497,6 +12672,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
majun:"马钧",
simazhao:"司马昭",
wangyuanji:"王元姬",
mangyachang:"忙牙长",
xugong:"许贡",
zhangchangpu:"张菖蒲",
spjiedao:"截刀",
"spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+XX为你损失的体力值。然后若受到此伤害的角色没有死亡你弃置等同于此伤害加值的牌。",
biaozhao:"表召",
"biaozhao_info":"结束阶段你可以将一张牌置于武将牌上称为“表”。当有一张与“表”花色点数均相同的牌进入弃牌堆时移去“表”且你失去1点体力若此牌是其他角色因弃置而进入弃牌堆的则改为该角色获得“表”。准备阶段若你的武将牌上有“表”则移去“表”然后你选择一名角色该角色回复1点体力且将手牌摸至与全场手牌数最多的人相同最多摸五张。",
"biaozhao2":"表召",
"biaozhao2_info":"",
"biaozhao3":"表召",
"biaozhao3_info":"",
yechou:"业仇",
"yechou_info":"你死亡时可以选择一名已损失体力值大于1的角色。每个回合结束时该角色失去1点体力直到其回合开始",
"yechou2":"业仇",
"yechou2_info":"",
yanjiao:"严教",
"yanjiao_info":"出牌阶段限一次,你可以选择一名其他角色。从牌堆顶亮出四张牌,该角色将这些牌分成点数之和相等的两组,你与其各获得其中一组,然后将剩余未分组的牌置入弃牌堆。若未分组的牌超过一张,你本回合手牌上限-1。",
"yanjiao2":"严教",
"yanjiao2_info":"",
xingshen:"省身",
"xingshen_info":"当你受到伤害后,你可以摸一张牌且下一次发动“严教”亮出的牌数+1。若你的手牌数为全场最少则改为摸两张牌若你的体力值为全场最少则“严教”亮出的牌数改为+2加值总数不能超过4。",
xinshanjia:"缮甲",
"xinshanjia_info":"出牌阶段开始时你可以摸三张牌然后弃置3-X张牌(X为你本局游戏内失去过的装备区内的牌的数目且至多为3)。若你没有以此法弃置基本牌或锦囊牌,则你可以视为使用了一张不计入出牌阶段使用次数的【杀】。",
@ -13038,6 +13236,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yongsi_info:'锁定技摸牌阶段你额外摸X张牌X为场上现存势力数。弃牌阶段你至少须弃置等同于场上现存势力数的牌不足则全弃。',
yicong_info:'锁定技只要你的体力值大于2点你的进攻距离+1只要你的体力值为2点或更低你的防御距离+1',
baobian_info:'锁定技若你的体力值为3或更少你视为拥有技能“挑衅”若你的体力值为2或更少你视为拥有技能“咆哮”若你的体力值为1你视为拥有技能“神速”。',
sp_default:"常规",
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
sp_longzhou:"同舟共济",
sp_zhongdan:"忠胆英杰",
sp_star:"☆SP系列",
sp_guozhan:"国战",
sp_guozhan2:"国战移植",
sp_others:"其他",
},
};
});

View File

@ -3,6 +3,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return {
name:'standard',
connect:true,
characterSort:{
standard:{
standard_2008:["caocao","simayi","xiahoudun","zhangliao","xuzhu","guojia","zhenji","liubei","guanyu","zhangfei","zhugeliang","zhaoyun","machao","huangyueying","sunquan","ganning","lvmeng","huanggai","zhouyu","daqiao","luxun","sunshangxiang","huatuo","lvbu","diaochan",],
standard_2013:["huaxiong","re_yuanshu"],
standard_2019:["gongsunzan","caozhang","xf_yiji"],
},
},
character:{
caocao:['male','wei',4,['hujia','jianxiong'],['zhu']],
simayi:['male','wei',3,['fankui','guicai']],
@ -1712,7 +1719,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['re_lvmeng','sp_lvmeng'],
trigger:{player:'phaseDiscardBefore'},
frequent:function(event,player){
return !player.needsToDiscard();
return player.needsToDiscard();
},
filter:function(event,player){
return player.countUsed('sha')==0;
@ -2554,6 +2561,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yaowu_info:'锁定技当任意一名角色使用红色【杀】对你造成伤害时该角色回复1点体力或摸一张牌。',
"new_jiangchi":"将驰",
"new_jiangchi_info":"摸牌阶段结束时你可以选择一项1、摸一张牌若如此做你本回合内不能使用或打出【杀】。 2、弃置一张牌若如此做出牌阶段你使用【杀】无距离限制且你可以额外使用一张【杀】直到回合结束。",
standard_2008:"2008版标准包",
standard_2013:"2013版标准包",
standard_2019:"2019版标准包",
},
};
});

View File

@ -4,6 +4,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'yijiang',
connect:true,
connectBanned:['qinmi'],
characterSort:{
yijiang:{
yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
yijiang_2012:['wangyi','xunyou','zhonghui','madai','liaohua','guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong'],
yijiang_2013:['manchong','guohuai','caochong','guanping','liufeng','jianyong','yufan','panzhangmazhong','zhuran','xin_liru','fuhuanghou'],
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
yijiang_2016:['guohuanghou','sunziliufang','huanghao','liyan','sundeng','cenhun','zhangrang','liuyu'],
yijiang_2017:['xinxianying','jikang','wuxian','qinmi','xuezong','xushi','caiyong','caojie',],
},
},
character:{
guohuai:['male','wei',4,['jingce']],
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
@ -714,13 +725,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)>=0) return true;
if(player.hasSkill('funan_jiexun')&&player.storage.funan_jiexun==event.player) return true;
if(player.hasSkill('funan_jiexun')) return true;
if(event.cards.length>1) return true;
return get.value(event.cards[0])>get.value(event.respondTo[1]);
},
content:function(){
'step 0'
if(!player.hasSkill('funan_jiexun')||player.storage.funan_jiexun!=trigger.player){
if(!player.hasSkill('funan_jiexun')){
trigger.player.gain(trigger.respondTo[1],'gain2');
trigger.player.addTempSkill('funan_use');
if(!trigger.player.storage.funan_use){
@ -733,19 +744,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
subSkill:{
jiexun:{
mark:'character',
mark:true,
intro:{
content:'你发动“复难”时,无须令$获得你使用的牌'
content:'你发动“复难”时,无须令其他角色获得你使用的牌'
},
trigger:{global:'dieAfter'},
silent:true,
filter:function(event,player){
return player.storage.funan_jiexun==event.player;
},
onremove:true,
content:function(){
player.removeSkill('funan_jiexun');
}
},
use:{
onremove:true,
@ -812,7 +814,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 3'
if(!event.target.countCards('he')){
player.removeSkill('jiexun');
player.storage.funan_jiexun=event.target;
player.addSkill('funan_jiexun');
}
}
@ -2419,10 +2420,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taoluan:{
enable:'chooseToUse',
filter:function(event,player){
return !player.hasSkill('taoluan3')&&player.countCards('he')>0&&!_status.dying.length;
return event.type!='wuxie'&&!player.hasSkill('taoluan3')&&player.countCards('he')>0&&!_status.dying.length;
},
init:function(player){
player.storage.taoluan=[];
if(!player.storage.taoluan) player.storage.taoluan=[];
},
chooseButton:{
dialog:function(event,player){
@ -2517,7 +2518,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
prompt:function(links,player){
return '选择'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'的目标';
return '将一张牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
}
},
ai:{
@ -2539,7 +2540,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
threaten:1.9,
},
group:['taoluan2','taoluan4']
group:['taoluan2','taoluan4','taoluan5']
},
taoluan2:{
trigger:{player:['useCardAfter','respondAfter']},
@ -2611,24 +2612,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
taoluan5:{
/*enable:'chooseToUse',
audio:'taoluan',
enable:'chooseToUse',
prompt:'将一张牌当做无懈可击使用',
filter:function(event,player){
return event.type=='dying'&&!player.storage.taoluan.contains('tao');
return !player.storage.taoluan.contains('wuxie');
},
onuse:function(result,player){
player.storage.taoluan.add('tao');
player.storage.taoluan.add('wuxie');
},
filterCard:true,
position:'he',
selectCard:1,
viewAs:{name:'tao'},
ai:{
skillTagFilter:function(player){
return !player.storage.taoluan.contains('tao');
},
threaten:1.5,
save:true,
}*/
viewAs:{name:'wuxie'},
},
taoluan_backup:{},
jishe:{
@ -10138,6 +10134,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhichi_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或普通锦囊牌均对你无效,直到该回合结束。',
zhichi2_info:'智迟已发动',
pojun_info:'你每使用【杀】造成一次伤害可令受到该伤害的角色多摸X张牌X为该角色当前的体力值(X最多为5),然后该角色将其武将牌翻面。',
yijiang_2011:'一将成名2011',
yijiang_2012:'一将成名2012',
yijiang_2013:'一将成名2013',
yijiang_2014:'一将成名2014',
yijiang_2015:'一将成名2015',
yijiang_2016:'原创设计2016',
yijiang_2017:'原创设计2017',
},
};
});