Add files via upload
This commit is contained in:
parent
028e91bf91
commit
36b2b1d126
|
@ -430,7 +430,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
event.source.storage.youdishenru=player;
|
||||
event.source.addSkill('youdishenru');
|
||||
'step 1'
|
||||
var next=event.source.chooseToUse({name:'sha'},player,-1,'对'+get.translation(player)+'使用一张杀,或受到一点伤害');
|
||||
var next=event.source.chooseToUse({name:'sha'},player,-1,'对'+get.translation(player)+'使用一张杀,或受到一点伤害').set('addCount',false);
|
||||
next.ai2=function(){
|
||||
return 1;
|
||||
};
|
||||
|
|
|
@ -214,6 +214,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
target.give(result.cards,player,'giveAuto');
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
player:function(player,target){
|
||||
return target.isHealthy()?1:0;
|
||||
|
|
|
@ -604,7 +604,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:true,
|
||||
trigger:{player:'loseAfter'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
filter:function(event,player){
|
||||
if(event.type!='discard'||!event.cards2) return false;
|
||||
var evt=event.getParent('phaseDiscard');
|
||||
return evt&&evt.name=='phaseDiscard'&&evt.player==player;
|
||||
|
|
|
@ -84,9 +84,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunben:' ',
|
||||
},
|
||||
characterFilter:{
|
||||
//re_zuoci:function(mode){
|
||||
// return mode=='identity'||mode=='single'||mode=='doudizhu';
|
||||
//}
|
||||
re_zuoci:function(mode){
|
||||
return mode!='guozhan';
|
||||
}
|
||||
},
|
||||
perfectPair:{
|
||||
sunben:['zhouyu','taishici','daqiao'],
|
||||
|
@ -287,7 +287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'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){
|
||||
if(!_status.event.goon) return 0;
|
||||
var val=get.value(button.link);
|
||||
|
@ -5436,7 +5436,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
repojun:'破军',
|
||||
repojun2:'破军',
|
||||
repojun3:'破军',
|
||||
repojun_info:'当你于使用【杀】指定目标后,你可以将其的至多X张牌置于其武将牌上,然后其于当前回合结束时获得这些牌。当你因执行【杀】的效果而对一名角色造成伤害时,若该角色的手牌数和装备区内的牌数均不大于你,则此伤害+1。',
|
||||
repojun_info:'当你使用【杀】指定目标后,你可以将其的至多X张牌置于其武将牌上(X为其体力值),然后其于当前回合结束时获得这些牌。当你因执行【杀】的效果而对一名角色造成伤害时,若该角色的手牌数和装备区内的牌数均不大于你,则此伤害+1。',
|
||||
rexianzhen:'陷阵',
|
||||
rexianzhen_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你本回合内对其使用牌没有次数和距离限制。若你没赢,你本回合内不能使用【杀】。若你以此法失去的拼点牌为【杀】,则你的【杀】不计入本回合的手牌上限。',
|
||||
rejinjiu:'禁酒',
|
||||
|
@ -5447,7 +5447,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shebian:'设变',
|
||||
shebian_info:'当你的武将牌翻面后,你可以移动场上的一张牌。',
|
||||
cangzhuo:'藏拙',
|
||||
cangzhuo_info:'弃牌阶段开始时,若你本回合内没有使用过装备牌,则你的锦囊牌不计入手牌上限。',
|
||||
cangzhuo_info:'弃牌阶段开始时,若你本回合内没有使用过锦囊牌,则你的锦囊牌不计入手牌上限。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -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","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_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
|
||||
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
|
||||
|
@ -23,6 +23,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
//wangshuang:['male','wei',5,['spzhuilie']],
|
||||
sp_gongsunzan:['male','qun',4,['spyicong','sptuji']],
|
||||
sp_simazhao:['male','wei',3,['spzhaoxin','splanggu']],
|
||||
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"]],
|
||||
},
|
||||
characterIntro:{
|
||||
wangshuang:'王双(?-228年),三国时期曹魏将领。蜀汉建兴六年(228年)冬,诸葛亮出散关,攻陈仓,后粮尽而退。王双率领骑兵追击蜀军,但在与蜀军的交战中被击败,王双也被蜀军所斩。在《三国演义》中,王双字子全,是陇西郡狄道县(今甘肃临洮县)人,有万夫不当之勇。在诸葛亮北伐期间,被魏延所斩。',
|
||||
yuantanyuanshang:'袁谭、袁尚分别是袁绍的长子和第三子。袁绍坐拥青州、冀州、幽州、并州,本是北方最强诸侯,却于官渡大败,惭恨而终。虽然袁绍生前偏爱小儿子袁尚,却并未在继承人上有明确表态,这也导致本应以嫡长子身份继承的袁谭因郭图、审配伪立遗令未能如愿。曹操击败袁绍后,进而渡过黄河追击袁家残余势力,袁谭告急,但袁尚仅给他少量兵力。曹操得郭嘉之计退兵坐观其变,恰使两人此前的种种矛盾彻底爆发,袁谭不敌便引狼入室,派辛毗作为使者向曹操求援,让袁尚不得不北逃投奔乌桓。但袁谭也在之后背叛曹操兵败被杀。没多久,乌桓也被平定,袁熙、袁尚二人投奔公孙康后被斩首送还曹操。',
|
||||
huaman:'花鬘,古典戏曲《龙凤巾》(一名《化外奇缘》)中的人物,身份为三国时期南蛮王孟获与祝融夫人的女儿,关索的夫人之一。在关于关三小姐·关银屏的民间传说中,其名字为“花中秀”,与关索其他几位夫人鲍三娘、王桃、王悦都被关索之姐关银屏编入自己的女兵营中。花鬘在《三国志》,《三国演义》均未有提及,只是戏曲中的虚构人物。其形象并非一般君主家中闺秀,而是与其母祝融相似,是一个可以披甲上阵,善于刀枪作战的女武将。戏曲中在诸葛亮平定南蛮时,花鬘曾与关索作战,失败被俘,两人互生爱意,南蛮王孟获降服后二人成婚。近些年,花鬘接连在各类三国题材的游戏中登场,更广被人知晓。',
|
||||
xujing:'许靖(?—222年),字文休。汝南郡平舆县(今河南省平舆县)人。汉末至三国蜀汉时期重臣、名士、评论家。许靖因与从弟许邵俱以品评人物而闻名于世。后被刘翊推举为孝廉,任尚书郎。曾先后投奔孔伷、陈祎、许贡、王朗等人,于孙策攻王朗前与家属俱避难交州,受到交趾太守士燮礼待。其后受益州牧刘璋邀请,相继为巴郡、广汉、蜀郡太守。于刘备包围成都时欲越墙叛逃,为刘璋所获。刘备定蜀后欲将其弃用,在法正的建议下方以其为左将军长史。建安二十三年(218年),刘备称汉中王,任命许靖为汉中王傅。章武元年(221年),刘备称帝,任命许靖为司徒,位列三公。章武二年(222年),去世。有文集二卷。',
|
||||
|
@ -501,6 +503,55 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
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:{
|
||||
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']);
|
||||
},
|
||||
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());
|
||||
},
|
||||
check:function(button){
|
||||
|
@ -9876,11 +9929,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
trigger:{player:'useCard'},
|
||||
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';
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
Itrigger.addCount=false;
|
||||
if(player.stat[player.stat.length-1].card.sha>0){
|
||||
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'},
|
||||
filter:function(event,player){
|
||||
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;
|
||||
},
|
||||
forced:true,
|
||||
popup:false,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
trigger.addCount=false;
|
||||
if(player.stat[player.stat.length-1].card.sha>0){
|
||||
player.stat[player.stat.length-1].card.sha--;
|
||||
}
|
||||
|
@ -15471,11 +15526,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
marktext:"龙",
|
||||
intro:{
|
||||
name:"龙印",
|
||||
content:"<li>出牌阶段限三次,你可以将你的任意一张♥或♦手牌当【火攻】使用。<br><li>若你同时拥有「凤印」,则你视为拥有技能〖业炎〗。(发动〖业炎〗后,弃置龙印和凤印)",
|
||||
content:"<li>出牌阶段限三次,你可以将一张红色牌当【火攻】使用。<br><li>若你同时拥有「凤印」,则你视为拥有技能〖业炎〗。(发动〖业炎〗后,弃置龙印和凤印)",
|
||||
},
|
||||
usable:3,
|
||||
audio:2,
|
||||
enable:"chooseToUse",
|
||||
position:"he",
|
||||
filterCard:function (card){
|
||||
return get.color(card)=='red';
|
||||
},
|
||||
|
@ -15488,7 +15544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(!game.hasPlayer(function(current){
|
||||
return current.hasSkill('xinfu_jianjie');
|
||||
})) return false;
|
||||
if(!player.countCards('h',{color:'red'})) return false;
|
||||
if(!player.countCards('he',{color:'red'})) return false;
|
||||
},
|
||||
prompt:"将一张红色牌当火攻使用",
|
||||
check:function (card){
|
||||
|
@ -16415,7 +16471,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"smh_yeyan":"业炎",
|
||||
"smh_yeyan_info":"",
|
||||
"xinfu_yinshi":"隐士",
|
||||
"xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且装备区的防具栏为空,则当你受到的属性伤害火锦囊牌造成的伤害时,防止此伤害。",
|
||||
"xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且防具栏为空,则当你受到属性伤害或锦囊牌造成的伤害时,防止此伤害。",
|
||||
"xinfu_chenghao":"称好",
|
||||
"xinfu_chenghao_info":"当一名角色受到属性伤害后,若其存活且其武将牌横置且是伤害传导的起点,则你可以观看牌堆顶的X张牌并分配给任意角色。(X为横置的角色数量且包含该角色)",
|
||||
"jianjie_faq":"关于龙凤印",
|
||||
|
@ -17277,6 +17333,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
spmingjian_info:'一名角色的回合开始时,你可以选择一项:①弃置一张牌,然后其跳过本回合的判定阶段。②将一张手牌置于其武将牌上,然后其本回合内进行判定时不触发「判定结果生效前」的时机,且其回合结束时将此牌置入弃牌堆。',
|
||||
spyinzhi:'隐智',
|
||||
spyinzhi_info:'当你受到1点伤害后,你可以展示牌堆顶的两张牌。若其中有黑桃牌,则你可以进行至多X次「令一名角色获得伤害来源的一张手牌」的步骤,然后获得其余的牌。(X为其中黑桃牌的数量)',
|
||||
wangshuang:'王双',
|
||||
spzhuilie:'追猎',
|
||||
spzhuilie2:'追猎',
|
||||
spzhuilie_info:'锁定技,你使用【杀】无距离限制;当你使用【杀】指定目标后,若其不在你的攻击范围内,此【杀】不计入使用次数限制且你判定。若判定结果为:装备牌,此【杀】的伤害基数改为X(X为其体力值);锦囊牌,你失去1点体力。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_whlw:"文和乱武",
|
||||
|
|
|
@ -4194,7 +4194,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
selectCard:-1,
|
||||
popname:true,
|
||||
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);
|
||||
},
|
||||
check:function(card){
|
||||
|
@ -5548,7 +5549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
"step 2"
|
||||
player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?',
|
||||
{name:'sha'},trigger.target,-1);
|
||||
{name:'sha'},trigger.target,-1).set('addCount',false);
|
||||
}
|
||||
},
|
||||
xinzhongyong:{
|
||||
|
@ -5608,7 +5609,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.useSha){
|
||||
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);
|
||||
}).set('sourcex',player);
|
||||
}).set('sourcex',player).set('addCount',false);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -5964,13 +5965,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
zhaofu2:{
|
||||
mod:{
|
||||
attackTo:function(from,to,distance){
|
||||
inRangeOf:function(from,to){
|
||||
if(from.group!='wu') return;
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(from!=players[i]&&to!=players[i]&&
|
||||
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;
|
||||
}
|
||||
if(num<=2&&!target.countCards('he')) return false;
|
||||
return player.inRange(target)<=1;
|
||||
return player.inRange(target);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -10582,7 +10583,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
var targets=game.filterPlayer(function(current){
|
||||
if(event.result.targets.contains(current)&¤t.storage.xiansi){
|
||||
return current.storage.xiansi.length>1&&player.canUse('sha',current,true,true);
|
||||
return current.storage.xiansi.length>1;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
@ -10595,7 +10596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return _status.event.list.contains(target);
|
||||
}).set('list',targets).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.effect(target,{name:'sha'},player,player);
|
||||
return get.attitude(player,target);
|
||||
});
|
||||
}
|
||||
else{
|
||||
|
|
99
game/game.js
99
game/game.js
|
@ -13579,7 +13579,7 @@
|
|||
event.customArgs={default:{}};
|
||||
event.baseDamage=get.info(card,false).baseDamage||1;
|
||||
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){
|
||||
player.stat[player.stat.length-1].card[card.name]=1;
|
||||
}
|
||||
|
@ -15433,12 +15433,77 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
inRange:function(target){
|
||||
var player=this;
|
||||
if(player==target||player.hasSkill('undist')||target.hasSkill('undist')) return false;
|
||||
var range2=player.getAttackRange();
|
||||
var distance=get.distance(player,target);
|
||||
return distance<=range2;
|
||||
inRange:function(to){
|
||||
var from=this;
|
||||
if(from==to||from.hasSkill('undist')||to.hasSkill('undist')) return false;
|
||||
if(!game.players.contains(from)&&!game.dead.contains(from)) return false;
|
||||
if(!game.players.contains(to)&&!game.dead.contains(to)) return false;
|
||||
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){
|
||||
return source.inRange(this);
|
||||
|
@ -24047,6 +24112,7 @@
|
|||
|
||||
for(var i in range){
|
||||
if(i=='attack'){
|
||||
if(player.inRange(target)) return true;
|
||||
var range2=player.getAttackRange();
|
||||
if(range2<=0) return false;
|
||||
var distance=get.distance(player,target)+extra;
|
||||
|
@ -28535,7 +28601,17 @@
|
|||
},
|
||||
addVideo:function(type,player,content){
|
||||
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){
|
||||
player.updateMarks();
|
||||
}
|
||||
|
@ -47532,6 +47608,13 @@
|
|||
}
|
||||
var mode=get.mode();
|
||||
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(game.zhu.isZhu) return game.zhu;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
window.noname_update={
|
||||
version:'1.9.98.4.4',
|
||||
update:'1.9.98.4.3',
|
||||
version:'1.9.98.4.5',
|
||||
update:'1.9.98.4.4',
|
||||
changeLog:[
|
||||
'界夏侯渊,界卧龙',
|
||||
'联机神将选择势力',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
|
@ -15,21 +13,22 @@ window.noname_update={
|
|||
//'card/mtg.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
'card/zhulu.js',
|
||||
//'card/zhulu.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/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/tw.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
|
@ -37,17 +36,17 @@ window.noname_update={
|
|||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
'layout/default/layout.css',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
'mode/brawl.js',
|
||||
'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
|
|
117
mode/brawl.js
117
mode/brawl.js
|
@ -425,7 +425,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
init:function(){},
|
||||
content:{
|
||||
chooseCharacterBefore:function(){
|
||||
|
||||
game.identityVideoName='幻化之战';
|
||||
var skills=[];
|
||||
var banned=[
|
||||
'xinfu_guhuo','reguhuo','jixi','duanchang','huashen','xinsheng','rehuashen','rexinsheng',
|
||||
|
@ -1059,6 +1059,31 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},500);
|
||||
_status.videoInited=true;
|
||||
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:{
|
||||
hhzz_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']],
|
||||
},
|
||||
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:' ',
|
||||
nei2:' ',
|
||||
hhzz_shiona:'汐奈',
|
||||
|
@ -1143,6 +1181,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:{
|
||||
cardPile:function(list){
|
||||
game.identityVideoName='毒战三国杀';
|
||||
lib.config.bannedcards.remove('du');
|
||||
if(game.bannedcards) game.bannedcards.remove('du');
|
||||
var num=Math.ceil(list.length/10);
|
||||
|
@ -1292,6 +1331,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:{
|
||||
cardPile:function(list){
|
||||
game.identityVideoName='导师月英';
|
||||
var list2=[];
|
||||
for(var i=0;i<list.length;i++){
|
||||
list2.push(list[i]);
|
||||
|
@ -1384,6 +1424,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},700);
|
||||
},
|
||||
init:function(){
|
||||
game.identityVideoName='唯我独尊';
|
||||
lib.skill.weiwoduzun={
|
||||
mark:true,
|
||||
intro:{
|
||||
|
@ -1557,6 +1598,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
submode:'two',
|
||||
chooseCharacterFixed:true,
|
||||
chooseCharacter:function(list,player){
|
||||
game.versusVideoName='同姓之争';
|
||||
if(player.side==game.me.side){
|
||||
if(_status.brawl.mylist){
|
||||
return _status.brawl.mylist.randomGets(2);
|
||||
|
@ -1686,6 +1728,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
return list;
|
||||
},
|
||||
gameStart:function(){
|
||||
game.identityVideoName='铜雀夺袍';
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
game.players[i].$equip(game.createCard('qilin'));
|
||||
game.players[i].$equip(game.createCard('zhuahuang'));
|
||||
|
@ -1773,6 +1816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:{
|
||||
gameStart:function(){
|
||||
game.identityVideoName='同将模式';
|
||||
var target=(_status.mode=='zhong')?game.zhong:game.zhu;
|
||||
if(get.config('double_character')){
|
||||
target.init(game.me.name,game.me.name2);
|
||||
|
@ -1879,6 +1923,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
submode:'two',
|
||||
chooseCharacterFixed:true,
|
||||
chooseCharacterBefore:function(){
|
||||
game.versusVideoName='家族之争';
|
||||
var map={
|
||||
wei:[],
|
||||
shu:[],
|
||||
|
@ -2100,12 +2145,75 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
};
|
||||
var translate={};
|
||||
for(var i in skill){
|
||||
lib.skill[i]=skill[i];
|
||||
if(skill[i].popup) lib.translate[i]=skill[i].popup;
|
||||
if(skill[i].prompt2) lib.translate[i+'_info']=skill[i].prompt2;
|
||||
if(!skill[i].noGlobal) game.addGlobalSkill(i);
|
||||
if(skill[i].popup){
|
||||
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);
|
||||
};
|
||||
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){
|
||||
if(player.side==game.me.side){
|
||||
|
@ -2201,6 +2309,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
content:{
|
||||
submode:'two',
|
||||
chooseCharacterBefore:function(){
|
||||
game.versusVideoName='白衣渡江';
|
||||
lib.skill._changeCharacter={
|
||||
trigger:{player:['phaseBefore','phaseAfter']},
|
||||
forced:true,
|
||||
|
|
|
@ -555,7 +555,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var nature=links[1][3]||null;
|
||||
var character=links[0];
|
||||
var group=lib.character[character][1];
|
||||
var evt=_status.event;
|
||||
var next={
|
||||
character:character,
|
||||
group:group,
|
||||
|
@ -570,6 +569,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
viewAs:{
|
||||
name:name,
|
||||
nature:nature,
|
||||
isCard:true,
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
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(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);
|
||||
},
|
||||
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);
|
||||
},
|
||||
};
|
||||
if(evt.filterTarget) next.filterTargetx=get.filter(evt.filterTarget);
|
||||
return next;
|
||||
},
|
||||
prompt:function(links,player){
|
||||
|
@ -6364,6 +6363,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var player=lib.playerOL[i];
|
||||
state[i]={
|
||||
identity:player.identity,
|
||||
group:player.group,
|
||||
shown:player.ai.shown,
|
||||
};
|
||||
}
|
||||
|
@ -6374,6 +6374,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var player=lib.playerOL[i];
|
||||
if(player){
|
||||
player.identity=state[i].identity;
|
||||
player.group=state[i].group;
|
||||
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]);
|
||||
};
|
||||
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;
|
||||
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');
|
||||
break;
|
||||
}
|
||||
game.broadcast(function(player,name,sex,num,identity){
|
||||
game.broadcast(function(player,name,sex,num,identity,group){
|
||||
player.identityShown=true;
|
||||
player.group=group;
|
||||
player.name=name;
|
||||
player.sex=sex;
|
||||
player.node.identity.classList.remove('guessing');
|
||||
|
@ -8138,7 +8154,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
delete _status.clickingidentity;
|
||||
}
|
||||
},this,this.name,this.sex,num,this.identity);
|
||||
},this,this.name,this.sex,num,this.identity,this.group);
|
||||
this.identityShown=true;
|
||||
for(var i=0;i<skills.length;i++){
|
||||
this.hiddenSkills.remove(skills[i]);
|
||||
|
|
|
@ -461,10 +461,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(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=[
|
||||
str,
|
||||
get.cnNumber(get.playerNumber())+'人'+
|
||||
get.translation(lib.config.mode)+' - '+lib.translate[game.me.identity+'2']
|
||||
str2,
|
||||
];
|
||||
return name;
|
||||
},
|
||||
|
@ -609,7 +618,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game.zhong.identity='zhong';
|
||||
}
|
||||
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')){
|
||||
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(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'){
|
||||
return player.isAlive();
|
||||
|
|
|
@ -544,6 +544,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
str+='/'+get.translation(game.me.name2);
|
||||
}
|
||||
var str2;
|
||||
if(game.versusVideoName) str2=game.versusVideoName;
|
||||
else{
|
||||
switch(_status.mode){
|
||||
case 'two':str2='欢乐成双';break;
|
||||
case 'endless':str2='无尽模式';break;
|
||||
|
@ -553,6 +555,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
case 'four':str2='对决 - 4v4';break;
|
||||
default:str2='对决 - '+lib.storage.number+'v'+lib.storage.number
|
||||
}
|
||||
}
|
||||
return [str,str2];
|
||||
},
|
||||
addRecord:function(bool){
|
||||
|
|
Loading…
Reference in New Issue