Suzuki Hiroto
This commit is contained in:
parent
d60e9e6ed2
commit
a45218a0e6
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.
130
character/diy.js
130
character/diy.js
|
@ -60,6 +60,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_jojiro:['male','key',4,['jojiro_shensu','jojiro_shunying']],
|
||||
key_shiroha:['female','key',3,['shiroha_yuzhao','shiroha_guying','shiroha_jiezhao']],
|
||||
key_shizuku:['female','key',3,['shizuku_sizhi','shizuku_biyi']],
|
||||
key_hiroto:['male','key',3,['hiroto_huyu','hiroto_tuolao']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -169,7 +170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua"],
|
||||
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
|
||||
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
|
||||
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"],
|
||||
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"],
|
||||
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
|
||||
},
|
||||
},
|
||||
|
@ -185,6 +186,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_hiroto:'#b神様になった日',
|
||||
key_shizuku:'#bSummer Pockets',
|
||||
key_shiroha:'#bSummer Pockets',
|
||||
key_jojiro:'#bCharlotte<br>战棋专属角色',
|
||||
|
@ -345,6 +347,122 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
hiroto_huyu:{
|
||||
trigger:{global:'phaseUseEnd'},
|
||||
direct:true,
|
||||
noHidden:true,
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&player.hasSkill('hiroto_huyu')&&!player.hasSkill('hiroto_zonglve')&&event.player.countCards('h')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.player.chooseCard(2,'h','是否对'+get.translation(player)+'发动【虎驭】?','将两张手牌交给该角色,然后令其获得〖纵略〗并于下回合获得该角色获得的所有牌').set('goon',function(){
|
||||
var source=trigger.player;
|
||||
if(get.attitude(source,player)>0) return 7;
|
||||
if(source.hp>2) return 4;
|
||||
return 0;
|
||||
}()).set('ai',function(card){
|
||||
return _status.event.goon-get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('hiroto_huyu',trigger.player);
|
||||
player.gain(result.cards,trigger.player,'giveAuto');
|
||||
player.storage.hiroto_huyu2=trigger.player;
|
||||
player.addSkill('hiroto_zonglve');
|
||||
player.addSkill('hiroto_huyu2');
|
||||
}
|
||||
},
|
||||
derivation:'hiroto_zonglve',
|
||||
},
|
||||
hiroto_huyu2:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
player.removeSkill('hiroto_huyu2');
|
||||
player.removeSkill('hiroto_zonglve');
|
||||
var target=player.storage.hiroto_huyu2;
|
||||
if(target&&target.isAlive()){
|
||||
var cards=[];
|
||||
player.getHistory('gain',function(evt){
|
||||
cards.addArray(evt.cards);
|
||||
});
|
||||
var he=player.getCards('he');
|
||||
cards=cards.filter(function(card){
|
||||
return he.contains(card);
|
||||
});
|
||||
if(cards.length) target.gain(cards,player,'giveAuto');
|
||||
}
|
||||
},
|
||||
mark:'character',
|
||||
intro:{content:'已成为$的工具人'},
|
||||
},
|
||||
hiroto_zonglve:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('h')>0;
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')>0;
|
||||
},
|
||||
filterCard:true,
|
||||
delay:false,
|
||||
charlotte:true,
|
||||
position:'h',
|
||||
discard:false,
|
||||
lose:false,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.choosePlayerCard(true,target,'h');
|
||||
'step 1'
|
||||
event.card=result.cards[0];
|
||||
player.$compare(cards[0],target,event.card);
|
||||
game.log(player,'展示了',cards[0]);
|
||||
game.log(target,'展示了',event.card)
|
||||
game.delay(3.5);
|
||||
'step 2'
|
||||
game.broadcastAll(ui.clear);
|
||||
if(get.color(cards[0],player)==get.color(card,target)){
|
||||
target.damage('nocard');
|
||||
target.discard(card).animate=false;
|
||||
}
|
||||
else player.gainPlayerCard(target,true,2,'hej');
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+3;
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:-1,
|
||||
},
|
||||
},
|
||||
},
|
||||
hiroto_tuolao:{
|
||||
trigger:{player:'phaseAfter'},
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'water',
|
||||
filter:function(event,player){
|
||||
return player.phaseNumber>1&&!player.getHistory('lose',function(evt){
|
||||
return evt.getParent(2).name=='hiroto_huyu2';
|
||||
}).length;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('hiroto_tuolao');
|
||||
player.draw(3);
|
||||
player.removeSkill('hiroto_huyu');
|
||||
player.addSkill('hiroto_zonglve');
|
||||
},
|
||||
},
|
||||
shizuku_sizhi:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
|
@ -651,8 +769,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
direct:true,
|
||||
filter:function(event,player,name){
|
||||
if(name=='damageBegin3') return true;
|
||||
if(!player.storage.shiroha_jiezhao&&player.hasSkill('shiroha_guying_temp')) return false;
|
||||
if(name=='damageBegin3') return true;
|
||||
return player!=event.player;
|
||||
},
|
||||
content:function(){
|
||||
|
@ -11587,6 +11705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_jojiro:'高城丈士朗',
|
||||
key_shiroha:'鸣濑白羽',
|
||||
key_shizuku:'水织静久',
|
||||
key_hiroto:'铃木央人',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -11879,6 +11998,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shiroha_guying_rewrite_info:'当你受到伤害/对其他角色造成伤害时,你可进行判定。若结果为红色/黑色,此伤害-1/+1。',
|
||||
shiroha_jiezhao:'解兆',
|
||||
shiroha_jiezhao_info:'一名角色的判定牌生效前,你可打出一张「兆」代替之。当你以此法移去最后一张「兆」后,你加1点体力上限并回复1点体力,然后修改〖孤影〗并随机获得以下技能中的一个:〖炒饭〗/〖习事〗/〖呣啾〗/〖结伴〗。',
|
||||
hiroto_huyu:'虎驭',
|
||||
hiroto_huyu2:'虎驭',
|
||||
hiroto_huyu_info:'其他角色的出牌阶段结束时,若你没有技能〖纵略〗,则其可将两张手牌交给你。若如此做,你获得〖纵略〗。你的下回合结束时,你失去〖纵略〗并将本回合内获得的所有牌交给该角色。',
|
||||
hiroto_zonglve:'纵略',
|
||||
hiroto_zonglve_info:'锁定技,你的手牌上限+3。出牌阶段限一次,你可以将一张手牌背面朝下放置,并展示一名其他角色的一张手牌。若这两张牌:颜色相同,你对其造成1点伤害并弃置其展示的牌。颜色不同,你获得该角色区域内的两张牌。',
|
||||
hiroto_tuolao:'脱牢',
|
||||
hiroto_tuolao_info:'觉醒技,回合结束后,若此回合不是你的第一个回合且你本轮内未因〖虎驭〗失去过牌,则你摸三张牌,失去〖虎驭〗并获得〖纵略〗。',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
|
|
@ -11,11 +11,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobile_sunben:["re_sunben"],
|
||||
mobile_standard:["xin_xiahoudun"],
|
||||
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"],
|
||||
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran"],
|
||||
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran","re_lingtong","re_liubiao"],
|
||||
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
re_lingtong:['male','wu',4,['rexuanfeng']],
|
||||
re_liubiao:['male','qun',3,['zishou','rezongshi']],
|
||||
simashi:['male','wei',4,['baiyi','jinglve','shanli']],
|
||||
yanghuiyu:['female','wei',3,['hongyi','quanfeng']],
|
||||
xin_zhuran:['male','wu',4,['mobiledanshou']],
|
||||
|
@ -6430,6 +6432,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
jinglve_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,将其中一张牌标记为「死士」。当其使用对应的实体牌中包含「死士」的牌时,你取消此牌的所有目标。当「死士」牌不因使用而进入弃牌堆,或其回合结束后,若「死士」牌仍在其区域内,则你获得此牌。',
|
||||
shanli:'擅立',
|
||||
shanli_info:'觉醒技,准备阶段,若你已发动过〖败移〗且对至少两名角色发动过〖景略〗,则你减1点体力上限并选择一名角色。系统随机选择三个不为〖忘隙(仲村由理)〗的主公技,然后你选择其中一个技能,令其获得之。其将交互表情中的【拖鞋】和【酒杯】替换为【手铐】和【玉玺】。',
|
||||
re_lingtong:'手杀凌统',
|
||||
re_liubiao:'手杀刘表',
|
||||
mobile_standard:'手杀异构·标准包',
|
||||
mobile_shenhua:'手杀异构·神话再临',
|
||||
mobile_yijiang1:'手杀异构·一将成名',
|
||||
|
|
|
@ -12,12 +12,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_yijiang3:["liru","old_zhuran","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||
old_yijiang67:["ol_zhangrang","ol_liuyu"],
|
||||
old_yijiang67:["ol_zhangrang","ol_liuyu","ol_xinxianying"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","old_wangyun"],
|
||||
old_mobile:["old_caochun","old_majun"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
ol_yuanshu:['male','qun',4,['wangzun','tongji']],
|
||||
pangde:['male','qun',4,['mashu','mengjin']],
|
||||
ol_huaxiong:["male","qun",6,["new_reyaowu"]],
|
||||
|
@ -786,6 +787,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
oldxuanfeng:'旋风',
|
||||
oldxuanfeng_info:'每当你失去一次装备区里的牌时,你可以执行下列两项中的一项:1.视为对任意一名其他角色使用一张【杀】(此【杀】不计入每回合的使用限制);2.对与你距离1以内的一名其他角色造成一点伤害',
|
||||
ol_yuanshu:'旧袁术',
|
||||
ol_xinxianying:'旧辛宪英',
|
||||
|
||||
old_standard:'标准包',
|
||||
old_shenhua:'神话再临',
|
||||
|
|
|
@ -240,6 +240,7 @@ window.noname_character_rank={
|
|||
'ol_zhangchangpu',
|
||||
'shamoke',
|
||||
'diy_wenyang',
|
||||
'xin_lingtong',
|
||||
'key_misuzu',
|
||||
'key_sunohara',
|
||||
'key_umi',
|
||||
|
@ -253,6 +254,7 @@ window.noname_character_rank={
|
|||
'key_shiroha',
|
||||
'key_shiori',
|
||||
'key_iwasawa',
|
||||
'key_hiroto',
|
||||
'mini_zhugeliang',
|
||||
],
|
||||
am:[
|
||||
|
@ -406,7 +408,6 @@ window.noname_character_rank={
|
|||
'zhoutai',
|
||||
're_xunyu',
|
||||
'yujin_yujin',
|
||||
'xin_lingtong',
|
||||
're_bulianshi',
|
||||
're_zhonghui',
|
||||
're_zhuran',
|
||||
|
@ -535,6 +536,7 @@ window.noname_character_rank={
|
|||
'sunquan',
|
||||
'daqiao',
|
||||
'diaochan',
|
||||
'mini_diaochan',
|
||||
'liubei',
|
||||
'xf_yiji',
|
||||
'zhoufei',
|
||||
|
@ -603,6 +605,7 @@ window.noname_character_rank={
|
|||
'buzhi',
|
||||
'jsp_zhaoyun',
|
||||
'huangjinleishi',
|
||||
're_xinxianying',
|
||||
'sp_wangyuanji',
|
||||
'sp_xinxianying',
|
||||
'sp_liuxie',
|
||||
|
@ -1252,6 +1255,7 @@ window.noname_character_rank={
|
|||
'key_yusa',
|
||||
'key_misa',
|
||||
'key_shizuku',
|
||||
'key_hiroto',
|
||||
'kaisa',
|
||||
],
|
||||
rare:[
|
||||
|
@ -1495,6 +1499,10 @@ window.noname_character_rank={
|
|||
'mini_sunquan',
|
||||
'mini_jiangwei',
|
||||
'mini_zhangchunhua',
|
||||
'mini_diaochan',
|
||||
'xin_lingtong',
|
||||
'xin_liubiao',
|
||||
're_xinxianying',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
|
|
@ -9,8 +9,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
||||
refresh_lin:['re_zhurong','re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo'],
|
||||
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
|
||||
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_lingtong','re_masu','xin_xusheng','xin_fazheng','xin_lingtong'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi','xin_liubiao'],
|
||||
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','xin_fazheng','xin_lingtong'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'],
|
||||
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu'],
|
||||
|
@ -18,8 +18,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
connect:true,
|
||||
character:{
|
||||
xin_lingtong:['male','wu',4,['decadexuanfeng','yongjin'],['unseen']],
|
||||
xin_liubiao:['male','qun',3,['decadezishou','decadezongshi'],['unseen']],
|
||||
xin_lingtong:['male','wu',4,['decadexuanfeng','yongjin']],
|
||||
xin_liubiao:['male','qun',3,['decadezishou','decadezongshi']],
|
||||
re_caoxiu:['male','wei',4,['qianju','reqingxi']],
|
||||
re_sunxiu:['male','wu',3,['reyanzhu','rexingxue','zhaofu'],['zhu']],
|
||||
ol_dengai:['male','wei',4,['oltuntian','olzaoxian'],['unseen']],
|
||||
|
@ -30,7 +30,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_bulianshi:['female','wu',3,['reanxu','zhuiyi']],
|
||||
re_hanhaoshihuan:['male','wei',4,['reshenduan','reyonglve']],
|
||||
re_panzhangmazhong:['male','wu',4,['reduodao','reanjian']],
|
||||
re_liubiao:['male','qun',3,['zishou','rezongshi']],
|
||||
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
||||
wangyi:['female','wei',3,['zhenlie','miji']],
|
||||
old_madai:['male','shu',4,['mashu','qianxi']],
|
||||
|
@ -41,7 +40,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_sunluban:['female','wu',3,['rechanhui','rejiaojin']],
|
||||
re_zhonghui:['male','wei',4,['requanji','zili']],
|
||||
re_handang:['male','wu',4,['regongji','jiefan']],
|
||||
re_lingtong:['male','wu',4,['rexuanfeng']],
|
||||
yujin_yujin:['male','wei',4,['rejieyue']],
|
||||
re_caozhang:['male','wei',4,['new_jiangchi']],
|
||||
re_chengpu:['male','wu',4,['decadelihuo','decadechunlao']],
|
||||
|
@ -139,7 +137,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{target:'useCardToTargeted'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player!=_status.currentPhase&&player.countCards('h')>player.getHandcardLimit()&&
|
||||
return player!=_status.currentPhase&&player.countCards('h')>=player.getHandcardLimit()&&
|
||||
(get.type(event.card)=='delay'||get.color(event.card)=='nocolor');
|
||||
},
|
||||
content:function(){
|
||||
|
@ -148,7 +146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(target!=_status.currentPhase&&target.countCards('h')>target.getHandcardLimit()&&
|
||||
if(target!=_status.currentPhase&&target.countCards('h')>=target.getHandcardLimit()&&
|
||||
(get.type(card)=='delay'||get.color(card)=='nocolor')) return 'zerotarget';
|
||||
},
|
||||
},
|
||||
|
@ -195,6 +193,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
yongjin:{
|
||||
audio:2,
|
||||
audioname:['xin_lingtong'],
|
||||
unique:true,
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
|
@ -385,13 +385,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
decadexuanfeng:{
|
||||
audio:'xuanfeng',
|
||||
audioname:['boss_lvbu3','re_heqi'],
|
||||
audioname:['boss_lvbu3','re_heqi','xin_lingtong'],
|
||||
trigger:{
|
||||
player:['loseAfter','phaseDiscardEnd'],
|
||||
global:['equipAfter','addJudgeAfter','gainAfter'],
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(_status.dying.length) return false;
|
||||
if(event.name=='phaseDiscard'){
|
||||
var cards=[];
|
||||
player.getHistory('lose',function(evt){
|
||||
|
@ -452,7 +453,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
reverseEquip:true,
|
||||
noe:true
|
||||
noe:true,
|
||||
expose:0.2,
|
||||
}
|
||||
},
|
||||
oltuntian:{
|
||||
|
@ -4077,6 +4079,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinleiji:{
|
||||
group:'xinleiji_misa',
|
||||
audio:2,
|
||||
derivation:'xinleiji_faq',
|
||||
audioname:['boss_qinglong'],
|
||||
trigger:{player:['useCard','respond']},
|
||||
filter:function(event,player){
|
||||
|
@ -4131,7 +4134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'xinleiji',
|
||||
trigger:{player:'judgeAfter'},
|
||||
direct:true,
|
||||
disableReason:['暴虐','助祭','弘仪'],
|
||||
disableReason:['暴虐','助祭','弘仪','孤影'],
|
||||
filter:function(event,player){
|
||||
return !lib.skill.xinleiji_misa.disableReason.contains(event.judgestr)&&['spade','club'].contains(event.result.suit);
|
||||
},
|
||||
|
@ -4224,6 +4227,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
xinleiji_faq:{},
|
||||
reqingguo:{
|
||||
audio:2,
|
||||
enable:['chooseToRespond','chooseToUse'],
|
||||
|
@ -7967,8 +7971,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olzhiba_info:'主公技,其他吴势力的角色的出牌阶段限一次,其可以与你拼点(你可拒绝此拼点)。若其没赢,你可以获得两张拼点牌。你的出牌阶段限一次,你可以和一名吴势力角色拼点,若你赢,你获得两张拼点牌。',
|
||||
olzhiba2:'制霸',
|
||||
xinleiji:'雷击',
|
||||
xinleiji_misa:'雷击',
|
||||
xinguidao:'鬼道',
|
||||
xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。<br>②当你不因〖暴虐〗或〖助祭〗或〖弘仪〗而进行的判定的判定牌生效后,若结果为:黑桃,你可对一名其他角色造成2点雷电伤害;梅花:你回复1点体力并可对一名其他其他角色造成1点雷电伤害。',
|
||||
xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。②当你的判定的判定牌生效后,若结果为:黑桃,你可对一名其他角色造成2点雷电伤害;梅花:你回复1点体力并可对一名其他其他角色造成1点雷电伤害。',
|
||||
xinleiji_append:'<span style="font-family: yuanli">不能触发〖雷击〗的判定:〖暴虐〗、〖助祭〗、<br>〖弘仪〗、〖孤影〗。</span>',
|
||||
xinleiji_faq:'不能触发〖雷击〗的判定',
|
||||
xinleiji_faq_info:'<br>董卓/界董卓〖暴虐〗<br>黄巾雷使〖助祭〗<br>羊徽瑜〖弘仪〗<br>鸣濑白羽〖孤影〗',
|
||||
xinguidao_info:'一名角色的判定牌生效前,你可以打出一张黑色牌作为判定牌并获得原判定牌。若你以此法打出的牌为黑桃2-9,则你摸一张牌。',
|
||||
reqiangxi:"强袭",
|
||||
"reqiangxi_info":"出牌阶段对每名其他角色限一次,你可以选择一项:1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害;2. 弃置一张武器牌并对你攻击范围内的一名其他角色造成一点伤害。",
|
||||
|
@ -8224,7 +8232,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yujin_yujin:'界于禁',
|
||||
rejieyue:'节钺',
|
||||
rejieyue_info:'结束阶段开始时,你可以将一张牌交给一名其他角色。然后其选择一项:令你摸三张牌:或其保留一张手牌和装备区的牌,然后弃置其余的牌。',
|
||||
re_lingtong:'界凌统',
|
||||
rexuanfeng:'旋风',
|
||||
rexuanfeng_info:'当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌,或将一名其他角色装备区内的一张牌移动到另一名其他角色的装备区内。',
|
||||
olpaoxiao:'咆哮',
|
||||
|
@ -8264,7 +8271,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
wangyi:'界王异',
|
||||
guanzhang:'界关兴张苞',
|
||||
xin_fazheng:'界法正',
|
||||
re_liubiao:'界刘表',
|
||||
rezishou:'自守',
|
||||
rezishou2:'自守',
|
||||
//rezishou_info:'摸牌阶段,你可以多摸X张牌。若如此做,本回合你对其他角色造成伤害时,防止此伤害,且结束阶段,若你本回合没有使用牌指定其他角色为目标,则你可以将场上的一张装备牌移动到自己的装备区。(X为场上势力数)',
|
||||
|
@ -8318,7 +8324,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_caoxiu:'界曹休',
|
||||
xin_lingtong:'界凌统',
|
||||
decadexuanfeng:'旋风',
|
||||
decadexuanfeng_info:'当你于弃牌阶段弃置过至少两张牌,或当你失去装备区里的牌后,你可以弃置至多两名其他角色的共计两张牌。若此时是你的回合内,你可以对其中一名目标造成1点伤害。',
|
||||
decadexuanfeng_info:'当你于弃牌阶段弃置过至少两张牌,或当你失去装备区里的牌后,若场上没有处于濒死状态的角色,则你可以弃置至多两名其他角色的共计两张牌。若此时处于你的回合内,你可以对其中一名目标角色造成1点伤害。',
|
||||
yongjin:'勇进',
|
||||
yongjin_info:'限定技,出牌阶段,你可以依次移动场上的至多三张不同的装备牌。',
|
||||
xin_liubiao:'界刘表',
|
||||
|
@ -8326,7 +8332,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
decadezishou_zhiheng:'自守',
|
||||
decadezishou_info:'摸牌阶段,你可以多摸X张牌,然后本回合你对其他角色造成伤害时,防止此伤害。结束阶段,若你本回合没有使用牌指定其他角色为目标,你可以弃置任意张花色不同的手牌,然后摸等量的牌。',
|
||||
decadezongshi:'宗室',
|
||||
decadezongshi_info:'锁定技,你的手牌上限+X(X为现存势力数)。你的回合外,若你的手牌数大于等于手牌上限,延时类锦囊牌或无颜色的牌对你无效。',
|
||||
decadezongshi_info:'锁定技,你的手牌上限+X(X为现存势力数)。你的回合外,若你的手牌数大于等于手牌上限,则当你成为延时类锦囊牌或无颜色的牌的目标后,你令此牌对你无效。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -1101,12 +1101,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.line(result.targets);
|
||||
player.logSkill('liangyin');
|
||||
player.logSkill('liangyin',result.targets);
|
||||
result.targets[0].draw();
|
||||
}else{
|
||||
event.finish();
|
||||
};
|
||||
}
|
||||
},
|
||||
sub:true,
|
||||
},
|
||||
|
@ -1127,12 +1124,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.line(result.targets);
|
||||
player.logSkill('liangyin');
|
||||
player.logSkill('liangyin',result.targets);
|
||||
result.targets[0].chooseToDiscard('he',1,true);
|
||||
}else{
|
||||
event.finish();
|
||||
};
|
||||
}
|
||||
},
|
||||
sub:true,
|
||||
},
|
||||
|
@ -1162,8 +1156,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.lose(result.cards,ui.special,'toStorage');
|
||||
game.log(player,'将',result.cards,'置于其武将牌上');
|
||||
player.addSkill('kongsheng2');
|
||||
}else{
|
||||
event.finish();
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -1466,7 +1458,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.finish();
|
||||
};
|
||||
'step 2'
|
||||
//player.line(event.target,'green');
|
||||
player.logSkill('nzry_yili',target);
|
||||
if(result.index==1){
|
||||
player.removeMark('nzry_huaiju',1);
|
||||
|
@ -1977,12 +1968,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.storage.nzry_zhenliang=false;
|
||||
player.line(result.targets);
|
||||
player.logSkill('nzry_zhenliang');
|
||||
player.logSkill('nzry_zhenliang',result.targets);
|
||||
result.targets[0].draw();
|
||||
}else{
|
||||
event.finish();
|
||||
};
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
346
character/sp2.js
346
character/sp2.js
|
@ -4,10 +4,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
//jin_zhangchunhua:['female','wei',3,['jiang','hunzi'],['hiddenSkill']],
|
||||
//jin_simayi:['female','wei',3,['reyingzi','gzyinghun'],['hiddenSkill']],
|
||||
re_xinxianying:['female','wei',3,['rezhongjian','recaishi']],
|
||||
luyusheng:['female','wu',3,['sicong','xianzhao'],['unseen']],
|
||||
ol_dingyuan:['male','qun',4,['weihuan','shouchong'],['unseen']],
|
||||
liubian:['male','qun',3,['shiyuan','dushi']],
|
||||
xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']],
|
||||
xin_baosanniang:['female','shu',3,['decadewuniang','decadexushen']],
|
||||
re_hejin:['male','qun',4,['spmouzhu']],
|
||||
hansui:['male','qun',4,['spniluan','spweiwu']],
|
||||
liuhong:['male','qun',4,['yujue','tuxing'],['unseen']],
|
||||
|
@ -15,7 +18,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
caoxing:['male','qun',4,['cxliushi','zhanwan']],
|
||||
re_maliang:['male','shu',3,['rexiemu','heli'],[]],
|
||||
ol_yujin:['male','wei',4,['rezhenjun']],
|
||||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
caobuxing:['male','wu',3,['moying','juanhui'],[]],
|
||||
re_sunluyu:['female','wu',3,['remeibu','remumu']],
|
||||
re_liuzan:['male','wu',4,['refenyin','liji']],
|
||||
|
@ -80,7 +82,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_huangjin:['liuhong','zhujun','re_hejin','hansui'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang','liubian'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','liubian','re_xinxianying'],
|
||||
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
|
||||
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
|
||||
sp_yongjian:["ns_chendao","yj_caoang"],
|
||||
|
@ -88,8 +90,198 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
decadewuniang:{
|
||||
trigger:{
|
||||
player:["useCard","respond"],
|
||||
},
|
||||
audio:'xinfu_wuniang',
|
||||
direct:true,
|
||||
filter:function (event,player){
|
||||
return event.card.name=='sha';
|
||||
},
|
||||
content:function (){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('decadewuniang'),function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return target.countGainableCards(player,'he')>0;
|
||||
}).set('ai',function(target){
|
||||
return 10-get.attitude(_status.event.player,target);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('xinfu_wuniang',target);
|
||||
player.line(target,'fire');
|
||||
player.gainPlayerCard(target,'he',true);
|
||||
target.draw();
|
||||
if(!player.storage.decadexushen) event.finish();
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
var list=game.filterPlayer(function(current){
|
||||
return current.name=='guansuo'||current.name2=='guansuo';
|
||||
});
|
||||
if(list.length) game.asyncDraw(list);
|
||||
else event.finish();
|
||||
'step 3'
|
||||
game.delayx();
|
||||
},
|
||||
},
|
||||
rezhongjian:{
|
||||
enable:'phaseUse',
|
||||
audio:'zhongjian',
|
||||
usable:2,
|
||||
filter:function(event,player){
|
||||
if(player.getStat().skill.rezhongjian&&!player.hasSkill('recaishi2')) return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return lib.skill.rezhongjian.filterTarget(null,player,current);
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(!player.storage.rezhongjian2) return true;
|
||||
return !player.storage.rezhongjian2[0].contains(target)&&!player.storage.rezhongjian2[1].contains(target);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl().set('prompt','忠鉴:为'+get.translation(target)+'选择获得一项效果').set('choiceList',[
|
||||
'令其于下回合开始前首次造成伤害后弃置两张牌',
|
||||
'令其于下回合开始前首次受到伤害后摸两张牌',
|
||||
]).set('ai',function(){
|
||||
return get.attitude(_status.event.player,_status.event.getParent().target)>0?1:0;
|
||||
});
|
||||
'step 1'
|
||||
player.addTempSkill('rezhongjian2',{player:'phaseBeginStart'});
|
||||
//var str=['造成伤害弃牌','受到伤害摸牌'][result.index];
|
||||
//player.popup(str,['fire','wood'][result.index]);
|
||||
//game.log(player,'选择了','#y'+str)
|
||||
player.storage.rezhongjian2[result.index].push(target);
|
||||
player.markSkill('rezhongjian2');
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
expose:0,
|
||||
result:{
|
||||
player:function(player,target){
|
||||
if(get.attitude(player,target)==0) return false;
|
||||
var sgn=get.sgn((get.realAttitude||get.attitude)(player,target));
|
||||
if(game.countPlayer(function(current){
|
||||
return get.sgn((get.realAttitude||get.attitude)(player,current))==sgn;
|
||||
})<=game.countPlayer(function(current){
|
||||
return get.sgn((get.realAttitude||get.attitude)(player,current))!=sgn;
|
||||
})) return 1;
|
||||
return 0.9;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
rezhongjian2:{
|
||||
trigger:{
|
||||
global:['damageSource','damageEnd'],
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player,name){
|
||||
var num=(name=='damageSource'?0:1);
|
||||
var logTarget=(name=='damageSource'?event.source:event.player);
|
||||
return logTarget&&logTarget.isAlive()&&player.storage.rezhongjian2[num].contains(logTarget);
|
||||
},
|
||||
logTarget:function(event,player,name){
|
||||
return (name=='damageSource'?event.source:event.player);
|
||||
},
|
||||
content:function(){
|
||||
var num=(event.triggername=='damageSource'?0:1);
|
||||
var target=(event.triggername=='damageSource'?trigger.source:trigger.player);
|
||||
var storage=player.storage.rezhongjian2;
|
||||
storage[num].remove(target);
|
||||
if(storage[0].length+storage[1].length) player.markSkill('rezhongjian2');
|
||||
else player.removeSkill('rezhongjian2');
|
||||
target[event.triggername=='damageSource'?'chooseToDiscard':'draw'](2,true,'he');
|
||||
player.draw();
|
||||
},
|
||||
init:function(player,skill){
|
||||
if(!player.storage[skill]) player.storage[skill]=[[],[]];
|
||||
},
|
||||
onremove:true,
|
||||
intro:{
|
||||
markcount:function(storage){
|
||||
return storage[0].length+storage[1].length;
|
||||
},
|
||||
mark:function(dialog,storage,player){
|
||||
if(player==game.me||player.isUnderControl()){
|
||||
if(storage[0].length){
|
||||
dialog.addText('弃牌');
|
||||
dialog.add([storage[0],'player']);
|
||||
}
|
||||
if(storage[1].length){
|
||||
dialog.addText('摸牌');
|
||||
dialog.add([storage[1],'player']);
|
||||
}
|
||||
}
|
||||
else{
|
||||
var list=storage[0].concat(storage[1]).sortBySeat(player);
|
||||
dialog.add([list,'player']);
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
recaishi:{
|
||||
trigger:{player:'phaseDrawEnd'},
|
||||
direct:true,
|
||||
audio:'caishi',
|
||||
isSame:function(event){
|
||||
var cards=[];
|
||||
event.player.getHistory('gain',function(evt){
|
||||
if(evt.getParent().name=='draw'&&evt.getParent('phaseDraw')==event) cards.addArray(evt.cards);
|
||||
});
|
||||
if(!cards.length) return 'nogain';
|
||||
var list=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
list.add(get.suit(cards[i]));
|
||||
}
|
||||
if(list.length==1) return true;
|
||||
if(list.length==cards.length) return false;
|
||||
return 'nogain';
|
||||
},
|
||||
filter:function(event,player){
|
||||
var isSame=lib.skill.recaishi.isSame(event);
|
||||
if(isSame=='nogain') return false;
|
||||
return isSame||player.isDamaged();
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(lib.skill.recaishi.isSame(trigger)){
|
||||
player.logSkill('recaishi');
|
||||
player.addTempSkill('recaishi2');
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
player.chooseBool(get.prompt('recaishi'),'回复1点体力,然后本回合内不能对自己使用牌').set('ai',function(){
|
||||
if(player.countCards('h','tao')) return false;
|
||||
if(player.hp<2) return true;
|
||||
return player.countCards('h',function(card){
|
||||
var info=get.info(card);
|
||||
return info&&(info.toself||info.selectTarget==-1)&&player.canUse(card,player)&&player.getUseValue(card)>0;
|
||||
})==0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('recaishi');
|
||||
player.recover();
|
||||
player.addTempSkill('recaishi3');
|
||||
}
|
||||
},
|
||||
},
|
||||
recaishi2:{},
|
||||
recaishi3:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
},
|
||||
},
|
||||
mark:true,
|
||||
intro:{content:'本回合内不能对自己使用牌'},
|
||||
},
|
||||
minishangshi:{
|
||||
audio:2,
|
||||
audio:'shangshi',
|
||||
trigger:{player:['loseAfter','changeHp']},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
|
@ -177,6 +369,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
minitiaoxin:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
audio:'tiaoxin',
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countDiscardableCards(player,'h')>0;
|
||||
|
@ -213,7 +406,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
minishendao:{
|
||||
audio:'rehuashen',
|
||||
trigger:{
|
||||
global:"judge",
|
||||
player:"judge",
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
|
@ -957,86 +1150,48 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
decadexushen:{
|
||||
derivation:'decadezhennan',
|
||||
audio:'xinfu_xushen',
|
||||
subSkill:{
|
||||
count:{
|
||||
trigger:{
|
||||
player:["recoverBegin","recoverAfter"],
|
||||
},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
filter:function(event,player,name){
|
||||
if(name=='recoverAfter') return event.decadexushen===true;
|
||||
if(!event.source||player==event.source) return false;
|
||||
if(!player.isDying()||event.getParent('dying').player!=player) return false;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current.name=='guansuo'||current.name2=='guansuo';
|
||||
})) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
if(event.triggername=='recoverBegin') trigger.decadexushen=true;
|
||||
else event.getParent('dying').decadexushen_source=trigger.source;
|
||||
},
|
||||
sub:true,
|
||||
},
|
||||
},
|
||||
group:["decadexushen_count"],
|
||||
trigger:{
|
||||
player:"dyingAfter",
|
||||
},
|
||||
trigger:{player:'dying'},
|
||||
limited:true,
|
||||
filter:function(event,player){
|
||||
return event.decadexushen_source&&event.decadexushen_source.isAlive();
|
||||
},
|
||||
logTarget:'decadexushen_source',
|
||||
skillAnimation:true,
|
||||
animationColor:'fire',
|
||||
content:function (){
|
||||
'step 0'
|
||||
animationColor:'orange',
|
||||
filter:function(event,player){
|
||||
return player.hp<1;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('decadexushen');
|
||||
event.target=trigger.decadexushen_source;
|
||||
event.videoId=lib.status.videoId++;
|
||||
var sex='伴侣';
|
||||
switch(event.target.sex){
|
||||
case 'male':sex='丈夫';break;
|
||||
case 'female':sex='妻子';break;
|
||||
}
|
||||
game.broadcastAll(function(str,id){
|
||||
var dialog=ui.create.dialog('许身','hidden');
|
||||
dialog.videoId=id;
|
||||
dialog.addText(str,false);
|
||||
dialog.add(' ');
|
||||
dialog.open();
|
||||
},get.translation(player)+',你是否发誓嫁'+get.translation(event.target)+'作为你的'+sex+',无论顺境或是逆境,富裕或贫穷,健康或疾病,快乐或忧愁,风雨同舟,患难与共,同甘共苦,缔结神圣的婚姻契约,成为终生的伴侣?',event.videoId);
|
||||
game.delay(4);
|
||||
player.chooseBool().set('ai',function(){
|
||||
var evt=_status.event.getParent();
|
||||
return get.attitude(evt.player,evt.target)>0;
|
||||
}).set('prompt',false);
|
||||
player.addSkill('decadezhennan');
|
||||
player.recover();
|
||||
player.addTempSkill('decadexushen2');
|
||||
trigger.decadexushen=true;
|
||||
},
|
||||
},
|
||||
decadexushen2:{
|
||||
trigger:{player:'dyingAfter'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return event.decadexushen==true&&!game.hasPlayer(function(current){
|
||||
return current.name=='guansuo'||current.name2=='guansuo';
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(lib.filter.notMe,'许身:是否令一名其他角色选择是否将其武将牌替换为“关索”并令其摸三张牌?').set('ai',function(target){
|
||||
return get.attitude(_status.event.player,target)-4;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.chat('我愿意!');
|
||||
var sex='伴侣';
|
||||
switch(player.sex){
|
||||
case 'male':sex='丈夫';break;
|
||||
case 'female':sex='妻子';break;
|
||||
}
|
||||
game.broadcastAll(function(str,id){
|
||||
var dialog=get.idDialog(id);
|
||||
if(dialog) dialog.content.childNodes[1].innerHTML='<div class="text">'+str+'</div>';
|
||||
},get.translation(target)+',你是否发誓娶'+get.translation(player)+'作为你的妻子,无论顺境或是逆境,富裕或贫穷,健康或疾病,快乐或忧愁,风雨同舟,患难与共,同甘共苦,缔结神圣的婚姻契约,成为终生的伴侣?',event.videoId);
|
||||
game.delay(4);
|
||||
target.chooseBool().set('ai',function(){
|
||||
return true;
|
||||
}).set('prompt',false);
|
||||
if(!result.bool){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
else event.goto(4);
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.line(target,'fire');
|
||||
target.chooseBool('许身:是否将自己的一张武将牌替换为“关索”并令'+get.translation(player)+'摸三张牌?');
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
target.chat('我愿意!');
|
||||
if(target.name2!=undefined){
|
||||
target.chooseControl(target.name1,target.name2).set('prompt','请选择要更换的武将牌');
|
||||
target.chooseControl(target.name,target.name2).set('prompt','请选择要更换的武将牌');
|
||||
}
|
||||
else event._result={control:target.name};
|
||||
}
|
||||
|
@ -1047,30 +1202,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
_status.characterlist.add(result.control);
|
||||
_status.characterlist.remove('guansuo');
|
||||
}
|
||||
if(target.group!='shu') target.changeGroup('shu');
|
||||
target.draw(3);
|
||||
'step 4'
|
||||
game.broadcastAll('closeDialog',event.videoId);
|
||||
player.recover();
|
||||
player.addSkill('decadezhennan');
|
||||
},
|
||||
mark:true,
|
||||
intro:{
|
||||
content:"limited",
|
||||
target.draw(3);
|
||||
},
|
||||
},
|
||||
decadezhennan:{
|
||||
audio:'xinfu_zhennan',
|
||||
trigger:{
|
||||
target:"useCardToTargeted",
|
||||
global:"useCardToPlayered",
|
||||
},
|
||||
filter:function (event,player){
|
||||
return event.targets&&event.targets.length>1&&get.type2(event.card)=='trick';
|
||||
return event.isFirstTarget&&event.targets&&event.targets.length>1&&get.type2(event.card)=='trick';
|
||||
},
|
||||
direct:true,
|
||||
content:function (){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt('decadezhennan'),'对一名其他角色造成1点随机伤害',function(card,player,target){
|
||||
player.chooseTarget(get.prompt('decadezhennan'),'对一名其他角色造成1点伤害',function(card,player,target){
|
||||
return target!=player;
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
|
@ -6632,6 +6779,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(player.storage.mubing2) return '出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。';
|
||||
return '出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。';
|
||||
},
|
||||
rezhongjian:function(player){
|
||||
return '出牌阶段限'+(player.hasSkill('recaishi2')?'两':'一')+'次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。'
|
||||
},
|
||||
},
|
||||
characterReplace:{
|
||||
lijue:['lijue','ns_lijue'],
|
||||
|
@ -6911,7 +7061,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
juanhui2:'绢绘',
|
||||
juanhui2_backup:'绢绘',
|
||||
juanhui_info:'结束阶段,你可以选择一名其他角色。记录该角色下回合的出牌阶段里使用的基本牌和普通锦囊牌(每种牌名限记一次),你的下回合出牌阶段,可将一张手牌当这些牌里的任意一张牌使用(每张限使用一次,且【杀】不计次数)。当"绢绘"的牌全部用完时,你回复1点体力并将手牌摸至三张。',
|
||||
ol_xinxianying:'OL辛宪英',
|
||||
ol_yujin:'OL于禁',
|
||||
re_maliang:'马良',
|
||||
rexiemu:'协穆',
|
||||
|
@ -6942,9 +7091,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_hejin:'何进',
|
||||
xin_baosanniang:'鲍三娘',
|
||||
decadexushen:"许身",
|
||||
decadexushen_info:"限定技,当你因其他角色而脱离濒死状态后,若场上没有“关索”,则你可发动此技能。你可令其选择是否将自己的一张武将牌变更为“关索”并摸三张牌。然后你回复一点体力,并获得技能〖镇南〗。",
|
||||
decadexushen2:'许身',
|
||||
decadexushen_info:"限定技,当你进入濒死状态后,你可以回复1点体力并获得技能“镇南”,然后如果你脱离濒死状态且“关索”不在场,你可令一名其他角色选择是否用“关索”代替其武将并令其摸三张牌。",
|
||||
decadezhennan:"镇南",
|
||||
decadezhennan_info:"当你成为锦囊牌的目标后,若此牌的目标数大于1,则你可以对一名其他角色造成1点伤害。",
|
||||
decadezhennan_info:"当有角色使用普通锦囊牌指定目标后,若此牌目标数大于1,你可以对一名其他角色造成1点伤害。",
|
||||
liubian:'刘辩',
|
||||
shiyuan:'诗怨',
|
||||
shiyuan_info:'每回合每项限一次,当你成为其他角色使用牌的目标后:①若其体力值大于你,你摸三张牌。②若其体力值等于你,你摸两张牌。③若其体力值小于你,你摸一张牌。',
|
||||
|
@ -7000,7 +7150,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mini_zhangchunhua:'SP张春华',
|
||||
minishangshi:'伤逝',
|
||||
minishangshi_info:'当你的手牌数小于X时,你可以将手牌摸至X张(X为你已损失的体力值且至少为1)',
|
||||
|
||||
re_xinxianying:'辛宪英',
|
||||
rezhongjian:'忠鉴',
|
||||
rezhongjian2:'忠鉴',
|
||||
rezhongjian_info:'出牌阶段限一次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。',
|
||||
recaishi:'才识',
|
||||
recaishi3:'才识',
|
||||
recaishi_info:'摸牌阶段结束时,若你于本阶段内因摸牌而获得的所有的牌:花色均相同,你将〖忠鉴〗于本回合内改为“出牌阶段限两次”。不均相同,你可回复1点体力。若如此做,你本回合内不能对自己使用牌。',
|
||||
decadewuniang:'武娘',
|
||||
decadewuniang_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌。若如此做,其摸一张牌。(若你已发动许身,则关索也摸一张牌)',
|
||||
jin_zhangchunhua:'晋张春华',
|
||||
jin_simayi:'晋司马懿',
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
sp_longzhou:"同舟共济",
|
||||
|
|
|
@ -12097,7 +12097,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
liuyu:['liuyu','ol_liuyu'],
|
||||
zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'],
|
||||
jikang:['re_jikang','jikang'],
|
||||
xinxianying:['xinxianying','ol_xinxianying','sp_xinxianying'],
|
||||
xinxianying:['re_xinxianying','xinxianying','sp_xinxianying','ol_xinxianying'],
|
||||
},
|
||||
translate:{
|
||||
old_huaxiong:'华雄',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.106.3.1',
|
||||
'v1.9.106.4',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -647,6 +647,18 @@ window.noname_asset_list=[
|
|||
'audio/die/simashi.mp3',
|
||||
'audio/die/xin_zhuran.mp3',
|
||||
'audio/die/yanghuiyu.mp3',
|
||||
'audio/die/xin_lingtong.mp3',
|
||||
'audio/die/xin_liubiao.mp3',
|
||||
'audio/skill/decadezishou1.mp3',
|
||||
'audio/skill/decadezishou2.mp3',
|
||||
'audio/skill/decadezongshi1.mp3',
|
||||
'audio/skill/decadezongshi2.mp3',
|
||||
'audio/skill/piaoling1.mp3',
|
||||
'audio/skill/piaoling2.mp3',
|
||||
'audio/skill/xuanfeng_xin_lingtong1.mp3',
|
||||
'audio/skill/xuanfeng_xin_lingtong2.mp3',
|
||||
'audio/skill/yongjin_xin_lingtong1.mp3',
|
||||
'audio/skill/yongjin_xin_lingtong2.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -3498,6 +3510,9 @@ window.noname_asset_list=[
|
|||
'image/character/mini_zhangchunhua.jpg',
|
||||
'image/character/mini_jiangwei.jpg',
|
||||
'image/character/mini_diaochan.jpg',
|
||||
'image/character/key_hiroto.jpg',
|
||||
'image/character/xin_lingtong.jpg',
|
||||
'image/character/xin_liubiao.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
189
game/game.js
189
game/game.js
|
@ -9898,7 +9898,7 @@
|
|||
config:'选项',
|
||||
auto:'托管',
|
||||
|
||||
unknown:'无名氏',
|
||||
unknown:'未知',
|
||||
unknown0:'一号位',
|
||||
unknown1:'二号位',
|
||||
unknown2:'三号位',
|
||||
|
@ -9913,6 +9913,15 @@
|
|||
emptyEvent:function(){
|
||||
event.trigger(event.name);
|
||||
},
|
||||
showCharacter:function(){
|
||||
'step 0'
|
||||
event.trigger('showCharacterEnd');
|
||||
'step 1'
|
||||
event.trigger('showCharacterAfter');
|
||||
},
|
||||
removeCharacter:function(){
|
||||
player.$removeCharacter(event.num);
|
||||
},
|
||||
chooseUseTarget:function(){
|
||||
'step 0'
|
||||
if(get.is.object(card)&&!event.viewAs) card.isCard=true;
|
||||
|
@ -15847,6 +15856,87 @@
|
|||
},
|
||||
player:{
|
||||
//新函数
|
||||
showCharacter:function(num,log){
|
||||
var toShow=[];
|
||||
if((num==0||num==2)&&this.isUnseen(0)) toShow.add(this.name1);
|
||||
if((num==1||num==2)&&this.isUnseen(1)) toShow.add(this.name2);
|
||||
if(!toShow.length) return;
|
||||
lib.element.player.$showCharacter.apply(this,arguments);
|
||||
var next=game.createEvent('showCharacter',false);
|
||||
next.player=this;
|
||||
next.num=num;
|
||||
next.toShow=toShow;
|
||||
next._args=arguments;
|
||||
next.setContent('showCharacter');
|
||||
return next;
|
||||
},
|
||||
$showCharacter:function(num,log){
|
||||
if(num==0&&!this.isUnseen(0)){
|
||||
return;
|
||||
}
|
||||
if(num==1&&(!this.name2||!this.isUnseen(1))){
|
||||
return;
|
||||
}
|
||||
if(!this.isUnseen(2)){
|
||||
return;
|
||||
}
|
||||
game.addVideo('showCharacter',this,num);
|
||||
var skills;
|
||||
switch(num){
|
||||
case 0:
|
||||
if(log!==false) game.log(this,'展示了主将','#b'+this.name1);
|
||||
this.name=this.name1;
|
||||
skills=lib.character[this.name][3]||[];
|
||||
this.sex=lib.character[this.name][0];
|
||||
this.classList.remove('unseen');
|
||||
break;
|
||||
case 1:
|
||||
if(log!==false) game.log(this,'展示了副将','#b'+this.name2);
|
||||
skills=lib.character[this.name2][3]||[];
|
||||
if(this.sex=='unknown') this.sex=lib.character[this.name2][0];
|
||||
if(this.name.indexOf('unknown')==0) this.name=this.name2;
|
||||
this.classList.remove('unseen2');
|
||||
break;
|
||||
case 2:
|
||||
if(log!==false){
|
||||
if(this.name2) game.log(this,'展示了主将','#b'+this.name1,'、副将','#b'+this.name2);
|
||||
else game.log(this,'展示了主将','#b'+this.name1);
|
||||
}
|
||||
this.name=this.name1;
|
||||
var skills=(lib.character[this.name][3]||[]);
|
||||
if(this.name2) skills=skills.concat(lib.character[this.name2][3]||[]);
|
||||
this.sex=lib.character[this.name][0];
|
||||
this.classList.remove('unseen');
|
||||
this.classList.remove('unseen2');
|
||||
break;
|
||||
}
|
||||
if(!this.isUnseen(2)){
|
||||
delete this.storage.nohp;
|
||||
this.node.hp.show();
|
||||
this.update();
|
||||
}
|
||||
game.broadcast(function(player,name,sex,num,group){
|
||||
player.group=group;
|
||||
player.name=name;
|
||||
player.sex=sex;
|
||||
player.node.identity.classList.remove('guessing');
|
||||
switch(num){
|
||||
case 0:player.classList.remove('unseen');break;
|
||||
case 1:player.classList.remove('unseen2');break;
|
||||
case 2:player.classList.remove('unseen');player.classList.remove('unseen2');break;
|
||||
}
|
||||
if(!player.isUnseen(2)){
|
||||
delete player.storage.nohp;
|
||||
player.node.hp.show();
|
||||
player.update();
|
||||
}
|
||||
},this,this.name,this.sex,num,this.group);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
this.hiddenSkills.remove(skills[i]);
|
||||
this.addSkill(skills[i]);
|
||||
}
|
||||
this.checkConflict();
|
||||
},
|
||||
chooseToGuanxing:function(num){
|
||||
var next=game.createEvent('chooseToGuanxing');
|
||||
next.num=num||1;
|
||||
|
@ -16245,6 +16335,7 @@
|
|||
this.node.count.show();
|
||||
this.node.equips.show();
|
||||
this.name=character;
|
||||
this.name1=character;
|
||||
this.sex=info[0];
|
||||
this.group=info[1];
|
||||
this.hp=hp1;
|
||||
|
@ -16265,6 +16356,15 @@
|
|||
// if(name[i]!='s'&&name[i]!='p')
|
||||
// this.node.name.innerHTML+=name[i]+'<br/>';
|
||||
// }
|
||||
if(info[4].contains('hiddenSkill')){
|
||||
if(!this.hiddenSkills) this.hiddenSkills=[];
|
||||
this.hiddenSkills.addArray(skills);
|
||||
skills=[];
|
||||
this.classList.add('unseen');
|
||||
this.name='unknown';
|
||||
//this.node.name_seat=ui.create.div('.name.name_seat','未知',this);
|
||||
this.storage.nohp=true;
|
||||
}
|
||||
if(character2&&lib.character[character2]){
|
||||
var info2=lib.character[character2];
|
||||
if(!info2){
|
||||
|
@ -16315,7 +16415,13 @@
|
|||
};
|
||||
}
|
||||
this.node.count.classList.add('p2');
|
||||
skills=skills.concat(info2[3]);
|
||||
if(info2[4].contains('hiddenSkill')){
|
||||
if(!this.hiddenSkills) this.hiddenSkills=[];
|
||||
this.hiddenSkills.addArray(info2[3]);
|
||||
this.classList.add('unseen2');
|
||||
this.storage.nohp=true;
|
||||
}
|
||||
else skills=skills.concat(info2[3]);
|
||||
|
||||
// var name=get.translation(character2);
|
||||
this.node.name2.innerHTML=get.slimName(character2);
|
||||
|
@ -16327,6 +16433,7 @@
|
|||
// this.node.name2.innerHTML+=name[i]+'<br/>';
|
||||
// }
|
||||
}
|
||||
if(this.storage.nohp) this.node.hp.hide();
|
||||
if(skill!=false){
|
||||
for(var i=0;i<skills.length;i++){
|
||||
this.addSkill(skills[i]);
|
||||
|
@ -16904,6 +17011,7 @@
|
|||
update:function(){
|
||||
if(_status.video&&arguments.length==0) return;
|
||||
if(this.hp>=this.maxHp) this.hp=this.maxHp;
|
||||
if(this.storage.nohp) return;
|
||||
var hp=this.node.hp;
|
||||
hp.style.transition='none';
|
||||
game.broadcast(function(player,hp,maxHp,hujia){
|
||||
|
@ -21411,7 +21519,7 @@
|
|||
case 0:return this.classList.contains('unseen');
|
||||
case 1:return this.classList.contains('unseen2');
|
||||
case 2:return this.classList.contains('unseen')||this.classList.contains('unseen2');
|
||||
default:return this.classList.contains('unseen')&&this.classList.contains('unseen2');
|
||||
default:return this.classList.contains('unseen')&&(!this.name2||this.classList.contains('unseen2'));
|
||||
}
|
||||
},
|
||||
isUnderControl:function(self,me){
|
||||
|
@ -25139,6 +25247,19 @@
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
_showHiddenCharacter:{
|
||||
trigger:{player:['changeHp','phaseBeginStart']},
|
||||
firstDo:true,
|
||||
forced:true,
|
||||
popup:false,
|
||||
priority:25,
|
||||
filter:function(event,player){
|
||||
return player.isUnseen(2)&&get.mode()!='guozhan';
|
||||
},
|
||||
content:function(){
|
||||
player.showCharacter(2);
|
||||
},
|
||||
},
|
||||
_kamisha:{
|
||||
trigger:{source:'damageBegin2'},
|
||||
//forced:true,
|
||||
|
@ -34850,6 +34971,7 @@
|
|||
if(config.textMenu){
|
||||
config.textMenu(textMenu,i,config.item[i],config)
|
||||
}
|
||||
lib.setScroll(node._link.menu);
|
||||
}
|
||||
}
|
||||
node._link.menu._link=node;
|
||||
|
@ -34882,7 +35004,7 @@
|
|||
input.innerHTML=config.init||'无名玩家';
|
||||
input.onblur=function(){
|
||||
input.innerHTML=input.innerHTML.replace(/<br>/g,'');
|
||||
if(!input.innerHTML){
|
||||
if(!input.innerHTML||get.is.banWords(input.innerHTML)){
|
||||
input.innerHTML='无名玩家';
|
||||
}
|
||||
game.saveConfig('connect_nickname',input.innerHTML);
|
||||
|
@ -35745,7 +35867,7 @@
|
|||
game.saveConfig('background_music',link);
|
||||
game.saveConfig('customBackgroundMusic',lib.config.customBackgroundMusic);
|
||||
nodezz.item[link]=lib.config.customBackgroundMusic[link];
|
||||
var textMenu=ui.create.div('',lib.config.customBackgroundMusic[link],nodeyy,clickMenuItem);
|
||||
var textMenu=ui.create.div('',lib.config.customBackgroundMusic[link],nodeyy,clickMenuItem,nodeyy.childElementCount-2);
|
||||
textMenu._link=link;
|
||||
nodezz.updatex.call(nodexx,[]);
|
||||
_status.music_importing=false;
|
||||
|
@ -43467,7 +43589,7 @@
|
|||
if(item.name.indexOf('unknown')==0){
|
||||
if(item.node&&item.node.name_seat){
|
||||
node.classList.add('cardbg');
|
||||
ui.create.div('.avatar_name',node,item.node.name_seat.innerHTML[0]+'号位');
|
||||
ui.create.div('.avatar_name',node,get.translation(item.name));
|
||||
}
|
||||
else{
|
||||
node.setBackground(item.name1,'character');
|
||||
|
@ -47994,7 +48116,54 @@
|
|||
return 0;
|
||||
},
|
||||
is:{
|
||||
emoji:function(substring){
|
||||
if(substring){
|
||||
var reg=new RegExp("[~#^$@%&!?%*]",'g');
|
||||
if(substring.match(reg)){
|
||||
return true;
|
||||
}
|
||||
for(var i=0;i<substring.length;i++){
|
||||
var hs=substring.charCodeAt(i);
|
||||
if(0xd800<=hs&&hs<=0xdbff){
|
||||
if(substring.length>1){
|
||||
var ls=substring.charCodeAt(i+1);
|
||||
var uc=((hs-0xd800)*0x400)+(ls-0xdc00)+0x10000;
|
||||
if(0x1d000<=uc&&uc<=0x1f77f){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(substring.length>1){
|
||||
var ls=substring.charCodeAt(i+1);
|
||||
if(ls==0x20e3){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(0x2100<=hs&&hs<=0x27ff){
|
||||
return true;
|
||||
}
|
||||
else if(0x2B05<=hs&&hs<=0x2b07){
|
||||
return true;
|
||||
}
|
||||
else if(0x2934<=hs&&hs<=0x2935){
|
||||
return true;
|
||||
}
|
||||
else if(0x3297<=hs&&hs<=0x3299){
|
||||
return true;
|
||||
}
|
||||
else if(hs==0xa9||hs==0xae||hs==0x303d||hs==0x3030
|
||||
||hs==0x2b55||hs==0x2b1c||hs==0x2b1b
|
||||
||hs==0x2b50){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
banWords:function(str){
|
||||
if(get.is.emoji(str)) return true;
|
||||
for(var i of window.bannedKeyWords){
|
||||
if(str.indexOf(i)!=-1) return true;
|
||||
}
|
||||
|
@ -50734,7 +50903,7 @@
|
|||
}
|
||||
var buttons=ui.create.div('.buttons.smallzoom.scrollbuttons');
|
||||
lib.setMousewheel(buttons);
|
||||
var nameskin=(avatar2?node.name2:node.name);
|
||||
var nameskin=(avatar2?node.name2:node.name1);
|
||||
var nameskin2=nameskin;
|
||||
var gzbool=false;
|
||||
if(nameskin.indexOf('gz_shibing')==0){
|
||||
|
@ -50798,7 +50967,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
var nameskin=(avatar2?node.name2:node.name);
|
||||
var nameskin=(avatar2?node.name2:node.name1);
|
||||
var nameskin2=nameskin;
|
||||
var gzbool=false;
|
||||
if(nameskin.indexOf('gz_shibing')==0){
|
||||
|
@ -50814,13 +50983,13 @@
|
|||
if(!node.isUnseen(0)){
|
||||
loadImage();
|
||||
}
|
||||
else{
|
||||
else if(node.name2){
|
||||
loadImage(true);
|
||||
}
|
||||
}
|
||||
else{
|
||||
setTimeout(function(){
|
||||
var nameskin1=node.name;
|
||||
var nameskin1=node.name1;
|
||||
var nameskin2=node.name2;
|
||||
if(nameskin1&&nameskin1.indexOf('gz_')==0){
|
||||
nameskin1=nameskin1.slice(3);
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
window.noname_update={
|
||||
version:'1.9.106.3.1',
|
||||
update:'1.9.106.3',
|
||||
version:'1.9.106.4',
|
||||
update:'1.9.106.3.1',
|
||||
changeLog:[
|
||||
'微信小程序·欢乐三国杀',
|
||||
'铃木央人',
|
||||
'界凌统、界刘表',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
'card/extra.js',
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
'card/guozhan.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
'card/zhulu.js',
|
||||
//'character/diy.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
|
@ -26,14 +27,14 @@ window.noname_update={
|
|||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/old.js',
|
||||
'character/old.js',
|
||||
'character/rank.js',
|
||||
//'character/refresh.js',
|
||||
'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
//'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
'character/standard.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
|
@ -42,18 +43,18 @@ window.noname_update={
|
|||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
'mode/identity.js',
|
||||
//'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'game/game.js',
|
||||
'game/keyWords.js',
|
||||
//'game/keyWords.js',
|
||||
//'game/server.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 109 KiB |
Binary file not shown.
After Width: | Height: | Size: 83 KiB |
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
215
mode/guozhan.js
215
mode/guozhan.js
|
@ -7814,114 +7814,105 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
element:{
|
||||
content:{
|
||||
chooseJunlingFor:function(){
|
||||
'step 0'
|
||||
var list=['junling1','junling2','junling3','junling4','junling5','junling6'];
|
||||
list=list.randomGets(2).sort();
|
||||
for(var i=0;i<list.length;i++) list[i]=['军令','',list[i]];
|
||||
var prompt=event.prompt||'选择一张军令牌';
|
||||
if(target!=undefined&&!event.prompt){
|
||||
var str=target==player?'(你)':'';
|
||||
prompt+=',令'+get.translation(target)+str+'选择是否执行';
|
||||
}
|
||||
player.chooseButton([prompt,[list,'vcard']],true).set('ai',function(button){
|
||||
return get.junlingEffect(_status.event.player,button.link[2],_status.event.getParent().target,[],_status.event.player);
|
||||
});
|
||||
'step 1'
|
||||
event.result={
|
||||
junling:result.links[0][2],
|
||||
targets:[],
|
||||
};
|
||||
if(result.links[0][2]=='junling1') player.chooseTarget('选择一名角色,做为若该军令被执行,受到伤害的角色',true).set('ai',function(_target){
|
||||
return get.damageEffect(_target,target,player);
|
||||
});
|
||||
'step 2'
|
||||
if(result.targets.length){
|
||||
player.line(result.targets,'green');
|
||||
event.result.targets=result.targets;
|
||||
}
|
||||
},
|
||||
chooseJunlingControl:function(){
|
||||
'step 0'
|
||||
var dialog=[];
|
||||
var str1=source==player?'(你)':'';
|
||||
var str2=event.targets?'(被指定的角色为'+get.translation(event.targets)+')':'';
|
||||
if(!event.prompt) dialog.add(get.translation(event.source)+str1+'选择的军令'+str2+'为');
|
||||
else{
|
||||
dialog.add(event.prompt);
|
||||
dialog.add(get.translation(event.source)+str1+'选择的军令'+str2+'为');
|
||||
}
|
||||
dialog.add([[event.junling],'vcard']);
|
||||
var controls=[];
|
||||
if(event.choiceList){
|
||||
for(var i=0;i<event.choiceList.length;i++){
|
||||
dialog.add('<div class="popup text" style="width:calc(100% - 10px);display:inline-block">选项'+get.cnNumber(i+1,true)+':'+event.choiceList[i]+'</div>');
|
||||
controls.push('选项'+get.cnNumber(i+1,true));
|
||||
}
|
||||
}
|
||||
else if(event.controls) controls=event.controls;
|
||||
else controls=['执行该军令','不执行该军令'];
|
||||
if(!event.ai) event.ai=function(){return Math.floor(controls.length*Math.random())};
|
||||
player.chooseControl(controls).set('dialog',dialog).set('ai',event.ai);
|
||||
'step 1'
|
||||
event.result={
|
||||
index:result.index,
|
||||
control:result.control,
|
||||
};
|
||||
},
|
||||
carryOutJunling:function(){
|
||||
'step 0'
|
||||
switch(event.junling){
|
||||
case 'junling1':{
|
||||
if(targets[0].isAlive()){
|
||||
player.line(targets,'green');
|
||||
targets[0].damage(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'junling2':player.draw();event.num=1;break;
|
||||
case 'junling3':player.loseHp();break;
|
||||
case 'junling4':player.addTempSkill('junling4_eff');player.addTempSkill('fengyin_vice');player.addTempSkill('fengyin_main');break;
|
||||
case 'junling5':player.turnOver();player.addTempSkill('junling5_eff');break;
|
||||
}
|
||||
'step 1'
|
||||
if(event.junling=='junling2'&&source!=player&&player.countCards('he')>0){
|
||||
player.chooseCard('交给'+get.translation(source)+'第'+get.cnNumber(event.num)+'张牌(共两张)','he',true);
|
||||
event.ing=true;
|
||||
}
|
||||
if(event.junling=='junling6'){
|
||||
var position='',num0=0;
|
||||
if(player.countCards('h')){position+='h';num0++;}
|
||||
if(player.countCards('e')){position+='e';num0++;}
|
||||
player.chooseCard('选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌',position,num0,function(card){
|
||||
if(ui.selected.cards.length) return get.position(card)!=get.position(ui.selected.cards[0]);
|
||||
return true;
|
||||
},true).set('complexCard',true).set('ai',function(card){return get.value(card)});
|
||||
}
|
||||
'step 2'
|
||||
if(event.junling=='junling2'&&source!=player){
|
||||
if(result.cards.length&&event.ing){
|
||||
source.gain(result.cards,player,'giveAuto');
|
||||
}
|
||||
event.num++;
|
||||
if(event.num<3){
|
||||
event.ing=false;
|
||||
event.goto(1);
|
||||
}
|
||||
}
|
||||
if(event.junling=='junling6'){
|
||||
var cards=player.getCards('he');
|
||||
for(var i=0;i<result.cards.length;i++) cards.remove(result.cards[i]);
|
||||
player.discard(cards);
|
||||
}
|
||||
},
|
||||
showCharacter:function(){
|
||||
'step 0'
|
||||
event.trigger('showCharacterEnd');
|
||||
var list=['junling1','junling2','junling3','junling4','junling5','junling6'];
|
||||
list=list.randomGets(2).sort();
|
||||
for(var i=0;i<list.length;i++) list[i]=['军令','',list[i]];
|
||||
var prompt=event.prompt||'选择一张军令牌';
|
||||
if(target!=undefined&&!event.prompt){
|
||||
var str=target==player?'(你)':'';
|
||||
prompt+=',令'+get.translation(target)+str+'选择是否执行';
|
||||
}
|
||||
player.chooseButton([prompt,[list,'vcard']],true).set('ai',function(button){
|
||||
return get.junlingEffect(_status.event.player,button.link[2],_status.event.getParent().target,[],_status.event.player);
|
||||
});
|
||||
'step 1'
|
||||
event.trigger('showCharacterAfter');
|
||||
event.result={
|
||||
junling:result.links[0][2],
|
||||
targets:[],
|
||||
};
|
||||
if(result.links[0][2]=='junling1') player.chooseTarget('选择一名角色,做为若该军令被执行,受到伤害的角色',true).set('ai',function(_target){
|
||||
return get.damageEffect(_target,target,player);
|
||||
});
|
||||
'step 2'
|
||||
if(result.targets.length){
|
||||
player.line(result.targets,'green');
|
||||
event.result.targets=result.targets;
|
||||
}
|
||||
},
|
||||
removeCharacter:function(){
|
||||
player.$removeCharacter(event.num);
|
||||
chooseJunlingControl:function(){
|
||||
'step 0'
|
||||
var dialog=[];
|
||||
var str1=source==player?'(你)':'';
|
||||
var str2=event.targets?'(被指定的角色为'+get.translation(event.targets)+')':'';
|
||||
if(!event.prompt) dialog.add(get.translation(event.source)+str1+'选择的军令'+str2+'为');
|
||||
else{
|
||||
dialog.add(event.prompt);
|
||||
dialog.add(get.translation(event.source)+str1+'选择的军令'+str2+'为');
|
||||
}
|
||||
dialog.add([[event.junling],'vcard']);
|
||||
var controls=[];
|
||||
if(event.choiceList){
|
||||
for(var i=0;i<event.choiceList.length;i++){
|
||||
dialog.add('<div class="popup text" style="width:calc(100% - 10px);display:inline-block">选项'+get.cnNumber(i+1,true)+':'+event.choiceList[i]+'</div>');
|
||||
controls.push('选项'+get.cnNumber(i+1,true));
|
||||
}
|
||||
}
|
||||
else if(event.controls) controls=event.controls;
|
||||
else controls=['执行该军令','不执行该军令'];
|
||||
if(!event.ai) event.ai=function(){return Math.floor(controls.length*Math.random())};
|
||||
player.chooseControl(controls).set('dialog',dialog).set('ai',event.ai);
|
||||
'step 1'
|
||||
event.result={
|
||||
index:result.index,
|
||||
control:result.control,
|
||||
};
|
||||
},
|
||||
carryOutJunling:function(){
|
||||
'step 0'
|
||||
switch(event.junling){
|
||||
case 'junling1':{
|
||||
if(targets[0].isAlive()){
|
||||
player.line(targets,'green');
|
||||
targets[0].damage(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'junling2':player.draw();event.num=1;break;
|
||||
case 'junling3':player.loseHp();break;
|
||||
case 'junling4':player.addTempSkill('junling4_eff');player.addTempSkill('fengyin_vice');player.addTempSkill('fengyin_main');break;
|
||||
case 'junling5':player.turnOver();player.addTempSkill('junling5_eff');break;
|
||||
}
|
||||
'step 1'
|
||||
if(event.junling=='junling2'&&source!=player&&player.countCards('he')>0){
|
||||
player.chooseCard('交给'+get.translation(source)+'第'+get.cnNumber(event.num)+'张牌(共两张)','he',true);
|
||||
event.ing=true;
|
||||
}
|
||||
if(event.junling=='junling6'){
|
||||
var position='',num0=0;
|
||||
if(player.countCards('h')){position+='h';num0++;}
|
||||
if(player.countCards('e')){position+='e';num0++;}
|
||||
player.chooseCard('选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌',position,num0,function(card){
|
||||
if(ui.selected.cards.length) return get.position(card)!=get.position(ui.selected.cards[0]);
|
||||
return true;
|
||||
},true).set('complexCard',true).set('ai',function(card){return get.value(card)});
|
||||
}
|
||||
'step 2'
|
||||
if(event.junling=='junling2'&&source!=player){
|
||||
if(result.cards.length&&event.ing){
|
||||
source.gain(result.cards,player,'giveAuto');
|
||||
}
|
||||
event.num++;
|
||||
if(event.num<3){
|
||||
event.ing=false;
|
||||
event.goto(1);
|
||||
}
|
||||
}
|
||||
if(event.junling=='junling6'){
|
||||
var cards=player.getCards('he');
|
||||
for(var i=0;i<result.cards.length;i++) cards.remove(result.cards[i]);
|
||||
player.discard(cards);
|
||||
}
|
||||
},
|
||||
doubleDraw:function(){
|
||||
if(!player.hasMark('yinyang_skill')) player.addMark('yinyang_skill',1);
|
||||
|
@ -8289,20 +8280,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
hasViceCharacter:function(){
|
||||
return this.name2.indexOf('gz_shibing')!=0;
|
||||
},
|
||||
showCharacter:function(num,log){
|
||||
var toShow=[];
|
||||
if((num==0||num==2)&&this.isUnseen(0)) toShow.add(this.name1);
|
||||
if((num==1||num==2)&&this.isUnseen(1)) toShow.add(this.name2);
|
||||
if(!toShow.length) return;
|
||||
lib.element.player.$showCharacter.apply(this,arguments);
|
||||
var next=game.createEvent('showCharacter',false);
|
||||
next.player=this;
|
||||
next.num=num;
|
||||
next.toShow=toShow;
|
||||
next._args=arguments;
|
||||
next.setContent('showCharacter');
|
||||
return next;
|
||||
},
|
||||
$showCharacter:function(num,log){
|
||||
if(num==0&&!this.isUnseen(0)){
|
||||
return;
|
||||
|
|
|
@ -353,7 +353,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else if(_status.mode=='2v2'||_status.mode=='3v3'){
|
||||
_status.first_less=true;
|
||||
var firstChoose=game.players.randomGet();
|
||||
var firstChoose=(_status.firstAct||game.players.randomGet());
|
||||
if(firstChoose.next.side==firstChoose.side){
|
||||
firstChoose=firstChoose.next;
|
||||
}
|
||||
|
@ -3035,11 +3035,41 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var next=game.createEvent('chooseCharacterOL',false);
|
||||
next.setContent(function(){
|
||||
'step 0'
|
||||
game.broadcastAll(function(ref,bool,bool2){
|
||||
var ref=game.players[0];
|
||||
var bool=Math.random()<0.5;
|
||||
var bool2=Math.random()<0.5;
|
||||
ref.side=bool;
|
||||
ref.next.side=bool2;
|
||||
ref.next.next.side=!bool;
|
||||
ref.previous.side=!bool2;
|
||||
var firstChoose=game.players.randomGet();
|
||||
if(firstChoose.next.side==firstChoose.side){
|
||||
firstChoose=firstChoose.next;
|
||||
}
|
||||
_status.firstAct=firstChoose;
|
||||
for(var i=0;i<4;i++){
|
||||
firstChoose.node.name.innerHTML=get.verticalStr(get.cnNumber(i+1,true)+'号位');
|
||||
firstChoose=firstChoose.next;
|
||||
}
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].side==game.me.side){
|
||||
game.players[i].node.identity.firstChild.innerHTML='友';
|
||||
}
|
||||
else{
|
||||
game.players[i].node.identity.firstChild.innerHTML='敌';
|
||||
}
|
||||
game.players[i].node.identity.dataset.color=game.players[i].side+'zhu';
|
||||
}
|
||||
ui.arena.classList.add('choose-character');
|
||||
game.broadcast(function(ref,bool,bool2,firstChoose){
|
||||
ref.side=bool;
|
||||
ref.next.side=bool2;
|
||||
ref.next.next.side=!bool;
|
||||
ref.previous.side=!bool2;
|
||||
for(var i=0;i<4;i++){
|
||||
firstChoose.node.name.innerHTML=get.verticalStr(get.cnNumber(i+1,true)+'号位');
|
||||
firstChoose=firstChoose.next;
|
||||
}
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].side==game.me.side){
|
||||
game.players[i].node.identity.firstChild.innerHTML='友';
|
||||
|
@ -3050,7 +3080,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game.players[i].node.identity.dataset.color=game.players[i].side+'zhu';
|
||||
}
|
||||
ui.arena.classList.add('choose-character');
|
||||
},game.players[0],Math.random()<0.5,Math.random()<0.5);
|
||||
},ref,bool,bool2,_status.firstAct);
|
||||
_status.onreconnect=[function(){
|
||||
var players=game.players.concat(game.dead);
|
||||
for(var i=0;i<players.length;i++){
|
||||
|
|
Loading…
Reference in New Issue