v1.9.123 (#158)
* change lib.init.parsex, Enable 'step' to be used through nesting
* Fixed an issue where nonstandard statement 'step 0' before standard statement 'step 0' would cause an error
* zhangshiping; tw_madai bug fix
* modify all the skills with incorrect "locked" tag
* Change the game.exit function to restart the app for WKWebview users using ios. And added the macintosh field to the judgment of lib.device
* various bug fix
* Revert "various bug fix"
This reverts commit ca7a363172
.
* various bug fix
* some sudio
* unlock zhenghun, fix sbdiaochan
* add and adjust some audio, fix some bugs
* add trigger "useSkill" and "logSkillBegin"
* brand new wuxie
* Update standard.js
* update 武安国
* iriya!
* Add character lushi; fix clansankuang
* add 魏关羽/涛神,unlock 关宁/向朗/谋孙策/谋大乔/谋刘表,add related audio
* fix: adjust the edit box style to fix the text overflow problem 🐛
* fix 修文 and some other small bugs
* 伊莉雅·罗日杰斯特文斯卡娅
* Fix the issue of "game.getDB" and "game. deleteDB" reporting errors without "lib.db"
* Some browsers do not support "autoplay", so "onconplay" listening has been added
* sunwukong
* more zooms
* unlock 周善, modify 卢氏/卞喜/刘虞/黄祖/李采薇/张翼/笮融/孙寒华/TW董昭, fix some bug, add omitted audio
* change the number of 如意金箍棒 to 9 instead of 5; fix 夏侯尚's bug; add audio for sunwukong & donghailongwang
* Add the default accept value of '*/*' to the HTML selection file label
* longwang
* add&modify some audio
* add 族王凌/界SP黄月英/界张松/武诸葛亮,fix 晖云's bug; resolve conflicts, bring 武诸葛 up to date, fix 龙王's bug
* add 阮籍, add a skillTag in "jiu2" named jiuSustain for ruanji
* add some audio, sort some characters in sp
* sync 界SP黄月英
* add some character intros
* make 谋弈 play audio correctly
* revert some skills back to new ones
* v1.9.122.3
* Update update.js
* Add files via upload
* Add files via upload
* UI fix, Pinyin
* 李白
* Add files via upload
* Add files via upload
* collab pack, shen_dengai
* 朱铁雄, 小约翰可汗, 铜雀台补全
* small change
* 新增阮籍语音,修复阮籍的一个bug
* 添加族王凌和界孙登的语音
* 调整火攻和雌雄剑效果为只有1牌/0牌的时候直接亮出/令摸牌;新增一些语音
* 添加武诸葛、神邓艾配音
* 更新武诸葛、袁姬技能,bug修复
* 新增严纲、公孙范、乐蔡文姬、OL王朗,bug修复,添加相关语音
* 添加十周年地主相关语音,修复张世平的一个AIbug
* 修改intro的一个问题
* collab AI
* 新增OL界二张、甘夫人糜夫人,线下小杀小闪小酒小桃小乐;解禁刘宠骆俊
* v1.9.123 update info
---------
Co-authored-by: shijian <2954700422@qq.com>
Co-authored-by: copcap <copcap@outlook.com>
Co-authored-by: copcap <43802486+copcap@users.noreply.github.com>
Co-authored-by: PBK-B <pbk-b@PBK6.cn>
Co-authored-by: lieren2023 <131325076+lieren2023@users.noreply.github.com>
This commit is contained in:
parent
623971df34
commit
d408f2f517
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -176,7 +176,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
enable:true,
|
enable:true,
|
||||||
//cardnature:'fire',
|
//cardnature:'fire',
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(player!=game.me&&player.countCards('h')<2) return false;
|
//if(player!=game.me&&player.countCards('h')<2) return false;
|
||||||
return target.countCards('h')>0;
|
return target.countCards('h')>0;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -185,7 +185,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
event.finish();
|
event.finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
target.chooseCard(true).ai=function(card){
|
else if(target.countCards('h')==1) event._result={cards:target.getCards('h')};
|
||||||
|
else target.chooseCard(true).ai=function(card){
|
||||||
if(_status.event.getRand()<0.5) return Math.random();
|
if(_status.event.getRand()<0.5) return Math.random();
|
||||||
return get.value(card);
|
return get.value(card);
|
||||||
};
|
};
|
||||||
|
|
|
@ -901,7 +901,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return target.isHealthy();
|
return target.isHealthy();
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
target.recover();
|
target.recover(event.baseDamage||1);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
basic:{
|
basic:{
|
||||||
|
@ -2084,9 +2084,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
trigger.target.chooseToDiscard('弃置一张手牌,或令'+get.translation(player)+'摸一张牌').set('ai',function(card){
|
if(!trigger.target.countCards('h')) event._result={bool:false};
|
||||||
|
else trigger.target.chooseToDiscard('弃置一张手牌,或令'+get.translation(player)+'摸一张牌').set('ai',function(card){
|
||||||
var trigger=_status.event.getTrigger();
|
var trigger=_status.event.getTrigger();
|
||||||
return -get.attitude(trigger.target,trigger.player)-get.value(card);
|
return -get.attitude(trigger.target,trigger.player)-get.value(card)-Math.max(0,4-trigger.target.hp)*2;
|
||||||
});
|
});
|
||||||
"step 1"
|
"step 1"
|
||||||
if(result.bool==false) player.draw();
|
if(result.bool==false) player.draw();
|
||||||
|
@ -2453,8 +2454,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
event._info_map=map;
|
event._info_map=map;
|
||||||
var card=trigger.card;
|
var card=trigger.card;
|
||||||
var state=true;
|
var state=true;
|
||||||
if(trigger.name=='phaseJudge'&&get.itemtype(card)=='card'&&card.viewAs){
|
if(trigger.name=='phaseJudge'){
|
||||||
card=get.autoViewAs({name:card.viewAs},[card]);
|
if(get.itemtype(card)=='card'&&card.viewAs) card=get.autoViewAs({name:card.viewAs},[card]);
|
||||||
map.target=trigger.player;
|
map.target=trigger.player;
|
||||||
map.isJudge=true;
|
map.isJudge=true;
|
||||||
}
|
}
|
||||||
|
@ -2464,6 +2465,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
map.target=trigger.target;
|
map.target=trigger.target;
|
||||||
map.targets=trigger.targets;
|
map.targets=trigger.targets;
|
||||||
map.tempnowuxie=(trigger.targets&&trigger.targets.length>1&&!trigger.multitarget);
|
map.tempnowuxie=(trigger.targets&&trigger.targets.length>1&&!trigger.multitarget);
|
||||||
|
map.noai=Boolean(trigger.getParent().noai);
|
||||||
//如果对拼无懈,获取历史数据
|
//如果对拼无懈,获取历史数据
|
||||||
if(card.name=='wuxie'){
|
if(card.name=='wuxie'){
|
||||||
var evt=event;
|
var evt=event;
|
||||||
|
|
|
@ -30,7 +30,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
target.recover();
|
target.recover(event.baseDamage||1);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(target.hasCard(function(card){
|
if(target.hasCard(function(card){
|
||||||
return _status.connectMode||get.name(card,target)=='du';
|
return _status.connectMode||get.name(card,target)=='du';
|
||||||
|
|
|
@ -659,12 +659,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
jinhe_lose:{
|
jinhe_lose:{
|
||||||
trigger:{
|
trigger:{
|
||||||
player:['loseAfter','equipAfter'],
|
player:['loseAfter','equipAfter'],
|
||||||
|
global:'loseAsyncAfter',
|
||||||
},
|
},
|
||||||
equipSkill:true,
|
equipSkill:true,
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.getl===false) return false;
|
if(event.getl===false) return false;
|
||||||
if(event.name=='lose'&&event.position!=ui.discardPile||!_status.jinhe||event.getParent(2).name=='jinhe_skill'&&event.getParent(2).player==player) return false;
|
if(!event.getd(player).length||!_status.jinhe||event.getParent(2).name=='jinhe_skill'&&event.getParent(2).player==player) return false;
|
||||||
var evt=event.getl(player);
|
var evt=event.getl(player);
|
||||||
if(!evt) return false;
|
if(!evt) return false;
|
||||||
for(var i=0;i<evt.es.length;i++){
|
for(var i=0;i<evt.es.length;i++){
|
||||||
|
|
|
@ -37,15 +37,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var num=player.countCards('h');
|
var num=player.countCards('h');
|
||||||
var str='是否交给其'+get.cnNumber(num)+'张牌,然后视为你对其使用一张【酒】?或者点击“取消”,令其交给你一张牌,然后其视为对你使用一张【杀】。';
|
var str='是否交给其'+get.cnNumber(num)+'张牌,然后视为你对其使用一张【酒】?或者点击“取消”,令其交给你一张牌,然后其视为对你使用一张雷【杀】。';
|
||||||
target.chooseCard(get.translation(player)+'对你发动了【驳龙】',str,num,'he').set('ai',card=>{
|
target.chooseCard(get.translation(player)+'对你发动了【驳龙】',str,num,'he').set('ai',card=>{
|
||||||
if(_status.event.canGive) return 5-get.value(card);
|
if(_status.event.canGive) return 5+Math.max(0,3-_status.event.player.hp)/1.5-get.value(card);
|
||||||
return 0;
|
return 0;
|
||||||
}).set('canGive',function(){
|
}).set('canGive',function(){
|
||||||
if(get.attitude(target,player)>1) return true;
|
if(get.attitude(target,player)>1) return true;
|
||||||
if(!player.hasSha()&&player.countCards('h')<=4) return true;
|
if(!player.hasSha()&&player.countCards('h')<=4) return true;
|
||||||
|
var sha={name:'sha',nature:'thunder',isCard:true};
|
||||||
if(game.hasPlayer(current=>{
|
if(game.hasPlayer(current=>{
|
||||||
return player.canUse('sha',current,true,true)&&get.effect(current,{name:'sha'},player,target)<0&&!current.countCards('hs',['shan','caochuan']);
|
return player.canUse(sha,current,true,true)&&get.effect(current,sha,player,target)<0&&!current.countCards('hs',['shan','caochuan']);
|
||||||
})) return false;
|
})) return false;
|
||||||
return true;
|
return true;
|
||||||
}());
|
}());
|
||||||
|
@ -57,13 +58,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
event.finish();
|
event.finish();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
player.chooseCard('驳龙:交给'+get.translation(target)+'一张牌',get.translation(target)+'拒绝给牌,请交给其一张牌然后视为对其使用一张【杀】',true,'he');
|
player.chooseCard('驳龙:交给'+get.translation(target)+'一张牌',get.translation(target)+'拒绝给牌,请交给其一张牌然后视为对其使用一张雷【杀】',true,'he');
|
||||||
}
|
}
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var cards=result.cards;
|
var cards=result.cards;
|
||||||
player.give(cards,target);
|
player.give(cards,target);
|
||||||
if(player.canUse('sha',target,false,false)) player.useCard({name:'sha',isCard:true},target,false);
|
var sha={name:'sha',nature:'thunder',isCard:true};
|
||||||
|
if(player.canUse(sha,target,false,false)) player.useCard(sha,target,false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -83,6 +85,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
clanzhongliu:{
|
clanzhongliu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
audioname:['clan_wangling'],
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
forced:true,
|
forced:true,
|
||||||
clanSkill:true,
|
clanSkill:true,
|
||||||
|
@ -1240,7 +1243,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audioname:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan'],
|
audioname:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan'],
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:'useCardAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return get.type(event.card,null,false)=='trick'&&!get.tag(event.card,'damage')&&event.cards.filterInD('d').length>0&&player.getHistory('useCard',evt=>{
|
return get.type(event.card,null,false)=='trick'&&!get.tag(event.card,'damage')&&event.cards.filterInD().length>0&&player.getHistory('useCard',evt=>{
|
||||||
return get.type(evt.card,null,false)=='trick'&&!get.tag(evt.card,'damage');
|
return get.type(evt.card,null,false)=='trick'&&!get.tag(evt.card,'damage');
|
||||||
}).indexOf(event)==0;
|
}).indexOf(event)==0;
|
||||||
},
|
},
|
||||||
|
@ -1601,7 +1604,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
clanlianzhu_info:'转换技。每名角色A的出牌阶段限一次。阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1;阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1。',
|
clanlianzhu_info:'转换技。每名角色A的出牌阶段限一次。阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1;阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1。',
|
||||||
clan_wangling:'族王凌',
|
clan_wangling:'族王凌',
|
||||||
clanbolong:'驳龙',
|
clanbolong:'驳龙',
|
||||||
clanbolong_info:'出牌阶段限一次。你可以令一名其他角色选择一项:1.你交给其一张牌,然后视为对其使用一张【杀】;2.交给你等同于你手牌数的牌,然后视为对你使用一张【酒】。',
|
clanbolong_info:'出牌阶段限一次。你可以令一名其他角色选择一项:1.你交给其一张牌,然后视为对其使用一张雷【杀】;2.交给你等同于你手牌数的牌,然后视为对你使用一张【酒】。',
|
||||||
clanzhongliu:'中流',
|
clanzhongliu:'中流',
|
||||||
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌不全为同族角色的手牌,你重置武将牌上的技能。',
|
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌不全为同族角色的手牌,你重置武将牌上的技能。',
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -220,7 +220,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
||||||
diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"],
|
diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"],
|
||||||
diy_noname:['noname'],
|
diy_noname:['noname'],
|
||||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi"],
|
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi","key_iriya"],
|
||||||
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian','junk_duanwei'],
|
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian','junk_duanwei'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -17751,7 +17751,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
group:'junkyuheng_remove',
|
group:'junkyuheng_remove',
|
||||||
derivation:['olbingyi','shenxing','xiashu','old_anxu','rezhiheng','xinanguo','lanjiang','xinfu_guanwei','oldimeng','xindiaodu','xingxue','jiexun','olhongyuan','xinfu_youdi'],
|
derivation:['olbingyi','shenxing','xiashu','old_anxu','rezhiheng','xinanguo','lanjiang','xinfu_guanwei','oldimeng','xindiaodu','xingxue','jiexun','olhongyuan','xinfu_youdi','bizheng'],
|
||||||
subSkill:{
|
subSkill:{
|
||||||
remove:{
|
remove:{
|
||||||
audio:'yuheng',
|
audio:'yuheng',
|
||||||
|
@ -19005,5 +19005,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_duji:'画饼杜畿',
|
ns_duji:'画饼杜畿',
|
||||||
ns_duji_ab:'杜畿',
|
ns_duji_ab:'杜畿',
|
||||||
},
|
},
|
||||||
|
pinyins:{
|
||||||
|
加藤うみ:['yīng','yuán','yǔ','wèi'],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
extra_yin:['shen_liubei','shen_luxun'],
|
extra_yin:['shen_liubei','shen_luxun'],
|
||||||
extra_lei:['shen_ganning','shen_zhangliao'],
|
extra_lei:['shen_ganning','shen_zhangliao'],
|
||||||
extra_key:['key_kagari','key_shiki','db_key_hina'],
|
extra_key:['key_kagari','key_shiki','db_key_hina'],
|
||||||
extra_decade:['shen_jiangwei','shen_machao','shen_zhangfei','shen_zhangjiao'],
|
extra_decade:['shen_jiangwei','shen_machao','shen_zhangfei','shen_zhangjiao','shen_dengai'],
|
||||||
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji','shen_sunquan'],
|
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji','shen_sunquan'],
|
||||||
extra_mobilezhi:['shen_guojia','shen_xunyu'],
|
extra_mobilezhi:['shen_guojia','shen_xunyu'],
|
||||||
extra_mobilexin:['shen_taishici','shen_sunce'],
|
extra_mobilexin:['shen_taishici','shen_sunce'],
|
||||||
|
@ -22,6 +22,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
shen_dengai:['male','shen',4,['dctuoyu','dcxianjin','dcqijing'],['wei']],
|
||||||
tw_shen_lvmeng:['male','shen',3,['twshelie','twgongxin'],['wu']],
|
tw_shen_lvmeng:['male','shen',3,['twshelie','twgongxin'],['wu']],
|
||||||
shen_zhangjiao:['male','shen',3,['yizhao','sijun','sanshou','tianjie'],['qun']],
|
shen_zhangjiao:['male','shen',3,['yizhao','sijun','sanshou','tianjie'],['qun']],
|
||||||
shen_zhangfei:['male','shen',4,['shencai','xunshi'],['shu']],
|
shen_zhangfei:['male','shen',4,['shencai','xunshi'],['shu']],
|
||||||
|
@ -74,8 +75,325 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
shen_diaochan:function(mode){
|
shen_diaochan:function(mode){
|
||||||
return mode=='identity'||mode=='doudizhu'||mode=='single'||(mode=='versus'&&_status.mode!='standard'&&_status.mode!='three');
|
return mode=='identity'||mode=='doudizhu'||mode=='single'||(mode=='versus'&&_status.mode!='standard'&&_status.mode!='three');
|
||||||
},
|
},
|
||||||
|
shen_dengai:function(mode){
|
||||||
|
if(['boss','chess','tafang','stone'].contains(mode)) return false;
|
||||||
|
if(mode=='versus') return _status.mode!='three';
|
||||||
|
return true;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//神邓艾
|
||||||
|
dctuoyu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:['phaseUseBegin','phaseUseEnd']},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h')>0&&player.getStorage('dctuoyu').length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var hs=player.getCards('h'),tags=['dctuoyu_fengtian','dctuoyu_qingqu','dctuoyu_junshan'];
|
||||||
|
var storage=player.getStorage('dctuoyu');
|
||||||
|
var list=[
|
||||||
|
['未分配手牌(对话框较长,请下滑操作)',[]],
|
||||||
|
['丰田(伤害/回复值+1)',[]],
|
||||||
|
['清渠(无次数和距离限制)',[]],
|
||||||
|
['峻山(不可被响应)',[]],
|
||||||
|
];
|
||||||
|
for(var card of hs){
|
||||||
|
var added=false;
|
||||||
|
for(var i=0;i<tags.length;i++){
|
||||||
|
if(card.hasGaintag(tags[i]+'_tag')){
|
||||||
|
added=true;
|
||||||
|
list[i+1][1].push(card);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!added) list[0][1].push(card);
|
||||||
|
}
|
||||||
|
for(var row of list){
|
||||||
|
for(var i=0;i<tags.length;i++){
|
||||||
|
if(!storage.contains(tags[i])){
|
||||||
|
list[i+1][0]=get.translation(tags[i])+'(尚未激活)';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var next=player.chooseToMove('拓域:请分配你的手牌',true);
|
||||||
|
next.set('list',list);
|
||||||
|
next.set('filterMove',function(from,to,moved){
|
||||||
|
var storage=_status.event.player.getStorage('dctuoyu'),tags=['dctuoyu_fengtian','dctuoyu_qingqu','dctuoyu_junshan'];
|
||||||
|
if(typeof to=='number'){
|
||||||
|
if(to==0) return true;
|
||||||
|
return storage.contains(tags[to-1])&&moved[to].length<5;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
next.set('processAI',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var storage=player.getStorage('dctuoyu'),tags=['dctuoyu_fengtian','dctuoyu_qingqu','dctuoyu_junshan'];
|
||||||
|
var moved=[[],[],[],[]]
|
||||||
|
var isEmpty=function(to){
|
||||||
|
return storage.contains(tags[to-1])&&moved[to].length<5;
|
||||||
|
}
|
||||||
|
var hs=player.getCards('h');
|
||||||
|
var hs2=hs.slice(0);
|
||||||
|
var usable=player.getCardUsable('sha');
|
||||||
|
var addTo=function(card,to){
|
||||||
|
if(isEmpty(to)){
|
||||||
|
hs2.remove(card);
|
||||||
|
moved[to].push(card);
|
||||||
|
if(get.name(card)=='sha'&&to!=2) usable--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var hasRuanshizi=game.hasPlayer(function(target){
|
||||||
|
return target!=player&&player.canUse('sha',target,null,true)&&!target.mayHaveShan()&&get.attitude(player,target)<0&&get.effect(target,{name:'sha'},player,player)>0;
|
||||||
|
})
|
||||||
|
for(var card of hs){
|
||||||
|
var name=get.name(card);
|
||||||
|
if(name=='tao'||name=='jiu'){
|
||||||
|
addTo(card,1);
|
||||||
|
}
|
||||||
|
else if(name=='sha'){
|
||||||
|
if(hasRuanshizi&&isEmpty(1)&&usable>0) addTo(card,1);
|
||||||
|
else if(isEmpty(3)&&usable>0) addTo(card,3);
|
||||||
|
else addTo(card,2);
|
||||||
|
}
|
||||||
|
else if(get.type(name)=='trick'){
|
||||||
|
if(isEmpty(1)&&get.tag(card,'damage')>0&&player.hasUseTarget(card)) addTo(card,1);
|
||||||
|
else addTo(card,3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
moved[0].addArray(hs2);
|
||||||
|
return moved;
|
||||||
|
})
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
game.broadcastAll(function(moved,player){
|
||||||
|
var tags=['dctuoyu_fengtian','dctuoyu_qingqu','dctuoyu_junshan'];
|
||||||
|
var cards=[];
|
||||||
|
for(var i=0;i<moved.length;i++){
|
||||||
|
for(var card of moved[i]){
|
||||||
|
cards.unshift(card);
|
||||||
|
for(var j=0;j<tags.length;j++){
|
||||||
|
if(i==j+1){
|
||||||
|
if(!card.hasGaintag(tags[j]+'_tag')) card.addGaintag(tags[j]+'_tag');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(card.hasGaintag(tags[j]+'_tag')) card.removeGaintag(tags[j]+'_tag');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(player==game.me){
|
||||||
|
game.addVideo('lose',game.me,[get.cardsInfo(cards),[],[],[]]);
|
||||||
|
for(var i=0;i<cards.length;i++){
|
||||||
|
cards[i].goto(ui.special);
|
||||||
|
}
|
||||||
|
game.me.directgain(cards,false);
|
||||||
|
}
|
||||||
|
},result.moved,player);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
content:'已激活的副区域:$',
|
||||||
|
},
|
||||||
|
group:'dctuoyu_effect',
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
mod:{
|
||||||
|
targetInRange:function(card,player,target){
|
||||||
|
if(!card.cards) return;
|
||||||
|
for(var i of card.cards){
|
||||||
|
if(i.hasGaintag('dctuoyu_qingqu_tag')) return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(!card.cards) return;
|
||||||
|
for(var i of card.cards){
|
||||||
|
if(i.hasGaintag('dctuoyu_qingqu_tag')) return Infinity;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
var tags=['dctuoyu_fengtian_tag','dctuoyu_qingqu_tag','dctuoyu_junshan_tag'],card=event.card;
|
||||||
|
return player.hasHistory('lose',function(evt){
|
||||||
|
if(evt.getParent()!=event) return false;
|
||||||
|
for(var i in evt.gaintag_map){
|
||||||
|
for(var tag of evt.gaintag_map[i]){
|
||||||
|
if(tags.contains(tag)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var tags=['dctuoyu_fengtian_tag','dctuoyu_qingqu_tag','dctuoyu_junshan_tag'],card=trigger.card;
|
||||||
|
player.hasHistory('lose',function(evt){
|
||||||
|
if(evt.getParent()!=trigger) return false;
|
||||||
|
for(var i in evt.gaintag_map){
|
||||||
|
tags.removeArray(evt.gaintag_map[i]);
|
||||||
|
}
|
||||||
|
return tags.length==0;
|
||||||
|
});
|
||||||
|
if(!tags.contains('dctuoyu_fengtian_tag')){
|
||||||
|
if(get.tag(card,'damage')>0||get.tag(card,'recover')>0){
|
||||||
|
trigger.baseDamage++;
|
||||||
|
game.log(card,'的伤害值/回复值+1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!tags.contains('dctuoyu_qingqu_tag')){
|
||||||
|
if(trigger.addCount!==false){
|
||||||
|
trigger.addCount=false;
|
||||||
|
var stat=player.getStat('card');
|
||||||
|
if(stat[card.name]&&stat[card.name]>0) stat[card.name]--;
|
||||||
|
game.log(card,'不计入次数限制');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!tags.contains('dctuoyu_junshan_tag')){
|
||||||
|
game.log(card,'不可被响应');
|
||||||
|
trigger.directHit.addArray(game.filterPlayer());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcxianjin:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player,name){
|
||||||
|
var key=(name=='damageEnd'?'damage':'sourceDamage');
|
||||||
|
return player.getAllHistory(key).indexOf(event)%2==1;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var tags=['dctuoyu_fengtian','dctuoyu_qingqu','dctuoyu_junshan'];
|
||||||
|
tags.removeArray(player.getStorage('dctuoyu'));
|
||||||
|
if(!tags.length){
|
||||||
|
player.draw(player.isMaxHandcard()?1:3);
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
else if(tags.length==1){
|
||||||
|
event._result={control:tags[0]};
|
||||||
|
}
|
||||||
|
else player.chooseControl(tags).set('prompt','险峻:选择激活一个副区域标签');
|
||||||
|
'step 1'
|
||||||
|
var control=result.control;
|
||||||
|
game.log(player,'激活了副区域','#y'+get.translation(control));
|
||||||
|
player.markAuto('dctuoyu',[control]);
|
||||||
|
player.popup(get.translation(control+'_tag'));
|
||||||
|
if(player.isMaxHandcard()) player.draw();
|
||||||
|
else player.draw(player.getStorage('dctuoyu').length)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcqijing:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
juexingji:true,
|
||||||
|
derivation:'dccuixin',
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'orange',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getStorage('dctuoyu').length==3;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.awakenSkill('dcqijing');
|
||||||
|
player.loseMaxHp();
|
||||||
|
'step 1'
|
||||||
|
if(game.countPlayer()>2){
|
||||||
|
player.chooseTarget(true,'请选择一名要更换座次的角色,将自己移动到该角色的上家位置',function(card,player,target){
|
||||||
|
return target!=player&&target!=player.next;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var current=_status.currentPhase.next;
|
||||||
|
var max=20,att=0;
|
||||||
|
while(max>0){
|
||||||
|
max--;
|
||||||
|
if(current==target) return att;
|
||||||
|
att-=get.attitude(player,current);
|
||||||
|
current=current.next;
|
||||||
|
}
|
||||||
|
return att;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else event.goto(3);
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
game.broadcastAll(function(target1,target2){
|
||||||
|
game.swapSeat(target1,target2,null,true);
|
||||||
|
},player,target);
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
player.addSkill('dccuixin');
|
||||||
|
player.insertPhase();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dccuixin:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.skill=='dccuixin') return false;
|
||||||
|
if(event.targets.length==0) return false;
|
||||||
|
if(get.type(event.card,false)=='delay'||get.type(event.card,false)=='equip') return false;
|
||||||
|
var card={
|
||||||
|
name:event.card.name,
|
||||||
|
nature:event.card.nature,
|
||||||
|
isCard:true,
|
||||||
|
}
|
||||||
|
for(var target of event.targets){
|
||||||
|
var targetx;
|
||||||
|
if(target==player.getNext()) targetx=player.getPrevious();
|
||||||
|
else if(target==player.getPrevious()) targetx=player.getNext();
|
||||||
|
else continue;
|
||||||
|
if(lib.filter.targetEnabled2(card,targetx,player)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var card={
|
||||||
|
name:trigger.card.name,
|
||||||
|
nature:trigger.card.nature,
|
||||||
|
isCard:true,
|
||||||
|
};
|
||||||
|
event.card=card;
|
||||||
|
var list=trigger.targets.filter(target=>{
|
||||||
|
var targetx;
|
||||||
|
if(target==player.getNext()) targetx=player.getPrevious();
|
||||||
|
else if(target==player.getPrevious()) targetx=player.getNext();
|
||||||
|
else return false;
|
||||||
|
if(lib.filter.targetEnabled2(card,targetx,player)) return true;
|
||||||
|
}).map(target=>{
|
||||||
|
return target==player.getPrevious()?player.getNext():player.getPrevious();
|
||||||
|
});
|
||||||
|
if(list.length==1){
|
||||||
|
event.target=list[0];
|
||||||
|
player.chooseBool('摧心:是否再视为对'+get.translation(list[0])+'使用'+get.translation(card)+'?').set('goon',get.effect(list[0],card,player,player)>0).set('ai',()=>_status.event.goon);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.chooseTarget('摧心:是否再视为对上家或下家使用'+get.translation(card)+'?','操作提示:从上家或下家中选择一名角色作为使用目标',function(card,player,target){
|
||||||
|
return (target==player.getNext()||target==player.getPrevious())&&lib.filter.targetEnabled2(_status.event.getParent().card,target,player);
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,_status.event.getParent().card,player,player)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=event.target||result.targets[0];
|
||||||
|
player.useCard(card,target,false,'dccuixin');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
//海外神吕蒙
|
//海外神吕蒙
|
||||||
twshelie:{
|
twshelie:{
|
||||||
audio:'shelie',
|
audio:'shelie',
|
||||||
|
@ -6875,7 +7193,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
twgongxin:'攻心',
|
twgongxin:'攻心',
|
||||||
twgongxin2:'攻心',
|
twgongxin2:'攻心',
|
||||||
twgongxin_info:'出牌阶段限一次。你可以观看一名其他角色的手牌,然后你可以展示其中一张牌并选择一项:1.弃置此牌;2.将此牌置于牌堆顶。若该角色手牌中的花色数因此减少,你选择一种颜色,其于本回合不能使用或打出该颜色的牌。',
|
twgongxin_info:'出牌阶段限一次。你可以观看一名其他角色的手牌,然后你可以展示其中一张牌并选择一项:1.弃置此牌;2.将此牌置于牌堆顶。若该角色手牌中的花色数因此减少,你选择一种颜色,其于本回合不能使用或打出该颜色的牌。',
|
||||||
|
shen_dengai:'神邓艾',
|
||||||
|
dctuoyu:'拓域',
|
||||||
|
dctuoyu_fengtian:'丰田',
|
||||||
|
dctuoyu_qingqu:'清渠',
|
||||||
|
dctuoyu_junshan:'峻山',
|
||||||
|
dctuoyu_fengtian_tag:'<span data-nature="woodmm">丰田</span>',
|
||||||
|
dctuoyu_qingqu_tag:'<span data-nature="watermm">清渠</span>',
|
||||||
|
dctuoyu_junshan_tag:'<span data-nature="thundermm">峻山</span>',
|
||||||
|
dctuoyu_info:'①锁定技。当你使用拥有对应副区域标签的牌时,你令此牌获得对应效果。<br>丰田:伤害值或回复值+1;清渠:无次数和距离限制;峻山:不可被响应。②出牌阶段开始时和结束时,你给你的手牌分配对应的已激活副区域标签(每个区域至多五张)。',
|
||||||
|
dcxianjin:'险进',
|
||||||
|
dcxianjin_info:'锁定技。当你造成或受到伤害后,若这是你本局游戏内第偶数次造成或受到伤害,则你激活一个副区域标签并摸X张牌(X为你已激活的副区域数,若你的手牌数为全场最多则改为摸一张牌)。',
|
||||||
|
dcqijing:'奇径',
|
||||||
|
dcqijing_info:'觉醒技。一名角色的回合结束后,若你的三个副区域标签均被激活,则你减1点体力上限,将座位移动至一名其他角色的上家之后,获得〖摧心〗和一个额外回合。',
|
||||||
|
dccuixin:'摧心',
|
||||||
|
dccuixin_info:'当你不因此技能使用的基本牌或普通锦囊牌结算结束后,若此牌的目标包含你的上家或下家,则你可以视为对下家或上家再使用一张牌名和元素相同的牌。',
|
||||||
|
|
||||||
extra_feng:'神话再临·风',
|
extra_feng:'神话再临·风',
|
||||||
extra_huo:'神话再临·火',
|
extra_huo:'神话再临·火',
|
||||||
|
@ -6888,7 +7220,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
extra_mobilezhi:'始计篇·智',
|
extra_mobilezhi:'始计篇·智',
|
||||||
extra_mobilexin:'始计篇·信',
|
extra_mobilexin:'始计篇·信',
|
||||||
extra_offline:'神话再临·线下',
|
extra_offline:'神话再临·线下',
|
||||||
extra_decade:'十周年服神将',
|
extra_decade:'神·武',
|
||||||
extra_tw:'海外服神将',
|
extra_tw:'海外服神将',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
connect:true,
|
connect:true,
|
||||||
characterSort:{
|
characterSort:{
|
||||||
mobile:{
|
mobile:{
|
||||||
mobile_default:["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"],
|
mobile_default:["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","old_wanglang"],
|
||||||
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'],
|
||||||
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
|
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
|
||||||
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'],
|
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'],
|
||||||
|
@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mobile_shijiyan:['sp_cuiyan','sp_zhangchangpu','sp_jiangwan','sp_jiangqing','sp_lvfan','sp_huangfusong','sp_zhujun','liuba'],
|
mobile_shijiyan:['sp_cuiyan','sp_zhangchangpu','sp_jiangwan','sp_jiangqing','sp_lvfan','sp_huangfusong','sp_zhujun','liuba'],
|
||||||
mobile_sunben:["re_sunben"],
|
mobile_sunben:["re_sunben"],
|
||||||
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
|
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","re_caiwenji","re_xunyu","re_dianwei","xin_zhoutai","re_yanwen"],
|
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong","re_caiwenji","re_xunyu","re_dianwei","xin_zhoutai","re_yanwen",'re_zhangzhang'],
|
||||||
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai","re_gaoshun",'re_caozhi'],
|
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai","re_gaoshun",'re_caozhi'],
|
||||||
mobile_yijiang2:["xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui","re_bulianshi"],
|
mobile_yijiang2:["xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui","re_bulianshi"],
|
||||||
mobile_yijiang3:["re_liru","xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
|
mobile_yijiang3:["re_liru","xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
|
||||||
|
@ -26,6 +26,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
re_zhangzhang:['male','wu',3,['rezhijian','guzheng']],
|
||||||
|
qianzhao:['male','wei',4,['mbshihe','mbzhenfu'],['unseen']],
|
||||||
|
old_wanglang:['male','wei',3,['gushe','jici']],
|
||||||
re_yanwen:["male","qun",4,["reshuangxiong"]],
|
re_yanwen:["male","qun",4,["reshuangxiong"]],
|
||||||
xin_zhoutai:['male','wu',4,['buqu','new_fenji']],
|
xin_zhoutai:['male','wu',4,['buqu','new_fenji']],
|
||||||
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
|
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
|
||||||
|
@ -187,6 +190,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
|
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
qianzhao:'牵招(?—231年),字子经,安平郡观津县(今河北省武邑县)人。三国时期曹魏名将。牵招早年师从乐隐,与刘备成为刎颈之交。投靠冀州牧袁绍,担任冀州从事,统领乌丸突骑。袁绍死后,跟随冀州刺史袁尚,受到并州牧高干加害,投奔丞相曹操,授军谋掾。从平乌丸,出任护乌丸校尉。举茂才出身,从平汉中,授中护军。拜平虏校尉,平定东莱郡叛乱。魏文帝曹丕时期,授护鲜卑校尉,驻扎昌平,迁右中郎将、雁门太守,遏制鲜卑轲比能发展壮大。魏明帝即位,赐爵关内侯,营救护乌丸校尉田豫。太和五年,去世。',
|
||||||
fuqian:'傅佥[qiān] ( ? ~263年),义阳(治今湖北省枣阳市)人,蜀汉将领傅彤之子,三国时期蜀汉名将。金长于谋略,并颇有胆勇,姜维甚爱之。傅佥官至关中都督。魏国攻伐蜀汉时,傅佥和蒋舒防守阳安关,兵败战死。',
|
fuqian:'傅佥[qiān] ( ? ~263年),义阳(治今湖北省枣阳市)人,蜀汉将领傅彤之子,三国时期蜀汉名将。金长于谋略,并颇有胆勇,姜维甚爱之。傅佥官至关中都督。魏国攻伐蜀汉时,傅佥和蒋舒防守阳安关,兵败战死。',
|
||||||
wangjun:'王濬(207年~286年),字士治,小名阿童,弘农郡湖县(今河南省灵宝市阌乡)人。西晋时期名将。王濬出身世家,博学多闻,容颜英俊,多谋善战。举秀才出身,起家河东郡从事。泰始八年(272年),担任广汉太守,平定益州叛乱,迁益州刺史。利用长江上游地势之利,修造战船,组建强大的水军。上书晋武帝,促成晋灭吴之战。咸宁六年(280年),率兵顺流而下,熔毁横江铁链,攻克丹阳郡,率先攻取石头城,接受吴末帝孙皓投降,完成西晋统一大业。凭借功勋,拜辅国将军、步兵校尉,册封襄阳侯。为避猜忌,纵情享受,累迁特进、抚军大将军、开府仪同三司、散骑常侍、后军将军等。太康六年十二月(286年1月18日),王濬去世,享年八十岁,谥号为“武”,安葬于柏谷山。',
|
wangjun:'王濬(207年~286年),字士治,小名阿童,弘农郡湖县(今河南省灵宝市阌乡)人。西晋时期名将。王濬出身世家,博学多闻,容颜英俊,多谋善战。举秀才出身,起家河东郡从事。泰始八年(272年),担任广汉太守,平定益州叛乱,迁益州刺史。利用长江上游地势之利,修造战船,组建强大的水军。上书晋武帝,促成晋灭吴之战。咸宁六年(280年),率兵顺流而下,熔毁横江铁链,攻克丹阳郡,率先攻取石头城,接受吴末帝孙皓投降,完成西晋统一大业。凭借功勋,拜辅国将军、步兵校尉,册封襄阳侯。为避猜忌,纵情享受,累迁特进、抚军大将军、开府仪同三司、散骑常侍、后军将军等。太康六年十二月(286年1月18日),王濬去世,享年八十岁,谥号为“武”,安葬于柏谷山。',
|
||||||
yangfu:'杨阜(172年—244年),字义山,汉天水冀县(今甘谷县东南)人。三国时期曹魏名臣。汉献帝建安初年,任凉州从事,旋拜安定长史;韦康任刺史后辟为别驾,改任州参军;后因讨马超有功,赐爵关内侯。曹操征汉中时,杨阜担任益州刺史,回来后又担任武都太守。魏明帝时,由将作大匠改少府。杨阜不但卓识远见,而且刚正不阿,敢于直言,对朝廷弊政多有诤谏,六次进言谏魏明帝应勤政爱民,魏明帝对他颇有敬畏之心。杨阜勤政廉洁,在宫内担任少府时,专管宝器、珍膳、衣物等,而他死后则家无馀财。皇帝让杨阜的孙子杨豹继任了少府之职。原甘谷县文昌宫西侧有杨氏家祠,内悬“两代尚书”匾额。',
|
yangfu:'杨阜(172年—244年),字义山,汉天水冀县(今甘谷县东南)人。三国时期曹魏名臣。汉献帝建安初年,任凉州从事,旋拜安定长史;韦康任刺史后辟为别驾,改任州参军;后因讨马超有功,赐爵关内侯。曹操征汉中时,杨阜担任益州刺史,回来后又担任武都太守。魏明帝时,由将作大匠改少府。杨阜不但卓识远见,而且刚正不阿,敢于直言,对朝廷弊政多有诤谏,六次进言谏魏明帝应勤政爱民,魏明帝对他颇有敬畏之心。杨阜勤政廉洁,在宫内担任少府时,专管宝器、珍膳、衣物等,而他死后则家无馀财。皇帝让杨阜的孙子杨豹继任了少府之职。原甘谷县文昌宫西侧有杨氏家祠,内悬“两代尚书”匾额。',
|
||||||
|
@ -613,13 +617,110 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
simashi:function(mode){
|
simashi:function(mode){
|
||||||
return !['boss','chess','tafang','stone','versus'].contains(mode);
|
if(['boss','chess','tafang','stone'].contains(mode)) return false;
|
||||||
|
if(mode=='versus') return _status.mode!='three';
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
sp_jianggan:function(mode){
|
sp_jianggan:function(mode){
|
||||||
return mode!='identity'&&mode!='guozhan';
|
return mode!='identity'&&mode!='guozhan';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//牵招
|
||||||
|
mbshihe:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
return game.hasPlayer(current=>player.canCompare(current));
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return player.canCompare(target);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseToCompare(target);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
target.addTempSkill('mbshihe_prevent',{player:'phaseAfter'});
|
||||||
|
target.markAuto('mbshihe_prevent',[player]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var cards=player.getCards('he',card=>{
|
||||||
|
return lib.filter.cardDiscardable(card,player,'mbshihe');
|
||||||
|
});
|
||||||
|
if(cards.length>0) player.discard(cards.randomGet());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:6,
|
||||||
|
result:{
|
||||||
|
player:function(player,target){
|
||||||
|
if((get.realAttitude||get.attitude)(target,player)>=0||get.damageEffect(player,target,player)>=0) return 0;
|
||||||
|
var card=player.getCards('h').sort(function(a,b){
|
||||||
|
return get.number(b)-get.number(a);
|
||||||
|
})[0];
|
||||||
|
return get.number(card)>=10||get.number(card)>=7&&target.countCards('h')<=2?1:-1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
prevent:{
|
||||||
|
trigger:{source:'damageBegin2'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getStorage('mbshihe_prevent').contains(event.player);
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.cancel();
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
marktext:'吓',
|
||||||
|
intro:{
|
||||||
|
content:function(storage,player){
|
||||||
|
var targets=storage.filter(i=>i.isIn());
|
||||||
|
return '被'+get.translation(targets)+'吓到了,对他'+(targets.length>1?'们':'')+'打不出伤害';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
player:function(card,player,target,current){
|
||||||
|
if(get.tag(card,'damage')&&player.getStorage('mbshihe_prevent').contains(target)) return 'zeroplayertarget';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mbzhenfu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hasHistory('lose',evt=>{
|
||||||
|
return evt.type=='discard';
|
||||||
|
});
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('mbzhenfu'),'令一名其他角色获得1点护甲',(card,player,target)=>{
|
||||||
|
return target!=player&&target.hujia<5;
|
||||||
|
}).set('ai',target=>{
|
||||||
|
return Math.max(0,get.threaten(target))*get.attitude(_status.event.player,target);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('mbzhenfu',target);
|
||||||
|
target.changeHujia(1,null,true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
},
|
||||||
|
},
|
||||||
//☆胃炎
|
//☆胃炎
|
||||||
mbguli:{
|
mbguli:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -1708,6 +1809,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
return game.countPlayer()>2;
|
||||||
|
},
|
||||||
filterTarget:lib.filter.notMe,
|
filterTarget:lib.filter.notMe,
|
||||||
selectTarget:2,
|
selectTarget:2,
|
||||||
multitarget:true,
|
multitarget:true,
|
||||||
|
@ -3276,7 +3380,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(to.countMark('spshidi')%2==1) return distance+1;
|
if(to.countMark('spshidi')%2==1) return distance+1;
|
||||||
},
|
},
|
||||||
aiOrder:function(player,card,num){
|
aiOrder:function(player,card,num){
|
||||||
if(from.countMark('spshidi')%2==0&&card.name=='sha'&&get.color(card)=='black') return num+0.1;
|
if(player.countMark('spshidi')%2==0&&card.name=='sha'&&get.color(card)=='black') return num+0.1;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mark:true,
|
mark:true,
|
||||||
|
@ -15696,7 +15800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
targetInRange:function(card,player){
|
targetInRange:function(card,player){
|
||||||
var type=get.type2(card);
|
var type=get.type2(card);
|
||||||
if(player.getStorage('xinfu_qianchong_effect').contains(type)) return Infinity;
|
if(player.getStorage('xinfu_qianchong_effect').contains(type)) return true;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -18733,6 +18837,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mbaosi_info:'锁定技。当你于出牌阶段对一名攻击范围内的角色造成伤害后,你于此阶段对其使用牌无次数限制。',
|
mbaosi_info:'锁定技。当你于出牌阶段对一名攻击范围内的角色造成伤害后,你于此阶段对其使用牌无次数限制。',
|
||||||
xin_zhoutai:'手杀周泰',
|
xin_zhoutai:'手杀周泰',
|
||||||
re_yanwen:"手杀颜良文丑",
|
re_yanwen:"手杀颜良文丑",
|
||||||
|
old_wanglang:'旧王朗',
|
||||||
|
qianzhao:'牵招',
|
||||||
|
mbshihe:'势吓',
|
||||||
|
mbshihe_info:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你造成伤害时,取消之;没赢,你随机弃置一张牌。',
|
||||||
|
mbzhenfu:'镇抚',
|
||||||
|
mbzhenfu_info:'结束阶段,若你本回合因弃置失去过牌,你可以令一名其他角色获得1点护甲。',
|
||||||
|
|
||||||
mobile_standard:'手杀异构·标准包',
|
mobile_standard:'手杀异构·标准包',
|
||||||
mobile_shenhua:'手杀异构·神话再临',
|
mobile_shenhua:'手杀异构·神话再临',
|
||||||
|
|
|
@ -13,10 +13,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
offline_piracyE:['shen_jiaxu','pe_wangyun','pe_zhonghui','pe_sunchen','pe_mengda','pe_wenqin','ns_caoanmin','jiangfei','chendong','jiangqing','kongrong','jiling','tianfeng','mateng'],
|
offline_piracyE:['shen_jiaxu','pe_wangyun','pe_zhonghui','pe_sunchen','pe_mengda','pe_wenqin','ns_caoanmin','jiangfei','chendong','jiangqing','kongrong','jiling','tianfeng','mateng'],
|
||||||
offline_piracyS:['ns_jiaxu','longyufei','ps_guanyu','ps1059_guojia','ps2070_guojia','ps2063_zhaoyun','ps2067_zhaoyun','ps1062_zhouyu','ps2080_zhouyu','ps_caozhi','ps_jin_simayi','ps_caopi','ps_simayi','ps2068_simayi','ps_machao','ps_zhugeliang','ps2066_zhugeliang','ps_jiaxu','ps_lvbu','ps_shen_machao','jsp_liubei'],
|
offline_piracyS:['ns_jiaxu','longyufei','ps_guanyu','ps1059_guojia','ps2070_guojia','ps2063_zhaoyun','ps2067_zhaoyun','ps1062_zhouyu','ps2080_zhouyu','ps_caozhi','ps_jin_simayi','ps_caopi','ps_simayi','ps2068_simayi','ps_machao','ps_zhugeliang','ps2066_zhugeliang','ps_jiaxu','ps_lvbu','ps_shen_machao','jsp_liubei'],
|
||||||
offline_piracyK:['pk_sp_duyu'],
|
offline_piracyK:['pk_sp_duyu'],
|
||||||
|
offline_vtuber:['vtb_xiaosha','vtb_xiaoshan','vtb_xiaotao','vtb_xiaole','vtb_xiaojiu'],
|
||||||
//offline_others:[""],
|
//offline_others:[""],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
vtb_xiaosha:['female','qun',4,['vtbguisha','vtbshuli']],
|
||||||
|
vtb_xiaoshan:['female','qun',4,['vtbshanwu','vtbxianli']],
|
||||||
|
vtb_xiaotao:['female','qun',4,['vtbtaoyan','vtbyanli']],
|
||||||
|
vtb_xiaole:['female','qun',4,['vtbleyu','vtbyuanli']],
|
||||||
|
vtb_xiaojiu:['female','qun',4,['vtbmeiniang','vtbyaoli']],
|
||||||
jsrg_liuhong:['male','qun',4,['jsrgchaozheng','jsrgshenchong','jsrgjulian'],['zhu']],
|
jsrg_liuhong:['male','qun',4,['jsrgchaozheng','jsrgshenchong','jsrgjulian'],['zhu']],
|
||||||
jsrg_hejin:['male','qun',4,['jsrgzhaobing','jsrgzhuhuan','jsrgyanhuo']],
|
jsrg_hejin:['male','qun',4,['jsrgzhaobing','jsrgzhuhuan','jsrgyanhuo']],
|
||||||
jsrg_sunjian:['male','qun',4,['jsrgpingtao','jsrgjuelie']],
|
jsrg_sunjian:['male','qun',4,['jsrgpingtao','jsrgjuelie']],
|
||||||
|
@ -104,6 +110,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
pk_sp_duyu:'杜预(222年-285年),字元凯,京兆郡杜陵县(今陕西西安)人,中国魏晋时期军事家、经学家、律学家,曹魏散骑常侍杜恕之子。杜预初仕曹魏,任尚书郎,后成为权臣司马昭的幕僚,封丰乐亭侯。西晋建立后,历任河南尹、安西军司、秦州刺史、度支尚书等职。咸宁四年(278年)接替羊祜出任镇南大将军,镇守荆州。他积极备战,支持晋武帝司马炎对孙吴作战,并在咸宁五年(279年)成为晋灭吴之战的统帅之一。战后因功进封当阳县侯,仍镇荆州。太康五年(285年),杜预被征入朝,拜司隶校尉,途中于邓县逝世,终年六十三岁。获赠征南大将军、开府仪同三司,谥号为成。杜预耽思经籍,博学多通,多有建树,时誉为“杜武库”。著有《春秋左氏传集解》及《春秋释例》等。为明朝之前唯一一个同时进入文庙和武庙之人。',
|
pk_sp_duyu:'杜预(222年-285年),字元凯,京兆郡杜陵县(今陕西西安)人,中国魏晋时期军事家、经学家、律学家,曹魏散骑常侍杜恕之子。杜预初仕曹魏,任尚书郎,后成为权臣司马昭的幕僚,封丰乐亭侯。西晋建立后,历任河南尹、安西军司、秦州刺史、度支尚书等职。咸宁四年(278年)接替羊祜出任镇南大将军,镇守荆州。他积极备战,支持晋武帝司马炎对孙吴作战,并在咸宁五年(279年)成为晋灭吴之战的统帅之一。战后因功进封当阳县侯,仍镇荆州。太康五年(285年),杜预被征入朝,拜司隶校尉,途中于邓县逝世,终年六十三岁。获赠征南大将军、开府仪同三司,谥号为成。杜预耽思经籍,博学多通,多有建树,时誉为“杜武库”。著有《春秋左氏传集解》及《春秋释例》等。为明朝之前唯一一个同时进入文庙和武庙之人。',
|
||||||
ps_shen_machao:'字孟起,扶风茂陵人。面如冠玉,目如流星,虎体猿臂,彪腹狼腰,声雄力猛。因衣着讲究,举止非凡,故人称“锦马超”。麾铁骑,捻金枪。',
|
ps_shen_machao:'字孟起,扶风茂陵人。面如冠玉,目如流星,虎体猿臂,彪腹狼腰,声雄力猛。因衣着讲究,举止非凡,故人称“锦马超”。麾铁骑,捻金枪。',
|
||||||
qiaoxuan:'桥玄(110年-184年6月6日),一作乔玄,字公祖。梁国睢阳县(今河南省商丘市睢阳区)人。东汉时期名臣。桥玄年轻时曾任睢阳县功曹,因坚持追究陈国相羊昌的恶行而闻名。后被举为孝廉,历任洛阳左尉、齐相及上谷、汉阳太守、司徒长史、将作大匠。汉桓帝末年,出任度辽将军,击败鲜卑、南匈奴、高句丽侵扰,保境安民。汉灵帝初年,迁任河南尹、少府、大鸿胪。建宁三年(170年),迁司空。次年,拜司徒。光和元年(178年),升任太尉。桥玄有感于国势日衰,于是称病请辞,改任太中大夫。光和七年(184年),桥玄去世,年七十五。桥玄性格刚强,不阿权贵,待人谦俭,尽管屡历高官,但不因为自己处在高位而有所私请。他为官清廉,去世后连下葬的钱都没有,被时人称为名臣。',
|
qiaoxuan:'桥玄(110年-184年6月6日),一作乔玄,字公祖。梁国睢阳县(今河南省商丘市睢阳区)人。东汉时期名臣。桥玄年轻时曾任睢阳县功曹,因坚持追究陈国相羊昌的恶行而闻名。后被举为孝廉,历任洛阳左尉、齐相及上谷、汉阳太守、司徒长史、将作大匠。汉桓帝末年,出任度辽将军,击败鲜卑、南匈奴、高句丽侵扰,保境安民。汉灵帝初年,迁任河南尹、少府、大鸿胪。建宁三年(170年),迁司空。次年,拜司徒。光和元年(178年),升任太尉。桥玄有感于国势日衰,于是称病请辞,改任太中大夫。光和七年(184年),桥玄去世,年七十五。桥玄性格刚强,不阿权贵,待人谦俭,尽管屡历高官,但不因为自己处在高位而有所私请。他为官清廉,去世后连下葬的钱都没有,被时人称为名臣。',
|
||||||
|
xiaosha:'2021年「虚拟天团」Vtuber企划中推出的虚拟偶像之一,该企划原定培养12位虚拟偶像,然而企划由于各方面原因暴死,现虚拟偶像仅存在于各武将的皮肤中。<br>设定上为三国杀新手菜鸡,误打误撞参加了三国杀组织的《三国之星》选秀大赛,没想到一路靠着颜值和风风火火的爽快性格过关斩将吸粉无数,获得了冠军,成为官方签约的形象代言人。<br>小杀现于B站还存在<style type="text/css">#slash_bilibili:link, #slash_bilibili:visited {color:white;}</style><a id="slash_bilibili" href="https://space.bilibili.com/686179867" target="_blank">对应账号</a>,但早已荒废。',
|
||||||
|
xiaoshan:'2021年「虚拟天团」Vtuber企划中推出的虚拟偶像之一,该企划原定培养12位虚拟偶像,然而企划由于各方面原因暴死,现虚拟偶像仅存在于各武将的皮肤中。<br>设定上为小杀同系不同班的同学,由于本身性格比较安静,所以和风风火火的小杀有些不对盘。知道小杀也玩三国杀后,外表高冷、内心傲娇的她偷偷也去玩了游戏,立志要在游戏里碾压她。<br>小闪对应B站账号已销号。',
|
||||||
|
xiaotao:'2021年「虚拟天团」Vtuber企划中推出的虚拟偶像之一,该企划原定培养12位虚拟偶像,然而企划由于各方面原因暴死,现虚拟偶像仅存在于各武将的皮肤中。<br>设定上为小杀的亲妹妹,陪姐姐去拍摄代言宣传照的时候,被导演看中,觉得三国美貌姐妹花是非常好的噱头,于是一并签下。正所谓“三国姐妹花,永远不分家!”。<br>小桃对应B站账号已销号。',
|
||||||
|
xiaole:'2021年「虚拟天团」Vtuber企划中推出的虚拟偶像之一,该企划原定培养12位虚拟偶像,然而企划由于各方面原因暴死,现虚拟偶像仅存在于各武将的皮肤中。<br>设定上小乐家与小桃小杀家是世交,三人从小就认识。和小闪是同班同学,小乐很喜欢安静的小闪。和小酒是小杀介绍认识的,大家都是打三国杀的网友,在打游戏时候比较依赖小酒——躺赢人躺赢魂,躺赢都是人上人。<br>小乐对应B站账号已销号。',
|
||||||
|
xiaojiu:'2021年「虚拟天团」Vtuber企划中推出的虚拟偶像之一,该企划原定培养12位虚拟偶像,然而企划由于各方面原因暴死,现虚拟偶像仅存在于各武将的皮肤中。<br>设定上为非人类,是一只年龄成迷的神兽,真身是白泽。是小杀网上玩游戏认识的网友,爱好是喝酒,和小杀也有好酒友的关系。<br>小酒对应B站账号已销号。',
|
||||||
},
|
},
|
||||||
characterTitle:{
|
characterTitle:{
|
||||||
jsp_liubei:'S1019',
|
jsp_liubei:'S1019',
|
||||||
|
@ -155,6 +166,438 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//天书乱斗虚拟偶像线下化
|
||||||
|
//小杀
|
||||||
|
vtbguisha:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{global:'useCard'},
|
||||||
|
direct:true,
|
||||||
|
shaRelated:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player!=player&&event.card.name=='sha'&&player.countCards('he')>0&&event.player.isPhaseUsing();
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var go=false,d1=true;
|
||||||
|
if(get.attitude(player,trigger.player)>0){
|
||||||
|
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
||||||
|
for(var target of trigger.targets){
|
||||||
|
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
|
target:target,
|
||||||
|
card:trigger.card,
|
||||||
|
},true)){
|
||||||
|
if(!target.hasSkill('gangzhi')) d1=false;
|
||||||
|
if(target.hasSkillTag('filterDamage',null,{
|
||||||
|
player:trigger.player,
|
||||||
|
card:trigger.card,
|
||||||
|
})||get.attitude(player,target)>=0) d1=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(trigger.addCount===false||!trigger.player.isPhaseUsing()) go=false;
|
||||||
|
else if(!trigger.player.hasSkill('paoxiao')&&
|
||||||
|
!trigger.player.hasSkill('tanlin3')&&
|
||||||
|
!trigger.player.hasSkill('zhaxiang2')&&
|
||||||
|
!trigger.player.hasSkill('fengnu')&&
|
||||||
|
!trigger.player.getEquip('zhuge')){
|
||||||
|
var nh=trigger.player.countCards('h');
|
||||||
|
if(player==trigger.player){
|
||||||
|
go=(player.countCards('h','sha')>0);
|
||||||
|
}
|
||||||
|
else if(nh>=4){
|
||||||
|
go=true;
|
||||||
|
}
|
||||||
|
else if(player.countCards('h','sha')){
|
||||||
|
if(nh==3){
|
||||||
|
go=Math.random()<0.8;
|
||||||
|
}
|
||||||
|
else if(nh==2){
|
||||||
|
go=Math.random()<0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(nh>=3){
|
||||||
|
if(nh==3){
|
||||||
|
go=Math.random()<0.5;
|
||||||
|
}
|
||||||
|
else if(nh==2){
|
||||||
|
go=Math.random()<0.2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
go=go*Math.random()+d1*Math.random()>0.4;
|
||||||
|
//AI停顿
|
||||||
|
if(go&&!event.isMine()&&!event.isOnline()&&player.hasCard(function(card){
|
||||||
|
return get.value(card)<6&&lib.filter.cardDiscardable(card,player,event.name);
|
||||||
|
},'he')){
|
||||||
|
game.delayx();
|
||||||
|
}
|
||||||
|
var next=player.chooseToDiscard(get.prompt('vtbguisha'),'弃置一张牌,令'+get.translation(trigger.player)+'本次使用的【杀】不计入使用次数,且对'+get.translation(trigger.targets)+'造成的伤害+1','he');
|
||||||
|
next.logSkill=['vtbguisha',trigger.player];
|
||||||
|
next.set('ai',function(card){
|
||||||
|
if(_status.event.go){
|
||||||
|
return 6-get.value(card);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
next.set('go',go);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
if(trigger.addCount!==false){
|
||||||
|
trigger.addCount=false;
|
||||||
|
trigger.player.getStat().card.sha--;
|
||||||
|
}
|
||||||
|
trigger.player.addTempSkill('vtbguisha_bonus');
|
||||||
|
if(!trigger.card.storage) trigger.card.storage={};
|
||||||
|
trigger.card.storage.vtbguisha_targets=trigger.targets;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
bonus:{
|
||||||
|
trigger:{
|
||||||
|
source:'damageBegin1',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card&&event.card.name=='sha'&&event.card.storage&&event.card.storage.vtbguisha_targets&&event.card.storage.vtbguisha_targets.contains(event.player);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vtbshuli:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
global:'damageSource',
|
||||||
|
},
|
||||||
|
usable:2,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.source!=player&&event.card&&event.card.name=='sha'&&event.source.isIn();
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.source)>=0||
|
||||||
|
get.attitude(player,event.source)>=-4&&get.distance(_status.currentPhase,player,'absolute')>get.distance(_status.currentPhase,trigger.source,'absolute')
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var drawers=[trigger.source,player].sortBySeat(_status.currentPhase);
|
||||||
|
game.asyncDraw(drawers);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//小闪
|
||||||
|
vtbshanwu:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
global:'useCardToTarget',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='sha'&&event.target!=player&&event.isFirstTarget&&player.hasCard(card=>{
|
||||||
|
return get.name(card)=='shan'||_status.connectMode;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseToDiscard(get.prompt('vtbshanwu'),'弃置一张【闪】,取消此【杀】对'+get.translation(trigger.targets)+'的目标',{name:'shan'}).set('logSkill','vtbshanwu').set('ai',card=>{
|
||||||
|
if(_status.event.goon) return 6-get.value(card);
|
||||||
|
return 0;
|
||||||
|
}).set('goon',function(){
|
||||||
|
var effect=0;
|
||||||
|
for(var target of trigger.targets){
|
||||||
|
var eff=get.effect(target,trigger.card,trigger.player,player);
|
||||||
|
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
|
target:target,
|
||||||
|
card:trigger.card,
|
||||||
|
},true)){
|
||||||
|
eff*=1.25;
|
||||||
|
}
|
||||||
|
if(target.hp<=2) eff*=1.1;
|
||||||
|
effect+=eff;
|
||||||
|
}
|
||||||
|
return effect<0;
|
||||||
|
}());
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
game.log(player,'取消了',trigger.card,'的所有目标');
|
||||||
|
trigger.targets.length=0;
|
||||||
|
trigger.getParent().triggeredTargets2.length=0;
|
||||||
|
trigger.untrigger();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vtbxianli:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
player:'loseAfter',
|
||||||
|
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
||||||
|
},
|
||||||
|
usable:2,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!_status.currentPhase||!_status.currentPhase.isIn()||!_status.currentPhase.countGainableCards(player,'he')) return false;
|
||||||
|
var evt=event.getl(player);
|
||||||
|
return evt&&evt.cards2&&evt.cards2.some(card=>{
|
||||||
|
return get.name(card,false)=='shan';
|
||||||
|
});
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.effect(_status.currentPhase,{name:'shunshou_copy2'},player,player)>0;
|
||||||
|
},
|
||||||
|
prompt2:function(event,player){
|
||||||
|
return '获得'+get.translation(_status.currentPhase)+'的一张牌';
|
||||||
|
},
|
||||||
|
logTarget:()=>_status.currentPhase,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.gainPlayerCard(_status.currentPhase,'he',true);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.15,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//小桃
|
||||||
|
vtbtaoyan:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
player:'phaseBegin',
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
if(!_status.vtbtaoyan_count){
|
||||||
|
_status.vtbtaoyan_count=5;
|
||||||
|
}
|
||||||
|
player.chooseTarget(get.prompt('vtbtaoyan'),'令一或两名其他角色摸一张牌并从游戏外获得一张【桃】(♥6)',lib.filter.notMe,[1,2]).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.recoverEffect(target,player,player)/2+get.attitude(player,target);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var targets=result.targets.slice();
|
||||||
|
targets.sortBySeat();
|
||||||
|
player.logSkill('vtbtaoyan',targets);
|
||||||
|
game.broadcastAll(function(){
|
||||||
|
if(!lib.inpile.contains('tao')){
|
||||||
|
lib.inpile.add('tao');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
player.addSkill('vtbtaoyan_remove');
|
||||||
|
for(var target of targets){
|
||||||
|
target.draw();
|
||||||
|
if(!_status.vtbtaoyan_count) continue;
|
||||||
|
if(!_status.vtbtaoyan_cards) _status.vtbtaoyan_cards=[];
|
||||||
|
_status.vtbtaoyan_count--;
|
||||||
|
var card=game.createCard('tao','heart',6);
|
||||||
|
_status.vtbtaoyan_cards.push(card.cardid);
|
||||||
|
target.gain(card,'gain2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.3,
|
||||||
|
threaten:3.2,
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
remove:{
|
||||||
|
trigger:{
|
||||||
|
global:['loseAfter','loseAsyncAfter','cardsDiscardAfter','equipAfter'],
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
|
popup:false,
|
||||||
|
firstDo:true,
|
||||||
|
forceDie:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(typeof _status.vtbtaoyan_count!='number') return false;
|
||||||
|
var cards=event.getd();
|
||||||
|
return cards.some(card=>{
|
||||||
|
return _status.vtbtaoyan_cards.contains(card.cardid);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var cards=trigger.getd(),remove=[];
|
||||||
|
for(var card of cards){
|
||||||
|
if(_status.vtbtaoyan_cards.contains(card.cardid)){
|
||||||
|
_status.vtbtaoyan_cards.remove(card.cardid);
|
||||||
|
remove.push(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(remove.length){
|
||||||
|
remove.forEach(i=>{
|
||||||
|
i.remove();
|
||||||
|
_status.vtbtaoyan_count++;
|
||||||
|
});
|
||||||
|
game.log(remove,'被移出了游戏');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vtbyanli:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
global:'dying',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.hasSkill('vtbyanli_used')) return false;
|
||||||
|
if(_status.currentPhase==player) return false;
|
||||||
|
return event.player.hp<=0;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.recoverEffect(event.player,player,player)>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.addTempSkill('vtbyanli_used','roundStart');
|
||||||
|
trigger.player.recover(1-trigger.player.hp);
|
||||||
|
trigger.player.draw();
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
used:{
|
||||||
|
charlotte:true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//小乐
|
||||||
|
vtbleyu:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{
|
||||||
|
global:'phaseBegin',
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('he')>=3;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseToDiscard(get.prompt2('vtbleyu',trigger.player),3,'he').set('ai',card=>{
|
||||||
|
if(ui.selected.cards.length==2) return 10-get.value(card);
|
||||||
|
if(_status.event.effect>0){
|
||||||
|
return 6-get.value(card);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}).set('effect',trigger.player.hasJudge('lebu')?0:get.effect(trigger.player,{name:'lebu'},player,player)).set('logSkill',['vtbleyu',trigger.player]);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
trigger.player.judge(lib.card.lebu.judge).judge2=lib.card.lebu.judge2;
|
||||||
|
} else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(!result.bool){
|
||||||
|
trigger.player.skip('phaseUse');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.3,
|
||||||
|
threaten:2.9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
vtbyuanli:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{global:['phaseUseSkipped','phaseUseCancelled']},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt2('vtbyuanli'),lib.filter.notMe).set('ai',target=>get.attitude(_status.event.player,target)+1);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('vtbyuanli',result.targets[0]);
|
||||||
|
game.asyncDraw([player,result.targets[0]].sortBySeat(_status.currentPhase));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
vtbmeiniang:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{global:'phaseUseBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player!=player;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.player)>0&&event.player.getUseValue('jiu')>=0;
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
trigger.player.chooseUseTarget('jiu',true,false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vtbyaoli:{
|
||||||
|
audio:1,
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='jiu'&&event.player!=player&&event.player.isPhaseUsing();
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.player)>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.player.addTempSkill('vtbyaoli_effect');
|
||||||
|
trigger.player.addMark('vtbyaoli_effect',1,false);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.15,
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
audio:'vtbyaoli',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{player:'useCard2'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
onremove:true,
|
||||||
|
nopop:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='sha'&&player.countMark('vtbyaoli_effect')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
trigger.directHit.addArray(game.filterPlayer());
|
||||||
|
var num=player.countMark('vtbyaoli_effect');
|
||||||
|
if(!game.hasPlayer(current=>{
|
||||||
|
return !trigger.targets.contains(current)&&lib.filter.targetEnabled2(trigger.card,player,current);
|
||||||
|
})) event.finish();
|
||||||
|
else player.chooseTarget('媱丽:是否为'+get.translation(trigger.card)+'额外指定'+(num>1?'至多':'')+get.cnNumber(num)+'个目标?',num==1?1:[1,num],(card,player,target)=>{
|
||||||
|
return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target);
|
||||||
|
}).set('sourcex',trigger.targets).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,_status.event.card,player,player);
|
||||||
|
}).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'
|
||||||
|
player.logSkill('vtbyaoli_effect',event.targets);
|
||||||
|
trigger.targets.addArray(event.targets);
|
||||||
|
player.removeSkill('vtbyaoli_effect');
|
||||||
|
},
|
||||||
|
marktext:'媱',
|
||||||
|
intro:{
|
||||||
|
content:'下一张【杀】不可被响应且可以额外指定&个目标',
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
directHit_ai:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
return arg.card.name=='sha';
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
//江山如故·起
|
//江山如故·起
|
||||||
sbyingmen:{
|
sbyingmen:{
|
||||||
forbid:['guozhan'],
|
forbid:['guozhan'],
|
||||||
|
@ -1113,9 +1556,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var targets=game.filterPlayer(current=>{
|
var targets=game.filterPlayer(current=>{
|
||||||
return current.group==target.group&¤t!=player;
|
return current.group==target.group&¤t!=player;
|
||||||
});
|
});
|
||||||
return targets.reduce((p,c)=>{
|
var eff=targets.reduce((p,c)=>{
|
||||||
return p+get.effect(c,{name:'guohe'},player,player);
|
return p+get.effect(c,{name:'guohe'},player,player);
|
||||||
})+get.value(ui.selected.cards[0],target);
|
})
|
||||||
|
if(ui.selected.cards.length) eff+=get.value(ui.selected.cards[0],target);
|
||||||
|
return eff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8525,6 +8970,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbyingmen_info:'锁定技。①游戏开始时,你将武将牌堆中随机四张武将牌置于你的武将牌上,称为“访客”。②回合开始时,若你的“访客”数小于4,你随机从武将牌堆中将“访客”补至四张。',
|
sbyingmen_info:'锁定技。①游戏开始时,你将武将牌堆中随机四张武将牌置于你的武将牌上,称为“访客”。②回合开始时,若你的“访客”数小于4,你随机从武将牌堆中将“访客”补至四张。',
|
||||||
sbpingjian:'评鉴',
|
sbpingjian:'评鉴',
|
||||||
sbpingjian_info:'你可以于满足你“访客”上的一个无技能标签或仅有锁定技标签的技能条件的时机发动此技能,然后你选择移去一张“访客”。若移去的是本次发动技能的“访客”,则你于此技能结算结束时摸一张牌。',
|
sbpingjian_info:'你可以于满足你“访客”上的一个无技能标签或仅有锁定技标签的技能条件的时机发动此技能,然后你选择移去一张“访客”。若移去的是本次发动技能的“访客”,则你于此技能结算结束时摸一张牌。',
|
||||||
|
vtb_xiaosha:'小杀',
|
||||||
|
vtbguisha:'瑰杀',
|
||||||
|
vtbguisha_info:'当其他角色使用【杀】时,你可以弃置一张牌令此【杀】不计入次数,且此【杀】对目标角色造成的伤害+1。',
|
||||||
|
vtbshuli:'淑丽',
|
||||||
|
vtbshuli_info:'每回合限两次。当其他角色使用【杀】造成伤害后,你可以与其各摸一张牌。',
|
||||||
|
vtb_xiaoshan:'小闪',
|
||||||
|
vtbshanwu:'闪舞',
|
||||||
|
vtbshanwu_info:'当其他角色成为【杀】的第一个目标时,你可以弃置一张【闪】,然后取消此【杀】的所有目标。',
|
||||||
|
vtbxianli:'娴丽',
|
||||||
|
vtbxianli_info:'每回合限两次。当你失去牌后,若其中有【闪】,你可以获得当前回合角色的一张牌。',
|
||||||
|
vtb_xiaotao:'小桃',
|
||||||
|
vtbtaoyan:'桃宴',
|
||||||
|
vtbtaoyan_info:'回合开始时,你可以令至多两名其他角色摸一张牌并于游戏外获得一张【桃】(共五张且均为♥6)。',
|
||||||
|
vtbyanli:'妍丽',
|
||||||
|
vtbyanli_info:'每轮限一次。一名角色于你的回合外进入濒死状态时,你可以令其回复至1点体力,然后其摸一张牌。',
|
||||||
|
vtb_xiaole:'小乐',
|
||||||
|
vtbleyu:'乐虞',
|
||||||
|
vtbleyu_info:'一名角色的回合开始时,你可以弃置三张牌令其判定。若结果不为♥,其跳过本回合的出牌阶段。',
|
||||||
|
vtbyuanli:'媛丽',
|
||||||
|
vtbyuanli_info:'一名角色跳过出牌阶段后,你可以与一名其他角色各摸一张牌。',
|
||||||
|
vtb_xiaojiu:'小酒',
|
||||||
|
vtbmeiniang:'美酿',
|
||||||
|
vtbmeiniang_info:'其他角色的出牌阶段开始时,你可以令其视为使用一张无次数限制且不计入次数的【酒】。',
|
||||||
|
vtbyaoli:'媱丽',
|
||||||
|
vtbyaoli_info:'其他角色于其出牌阶段内使用【酒】后,你可以令其于本回合内使用的下一张【杀】不能被响应且可以额外指定一个目标。',
|
||||||
|
|
||||||
offline_star:'桌游志·SP',
|
offline_star:'桌游志·SP',
|
||||||
offline_sticker:'桌游志·贴纸',
|
offline_sticker:'桌游志·贴纸',
|
||||||
|
@ -8534,6 +9004,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
offline_feihongyingxue:'飞鸿映雪',
|
offline_feihongyingxue:'飞鸿映雪',
|
||||||
offline_piracyE:'官盗E系列·战役篇',
|
offline_piracyE:'官盗E系列·战役篇',
|
||||||
offline_piracyS:'官盗S系列',
|
offline_piracyS:'官盗S系列',
|
||||||
|
offline_vtuber:'天书乱斗·虚拟偶像',
|
||||||
offline_piracyK:'官盗K系列',
|
offline_piracyK:'官盗K系列',
|
||||||
offline_others:'线下其他系列',
|
offline_others:'线下其他系列',
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan",'old_caorui'],
|
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan",'old_caorui'],
|
||||||
old_yijiang5:["old_caoxiu","old_zhuzhi"],
|
old_yijiang5:["old_caoxiu","old_zhuzhi"],
|
||||||
old_yijiang67:["ol_zhangrang","ol_liuyu",'old_huanghao','old_liyan'],
|
old_yijiang67:["ol_zhangrang","ol_liuyu",'old_huanghao','old_liyan'],
|
||||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","old_wangyun",'ol_wanglang','old_dingfeng'],
|
old_sp:["old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","old_wangyun",'old_dingfeng'],
|
||||||
old_yingbian:['junk_simayi','old_yangyan','old_yangzhi'],
|
old_yingbian:['junk_simayi','old_yangyan','old_yangzhi'],
|
||||||
old_mobile:["old_caochun",'old_majun'],
|
old_mobile:["old_caochun",'old_majun'],
|
||||||
},
|
},
|
||||||
|
@ -30,7 +30,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
junk_sunquan:['male','shen',4,['dili','yuheng'],['wei']],
|
junk_sunquan:['male','shen',4,['dili','yuheng'],['wei']],
|
||||||
old_dingfeng:['male','wu',4,['fenxun','duanbing']],
|
old_dingfeng:['male','wu',4,['fenxun','duanbing']],
|
||||||
old_huanghao:['male','shu',3,['oldqinqing','oldhuisheng']],
|
old_huanghao:['male','shu',3,['oldqinqing','oldhuisheng']],
|
||||||
ol_wanglang:['male','wei',3,['gushe','jici']],
|
|
||||||
oldre_liubiao:['male','qun',3,['zishou','zongshi']],
|
oldre_liubiao:['male','qun',3,['zishou','zongshi']],
|
||||||
old_liubiao:['male','qun',4,['oldzishou','zongshi']],
|
old_liubiao:['male','qun',4,['oldzishou','zongshi']],
|
||||||
old_gaoshun:['male','qun',4,['xianzhen','jinjiu']],
|
old_gaoshun:['male','qun',4,['xianzhen','jinjiu']],
|
||||||
|
@ -73,7 +72,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
old_lingtong:['male','wu',4,['oldxuanfeng']],
|
old_lingtong:['male','wu',4,['oldxuanfeng']],
|
||||||
old_caoxiu:['male','wei',4,['taoxi']],
|
old_caoxiu:['male','wei',4,['taoxi']],
|
||||||
old_caozhen:['male','wei',4,['sidi']],
|
old_caozhen:['male','wei',4,['sidi']],
|
||||||
old_lingju:['female','qun',3,['jieyuan','fenxin_old']],
|
|
||||||
old_maliang:['male','shu',3,['xiemu','naman']],
|
old_maliang:['male','shu',3,['xiemu','naman']],
|
||||||
old_chenqun:['male','wei',3,['dingpin','oldfaen']],
|
old_chenqun:['male','wei',3,['dingpin','oldfaen']],
|
||||||
old_zhuhuan:['male','wu',4,['youdi']],
|
old_zhuhuan:['male','wu',4,['youdi']],
|
||||||
|
@ -88,11 +86,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ol_liuyu:['male','qun',2,['zongzuo','zhige']],
|
ol_liuyu:['male','qun',2,['zongzuo','zhige']],
|
||||||
old_guanqiujian:["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]],
|
old_guanqiujian:["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]],
|
||||||
},
|
},
|
||||||
characterFilter:{
|
|
||||||
old_lingju:function(mode){
|
|
||||||
return mode=='identity';
|
|
||||||
}
|
|
||||||
},
|
|
||||||
skill:{
|
skill:{
|
||||||
oldqinqing:{
|
oldqinqing:{
|
||||||
audio:'qinqing',
|
audio:'qinqing',
|
||||||
|
@ -952,7 +945,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
old_zhuran:'旧朱然',
|
old_zhuran:'旧朱然',
|
||||||
old_caoxiu:'旧曹休',
|
old_caoxiu:'旧曹休',
|
||||||
old_caozhen:'旧曹真',
|
old_caozhen:'旧曹真',
|
||||||
old_lingju:'旧灵雎',
|
|
||||||
old_maliang:'旧马良',
|
old_maliang:'旧马良',
|
||||||
old_chenqun:'旧陈群',
|
old_chenqun:'旧陈群',
|
||||||
old_zhuhuan:'旧朱桓',
|
old_zhuhuan:'旧朱桓',
|
||||||
|
@ -1018,7 +1010,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
oldre_liubiao_ab:'刘表',
|
oldre_liubiao_ab:'刘表',
|
||||||
oldzishou:'自守',
|
oldzishou:'自守',
|
||||||
oldzishou_info:'摸牌阶段,若你已受伤,你可令额定摸牌数+X(X为你已损失的体力值),然后跳过下一个出牌阶段。',
|
oldzishou_info:'摸牌阶段,若你已受伤,你可令额定摸牌数+X(X为你已损失的体力值),然后跳过下一个出牌阶段。',
|
||||||
ol_wanglang:'OL王朗',
|
|
||||||
old_huanghao:'旧黄皓',
|
old_huanghao:'旧黄皓',
|
||||||
oldqinqing:'寝情',
|
oldqinqing:'寝情',
|
||||||
oldqinqing_info:'结束阶段,你可以选择一名攻击范围内含有主公的其他角色,然后你弃置该角色的一张牌(无牌则不弃),并令其摸一张牌。若该角色的手牌数大于主公,你摸一张牌。',
|
oldqinqing_info:'结束阶段,你可以选择一名攻击范围内含有主公的其他角色,然后你弃置该角色的一张牌(无牌则不弃),并令其摸一张牌。若该角色的手牌数大于主公,你摸一张牌。',
|
||||||
|
|
|
@ -120,6 +120,7 @@ window.noname_character_rank={
|
||||||
'key_yuuki',
|
'key_yuuki',
|
||||||
'db_key_liyingxia',
|
'db_key_liyingxia',
|
||||||
'key_kiyu',
|
'key_kiyu',
|
||||||
|
'wu_zhugeliang',
|
||||||
],
|
],
|
||||||
a:[
|
a:[
|
||||||
'diy_zaozhirenjun',
|
'diy_zaozhirenjun',
|
||||||
|
@ -298,6 +299,7 @@ window.noname_character_rank={
|
||||||
'zerong',
|
'zerong',
|
||||||
'wangguan',
|
'wangguan',
|
||||||
'duanqiaoxiao',
|
'duanqiaoxiao',
|
||||||
|
'old_wanglang',
|
||||||
'key_misuzu',
|
'key_misuzu',
|
||||||
'key_sunohara',
|
'key_sunohara',
|
||||||
'key_umi',
|
'key_umi',
|
||||||
|
@ -707,6 +709,7 @@ window.noname_character_rank={
|
||||||
'xf_tangzi',
|
'xf_tangzi',
|
||||||
'liuzan',
|
'liuzan',
|
||||||
'lingcao',
|
'lingcao',
|
||||||
|
'sunyang',
|
||||||
'sunru',
|
'sunru',
|
||||||
'lifeng',
|
'lifeng',
|
||||||
'zhangyì',
|
'zhangyì',
|
||||||
|
@ -912,6 +915,15 @@ window.noname_character_rank={
|
||||||
'sunhong',
|
'sunhong',
|
||||||
'zhangjinyun',
|
'zhangjinyun',
|
||||||
'dc_mengda',
|
'dc_mengda',
|
||||||
|
'xiaoyuehankehan',
|
||||||
|
'zhutiexiong',
|
||||||
|
'shen_dengai',
|
||||||
|
'libai',
|
||||||
|
'tw_gongsunfan',
|
||||||
|
'yue_caiwenji',
|
||||||
|
'vtb_xiaole',
|
||||||
|
'vtb_xiaojiu',
|
||||||
|
'ol_zhangzhang',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
|
@ -1186,7 +1198,6 @@ window.noname_character_rank={
|
||||||
'xia_xushu',
|
'xia_xushu',
|
||||||
'clan_hanrong',
|
'clan_hanrong',
|
||||||
'clan_hanshao',
|
'clan_hanshao',
|
||||||
'dc_fuwan',
|
|
||||||
'ns_duji',
|
'ns_duji',
|
||||||
'yj_weiyan',
|
'yj_weiyan',
|
||||||
'dc_sunziliufang',
|
'dc_sunziliufang',
|
||||||
|
@ -1196,6 +1207,11 @@ window.noname_character_rank={
|
||||||
'xia_xiahouzie',
|
'xia_xiahouzie',
|
||||||
'xielingyu',
|
'xielingyu',
|
||||||
'ol_yanwen',
|
'ol_yanwen',
|
||||||
|
'sp_mushun',
|
||||||
|
'tw_yangang',
|
||||||
|
'sb_zhurong',
|
||||||
|
'vtb_xiaoshan',
|
||||||
|
'vtb_xiaotao',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
@ -1381,6 +1397,9 @@ window.noname_character_rank={
|
||||||
'wuanguo',
|
'wuanguo',
|
||||||
'qiaorui',
|
'qiaorui',
|
||||||
'clan_wukuang',
|
'clan_wukuang',
|
||||||
|
'yeshiwen',
|
||||||
|
'qianzhao',
|
||||||
|
'vtb_xiaosha',
|
||||||
],
|
],
|
||||||
c:[
|
c:[
|
||||||
'xiahoudun',
|
'xiahoudun',
|
||||||
|
|
|
@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
refresh_feng:['caoren','ol_xiahouyuan','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji','ol_huangzhong'],
|
refresh_feng:['caoren','ol_xiahouyuan','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji','ol_huangzhong'],
|
||||||
refresh_huo:["ol_sp_zhugeliang","ol_xunyu","ol_dianwei","ol_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
refresh_huo:["ol_sp_zhugeliang","ol_xunyu","ol_dianwei","ol_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
||||||
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','ol_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu','ol_lusu'],
|
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','ol_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu','ol_lusu'],
|
||||||
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
|
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','ol_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
|
||||||
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','dc_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu','re_chengong'],
|
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','dc_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu','re_chengong'],
|
||||||
refresh_yijiang2:['re_madai','re_wangyi','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao','re_xunyou','re_guanzhang'],
|
refresh_yijiang2:['re_madai','re_wangyi','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao','re_xunyou','re_guanzhang'],
|
||||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng'],
|
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng'],
|
||||||
|
@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
ol_zhangzhang:['male','wu',3,['olzhijian','olguzheng']],
|
||||||
re_jsp_huangyueying:['female','qun',3,['rejiqiao','relinglong']],
|
re_jsp_huangyueying:['female','qun',3,['rejiqiao','relinglong']],
|
||||||
re_zhangsong:['male','shu',3,['qiangzhi','rexiantu']],
|
re_zhangsong:['male','shu',3,['qiangzhi','rexiantu']],
|
||||||
re_zhuzhi:['male','wu',4,['reanguo']],
|
re_zhuzhi:['male','wu',4,['reanguo']],
|
||||||
|
@ -139,7 +140,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ol_jiangwei:['male','shu',4,['oltiaoxin','olzhiji']],
|
ol_jiangwei:['male','shu',4,['oltiaoxin','olzhiji']],
|
||||||
ol_caiwenji:['female','qun',3,['olbeige','duanchang']],
|
ol_caiwenji:['female','qun',3,['olbeige','duanchang']],
|
||||||
ol_liushan:['male','shu',3,['xiangle','olfangquan','olruoyu'],['zhu']],
|
ol_liushan:['male','shu',3,['xiangle','olfangquan','olruoyu'],['zhu']],
|
||||||
re_zhangzhang:['male','wu',3,['rezhijian','guzheng']],
|
|
||||||
|
|
||||||
re_sunce:['male','wu',4,['oljiang','olhunzi','olzhiba'],['zhu']],
|
re_sunce:['male','wu',4,['oljiang','olhunzi','olzhiba'],['zhu']],
|
||||||
re_jianyong:['male','shu',3,['reqiaoshui','jyzongshi']],
|
re_jianyong:['male','shu',3,['reqiaoshui','jyzongshi']],
|
||||||
|
@ -161,6 +161,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_guohuai:['xiahouyuan','zhanghe'],
|
re_guohuai:['xiahouyuan','zhanghe'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//OL界二张
|
||||||
|
olzhijian:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h',{type:'equip'})>0;
|
||||||
|
},
|
||||||
|
filterCard:function(card){
|
||||||
|
return get.type(card)=='equip';
|
||||||
|
},
|
||||||
|
position:'he',
|
||||||
|
check:function(card){
|
||||||
|
var player=_status.currentPhase;
|
||||||
|
if(player.countCards('he',{subtype:get.subtype(card)})>1){
|
||||||
|
return 11-get.equipValue(card);
|
||||||
|
}
|
||||||
|
return 6-get.value(card);
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
if(target.isMin()) return false;
|
||||||
|
return player!=target&&target.canEquip(card,true);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
target.equip(cards[0]);
|
||||||
|
player.draw();
|
||||||
|
},
|
||||||
|
discard:false,
|
||||||
|
prepare:function(cards,player,targets){
|
||||||
|
player.$give(cards,targets[0],false);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
basic:{
|
||||||
|
order:10
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
var card=ui.selected.cards[0];
|
||||||
|
if(card) return get.effect(target,card,target,target);
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
threaten:1.35
|
||||||
|
}
|
||||||
|
},
|
||||||
|
olguzheng:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
global:['loseAfter','loseAsyncAfter'],
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='discard') return false;
|
||||||
|
if(player.hasSkill('olguzheng_used')) return false;
|
||||||
|
return game.hasPlayer(current=>{
|
||||||
|
if(current==player) return false;
|
||||||
|
var evt=event.getl(current);
|
||||||
|
if(!evt||!evt.cards2||evt.cards2.filterInD('d').length<2) return false;
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
checkx:function(event,player,cards){
|
||||||
|
if(cards.length>2||get.attitude(player,event.player)>0) return true;
|
||||||
|
for(var i=0;i<cards.length;i++){
|
||||||
|
if(get.value(cards[i],event.player,'raw')<0) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
preHidden:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var targets=[],cardsList=[];
|
||||||
|
var players=game.filterPlayer().sortBySeat(_status.currentPhase);
|
||||||
|
for(var current of players){
|
||||||
|
if(current==player) continue;
|
||||||
|
var cards=[];
|
||||||
|
var evt=trigger.getl(current);
|
||||||
|
if(!evt||!evt.cards2) continue;
|
||||||
|
var cardsx=evt.cards2.filterInD('d');
|
||||||
|
cards.addArray(cardsx);
|
||||||
|
if(cards.length){
|
||||||
|
targets.push(current);
|
||||||
|
cardsList.push(cards);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event.targets=targets;
|
||||||
|
event.cardsList=cardsList;
|
||||||
|
'step 1'
|
||||||
|
var target=targets.shift();
|
||||||
|
var cards=event.cardsList.shift();
|
||||||
|
event.target=target;
|
||||||
|
event.cards=cards;
|
||||||
|
player.chooseButton(2,[
|
||||||
|
get.prompt('olguzheng',target),
|
||||||
|
'<span class="text center">被选择的牌将成为对方收回的牌</span>',
|
||||||
|
cards,
|
||||||
|
[['获得剩余的牌','放弃剩余的牌'],'tdnodes'],
|
||||||
|
]).set('filterButton',function(button){
|
||||||
|
var type=typeof button.link;
|
||||||
|
if(ui.selected.buttons.length&&type==typeof ui.selected.buttons[0].link) return false;
|
||||||
|
return true;
|
||||||
|
}).set('check',lib.skill.olguzheng.checkx(trigger,player,cards)).set('ai',function(button){
|
||||||
|
if(typeof button.link=='string'){
|
||||||
|
return button.link=='获得剩余的牌'?1:0;
|
||||||
|
}
|
||||||
|
if(_status.event.check){
|
||||||
|
return 20-get.value(button.link,_status.event.getTrigger().player);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}).setHiddenSkill('olguzheng');
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('olguzheng',target);
|
||||||
|
player.addTempSkill('olguzheng_used',['phaseZhunbeiAfter','phaseDrawAfter','phaseJudgeAfter','phaseUseAfter','phaseDiscardAfter','phaseJieshuAfter']);
|
||||||
|
if(typeof result.links[0]!='string') result.links.reverse();
|
||||||
|
var card=result.links[1];
|
||||||
|
target.gain(card,'gain2');
|
||||||
|
if(result.links[0]!='获得剩余的牌') event.finish();
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
var cards=cards.filterInD('d');
|
||||||
|
if(cards.length>0) player.gain(cards,'gain2');
|
||||||
|
'step 4'
|
||||||
|
if(event.targets.length) event.goto(1);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:1.3,
|
||||||
|
expose:0.2
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
used:{
|
||||||
|
charlotte:true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
//SP黄月英
|
//SP黄月英
|
||||||
rejiqiao:{
|
rejiqiao:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -171,7 +306,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseToDiscard(get.prompt2('jiqiao'),[1,player.countCards('he')],'he').set('ai',function(card){
|
player.chooseToDiscard(get.prompt2('rejiqiao'),[1,player.countCards('he')],'he').set('ai',function(card){
|
||||||
if(card.name=='bagua') return 10;
|
if(card.name=='bagua') return 10;
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
}).set('logSkill','rejiqiao');
|
}).set('logSkill','rejiqiao');
|
||||||
|
@ -11054,7 +11189,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target.addTempSkill('new_yijue2');
|
target.addTempSkill('new_yijue2');
|
||||||
event.finish();
|
event.finish();
|
||||||
}
|
}
|
||||||
else{
|
else if(get.color(event.card2)=='red'){
|
||||||
player.gain(event.card2,target,'give','bySelf');
|
player.gain(event.card2,target,'give','bySelf');
|
||||||
if(target.hp<target.maxHp){
|
if(target.hp<target.maxHp){
|
||||||
player.chooseBool('是否让目标回复一点体力?').ai=function(event,player){
|
player.chooseBool('是否让目标回复一点体力?').ai=function(event,player){
|
||||||
|
@ -14083,7 +14218,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rebeige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
|
rebeige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
|
||||||
re_liushan:'手杀刘禅',
|
re_liushan:'手杀刘禅',
|
||||||
re_sunben:'界孙笨',
|
re_sunben:'界孙笨',
|
||||||
re_zhangzhang:'界张昭张纮',
|
re_zhangzhang:'手杀张昭张纮',
|
||||||
rehunzi:'魂姿',
|
rehunzi:'魂姿',
|
||||||
rehunzi_info:'觉醒技,准备阶段,若你的体力值不大于2,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
|
rehunzi_info:'觉醒技,准备阶段,若你的体力值不大于2,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
|
||||||
rezhijian:'直谏',
|
rezhijian:'直谏',
|
||||||
|
@ -14504,6 +14639,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rejiqiao_info:'出牌阶段开始时,你可以弃置任意张牌,然后亮出牌堆顶X张牌(X为你以此法弃置的牌数与其中装备牌数之和),你获得其中所有非装备牌。',
|
rejiqiao_info:'出牌阶段开始时,你可以弃置任意张牌,然后亮出牌堆顶X张牌(X为你以此法弃置的牌数与其中装备牌数之和),你获得其中所有非装备牌。',
|
||||||
relinglong:'玲珑',
|
relinglong:'玲珑',
|
||||||
relinglong_info:'锁定技。若你的装备区:没有防具牌,视为你装备【八卦阵】;没有坐骑牌,你的手牌上限+2;没有宝物牌,你视为拥有〖奇才〗;以上均满足:你使用的【杀】或普通锦囊牌不可被响应。',
|
relinglong_info:'锁定技。若你的装备区:没有防具牌,视为你装备【八卦阵】;没有坐骑牌,你的手牌上限+2;没有宝物牌,你视为拥有〖奇才〗;以上均满足:你使用的【杀】或普通锦囊牌不可被响应。',
|
||||||
|
ol_zhangzhang:'界张昭张纮',
|
||||||
|
olzhijian:'直谏',
|
||||||
|
olzhijian_info:'出牌阶段,你可以将一张装备牌置于其他角色的装备区(可替换原装备),然后摸一张牌。',
|
||||||
|
olguzheng:'固政',
|
||||||
|
olguzheng_info:'每阶段限一次。当其他角色的至少两张牌因弃置而进入弃牌堆后,你可以令其获得其中一张牌,然后你可以获得剩余的牌。',
|
||||||
|
|
||||||
refresh_standard:'界限突破·标',
|
refresh_standard:'界限突破·标',
|
||||||
refresh_feng:'界限突破·风',
|
refresh_feng:'界限突破·风',
|
||||||
|
|
150
character/sb.js
150
character/sb.js
|
@ -35,17 +35,145 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sb_sunce:['male','wu','2/4',['sbjiang','sbhunzi','sbzhiba'],['zhu']],
|
sb_sunce:['male','wu','2/4',['sbjiang','sbhunzi','sbzhiba'],['zhu']],
|
||||||
sb_daqiao:['female','wu',3,['sbguose','sbliuli']],
|
sb_daqiao:['female','wu',3,['sbguose','sbliuli']],
|
||||||
sb_liubiao:['male','qun',3,['sbzishou','sbzongshi']],
|
sb_liubiao:['male','qun',3,['sbzishou','sbzongshi']],
|
||||||
|
sb_zhurong:['female','shu',4,['sblieren','sbjuxiang'],['unseen']],
|
||||||
},
|
},
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sb:{
|
sb:{
|
||||||
sb_zhi:['sb_sunquan','sb_zhouyu','sb_zhangjiao','sb_caocao','sb_zhenji','sb_liubei','sb_daqiao','sb_liubiao'],
|
sb_zhi:['sb_sunquan','sb_zhouyu','sb_zhangjiao','sb_caocao','sb_zhenji','sb_liubei','sb_daqiao','sb_liubiao'],
|
||||||
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_pangtong'],
|
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_diaochan','sb_pangtong'],
|
||||||
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce'],
|
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce','sb_zhurong'],
|
||||||
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning'],
|
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning'],
|
||||||
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_diaochan','sb_yuanshao'],
|
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_yuanshao'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//祝融
|
||||||
|
sblieren:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardToPlayered'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.targets.length==1&&event.card.name=='sha'&&!player.hasSkillTag('noCompareSource')&&event.target!=player&&event.target.countCards('h')>0&&!event.target.hasSkillTag('noCompareTarget');
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.target)<0||game.hasPlayer(current=>{
|
||||||
|
return get.damageEffect(current,player,player)>0;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
shaRelated:true,
|
||||||
|
logTarget:'target',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.draw();
|
||||||
|
'step 1'
|
||||||
|
if(player.canCompare(trigger.target)) player.chooseToCompare(trigger.target);
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
player.addTempSkill('sblieren_damage');
|
||||||
|
if(!trigger.card.storage) trigger.card.storage={};
|
||||||
|
trigger.card.storage.sblieren=[player,trigger.target];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
damage:{
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='sha'&&event.card.storage&&event.card.storage.sblieren&&event.card.storage.sblieren[0]==player&&game.hasPlayer(current=>{
|
||||||
|
return !event.card.storage.sblieren.contains(current);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
charlotte:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var target=trigger.card.storage.sblieren[1];
|
||||||
|
player.chooseTarget('烈刃:是否对除'+get.translation(target)+'外的一名其他角色造成1点伤害?',(card,player,target)=>{
|
||||||
|
return target!=_status.event.targeted&&target!=player;
|
||||||
|
}).set('targeted',target);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('sblieren_damage',target);
|
||||||
|
target.damage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sbjuxiang:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:'phaseJieshuBegin',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return !player.hasHistory('useCard',evt=>evt.card.name=='nanman')&&(!_status.sbjuxiang_nanman||_status.sbjuxiang_nanman.length);
|
||||||
|
},
|
||||||
|
group:['sbjuxiang_cancel','sbjuxiang_gain'],
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
if(!_status.sbjuxiang_nanman){
|
||||||
|
_status.sbjuxiang_nanman=[];
|
||||||
|
var numbers=[7,9,11,13],suits=['spade','club'];
|
||||||
|
for(var num of numbers){
|
||||||
|
for(var suit of suits){
|
||||||
|
_status.sbjuxiang_nanman.push({name:'nanman',number:num,suit:suit});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.broadcastAll(function(){
|
||||||
|
if(!lib.inpile.contains('nanman')){
|
||||||
|
lib.inpile.add('nanman');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
player.chooseTarget(get.prompt('sbjuxiang'),'将游戏外的随机一张【南蛮入侵】交给一名角色(剩余'+get.cnNumber(_status.sbjuxiang_nanman.length)+'张)').set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
return Math.max(0,target.getUseValue({name:'nanman'}))*get.attitude(player,target)*(target==player?0.5:1);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('sbjuxiang',target);
|
||||||
|
if(!_status.sbjuxiang_nanman.length) return;
|
||||||
|
var info=_status.sbjuxiang_nanman.randomRemove();
|
||||||
|
var card=game.createCard2(info);
|
||||||
|
target.gain(card,'gain2').giver=player;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.05,
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(card.name=='nanman') return [0,1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
cancel:{
|
||||||
|
audio:'sbjuxiang',
|
||||||
|
trigger:{target:'useCardToBefore'},
|
||||||
|
forced:true,
|
||||||
|
priority:15,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='nanman';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.cancel();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gain:{
|
||||||
|
audio:'sbjuxiang',
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='nanman'&&event.player!=player&&event.cards.filterInD().length;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.gain(trigger.cards.filterInD(),'gain2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
//阿笨
|
//阿笨
|
||||||
sbjiang:{
|
sbjiang:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -150,6 +278,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return event.filterCard(get.autoViewAs({name:'juedou'},hs));
|
return event.filterCard(get.autoViewAs({name:'juedou'},hs));
|
||||||
},
|
},
|
||||||
|
ai:{order:0.001},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -377,12 +506,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
threaten:0.5,
|
threaten:0.5,
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
|
if(player._sbzongshi_aiChecking) return;
|
||||||
if(!get.tag(card,'damage')) return;
|
if(!get.tag(card,'damage')) return;
|
||||||
var cards=player.getCards('h');
|
var cards=player.getCards('h');
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
|
player._sbzongshi_aiChecking=true;
|
||||||
var value=cards.reduce((p,c)=>{
|
var value=cards.reduce((p,c)=>{
|
||||||
return p+get.value(c);
|
return p+get.value(c);
|
||||||
});
|
},0);
|
||||||
|
delete player._sbzongshi_aiChecking;
|
||||||
if(cards.length>5||value>5*cards.length) return [1,0,0,-cards.length/2];
|
if(cards.length>5||value>5*cards.length) return [1,0,0,-cards.length/2];
|
||||||
return [1,0,0,-0.5];
|
return [1,0,0,-0.5];
|
||||||
}
|
}
|
||||||
|
@ -2531,7 +2663,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.logSkill('sbhujia',target);
|
player.logSkill('sbhujia',target);
|
||||||
player.addTempSkill('sbhujia_used','roundStart');
|
player.addTempSkill('sbhujia_used','roundStart');
|
||||||
trigger.cancel();
|
trigger.cancel();
|
||||||
target.damage(trigger.source,trigger.nature,trigger.num).set('card',trigger.card).set('cards',trigger.cards);
|
if(trigger.source) target.damage(trigger.source,trigger.nature,trigger.num).set('card',trigger.card).set('cards',trigger.cards);
|
||||||
|
else target.damage('nosource',trigger.nature,trigger.num).set('card',trigger.card).set('cards',trigger.cards);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -4338,12 +4471,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbguose:'国色',
|
sbguose:'国色',
|
||||||
sbguose_info:'出牌阶段限四次。你可以选择一项:1.将一张♦牌当【乐不思蜀】使用;2.弃置场上一张【乐不思蜀】。然后你摸一张牌并弃置一张牌。',
|
sbguose_info:'出牌阶段限四次。你可以选择一项:1.将一张♦牌当【乐不思蜀】使用;2.弃置场上一张【乐不思蜀】。然后你摸一张牌并弃置一张牌。',
|
||||||
sbliuli:'流离',
|
sbliuli:'流离',
|
||||||
sbliuli_info:'当你成为【杀】的目标时,你可以弃置一张牌并选择你攻击范围内的一名不为此【杀】使用者的角色,将此【杀】转移给该角色。若你以此法弃置了♥牌,则你可以令一命不为此【杀】使用者的其他角色获得“流离”标记,且移去场上所有其他的“流离”(每回合限一次)。有“流离”的角色回合开始时,其移去其“流离”并执行一个额外的出牌阶段。',
|
sbliuli_info:'当你成为【杀】的目标时,你可以弃置一张牌并选择你攻击范围内的一名不为此【杀】使用者的角色,将此【杀】转移给该角色。若你以此法弃置了♥牌,则你可以令一名不为此【杀】使用者的其他角色获得“流离”标记,且移去场上所有其他的“流离”(每回合限一次)。有“流离”的角色回合开始时,其移去其“流离”并执行一个额外的出牌阶段。',
|
||||||
sb_liubiao:'谋刘表',
|
sb_liubiao:'谋刘表',
|
||||||
sbzishou:'自守',
|
sbzishou:'自守',
|
||||||
sbzishou_info:'锁定技。其他角色的结束阶段,若其与你于本局游戏内均未对对方造成过伤害,其须交给你一张牌。',
|
sbzishou_info:'锁定技。其他角色的结束阶段,若其与你于本局游戏内均未对对方造成过伤害,其须交给你一张牌。',
|
||||||
sbzongshi:'宗室',
|
sbzongshi:'宗室',
|
||||||
sbzongshi_info:'锁定技。每名角色限一次。当你受到伤害后,你令伤害来源弃置所有手牌。',
|
sbzongshi_info:'锁定技。每名角色限一次。当你受到伤害后,你令伤害来源弃置所有手牌。',
|
||||||
|
sb_zhurong:'谋祝融',
|
||||||
|
sblieren:'烈刃',
|
||||||
|
sblieren_info:'当你使用【杀】指定唯一目标后,你可以摸一张牌并与其拼点。若你赢,此【杀】结算结束后,你可以对另一名其他角色造成1点伤害。',
|
||||||
|
sbjuxiang:'巨象',
|
||||||
|
sbjuxiang_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】结算结束后,你获得此牌对应的所有实体牌。③结束阶段,若你未于本回合使用过【南蛮入侵】,你可以将一张游戏外的随机【南蛮入侵】(共八张)交给一名角色。',
|
||||||
|
|
||||||
sb_zhi:'谋攻篇·知',
|
sb_zhi:'谋攻篇·知',
|
||||||
sb_shi:'谋攻篇·识',
|
sb_shi:'谋攻篇·识',
|
||||||
|
|
|
@ -971,7 +971,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
'1':{
|
'1':{
|
||||||
audio:2,
|
audio:'drlt_qianjie',
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'linkBegin'
|
player:'linkBegin'
|
||||||
},
|
},
|
||||||
|
@ -7730,7 +7730,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
|
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
|
||||||
liushan:['ol_liushan','re_liushan','liushan'],
|
liushan:['ol_liushan','re_liushan','liushan'],
|
||||||
sunce:['re_sunben','re_sunce','sunce'],
|
sunce:['re_sunben','re_sunce','sunce'],
|
||||||
zhangzhang:['re_zhangzhang','zhangzhang'],
|
zhangzhang:['ol_zhangzhang','re_zhangzhang','zhangzhang'],
|
||||||
zuoci:['re_zuoci','zuoci'],
|
zuoci:['re_zuoci','zuoci'],
|
||||||
caiwenji:['ol_caiwenji','re_caiwenji','caiwenji'],
|
caiwenji:['ol_caiwenji','re_caiwenji','caiwenji'],
|
||||||
xuyou:['sp_xuyou','xuyou','yj_xuyou'],
|
xuyou:['sp_xuyou','xuyou','yj_xuyou'],
|
||||||
|
@ -7767,7 +7767,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。",
|
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。",
|
||||||
"nzry_shenshi1":"审时",
|
"nzry_shenshi1":"审时",
|
||||||
"nzry_shenshi":"审时",
|
"nzry_shenshi":"审时",
|
||||||
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
|
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名除你外手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
|
||||||
"nzry_mingren":"明任",
|
"nzry_mingren":"明任",
|
||||||
"nzry_mingren_info":"游戏开始时,你摸两张牌,然后将一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用一张手牌替换“任”。",
|
"nzry_mingren_info":"游戏开始时,你摸两张牌,然后将一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用一张手牌替换“任”。",
|
||||||
"nzry_zhenliang":"贞良",
|
"nzry_zhenliang":"贞良",
|
||||||
|
@ -7931,7 +7931,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhanghe:'张郃',
|
zhanghe:'张郃',
|
||||||
dengai:'邓艾',
|
dengai:'邓艾',
|
||||||
sunce:'孙策',
|
sunce:'孙策',
|
||||||
zhangzhang:'张昭张紘',
|
zhangzhang:'张昭张纮',
|
||||||
caiwenji:'蔡琰',
|
caiwenji:'蔡琰',
|
||||||
zuoci:'左慈',
|
zuoci:'左慈',
|
||||||
|
|
||||||
|
|
501
character/sp.js
501
character/sp.js
|
@ -6,17 +6,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sp:{
|
sp:{
|
||||||
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
||||||
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan'],
|
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan','sunhong'],
|
||||||
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna"],
|
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna"],
|
||||||
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"],
|
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"],
|
||||||
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan','zhangzhi'],
|
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan','zhangzhi','lushi'],
|
||||||
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian'],
|
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian'],
|
||||||
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
||||||
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
||||||
sp_waitforsort:['sunhong','ol_huban','lushi'],
|
sp_waitforsort:['ol_huban'],
|
||||||
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
||||||
sp_wanglang:['wanglang'],
|
sp_wanglang:['ol_wanglang'],
|
||||||
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
||||||
//sp_single:["niujin"],
|
//sp_single:["niujin"],
|
||||||
|
@ -29,6 +28,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
ol_wanglang:['male','wei',3,['gushe','oljici']],
|
||||||
|
ol_liuyan:['male','qun','4/6',['olpianan','olyinji','olkuisi'],['unseen']],
|
||||||
lushi:['female','qun',3,['olzhuyan','olleijie']],
|
lushi:['female','qun',3,['olzhuyan','olleijie']],
|
||||||
zhangshiping:['male','shu',3,['olhongji','olxinggu']],
|
zhangshiping:['male','shu',3,['olhongji','olxinggu']],
|
||||||
sunhong:['male','wu',3,['olxianbi','olzenrun']],
|
sunhong:['male','wu',3,['olxianbi','olzenrun']],
|
||||||
|
@ -79,9 +80,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
huangchengyan:['male','qun',3,['guanxu','yashi']],
|
huangchengyan:['male','qun',3,['guanxu','yashi']],
|
||||||
huangzu:['male','qun',4,['wangong']],
|
huangzu:['male','qun',4,['wangong']],
|
||||||
panshu:['female','wu',3,['weiyi','jinzhi']],
|
panshu:['female','wu',3,['weiyi','jinzhi']],
|
||||||
sp_jiben:['male','qun',3,['spduanzhi','spduyi']],
|
|
||||||
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
|
|
||||||
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
|
|
||||||
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
|
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
|
||||||
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
|
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
|
||||||
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
||||||
|
@ -116,7 +114,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
guanyinping:['female','shu',3,['huxiao','xueji','wuji']],
|
guanyinping:['female','shu',3,['huxiao','xueji','wuji']],
|
||||||
simalang:['male','wei',3,['junbing','quji']],
|
simalang:['male','wei',3,['junbing','quji']],
|
||||||
zhangxingcai:['female','shu',3,['shenxian','qiangwu']],
|
zhangxingcai:['female','shu',3,['shenxian','qiangwu']],
|
||||||
fuwan:['male','qun',4,['moukui']],
|
fuwan:['male','qun',4,['dcmoukui']],
|
||||||
sp_sunshangxiang:['female','shu',3,['liangzhu','fanxiang']],
|
sp_sunshangxiang:['female','shu',3,['liangzhu','fanxiang']],
|
||||||
caoang:['male','wei',4,['kaikang']],
|
caoang:['male','wei',4,['kaikang']],
|
||||||
sp_caoren:['male','wei',4,['weikui','lizhan']],
|
sp_caoren:['male','wei',4,['weikui','lizhan']],
|
||||||
|
@ -149,7 +147,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yanbaihu:['male','qun',4,['zhidao','jili']],
|
yanbaihu:['male','qun',4,['zhidao','jili']],
|
||||||
chengyu:['male','wei',3,['shefu','benyu']],
|
chengyu:['male','wei',3,['shefu','benyu']],
|
||||||
|
|
||||||
wanglang:['male','wei',3,['regushe','rejici']],
|
|
||||||
sp_pangde:['male','wei',4,['mashu','juesi']],
|
sp_pangde:['male','wei',4,['mashu','juesi']],
|
||||||
sp_jiaxu:['male','wei',3,['zhenlue','jianshu','yongdi']],
|
sp_jiaxu:['male','wei',3,['zhenlue','jianshu','yongdi']],
|
||||||
|
|
||||||
|
@ -220,7 +217,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
gaogan:'高干(?~206年),字元才,陈留郡圉县(今河南杞县圉镇)人。东汉末年并州割据将领,蜀郡太守高躬之子、大将军袁绍外甥。出身陈留高氏,才志弘邈,文武秀出。早年联合荀谌游说韩馥让出冀州牧。袁绍平定河北后,以为并州牧。官渡之战时,在西线配合作战。因曹操早有准备,没有实质进展。袁绍死后,袁谭、袁尚与曹操大战于黎阳郡时,联合郭援攻打平阳郡,为马腾为首关中将领所败,郭援为庞德所斩。袁尚败走中山郡后,出降于曹操,仍为并州刺史。建安十年,兴兵反曹,固守壶关,成功抵挡乐进进攻。得知曹操亲征后,留下别将守城,亲往匈奴呼厨泉求救,没有成功。引兵攻略河东郡,屡为钟繇、张既所败。建安十一年,投奔荆州刘表。途经上洛时,为上洛都尉捕斩之。',
|
gaogan:'高干(?~206年),字元才,陈留郡圉县(今河南杞县圉镇)人。东汉末年并州割据将领,蜀郡太守高躬之子、大将军袁绍外甥。出身陈留高氏,才志弘邈,文武秀出。早年联合荀谌游说韩馥让出冀州牧。袁绍平定河北后,以为并州牧。官渡之战时,在西线配合作战。因曹操早有准备,没有实质进展。袁绍死后,袁谭、袁尚与曹操大战于黎阳郡时,联合郭援攻打平阳郡,为马腾为首关中将领所败,郭援为庞德所斩。袁尚败走中山郡后,出降于曹操,仍为并州刺史。建安十年,兴兵反曹,固守壶关,成功抵挡乐进进攻。得知曹操亲征后,留下别将守城,亲往匈奴呼厨泉求救,没有成功。引兵攻略河东郡,屡为钟繇、张既所败。建安十一年,投奔荆州刘表。途经上洛时,为上洛都尉捕斩之。',
|
||||||
huangchengyan:'黄承彦,生卒年不详,汉末三国时期沔阳名士,诸葛亮岳父,黄月英之父。南郡大士蔡讽的女婿,与襄阳名士上层社会圈子:庞统(凤雏)、庞德公、司马徽、徐庶等人交好。《襄阳记》:黄承彦者,高爽开列,为沔阳名士,谓诸葛孔明曰:“闻君择妇,身有丑女,黄头黑色,而才堪配。”孔明许,即载送之。时人以为笑乐,乡里为之谚曰:“莫作孔明择妇,正得阿承丑女。”',
|
huangchengyan:'黄承彦,生卒年不详,汉末三国时期沔阳名士,诸葛亮岳父,黄月英之父。南郡大士蔡讽的女婿,与襄阳名士上层社会圈子:庞统(凤雏)、庞德公、司马徽、徐庶等人交好。《襄阳记》:黄承彦者,高爽开列,为沔阳名士,谓诸葛孔明曰:“闻君择妇,身有丑女,黄头黑色,而才堪配。”孔明许,即载送之。时人以为笑乐,乡里为之谚曰:“莫作孔明择妇,正得阿承丑女。”',
|
||||||
panshu:'潘淑(?-252年),会稽句章(今浙江省宁波市)人,是吴大帝孙权的皇后,吴少帝孙亮的母亲。和孙权是中国历代帝后中年龄差距较大的一对。潘淑少时与姐姐俱没入织室,容媚有宠,拜为夫人,生有一子孙亮。赤乌十三年(250年),孙权立孙亮为皇太子,翌年(251年)立潘淑为皇后。神凤元年(252年)暴崩,合葬蒋陵。世称潘淑为江东绝色,有神女之称。',
|
panshu:'潘淑(?-252年),会稽句章(今浙江省宁波市)人,是吴大帝孙权的皇后,吴少帝孙亮的母亲。和孙权是中国历代帝后中年龄差距较大的一对。潘淑少时与姐姐俱没入织室,容媚有宠,拜为夫人,生有一子孙亮。赤乌十三年(250年),孙权立孙亮为皇太子,翌年(251年)立潘淑为皇后。神凤元年(252年)暴崩,合葬蒋陵。世称潘淑为江东绝色,有神女之称。',
|
||||||
jiben:'吉本(?—218年),东汉末年太医令。建安二十三年春正月,时金祎自以世为汉臣,睹汉祚将移,谓可季兴,乃喟然发愤,遂与太医令本、少府耿纪、司直韦晃、本子邈、邈弟穆等结谋攻许,杀曹公长史王必,南援刘备。后必营,必与典农中郎将严匡讨斩之。在《三国演义》中,吉本在此为吉平或吉太,因字称平,故又唤作吉平。曾参与董承等人刺杀曹操的计划,并企图在为曹操治病时毒死曹操,但被曹操识破而遭处刑。之后其子吉邈和吉穆都参与了由耿纪和韦晃等人所发动的反叛曹操的行动,但都失败被杀。',
|
|
||||||
zongyu:'宗预(?-264年),字德艳 ,荆州南阳郡安众县(今河南省南阳市)人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州,又受辟为丞相诸葛亮手下主簿,升任参军、右中郎将。诸葛亮逝世后,宗预受命出使孙吴,得到孙权的赞赏。迁后将军,出督永安,又升任征西大将军,并受封关内侯。公元258年(景耀元年),因病回成都,受任镇军大将军。蜀汉灭亡后,宗预随后主刘禅徙往洛阳,在中途病逝。宗预为人坦率耿直,多次出使孙吴并深得孙权的敬重,为吴、汉两国同盟的巩固作出了一定的贡献。',
|
zongyu:'宗预(?-264年),字德艳 ,荆州南阳郡安众县(今河南省南阳市)人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州,又受辟为丞相诸葛亮手下主簿,升任参军、右中郎将。诸葛亮逝世后,宗预受命出使孙吴,得到孙权的赞赏。迁后将军,出督永安,又升任征西大将军,并受封关内侯。公元258年(景耀元年),因病回成都,受任镇军大将军。蜀汉灭亡后,宗预随后主刘禅徙往洛阳,在中途病逝。宗预为人坦率耿直,多次出使孙吴并深得孙权的敬重,为吴、汉两国同盟的巩固作出了一定的贡献。',
|
||||||
mengda:'孟达(?-228),字子度,本字子敬,因刘备的叔父名叫刘子敬,为避讳而改字。扶风郡郿人,三国时期人物。本为刘璋属下,后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备,于是投奔曹魏。此后,劝降刘封,未果。在魏官至散骑常侍、建武将军,封平阳亭侯。此后又欲反曹魏而归蜀汉,事败而死。',
|
mengda:'孟达(?-228),字子度,本字子敬,因刘备的叔父名叫刘子敬,为避讳而改字。扶风郡郿人,三国时期人物。本为刘璋属下,后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备,于是投奔曹魏。此后,劝降刘封,未果。在魏官至散骑常侍、建武将军,封平阳亭侯。此后又欲反曹魏而归蜀汉,事败而死。',
|
||||||
wolongfengchu:'沙比武将,懒得复制粘贴,自己去看诸葛亮和庞统的介绍吧。',
|
wolongfengchu:'沙比武将,懒得复制粘贴,自己去看诸葛亮和庞统的介绍吧。',
|
||||||
|
@ -687,6 +683,140 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//OL新改王朗
|
||||||
|
oljici:{
|
||||||
|
audio:'jici',
|
||||||
|
trigger:{
|
||||||
|
player:'compare',
|
||||||
|
target:'compare',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.player==player){
|
||||||
|
if(event.iwhile) return false;
|
||||||
|
return event.num1<=player.countMark('gushe');
|
||||||
|
}
|
||||||
|
return event.num2<=player.countMark('gushe');
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var num=player.countMark('gushe');
|
||||||
|
if(player==trigger.player){
|
||||||
|
trigger.num1+=num;
|
||||||
|
if(trigger.num1>13) trigger.num1=13;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
trigger.num2+=num;
|
||||||
|
if(trigger.num2>13) trigger.num2=13;
|
||||||
|
}
|
||||||
|
game.log(player,'的拼点牌点数+'+num);
|
||||||
|
var stat=player.getStat().skill;
|
||||||
|
delete stat.gushe;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//OL刘老板
|
||||||
|
olpianan:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:['enterGame','phaseDiscardEnd'],
|
||||||
|
global:'phaseBefore',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.name!='phase'||game.phaseNumber==0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var hs=player.getCards('h',card=>{
|
||||||
|
return get.name(card)!='shan'&&lib.filter.cardDiscardable(card,player,'olpianan');
|
||||||
|
});
|
||||||
|
if(hs.length) player.discard(hs);
|
||||||
|
'step 1'
|
||||||
|
var num=player.hp-player.countCards('h');
|
||||||
|
if(num>0){
|
||||||
|
var cards=[];
|
||||||
|
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||||
|
var card=ui.cardPile.childNodes[i];
|
||||||
|
if(card.name=='shan'){
|
||||||
|
cards.add(card);
|
||||||
|
num--;
|
||||||
|
}
|
||||||
|
if(num==0) break;
|
||||||
|
}
|
||||||
|
if(num>0){
|
||||||
|
for(var i=0;i<ui.discardPile.childNodes.length;i++){
|
||||||
|
var card=ui.discardPile.childNodes[i];
|
||||||
|
if(card.name=='shan'){
|
||||||
|
cards.add(card);
|
||||||
|
num--;
|
||||||
|
}
|
||||||
|
if(num==0) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(cards.length) player.gain(cards,'gain2');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
aiValue:function(player,card,num){
|
||||||
|
if(card.name!='shan') return;
|
||||||
|
if(player==_status.currentPhase) return 0;
|
||||||
|
},
|
||||||
|
aiUseful:function(){
|
||||||
|
return lib.skill.olpianan.mod.aiValue.apply(this,arguments);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
olyinji:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return !player.isMaxHp(true);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseControl('体力','体力上限').set('prompt','殷积:回复1点体力或加1点体力上限').set('ai',()=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(!player.isDamaged()||player.hp>3&&player.getDamagedHp()==1||player.maxHp<3) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
player[result.index==0?'recover':'gainMaxHp']();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
olkuisi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseDrawBefore'},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
trigger.cancel();
|
||||||
|
var cards=game.cardsGotoOrdering(get.cards(4)).cards;
|
||||||
|
event.cards=cards.slice();
|
||||||
|
'step 1'
|
||||||
|
player.chooseButton(['窥伺:是否使用其中的一张牌?',cards]).set('filterButton',button=>{
|
||||||
|
return _status.event.player.hasUseTarget(button.link);
|
||||||
|
}).set('ai',button=>{
|
||||||
|
var player=_status.event.player,card=button.link,cards=_status.event.getParent().cards;
|
||||||
|
var val=player.getUseValue(card)+0.01;
|
||||||
|
if(val>0&&cards.length>1||val>4&&cards.length==1&&(player.maxHp>3||player.isDamaged())) return get.order(card)+val/5;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
var card=result.links[0];
|
||||||
|
event.cards.remove(card);
|
||||||
|
player.$gain2(card,false);
|
||||||
|
game.delayx();
|
||||||
|
player.chooseUseTarget(true,card,false);
|
||||||
|
}
|
||||||
|
else event.goto(4);
|
||||||
|
'step 3'
|
||||||
|
if(cards.some(i=>get.position(i,true)=='o'&&player.hasUseTarget(i))) event.goto(1);
|
||||||
|
'step 4'
|
||||||
|
if(cards.length!=1&&cards.length!=2){
|
||||||
|
player.loseMaxHp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
//卢氏
|
//卢氏
|
||||||
olzhuyan:{
|
olzhuyan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -903,7 +1033,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseControl('摸牌阶段','出牌阶段','cancel2').set('prompt',get.prompt('olhongji',target)).set('choiceList',[
|
player.chooseControl('摸牌阶段','出牌阶段','cancel2').set('prompt',get.prompt('olhongji',target)).set('choiceList',[
|
||||||
str1.slice(13),
|
str1.slice(13),
|
||||||
str2.slice(13)
|
str2.slice(13)
|
||||||
]).set('ai',()=>[0,1].randomGet());
|
]).set('ai',()=>_status.event.bool).set('bool',()=>get.attitude(player,trigger.player)>1?[0,1].randomGet():'cancel2');
|
||||||
}
|
}
|
||||||
'step 1'
|
'step 1'
|
||||||
var choice=-1;
|
var choice=-1;
|
||||||
|
@ -5087,6 +5217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dialog.classList.add('scroll1');
|
dialog.classList.add('scroll1');
|
||||||
dialog.classList.add('scroll2');
|
dialog.classList.add('scroll2');
|
||||||
dialog.classList.add('fullwidth');
|
dialog.classList.add('fullwidth');
|
||||||
|
dialog.classList.add('fullheight');
|
||||||
dialog.buttonss=[];
|
dialog.buttonss=[];
|
||||||
|
|
||||||
var list=['协力锻造的玩家','妨碍锻造的玩家']
|
var list=['协力锻造的玩家','妨碍锻造的玩家']
|
||||||
|
@ -7815,12 +7946,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).set('type',type).set('ai',()=>-1).logSkill='olfengzi';
|
}).set('type',type).set('ai',()=>-1).logSkill='olfengzi';
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.addTempSkill('olfengzi_buff','phaseUseAfter');
|
trigger.effectCount++;
|
||||||
trigger.olfengzi_buff=player;
|
|
||||||
}
|
}
|
||||||
else player.storage.counttrigger.olfengzi--;
|
else player.storage.counttrigger.olfengzi--;
|
||||||
},
|
},
|
||||||
subSkill:{
|
/*subSkill:{
|
||||||
buff:{
|
buff:{
|
||||||
trigger:{global:'useCardToTargeted'},
|
trigger:{global:'useCardToTargeted'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -7838,7 +7968,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
delete player.storage.counttrigger.olfengji;
|
delete player.storage.counttrigger.olfengji;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},*/
|
||||||
},
|
},
|
||||||
oljizhan:{
|
oljizhan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -8952,254 +9082,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:'本轮已发动过#次',
|
content:'本轮已发动过#次',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
//铜雀台
|
|
||||||
spduanzhi:{
|
|
||||||
trigger:{target:'useCardToTargeted'},
|
|
||||||
logTarget:'player',
|
|
||||||
check:function(event,player){
|
|
||||||
var target=event.player;
|
|
||||||
if(get.attitude(player,target)>=-2||target.countCards('he',function(card){
|
|
||||||
return get.value(card,target)>5;
|
|
||||||
})<2) return false;
|
|
||||||
if(player.hp>2) return true;
|
|
||||||
if(player.hp==1){
|
|
||||||
if(get.tag(event.card,'respondSha')){
|
|
||||||
if(player.countCards('h',{name:'sha'})==0){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(get.tag(event.card,'respondShan')){
|
|
||||||
if(player.countCards('h',{name:'shan'})==0){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(get.tag(event.card,'damage')){
|
|
||||||
if(event.card.name=='shuiyanqijunx') return player.countCards('e')==0;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
filter:function(event,player){
|
|
||||||
return player!=event.player&&event.player.countDiscardableCards(player,'he')>0;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.discardPlayerCard(trigger.player,true,'he',[1,2]);
|
|
||||||
player.loseHp();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spduyi:{
|
|
||||||
enable:'phaseUse',
|
|
||||||
usable:1,
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
event.card=get.cards()[0];
|
|
||||||
game.cardsGotoOrdering(event.card);
|
|
||||||
player.showCards(event.card);
|
|
||||||
'step 1'
|
|
||||||
player.chooseTarget('令一名角色获得'+get.translation(card),true).set('ai',function(target){
|
|
||||||
var att=get.attitude(_status.event.player,target);
|
|
||||||
if(_status.event.du){
|
|
||||||
if(target.hasSkillTag('nodu')) return 0;
|
|
||||||
return -att;
|
|
||||||
}
|
|
||||||
if(att>0){
|
|
||||||
if(target==player) att*=0.6;
|
|
||||||
return att+Math.sqrt(Math.max(0,5-target.countCards('h')));
|
|
||||||
}
|
|
||||||
return att;
|
|
||||||
}).set('du',card.name=='du');
|
|
||||||
'step 2'
|
|
||||||
if(result&&result.bool){
|
|
||||||
var target=result.targets[0];
|
|
||||||
target.gain(card,'gain2');
|
|
||||||
if(get.color(card,false)=='black') target.addTempSkill('spduyi2');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
order:0.1,
|
|
||||||
result:{
|
|
||||||
player:1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spduyi2:{
|
|
||||||
mod:{
|
|
||||||
cardEnabled2:function(card){
|
|
||||||
if(get.position(card)=='h') return false;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
mark:true,
|
|
||||||
intro:{
|
|
||||||
content:'不能使用或打出手牌',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spcangni:{
|
|
||||||
audio:'zhuikong',
|
|
||||||
trigger:{player:'phaseDiscardBegin'},
|
|
||||||
direct:true,
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力,然后将武将牌翻面',2).set('ai',function(){
|
|
||||||
return 'cancel2';
|
|
||||||
}).logSkill='spcangni';
|
|
||||||
'step 1'
|
|
||||||
if(result.control!='cancel2') player.turnOver();
|
|
||||||
},
|
|
||||||
group:['spcangni_gain','spcangni_lose'],
|
|
||||||
subSkill:{
|
|
||||||
gain:{
|
|
||||||
audio:'zhuikong',
|
|
||||||
trigger:{
|
|
||||||
player:'gainAfter',
|
|
||||||
global:'loseAsyncAfter',
|
|
||||||
},
|
|
||||||
usable:1,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.isTurnedOver()&&player!=_status.currentPhase&&event.getg(player).length>0;
|
|
||||||
},
|
|
||||||
check:function(event,player){
|
|
||||||
return get.attitude(player,_status.currentPhase)>0;
|
|
||||||
},
|
|
||||||
logTarget:function(){
|
|
||||||
return _status.currentPhase;
|
|
||||||
},
|
|
||||||
prompt2:'令该角色摸一张牌',
|
|
||||||
content:function(){
|
|
||||||
_status.currentPhase.draw();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
lose:{
|
|
||||||
audio:'zhuikong',
|
|
||||||
trigger:{
|
|
||||||
player:'loseAfter',
|
|
||||||
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
|
||||||
},
|
|
||||||
filter:function(event,player){
|
|
||||||
if(event.name=='gain'&&player==event.player) return false;
|
|
||||||
var evt=event.getl(player);
|
|
||||||
if(!evt||!evt.cards2||!evt.cards2.length) return false;
|
|
||||||
return player.isTurnedOver()&&player!=_status.currentPhase&&_status.currentPhase.countCards('he')>0;
|
|
||||||
},
|
|
||||||
check:function(event,player){
|
|
||||||
var target=_status.currentPhase;
|
|
||||||
var att=get.attitude(player,target);
|
|
||||||
if(target.countCards('e',function(card){
|
|
||||||
return get.value(card,target)<=0;
|
|
||||||
})) return att>0;
|
|
||||||
return att<0;
|
|
||||||
},
|
|
||||||
logTarget:function(){
|
|
||||||
return _status.currentPhase;
|
|
||||||
},
|
|
||||||
prompt2:'令该角色弃置一张牌',
|
|
||||||
content:function(){
|
|
||||||
_status.currentPhase.chooseToDiscard('he',true);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spmixin:{
|
|
||||||
audio:'qiuyuan',
|
|
||||||
enable:'phaseUse',
|
|
||||||
usable:1,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.countCards('h')>0&&game.countPlayer()>2;
|
|
||||||
},
|
|
||||||
filterCard:true,
|
|
||||||
filterTarget:lib.filter.notMe,
|
|
||||||
position:'h',
|
|
||||||
selectTarget:2,
|
|
||||||
targetprompt:['拿牌打人','被打'],
|
|
||||||
multitarget:true,
|
|
||||||
delay:false,
|
|
||||||
discard:false,
|
|
||||||
lose:false,
|
|
||||||
check:function(card){
|
|
||||||
if(card.name=='sha') return 4;
|
|
||||||
return 4-get.value(card);
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
player.give(cards,targets[0]);
|
|
||||||
'step 1'
|
|
||||||
if(!targets[0].isAlive()||!targets[1].isAlive()){
|
|
||||||
event.finish();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
targets[0].chooseToUse(function(card,player,event){
|
|
||||||
if(get.name(card)!='sha') return false;
|
|
||||||
return lib.filter.filterCard.apply(this,arguments);
|
|
||||||
},'密信:对'+get.translation(targets[1])+'使用一张【杀】,或令其观看并获得你的一张手牌').set('complexSelect',true).set('filterTarget',function(card,player,target){
|
|
||||||
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
|
|
||||||
return lib.filter.targetEnabled.apply(this,arguments);
|
|
||||||
}).set('sourcex',targets[1]);
|
|
||||||
'step 2'
|
|
||||||
if(!result.bool&&targets[0].countCards('h')) targets[1].gainPlayerCard(targets[0],'visible','h',true);
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
order:1,
|
|
||||||
expose:0.1,
|
|
||||||
result:{
|
|
||||||
target:function(player,target){
|
|
||||||
var card=ui.selected.cards[0];
|
|
||||||
if(!card) return 0;
|
|
||||||
if(ui.selected.targets.length==0){
|
|
||||||
if(card.name=='sha'||target.hasSha()) return 2;
|
|
||||||
if(get.value(card,target)<0) return -2;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
var target1=ui.selected.targets[0];
|
|
||||||
if((card.name=='sha'||target1.hasSha())&&get.effect(target,{name:'sha'},target1,target1)>0) return get.effect(target,{name:'sha'},target1,target);
|
|
||||||
return 1.5;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spfengyin:{
|
|
||||||
audio:'moukui',
|
|
||||||
trigger:{global:'phaseZhunbeiBegin'},
|
|
||||||
direct:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player!=event.player&&event.player.hp>=player.hp&&player.countCards('h',function(card){
|
|
||||||
if(_status.connectMode) return true;
|
|
||||||
return get.name(card,player)=='sha';
|
|
||||||
})>0;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
player.chooseCard('h',get.prompt('spfengyin',trigger.player),'交给该角色一张【杀】并令其跳过出牌阶段和弃牌阶段',function(card,player){
|
|
||||||
return get.name(card,player)=='sha';
|
|
||||||
}).set('ai',function(card){
|
|
||||||
if(_status.event.goon) return 5-get.value(card);
|
|
||||||
return 0;
|
|
||||||
}).set('goon',function(){
|
|
||||||
if(get.attitude(player,trigger.player)>=0) return false;
|
|
||||||
if(trigger.player.countCards('hs')<trigger.player.hp) return false;
|
|
||||||
return true;
|
|
||||||
}());
|
|
||||||
'step 1'
|
|
||||||
if(result.bool){
|
|
||||||
var target=trigger.player;
|
|
||||||
player.logSkill('spfengyin',target);
|
|
||||||
player.give(result.cards,target,'give');
|
|
||||||
target.skip('phaseUse');
|
|
||||||
target.skip('phaseDiscard');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spchizhong:{
|
|
||||||
mod:{
|
|
||||||
maxHandcardBase:function(player,num){
|
|
||||||
return player.maxHp;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
trigger:{global:'dieAfter'},
|
|
||||||
forced:true,
|
|
||||||
content:function(){
|
|
||||||
player.gainMaxHp();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
//宗预
|
//宗预
|
||||||
zyqiao:{
|
zyqiao:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -11887,7 +11769,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
shuimeng:{
|
shuimeng:{
|
||||||
audio:true,
|
audio:2,
|
||||||
trigger:{player:'phaseUseAfter'},
|
trigger:{player:'phaseUseAfter'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -16677,62 +16559,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
combo:'jieyuan'
|
combo:'jieyuan'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fenxin_old:{
|
|
||||||
mode:['identity'],
|
|
||||||
trigger:{source:'dieBegin'},
|
|
||||||
init:function(player){
|
|
||||||
player.storage.fenxin=false;
|
|
||||||
},
|
|
||||||
intro:{
|
|
||||||
content:'limited'
|
|
||||||
},
|
|
||||||
skillAnimation:'epic',
|
|
||||||
animationColor:'fire',
|
|
||||||
unique:true,
|
|
||||||
limited:true,
|
|
||||||
audio:2,
|
|
||||||
mark:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
if(player.storage.fenxin) return false;
|
|
||||||
return event.player.identity!='zhu'&&player.identity!='zhu'&&
|
|
||||||
player.identity!='mingzhong'&&event.player.identity!='mingzhong';
|
|
||||||
},
|
|
||||||
check:function(event,player){
|
|
||||||
if(player.identity==event.player.identity) return Math.random()<0.5;
|
|
||||||
var stat=get.situation();
|
|
||||||
switch(player.identity){
|
|
||||||
case 'fan':
|
|
||||||
if(stat<0) return false;
|
|
||||||
if(stat==0) return Math.random()<0.6;
|
|
||||||
return true;
|
|
||||||
case 'zhong':
|
|
||||||
if(stat>0) return false;
|
|
||||||
if(stat==0) return Math.random()<0.6;
|
|
||||||
return true;
|
|
||||||
case 'nei':
|
|
||||||
if(event.player.identity=='fan'&&stat<0) return true;
|
|
||||||
if(event.player.identity=='zhong'&&stat>0) return true;
|
|
||||||
if(stat==0) return Math.random()<0.7;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
prompt:function(event,player){
|
|
||||||
return '焚心:是否与'+get.translation(event.player)+'交换身份?';
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
game.broadcastAll(function(player,target,shown){
|
|
||||||
var identity=player.identity;
|
|
||||||
player.identity=target.identity;
|
|
||||||
if(shown||player==game.me){
|
|
||||||
player.setIdentity();
|
|
||||||
}
|
|
||||||
target.identity=identity;
|
|
||||||
},player,trigger.player,trigger.player.identityShown);
|
|
||||||
player.line(trigger.player,'green');
|
|
||||||
player.storage.fenxin=true;
|
|
||||||
player.awakenSkill('fenxin_old');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
xisheng:{
|
xisheng:{
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
|
@ -22160,7 +21986,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
guansuo:['guansuo','ol_guansuo'],
|
guansuo:['guansuo','ol_guansuo'],
|
||||||
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
|
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
|
||||||
lisu:['ol_lisu','lisu'],
|
lisu:['ol_lisu','lisu'],
|
||||||
fuwan:['dc_fuwan','fuwan','sp_fuwan','tw_fuwan'],
|
fuwan:['fuwan','sp_fuwan','tw_fuwan'],
|
||||||
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
|
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
|
||||||
xujing:['xujing','tw_xujing','sp_xujing'],
|
xujing:['xujing','tw_xujing','sp_xujing'],
|
||||||
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
|
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
|
||||||
|
@ -22184,7 +22010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
furong:['ol_furong','tw_furong','furong'],
|
furong:['ol_furong','tw_furong','furong'],
|
||||||
daxiaoqiao:['tw_daxiaoqiao','daxiaoqiao'],
|
daxiaoqiao:['tw_daxiaoqiao','daxiaoqiao'],
|
||||||
zhugeguo:['tw_zhugeguo','zhugeguo'],
|
zhugeguo:['tw_zhugeguo','zhugeguo'],
|
||||||
wanglang:['wanglang','ol_wanglang'],
|
wanglang:['wanglang','ol_wanglang','old_wanglang'],
|
||||||
tengfanglan:['dc_tengfanglan','tengfanglan'],
|
tengfanglan:['dc_tengfanglan','tengfanglan'],
|
||||||
zhangyì:['ol_zhangyì','zhangyì'],
|
zhangyì:['ol_zhangyì','zhangyì'],
|
||||||
yuantanyuanshang:['yuantanyuanshang','yuantanyuanxiyuanshang'],
|
yuantanyuanshang:['yuantanyuanshang','yuantanyuanxiyuanshang'],
|
||||||
|
@ -22654,9 +22480,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jieyuan_less:'竭缘',
|
jieyuan_less:'竭缘',
|
||||||
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌,令此伤害-1。',
|
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌,令此伤害-1。',
|
||||||
fenxin:'焚心',
|
fenxin:'焚心',
|
||||||
fenxin_old:'焚心',
|
|
||||||
fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色和区域限制。',
|
fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色和区域限制。',
|
||||||
fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)',
|
|
||||||
qingyi:'轻逸',
|
qingyi:'轻逸',
|
||||||
qingyi1:'轻逸',
|
qingyi1:'轻逸',
|
||||||
qingyi2:'轻逸',
|
qingyi2:'轻逸',
|
||||||
|
@ -22958,22 +22782,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
chengshang:'承赏',
|
chengshang:'承赏',
|
||||||
chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
|
chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
|
||||||
chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
|
chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得所有与此牌花色点数相同的牌。',
|
||||||
sp_fuwan:'SP伏完',
|
|
||||||
spfengyin:'奉印',
|
|
||||||
spfengyin_info:'其他角色的回合开始时,若其体力值不少于你,你可以交给其一张【杀】,令其跳过出牌阶段和弃牌阶段。',
|
|
||||||
spchizhong:'持重',
|
|
||||||
spchizhong_info:'锁定技,你的手牌上限等于体力上限;其他角色死亡时,你加1点体力上限。',
|
|
||||||
sp_fuhuanghou:'SP伏寿',
|
|
||||||
spcangni:'藏匿',
|
|
||||||
spcangni_info:'弃牌阶段开始时,你可以回复1点体力或摸两张牌,然后将你的武将牌翻面;其他角色的回合内,当你获得(每回合限一次)/失去一次牌时,若你的武将牌背面朝上,你可以令该角色摸/弃置一张牌。',
|
|
||||||
spmixin:'密信',
|
|
||||||
spmixin_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,该角色须对你选择的另一名角色使用一张无距离限制的【杀】,否则你选择的角色观看其手牌并获得其中一张。',
|
|
||||||
sp_jiben:'SP吉本',
|
|
||||||
spduanzhi:'断指',
|
|
||||||
spduanzhi_info:'当你成为其他角色使用的牌的目标后,你可以弃置其至多两张牌,然后失去1点体力。',
|
|
||||||
spduyi:'毒医',
|
|
||||||
spduyi2:'毒医',
|
|
||||||
spduyi_info:'出牌阶段限一次,你可以亮出牌堆顶的一张牌并交给一名角色,若此牌为黑色,该角色不能使用或打出手牌,直到回到结束。',
|
|
||||||
panshu:'潘淑',
|
panshu:'潘淑',
|
||||||
weiyi:'威仪',
|
weiyi:'威仪',
|
||||||
weiyi_info:'每名角色限一次。当有角色受到伤害后,你可选择:①若其体力值不小于你,则其失去1点体力。②若其体力值不大于你且其已受伤,则其回复1点体力。',
|
weiyi_info:'每名角色限一次。当有角色受到伤害后,你可选择:①若其体力值不小于你,则其失去1点体力。②若其体力值不大于你且其已受伤,则其回复1点体力。',
|
||||||
|
@ -23276,6 +23084,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olzhuyan_info:'每名角色每项各限一次。结束阶段,你可以令一名角色将以下一项调整至与其上一个准备阶段结束后相同:1.体力值;2.手牌数(体力值至多失去至1,手牌数至多摸至5;若其未执行过准备阶段则改为游戏开始时)。',
|
olzhuyan_info:'每名角色每项各限一次。结束阶段,你可以令一名角色将以下一项调整至与其上一个准备阶段结束后相同:1.体力值;2.手牌数(体力值至多失去至1,手牌数至多摸至5;若其未执行过准备阶段则改为游戏开始时)。',
|
||||||
olleijie:'雷劫',
|
olleijie:'雷劫',
|
||||||
olleijie_info:'准备阶段,你可以令一名角色判定,若结果为♠2~9,其受到2点雷电伤害,否则其摸两张牌。',
|
olleijie_info:'准备阶段,你可以令一名角色判定,若结果为♠2~9,其受到2点雷电伤害,否则其摸两张牌。',
|
||||||
|
ol_liuyan:'OL刘焉',
|
||||||
|
olpianan:'偏安',
|
||||||
|
olpianan_info:'锁定技。游戏开始或弃牌阶段结束时,你弃置所有不为【闪】的手牌(没有则不弃)。若你的手牌数小于体力值,你获得牌堆或弃牌堆中的前X张【闪】(X为你的体力值与手牌数的差)。',
|
||||||
|
olyinji:'殷积',
|
||||||
|
olyinji_info:'锁定技。结束阶段,若你的体力值不为唯一最大,你选择回复1点体力或加1点体力上限。',
|
||||||
|
olkuisi:'窥伺',
|
||||||
|
olkuisi_info:'锁定技。摸牌阶段开始时,你跳过此阶段,然后观看牌堆顶的四张牌并可以使用其中任意张。若你以此法使用的牌数不为2或3,你减1点体力上限。',
|
||||||
|
ol_wanglang:'OL王朗',
|
||||||
|
oljici:'激词',
|
||||||
|
oljici_info:'当你的拼点牌亮出后,若点数不大于X,你可令点数+X并令〖鼓舌〗视为未发动过(X为你的“饶舌”标记数)。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
@ -23287,7 +23105,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_default:"天同·同名异势",
|
sp_default:"天同·同名异势",
|
||||||
sp_qifu:'灯愿·祈福武将',
|
sp_qifu:'灯愿·祈福武将',
|
||||||
sp_wanglang:'八萬·饶舌凤鹛',
|
sp_wanglang:'八萬·饶舌凤鹛',
|
||||||
sp_tongque:"铜雀台",
|
|
||||||
sp_zhongdan:"忠胆英杰",
|
sp_zhongdan:"忠胆英杰",
|
||||||
sp_guozhan:"国战",
|
sp_guozhan:"国战",
|
||||||
sp_guozhan2:"国战移植",
|
sp_guozhan2:"国战移植",
|
||||||
|
|
1211
character/sp2.js
1211
character/sp2.js
File diff suppressed because it is too large
Load Diff
377
character/tw.js
377
character/tw.js
|
@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
connect:true,
|
connect:true,
|
||||||
characterSort:{
|
characterSort:{
|
||||||
tw:{
|
tw:{
|
||||||
tw_sp:['tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_tianyu','jiachong','duosidawang','wuban','yuejiu','tw_caocao','tw_zhangmancheng','tw_caozhao','tw_wangchang','tw_puyangxing','tw_jiangji','tw_niujin','tw_xiahouen','tw_xiahoushang','tw_zhangji','tw_zhangnan','tw_fengxí','tw_furong','tw_liwei','tw_yangyi','tw_daxiaoqiao','tw_dengzhi','tw_baoxin','tw_bingyuan','tw_fanchou','tw_haomeng','tw_huchuquan','tw_jianshuo','tw_jiling','tw_liufuren','tw_liuzhang','tw_mateng','tw_niufudongxie','tw_qiaorui','tw_weixu','tw_yanxiang','tw_yufuluo','tw_zhangning','tw_dengzhi','tw_yangyi'],
|
tw_sp:['tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_tianyu','jiachong','duosidawang','wuban','yuejiu','tw_caocao','tw_zhangmancheng','tw_caozhao','tw_wangchang','tw_puyangxing','tw_jiangji','tw_niujin','tw_xiahouen','tw_xiahoushang','tw_zhangji','tw_zhangnan','tw_fengxí','tw_furong','tw_liwei','tw_yangyi','tw_daxiaoqiao','tw_dengzhi','tw_baoxin','tw_bingyuan','tw_fanchou','tw_haomeng','tw_huchuquan','tw_jianshuo','tw_jiling','tw_liufuren','tw_liuzhang','tw_mateng','tw_niufudongxie','tw_qiaorui','tw_weixu','tw_yanxiang','tw_yufuluo','tw_zhangning','tw_dengzhi','tw_yangyi','tw_yangang','tw_gongsunfan'],
|
||||||
tw_yunchouzhi:['tw_wangcan','tw_dongzhao','tw_bianfuren','tw_feiyi','tw_chenzhen','tw_xunchen'],
|
tw_yunchouzhi:['tw_wangcan','tw_dongzhao','tw_bianfuren','tw_feiyi','tw_chenzhen','tw_xunchen'],
|
||||||
tw_yunchouxin:['tw_wangling','tw_huojun','tw_wujing','tw_zhouchu'],
|
tw_yunchouxin:['tw_wangling','tw_huojun','tw_wujing','tw_zhouchu'],
|
||||||
tw_yunchouren:['tw_xujing','tw_qiaogong'],
|
tw_yunchouren:['tw_xujing','tw_qiaogong'],
|
||||||
|
@ -19,64 +19,66 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
xia_xiahouzie:['female','qun','3/4',['twxuechang','twduoren'],[]],
|
tw_gongsunfan:['male','qun',4,['twhuiyuan','twshoushou']],
|
||||||
xia_zhaoe:['female','qun',3,['twyanshi','twrenchou'],[]],
|
tw_yangang:['male','qun',4,['twzhiqu','twxianfeng']],
|
||||||
xia_lusu:['male','qun',4,['twkaizeng','twyangming'],[]],
|
xia_xiahouzie:['female','qun','3/4',['twxuechang','twduoren']],
|
||||||
xia_dianwei:['male','qun',4,['twliexi','twshezhong'],[]],
|
xia_zhaoe:['female','qun',3,['twyanshi','twrenchou']],
|
||||||
tw_bingyuan:['male','qun',3,['twbingde','twqingtao'],[]],
|
xia_lusu:['male','qun',4,['twkaizeng','twyangming']],
|
||||||
tw_niufudongxie:['double','qun',4,['twjuntun','twxiongxi','twxiafeng'],[]],
|
xia_dianwei:['male','qun',4,['twliexi','twshezhong']],
|
||||||
tw_jianshuo:['male','qun',6,['twkunsi'],[]],
|
tw_bingyuan:['male','qun',3,['twbingde','twqingtao']],
|
||||||
tw_jiangji:['male','wei',3,['twjichou','twjilun'],[]],
|
tw_niufudongxie:['double','qun',4,['twjuntun','twxiongxi','twxiafeng']],
|
||||||
tw_mateng:['male','qun',4,['mashu','twxiongzheng','twluannian'],['zhu',]],
|
tw_jianshuo:['male','qun',6,['twkunsi']],
|
||||||
tw_baoxin:['male','qun',4,['twmutao','twyimou'],[]],
|
tw_jiangji:['male','wei',3,['twjichou','twjilun']],
|
||||||
tw_liufuren:['female','qun',3,['twzhuidu','twshigong'],[]],
|
tw_mateng:['male','qun',4,['mashu','twxiongzheng','twluannian'],['zhu']],
|
||||||
tw_yufuluo:['male','qun',6,['twjiekuang','twneirao'],[]],
|
tw_baoxin:['male','qun',4,['twmutao','twyimou']],
|
||||||
tw_fengxí:['male','shu',4,['twqingkou'],[]],
|
tw_liufuren:['female','qun',3,['twzhuidu','twshigong']],
|
||||||
tw_zhangji:['male','wei',3,['twdingzhen','twyouye'],[]],
|
tw_yufuluo:['male','qun',6,['twjiekuang','twneirao']],
|
||||||
tw_zhangnan:['male','shu',4,['twfenwu'],[]],
|
tw_fengxí:['male','shu',4,['twqingkou']],
|
||||||
tw_huchuquan:['male','qun',4,['twfupan'],[]],
|
tw_zhangji:['male','wei',3,['twdingzhen','twyouye']],
|
||||||
tw_liwei:['male','shu',4,['twjiaohua'],[]],
|
tw_zhangnan:['male','shu',4,['twfenwu']],
|
||||||
tw_yanxiang:['male','qun',3,['twkujian','twruilian'],[]],
|
tw_huchuquan:['male','qun',4,['twfupan']],
|
||||||
tw_xiahouen:['male','wei',5,['twfujian','twjianwei'],[]],
|
tw_liwei:['male','shu',4,['twjiaohua']],
|
||||||
tw_xiahoushang:['male','wei',4,['twtanfeng'],[]],
|
tw_yanxiang:['male','qun',3,['twkujian','twruilian']],
|
||||||
tw_qiaorui:['male','qun',5,['twxiawei','twqiongji'],[]],
|
tw_xiahouen:['male','wei',5,['twfujian','twjianwei']],
|
||||||
tw_haomeng:['male','qun',4,['twgongge'],[]],
|
tw_xiahoushang:['male','wei',4,['twtanfeng']],
|
||||||
tw_weixu:['male','qun',4,['twsuizheng','twtuidao'],[]],
|
tw_qiaorui:['male','qun',5,['twxiawei','twqiongji']],
|
||||||
xia_xushu:['male','qun',4,['twjiange','twxiawang'],[]],
|
tw_haomeng:['male','qun',4,['twgongge']],
|
||||||
xia_wangyue:['male','qun',4,['twyulong','twjianming'],[]],
|
tw_weixu:['male','qun',4,['twsuizheng','twtuidao']],
|
||||||
xia_liyàn:['male','qun',4,['twzhenhu','twlvren'],[]],
|
xia_xushu:['male','qun',4,['twjiange','twxiawang']],
|
||||||
xia_tongyuan:['male','qun',4,['twchaofeng','twchuanshu'],[]],
|
xia_wangyue:['male','qun',4,['twyulong','twjianming']],
|
||||||
tw_zhangning:['female','qun',3,['twxingzhui','twjuchen'],[]],
|
xia_liyàn:['male','qun',4,['twzhenhu','twlvren']],
|
||||||
tw_yangyi:['male','shu',3,['duoduan','twgongsun'],[]],
|
xia_tongyuan:['male','qun',4,['twchaofeng','twchuanshu']],
|
||||||
tw_dengzhi:['male','shu',3,['twjimeng','shuaiyan'],[]],
|
tw_zhangning:['female','qun',3,['twxingzhui','twjuchen']],
|
||||||
|
tw_yangyi:['male','shu',3,['duoduan','twgongsun']],
|
||||||
|
tw_dengzhi:['male','shu',3,['twjimeng','shuaiyan']],
|
||||||
tw_wangling:['male','wei',4,['twmibei','twxingqi'],['clan:太原王氏']],
|
tw_wangling:['male','wei',4,['twmibei','twxingqi'],['clan:太原王氏']],
|
||||||
tw_zhugeguo:['female','shu',3,['twqirang','twyuhua'],[]],
|
tw_zhugeguo:['female','shu',3,['twqirang','twyuhua']],
|
||||||
tw_fanchou:['male','qun',4,['twxingluan'],[]],
|
tw_fanchou:['male','qun',4,['twxingluan']],
|
||||||
tw_xujing:['male','shu',3,['twboming','twejian'],[]],
|
tw_xujing:['male','shu',3,['twboming','twejian']],
|
||||||
tw_zhangfei:['male','shu',4,['new_repaoxiao','twxuhe'],[]],
|
tw_zhangfei:['male','shu',4,['new_repaoxiao','twxuhe']],
|
||||||
tw_xuezong:['male','wu',3,['funan','twjiexun'],[]],
|
tw_xuezong:['male','wu',3,['funan','twjiexun']],
|
||||||
tw_xunchen:['male','qun',3,['twweipo','mjchenshi','twmouzhi'],[]],
|
tw_xunchen:['male','qun',3,['twweipo','mjchenshi','twmouzhi']],
|
||||||
tw_jiangqing:['male','wu',4,['twshangyi','twxiangyu'],[]],
|
tw_jiangqing:['male','wu',4,['twshangyi','twxiangyu']],
|
||||||
tw_guyong:['male','wu',3,['twgyshenxing','twbingyi'],[]],
|
tw_guyong:['male','wu',3,['twgyshenxing','twbingyi']],
|
||||||
tw_chendong:['male','wu',4,['twyilie','twfenming'],[]],
|
tw_chendong:['male','wu',4,['twyilie','twfenming']],
|
||||||
tw_handang:['male','wu',4,['twgongji','twjiefan'],[]],
|
tw_handang:['male','wu',4,['twgongji','twjiefan']],
|
||||||
tw_jiling:['male','qun',4,['twshuangren'],[]],
|
tw_jiling:['male','qun',4,['twshuangren']],
|
||||||
tw_re_fazheng:['male','shu',3,['twxuanhuo','twenyuan'],[]],
|
tw_re_fazheng:['male','shu',3,['twxuanhuo','twenyuan']],
|
||||||
tw_madai:['male','shu',4,['mashu','twqianxi'],[]],
|
tw_madai:['male','shu',4,['mashu','twqianxi']],
|
||||||
tw_niujin:['male','wei',4,['twcuorui','twliewei'],[]],
|
tw_niujin:['male','wei',4,['twcuorui','twliewei']],
|
||||||
tw_guanqiujian:['male','wei',3,['twzhengrong','twhongju'],[]],
|
tw_guanqiujian:['male','wei',3,['twzhengrong','twhongju']],
|
||||||
tw_daxiaoqiao:['female','wu',3,['twxingwu','twpingting'],[]],
|
tw_daxiaoqiao:['female','wu',3,['twxingwu','twpingting']],
|
||||||
tw_furong:['male','shu',4,['twxuewei','twliechi'],[]],
|
tw_furong:['male','shu',4,['twxuewei','twliechi']],
|
||||||
tw_yl_luzhi:['male','qun',3,['twmingren','twzhenliang'],[]],
|
tw_yl_luzhi:['male','qun',3,['twmingren','twzhenliang']],
|
||||||
tw_liuzhang:['male','qun',3,['jutu','twyaohu','rehuaibi'],[]],
|
tw_liuzhang:['male','qun',3,['jutu','twyaohu','rehuaibi']],
|
||||||
tw_zongyu:['male','shu',3,['twzhibian','twyuyan'],[]],
|
tw_zongyu:['male','shu',3,['twzhibian','twyuyan']],
|
||||||
tw_zhouchu:['male','wu',4,['twguoyi','twchuhai'],[]],
|
tw_zhouchu:['male','wu',4,['twguoyi','twchuhai']],
|
||||||
tw_qiaogong:['male','wu',3,['twyizhu','twluanchou'],[]],
|
tw_qiaogong:['male','wu',3,['twyizhu','twluanchou']],
|
||||||
tw_feiyi:['male','shu',3,['twshengxi','twkuanji'],[]],
|
tw_feiyi:['male','shu',3,['twshengxi','twkuanji']],
|
||||||
tw_bianfuren:['female','wei',3,['twwanwei','twyuejian'],[]],
|
tw_bianfuren:['female','wei',3,['twwanwei','twyuejian']],
|
||||||
tw_chenzhen:['male','shu',3,['twmuyue','twchayi'],[]],
|
tw_chenzhen:['male','shu',3,['twmuyue','twchayi']],
|
||||||
tw_caoxiu:['male','wei',4,['twqianju','twqingxi'],[]],
|
tw_caoxiu:['male','wei',4,['twqianju','twqingxi']],
|
||||||
tw_sunyi:['male','wu',4,['twzaoli'],[]],
|
tw_sunyi:['male','wu',4,['twzaoli']],
|
||||||
tw_puyangxing:['male','wu',4,['twzhengjian','twzhongchi']],
|
tw_puyangxing:['male','wu',4,['twzhengjian','twzhongchi']],
|
||||||
tw_tianyu:['male','wei',4,['twzhenxi','twyangshi']],
|
tw_tianyu:['male','wei',4,['twzhenxi','twyangshi']],
|
||||||
old_quancong:['male','wu',4,['zhenshan']],
|
old_quancong:['male','wu',4,['zhenshan']],
|
||||||
|
@ -153,6 +155,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xin_guyong:'为蔡邕之徒。其为人少言语,不饮酒,严厉正大,被张纮推荐仕于孙权。孙权任命他为会稽郡丞,行太守事,后不断升迁,官至吴国丞相。顾雍为官,多进良言,有功于吴。',
|
xin_guyong:'为蔡邕之徒。其为人少言语,不饮酒,严厉正大,被张纮推荐仕于孙权。孙权任命他为会稽郡丞,行太守事,后不断升迁,官至吴国丞相。顾雍为官,多进良言,有功于吴。',
|
||||||
zhaoe:'赵娥,东汉酒泉郡禄福县(即肃州)人。丈夫庞子夏,表氏县(今高台县)人。庞子夏去世后,赵娥在禄福县抚养其子庞淯。她的父亲被李寿杀死。灵帝光和二年(公元179年)二月上旬的一天早晨,赵娥在都亭前与李寿相遇,她奋力挥刀杀死了李寿,随后到了都亭尊长的面前认罪伏法。后来,凉州刺史周洪、酒泉太守刘班等人共同上表朝廷,禀奏赵娥的烈义行为,刻石立碑显其赵家门户。黄门侍郎梁宽还著书追述赵娥的事迹,为其作传。西晋政治家傅玄为其作《秦女休行》诗,加以赞美。',
|
zhaoe:'赵娥,东汉酒泉郡禄福县(即肃州)人。丈夫庞子夏,表氏县(今高台县)人。庞子夏去世后,赵娥在禄福县抚养其子庞淯。她的父亲被李寿杀死。灵帝光和二年(公元179年)二月上旬的一天早晨,赵娥在都亭前与李寿相遇,她奋力挥刀杀死了李寿,随后到了都亭尊长的面前认罪伏法。后来,凉州刺史周洪、酒泉太守刘班等人共同上表朝廷,禀奏赵娥的烈义行为,刻石立碑显其赵家门户。黄门侍郎梁宽还著书追述赵娥的事迹,为其作传。西晋政治家傅玄为其作《秦女休行》诗,加以赞美。',
|
||||||
xiahouzie:'夏侯紫萼,游卡桌游《三国杀阵面对决》中虚构的人物。幼年因天天帮病种的母亲采紫萼得其名。亲眼目睹母亲被宦官所杀,愤怒之下夺过佩剑斩下宦官的头颅。被神秘人所救,发现了自己的身世,决心与宦官争斗到底。后再闯荡江湖的过程中,与夏侯惇义结金兰,以夏侯家姓氏称呼。',
|
xiahouzie:'夏侯紫萼,游卡桌游《三国杀阵面对决》中虚构的人物。幼年因天天帮病种的母亲采紫萼得其名。亲眼目睹母亲被宦官所杀,愤怒之下夺过佩剑斩下宦官的头颅。被神秘人所救,发现了自己的身世,决心与宦官争斗到底。后再闯荡江湖的过程中,与夏侯惇义结金兰,以夏侯家姓氏称呼。',
|
||||||
|
yangang:'严纲(163~191年),东汉末年公孙瓒部下的冀州刺史。汉献帝初平二年(191年),袁绍与公孙瓒在界桥交战,严纲为袁绍部下麹义所斩。',
|
||||||
|
gongsunfan:'公孙范,辽西令支(今河北迁安)人。东汉末年武将,公孙瓒从弟,官至勃海太守。公孙瓒起兵攻打袁绍之时,袁绍畏惧公孙瓒的势力,将自己的勃海太守印绶给予公孙范,意图和解,结果公孙范反而起勃海之兵帮助公孙瓒。初平二年(191年),公孙范以勃海兵助公孙瓒率二万人大破青、徐黄巾军。最后于界桥之战与公孙瓒一同败走。',
|
||||||
},
|
},
|
||||||
card:{
|
card:{
|
||||||
dz_mantianguohai:{
|
dz_mantianguohai:{
|
||||||
|
@ -266,6 +270,251 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//公孙范
|
||||||
|
twhuiyuan:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var evt=event.getParent('phaseUse');
|
||||||
|
if(!evt||evt.player!=player) return false;
|
||||||
|
var type=get.type2(event.card);
|
||||||
|
return !player.hasHistory('gain',evtx=>{
|
||||||
|
if(evtx.getParent('phaseUse')!=evt) return false;
|
||||||
|
return evtx.cards.some(card=>get.type2(card)==type);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var prompt2='展示一名角色的一张手牌。若展示牌为'+get.translation(get.type2(trigger.card))+'牌,则你获得之,否则其弃置之并摸一张牌。然后若其在你的攻击范围内,且你不在其攻击范围内,你对其造成1点伤害';
|
||||||
|
player.chooseTarget(get.prompt('twhuiyuan'),prompt2,(card,player,target)=>{
|
||||||
|
return target.countCards('h');
|
||||||
|
}).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
return -att+(player.inRange(target)&&!target.inRange(player)?get.damageEffect(target,player,player)/3:0);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('twhuiyuan',target);
|
||||||
|
player.choosePlayerCard(target,'h',true,'回援:展示'+get.translation(target)+'一张手牌');
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
var card=result.cards[0];
|
||||||
|
target.showCards([card],get.translation(target)+'【回援】展示');
|
||||||
|
if(get.type2(card)==get.type2(trigger.card)){
|
||||||
|
if(lib.filter.canBeGained(card,target,player)){
|
||||||
|
player.gain(card,target,'giveAuto','bySelf');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(lib.filter.canBeDiscarded(card,target,player)){
|
||||||
|
target.discard(card,'notBySelf');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
if(player.inRange(target)&&!target.inRange(player)){
|
||||||
|
game.log(player,'触发了','#y搏击','效果');
|
||||||
|
player.line(target);
|
||||||
|
target.damage();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
threaten:3,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
twshoushou:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:'gainAfter',
|
||||||
|
global:'loseAsyncAfter',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
var cards=event.getg(player);
|
||||||
|
if(!cards.length) return false;
|
||||||
|
return game.hasPlayer(current=>{
|
||||||
|
return event.getl(current).cards2.length;
|
||||||
|
})&&game.hasPlayer(current=>{
|
||||||
|
return current.inRange(player);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
group:'twshoushou_damage',
|
||||||
|
onremove:function(player){
|
||||||
|
if(player.countMark('twshoushou_plus')-player.countMark('twshoushou_minus')==0){
|
||||||
|
player.removeSkill('twshoushou_distance');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.addSkill('twshoushou_distance');
|
||||||
|
player.addMark('twshoushou_plus',1,false);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
halfneg:true,
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
damage:{
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource'
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return game.hasPlayer(current=>{
|
||||||
|
return current!=player&&!current.inRange(player);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
player.addSkill('twshoushou_distance');
|
||||||
|
player.addMark('twshoushou_minus',1,false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
distance:{
|
||||||
|
mark:true,
|
||||||
|
marktext:'绶',
|
||||||
|
intro:{
|
||||||
|
markcount:function(storage,player){
|
||||||
|
return player.countMark('twshoushou_plus')-player.countMark('twshoushou_minus');
|
||||||
|
},
|
||||||
|
content:function(storage,player){
|
||||||
|
var dis=player.countMark('twshoushou_plus')-player.countMark('twshoushou_minus');
|
||||||
|
return '其他角色至你的距离'+(dis>=0?'+':'')+dis;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
globalTo:function(from,to,distance){
|
||||||
|
return distance+to.countMark('twshoushou_plus')-to.countMark('twshoushou_minus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//严纲
|
||||||
|
twzhiqu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var count=game.countPlayer(current=>{
|
||||||
|
return get.distance(player,current)<=1;
|
||||||
|
});
|
||||||
|
player.chooseTarget(get.prompt('twzhiqu'),'选择一名其他角色并视为使用牌堆顶'+count+'张牌中的【杀】。若你与其均在对方的攻击范围内,你改为依次对其使用牌堆顶'+count+'张牌中的【杀】或锦囊牌。',lib.filter.notMe).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,{name:'sha'},player,player)*(get.distance(player,target)==1?2:1);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('twzhiqu',target);
|
||||||
|
event.fight=player.inRange(target)&&target.inRange(player);
|
||||||
|
if(event.fight) game.log(player,'触发了','#y搏击','效果');
|
||||||
|
event.cards=game.cardsGotoOrdering(get.cards(game.countPlayer(current=>{
|
||||||
|
return get.distance(player,current)<=1;
|
||||||
|
}))).cards.slice();
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(player.isIn()&&target.isIn()&&cards.length){
|
||||||
|
do var card=cards.shift();
|
||||||
|
while(get.name(card)=='sha'||event.fight&&get.type2(card)=='trick');
|
||||||
|
if(!card) return;
|
||||||
|
player.chooseUseTarget(card,true,false,'nodistance').set('filterTarget',function(card,player,target){
|
||||||
|
var evt=_status.event;
|
||||||
|
if(_status.event.name=='chooseTarget') evt=evt.getParent();
|
||||||
|
if(target!=player&&target!=evt.twzhiqu_target) return false;
|
||||||
|
return lib.filter.targetEnabledx(card,player,target);
|
||||||
|
}).set('twzhiqu_target',target);
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
twxianfeng:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{source:'damageSource'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!player.isPhaseUsing()) return false;
|
||||||
|
if(player==event.player) return false;
|
||||||
|
return event.card.name=='sha'||get.type(event.card)=='trick'&&get.tag(event.card,'damage');
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var target=trigger.player;
|
||||||
|
event.target=target;
|
||||||
|
target.chooseControl().set('choiceList',[
|
||||||
|
'你摸一张牌,然后直到'+get.translation(player)+'下个回合开始时,其至其他角色的距离-1',
|
||||||
|
get.translation(player)+'摸一张牌,然后直到其下个回合开始时,你至其的距离-1',
|
||||||
|
]).set('prompt','先锋:请选择一项').set('ai',()=>{
|
||||||
|
return _status.event.choice;
|
||||||
|
}).set('choice',function(){
|
||||||
|
var att=get.attitude(target,player);
|
||||||
|
if(att==0) return 0;
|
||||||
|
if(player.hasSkill('twzhiqu')){
|
||||||
|
var cnt=game.countPlayer(current=>get.distance(player,current)==2);
|
||||||
|
if(cnt>=2){
|
||||||
|
if(att<0) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(att<0&&cnt>=2||att>0&&!cnt) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(att<0) return 0;
|
||||||
|
return [0,1].randomGet();
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
'step 1'
|
||||||
|
if(result.index==0){
|
||||||
|
target.draw();
|
||||||
|
player.addTempSkill('twxianfeng_me',{player:'phaseBegin'});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.draw();
|
||||||
|
target.addTempSkill('twxianfeng_others');
|
||||||
|
target.markAuto('twxianfeng_others',[player]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
me:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
intro:{content:'至其他角色的距离-1'},
|
||||||
|
mod:{
|
||||||
|
globalFrom:function(from,to,distance){
|
||||||
|
return distance-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
others:{
|
||||||
|
trigger:{global:['phaseBegin','die']},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getStorage('twxianfeng_others').contains(event.player);
|
||||||
|
},
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
intro:{content:'至$的距离-1'},
|
||||||
|
content:function(){
|
||||||
|
player.unmarkAuto('twxianfeng_others',[trigger.player]);
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
globalFrom:function(from,to,distance){
|
||||||
|
if(from.getStorage('twxianfeng_others').contains(to)) return distance-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
//夏侯紫萼
|
//夏侯紫萼
|
||||||
twxuechang:{
|
twxuechang:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -6415,7 +6664,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
logTarget:'player',
|
logTarget:'player',
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.cancel();
|
trigger.cancel();
|
||||||
player.damage(trigger.source,trigger.nature,trigger.num).set('card',trigger.card).set('cards',trigger.cards).twgonghuan=true;
|
target.damage(trigger.source?trigger.source:'nosource',trigger.nature,trigger.num).set('card',trigger.card).set('cards',trigger.cards).twgonghuan=true;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
//桥蕤
|
//桥蕤
|
||||||
|
@ -13646,6 +13895,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
twxuechang_info:'出牌阶段限一次。你可以与一名其他角色拼点。若你:赢,你获得其一张牌,若此牌为装备牌,你视为对其使用一张【杀】;没赢,其对你造成1点伤害,且你下次对其造成的伤害+1。',
|
twxuechang_info:'出牌阶段限一次。你可以与一名其他角色拼点。若你:赢,你获得其一张牌,若此牌为装备牌,你视为对其使用一张【杀】;没赢,其对你造成1点伤害,且你下次对其造成的伤害+1。',
|
||||||
twduoren:'夺刃',
|
twduoren:'夺刃',
|
||||||
twduoren_info:'①当你杀死角色后,你可以减1点体力上限,然后获得其所有的非主公技和非隐匿技。②当你令其他角色进入濒死状态时,你失去因〖夺刃①〗获得的技能。',
|
twduoren_info:'①当你杀死角色后,你可以减1点体力上限,然后获得其所有的非主公技和非隐匿技。②当你令其他角色进入濒死状态时,你失去因〖夺刃①〗获得的技能。',
|
||||||
|
tw_yangang:'严纲',
|
||||||
|
twzhiqu:'直取',
|
||||||
|
twzhiqu_info:'结束阶段,你可以选择一名其他角色并依次使用牌堆顶X张牌中的【杀】。搏击:依次使用牌堆顶X张牌中的锦囊牌(X为你距离不大于1内的角色数,且你或其以外的角色不是你以此法使用牌的合法目标)。',
|
||||||
|
twxianfeng:'先锋',
|
||||||
|
twxianfeng_info:'当你于出牌阶段使用【杀】或伤害类锦囊牌对其他角色造成伤害后,你可以令受伤角色选择一项:1.其摸一张牌,然后直到你下个回合开始时,你至其他角色的距离-1;2.你摸一张牌,然后直到你下个回合开始时,其至你的距离-1。',
|
||||||
|
tw_gongsunfan:'公孙范',
|
||||||
|
twhuiyuan:'回援',
|
||||||
|
twhuiyuan_info:'当你于出牌阶段使用牌结算结束后,若你未于此阶段获得过此类型的牌,你可以展示一名角色的一张手牌,若此牌与你使用的牌类型相同,你获得此牌,否则你弃置此牌,然后其摸一张牌。游击:对其造成1点伤害。',
|
||||||
|
twshoushou:'收绶',
|
||||||
|
twshoushou_info:'①当你获得其他角色的牌时,若你在任意角色的攻击范围内,其他角色至你的距离+1。②当你造成或受到伤害后,若你不在任意其他角色的攻击范围内,其他角色至你的距离-1。',
|
||||||
|
|
||||||
tw_mobile:'海外服·稀有专属',
|
tw_mobile:'海外服·稀有专属',
|
||||||
tw_yunchouzhi:'运筹帷幄·智',
|
tw_yunchouzhi:'运筹帷幄·智',
|
||||||
|
|
|
@ -1484,7 +1484,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_taishici:['re_sp_taishici','sp_taishici'],
|
sp_taishici:['re_sp_taishici','sp_taishici'],
|
||||||
mazhong:['mazhong','re_mazhong'],
|
mazhong:['mazhong','re_mazhong'],
|
||||||
wenpin:['re_wenpin','wenpin'],
|
wenpin:['re_wenpin','wenpin'],
|
||||||
liuyan:['jsrg_liuyan','liuyan'],
|
liuyan:['jsrg_liuyan','ol_liuyan','liuyan'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
xinghuoliaoyuan:'星火燎原',
|
xinghuoliaoyuan:'星火燎原',
|
||||||
|
@ -1563,7 +1563,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"xinfu_tushe":"图射",
|
"xinfu_tushe":"图射",
|
||||||
"xinfu_tushe_info":"当你使用非装备牌指定目标后,若你没有基本牌,则你可以摸X张牌。(X为此牌指定的目标数)",
|
"xinfu_tushe_info":"当你使用非装备牌指定目标后,若你没有基本牌,则你可以摸X张牌。(X为此牌指定的目标数)",
|
||||||
"xinfu_limu":"立牧",
|
"xinfu_limu":"立牧",
|
||||||
"xinfu_limu_info":"出牌阶段限一次,你可以将一张♦牌当做【乐不思蜀】对自己使用,然后回复1点体力。只要你的判定区内有牌,你对攻击范围内的其他角色使用牌便没有次数和距离限制。",
|
"xinfu_limu_info":"出牌阶段,你可以将一张♦牌当做【乐不思蜀】对自己使用,然后回复1点体力。只要你的判定区内有牌,你对攻击范围内的其他角色使用牌便没有次数和距离限制。",
|
||||||
xinyingshi:'应势',
|
xinyingshi:'应势',
|
||||||
xinyingshi_info:'出牌阶段开始时,若场上所有角色的武将牌上均没有“酬”,则你可以将任意张牌置于一名角色的武将牌上,称为“酬”。若如此做:当有角色使用牌对有“酬”的角色造成伤害后,其可以获得一张“酬”,并获得牌堆中所有与“酬”花色点数均相同的牌;有“酬”的角色死亡时,你获得其所有“酬”。',
|
xinyingshi_info:'出牌阶段开始时,若场上所有角色的武将牌上均没有“酬”,则你可以将任意张牌置于一名角色的武将牌上,称为“酬”。若如此做:当有角色使用牌对有“酬”的角色造成伤害后,其可以获得一张“酬”,并获得牌堆中所有与“酬”花色点数均相同的牌;有“酬”的角色死亡时,你获得其所有“酬”。',
|
||||||
},
|
},
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue