迷途往生
|
@ -910,10 +910,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(typeof event.baseDamage!='number') event.baseDamage=1;
|
||||
if(typeof event.extraDamage!='number'){
|
||||
event.extraDamage=0;
|
||||
if(!event.shaReq) event.shaReq={};
|
||||
if(typeof event.shaReq[player.playerid]!='number') event.shaReq[player.playerid]=1;
|
||||
if(typeof event.shaReq[target.playerid]!='number') event.shaReq[target.playerid]=1;
|
||||
}
|
||||
if(!event.shaReq) event.shaReq={};
|
||||
if(typeof event.shaReq[player.playerid]!='number') event.shaReq[player.playerid]=1;
|
||||
if(typeof event.shaReq[target.playerid]!='number') event.shaReq[target.playerid]=1;
|
||||
event.playerCards=[];
|
||||
event.targetCards=[];
|
||||
"step 1"
|
||||
|
|
|
@ -56,6 +56,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_shiori:['female','key','2/3',['shiori_huijuan']],
|
||||
key_kaori:['female','key','3/4',['kaori_siyuan']],
|
||||
key_akiko:['female','key',3,['akiko_dongcha']],
|
||||
key_abyusa:['female','key',3,['abyusa_jueqing','abyusa_dunying']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -150,7 +151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||
diy_tieba:["diy_wenyang","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","ns_zhangwei"],
|
||||
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"],
|
||||
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"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
},
|
||||
},
|
||||
|
@ -166,6 +167,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_abyusa:'#rAngel Beats!',
|
||||
key_akiko:'#bKanon',
|
||||
key_kaori:'#bKanon',
|
||||
key_shiori:'#bKanon',
|
||||
|
@ -317,6 +319,49 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
abyusa_jueqing:{
|
||||
audio:'jueqing',
|
||||
trigger:{source:'damageBegin2'},
|
||||
skillAnimation:true,
|
||||
animationColor:'water',
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&!player.hasSkill('abyusa_jueqing_1st');
|
||||
},
|
||||
prompt2:function(event,player){
|
||||
var num=get.cnNumber(2*event.num);
|
||||
return '防止即将令其造成的伤害,改为令其失去'+num+'点体力并对自己造成'+num+'点伤害';
|
||||
},
|
||||
check:function(event,player){
|
||||
return player.hp>event.num*2&&event.player.hp>event.num&&event.player.hp<=2*event.num&&get.attitude(player,event.player)<0;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.cancel();
|
||||
trigger.player.loseHp(2*trigger.num);
|
||||
player.damage(2*trigger.num);
|
||||
'step 1'
|
||||
player.addSkill('abyusa_jueqing_1st');
|
||||
},
|
||||
derivation:'abyusa_jueqing_rewrite',
|
||||
},
|
||||
abyusa_jueqing_1st:{
|
||||
trigger:{source:'damageBefore'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
audio:'jueqing',
|
||||
filter:function(event,player){
|
||||
return player.hasSkill('abyusa_jueqing');
|
||||
},
|
||||
check:function(){return false;},
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
trigger.player.loseHp(trigger.num);
|
||||
},
|
||||
ai:{
|
||||
jueqing:true
|
||||
}
|
||||
},
|
||||
akiko_dongcha:{
|
||||
trigger:{global:'gameDrawAfter'},
|
||||
forced:true,
|
||||
|
@ -341,6 +386,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
abyusa_dunying:{
|
||||
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.isDamaged();
|
||||
},
|
||||
content:function(){
|
||||
player.draw(player.getDamagedHp());
|
||||
},
|
||||
mod:{
|
||||
globalTo:function(from,to,num){
|
||||
return num+to.getDamagedHp();
|
||||
},
|
||||
},
|
||||
},
|
||||
kaori_siyuan:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
|
@ -10231,6 +10291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_shiori:'美坂栞',
|
||||
key_kaori:'美坂香里',
|
||||
key_akiko:'水濑秋子',
|
||||
key_abyusa:'游佐',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -10466,6 +10527,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
akiko_dongcha:'洞察',
|
||||
akiko_dongcha_info_identity:'锁定技,其他角色的手牌对你可见。游戏开始时,你令其他角色的身份牌对你可见。',
|
||||
akiko_dongcha_info:'锁定技,其他角色的手牌对你可见。',
|
||||
abyusa_jueqing:'绝情',
|
||||
abyusa_jueqing_info:'当你对其他角色造成伤害时,你可以防止此伤害。若如此做,你令其失去2X点体力,修改〖绝情〗并对自己造成2X点伤害。',
|
||||
abyusa_jueqing_1st:'绝情',
|
||||
abyusa_jueqing_rewrite:'绝情·改',
|
||||
abyusa_jueqing_rewrite_info:'锁定技,你即将造成的伤害均视为失去体力。',
|
||||
abyusa_dunying:'遁影',
|
||||
abyusa_dunying_info:'锁定技,其他角色计算与你的距离时+X。准备阶段和结束阶段,你摸X张牌(X为你已损失的体力值)。',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
|
|
@ -6,13 +6,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
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"],
|
||||
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"],
|
||||
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
|
||||
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong","old_liuzan","xin_chengpu","re_sunjian","re_xusheng","re_dongzhuo"],
|
||||
mobile_sunben:["re_sunben"],
|
||||
mobile_standard:["xin_xiahoudun"],
|
||||
mobile_shenhua:["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"],
|
||||
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","re_pangtong","old_liuzan","xin_chengpu"],
|
||||
mobile_trashbin:['old_jiakui'],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
|
||||
xin_caozhang:['male','wei',4,['rejiangchi']],
|
||||
xin_liaohua:['male','shu',4,['redangxian','refuli']],
|
||||
furong:['male','shu',4,['xuewei','liechi']],
|
||||
re_dongzhuo:['male','qun',8,['rejiuchi','roulin','benghuai','baonue'],['zhu']],
|
||||
re_xusheng:['male','wu',4,['repojun']],
|
||||
sp_sufei:['male','qun',4,['zhengjian','gaoyuan']],
|
||||
|
@ -67,6 +75,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
|
||||
},
|
||||
characterIntro:{
|
||||
furong:'傅肜(róng)(?-222年),义阳(今湖北枣阳)人,三国时蜀汉将领。刘备攻伐吴国时,傅肜为别督。后刘备被陆逊击败,傅肜率部断后,奋战至死。死前怒斥道:“吴狗!何有汉将军降者!”',
|
||||
zhengxuan:'郑玄(127年-200年),字康成。北海郡高密县(今山东省高密市)人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》,又从张恭祖学《古文尚书》、《周礼》和《左传》等,最后从马融学古文经。游学归里之后,复客耕东莱,聚徒授课,弟子达数千人,家贫好学,终为大儒。党锢之祸起,遭禁锢,杜门注疏,潜心著述。晚年守节不仕,却遭逼迫从军,最终病逝于元城,年七十四。郑玄治学以古文经学为主,兼采今文经学。他遍注儒家经典,以毕生精力整理古代文化遗产,使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书,共百万余言,世称“郑学”,为汉代经学的集大成者。唐贞观年间,列郑玄于二十二“先师”之列,配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。',
|
||||
dengzhi:'邓芝(178年-251年),字伯苗。义阳郡新野县(今河南新野)人。东汉名将邓禹之后,三国时期蜀汉重臣。邓芝早年曾被预言能位至大将,后被刘备任为郫令,升迁为广汉太守。因任官公廉且有治绩,被征入朝为尚书。刘备逝世后,奉命出使吴国,成功修复两国关系,并深为吴大帝孙权所赏识。建兴六年(228年),丞相诸葛亮策划北伐,命邓芝与大将赵云佯攻郿城,以吸引魏国曹真军主力。建兴十二年(234年),迁前军师、前将军,领兖州刺史,封阳武亭侯,不久督领江州。延熙六年(243年),迁车骑将军,后授假节。又率军平定涪陵叛乱。延熙十四年(251年),邓芝病逝。邓芝性格正直、简单,不刻意修饰情绪。他为将二十多年,赏罚明断,体恤士卒。身上的衣食取自官府,从未经营过私产,妻儿甚至还有忍饥挨饿之时,死时家中也没有多余财物。',
|
||||
yangyi:'杨仪(?-235年),字威公,襄阳(今湖北襄阳)人,三国时期蜀汉官员。最初为荆州刺史傅群的主簿,后投奔关羽,任为功曹。关羽遣其至成都,大受刘备赞赏,擢为尚书。因与尚书令刘巴不和,调为弘农太守。建兴三年(225年)任丞相参军,此后一直跟随诸葛亮战斗。亮卒,他部署安全退军。诸葛亮在生前定蒋琬继己任,杨仪仅拜中军师。建兴十三年(235年),因多出怨言,被削职流放至汉嘉郡。但杨仪仍不自省,又上书诽谤,言辞激烈,最后下狱,自杀身亡。',
|
||||
|
@ -286,6 +295,165 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterFilter:{},
|
||||
skill:{
|
||||
//芙蓉,手杀廖化,手杀曹彰
|
||||
rejiangchi:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:"phaseUseBegin",
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
var list=['弃牌','摸牌','取消'];
|
||||
if(!player.countCards('he')) list.remove('弃牌');
|
||||
player.chooseControl(list,function(){
|
||||
var player=_status.event.player;
|
||||
if(list.contains('弃牌')){
|
||||
if(player.countCards('h')>3&&player.countCards('h','sha')>1){
|
||||
return '弃牌';
|
||||
}
|
||||
if(player.countCards('h','sha')>2){
|
||||
return '弃牌';
|
||||
}
|
||||
}
|
||||
if(!player.countCards('h','sha')){
|
||||
return '摸牌';
|
||||
}
|
||||
return 'cancel2';
|
||||
}).set('prompt',get.prompt2('rejiangchi'));
|
||||
"step 1"
|
||||
if(result.control=='弃牌'){
|
||||
player.chooseToDiscard(true,'he');
|
||||
player.addTempSkill('jiangchi2','phaseUseEnd');
|
||||
player.logSkill('rejiangchi');
|
||||
}
|
||||
else if(result.control=='摸牌'){
|
||||
player.draw();
|
||||
player.addTempSkill('rejiangchi3','phaseUseEnd');
|
||||
player.logSkill('rejiangchi');
|
||||
}
|
||||
},
|
||||
},
|
||||
rejiangchi3:{
|
||||
mod:{
|
||||
cardEnabled:function(card){
|
||||
if(card.name=='sha') return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
refuli:{
|
||||
skillAnimation:true,
|
||||
animationColor:'soil',
|
||||
audio:2,
|
||||
unique:true,
|
||||
limited:true,
|
||||
enable:'chooseToUse',
|
||||
mark:true,
|
||||
filter:function(event,player){
|
||||
if(event.type!='dying') return false;
|
||||
if(player!=event.dying) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.awakenSkill('refuli');
|
||||
event.num=game.countGroup();
|
||||
if(event.num>player.hp) player.recover(event.num-player.hp);
|
||||
"step 1"
|
||||
if(player.isMaxHp(true)) player.turnOver();
|
||||
},
|
||||
ai:{
|
||||
save:true,
|
||||
skillTagFilter:function(player){
|
||||
return player.hp<=0;
|
||||
},
|
||||
result:{
|
||||
player:10
|
||||
},
|
||||
threaten:function(player,target){
|
||||
if(!target.storage.refuli) return 0.9;
|
||||
}
|
||||
},
|
||||
},
|
||||
redangxian:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
audio:'dangxian',
|
||||
audioname:['guansuo','xin_liaohua'],
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=get.discardPile(function(card){
|
||||
return card.name=='sha';
|
||||
});
|
||||
if(card) player.gain(card,'gain2');
|
||||
'step 1'
|
||||
game.updateRoundNumber();
|
||||
player.phaseUse();
|
||||
'step 2'
|
||||
var stat=player.getStat();
|
||||
stat.card={};
|
||||
for(var i in stat.skill){
|
||||
var bool=false;
|
||||
var info=lib.skill[i];
|
||||
if(info.enable!=undefined){
|
||||
if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true;
|
||||
else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true;
|
||||
}
|
||||
if(bool) stat.skill[i]=0;
|
||||
}
|
||||
},
|
||||
},
|
||||
xuewei:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('xuewei'),lib.filter.notMe).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(player==get.zhu(player)&&player.hp<=2) return 0;
|
||||
return get.attitude(player,target)-4;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('xuewei');
|
||||
player.addTempSkill('xuewei2',{player:'phaseBegin'});
|
||||
player.storage.xuewei2=target;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.05,
|
||||
},
|
||||
},
|
||||
xuewei2:{
|
||||
audio:'xuewei',
|
||||
forced:true,
|
||||
onremove:true,
|
||||
trigger:{global:'damageBegin4'},
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return event.player==player.storage.xuewei2;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
player.removeSkill('xuewei2');
|
||||
trigger.cancel();
|
||||
player.damage(trigger.num,trigger.source||'nosource');
|
||||
if(trigger.source&&trigger.source.isIn()) trigger.source.damage(trigger.num,trigger.nature,player);
|
||||
},
|
||||
},
|
||||
liechi:{
|
||||
trigger:{player:'dying'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.getParent().name=='damage'&&event.source&&event.source.countCards('he');
|
||||
},
|
||||
audio:2,
|
||||
content:function(){
|
||||
trigger.source.chooseToDiscard('he',true);
|
||||
},
|
||||
},
|
||||
rejiuchi:{
|
||||
group:['jiuchi'],
|
||||
audioname:['re_dongzhuo'],
|
||||
|
@ -309,14 +477,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tongqu:{
|
||||
audio:'zhongzuo',
|
||||
trigger:{
|
||||
global:['gameDrawAfter','damageEnd','phaseDrawBegin2'],
|
||||
player:['enterGame','phaseUseBegin'],
|
||||
global:['gameDrawAfter','dying','phaseDrawBegin2'],
|
||||
player:['enterGame','phaseZhunbeiBegin'],
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(event.name=='phaseDraw') return !event.numFixed&&event.player.hasMark('tongqu');
|
||||
if(event.name=='damage') return event.player.hasMark('tongqu');
|
||||
if(event.name=='phaseUse') return game.hasPlayer(function(current){
|
||||
if(event.name=='phaseDraw') return event.player.hasMark('tongqu');
|
||||
if(event.name=='dying') return event.player.hasMark('tongqu');
|
||||
if(event.name=='phaseZhunbei') return game.hasPlayer(function(current){
|
||||
return !current.hasMark('tongqu');
|
||||
});
|
||||
return !player.hasMark('tongqu');
|
||||
|
@ -325,20 +493,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
if(trigger.name=='phaseDraw'){
|
||||
player.logSkill('tongqu',trigger.player);
|
||||
trigger.num++;
|
||||
trigger.player.draw('nodelay');
|
||||
trigger.player.addTempSkill('tongqu2','phaseDrawAfter');
|
||||
event.finish();
|
||||
}
|
||||
else if(trigger.name=='damage'){
|
||||
else if(trigger.name=='dying'){
|
||||
player.logSkill('tongqu',trigger.player);
|
||||
trigger.player.removeMark('tongqu',1);
|
||||
event.finish();
|
||||
}
|
||||
else if(trigger.name=='phaseUse'){
|
||||
else if(trigger.name=='phaseZhunbei'){
|
||||
player.chooseTarget(get.prompt2('tongqu'),function(card,player,target){
|
||||
return !target.hasMark('tongqu');
|
||||
}).set('ai',function(target){
|
||||
return get.attitude(_status.event.player,target)
|
||||
if(_status.event.player.hp<3) return 0;
|
||||
return get.attitude(_status.event.player,target);
|
||||
});
|
||||
}
|
||||
else{
|
||||
|
@ -349,12 +518,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.loseHp();
|
||||
player.logSkill('tongqu',target);
|
||||
target.addMark('tongqu',1);
|
||||
}
|
||||
},
|
||||
marktext:'渠',
|
||||
intro:{content:'mark'},
|
||||
intro:{content:'mark',name2:'渠'},
|
||||
},
|
||||
tongqu2:{
|
||||
trigger:{player:'phaseDrawEnd'},
|
||||
|
@ -405,7 +575,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(card.name=='du') return -6*att;
|
||||
if(att>0){
|
||||
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
|
||||
if(get.value(card,target)>get.value(card,player)) return 2*att;
|
||||
if(target.hasUseTarget(card)) return 2*att;
|
||||
return 1.2*att;
|
||||
}
|
||||
return 0;
|
||||
|
@ -413,8 +583,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(result.targets.length) result.targets[0].gain(result.cards,player,'giveAuto');
|
||||
else player.discard(result.cards);
|
||||
if(result.targets.length){
|
||||
event.target=result.targets[0];
|
||||
event.target.gain(result.cards,player,'giveAuto');
|
||||
event.card=result.cards[0];
|
||||
}
|
||||
else{
|
||||
player.discard(result.cards);
|
||||
event.finish();
|
||||
}
|
||||
}
|
||||
'step 2'
|
||||
if(target.getCards('h').contains(card)&&get.type(card)=='equip'){
|
||||
target.chooseUseTarget(card,true);
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -422,9 +603,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'wanlan',
|
||||
trigger:{global:'damageBegin4'},
|
||||
filter:function(event,player){
|
||||
return event.player.hp<=event.num&&player.countCards('he',function(card){
|
||||
return lib.filter.cardDiscardable(card,player)&&get.type(card)!='basic';
|
||||
})>=1;
|
||||
return event.player.hp<=event.num&&player.countCards('e')>=1;
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
|
@ -442,9 +621,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return !player.hasUnknown();
|
||||
},
|
||||
content:function(){
|
||||
player.discard(player.getCards('he',function(card){
|
||||
return lib.filter.cardDiscardable(card,player)&&get.type(card)!='basic';
|
||||
}));
|
||||
player.discard(player.getCards('e'));
|
||||
trigger.cancel();
|
||||
},
|
||||
},
|
||||
|
@ -2604,7 +2781,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){},
|
||||
},
|
||||
rexushen:{
|
||||
derivation:['new_rewusheng','xindangxian'],
|
||||
derivation:['new_rewusheng','redangxian'],
|
||||
audio:'xinfu_xushen',
|
||||
limited:true,
|
||||
enable:'phaseUse',
|
||||
|
@ -2679,8 +2856,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool){
|
||||
player.line(trigger.source,'fire');
|
||||
trigger.source.addSkillLog('new_rewusheng');
|
||||
trigger.source.addSkillLog('xindangxian');
|
||||
trigger.source.storage.xinfuli=true;
|
||||
trigger.source.addSkillLog('redangxian');
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -4545,9 +4721,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tunchu:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
check:function(event,player){
|
||||
return player.countCards('h')-player.countCards('h',{type:'equip'})<=player.hp;
|
||||
},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
if(event.numFixed||player.storage.tunchu&&player.storage.tunchu.length) return false;
|
||||
return true;
|
||||
|
@ -5566,7 +5740,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
meiyong:'姝勇',
|
||||
meiyong_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后其摸一张牌。',
|
||||
rexushen:'许身',
|
||||
rexushen_info:'限定技,出牌阶段,你可以失去X点体力(X为场上男性角色的数量)。若你以此法进入了濒死状态,则当你因一名角色而脱离此濒死状态后,你可以令其获得技能〖武圣〗和〖当先〗(其以此法获得的〖当先〗结算时视为其发动过〖伏枥〗)。',
|
||||
rexushen_info:'限定技,出牌阶段,你可以失去X点体力(X为场上男性角色的数量)。若你以此法进入了濒死状态,则当你因一名角色而脱离此濒死状态后,你可以令其获得技能〖武圣〗和〖当先〗。',
|
||||
rezhennan:'镇南',
|
||||
rezhennan_info:'当你成为其他角色使用的牌的目标后,若此牌的目标数大于该角色的体力值,则你可以弃置一张牌并对其造成1点伤害。',
|
||||
|
||||
|
@ -5701,13 +5875,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gaoyuan:'告援',
|
||||
gaoyuan_info:'当你成为【杀】的目标时,你可弃置一张牌将此【杀】转移给一名有“诤”且不是此【杀】使用者的其他角色。',
|
||||
tongqu:'通渠',
|
||||
tongqu_info:'游戏开始时,你获得一个“渠”。出牌阶段开始时,你可令一名没有“渠”的角色获得一个“渠”。有“渠”的角色摸牌阶段,其多摸一张牌,然后其将一张牌交给一名有“渠”的其他角色或弃置一张牌。有“渠”的角色受到伤害后,其弃置“渠”',
|
||||
tongqu_info:'游戏开始时,你拥有一个“渠”标记。准备阶段,你可以失去1点体力令一名没有“渠”标记的角色获得“渠”标记。有“渠”的角色摸牌阶段额外摸一张牌,然后将一张牌交给其他有“渠”的角色或弃置。若以此法给出的是装备牌则使用之。当有“渠”的角色进入濒死状态时,移除其“渠”标记。',
|
||||
xinwanlan:'挽澜',
|
||||
xinwanlan_info:'当有角色受到伤害时,若伤害点数大于其体力值,则你可以弃置所有非基本牌(至少两张)并防止此伤害。',
|
||||
xinwanlan_info:'当一名角色受到会令其进入濒死状态的伤害时,你可以弃置装备区中的所有牌(至少一张) 防止此伤害。',
|
||||
re_xusheng:'手杀徐盛',
|
||||
re_dongzhuo:'手杀董卓',
|
||||
rejiuchi:'酒池',
|
||||
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的【崩坏】失效直到回合结束。',
|
||||
furong:'傅肜',
|
||||
xuewei:'血卫',
|
||||
xuewei_info:'准备阶段,你可以选择一名其他角色(仅自己可见)。若如此做,直到你的下回合开始前,当其第一次受到伤害时,你防止此伤害,改为由你受到等量的伤害并对伤害来源造成等量同属性的伤害。',
|
||||
liechi:'烈斥',
|
||||
liechi_info:'锁定技,当你进入濒死状态时,伤害来源弃置一张牌。',
|
||||
xin_liaohua:'手杀廖化',
|
||||
redangxian:'当先',
|
||||
redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的准备阶段。',
|
||||
refuli:'伏枥',
|
||||
refuli_info:'限定技,当你处于濒死状态时,你可以将体力值回复至X点(X为势力数)。然后若你的体力值为全场唯一最多,你翻面。',
|
||||
xin_caozhang:'手杀曹彰',
|
||||
"rejiangchi":"将驰",
|
||||
"rejiangchi_info":"出牌阶段开始时,你可以选择一项:1、摸一张牌,若如此做,你本阶段内不能使用【杀】。 2、弃置一张牌,若如此做,此阶段你使用【杀】无距离限制且你可以额外使用一张【杀。",
|
||||
mobile_standard:'手杀异构·标准包',
|
||||
mobile_shenhua:'手杀异构·神话再临',
|
||||
mobile_yijiang1:'手杀异构·一将成名',
|
||||
mobile_sp:'手杀异构·SP',
|
||||
mobile_trashbin:'通厕所的',
|
||||
old_jiakui:'贾逵重制',
|
||||
}
|
||||
};
|
||||
});
|
||||
|
|
1602
character/old.js
|
@ -4,21 +4,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'refresh',
|
||||
characterSort:{
|
||||
refresh:{
|
||||
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_gongsunzan","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong"],
|
||||
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong"],
|
||||
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
|
||||
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'],
|
||||
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_lingtong','re_masu','xin_xusheng','xin_fazheng'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran'],
|
||||
refresh_yijiang4:['re_sunluban','re_wuyi'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi','xin_gongsunzan'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong'],
|
||||
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong'],
|
||||
},
|
||||
},
|
||||
connect:true,
|
||||
character:{
|
||||
//re_liubiao:['male','qun',3,['rezishou','zongshi'],['unseen']],
|
||||
xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']],
|
||||
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']],
|
||||
|
@ -62,7 +66,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_daqiao:['female','wu',3,['reguose','liuli']],
|
||||
re_huanggai:['male','wu',4,['rekurou','zhaxiang']],
|
||||
re_lvbu:['male','qun',5,['wushuang','new_liyu']],
|
||||
re_gongsunzan:['male','qun',4,['qiaomeng','reyicong']],
|
||||
re_huatuo:['male','qun',3,['jijiu','new_reqingnang']],
|
||||
re_liubei:['male','shu',4,['rerende','jijiang'],['zhu']],
|
||||
re_diaochan:['female','qun',3,['lijian','rebiyue']],
|
||||
|
@ -118,6 +121,109 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunben:['zhouyu','taishici','daqiao'],
|
||||
},
|
||||
skill:{
|
||||
xinyicong:{
|
||||
mod:{
|
||||
globalFrom:function(from,to,current){
|
||||
return current-Math.max(0,from.hp-1);
|
||||
},
|
||||
globalTo:function(from,to,current){
|
||||
return current+Math.max(0,to.getDamagedHp()-1);
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
threaten:0.8
|
||||
}
|
||||
},
|
||||
reanxu:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.countPlayer()>2&&game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('he');
|
||||
});
|
||||
},
|
||||
selectTarget:2,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target==player) return false;
|
||||
if(!ui.selected.targets.length) return target.countCards('he')>0;
|
||||
return target!=ui.selected.targets[0]&&ui.selected.targets[0].countGainableCards(target,'he')>0;
|
||||
},
|
||||
multitarget:true,
|
||||
targetprompt:['被拿牌','得到牌'],
|
||||
content:function(){
|
||||
'step 0'
|
||||
targets[1].gainPlayerCard(targets[0],'he',true);
|
||||
'step 1'
|
||||
if(targets[0].getHistory('lose',function(evt){
|
||||
return evt.getParent(3)==event&&!evt.es.length;
|
||||
}).length) player.draw();
|
||||
'step 2'
|
||||
if(targets[0].isIn()&&targets[1].isIn()&&
|
||||
targets[0].countCards('h')!=targets[1].countCards('h')){
|
||||
event.target=targets[targets[0].countCards('h')>targets[1].countCards('h')?1:0];
|
||||
player.chooseBool('是否令'+get.translation(event.target)+'摸一张牌?').set('ai',function(){
|
||||
var evt=_status.event.getParent();
|
||||
return get.attitude(evt.player,evt.target)>0;
|
||||
})
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
if(result.bool) target.draw();
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
threaten:2,
|
||||
order:9,
|
||||
result:{
|
||||
player:function(player,target){
|
||||
if(ui.selected.targets.length) return 0.01;
|
||||
return target.countCards('e')?0:0.5;
|
||||
},
|
||||
target:function(player,target){
|
||||
if(ui.selected.targets.length){
|
||||
player=target;
|
||||
target=ui.selected.targets[0];
|
||||
if(get.attitude(player,target)>1){
|
||||
return 0;
|
||||
}
|
||||
return target.countCards('h')-player.countCards('h')>(target.countCards('e')?2:1)?2:1;
|
||||
}
|
||||
else{
|
||||
if(get.attitude(player,target)<=0) return (target.countCards('he',function(card){
|
||||
return card.name=='tengjia'||get.value(card)>0;
|
||||
})>0)?-1.5:1.5;
|
||||
return (target.countCards('he',function(card){
|
||||
return card.name!='tengjia'&&get.value(card)<=0;
|
||||
})>0)?1.5:-1.5
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
rezongshi:{
|
||||
audio:2,
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+game.countGroup();
|
||||
},
|
||||
},
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>player.hp;
|
||||
},
|
||||
content:function(){
|
||||
player.addTempSkill('rezongshi_paoxiao');
|
||||
},
|
||||
},
|
||||
rezongshi_paoxiao:{
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha') return Infinity;
|
||||
},
|
||||
},
|
||||
},
|
||||
olbaonue:{
|
||||
audio:2,
|
||||
unique:true,
|
||||
|
@ -156,6 +262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
rezishou:{
|
||||
audio:'zishou',
|
||||
audioname:['re_liubiao'],
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
check:function(event,player){
|
||||
return player.countCards('h')<=(player.hasSkill('zongshi')?player.maxHp:(player.hp-2))||player.skipList.contains('phaseUse')||!player.countCards('h',function(card){
|
||||
|
@ -423,6 +530,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
wulie:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
audio:2,
|
||||
direct:true,
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
|
@ -6713,8 +6821,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(card.name=='jiu') return Infinity;
|
||||
},
|
||||
},
|
||||
audio:'jiuchi',
|
||||
audioname:['ol_dongzhuo'],
|
||||
audio:2,
|
||||
enable:'chooseToUse',
|
||||
filterCard:function(card){
|
||||
return get.suit(card)=='spade';
|
||||
|
@ -6888,7 +6995,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_lvbu:'界吕布',
|
||||
re_xushu:'界徐庶',
|
||||
re_huanggai:'界黄盖',
|
||||
re_gongsunzan:'界公孙瓒',
|
||||
re_daqiao:'界大乔',
|
||||
re_ganning:'界甘宁',
|
||||
re_huatuo:'界华佗',
|
||||
|
@ -7230,9 +7336,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rezishou:'自守',
|
||||
rezishou2:'自守',
|
||||
rezishou_info:'摸牌阶段,你可以多摸X张牌。若如此做,本回合你对其他角色造成伤害时,防止此伤害,且结束阶段,若你本回合没有使用牌指定其他角色为目标,则你可以将场上的一张装备牌移动到自己的装备区。(X为场上势力数)',
|
||||
rezongshi:'宗室',
|
||||
rezongshi_info:'锁定技,你的手牌上限+X(X为势力数)。准备阶段,若你的手牌数大于体力值,则你本回合内使用【杀】无次数限制。',
|
||||
ol_dongzhuo:'界董卓',
|
||||
olbaonue:'暴虐',
|
||||
olbaonue_info:'主公技,其他群雄角色造成1点伤害后,其可进行判定,若为♠,你回复1点体力并获得判定牌。',
|
||||
re_panzhangmazhong:'界潘璋马忠',
|
||||
re_hanhaoshihuan:'界韩浩史涣',
|
||||
re_bulianshi:'界步练师',
|
||||
reanxu:'安恤',
|
||||
reanxu_info:'出牌阶段限一次,你可以选择两名其他角色,令其中一名角色获得另一名角色的一张牌。若以此法移动的牌不来自装备区,则你摸一张牌。然后你可以令二者中手牌数较少的一名角色摸一张牌。',
|
||||
xin_gongsunzan:'界公孙瓒',
|
||||
xinyicong:'义从',
|
||||
xinyicong_info:'锁定技,你计算与其他角色的距离时-X,其他角色计算与你的距离时+Y。(X为你的体力值-1,Y为你的已损失体力值-1)',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
382
character/sp.js
|
@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
sp:{
|
||||
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu'],
|
||||
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang'],
|
||||
sp_zhongdan:["cuiyan","huangfusong"],
|
||||
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
|
||||
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
|
||||
|
@ -17,7 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterFilter:{},
|
||||
character:{
|
||||
//caoshuang:['male','wei',4,['tuogu','shanzhuan']],
|
||||
caoshuang:['male','wei',4,['tuogu','shanzhuan']],
|
||||
ol_zhangchangpu:['female','wei',3,['yanjiao','olxingshen']],
|
||||
zhangling:['male','qun',4,['zlhuji','zlshoufu'],['unseen']],
|
||||
caiyang:['male','qun',1,['yinka'],['forbidai','unseen']],
|
||||
|
@ -33,8 +33,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yuantanyuanshang:['male','qun',4,['neifa']],
|
||||
xujing:['male','shu',3,['yuxu','xjshijian']],
|
||||
|
||||
hejin:['male','qun',4,['mouzhu','yanhuo']],
|
||||
hansui:['male','qun',4,['mashu','niluan']],
|
||||
hejin:['male','qun',4,['spmouzhu']],
|
||||
hansui:['male','qun',4,['spniluan','spweiwu']],
|
||||
niujin:['male','wei',4,['cuorui','liewei']],
|
||||
jianggan:["male","wei",3,["weicheng","daoshu"]],
|
||||
|
||||
|
@ -392,6 +392,250 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//曹爽,韩遂,何进
|
||||
xiaoxi:{
|
||||
audio:2,
|
||||
audioname:['machao','hansui','pangde'],
|
||||
trigger:{
|
||||
player:'enterGame',
|
||||
global:'gameDrawAfter',
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
player.chooseUseTarget('sha',get.prompt('xiaoxi'),'视为使用一张【杀】').logSkill='xiaoxi';
|
||||
},
|
||||
},
|
||||
spmouzhu:{
|
||||
enable:'phaseUse',
|
||||
audio:'mouzhu',
|
||||
usable:1,
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=[
|
||||
'选择距离为1的角色',
|
||||
'选择体力值等于你的角色',
|
||||
];
|
||||
var choiceList=ui.create.dialog('谋诛:请选择一项','forcebutton','hidden');
|
||||
for(var i=0;i<list.length;i++){
|
||||
var str='<div class="popup text" style="width:calc(100% - 10px);display:inline-block">';
|
||||
var bool=lib.skill.spmouzhu.chooseButton.filter({link:i},player);
|
||||
if(!bool) str+='<div style="opacity:0.5">';
|
||||
str+=list[i];
|
||||
if(!bool) str+='</div>';
|
||||
str+='</div>';
|
||||
var next=choiceList.add(str);
|
||||
next.firstChild.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
|
||||
next.firstChild.link=i;
|
||||
for(var j in lib.element.button){
|
||||
next[j]=lib.element.button[i];
|
||||
}
|
||||
choiceList.buttons.add(next.firstChild);
|
||||
}
|
||||
return choiceList;
|
||||
},
|
||||
filter:function(button,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return lib.skill.spmouzhux.filterTargets[button.link](null,player,current)
|
||||
});
|
||||
},
|
||||
check:function(button){
|
||||
return Math.random();
|
||||
},
|
||||
backup:function(links){
|
||||
lib.skill.spmouzhux.link=links[0];
|
||||
return lib.skill.spmouzhux;
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
},
|
||||
spmouzhux:{
|
||||
audio:'mouzhu',
|
||||
filterTarget:function(card,player,target){
|
||||
return lib.skill.spmouzhux.filterTargets[lib.skill.spmouzhu_backup.link](card,player,target);
|
||||
},
|
||||
filterTargets:[
|
||||
function(card,player,target){
|
||||
return player!=target&&get.distance(player,target)<=1;
|
||||
},
|
||||
function(card,player,target){
|
||||
return player!=target&&player.hp==target.hp;
|
||||
}
|
||||
],
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.chooseCard('he','交给'+get.translation(player)+'一张牌',true);
|
||||
'step 1'
|
||||
player.gain(result.cards,target,'giveAuto');
|
||||
'step 2'
|
||||
if(player.countCards('h')<=target.countCards('h')){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
var list=[];
|
||||
if(target.canUse('sha',player,false)) list.push('sha');
|
||||
if(target.canUse('juedou',player,false)) list.push('juedou');
|
||||
if(!list.length) event.finish();
|
||||
else if(list.length==1) event._result={control:list[0]};
|
||||
else target.chooseControl(list).set('prompt','对'+get.translation(player)+'使用一张【杀】或【决斗】。').ai=function(){
|
||||
return get.effect(player,{name:'sha'},target,target)>=get.effect(player,{name:'juedou'},target,target)?'sha':'juedou';
|
||||
};
|
||||
'step 3'
|
||||
target.useCard({name:result.control,isCard:true},player,'noai');
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:-1.2,
|
||||
player:function(player,target){
|
||||
if(target.countCards('h')-player.countCards('h')>1) return 1;
|
||||
if(get.damageEffect(target,player,player,player)>0) return 1;
|
||||
if(player.hp>3||player.countCards('h','sha')&&player.countCards('h','shan')) return 0;
|
||||
if(player.hp>2) return -1.1;
|
||||
return -2;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
spniluan:{
|
||||
enable:'phaseUse',
|
||||
audio:'niluan',
|
||||
viewAs:{name:'sha'},
|
||||
check:function(card){
|
||||
return 5.1-get.value(card);
|
||||
},
|
||||
filterCard:{color:'black'},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.hp<=player.hp) return false;
|
||||
return lib.filter.filterTarget.apply(this,arguments);
|
||||
},
|
||||
position:'he',
|
||||
audio:'niluan',
|
||||
viewAsFilter:function(player){
|
||||
return player.countCards('he',lib.skill.spniluan.filterCard)>0&&game.hasPlayer(function(current){
|
||||
return current.hp>player.hp&&player.canUse('sha',current);
|
||||
});
|
||||
},
|
||||
group:'spniluan_clear',
|
||||
},
|
||||
spniluan_clear:{
|
||||
trigger:{player:'useCardAfter'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return event.skill=='spniluan'&&event.addCount!==false&&player.getHistory('sourceDamage',function(card){
|
||||
return card.card==event.card;
|
||||
}).length==0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.addCount=false;
|
||||
if(player.stat[player.stat.length-1].card.sha>0){
|
||||
player.stat[player.stat.length-1].card.sha--;
|
||||
}
|
||||
},
|
||||
},
|
||||
spweiwu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
viewAs:{name:'shunshou'},
|
||||
filterCard:{color:'red'},
|
||||
position:'he',
|
||||
audio:'xiaoxi',
|
||||
check:function(card){
|
||||
return 7-get.value(card);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.countCards('h')<=player.countCards('h')) return false;
|
||||
return lib.filter.filterTarget.apply(this,arguments);
|
||||
},
|
||||
viewAsFilter:function(player){
|
||||
return player.countCards('he',lib.skill.spweiwu.filterCard)>0&&game.hasPlayer(function(current){
|
||||
return current.countCards('h')>player.countCards('h')&&player.canUse('shunshou',current);
|
||||
});
|
||||
},
|
||||
},
|
||||
tuogu:{
|
||||
audio:2,
|
||||
trigger:{global:'die'},
|
||||
filter:function(event,player){
|
||||
return event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
|
||||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
}).length>0;
|
||||
},
|
||||
logTarget:'player',
|
||||
skillAnimation:true,
|
||||
animationColor:'thunder',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('tuogu');
|
||||
var list=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
|
||||
var info=get.info(skill);
|
||||
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
|
||||
});
|
||||
if(!list.length) event._result={control:list[0]};
|
||||
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
|
||||
return list.randomGet();
|
||||
});
|
||||
'step 1'
|
||||
player.addSkillLog(result.control);
|
||||
game.broadcastAll(function(skill){
|
||||
var list=[skill];game.expandSkills(list);
|
||||
for(var i of list){
|
||||
var info=lib.skill[i];
|
||||
if(!info) continue;
|
||||
if(!info.audioname2) info.audioname2={};
|
||||
info.audioname2.caoshuang='tuogu';
|
||||
}
|
||||
},result.control);
|
||||
},
|
||||
},
|
||||
shanzhuan:{
|
||||
trigger:{source:'damageSource'},
|
||||
audio:2,
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&event.player.countCards('he')&&!event.player.countCards('j');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.choosePlayerCard(trigger.player,'he',get.prompt('shanzhuan',trigger.player)).set('ai',function(card){
|
||||
if(get.attitude(_status.event.player,_status.event.target)>=0) return 0;
|
||||
return get.buttonValue(card);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('shanzhuan',trigger.player);
|
||||
var card=result.cards[0];
|
||||
trigger.player.$throw(card);
|
||||
game.delayx();
|
||||
if(get.type(card)=='delay') trigger.player.addJudge(card);
|
||||
else trigger.player.addJudge({name:get.color(card)=='red'?'lebu':'bingliang'},result.cards);
|
||||
}
|
||||
},
|
||||
group:'shanzhuan_draw',
|
||||
subfrequent:['draw'],
|
||||
subSkill:{
|
||||
draw:{
|
||||
audio:'shanzhuan',
|
||||
trigger:{player:'phaseEnd'},
|
||||
frequent:true,
|
||||
prompt:'是否发动【擅专】摸一张牌?',
|
||||
filter:function(event,player){
|
||||
return !player.getHistory('sourceDamage').length;
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
olxingshen:{
|
||||
trigger:{player:'damageEnd'},
|
||||
frequent:true,
|
||||
|
@ -1538,7 +1782,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.effect(player,{name:'sha'},target,target)>=get.effect(player,{name:'juedou'},target,target)?'sha':'juedou';
|
||||
};
|
||||
'step 3'
|
||||
target.useCard({name:result.control,isCard:true},player);
|
||||
target.useCard({name:result.control,isCard:true},player,'noai');
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
|
@ -4859,6 +5103,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
if(player.storage.fanghun) player.draw(player.storage.fanghun);
|
||||
player.removeMark('fanghun',player.storage.fanghun);
|
||||
player.awakenSkill('refuhan');
|
||||
'step 1'
|
||||
var list;
|
||||
if(_status.characterlist){
|
||||
list=[];
|
||||
|
@ -4883,16 +5129,109 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.remove(players[i].name1);
|
||||
list.remove(players[i].name2);
|
||||
}
|
||||
// var dialog=ui.create.dialog();
|
||||
// dialog.add([list.randomGets(5),'character']);
|
||||
player.chooseButton(true).set('ai',function(button){
|
||||
return get.rank(button.link,true)-lib.character[button.link][2];
|
||||
}).set('createDialog',['获得一张武将牌上的所有技能',[list.randomGets(5),'character']]);
|
||||
player.awakenSkill('refuhan');
|
||||
'step 1'
|
||||
player.addSkill(lib.character[result.links[0]][3]);
|
||||
player.flashAvatar('refuhan',result.links[0]);
|
||||
game.log(player,'获得了','#g'+get.translation(result.links[0]),'的所有技能');
|
||||
list=list.randomGets(Math.max(2,Math.min(8,game.countPlayer())));
|
||||
var skills=[];
|
||||
for(var i of list){
|
||||
skills.addArray((lib.character[i][3]||[]).filter(function(skill){
|
||||
var info=get.info(skill);
|
||||
return info&&!info.zhuSkill&&!info.limited&&!info.juexingji&&!info.charlotte;
|
||||
}));
|
||||
}
|
||||
if(!list.length||!skills.length){event.finish();return;}
|
||||
if(player.isUnderControl()){
|
||||
game.modeSwapPlayer(player);
|
||||
}
|
||||
var switchToAuto=function(){
|
||||
_status.imchoosing=false;
|
||||
event._result={
|
||||
bool:true,
|
||||
skills:skills.randomGets(2),
|
||||
};
|
||||
if(event.dialog) event.dialog.close();
|
||||
if(event.control) event.control.close();
|
||||
};
|
||||
var chooseButton=function(list,skills){
|
||||
var event=_status.event;
|
||||
event._result.skills=[];
|
||||
var rSkill=event._result.skills;
|
||||
var dialog=ui.create.dialog('请选择获得至多两个技能',[list,'character'],'hidden');
|
||||
event.dialog=dialog;
|
||||
var table=document.createElement('div');
|
||||
table.classList.add('add-setting');
|
||||
table.style.margin='0';
|
||||
table.style.width='100%';
|
||||
table.style.position='relative';
|
||||
for(var i=0;i<skills.length;i++){
|
||||
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
|
||||
td.link=skills[i];
|
||||
table.appendChild(td);
|
||||
td.innerHTML='<span>'+get.translation(skills[i])+'</span>';
|
||||
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
|
||||
if(_status.dragged) return;
|
||||
if(_status.justdragged) return;
|
||||
_status.tempNoButton=true;
|
||||
setTimeout(function(){
|
||||
_status.tempNoButton=false;
|
||||
},500);
|
||||
var link=this.link;
|
||||
if(!this.classList.contains('bluebg')){
|
||||
if(rSkill.length>=2) return;
|
||||
rSkill.add(link);
|
||||
this.classList.add('bluebg');
|
||||
}
|
||||
else{
|
||||
this.classList.remove('bluebg');
|
||||
rSkill.remove(link);
|
||||
}
|
||||
});
|
||||
}
|
||||
dialog.content.appendChild(table);
|
||||
dialog.add(' ');
|
||||
dialog.open();
|
||||
|
||||
event.switchToAuto=function(){
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
};
|
||||
event.control=ui.create.control('ok',function(link){
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
});
|
||||
for(var i=0;i<event.dialog.buttons.length;i++){
|
||||
event.dialog.buttons[i].classList.add('selectable');
|
||||
}
|
||||
game.pause();
|
||||
game.countChoose();
|
||||
};
|
||||
if(event.isMine()){
|
||||
chooseButton(list,skills);
|
||||
}
|
||||
else if(event.isOnline()){
|
||||
event.player.send(chooseButton,list,skills);
|
||||
event.player.wait();
|
||||
game.pause();
|
||||
}
|
||||
else{
|
||||
switchToAuto();
|
||||
}
|
||||
'step 2'
|
||||
var map=event.result||result;
|
||||
if(map&&map.skills&&map.skills.length){
|
||||
for(var i of map.skills) player.addSkillLog(i);
|
||||
}
|
||||
game.broadcastAll(function(list){
|
||||
game.expandSkills(list);
|
||||
for(var i of list){
|
||||
var info=lib.skill[i];
|
||||
if(!info) continue;
|
||||
if(!info.audioname2) info.audioname2={};
|
||||
info.audioname2.old_yuanshu='weidi';
|
||||
}
|
||||
},map.skills);
|
||||
},
|
||||
},
|
||||
refanghun:{
|
||||
|
@ -14524,7 +14863,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fuhan:'扶汉',
|
||||
fuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,将武将牌替换为其中一名角色,并将体力上限数调整为本局游戏中移去“梅影”标记的数量(至少为2,至多为8),然后回复1点体力。',
|
||||
refuhan:'扶汉',
|
||||
refuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,获得其中一张武将牌上的所有技能。',
|
||||
refuhan_info:'限定技,回合开始时,你可以移去所有"梅影"标记并摸等量的牌,然后从X张蜀势力武将牌中选择并获得至多两个技能(限定技、觉醒技、主公技除外)。若此时你是体力值最低的角色,你回复1点体力(X为场上角色数,且X∈[2,8])。',
|
||||
yjixi:'觊玺',
|
||||
yjixi_info:'觉醒技,结束阶段,若你连续三回合没有因〖庸肆〗而失去过体力,则你增加1点体力上限并回复1点体力,然后选择一项:获得技能〖妄尊〗;摸两张牌并获得当前主公的主公技。',
|
||||
xinyongsi:'庸肆',
|
||||
|
@ -14965,7 +15304,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tuogu:'托孤',
|
||||
tuogu_info:'限定技,一名角色死亡时,你可以令其选择其武将牌上的一个技能(主公技,限定技,觉醒技等特殊技能除外),然后你获得其选择的技能。',
|
||||
shanzhuan:'擅专',
|
||||
shanzhuan_info:'当你对其他角色造成伤害后,你可以将其判定区的一张牌置于其的判定区。若此牌不为延时锦囊牌且此牌为:红色,此牌视为【乐不思蜀】;黑色,此牌视为【兵粮寸断】。',
|
||||
shanzhuan_info:'当你对其他角色造成伤害后,若其判定区没有牌,则你你可以将其的一张牌置于其的判定区。若此牌不为延时锦囊牌且此牌为:红色,此牌视为【乐不思蜀】;黑色,此牌视为【兵粮寸断】。回合结束时,若你本回合内未造成伤害,你可摸一张牌。',
|
||||
spniluan:'逆乱',
|
||||
spniluan_info:'出牌阶段,你可以将一张黑色牌当做【杀】对体力值大于你的角色使用。此【杀】使用结算完成后,若你未因此【杀】造成过伤害,则你令此【杀】不计入使用次数。',
|
||||
spweiwu:'违忤',
|
||||
spweiwu_info:'出牌阶段限一次,你可以将一张红色牌当做【顺手牵羊】对手牌数大于你的角色使用。',
|
||||
spmouzhu:'谋诛',
|
||||
spmouzhu_backup:'谋诛',
|
||||
spmouzhu_info:'出牌阶段限一次,你可以从“距离为1”或“体力值等于你”中选择一个条件,然后令此时所有满足条件的角色依次进行以下结算:交给你一张手牌,然后若其手牌数小于你,则其视为对你使用一张【杀】或【决斗】。',
|
||||
xiaoxi:'骁袭',
|
||||
xiaoxi_info:'当你登场时,你可以视为使用一张【杀】。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_zhongdan:"忠胆英杰",
|
||||
|
|
118
character/sp2.js
|
@ -369,13 +369,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
"step 1"
|
||||
var map=event.result||result;
|
||||
if(result.bool){
|
||||
if(map.bool){
|
||||
player.logSkill('moying');
|
||||
player.addTempSkill('moying2');
|
||||
var cards=[];
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
var card=ui.cardPile.childNodes[i];
|
||||
if(get.suit(card)==result.suit&&get.number(card)==result.number) cards.push(card);
|
||||
if(get.suit(card)==map.suit&&get.number(card)==map.number) cards.push(card);
|
||||
}
|
||||
if(cards.length) player.gain(cards,'gain2','log');
|
||||
}
|
||||
|
@ -1268,65 +1268,69 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
mansi:{
|
||||
audio:2,
|
||||
trigger:{global:'useCardAfter'},
|
||||
group:'mansi_viewas',
|
||||
trigger:{global:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='nanman'&&game.countPlayer2(function(current){
|
||||
return current.getHistory('damage',function(evt){
|
||||
return evt.getParent(2)==event;
|
||||
}).length>0;
|
||||
})>0;
|
||||
return event.card&&event.card.name=='nanman';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
var num=game.countPlayer2(function(current){
|
||||
return current.getHistory('damage',function(evt){
|
||||
return evt.getParent(2)==trigger;
|
||||
}).length>0;
|
||||
});
|
||||
player.draw(num);
|
||||
player.addMark('mansi',num,false);
|
||||
player.draw();
|
||||
player.addMark('mansi',1,false);
|
||||
},
|
||||
intro:{content:'已因此技能获得了#张牌'},
|
||||
},
|
||||
mansi_viewas:{
|
||||
audio:'mansi',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:true,
|
||||
selectCard:-1,
|
||||
filter:function(event,player){
|
||||
var hs=player.getCards('h');
|
||||
if(!hs.length) return false;
|
||||
for(var i=0;i<hs.length;i++){
|
||||
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
|
||||
if(mod2===false) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
viewAs:{name:'nanman'},
|
||||
},
|
||||
souying:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'damageBegin3',
|
||||
source:'damageBegin1',
|
||||
player:'useCardToPlayered',
|
||||
target:'useCardToTargeted',
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player,name){
|
||||
if(!player.countCards('h')||player.hasSkill('souying2')) return false;
|
||||
if(name=='damageBegin1'){
|
||||
if(event.player.sex!='male') return false;
|
||||
return event.player.getHistory('damage',function(evt){
|
||||
return evt.source==player;
|
||||
}).length==1;
|
||||
if(!player.countCards('he')||player.hasSkill('souying2')) return false;
|
||||
if(!event.targets||event.targets.length!=1||event.player==event.target) return false;
|
||||
if(name=='useCardToPlayered'){
|
||||
var target=event.target;
|
||||
return player.getHistory('useCard',function(evt){
|
||||
return evt.targets&&evt.targets.length==1&&evt.targets[0]==target;
|
||||
}).indexOf(event.getParent())>0;
|
||||
}
|
||||
else{
|
||||
if(!event.source||event.source.sex!='male') return false;
|
||||
return player.getHistory('damage',function(evt){
|
||||
return evt.source==event.source;
|
||||
}).length==1;
|
||||
var source=event.player;
|
||||
return source.getHistory('useCard',function(evt){
|
||||
return evt.targets&&event.targets.length==1&&evt.targets[0]==player;
|
||||
}).indexOf(event.getParent())>0;
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var next=player.chooseToDiscard();
|
||||
if(event.triggername=='damageBegin1'){
|
||||
var next=player.chooseToDiscard('he');
|
||||
if(event.triggername=='useCardToTargeted'){
|
||||
event.target=trigger.player;
|
||||
next.set('goon',get.attitude(player,event.target)<0&&!event.target.hasSkillTag('filterDamage',null,{
|
||||
player:player,
|
||||
card:trigger.card,
|
||||
})),
|
||||
next.set('prompt2','弃置一张手牌,令对其造成的伤害+1');
|
||||
}
|
||||
else{
|
||||
event.target=trigger.source;
|
||||
next.set('goon',true);
|
||||
next.set('prompt2','弃置一张手牌,令即将受到的伤害-1');
|
||||
event.target=trigger.cards[0];
|
||||
}
|
||||
next.set('prompt',get.prompt('souying',event.target));
|
||||
next.set('prompt2','弃置一张牌,并获得'+get.translation(trigger.cards.filterInD()))
|
||||
next.set('ai',function(card){
|
||||
if(_status.event.goon) return 6-get.value(card);
|
||||
return -1;
|
||||
|
@ -1335,7 +1339,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
player.addTempSkill('souying2');
|
||||
trigger.num+=(event.triggername=='damageBegin1'?1:-1);
|
||||
player.gain(trigger.cards.filterInD());
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -1363,7 +1367,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.chooseTarget('是否失去〖蛮嗣〗,令一名其他男性角色和自己一同获得技能〖系力〗?',function(card,player,target){
|
||||
return target!=player&&target.sex=='male';
|
||||
}).ai=function(target){
|
||||
return get.attitude(_status.event.player,target)-5;
|
||||
return get.attitude(_status.event.player,target);
|
||||
};
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
|
@ -1376,36 +1380,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
hmxili:{
|
||||
trigger:{global:'useCardToPlayered'},
|
||||
trigger:{global:'damageBegin1'},
|
||||
direct:true,
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.card.name=='sha'&&event.player.isPhaseUsing()&&event.player.hasSkill('hmxili')&&player.countCards('h')>0;
|
||||
return event.source&&event.source!=player&&event.source==_status.currentPhase&&event.source.hasSkill('hmxili')&&player.countCards('he')>0&&!player.hasSkill('hmxili2');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseToDiscard('是否弃置一张手牌,令'+get.translation(trigger.card)+'对'+get.translation(trigger.target)+'的伤害+1?','h').set('logSkill',['hmxili',trigger.target]).set('goon',function(){
|
||||
var target=trigger.target;
|
||||
if(get.attitude(player,target)>=0) return false;
|
||||
if(trigger.target.hasSkillTag('filterDamage',null,{
|
||||
player:trigger.player,
|
||||
card:trigger.card,
|
||||
})||target.mayHaveShan()) return false;
|
||||
return true;
|
||||
}()).ai=function(card){
|
||||
if(_status.event.goon) return 5-get.value(card);
|
||||
return -1;
|
||||
player.chooseToDiscard('是否弃置一张牌,令'+get.translation(trigger.source)+'对'+get.translation(trigger.player)+'的伤害+1,且你与其各摸两张牌?','he').set('logSkill',['hmxili',trigger.target]).ai=function(card){
|
||||
return 9-get.value(card);
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var id=trigger.target.playerid;
|
||||
var map=trigger.customArgs;
|
||||
if(!map[id]) map[id]={};
|
||||
if(!map[id].extraDamage) map[id].extraDamage=0;
|
||||
map[id].extraDamage++;
|
||||
game.asyncDraw([trigger.source,player],2);
|
||||
trigger.num++;
|
||||
player.addTempSkill('hmxili2');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
game.delayx();
|
||||
},
|
||||
},
|
||||
hmxili2:{},
|
||||
//说出吾名吓汝一跳
|
||||
xuxie:{
|
||||
audio:2,
|
||||
|
@ -5425,14 +5422,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
huaman:'花鬘',
|
||||
hmmanyi:'蛮裔',
|
||||
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
|
||||
mansi_viewas:'蛮嗣',
|
||||
mansi:'蛮嗣',
|
||||
mansi_info:'一名角色使用的【南蛮入侵】结算完成后,你可以摸X张牌(X为受到过此牌伤害的角色数)。',
|
||||
mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
|
||||
souying:'薮影',
|
||||
souying_info:'每回合限一次,当你对一名男性角色造成伤害(或一名男性角色对你造成伤害时),若此伤害是你对其(或其对你)本回合内造成的第二次伤害,你可以弃置一张手牌令此伤害+1或(-1)。',
|
||||
souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张牌,你可以弃置一张牌将此牌收回手牌(或令此牌对你无效)。',
|
||||
zhanyuan:'战缘',
|
||||
zhanyuan_info:'觉醒技,准备阶段,若你已因蛮嗣累计获得超过7张牌,你加一点体力上限,并可以选择一名男性角色,你与其获得技能〖系力〗,然后你失去技能〖蛮嗣〗',
|
||||
hmxili:'系力',
|
||||
hmxili_info:'你的回合外,当其他拥有〖系力〗技能的角色在其回合内使用【杀】指定目标后,你可以弃置一张手牌,令此【杀】伤害+1。',
|
||||
hmxili_info:'每回合限一次,你的回合外,当其他拥有【系力】技能的角色在其回合内对没有【系力】技能的角色造成伤害时,你可以弃置一张牌,令此伤害+1,然后你与其各摸两张牌。',
|
||||
wangshuang:'王双',
|
||||
spzhuilie:'追猎',
|
||||
spzhuilie2:'追猎',
|
||||
|
|
|
@ -2535,7 +2535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
"new_jiangchi":{
|
||||
audio:"jiangchi",
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:"phaseDrawEnd",
|
||||
},
|
||||
|
|
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
characterSort:{
|
||||
yijiang:{
|
||||
yijiang_2011:['caozhi','re_yujin','zhangchunhua','fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
|
||||
yijiang_2012:['old_wangyi','xunyou','zhonghui','madai','liaohua','old_guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang'],
|
||||
yijiang_2012:['old_wangyi','xunyou','zhonghui','madai','liaohua','old_guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang','re_gongsunzan'],
|
||||
yijiang_2013:['manchong','guohuai','caochong','guanping','liufeng','jianyong','yufan','panzhangmazhong','zhuran','xin_liru','fuhuanghou'],
|
||||
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
|
||||
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
|
||||
|
@ -16,6 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
re_gongsunzan:['male','qun',4,['qiaomeng','reyicong']],
|
||||
fazheng:['male','shu',3,['enyuan','xuanhuo']],
|
||||
old_guanzhang:['male','shu',4,['old_fuhun']],
|
||||
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
|
||||
|
@ -51,7 +52,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhuhuan:['male','wu',4,['fenli','pingkou']],
|
||||
xiahoushi:['female','shu',3,['qiaoshi','yanyu']],
|
||||
|
||||
panzhangmazhong:['male','wu',4,['reduodao','reanjian']],
|
||||
panzhangmazhong:['male','wu',4,['duodao','anjian']],
|
||||
zhoucang:['male','shu',4,['xinzhongyong']],
|
||||
guanping:['male','shu',4,['longyin']],
|
||||
liaohua:['male','shu',4,['dangxian','fuli']],
|
||||
|
@ -59,7 +60,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gaoshun:['male','qun',4,['xinxianzhen','jinjiu']],
|
||||
caozhen:['male','wei',4,['xinsidi']],
|
||||
wuyi:['male','shu',4,['benxi']],
|
||||
hanhaoshihuan:['male','wei',4,['reshenduan','reyonglve']],
|
||||
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
|
||||
|
||||
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
|
||||
caoxiu:['male','wei',4,['reqianju','reqingxi']],
|
||||
|
@ -407,7 +408,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
xindanshou:{
|
||||
audio:'danshou',
|
||||
audio:2,
|
||||
trigger:{
|
||||
global:'phaseJieshuBegin',
|
||||
target:'useCardToTargeted',
|
||||
|
@ -459,7 +460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
xinbenxi:{
|
||||
group:['xinbenxi_summer','xinbenxi_damage'],
|
||||
audio:'benxi',
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'useCard2',
|
||||
},
|
||||
|
@ -629,7 +630,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
damage:{
|
||||
sub:true,
|
||||
trigger:{global:'damageBegin1'},
|
||||
audio:'benxi',
|
||||
audio:2,
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card&&player.storage.xinbenxi_damage.contains(event.card);
|
||||
|
@ -664,7 +665,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
xinyaoming:{
|
||||
audio:'yaoming',
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'damageEnd',
|
||||
source:'damageSource',
|
||||
|
@ -827,10 +828,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
xinfuli:{
|
||||
audio:'fuli',
|
||||
audio:2,
|
||||
skillAnimation:true,
|
||||
animationColor:'soil',
|
||||
audio:2,
|
||||
unique:true,
|
||||
limited:true,
|
||||
enable:'chooseToUse',
|
||||
|
@ -876,7 +876,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
audio:'dangxian',
|
||||
audioname:['guansuo'],
|
||||
audioname:['guansuo','xin_liaohua','re_liaohua'],
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.phaseUse().xindangxian=true;
|
||||
|
@ -3572,6 +3572,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
jyzongshi:{
|
||||
audio:2,
|
||||
audioname:['re_jianyong'],
|
||||
trigger:{player:['chooseToCompareAfter','compareMultipleAfter'],target:['chooseToCompareAfter','compareMultipleAfter']},
|
||||
filter:function(event,player){
|
||||
if(event.preserve) return false;
|
||||
|
@ -4935,7 +4936,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
check:function(event,player){
|
||||
return get.attitude(player,event.target)<0;
|
||||
},
|
||||
logTarget:'player',
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=Math.min(game.countPlayer(function(current){
|
||||
|
@ -5364,6 +5365,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return false;
|
||||
},
|
||||
audio:2,
|
||||
audioname:['re_chengpu'],
|
||||
check:function(event,player){
|
||||
return false;
|
||||
},
|
||||
|
@ -5723,7 +5725,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var att=get.attitude(player,trigger.player);
|
||||
var nh=trigger.player.countCards('h');
|
||||
var eff=get.effect(trigger.player,{name:'sha',isCard:true},player,player);
|
||||
if(!player.canUse({name:'sha',isCard:true},trigger.player,false)) eff=0;
|
||||
if(player.inRange(trigger.player)||!player.canUse({name:'sha',isCard:true},trigger.player,false)) eff=0;
|
||||
player.discardPlayerCard(get.prompt('yonglve',trigger.player),trigger.player,'j').set('ai',function(button){
|
||||
var name=button.link.viewAs||button.link.name;
|
||||
var att=_status.event.att;
|
||||
|
@ -5740,15 +5742,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}).set('att',att).set('nh',nh).set('eff',eff).set('logSkill',['reyonglve',trigger.player]);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(player.canUse({name:'sha',isCard:true},trigger.player,false)){
|
||||
event.related=player.useCard({name:'sha',isCard:true},trigger.player);
|
||||
if(!player.inRange(trigger.player)&&player.canUse({name:'sha',isCard:true},trigger.player,false)){
|
||||
player.useCard({name:'sha',isCard:true},trigger.player);
|
||||
}
|
||||
else player.draw();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
player.draw();
|
||||
},
|
||||
},
|
||||
yonglve:{
|
||||
|
@ -6461,7 +6459,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget([1,(player.storage.reyanzhu?player.hp:player.maxHp)],get.prompt('rexingxue'),'令所有目标角色依次摸一张牌,然后所有手牌数不等于体力值的目标角色依次将一张牌置于牌堆顶').set('ai',function(target){
|
||||
player.chooseTarget([1,(player.storage.reyanzhu?player.maxHp:player.hp)],get.prompt('rexingxue'),'令所有目标角色依次摸一张牌,然后所有手牌数不等于体力值的目标角色依次将一张牌置于牌堆顶').set('ai',function(target){
|
||||
var att=get.attitude(player,target);
|
||||
if(target.countCards('h')==target.hp-1) att*=2;
|
||||
return att;
|
||||
|
@ -7718,26 +7716,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'duodao',
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(get.color(trigger.card)!='red'){
|
||||
var prompt='弃置一张牌'
|
||||
if(trigger.player.getEquip(1)) prompt+=(',然后获得'+get.translation(trigger.player)+'装备区中的'+get.translation(trigger.player.getEquip(1)));
|
||||
var next=player.chooseToDiscard('he',get.prompt('reduodao',trigger.player),prompt);
|
||||
next.logSkill=['reduodao',trigger.player];
|
||||
next.set('ai',function(card){
|
||||
if(!_status.event.getTrigger().player.getEquip(1)) return 0;
|
||||
if(get.attitude(_status.event.player,_status.event.getTrigger().player)*get.value(_status.event.getTrigger().player.getEquip(1))<=0){
|
||||
return 6-get.value(card);
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
else{
|
||||
player.chooseBool('是否发动夺刀】,获得'+get.translation(trigger.player)+'装备区的'+get.translation(trigger.player.getEquip(1))+'?').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var source=_status.event.getTrigger().player;
|
||||
return get.attitude(player,source)*get.value(source.getEquip(1))<=0;
|
||||
});
|
||||
}
|
||||
var prompt='弃置一张牌'
|
||||
if(trigger.player.getEquip(1)) prompt+=(',然后获得'+get.translation(trigger.player)+'装备区中的'+get.translation(trigger.player.getEquip(1)));
|
||||
var next=player.chooseToDiscard('he',get.prompt('reduodao',trigger.player),prompt);
|
||||
next.logSkill=['reduodao',trigger.player];
|
||||
next.set('ai',function(card){
|
||||
if(!_status.event.getTrigger().player.getEquip(1)) return 0;
|
||||
if(get.attitude(_status.event.player,_status.event.getTrigger().player)*get.value(_status.event.getTrigger().player.getEquip(1))<=0){
|
||||
return 6-get.value(card);
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool&&trigger.player.getEquip(1)){
|
||||
if(!result.cards||!result.cards.length) player.logSkill('reduodao',trigger.player);
|
||||
|
@ -8459,7 +8448,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olsanyao1:{},
|
||||
rezhiman:{
|
||||
audio:'zhiman',
|
||||
audioname:['guansuo'],
|
||||
audioname:['guansuo','re_masu'],
|
||||
trigger:{source:'damageBegin2'},
|
||||
check:function(event,player){
|
||||
if(get.damageEffect(event.player,player,player)<0) return true;
|
||||
|
@ -8484,7 +8473,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
resanyao:{
|
||||
audio:'sanyao',
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
selectCard:function(){
|
||||
|
@ -8540,7 +8529,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
reqiaoshui:{
|
||||
audio:'qiaoshui',
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
filterTarget:function(card,player,target){
|
||||
return player.canCompare(target);
|
||||
|
@ -9080,7 +9069,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
rechanhui:{
|
||||
audio:'chanhui',
|
||||
audio:2,
|
||||
trigger:{player:'useCardToPlayer'},
|
||||
filter:function(event,player){
|
||||
if(_status.currentPhase!=player||player.hasSkill('rechanhui2')) return false;
|
||||
|
@ -9131,7 +9120,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
rechanhui2:{},
|
||||
rejiaojin:{
|
||||
audio:'jiaojin',
|
||||
audio:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
return (event.card.name=='sha'||get.type(event.card)=='trick')&&event.player&&event.player.sex=='male'&&player.countCards('he',function(card){
|
||||
|
@ -9694,6 +9683,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
zhuiyi:{
|
||||
audio:2,
|
||||
audioname:['re_bulianshi'],
|
||||
trigger:{player:'die'},
|
||||
direct:true,
|
||||
skillAnimation:true,
|
||||
|
@ -10624,6 +10614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
zishou:{
|
||||
audio:2,
|
||||
audioname:['re_liubiao'],
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
check:function(event,player){
|
||||
return player.countCards('h')<=(player.hasSkill('zongshi')?player.maxHp:(player.hp-2))||player.skipList.contains('phaseUse');
|
||||
|
@ -11341,7 +11332,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
player.draw(2);
|
||||
},
|
||||
audio:'jingce',
|
||||
audio:2,
|
||||
},
|
||||
oldchengxiang:{
|
||||
audio:'chengxiang',
|
||||
|
@ -12129,7 +12120,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhenjun:"镇军",
|
||||
"zhenjun_info":"准备阶段,你可以弃置一名手牌数多于体力值的角色的X张牌(X为其手牌数和体力值之差),然后选择一项:1.你弃置等同于其中非装备牌数量的牌;2.其摸等量的牌。",
|
||||
rezhenjun:"镇军",
|
||||
rezhenjun_info:"准备阶段,你可以弃置一名手牌数多于体力值的角色的X张牌(X为其手牌数和体力值之差且至少为1),然后选择一项:1.你弃置X张牌;2.其摸X张牌。(X为其弃置的牌中非装备牌的数量)",
|
||||
rezhenjun_info:"准备阶段,你可以弃置一名角色的X张牌(X为其手牌数和体力值之差且至少为1),然后选择一项:1.你弃置X张牌;2.其摸X张牌。(X为其弃置的牌中非装备牌的数量)",
|
||||
xinzhenjun:'镇军',
|
||||
xinzhenjun_info:'出牌阶段开始时,你可以将一张牌交给一名其他角色,令其选择是否使用一张不为黑色的【杀】。若其选择是,则你于此【杀】结算完成后摸1+X张牌(X为此【杀】造成的伤害总点数)。若其选择否,则你对其或其攻击范围内的一名其他角色造成1点伤害。',
|
||||
fenli:'奋励',
|
||||
|
@ -12278,7 +12269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reshenduan:'慎断',
|
||||
reshenduan_info:'当你的黑色基本牌或装备牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。',
|
||||
reyonglve:'勇略',
|
||||
reyonglve_info:'一名其他角色的判定阶段开始时,你可以弃置其判定区里的一张牌,视为对该角色使用一张【杀】。然后你摸一张牌。',
|
||||
reyonglve_info:'其他角色的判定阶段开始时,你可以弃置其判定区里的一张牌。然后若该角色在你攻击范围内,你摸一张牌。若其在你攻击范围外,视为你对其使用一张【杀】。',
|
||||
benxi:'奔袭',
|
||||
benxi_info:'锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束;你的回合内,若你与所有角色的距离均为1,你无视其他角色的防具,且你使用的【杀】可额外指定一个目标',
|
||||
xinbenxi:'奔袭',
|
||||
|
@ -12358,7 +12349,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xingshuai:'兴衰',
|
||||
xingshuai_info:'主公技,限定技,当你进入濒死状态时,其他魏势力角色可依次令你回复1点体力,然后这些角色依次受到1点伤害。',
|
||||
reduodao:'夺刀',
|
||||
reduodao_info:'当你成为【杀】的目标后,若此杀:为红色,你可点击确定键。不为红色,你可以弃置一张牌。然后你获得此【杀】使用者装备区里的武器牌。',
|
||||
reduodao_info:'当你成为【杀】的目标后,你可以弃置一张牌。然后你获得此【杀】使用者装备区里的武器牌。',
|
||||
reanjian:'暗箭',
|
||||
reanjian_info:'锁定技,当你使用【杀】指定目标后,若你不在其攻击范围内,则此杀伤害+1且无视其防具。若其因执行此【杀】的效果受到伤害而进入濒死状态,则其不能使用【桃】直到此濒死事件结算结束。',
|
||||
duodao:'夺刀',
|
||||
|
@ -12605,6 +12596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reshangshi:'伤逝',
|
||||
reshangshi_2nd:'伤逝',
|
||||
reshangshi_info:'当你受到伤害时,你可以弃置一张牌。当你的手牌数小于X时,你可以将手牌摸至X张。(X为你已损失的体力值)',
|
||||
re_gongsunzan:'界公孙瓒',
|
||||
|
||||
yijiang_2011:'一将成名2011',
|
||||
yijiang_2012:'一将成名2012',
|
||||
|
|
102
game/asset.js
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.103.4',
|
||||
'v1.9.104',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -593,6 +593,26 @@ window.noname_asset_list=[
|
|||
'audio/die/old_madai.mp3',
|
||||
'audio/die/old_wangyi.mp3',
|
||||
'audio/die/sunshao.mp3',
|
||||
'audio/die/caoshuang.mp3',
|
||||
'audio/die/furong.mp3',
|
||||
'audio/die/ol_dongzhuo.mp3',
|
||||
'audio/die/re_bulianshi.mp3',
|
||||
'audio/die/re_caozhang.mp3',
|
||||
'audio/die/re_chengpu.mp3',
|
||||
'audio/die/re_guohuai.mp3',
|
||||
'audio/die/re_jianyong.mp3',
|
||||
'audio/die/re_liaohua.mp3',
|
||||
'audio/die/re_liubiao.mp3',
|
||||
'audio/die/re_masu.mp3',
|
||||
'audio/die/re_quancong.mp3',
|
||||
'audio/die/re_sunluban.mp3',
|
||||
'audio/die/re_wuyi.mp3',
|
||||
'audio/die/re_zhangyi.mp3',
|
||||
'audio/die/re_zhuran.mp3',
|
||||
'audio/die/xin_caozhang.mp3',
|
||||
'audio/die/xin_gongsunzan.mp3',
|
||||
'audio/die/xin_liaohua.mp3',
|
||||
'audio/die/xin_xusheng.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2621,6 +2641,70 @@ window.noname_asset_list=[
|
|||
'audio/skill/oldqianxi2.mp3',
|
||||
'audio/skill/oldzhenlie1.mp3',
|
||||
'audio/skill/oldzhenlie2.mp3',
|
||||
'audio/skill/benghuai_ol_dongzhuo1.mp3',
|
||||
'audio/skill/benghuai_ol_dongzhuo2.mp3',
|
||||
'audio/skill/dangxian_re_liaohua1.mp3',
|
||||
'audio/skill/dangxian_re_liaohua2.mp3',
|
||||
'audio/skill/dangxian_xin_liaohua1.mp3',
|
||||
'audio/skill/dangxian_xin_liaohua2.mp3',
|
||||
'audio/skill/decadepojun1.mp3',
|
||||
'audio/skill/decadepojun2.mp3',
|
||||
'audio/skill/jyzongshi_re_jianyong1.mp3',
|
||||
'audio/skill/jyzongshi_re_jianyong2.mp3',
|
||||
'audio/skill/liechi1.mp3',
|
||||
'audio/skill/liechi2.mp3',
|
||||
'audio/skill/lihuo_re_chengpu1.mp3',
|
||||
'audio/skill/lihuo_re_chengpu2.mp3',
|
||||
'audio/skill/new_jiangchi1.mp3',
|
||||
'audio/skill/new_jiangchi2.mp3',
|
||||
'audio/skill/olbaonue1.mp3',
|
||||
'audio/skill/olbaonue2.mp3',
|
||||
'audio/skill/oljiuchi1.mp3',
|
||||
'audio/skill/oljiuchi2.mp3',
|
||||
'audio/skill/reanxu1.mp3',
|
||||
'audio/skill/reanxu2.mp3',
|
||||
'audio/skill/rechanhui1.mp3',
|
||||
'audio/skill/rechanhui2.mp3',
|
||||
'audio/skill/rechunlao1.mp3',
|
||||
'audio/skill/rechunlao2.mp3',
|
||||
'audio/skill/refuli1.mp3',
|
||||
'audio/skill/refuli2.mp3',
|
||||
'audio/skill/rejiangchi1.mp3',
|
||||
'audio/skill/rejiangchi2.mp3',
|
||||
'audio/skill/rejiaojin1.mp3',
|
||||
'audio/skill/rejiaojin2.mp3',
|
||||
'audio/skill/reqiaoshui1.mp3',
|
||||
'audio/skill/reqiaoshui2.mp3',
|
||||
'audio/skill/resanyao1.mp3',
|
||||
'audio/skill/resanyao2.mp3',
|
||||
'audio/skill/rewurong1.mp3',
|
||||
'audio/skill/rewurong2.mp3',
|
||||
'audio/skill/rezongshi1.mp3',
|
||||
'audio/skill/rezongshi2.mp3',
|
||||
'audio/skill/roulin_ol_dongzhuo1.mp3',
|
||||
'audio/skill/roulin_ol_dongzhuo2.mp3',
|
||||
'audio/skill/shanzhuan1.mp3',
|
||||
'audio/skill/shanzhuan2.mp3',
|
||||
'audio/skill/tuogu1.mp3',
|
||||
'audio/skill/tuogu2.mp3',
|
||||
'audio/skill/xinbenxi1.mp3',
|
||||
'audio/skill/xinbenxi2.mp3',
|
||||
'audio/skill/xindanshou1.mp3',
|
||||
'audio/skill/xindanshou2.mp3',
|
||||
'audio/skill/xinfuli1.mp3',
|
||||
'audio/skill/xinfuli2.mp3',
|
||||
'audio/skill/xinjingce1.mp3',
|
||||
'audio/skill/xinjingce2.mp3',
|
||||
'audio/skill/xinyaoming1.mp3',
|
||||
'audio/skill/xinyaoming2.mp3',
|
||||
'audio/skill/xuewei1.mp3',
|
||||
'audio/skill/xuewei2.mp3',
|
||||
'audio/skill/zhiman_re_masu1.mp3',
|
||||
'audio/skill/zhiman_re_masu2.mp3',
|
||||
'audio/skill/zhuiyi_re_bulianshi1.mp3',
|
||||
'audio/skill/zhuiyi_re_bulianshi2.mp3',
|
||||
'audio/skill/zishou_re_liubiao1.mp3',
|
||||
'audio/skill/zishou_re_liubiao2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -3239,6 +3323,16 @@ window.noname_asset_list=[
|
|||
'image/character/caobuxing.jpg',
|
||||
'image/character/key_akiko.jpg',
|
||||
'image/character/re_maliang.jpg',
|
||||
'image/character/caoshuang.jpg',
|
||||
'image/character/furong.jpg',
|
||||
'image/character/key_abyusa.jpg',
|
||||
'image/character/re_bulianshi.jpg',
|
||||
'image/character/re_hanhaoshihuan.jpg',
|
||||
'image/character/re_liubiao.jpg',
|
||||
'image/character/re_panzhangmazhong.jpg',
|
||||
'image/character/xin_caozhang.jpg',
|
||||
'image/character/xin_gongsunzan.jpg',
|
||||
'image/character/xin_liaohua.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
@ -5074,10 +5168,14 @@ window.noname_skin_list={
|
|||
key_hinata:1,
|
||||
key_iwasawa:2,
|
||||
key_nao:3,
|
||||
key_shiki:3,
|
||||
key_shiki:4,
|
||||
key_yui:2,
|
||||
key_yuri:3,
|
||||
key_yuzuru:2,
|
||||
sp_key_kanade:1,
|
||||
key_kamome:1,
|
||||
key_umi:1,
|
||||
key_umi2:1,
|
||||
key_mio:1,
|
||||
key_midori:1,
|
||||
};
|
131
game/game.js
|
@ -5530,7 +5530,7 @@
|
|||
name:'斗地主',
|
||||
connect:{
|
||||
update:function(config,map){
|
||||
if(config.connect_doudizhu_mode=='kaihei'){
|
||||
if(config.connect_doudizhu_mode=='kaihei'||config.connect_doudizhu_mode=='huanle'){
|
||||
map.connect_double_character.hide();
|
||||
}
|
||||
else{
|
||||
|
@ -5541,8 +5541,9 @@
|
|||
name:'游戏模式',
|
||||
init:'normal',
|
||||
item:{
|
||||
normal:'标准',
|
||||
normal:'休闲',
|
||||
kaihei:'开黑',
|
||||
huanle:'欢乐',
|
||||
},
|
||||
restart:true,
|
||||
frequent:true,
|
||||
|
@ -5562,13 +5563,13 @@
|
|||
},
|
||||
config:{
|
||||
update:function(config,map){
|
||||
if(config.doudizhu_mode=='kaihei'){
|
||||
if(config.doudizhu_mode=='kaihei'||config.doudizhu_mode=='huanle'){
|
||||
map.double_character.hide();
|
||||
}
|
||||
else{
|
||||
map.double_character.show();
|
||||
}
|
||||
if(config.double_character&&config.doudizhu_mode!='kaihei'){
|
||||
if(config.double_character&&config.doudizhu_mode!='kaihei'&&config.doudizhu_mode!='huanle'){
|
||||
map.double_hp.show();
|
||||
}
|
||||
else{
|
||||
|
@ -5579,8 +5580,9 @@
|
|||
name:'游戏模式',
|
||||
init:'normal',
|
||||
item:{
|
||||
normal:'标准',
|
||||
normal:'休闲',
|
||||
kaihei:'开黑',
|
||||
huanle:'欢乐',
|
||||
},
|
||||
restart:true,
|
||||
frequent:true,
|
||||
|
@ -16303,7 +16305,7 @@
|
|||
},this.playerid,str);
|
||||
},
|
||||
chat:function(str){
|
||||
if(str&&str.indexOf('http')!=-1) return;
|
||||
if(get.is.banWords(str)) return;
|
||||
lib.element.player.say.call(this,str);
|
||||
game.broadcast(function(id,str){
|
||||
if(lib.playerOL[id]){
|
||||
|
@ -24216,7 +24218,7 @@
|
|||
if(lib.config.forbidai.contains(i)) return true;
|
||||
if(lib.characterFilter[i]&&!lib.characterFilter[i](get.mode())) return true;
|
||||
if(_status.connectMode){
|
||||
if(lib.configOL.banned.contains(i)) return true;
|
||||
if(lib.configOL.banned.contains(i)||lib.connectBanned.contains(i)) return true;
|
||||
var double_character=false;
|
||||
if(lib.configOL.mode=='guozhan'){
|
||||
double_character=true;
|
||||
|
@ -25758,7 +25760,9 @@
|
|||
ui.connectClients=ui.create.div('.forceopaque.menubutton.large.connectevents.pointerdiv.left','在线',ui.window,ui.click.connectClients);
|
||||
ui.connectClientsCount=ui.create.div('.forceopaque.menubutton.icon.connectevents.highlight.left','1',ui.window);
|
||||
if(events.length){
|
||||
ui.connectEventsCount.innerHTML=events.length;
|
||||
ui.connectEventsCount.innerHTML=events.filter(function(evt){
|
||||
return evt.creator==game.onlineKey||!get.is.banWords(evt.content)
|
||||
}).length;
|
||||
ui.connectEventsCount.show();
|
||||
}
|
||||
}
|
||||
|
@ -25879,8 +25883,11 @@
|
|||
updateevents:function(events){
|
||||
if(events&&ui.connectEvents){
|
||||
ui.connectEvents.info=events;
|
||||
if(events.length){
|
||||
ui.connectEventsCount.innerHTML=events.length;
|
||||
var num=events.filter(function(evt){
|
||||
return evt.creator==game.onlineKey||!get.is.banWords(evt.content)
|
||||
}).length;
|
||||
if(num){
|
||||
ui.connectEventsCount.innerHTML=num;
|
||||
ui.connectEventsCount.show();
|
||||
}
|
||||
else{
|
||||
|
@ -42049,6 +42056,7 @@
|
|||
});
|
||||
}
|
||||
}
|
||||
lib.init.js(lib.assetURL+'game','keyWords',function(){});
|
||||
lib.updateURL=lib.updateURLS[lib.config.update_link]||lib.updateURLS.coding;
|
||||
|
||||
lib.init.cssstyles();
|
||||
|
@ -43265,6 +43273,77 @@
|
|||
alert('创建失败,时间已过');
|
||||
return;
|
||||
}
|
||||
if(get.is.banWords(button.input.value)){
|
||||
var eventnode=ui.create.div('.menubutton.videotext.onlineevent.pointerdiv',function(){
|
||||
var that=this;
|
||||
setTimeout(function(){
|
||||
if(that.classList.contains('active')){
|
||||
if(confirm('确定要离开'+that.info.content+'?')){
|
||||
that.classList.remove('active');
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(confirm('确定要加入'+that.info.content+'?')){
|
||||
that.classList.add('active');
|
||||
}
|
||||
}
|
||||
});
|
||||
},uiintro.content,3);
|
||||
var fakeinfo={
|
||||
utc:utc,
|
||||
day:parseInt(daysselect.value),
|
||||
hour:parseInt(hoursselect.value),
|
||||
nickname:lib.config.connect_nickname,
|
||||
avatar:lib.config.connect_avatar,
|
||||
content:button.input.value,
|
||||
create:game.onlineKey,
|
||||
members:[game.onlineKey],
|
||||
};
|
||||
eventnode.info=fakeinfo;
|
||||
ui.create.div('.title',fakeinfo.content,eventnode);
|
||||
var str;
|
||||
if(fakeinfo.day<currentDay){
|
||||
str='下周';
|
||||
}
|
||||
else{
|
||||
str='周';
|
||||
}
|
||||
if(fakeinfo.day==7){
|
||||
str+='日'
|
||||
}
|
||||
else{
|
||||
str+=get.cnNumber(fakeinfo.day,true);
|
||||
}
|
||||
str+=' ';
|
||||
var hour=fakeinfo.hour;
|
||||
if(hour<=12){
|
||||
if(hour<=5){
|
||||
str+='凌晨';
|
||||
}
|
||||
else if(hour<12){
|
||||
str+='上午';
|
||||
}
|
||||
else{
|
||||
str+='中午';
|
||||
}
|
||||
str+=fakeinfo.hour+'点';
|
||||
}
|
||||
else{
|
||||
if(hour<=17){
|
||||
str+='下午';
|
||||
}
|
||||
else{
|
||||
str+='晚上';
|
||||
}
|
||||
str+=(fakeinfo.hour-12)+'点';
|
||||
}
|
||||
ui.create.div('','已有'+(fakeinfo.members.length)+'人加入',eventnode);
|
||||
ui.create.div('','时间:'+str,eventnode);
|
||||
if(fakeinfo.members.contains(game.onlineKey)){
|
||||
eventnode.classList.add('active');
|
||||
}
|
||||
return;
|
||||
}
|
||||
game.send('server','events',{
|
||||
utc:utc,
|
||||
day:parseInt(daysselect.value),
|
||||
|
@ -43277,6 +43356,7 @@
|
|||
|
||||
var num=0;
|
||||
for(var i=0;i<button.info.length;i++){
|
||||
if(button.info[i].creator!=game.onlineKey&&get.is.banWords(button.info[i].content)) continue;
|
||||
if(button.info[i].creator==game.onlineKey&&button.info[i].members.contains(game.onlineKey)){
|
||||
num++;
|
||||
}
|
||||
|
@ -44057,14 +44137,21 @@
|
|||
}
|
||||
}
|
||||
if(!player) return;
|
||||
if(game.online){
|
||||
game.send('chat',game.onlineID,str);
|
||||
if(get.is.banWords(input.value)){
|
||||
player.say(input.value);
|
||||
input.value='';
|
||||
_status.chatValue='';
|
||||
}
|
||||
else{
|
||||
lib.element.player.chat.call(player,str);
|
||||
if(game.online){
|
||||
game.send('chat',game.onlineID,str);
|
||||
}
|
||||
else{
|
||||
lib.element.player.chat.call(player,str);
|
||||
}
|
||||
input.value='';
|
||||
_status.chatValue='';
|
||||
}
|
||||
input.value='';
|
||||
_status.chatValue='';
|
||||
}
|
||||
e.stopPropagation();
|
||||
}
|
||||
|
@ -47201,6 +47288,12 @@
|
|||
return 0;
|
||||
},
|
||||
is:{
|
||||
banWords:function(str){
|
||||
for(var i of window.bannedKeyWords){
|
||||
if(str.indexOf(i)!=-1) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
converted:function(event){
|
||||
return !(event.card&&event.card.isCard);
|
||||
},
|
||||
|
@ -47907,7 +48000,13 @@
|
|||
}
|
||||
},
|
||||
modetrans:function(config,server){
|
||||
if(config.mode=='doudizhu') return config.doudizhu_mode=='kaihei'?'开黑斗地主':'欢乐斗地主';
|
||||
if(config.mode=='doudizhu'){
|
||||
switch(config.doudizhu_mode){
|
||||
case 'kaihei':return '开黑斗地主';
|
||||
case 'huanle':return '欢乐斗地主';
|
||||
default:return '休闲斗地主';
|
||||
}
|
||||
}
|
||||
if(config.mode=='versus'){
|
||||
switch(config.versus_mode){
|
||||
case '1v1':return '单人对决';
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
window.bannedKeyWords=[
|
||||
'ghs','直肠','性交','做爱','http','吃奶',
|
||||
];
|
|
@ -40,6 +40,7 @@ window.noname_source_list=[
|
|||
'game/game.js',
|
||||
'game/http.js',
|
||||
'game/jszip.js',
|
||||
'game/keyWords.js',
|
||||
'game/NoSleep.js',
|
||||
'game/package.js',
|
||||
'game/phantom.js',
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
window.noname_update={
|
||||
version:'1.9.103.4',
|
||||
update:'1.9.103.3',
|
||||
version:'1.9.104',
|
||||
update:'1.9.103.4',
|
||||
changeLog:[
|
||||
'新孙休、曹休、刘表、张春华',
|
||||
'游佐',
|
||||
'曹爽',
|
||||
'界潘璋马忠、界韩浩史涣、新花蔓、新赵襄',
|
||||
'傅肜、界步练师、界刘表、手杀曹彰、界公孙瓒、手杀廖化、贾逵重制',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
|
@ -10,7 +13,7 @@ window.noname_update={
|
|||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
|
@ -19,21 +22,21 @@ window.noname_update={
|
|||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
//'character/diy.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
//'character/mobile.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/old.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
//'character/sp.js',
|
||||
'character/shenhua.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',
|
||||
|
@ -43,21 +46,22 @@ window.noname_update={
|
|||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'game/game.js',
|
||||
'game/keyWords.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
'game/source.js',
|
||||
//'theme/style/hp/xinglass.css',
|
||||
//'theme/style/hp/xinround.css',
|
||||
//'theme/style/hp/image/xinglass1.png',
|
||||
|
|
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
204
mode/doudizhu.js
|
@ -86,6 +86,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game.zhu.showGiveup();
|
||||
},
|
||||
game:{
|
||||
recommendDizhu:[
|
||||
're_guojia','re_huanggai','re_lvbu','re_guanyu','re_sunquan','re_xusheng','re_wuyi','re_sunben',
|
||||
'xuyou','zhangchunhua','caochong','zhangsong','zhongyao','wangyi',
|
||||
'caochun','maliang','sp_diaochan','quyi','sp_zhaoyun','shamoke',
|
||||
'lijue','liuzan','wenyang','shen_lvmeng','shen_ganning',
|
||||
'jiakui','wangyuanji','lingcao','miheng',
|
||||
'sp_key_yuri','key_hinata','key_rin','key_kyousuke',
|
||||
'ns_chendao','old_jiakui',
|
||||
],
|
||||
addRecord:function(bool){
|
||||
if(typeof bool=='boolean'){
|
||||
var data=lib.config.gameRecord.doudizhu.data;
|
||||
|
@ -193,6 +202,78 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else return player.identity=='fan';
|
||||
},
|
||||
chooseCharacterHuanle:function(){
|
||||
var next=game.createEvent('chooseCharacter',false);
|
||||
next.setContent(function(){
|
||||
"step 0"
|
||||
ui.arena.classList.add('choose-character');
|
||||
var i;
|
||||
event.list=[];
|
||||
event.list2=[];
|
||||
if(!event.map) event.map={};
|
||||
for(i in lib.character){
|
||||
if(lib.filter.characterDisabled(i)) continue;
|
||||
event.list.push(i);
|
||||
if(game.recommendDizhu.contains(i)) event.list2.push(i);
|
||||
}
|
||||
event.list.randomSort();
|
||||
_status.characterlist=event.list.slice(0);
|
||||
event.controls=['不叫','叫地主'];
|
||||
for(var player of game.players){
|
||||
var id=player.playerid;
|
||||
if(!event.map[id]) event.map[id]=[];
|
||||
event.map[id].addArray(event.list2.randomRemove(1));
|
||||
event.list.removeArray(event.map[id]);
|
||||
event.map[id].addArray(event.list.randomRemove(4-event.map[id].length));
|
||||
}
|
||||
event.dialog=ui.create.dialog('你的选将框',[event.map[game.me.playerid],'character']);
|
||||
event.start=game.players.randomGet();
|
||||
event.current=event.start;
|
||||
lib.init.onfree();
|
||||
game.delay(2.5);
|
||||
"step 1"
|
||||
event.current.chooseControl(event.controls).set('ai',function(){
|
||||
return Math.random()>0.5?'不叫':'叫地主';
|
||||
});
|
||||
if(event.current==game.me){
|
||||
event.dialog.content.childNodes[0].innerHTML='是否抢地主?';
|
||||
}
|
||||
"step 2"
|
||||
event.current.chat(result.control);
|
||||
if(result.control=='叫地主'||event.current==event.start.next){
|
||||
game.zhu=result.control=='叫地主'?event.current:event.current.next;
|
||||
for(var player of game.players){
|
||||
player.identity=player==game.zhu?'zhu':'fan';
|
||||
player.showIdentity();
|
||||
}
|
||||
event.dialog.close();
|
||||
event.map[game.zhu.playerid].addArray(event.list.randomRemove(3));
|
||||
}
|
||||
else{
|
||||
event.current=event.current.next;
|
||||
event.goto(1);
|
||||
game.delay(1.5);
|
||||
}
|
||||
"step 3"
|
||||
game.me.chooseButton(['请选择你的武将',[event.map[game.me.playerid],'character']],true);
|
||||
"step 4"
|
||||
game.me.init(result.links[0]);
|
||||
for(var player of game.players){
|
||||
if(player!=game.me) player.init(event.map[player.playerid].randomGet());
|
||||
}
|
||||
game.zhu.hp++;
|
||||
game.zhu.maxHp++;
|
||||
game.zhu.update();
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
_status.characterlist.remove(game.players[i].name);
|
||||
_status.characterlist.remove(game.players[i].name2);
|
||||
}
|
||||
setTimeout(function(){
|
||||
ui.arena.classList.remove('choose-character');
|
||||
},500);
|
||||
});
|
||||
},
|
||||
|
||||
chooseCharacterKaihei:function(){
|
||||
var next=game.createEvent('chooseCharacter',false);
|
||||
next.setContent(function(){
|
||||
|
@ -262,6 +343,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game.chooseCharacterKaihei();
|
||||
return;
|
||||
}
|
||||
if(_status.mode=='huanle'){
|
||||
game.chooseCharacterHuanle();
|
||||
return;
|
||||
}
|
||||
var next=game.createEvent('chooseCharacter',false);
|
||||
next.showConfig=true;
|
||||
next.addPlayer=function(player){
|
||||
|
@ -778,11 +863,130 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},500);
|
||||
});
|
||||
},
|
||||
chooseCharacterHuanleOL:function(){
|
||||
var next=game.createEvent('chooseCharacter',false);
|
||||
next.setContent(function(){
|
||||
"step 0"
|
||||
ui.arena.classList.add('choose-character');
|
||||
var i;
|
||||
event.list=[];
|
||||
event.list2=[];
|
||||
event.controls=['不叫','叫地主'];
|
||||
if(!event.map) event.map={};
|
||||
var libCharacter={};
|
||||
for(var i=0;i<lib.configOL.characterPack.length;i++){
|
||||
var pack=lib.characterPack[lib.configOL.characterPack[i]];
|
||||
for(var j in pack){
|
||||
if(j=='zuoci') continue;
|
||||
if(lib.character[j]) libCharacter[j]=pack[j];
|
||||
}
|
||||
}
|
||||
for(i in libCharacter){
|
||||
if(lib.filter.characterDisabled(i,libCharacter)) continue;
|
||||
event.list.push(i);
|
||||
if(game.recommendDizhu.contains(i)) event.list2.push(i);
|
||||
}
|
||||
for(var player of game.players){
|
||||
var id=player.playerid;
|
||||
if(!event.map[id]) event.map[id]=[];
|
||||
event.map[id].addArray(event.list2.randomRemove(1));
|
||||
event.list.removeArray(event.map[id]);
|
||||
event.map[id].addArray(event.list.randomRemove(4-event.map[id].length));
|
||||
}
|
||||
_status.characterlist=event.list.slice(0);
|
||||
event.videoId=lib.status.videoId++;
|
||||
game.broadcastAll(function(map,id){
|
||||
ui.create.dialog('你的选将框',[map[game.me.playerid],'character']).videoId=id;
|
||||
},event.map,event.videoId);
|
||||
event.start=game.players.randomGet();
|
||||
event.current=event.start;
|
||||
if(event.current!=game.me||!event.current.isOnline()) game.delay(3);
|
||||
"step 1"
|
||||
event.current.chooseControl(event.controls).set('ai',function(){
|
||||
return Math.random()>0.5?'不叫':'叫地主';
|
||||
});
|
||||
"step 2"
|
||||
event.current.chat(result.control);
|
||||
if(result.control=='叫地主'||event.current==event.start.next){
|
||||
game.zhu=result.control=='叫地主'?event.current:event.current.next;
|
||||
for(var player of game.players){
|
||||
player.identity=player==game.zhu?'zhu':'fan';
|
||||
player.showIdentity();
|
||||
player.identityShown=true;
|
||||
}
|
||||
game.broadcastAll('closeDialog',event.videoId)
|
||||
event.map[game.zhu.playerid].addArray(event.list.randomRemove(3));
|
||||
}
|
||||
else{
|
||||
event.current=event.current.next;
|
||||
event.goto(1);
|
||||
}
|
||||
"step 3"
|
||||
var list=[];
|
||||
var str='选择角色';
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
list.push([game.players[i],[str,[event.map[game.players[i].playerid],'character']],true]);
|
||||
}
|
||||
game.me.chooseButtonOL(list,function(player,result){
|
||||
if(game.online||player==game.me) player.init(result.links[0],result.links[1]);
|
||||
});
|
||||
"step 4"
|
||||
for(var i in result){
|
||||
if(result[i]&&result[i].links){
|
||||
for(var j=0;j<result[i].links.length;j++){
|
||||
event.list2.remove(result[i].links[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var i in result){
|
||||
if(result[i]=='ai'){
|
||||
result[i]=event.list2.randomRemove(lib.configOL.double_character?2:1);
|
||||
}
|
||||
else{
|
||||
result[i]=result[i].links
|
||||
}
|
||||
if(!lib.playerOL[i].name){
|
||||
lib.playerOL[i].init(result[i][0],result[i][1]);
|
||||
}
|
||||
}
|
||||
|
||||
game.zhu.maxHp++;
|
||||
game.zhu.hp++;
|
||||
game.zhu.update();
|
||||
|
||||
game.broadcast(function(result,zhu){
|
||||
for(var i in result){
|
||||
if(!lib.playerOL[i].name){
|
||||
lib.playerOL[i].init(result[i][0],result[i][1]);
|
||||
}
|
||||
}
|
||||
game.zhu=zhu;
|
||||
zhu.maxHp++;
|
||||
zhu.hp++;
|
||||
zhu.update();
|
||||
|
||||
setTimeout(function(){
|
||||
ui.arena.classList.remove('choose-character');
|
||||
},500);
|
||||
},result,game.zhu);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
_status.characterlist.remove(game.players[i].name);
|
||||
_status.characterlist.remove(game.players[i].name2);
|
||||
}
|
||||
setTimeout(function(){
|
||||
ui.arena.classList.remove('choose-character');
|
||||
},500);
|
||||
});
|
||||
},
|
||||
chooseCharacterOL:function(){
|
||||
if(_status.mode=='kaihei'){
|
||||
game.chooseCharacterKaiheiOL();
|
||||
return;
|
||||
}
|
||||
else if(_status.mode=='huanle'){
|
||||
game.chooseCharacterHuanleOL();
|
||||
return;
|
||||
}
|
||||
var next=game.createEvent('chooseCharacter',false);
|
||||
next.setContent(function(){
|
||||
"step 0"
|
||||
|
|
|
@ -862,18 +862,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
xiaoxi:{
|
||||
audio:2,
|
||||
audioname:['machao','hansui','pangde'],
|
||||
trigger:{
|
||||
player:'enterGame',
|
||||
global:'gameDrawAfter',
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
player.chooseUseTarget('sha',get.prompt('xiaoxi'),'视为使用一张【杀】').logSkill='xiaoxi';
|
||||
},
|
||||
},
|
||||
manyi:{
|
||||
audio:2,
|
||||
trigger:{target:'useCardToBefore'},
|
||||
|
@ -1196,8 +1184,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
changban2:'血战长坂坡',
|
||||
dianjiang2:'点将单挑',
|
||||
|
||||
xiaoxi:'骁袭',
|
||||
xiaoxi_info:'当你登场时,你可以视为使用一张【杀】。',
|
||||
manyi:'蛮裔',
|
||||
manyi_info:'锁定技,【南蛮入侵】对你无效。当你登场时,你可以视为使用一张【南蛮入侵】。',
|
||||
wanrong:'婉容',
|
||||
|
|