Add files via upload

This commit is contained in:
Spmario233 2020-04-03 20:09:26 +08:00 committed by GitHub
parent 028e91bf91
commit 36b2b1d126
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 7627 additions and 7346 deletions

File diff suppressed because it is too large Load Diff

View File

@ -214,6 +214,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.give(result.cards,player,'giveAuto'); target.give(result.cards,player,'giveAuto');
}, },
ai:{ ai:{
order:10,
result:{ result:{
player:function(player,target){ player:function(player,target){
return target.isHealthy()?1:0; return target.isHealthy()?1:0;

View File

@ -604,7 +604,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'loseAfter'}, trigger:{player:'loseAfter'},
forced:true, forced:true,
filter:function(event){ filter:function(event,player){
if(event.type!='discard'||!event.cards2) return false; if(event.type!='discard'||!event.cards2) return false;
var evt=event.getParent('phaseDiscard'); var evt=event.getParent('phaseDiscard');
return evt&&evt.name=='phaseDiscard'&&evt.player==player; return evt&&evt.name=='phaseDiscard'&&evt.player==player;

View File

@ -84,9 +84,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:' ', sunben:' ',
}, },
characterFilter:{ characterFilter:{
//re_zuoci:function(mode){ re_zuoci:function(mode){
// return mode=='identity'||mode=='single'||mode=='doudizhu'; return mode!='guozhan';
//} }
}, },
perfectPair:{ perfectPair:{
sunben:['zhouyu','taishici','daqiao'], sunben:['zhouyu','taishici','daqiao'],
@ -287,7 +287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var next=player.choosePlayerCard(trigger.target,'he',[1,Math.min(trigger.target.hp,trigger.target.countCards('he'))],get.prompt('xinpojun',trigger.target)); var next=player.choosePlayerCard(trigger.target,'he',[1,Math.min(trigger.target.hp,trigger.target.countCards('he'))],get.prompt('repojun',trigger.target));
next.set('ai',function(button){ next.set('ai',function(button){
if(!_status.event.goon) return 0; if(!_status.event.goon) return 0;
var val=get.value(button.link); var val=get.value(button.link);
@ -5436,7 +5436,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
repojun:'破军', repojun:'破军',
repojun2:'破军', repojun2:'破军',
repojun3:'破军', repojun3:'破军',
repojun_info:'当你使用【杀】指定目标后你可以将其的至多X张牌置于其武将牌上然后其于当前回合结束时获得这些牌。当你因执行【杀】的效果而对一名角色造成伤害时若该角色的手牌数和装备区内的牌数均不大于你则此伤害+1。', repojun_info:'当你使用【杀】指定目标后你可以将其的至多X张牌置于其武将牌上X为其体力值,然后其于当前回合结束时获得这些牌。当你因执行【杀】的效果而对一名角色造成伤害时,若该角色的手牌数和装备区内的牌数均不大于你,则此伤害+1。',
rexianzhen:'陷阵', rexianzhen:'陷阵',
rexianzhen_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你本回合内对其使用牌没有次数和距离限制。若你没赢,你本回合内不能使用【杀】。若你以此法失去的拼点牌为【杀】,则你的【杀】不计入本回合的手牌上限。', rexianzhen_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你本回合内对其使用牌没有次数和距离限制。若你没赢,你本回合内不能使用【杀】。若你以此法失去的拼点牌为【杀】,则你的【杀】不计入本回合的手牌上限。',
rejinjiu:'禁酒', rejinjiu:'禁酒',
@ -5447,7 +5447,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shebian:'设变', shebian:'设变',
shebian_info:'当你的武将牌翻面后,你可以移动场上的一张牌。', shebian_info:'当你的武将牌翻面后,你可以移动场上的一张牌。',
cangzhuo:'藏拙', cangzhuo:'藏拙',
cangzhuo_info:'弃牌阶段开始时,若你本回合内没有使用过装备牌,则你的锦囊牌不计入手牌上限。', cangzhuo_info:'弃牌阶段开始时,若你本回合内没有使用过锦囊牌,则你的锦囊牌不计入手牌上限。',
refresh_standard:'界限突破·标', refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风', refresh_feng:'界限突破·风',

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
sp:{ 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","wenyang","xujing","yuantanyuanshang"], 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","wenyang","xujing","yuantanyuanshang","wangshuang"],
sp_guansuo:['guansuo','baosanniang','huaman'], sp_guansuo:['guansuo','baosanniang','huaman'],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"], sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
@ -23,6 +23,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
//wangshuang:['male','wei',5,['spzhuilie']],
sp_gongsunzan:['male','qun',4,['spyicong','sptuji']], sp_gongsunzan:['male','qun',4,['spyicong','sptuji']],
sp_simazhao:['male','wei',3,['spzhaoxin','splanggu']], sp_simazhao:['male','wei',3,['spzhaoxin','splanggu']],
sp_wangyuanji:['female','wei',3,['spfuluan','spshude']], sp_wangyuanji:['female','wei',3,['spfuluan','spshude']],
@ -179,6 +180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]], //kaisa:["male","western",4,["zhengfu"]],
}, },
characterIntro:{ characterIntro:{
wangshuang:'王双(?-228年三国时期曹魏将领。蜀汉建兴六年228年诸葛亮出散关攻陈仓后粮尽而退。王双率领骑兵追击蜀军但在与蜀军的交战中被击败王双也被蜀军所斩。在《三国演义》中王双字子全是陇西郡狄道县今甘肃临洮县有万夫不当之勇。在诸葛亮北伐期间被魏延所斩。',
yuantanyuanshang:'袁谭、袁尚分别是袁绍的长子和第三子。袁绍坐拥青州、冀州、幽州、并州,本是北方最强诸侯,却于官渡大败,惭恨而终。虽然袁绍生前偏爱小儿子袁尚,却并未在继承人上有明确表态,这也导致本应以嫡长子身份继承的袁谭因郭图、审配伪立遗令未能如愿。曹操击败袁绍后,进而渡过黄河追击袁家残余势力,袁谭告急,但袁尚仅给他少量兵力。曹操得郭嘉之计退兵坐观其变,恰使两人此前的种种矛盾彻底爆发,袁谭不敌便引狼入室,派辛毗作为使者向曹操求援,让袁尚不得不北逃投奔乌桓。但袁谭也在之后背叛曹操兵败被杀。没多久,乌桓也被平定,袁熙、袁尚二人投奔公孙康后被斩首送还曹操。', yuantanyuanshang:'袁谭、袁尚分别是袁绍的长子和第三子。袁绍坐拥青州、冀州、幽州、并州,本是北方最强诸侯,却于官渡大败,惭恨而终。虽然袁绍生前偏爱小儿子袁尚,却并未在继承人上有明确表态,这也导致本应以嫡长子身份继承的袁谭因郭图、审配伪立遗令未能如愿。曹操击败袁绍后,进而渡过黄河追击袁家残余势力,袁谭告急,但袁尚仅给他少量兵力。曹操得郭嘉之计退兵坐观其变,恰使两人此前的种种矛盾彻底爆发,袁谭不敌便引狼入室,派辛毗作为使者向曹操求援,让袁尚不得不北逃投奔乌桓。但袁谭也在之后背叛曹操兵败被杀。没多久,乌桓也被平定,袁熙、袁尚二人投奔公孙康后被斩首送还曹操。',
huaman:'花鬘,古典戏曲《龙凤巾》(一名《化外奇缘》)中的人物,身份为三国时期南蛮王孟获与祝融夫人的女儿,关索的夫人之一。在关于关三小姐·关银屏的民间传说中,其名字为“花中秀”,与关索其他几位夫人鲍三娘、王桃、王悦都被关索之姐关银屏编入自己的女兵营中。花鬘在《三国志》,《三国演义》均未有提及,只是戏曲中的虚构人物。其形象并非一般君主家中闺秀,而是与其母祝融相似,是一个可以披甲上阵,善于刀枪作战的女武将。戏曲中在诸葛亮平定南蛮时,花鬘曾与关索作战,失败被俘,两人互生爱意,南蛮王孟获降服后二人成婚。近些年,花鬘接连在各类三国题材的游戏中登场,更广被人知晓。', huaman:'花鬘,古典戏曲《龙凤巾》(一名《化外奇缘》)中的人物,身份为三国时期南蛮王孟获与祝融夫人的女儿,关索的夫人之一。在关于关三小姐·关银屏的民间传说中,其名字为“花中秀”,与关索其他几位夫人鲍三娘、王桃、王悦都被关索之姐关银屏编入自己的女兵营中。花鬘在《三国志》,《三国演义》均未有提及,只是戏曲中的虚构人物。其形象并非一般君主家中闺秀,而是与其母祝融相似,是一个可以披甲上阵,善于刀枪作战的女武将。戏曲中在诸葛亮平定南蛮时,花鬘曾与关索作战,失败被俘,两人互生爱意,南蛮王孟获降服后二人成婚。近些年,花鬘接连在各类三国题材的游戏中登场,更广被人知晓。',
xujing:'许靖—222年字文休。汝南郡平舆县今河南省平舆县人。汉末至三国蜀汉时期重臣、名士、评论家。许靖因与从弟许邵俱以品评人物而闻名于世。后被刘翊推举为孝廉任尚书郎。曾先后投奔孔伷、陈祎、许贡、王朗等人于孙策攻王朗前与家属俱避难交州受到交趾太守士燮礼待。其后受益州牧刘璋邀请相继为巴郡、广汉、蜀郡太守。于刘备包围成都时欲越墙叛逃为刘璋所获。刘备定蜀后欲将其弃用在法正的建议下方以其为左将军长史。建安二十三年218年刘备称汉中王任命许靖为汉中王傅。章武元年221年刘备称帝任命许靖为司徒位列三公。章武二年222年去世。有文集二卷。', xujing:'许靖—222年字文休。汝南郡平舆县今河南省平舆县人。汉末至三国蜀汉时期重臣、名士、评论家。许靖因与从弟许邵俱以品评人物而闻名于世。后被刘翊推举为孝廉任尚书郎。曾先后投奔孔伷、陈祎、许贡、王朗等人于孙策攻王朗前与家属俱避难交州受到交趾太守士燮礼待。其后受益州牧刘璋邀请相继为巴郡、广汉、蜀郡太守。于刘备包围成都时欲越墙叛逃为刘璋所获。刘备定蜀后欲将其弃用在法正的建议下方以其为左将军长史。建安二十三年218年刘备称汉中王任命许靖为汉中王傅。章武元年221年刘备称帝任命许靖为司徒位列三公。章武二年222年去世。有文集二卷。',
@ -501,6 +503,55 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
//王双
spzhuilie:{
mod:{
targetInRange:function(card){
if(card.name=='sha') return true;
},
},
trigger:{player:'useCardToTargeted'},
filter:function(event,player){
return event.card&&event.card.name=='sha'&&!player.inRange(event.target);
},
forced:true,
logTarget:'target',
content:function(){
'step 0'
player.judge(function(card){
var type=get.type(card,'trick');
switch(type){
case 'equip': return 4;
case 'trick': return -4;
default: return 0;
}
});
'step 1'
if(trigger.getParent().addCount!==false){
trigger.getParent().addCount=false;
var stat=player.getStat();
if(stat&&stat.card&&stat.card.sha) stat.card.sha--;
}
if(result.bool===true){
var map=trigger.customArgs;
var id=trigger.target.playerid;
if(!map[id]) map[id]={};
map[id].baseDamage=trigger.target.hp;
}
else if(result.bool===false) player.loseHp();
},
},
spzhuilie2:{
onremove:true,
intro:{
content:'使用【杀】的次数上限+#',
},
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('spzhuilie2');
},
},
},
//桌游志贴纸 //桌游志贴纸
spyinzhi:{ spyinzhi:{
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
@ -2400,6 +2451,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog(event.lvli6?get.prompt('lvli'):'膂力',[list,'vcard']); return ui.create.dialog(event.lvli6?get.prompt('lvli'):'膂力',[list,'vcard']);
}, },
filter:function(button,player){ filter:function(button,player){
var evt=_status.event.getParent();
if(evt&&typeof evt.filterCard=='function') return evt.filterCard({name:button.link[2]},player,evt);
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent()); return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
}, },
check:function(button){ check:function(button){
@ -9876,11 +9929,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{player:'useCard'}, trigger:{player:'useCard'},
filter:function(event,player){ filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.cards&& return event.card&&event.card.name=='sha'&&event.addCount!==false&&event.cards&&
event.cards.length==1&&get.type(event.cards[0],'trick')=='trick'; event.cards.length==1&&get.type(event.cards[0],'trick')=='trick';
}, },
forced:true, forced:true,
content:function(){ content:function(){
Itrigger.addCount=false;
if(player.stat[player.stat.length-1].card.sha>0){ if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--; player.stat[player.stat.length-1].card.sha--;
} }
@ -12087,13 +12141,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard1'}, trigger:{player:'useCard1'},
filter:function(event,player){ filter:function(event,player){
if(_status.currentPhase==player&&event.card.name=='sha'&& if(_status.currentPhase==player&&event.card.name=='sha'&&
event.card.number>player.storage.qiangwu) return true; event.card.number>player.storage.qiangwu&&event.addCount!==false) return true;
return false; return false;
}, },
forced:true, forced:true,
popup:false, popup:false,
firstDo:true, firstDo:true,
content:function(){ content:function(){
trigger.addCount=false;
if(player.stat[player.stat.length-1].card.sha>0){ if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--; player.stat[player.stat.length-1].card.sha--;
} }
@ -15471,11 +15526,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:"龙", marktext:"龙",
intro:{ intro:{
name:"龙印", name:"龙印",
content:"<li>出牌阶段限三次,你可以将你的任意一张♥或♦手牌当【火攻】使用。<br><li>若你同时拥有「凤印」,则你视为拥有技能〖业炎〗。(发动〖业炎〗后,弃置龙印和凤印)", content:"<li>出牌阶段限三次,你可以将一张红色牌当【火攻】使用。<br><li>若你同时拥有「凤印」,则你视为拥有技能〖业炎〗。(发动〖业炎〗后,弃置龙印和凤印)",
}, },
usable:3, usable:3,
audio:2, audio:2,
enable:"chooseToUse", enable:"chooseToUse",
position:"he",
filterCard:function (card){ filterCard:function (card){
return get.color(card)=='red'; return get.color(card)=='red';
}, },
@ -15488,7 +15544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie'); return current.hasSkill('xinfu_jianjie');
})) return false; })) return false;
if(!player.countCards('h',{color:'red'})) return false; if(!player.countCards('he',{color:'red'})) return false;
}, },
prompt:"将一张红色牌当火攻使用", prompt:"将一张红色牌当火攻使用",
check:function (card){ check:function (card){
@ -16415,7 +16471,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"smh_yeyan":"业炎", "smh_yeyan":"业炎",
"smh_yeyan_info":"", "smh_yeyan_info":"",
"xinfu_yinshi":"隐士", "xinfu_yinshi":"隐士",
"xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且装备区的防具栏为空,则当你受到的属性伤害火锦囊牌造成的伤害时,防止此伤害。", "xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且防具栏为空,则当你受到属性伤害或锦囊牌造成的伤害时,防止此伤害。",
"xinfu_chenghao":"称好", "xinfu_chenghao":"称好",
"xinfu_chenghao_info":"当一名角色受到属性伤害后若其存活且其武将牌横置且是伤害传导的起点则你可以观看牌堆顶的X张牌并分配给任意角色。X为横置的角色数量且包含该角色", "xinfu_chenghao_info":"当一名角色受到属性伤害后若其存活且其武将牌横置且是伤害传导的起点则你可以观看牌堆顶的X张牌并分配给任意角色。X为横置的角色数量且包含该角色",
"jianjie_faq":"关于龙凤印", "jianjie_faq":"关于龙凤印",
@ -17277,6 +17333,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmingjian_info:'一名角色的回合开始时,你可以选择一项:①弃置一张牌,然后其跳过本回合的判定阶段。②将一张手牌置于其武将牌上,然后其本回合内进行判定时不触发「判定结果生效前」的时机,且其回合结束时将此牌置入弃牌堆。', spmingjian_info:'一名角色的回合开始时,你可以选择一项:①弃置一张牌,然后其跳过本回合的判定阶段。②将一张手牌置于其武将牌上,然后其本回合内进行判定时不触发「判定结果生效前」的时机,且其回合结束时将此牌置入弃牌堆。',
spyinzhi:'隐智', spyinzhi:'隐智',
spyinzhi_info:'当你受到1点伤害后你可以展示牌堆顶的两张牌。若其中有黑桃牌则你可以进行至多X次「令一名角色获得伤害来源的一张手牌」的步骤然后获得其余的牌。X为其中黑桃牌的数量', spyinzhi_info:'当你受到1点伤害后你可以展示牌堆顶的两张牌。若其中有黑桃牌则你可以进行至多X次「令一名角色获得伤害来源的一张手牌」的步骤然后获得其余的牌。X为其中黑桃牌的数量',
wangshuang:'王双',
spzhuilie:'追猎',
spzhuilie2:'追猎',
spzhuilie_info:'锁定技你使用【杀】无距离限制当你使用【杀】指定目标后若其不在你的攻击范围内此【杀】不计入使用次数限制且你判定。若判定结果为装备牌此【杀】的伤害基数改为XX为其体力值锦囊牌你失去1点体力。',
sp_default:"常规", sp_default:"常规",
sp_whlw:"文和乱武", sp_whlw:"文和乱武",

View File

@ -4194,7 +4194,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
selectCard:-1, selectCard:-1,
popname:true, popname:true,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
if(player==target) return false; var info=get.info(player.storage.jiaozhao_card);
if((!info.singleCard||!ui.selected.targets.length)&&player==target) return false;
return lib.filter.filterTarget(player.storage.jiaozhao_card,player,target); return lib.filter.filterTarget(player.storage.jiaozhao_card,player,target);
}, },
check:function(card){ check:function(card){
@ -5548,7 +5549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
"step 2" "step 2"
player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?', player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?',
{name:'sha'},trigger.target,-1); {name:'sha'},trigger.target,-1).set('addCount',false);
} }
}, },
xinzhongyong:{ xinzhongyong:{
@ -5608,7 +5609,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.useSha){ if(event.useSha){
event.target.chooseToUse('是否使用一张杀?',{name:'sha'}).set('filterTarget',function(card,player,target){ event.target.chooseToUse('是否使用一张杀?',{name:'sha'}).set('filterTarget',function(card,player,target){
return target!=_status.event.sourcex&&_status.event.sourcex.inRange(target)&&lib.filter.targetEnabled.apply(this,arguments); return target!=_status.event.sourcex&&_status.event.sourcex.inRange(target)&&lib.filter.targetEnabled.apply(this,arguments);
}).set('sourcex',player); }).set('sourcex',player).set('addCount',false);
} }
} }
}, },
@ -5964,13 +5965,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhaofu2:{ zhaofu2:{
mod:{ mod:{
attackTo:function(from,to,distance){ inRangeOf:function(from,to){
if(from.group!='wu') return; if(from.group!='wu') return;
var players=game.filterPlayer(); var players=game.filterPlayer();
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
if(from!=players[i]&&to!=players[i]&& if(from!=players[i]&&to!=players[i]&&
players[i].hasZhuSkill('zhaofu',from)){ players[i].hasZhuSkill('zhaofu',from)){
if(get.distance(players[i],to)<=1) return distance-100; if(get.distance(players[i],to)<=1) return true;
} }
} }
} }
@ -9669,7 +9670,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
num=1; num=1;
} }
if(num<=2&&!target.countCards('he')) return false; if(num<=2&&!target.countCards('he')) return false;
return player.inRange(target)<=1; return player.inRange(target);
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -10582,7 +10583,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
var targets=game.filterPlayer(function(current){ var targets=game.filterPlayer(function(current){
if(event.result.targets.contains(current)&&current.storage.xiansi){ if(event.result.targets.contains(current)&&current.storage.xiansi){
return current.storage.xiansi.length>1&&player.canUse('sha',current,true,true); return current.storage.xiansi.length>1;
} }
return false; return false;
}); });
@ -10595,7 +10596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return _status.event.list.contains(target); return _status.event.list.contains(target);
}).set('list',targets).set('ai',function(target){ }).set('list',targets).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,{name:'sha'},player,player); return get.attitude(player,target);
}); });
} }
else{ else{

View File

@ -13579,7 +13579,7 @@
event.customArgs={default:{}}; event.customArgs={default:{}};
event.baseDamage=get.info(card,false).baseDamage||1; event.baseDamage=get.info(card,false).baseDamage||1;
player.actionHistory[player.actionHistory.length-1].useCard.push(event); player.actionHistory[player.actionHistory.length-1].useCard.push(event);
if(event.addCount!=false){ if(event.addCount!==false){
if(player.stat[player.stat.length-1].card[card.name]==undefined){ if(player.stat[player.stat.length-1].card[card.name]==undefined){
player.stat[player.stat.length-1].card[card.name]=1; player.stat[player.stat.length-1].card[card.name]=1;
} }
@ -15433,12 +15433,77 @@
} }
} }
}, },
inRange:function(target){ inRange:function(to){
var player=this; var from=this;
if(player==target||player.hasSkill('undist')||target.hasSkill('undist')) return false; if(from==to||from.hasSkill('undist')||to.hasSkill('undist')) return false;
var range2=player.getAttackRange(); if(!game.players.contains(from)&&!game.dead.contains(from)) return false;
var distance=get.distance(player,target); if(!game.players.contains(to)&&!game.dead.contains(to)) return false;
return distance<=range2; var mod1=game.checkMod(from,to,'unchanged','inRange',from);
if(mod1!='unchanged') return mod1;
var mod2=game.checkMod(from,to,'unchanged','inRangeOf',to);
if(mod2!='unchanged') return mod2;
if(from.getAttackRange()<1) return false;
var player=from,m,n=1,i;
var fxy,txy;
if(game.chess){
fxy=from.getXY();
txy=to.getXY();
n=Math.abs(fxy[0]-txy[0])+Math.abs(fxy[1]-txy[1]);
}
else if(to.isMin(true)||from.isMin(true)){}
else{
var length=game.players.length;
var totalPopulation=game.players.length+game.dead.length+1;
for(var iwhile=0;iwhile<totalPopulation;iwhile++){
if(player.nextSeat!=to){
player=player.nextSeat;
if(player.isAlive()&&!player.isOut()&&!player.hasSkill('undist')&&!player.isMin(true)) n++;
}
else{
break;
}
}
for(i=0;i<game.players.length;i++){
if(game.players[i].isOut()||game.players[i].hasSkill('undist')||game.players[i].isMin(true)) length--;
}
if(from.isDead()) length++;
if(to.isDead()) length++;
n=Math.min(n,length-n);
}
n=game.checkMod(from,to,n,'globalFrom',from);
n=game.checkMod(from,to,n,'globalTo',to);
m=n;
m=game.checkMod(from,to,m,'attackFrom',from);
m=game.checkMod(from,to,m,'attackTo',to);
var equips1=from.getCards('e',function(card){
return !ui.selected.cards||!ui.selected.cards.contains(card);
}),equips2=to.getCards('e',function(card){
return !ui.selected.cards||!ui.selected.cards.contains(card);
});
for(i=0;i<equips1.length;i++){
var info=get.info(equips1[i]).distance;
if(!info) continue;
if(info.globalFrom){
m+=info.globalFrom;
n+=info.globalFrom;
}
if(info.attackFrom){
m+=info.attackFrom;
}
}
for(i=0;i<equips2.length;i++){
var info=get.info(equips2[i]).distance;
if(!info) continue;
if(info.globalTo){
m+=info.globalTo;
n+=info.globalTo;
}
if(info.attaclTo){
m+=info.attaclTo;
}
}
return m<=1;
}, },
inRangeOf:function(source){ inRangeOf:function(source){
return source.inRange(this); return source.inRange(this);
@ -24047,6 +24112,7 @@
for(var i in range){ for(var i in range){
if(i=='attack'){ if(i=='attack'){
if(player.inRange(target)) return true;
var range2=player.getAttackRange(); var range2=player.getAttackRange();
if(range2<=0) return false; if(range2<=0) return false;
var distance=get.distance(player,target)+extra; var distance=get.distance(player,target)+extra;
@ -28535,7 +28601,17 @@
}, },
addVideo:function(type,player,content){ addVideo:function(type,player,content){
if(_status.video||game.online) return; if(_status.video||game.online) return;
if(!_status.videoInited) return; if(!_status.videoInited){
if(type=='arrangeLib'){
lib.video.push({
type:type,
player:player,
content:content,
delay:0
});
}
return;
}
if(type=='storage'&&player&&player.updateMarks){ if(type=='storage'&&player&&player.updateMarks){
player.updateMarks(); player.updateMarks();
} }
@ -47532,6 +47608,13 @@
} }
var mode=get.mode(); var mode=get.mode();
if(mode=='identity'){ if(mode=='identity'){
if(_status.mode=='purple'){
if(!player) return null;
var zhu=game[player.identity.slice(0,1)+'Zhu'];
if(!zhu) return null;
if(skill&&!zhu.hasSkill(skill)) return null;
return zhu;
}
if(skill&&!game.zhu.hasSkill(skill)) return null; if(skill&&!game.zhu.hasSkill(skill)) return null;
if(game.zhu.isZhu) return game.zhu; if(game.zhu.isZhu) return game.zhu;
} }

View File

@ -1,9 +1,7 @@
window.noname_update={ window.noname_update={
version:'1.9.98.4.4', version:'1.9.98.4.5',
update:'1.9.98.4.3', update:'1.9.98.4.4',
changeLog:[ changeLog:[
'界夏侯渊,界卧龙',
'联机神将选择势力',
'bug修复', 'bug修复',
], ],
files:[ files:[
@ -15,21 +13,22 @@ window.noname_update={
//'card/mtg.js', //'card/mtg.js',
//'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
'card/yunchou.js',
//'card/zhenfa.js', //'card/zhenfa.js',
'card/zhulu.js', //'card/zhulu.js',
'character/diy.js', 'character/diy.js',
'character/extra.js', 'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
'character/mobile.js', //'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
'character/old.js', //'character/old.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', //'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/tw.js', //'character/tw.js',
//'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
@ -37,17 +36,17 @@ window.noname_update={
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
'layout/default/layout.css', //'layout/default/layout.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
'mode/identity.js', 'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
//'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/brawl.js', 'mode/brawl.js',
//'mode/versus.js', 'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
'game/game.js', 'game/game.js',
//'game/NoSleep.js', //'game/NoSleep.js',

View File

@ -425,7 +425,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
init:function(){}, init:function(){},
content:{ content:{
chooseCharacterBefore:function(){ chooseCharacterBefore:function(){
game.identityVideoName='幻化之战';
var skills=[]; var skills=[];
var banned=[ var banned=[
'xinfu_guhuo','reguhuo','jixi','duanchang','huashen','xinsheng','rehuashen','rexinsheng', 'xinfu_guhuo','reguhuo','jixi','duanchang','huashen','xinsheng','rehuashen','rexinsheng',
@ -1059,6 +1059,31 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},500); },500);
_status.videoInited=true; _status.videoInited=true;
game.addVideo('arrangeLib',null,{ game.addVideo('arrangeLib',null,{
skill:{
_lingli_damage:{},
_lingli:{
mark:true,
marktext:'灵',
popup:'聚灵',
intro:{
name:'灵力',
content:'当前灵力点数:# / 5',
},
},
_lingli_round:{},
_lingli_draw:{},
_lingli_save:{},
hhzz_noCard:{},
hhzz_huilei:{
skillAnimation:true,
},
hhzz_youlian:{
skillAnimation:true,
},
hhzz_zhencang:{},
hhzz_huizhen:{},
hhzz_jubao:{},
},
card:{ card:{
hhzz_toulianghuanzhu:{ hhzz_toulianghuanzhu:{
cardimage:"toulianghuanzhu", cardimage:"toulianghuanzhu",
@ -1074,6 +1099,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
hhzz_takaramono2:['male','qun',3,['hhzz_jubao','hhzz_zhencang']], hhzz_takaramono2:['male','qun',3,['hhzz_jubao','hhzz_zhencang']],
}, },
translate:{ translate:{
_lingli:'聚灵',
_lingli_bg:'灵',
_lingli_draw:'聚灵',
hhzz_huilei:'挥泪',
hhzz_youlian:'犹怜',
hhzz_zhencang:'珍藏',
hhzz_huizhen:'汇珍',
hhzz_jubao:'聚宝',
hhzz_huilei_info:'锁定技,杀死你的角色弃置所有的牌。',
hhzz_youlian_info:'锁定技,杀死你的角色弃置所有牌并随机失去一个技能。',
hhzz_zhencang_info:'锁定技,杀死你的角色摸一张牌并随机获得一个技能(已满则先随机移除一个)。',
hhzz_huizhen_info:'锁定技,杀死你的角色摸三张牌并随机获得一个技能(已满则先随机移除一个)。',
hhzz_jubao_info:'锁定技当你受到伤害的点数确定时伤害来源随机获得你区域内的X张牌X为伤害点数。',
nei:' ', nei:' ',
nei2:' ', nei2:' ',
hhzz_shiona:'汐奈', hhzz_shiona:'汐奈',
@ -1143,6 +1181,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
content:{ content:{
cardPile:function(list){ cardPile:function(list){
game.identityVideoName='毒战三国杀';
lib.config.bannedcards.remove('du'); lib.config.bannedcards.remove('du');
if(game.bannedcards) game.bannedcards.remove('du'); if(game.bannedcards) game.bannedcards.remove('du');
var num=Math.ceil(list.length/10); var num=Math.ceil(list.length/10);
@ -1292,6 +1331,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
content:{ content:{
cardPile:function(list){ cardPile:function(list){
game.identityVideoName='导师月英';
var list2=[]; var list2=[];
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
list2.push(list[i]); list2.push(list[i]);
@ -1384,6 +1424,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},700); },700);
}, },
init:function(){ init:function(){
game.identityVideoName='唯我独尊';
lib.skill.weiwoduzun={ lib.skill.weiwoduzun={
mark:true, mark:true,
intro:{ intro:{
@ -1557,6 +1598,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
submode:'two', submode:'two',
chooseCharacterFixed:true, chooseCharacterFixed:true,
chooseCharacter:function(list,player){ chooseCharacter:function(list,player){
game.versusVideoName='同姓之争';
if(player.side==game.me.side){ if(player.side==game.me.side){
if(_status.brawl.mylist){ if(_status.brawl.mylist){
return _status.brawl.mylist.randomGets(2); return _status.brawl.mylist.randomGets(2);
@ -1686,6 +1728,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return list; return list;
}, },
gameStart:function(){ gameStart:function(){
game.identityVideoName='铜雀夺袍';
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
game.players[i].$equip(game.createCard('qilin')); game.players[i].$equip(game.createCard('qilin'));
game.players[i].$equip(game.createCard('zhuahuang')); game.players[i].$equip(game.createCard('zhuahuang'));
@ -1773,6 +1816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
content:{ content:{
gameStart:function(){ gameStart:function(){
game.identityVideoName='同将模式';
var target=(_status.mode=='zhong')?game.zhong:game.zhu; var target=(_status.mode=='zhong')?game.zhong:game.zhu;
if(get.config('double_character')){ if(get.config('double_character')){
target.init(game.me.name,game.me.name2); target.init(game.me.name,game.me.name2);
@ -1879,6 +1923,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
submode:'two', submode:'two',
chooseCharacterFixed:true, chooseCharacterFixed:true,
chooseCharacterBefore:function(){ chooseCharacterBefore:function(){
game.versusVideoName='家族之争';
var map={ var map={
wei:[], wei:[],
shu:[], shu:[],
@ -2100,12 +2145,75 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
}; };
var translate={};
for(var i in skill){ for(var i in skill){
lib.skill[i]=skill[i]; lib.skill[i]=skill[i];
if(skill[i].popup) lib.translate[i]=skill[i].popup; if(skill[i].popup){
if(skill[i].prompt2) lib.translate[i+'_info']=skill[i].prompt2; lib.translate[i]=skill[i].popup;
translate[i]=skill[i].popup;
}
if(skill[i].prompt2){
lib.translate[i+'_info']=skill[i].prompt2;
translate[i+'_info']=skill[i].prompt2;
}
if(!skill[i].noGlobal) game.addGlobalSkill(i); if(!skill[i].noGlobal) game.addGlobalSkill(i);
} };
game.addVideo('arrangeLib',null,{
skill:{
_jiazu_wei:{
popup:'魏业',
prompt2:'回合开始时,你可以弃置一张牌并指定一名敌方角色,该角色须弃置一张牌,否则你摸一张牌。',
},
_jiazu_shu:{
popup:'蜀义',
prompt2:'你使用【杀】上限+1出牌阶段结束时若你于此阶段使用【杀】次数不少于2摸一张牌。',
},
_jiazu_wu:{
popup:'吴耀',
prompt2:'回合结束时,若你的手牌数不等于你的体力值,则你摸一张牌。',
},
_jiazu_qun:{
popup:'群心',
prompt2:'锁定技弃牌阶段开始时若你的手牌数比体力值多2或更多你本回合手牌上限+1若你已损失体力值大于1你手牌上限+1',
},
_jiazu_key:{
popup:'键魂',
prompt2:'出牌阶段限一次你可以摸一张牌并获得1点护甲。若如此做你于当前回合结束时失去1点体力。',
},
_jiazu_awaken_wei:{
popup:'许昌',
intro:{
content:'锁定技,当你受到伤害后,你摸一张牌。',
},
},
_jiazu_awaken_shu:{
popup:'成都',
intro:{
content:'锁定技,当你使用【杀】造成伤害后,你摸一张牌。',
},
},
_jiazu_awaken_wu:{
popup:'武昌',
intro:{
content:'锁定技,当你使用装备牌时,你摸一张牌。',
},
},
_jiazu_awaken_qun:{
popup:'邺城',
intro:{
content:'锁定技,当你使用锦囊牌指定其他角色为目标后,你摸一张牌。',
},
},
_jiazu_awaken_key:{
popup:'光坂',
intro:{
content:'锁定技,当你回复/失去体力后,你摸一张牌。',
},
},
_jiazu_awaken:{},
},
translate:translate,
});
}, },
chooseCharacter:function(list,player){ chooseCharacter:function(list,player){
if(player.side==game.me.side){ if(player.side==game.me.side){
@ -2201,6 +2309,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:{ content:{
submode:'two', submode:'two',
chooseCharacterBefore:function(){ chooseCharacterBefore:function(){
game.versusVideoName='白衣渡江';
lib.skill._changeCharacter={ lib.skill._changeCharacter={
trigger:{player:['phaseBefore','phaseAfter']}, trigger:{player:['phaseBefore','phaseAfter']},
forced:true, forced:true,

View File

@ -555,7 +555,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var nature=links[1][3]||null; var nature=links[1][3]||null;
var character=links[0]; var character=links[0];
var group=lib.character[character][1]; var group=lib.character[character][1];
var evt=_status.event;
var next={ var next={
character:character, character:character,
group:group, group:group,
@ -570,6 +569,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
viewAs:{ viewAs:{
name:name, name:name,
nature:nature, nature:nature,
isCard:true,
}, },
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
var xx=lib.skill.yigui_backup; var xx=lib.skill.yigui_backup;
@ -585,7 +585,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
//if(evt.type=='dying') return target==evt.dying; //if(evt.type=='dying') return target==evt.dying;
if(xx.filterTargetx) return xx.filterTargetx(card,player,target); if(evt._backup&&evt._backup.filterTarget) return evt._backup.filterTarget(card,player,target);
return lib.filter.filterTarget(card,player,target); return lib.filter.filterTarget(card,player,target);
}, },
onuse:function(result,player){ onuse:function(result,player){
@ -600,7 +600,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.storage.yigui.used.add(result.card.name); player.storage.yigui.used.add(result.card.name);
}, },
}; };
if(evt.filterTarget) next.filterTargetx=get.filter(evt.filterTarget);
return next; return next;
}, },
prompt:function(links,player){ prompt:function(links,player){
@ -6364,6 +6363,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var player=lib.playerOL[i]; var player=lib.playerOL[i];
state[i]={ state[i]={
identity:player.identity, identity:player.identity,
group:player.group,
shown:player.ai.shown, shown:player.ai.shown,
}; };
} }
@ -6374,6 +6374,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var player=lib.playerOL[i]; var player=lib.playerOL[i];
if(player){ if(player){
player.identity=state[i].identity; player.identity=state[i].identity;
player.group=state[i].group;
player.ai.shown=state[i].shown; player.ai.shown=state[i].shown;
} }
} }
@ -6735,7 +6736,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
} }
if(ui.selected.buttons.length==0) return true; if(ui.selected.buttons.length==0){
for(var i=0;i<ui.dialog.buttons.length;i++){
if(ui.dialog.buttons[i]!=button&&lib.character[button.link][1]==lib.character[ui.dialog.buttons[i].link][1]){
return true;
}
}
return false;
};
return (lib.character[button.link][1]==lib.character[ui.selected.buttons[0].link][1]); return (lib.character[button.link][1]==lib.character[ui.selected.buttons[0].link][1]);
}; };
next.switchToAuto=function(){ next.switchToAuto=function(){
@ -6934,7 +6942,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
} }
if(ui.selected.buttons.length==0) return true; if(ui.selected.buttons.length==0){
for(var i=0;i<ui.dialog.buttons.length;i++){
if(ui.dialog.buttons[i]!=button&&lib.character[button.link][1]==lib.character[ui.dialog.buttons[i].link][1]){
return true;
}
}
return false;
};
if(!lib.character[button.link]) return false; if(!lib.character[button.link]) return false;
return (lib.character[button.link][1]==lib.character[ui.selected.buttons[0].link][1]); return (lib.character[button.link][1]==lib.character[ui.selected.buttons[0].link][1]);
}; };
@ -8118,8 +8133,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
this.classList.remove('unseen2'); this.classList.remove('unseen2');
break; break;
} }
game.broadcast(function(player,name,sex,num,identity){ game.broadcast(function(player,name,sex,num,identity,group){
player.identityShown=true; player.identityShown=true;
player.group=group;
player.name=name; player.name=name;
player.sex=sex; player.sex=sex;
player.node.identity.classList.remove('guessing'); player.node.identity.classList.remove('guessing');
@ -8138,7 +8154,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
delete _status.clickingidentity; delete _status.clickingidentity;
} }
},this,this.name,this.sex,num,this.identity); },this,this.name,this.sex,num,this.identity,this.group);
this.identityShown=true; this.identityShown=true;
for(var i=0;i<skills.length;i++){ for(var i=0;i<skills.length;i++){
this.hiddenSkills.remove(skills[i]); this.hiddenSkills.remove(skills[i]);

View File

@ -461,10 +461,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(game.me.name2){ if(game.me.name2){
str+='/'+get.translation(game.me.name2); str+='/'+get.translation(game.me.name2);
} }
var str2;
if(game.identityVideoName) str2=game.identityVideoName;
else{
switch(_status.mode){
case 'purple':str2='3v3v2 - '+(game.me.identity.indexOf('r')==0?'暖色':'冷色')+lib.translate[game.me.identity+'2'];break;
case 'zhong':str2='忠胆英杰 - '+lib.translate[game.me.identity+'2'];break;
default:str2=get.cnNumber(get.playerNumber())+'人'+
get.translation(lib.config.mode)+' - '+lib.translate[game.me.identity+'2']
}
}
var name=[ var name=[
str, str,
get.cnNumber(get.playerNumber())+'人'+ str2,
get.translation(lib.config.mode)+' - '+lib.translate[game.me.identity+'2']
]; ];
return name; return name;
}, },
@ -609,7 +618,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.zhong.identity='zhong'; game.zhong.identity='zhong';
} }
game.showIdentity(); game.showIdentity();
if(game.me.identity=='zhu'||game.me.identity=='zhong'){ if(game.me.identity=='zhu'||game.me.identity=='zhong'||game.me.identity=='mingzhong'){
if(game.zhu.classList.contains('dead')){ if(game.zhu.classList.contains('dead')){
game.over(false); game.over(false);
} }
@ -642,7 +651,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(_status.winner.contains(player)) return true; if(_status.winner.contains(player)) return true;
} }
if(game.zhu.isAlive()){ if(game.zhu.isAlive()){
return (player.identity=='zhu'||player.identity=='zhong'); return (player.identity=='zhu'||player.identity=='zhong'||player.identity=='mingzhong');
} }
else if(game.players.length==1&&game.players[0].identity=='nei'){ else if(game.players.length==1&&game.players[0].identity=='nei'){
return player.isAlive(); return player.isAlive();

File diff suppressed because it is too large Load Diff