This commit is contained in:
Spmario233 2021-04-28 20:41:23 +08:00
parent bec3319a41
commit e8072153c4
12 changed files with 654 additions and 108 deletions

View File

@ -967,6 +967,7 @@ window.noname_character_rank={
'xin_fuhuanghou', 'xin_fuhuanghou',
'sp_xunchen', 'sp_xunchen',
'zhaozhong', 'zhaozhong',
'zongyu',
], ],
c:[ c:[
'xiahoudun', 'xiahoudun',

View File

@ -73,7 +73,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
perfectPair:{ perfectPair:{
jiaxu:['liqueguosi'], jiaxu:['liqueguosi'],
re_yuanshao:['yanwen'], re_yuanshao:['yanwen','tianfeng'],
menghuo:['zhurong'], menghuo:['zhurong'],
sp_zhugeliang:['pangtong','huangyueying'], sp_zhugeliang:['pangtong','huangyueying'],
sunce:['zhouyu','taishici','daqiao'], sunce:['zhouyu','taishici','daqiao'],

View File

@ -10,13 +10,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"], 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'], sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"], sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","luyusheng"], sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","luyusheng","zongyu"],
sp_single:["niujin"], sp_single:["niujin"],
sp_others:["hanba","caiyang"], sp_others:["hanba","caiyang"],
}, },
}, },
characterFilter:{}, characterFilter:{},
character:{ character:{
zongyu:['male','shu',3,['zyqiao','chengshang']],
luyusheng:['female','wu',3,['zhente','zhiwei']], luyusheng:['female','wu',3,['zhente','zhiwei']],
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']], ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
huaxin:['male','wei',3,['wanggui','xibing']], huaxin:['male','wei',3,['wanggui','xibing']],
@ -154,6 +155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]], //kaisa:["male","western",4,["zhengfu"]],
}, },
characterIntro:{ characterIntro:{
zongyu:'宗预264年字德艳 荆州南阳郡安众县今河南省南阳市人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州又受辟为丞相诸葛亮手下主簿升任参军、右中郎将。诸葛亮逝世后宗预受命出使孙吴得到孙权的赞赏。迁后将军出督永安又升任征西大将军并受封关内侯。公元258年景耀元年因病回成都受任镇军大将军。蜀汉灭亡后宗预随后主刘禅徙往洛阳在中途病逝。宗预为人坦率耿直多次出使孙吴并深得孙权的敬重为吴、汉两国同盟的巩固作出了一定的贡献。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。', mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
mengda:'孟达(?228字子度本字子敬因刘备的叔父名叫刘子敬为避讳而改字。扶风郡郿人三国时期人物。本为刘璋属下后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备于是投奔曹魏。此后劝降刘封未果。在魏官至散骑常侍、建武将军封平阳亭侯。此后又欲反曹魏而归蜀汉事败而死。', mengda:'孟达(?228字子度本字子敬因刘备的叔父名叫刘子敬为避讳而改字。扶风郡郿人三国时期人物。本为刘璋属下后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备于是投奔曹魏。此后劝降刘封未果。在魏官至散骑常侍、建武将军封平阳亭侯。此后又欲反曹魏而归蜀汉事败而死。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。', luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
@ -400,6 +402,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
//宗预
zyqiao:{
audio:2,
trigger:{target:'useCardToTargeted'},
logTarget:'player',
usable:2,
filter:function(event,player){
var source=event.player;
if(source==player) return false;
if(get.mode()=='guozhan'&&source.isFriendOf(player)) return false;
return source.countDiscardableCards(player,'he')>0;
},
check:function(event,player){
var target=event.player;
if(get.attitude(player,target)>=0) return false;
if(!player.countCards('he',function(card){
return lib.filter.cardDiscardable(card,player,'zyqiao');
})) return true;
if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
if(target.countCards('he',(card)=>get.value(card,target)>6)&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
return false;
},
content:function(){
'step 0'
player.discardPlayerCard(trigger.player,true,'he');
'step 1'
if(player.countCards('he',function(card){
return lib.filter.cardDiscardable(card,player,'zyqiao');
})) player.chooseToDiscard('he',true);
},
},
chengshang:{
audio:2,
trigger:{player:'useCardAfter'},
filter:function(event,player){
if(!lib.suit.contains(get.suit(event.card,false))||typeof get.number(event.card)!='number') return false;
if(player.getHistory('sourceDamage',function(evt){
return evt.card==event.card;
}).length) return false;
var phsu=event.getParent('phaseUse');
if(!phsu||phsu.player!=player) return false;
if(player.getHistory('gain',function(evt){
return evt.getParent().name=='chengshang';
}).length) return false;
for(var i of event.targets){
if(i!=player&&(get.mode()!='guozhan'||i.isEnemyOf(player))) return true;
}
return false;
},
content:function(){
var suit=get.suit(trigger.card);
var number=get.number(trigger.card);
var card=get.cardPile2(function(card){
return card.suit==suit&&card.number==number;
});
if(card) player.gain(card,'gain2');
},
},
//新丁奉 //新丁奉
reduanbing:{ reduanbing:{
audio:2, audio:2,
@ -16618,6 +16678,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refenxun:'奋迅', refenxun:'奋迅',
refenxun2:'奋迅', refenxun2:'奋迅',
refenxun_info:'出牌阶段限一次你可以选择一名其他角色然后本回合你计算与其的距离视为1结束阶段开始时若你未对其造成过伤害你弃一张牌。', refenxun_info:'出牌阶段限一次你可以选择一名其他角色然后本回合你计算与其的距离视为1结束阶段开始时若你未对其造成过伤害你弃一张牌。',
zongyu:'宗预',
zyqiao:'气傲',
zyqiao_info:'每回合限两次。当你成为其他角色使用牌的目标后,你可以弃置其一张牌,然后你弃置一张牌。',
zyqiao_info_guozhan:'每回合限两次。当你成为其他势力的角色使用牌的目标后,你可以弃置其一张牌,然后你弃置一张牌。',
chengshang:'承赏',
chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
sp_default:"常规", sp_default:"常规",
sp_zhongdan:"忠胆英杰", sp_zhongdan:"忠胆英杰",

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
character:{ character:{
caosong:['male','wei',3,['cslilu','csyizheng']], caosong:['male','wei',3,['cslilu','csyizheng']],
re_taoqian:['male','qun',3,['zhaohuo','reyixiang','yirang']], re_taoqian:['male','qun',3,['zhaohuo','reyixiang','reyirang']],
zhaozhong:['male','qun',6,['yangzhong','huangkong']], zhaozhong:['male','qun',6,['yangzhong','huangkong']],
fanyufeng:['female','qun',3,['bazhan','jiaoying']], fanyufeng:['female','qun',3,['bazhan','jiaoying']],
ol_lisu:['male','qun',3,['qiaoyan','xianzhu']], ol_lisu:['male','qun',3,['qiaoyan','xianzhu']],
@ -113,6 +113,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
skill:{ skill:{
//陶谦和曹嵩 //陶谦和曹嵩
reyirang:{
audio:'yirang',
audioname:['re_taoqian'],
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
if(!player.countCards('he',function(card){
return get.type(card)!='basic';
})){
return false;
}
return game.hasPlayer(function(current){
return current.maxHp>player.maxHp;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('reyirang'),function(card,player,target){
return target.maxHp>player.maxHp;
}).set('ai',function(target){
return (get.attitude(_status.event.player,target)-2)*target.maxHp;
});
'step 1'
if(result.bool){
var cards=player.getCards('he',function(card){
return get.type(card)!='basic';
});
var target=result.targets[0];
player.logSkill('reyirang',target);
target.gain(cards,player,'give');
player.gainMaxHp(target.maxHp-player.maxHp,true);
player.recover(cards.length);
}
}
},
cslilu:{ cslilu:{
audio:2, audio:2,
trigger:{player:'phaseDrawBegin1'}, trigger:{player:'phaseDrawBegin1'},
@ -2674,7 +2709,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('xinfu_wuniang',target); player.logSkill('decadewuniang',target);
player.line(target,'fire'); player.line(target,'fire');
player.gainPlayerCard(target,'he',true); player.gainPlayerCard(target,'he',true);
target.draw(); target.draw();
@ -9892,7 +9927,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duyu:'杜预', duyu:'杜预',
sanchen:'三陈', sanchen:'三陈',
sanchen_info:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌。否则你本阶段内不能再发动〖三陈〗。', sanchen_info:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌。否则你本阶段内不能再发动〖三陈〗。',
sanchen_info_guozhan:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗到回合结束。否则你本阶段内不能再发动〖三陈〗。', sanchen_info_guozhan:'出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗到回合结束。否则你本阶段内不能再发动〖三陈〗。',
zhaotao:'诏讨', zhaotao:'诏讨',
zhaotao_info:'觉醒技准备阶段若你本局游戏内发动〖三陈〗的次数大于2则你减1点体力上限并获得〖破竹〗。', zhaotao_info:'觉醒技准备阶段若你本局游戏内发动〖三陈〗的次数大于2则你减1点体力上限并获得〖破竹〗。',
pozhu:'破竹', pozhu:'破竹',
@ -10002,10 +10037,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyixiang_info:'锁定技,其他角色于其出牌阶段内使用的第一张牌对你的伤害-1其使用的第二张牌若为黑色则对你无效。', reyixiang_info:'锁定技,其他角色于其出牌阶段内使用的第一张牌对你的伤害-1其使用的第二张牌若为黑色则对你无效。',
caosong:'曹嵩', caosong:'曹嵩',
cslilu:'礼赂', cslilu:'礼赂',
cslilu_info:'摸牌阶段你可以放弃摸牌改为将手牌摸至X张然后将至少一张手牌交给一名其他角色。若你以此法给出的牌数大于你上次以此法给出的牌数则你加1点体力上限并回复1点体力。', cslilu_info:'摸牌阶段你可以放弃摸牌改为将手牌摸至X张X为你的体力上限和5中的最小值然后将至少一张手牌交给一名其他角色。若你以此法给出的牌数大于你上次以此法给出的牌数则你加1点体力上限并回复1点体力。',
csyizheng:'翊正', csyizheng:'翊正',
csyizheng2:'翊正', csyizheng2:'翊正',
csyizheng_info:'结束阶段开始时你可以选择一名其他角色。你的下回合开始前当该角色造成伤害或回复体力时若其体力上限小于你则你减1点体力上限且令此伤害值/回复值+1。', csyizheng_info:'结束阶段开始时你可以选择一名其他角色。你的下回合开始前当该角色造成伤害或回复体力时若其体力上限小于你则你减1点体力上限且令此伤害值/回复值+1。',
reyirang:'揖让',
reyirang_info:'出牌阶段开始时你可以将所有非基本牌交给一名体力上限大于你的其他角色然后调整体力上限至与该角色相同并回复X点体力X为你以此法交给其的牌数。',
sp_yingbian:'文德武备', sp_yingbian:'文德武备',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",

View File

@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_xiahoujinxuan:['male','shu',3,['xuanmo','danqing']], pal_xiahoujinxuan:['male','shu',3,['xuanmo','danqing']],
pal_muchanglan:['female','wu',3,['feixia','lueying']], pal_muchanglan:['female','wu',3,['feixia','lueying']],
pal_xia:['female','shu',3,['zongyu','fanling']], pal_xia:['female','shu',3,['xjzongyu','fanling']],
pal_jiangcheng:['male','qun',4,['yanzhan','fenshi']], pal_jiangcheng:['male','qun',4,['yanzhan','fenshi']],
pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']], pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']],
@ -1338,7 +1338,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.3 threaten:1.3
} }
}, },
zongyu:{ xjzongyu:{
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filterCard:{color:'black'}, filterCard:{color:'black'},
@ -4222,8 +4222,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀', yingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀',
fenglue:'风掠', fenglue:'风掠',
fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到一点伤害,你在结算后摸一张牌', fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到一点伤害,你在结算后摸一张牌',
zongyu:'纵雨', xjzongyu:'纵雨',
zongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标', xjzongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标',
fanling:'返灵', fanling:'返灵',
fanling_info:'锁定技,每当一名角色失去体力,你回复一点体力,每回合只能发动一次', fanling_info:'锁定技,每当一名角色失去体力,你回复一点体力,每回合只能发动一次',
huahu:'化狐', huahu:'化狐',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.109.3.4', 'v1.9.109.3.5',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -3857,6 +3857,8 @@ window.noname_asset_list=[
'image/character/re_taoqian.jpg', 'image/character/re_taoqian.jpg',
'image/character/re_zhangchunhua.jpg', 'image/character/re_zhangchunhua.jpg',
'image/character/xin_handang.jpg', 'image/character/xin_handang.jpg',
'image/character/zongyu.jpg',
'image/character/key_ushio.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -6224,6 +6224,11 @@
init:true, init:true,
frequent:true frequent:true
}, },
qunxionggeju:{
name:'群雄割据',
init:true,
frequent:true
},
duzhansanguo:{ duzhansanguo:{
name:'毒战三国', name:'毒战三国',
init:true, init:true,
@ -32877,6 +32882,7 @@
ui.playerids.style.display=''; ui.playerids.style.display='';
} }
if(mode[lib.config.mode].startBefore) mode[lib.config.mode].startBefore();
game.createEvent('game',false).setContent(mode[lib.config.mode].start); game.createEvent('game',false).setContent(mode[lib.config.mode].start);
if(lib.mode[lib.config.mode]&&lib.mode[lib.config.mode].fromextension){ if(lib.mode[lib.config.mode]&&lib.mode[lib.config.mode].fromextension){
var startstr=mode[lib.config.mode].start.toString(); var startstr=mode[lib.config.mode].start.toString();
@ -34900,18 +34906,6 @@
} }
else button.node.group.style.backgroundColor=get.translation('weiColor'); else button.node.group.style.backgroundColor=get.translation('weiColor');
} }
var group=get.is.double(button.link,true);
if(group&&group.length==2){
var str='';
for(var i of group){
str+=get.translation(i);
}
button.node.group.innerHTML=str;
if(button.classList.contains('newstyle')){
button.node.name.dataset.nature=get.groupnature(group[0]);
button.node.group.dataset.nature=get.groupnature(group[1]);
}
}
}, },
div:function(){ div:function(){
var str,innerHTML,position,position2,style,divposition,listen; var str,innerHTML,position,position2,style,divposition,listen;
@ -44026,16 +44020,9 @@
} }
node.link=item; node.link=item;
if(type=='character'||type=='characterx'){ if(type=='character'||type=='characterx'){
if(type=='characterx'&&item.indexOf('gz_')==0&&lib.character[item]&&lib.character[item][4]){ var double=get.is.double(node._link,true);
for(var ix of lib.character[item][4]){ if(double) node._changeGroup=true;
if(ix.indexOf('doublegroup:')==0){ if(type=='characterx'&&lib.characterReplace[node._link]&&lib.characterReplace[node._link].length>1) node._replaceButton=true;
node._replaceButton=true;
node._changeGroup=ix.split(':').slice(1);
break;
}
}
}
else if(type=='characterx'&&lib.characterReplace[node._link]&&lib.characterReplace[node._link].length>1) node._replaceButton=true;
var func=function(node,item){ var func=function(node,item){
node.setBackground(item,'character'); node.setBackground(item,'character');
if(node.node){ if(node.node){
@ -44067,6 +44054,10 @@
node.node.name.dataset.nature=get.groupnature(infoitem[1]); node.node.name.dataset.nature=get.groupnature(infoitem[1]);
node.node.group.dataset.nature=get.groupnature(infoitem[1],'raw'); node.node.group.dataset.nature=get.groupnature(infoitem[1],'raw');
node.classList.add('newstyle'); node.classList.add('newstyle');
if(double&&double.length){
node.node.name.dataset.nature=get.groupnature(double[0]);
node.node.group.dataset.nature=get.groupnature(double[double.length==2?1:0]);
}
ui.create.div(node.node.hp); ui.create.div(node.node.hp);
var textnode=ui.create.div('.text',get.numStr(infoitem[2]),node.node.hp); var textnode=ui.create.div('.text',get.numStr(infoitem[2]),node.node.hp);
if(infoitem[2]==0){ if(infoitem[2]==0){
@ -44109,7 +44100,18 @@
lib.setIntro(node); lib.setIntro(node);
} }
if(infoitem[1]){ if(infoitem[1]){
node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>'; if(double){
var str='<div>';
if(double.length==2){
for(var i of double){
str+=get.translation(i);
}
}
else str+=get.translation(double[0]);
str+='</div>';
node.node.group.innerHTML=str;
}
else node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>';
node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color'); node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color');
} }
else{ else{
@ -44120,23 +44122,7 @@
node.node.replaceButton=intro; node.node.replaceButton=intro;
intro.innerHTML='切换'; intro.innerHTML='切换';
intro._node=node; intro._node=node;
if(node._changeGroup) intro.addEventListener(lib.config.touchscreen?'touchend':'click',function(){ intro.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
_status.tempNoButton=true;
var node=this._node;
var list=node._changeGroup;
var link=lib.character[node.link][1];
var index=list.indexOf(link);
if(index==list.length-1) index=0;
else index++;
lib.character[node.link][1]=list[index];
node.refresh(node,node.link);
game.uncheck();
game.check();
setTimeout(function(){
delete _status.tempNoButton;
},200);
});
else intro.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
_status.tempNoButton=true; _status.tempNoButton=true;
var node=this._node; var node=this._node;
var list=lib.characterReplace[node._link]; var list=lib.characterReplace[node._link];

View File

@ -1,10 +1,10 @@
window.noname_update={ window.noname_update={
version:'1.9.109.3.4', version:'1.9.109.3.5',
update:'1.9.109.3.3', update:'1.9.109.3.4',
changeLog:[ changeLog:[
'界韩当、界张春华', '冈崎汐',
'曹嵩、陶谦', '宗预',
'国战徐庶', '群雄割据',
'bug修复', 'bug修复',
], ],
files:[ files:[
@ -21,25 +21,25 @@ window.noname_update={
//'card/yingbian.js', //'card/yingbian.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/ow.js', //'character/ow.js',
'character/rank.js', 'character/rank.js',
'character/refresh.js', //'character/refresh.js',
//'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.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',
//'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
@ -48,7 +48,7 @@ window.noname_update={
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/boss.js', //'mode/boss.js',
//'mode/brawl.js', 'mode/brawl.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
image/character/zongyu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

View File

@ -1144,6 +1144,377 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
qunxionggeju:{
name:'群雄割据',
mode:'guozhan',
intro:[
'开放不同势力组合,以优先亮出的武将牌作为自己的势力,双势力武将则使用列表的第一个势力',
],
showcase:function(init){
var node=this;
var list=[
['re_yuanshao','re_lidian'],
['zhangliao','sunquan'],
['xin_fazheng','lvfan'],
['sunjian','lvbu'],
['jin_simashi','re_weiyan'],
['guanyu','sunce'],
['zhenji','sp_zhangjiao'],
['guojia','sp_zhugeliang'],
];
list.randomSort();
var func=function(){
var card=ui.create.player(null,true);
var name=list.shift();
card.init(name[0],name[1]);
card.node.marks.remove();
card.node.count.remove();
card.node.hp.remove();
card.classList.remove('unseen');
node.nodes.push(card);
card.style.position='absolute';
card.style.zIndex=2;
card.style.transition='all 2s';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+(rand1*1.5)+'px)';
card.style.top='calc('+rand2+'% - '+(rand2*1.8)+'px)';
card.style.transform='scale(0.8) rotate('+rand3+'deg)';
node.appendChild(card);
ui.refresh(card);
};
var list2=['feilongduofeng','taipingyaoshu','dinglanyemingzhu'];
var func2=function(){
var card=game.createCard(list2.shift(),'noclick');
node.nodes.push(card);
card.style.position='absolute';
card.style.zIndex=2;
card.style.transition='all 2s';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+rand1+'px)';
card.style.top='calc('+rand2+'% - '+rand2+'px)';
card.style.transform='rotate('+rand3+'deg)';
node.appendChild(card);
ui.refresh(card);
};
if(init){
node.nodes=[];
}
else{
while(node.nodes.length){
node.nodes.shift().remove();
}
}
for(var i=0;i<5;i++){
func();
}
for(var i=0;i<3;i++){
func2();
func();
}
},
init:function(){},
content:{
chooseCharacterBefore:function(){
game.chooseCharacter=function(){
var next=game.createEvent('chooseCharacter',false);
next.showConfig=true;
next.addPlayer=true;
next.ai=function(player,list,back){
var mainx=list[0];
var vicex=list[1];
if(get.guozhanReverse(mainx,vicex)){
mainx=list[1];
vicex=list[0];
}
player.init(mainx,vicex,false);
if(back){
list.remove(player.name1);
list.remove(player.name2);
for(var i=0;i<list.length;i++){
back.push(list[i]);
}
}
return;
}
next.setContent(function(){
"step 0"
var eltp={
getGuozhanGroup:function(num){
if(num==1) return lib.character[this.name2][1];
return lib.character[this.name1][1];
},
wontYe:function(group){
if(!group) group=lib.character[this.name1][1];
if(_status.yeidentity&&_status.yeidentity.contains(group)) return false;
if(get.zhu(this,null,true)) return true;
var num=3,total=get.population();
if(total<6) num=1;
else if(total<8) num=2;
return get.totalPopulation(group)+1<=num;
},
}
for(var i of game.players){
for(var j in eltp) i[j]=eltp[j];
}
for(var j in eltp) lib.element.player[j]=eltp[j];
ui.arena.classList.add('choose-character');
var addSetting=function(dialog){
dialog.add('选择座位').classList.add('add-setting');
var seats=document.createElement('table');
seats.classList.add('add-setting');
seats.style.margin='0';
seats.style.width='100%';
seats.style.position='relative';
for(var i=1;i<=game.players.length;i++){
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
td.innerHTML='<span>'+get.cnNumber(i,true)+'</span>';
td.link=i-1;
seats.appendChild(td);
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
if(_status.dragged) return;
if(_status.justdragged) return;
if(_status.cheat_seat){
_status.cheat_seat.classList.remove('bluebg');
if(_status.cheat_seat==this){
delete _status.cheat_seat;
return;
}
}
this.classList.add('bluebg');
_status.cheat_seat=this;
});
}
dialog.content.appendChild(seats);
if(game.me==game.zhu){
seats.previousSibling.style.display='none';
seats.style.display='none';
}
dialog.add(ui.create.div('.placeholder.add-setting'));
dialog.add(ui.create.div('.placeholder.add-setting'));
if(get.is.phoneLayout()) dialog.add(ui.create.div('.placeholder.add-setting'));
};
var removeSetting=function(){
var dialog=_status.event.dialog;
if(dialog){
dialog.style.height='';
delete dialog._scrollset;
var list=Array.from(dialog.querySelectorAll('.add-setting'));
while(list.length){
list.shift().remove();
}
ui.update();
}
};
event.addSetting=addSetting;
event.removeSetting=removeSetting;
var chosen=lib.config.continue_name||[];
game.saveConfig('continue_name');
event.chosen=chosen;
var i;
event.list=[];
for(i in lib.character){
if(i.indexOf('gz_shibing')==0) continue;
if(chosen.contains(i)) continue;
if(lib.filter.characterDisabled(i)) continue;
if(get.config('onlyguozhan')){
if(!lib.characterPack.mode_guozhan[i]) continue;
if(get.is.jun(i)) continue;
}
if(lib.character[i][4].contains('hiddenSkill')) continue;
if(lib.character[i][2]==3||lib.character[i][2]==4||lib.character[i][2]==5)
event.list.push(i);
}
_status.characterlist=event.list.slice(0);
_status.yeidentity=[];
event.list.randomSort();
// var list=event.list.splice(0,parseInt(get.config('choice_num')));
var list=event.list.randomRemove(parseInt(get.config('choice_num')));
if(_status.auto){
event.ai(game.me,list);
lib.init.onfree();
}
else if(chosen.length){
game.me.init(chosen[0],chosen[1],false);
lib.init.onfree();
}
else{
var dialog=ui.create.dialog('选择角色','hidden',[list,'character']);
if(get.config('change_identity')){
addSetting(dialog);
}
var next=game.me.chooseButton(dialog,true,2).set('onfree',true);
next.filterButton=function(button){
if(ui.dialog.buttons.length<=10){
for(var i=0;i<ui.dialog.buttons.length;i++){
if(ui.dialog.buttons[i]!=button){
if(lib.element.player.perfectPair.call({
name1:button.link,name2:ui.dialog.buttons[i].link
})){
button.classList.add('glow2');
}
}
}
}
return true;
};
next.switchToAuto=function(){
event.ai(game.me,list);
ui.arena.classList.remove('selecting');
};
var createCharacterDialog=function(){
event.dialogxx=ui.create.characterDialog('heightset',function(i){
if(i.indexOf('gz_shibing')==0) return true;
if(get.config('onlyguozhan')){
if(!lib.characterPack.mode_guozhan[i]) return true;
if(get.is.jun(i)) return true;
}
},get.config('onlyguozhanexpand')?'expandall':undefined,get.config('onlyguozhan')?'onlypack:mode_guozhan':undefined);
if(ui.cheat2){
ui.cheat2.animate('controlpressdownx',500);
ui.cheat2.classList.remove('disabled');
}
};
if(lib.onfree){
lib.onfree.push(createCharacterDialog);
}
else{
createCharacterDialog();
}
ui.create.cheat2=function(){
ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close();
_status.event.dialog=this.backup;
this.backup.open();
delete this.backup;
game.uncheck();
game.check();
if(ui.cheat){
ui.cheat.animate('controlpressdownx',500);
ui.cheat.classList.remove('disabled');
}
}
else{
if(game.changeCoin){
game.changeCoin(-10);
}
this.backup=_status.event.dialog;
_status.event.dialog.close();
_status.event.dialog=_status.event.parent.dialogxx;
this.dialog=_status.event.dialog;
this.dialog.open();
game.uncheck();
game.check();
if(ui.cheat){
ui.cheat.classList.add('disabled');
}
}
});
if(lib.onfree){
ui.cheat2.classList.add('disabled');
}
}
ui.create.cheat=function(){
_status.createControl=ui.cheat2;
ui.cheat=ui.create.control('更换',function(){
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return;
}
if(game.changeCoin){
game.changeCoin(-3);
}
event.list=event.list.concat(list);
event.list.randomSort();
// list=event.list.splice(0,parseInt(get.config('choice_num')));
list=event.list.randomRemove(parseInt(get.config('choice_num')));
var buttons=ui.create.div('.buttons');
var node=_status.event.dialog.buttons[0].parentNode;
_status.event.dialog.buttons=ui.create.buttons(list,'character',buttons);
_status.event.dialog.content.insertBefore(buttons,node);
buttons.animate('start');
node.remove();
game.uncheck();
game.check();
});
delete _status.createControl;
}
if(!ui.cheat&&get.config('change_choice'))
ui.create.cheat();
if(!ui.cheat2&&get.config('free_choose'))
ui.create.cheat2();
}
"step 1"
if(ui.cheat){
ui.cheat.close();
delete ui.cheat;
}
if(ui.cheat2){
ui.cheat2.close();
delete ui.cheat2;
}
if(result.buttons){
game.me.init(result.buttons[0].link,result.buttons[1].link,false);
game.addRecentCharacter(result.buttons[0].link,result.buttons[1].link);
}
// game.me.setIdentity(game.me.group);
event.list.remove(game.me.name1);
event.list.remove(game.me.name2);
for(var i=0;i<game.players.length;i++){
if(game.players[i]!=game.me){
event.ai(game.players[i],event.list.randomRemove(parseInt(get.config('choice_num'))),event.list);
}
}
for(var i=0;i<game.players.length;i++){
game.players[i].classList.add('unseen');
game.players[i].classList.add('unseen2');
_status.characterlist.remove(game.players[i].name);
_status.characterlist.remove(game.players[i].name2);
if(game.players[i]!=game.me){
game.players[i].node.identity.firstChild.innerHTML='猜';
game.players[i].node.identity.dataset.color='unknown';
game.players[i].node.identity.classList.add('guessing');
}
game.players[i].hiddenSkills=lib.character[game.players[i].name1][3].slice(0);
var hiddenSkills2=lib.character[game.players[i].name2][3];
for(var j=0;j<hiddenSkills2.length;j++){
game.players[i].hiddenSkills.add(hiddenSkills2[j]);
}
for(var j=0;j<game.players[i].hiddenSkills.length;j++){
if(!lib.skill[game.players[i].hiddenSkills[j]]){
game.players[i].hiddenSkills.splice(j--,1);
}
}
game.players[i].group='unknown';
game.players[i].sex='unknown';
game.players[i].name1=game.players[i].name;
game.players[i].name='unknown';
game.players[i].identity='unknown';
game.players[i].node.name.show();
game.players[i].node.name2.show();
game.players[i]._group=lib.character[game.players[i].name1][1];
for(var j=0;j<game.players[i].hiddenSkills.length;j++){
game.players[i].addSkillTrigger(game.players[i].hiddenSkills[j],true);
}
}
setTimeout(function(){
ui.arena.classList.remove('choose-character');
},500);
});
}
},
},
},
duzhansanguo:{ duzhansanguo:{
name:'毒战三国', name:'毒战三国',
mode:'identity', mode:'identity',

View File

@ -301,13 +301,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_jiangwei','gz_zhangfei','gz_sp_zhugeliang', 'gz_jiangwei','gz_zhangfei','gz_sp_zhugeliang',
'gz_zhouyu','gz_lingcao','gz_daqiao','gz_dingfeng', 'gz_zhouyu','gz_lingcao','gz_daqiao','gz_dingfeng',
'gz_yuji','gz_caiwenji','gz_diaochan','gz_zuoci', 'gz_yuji','gz_caiwenji','gz_diaochan','gz_zuoci',
'gz_key_ushio',
], ],
'5':[ '5':[
'gz_zhangliao','gz_caocao','gz_xuhuang', 'gz_zhangliao','gz_caocao','gz_xuhuang',
'gz_liushan','gz_pangtong','gz_zhaoyun', 'gz_liushan','gz_pangtong','gz_zhaoyun',
'gz_re_lusu','gz_sunquan','gz_ganning', 'gz_re_lusu','gz_sunquan','gz_ganning',
'gz_zhangxiu','gz_liqueguosi','gz_huatuo', 'gz_zhangxiu','gz_liqueguosi','gz_huatuo',
'gz_zhanghuyuechen','gz_re_xushu', 'gz_zhanghuyuechen','gz_re_xushu','gz_zongyu',
], ],
'4':[ '4':[
'gz_dianwei','gz_dengai','gz_xunyu', 'gz_dianwei','gz_dengai','gz_xunyu',
@ -347,9 +348,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"], guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"],
guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"], guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen'], guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen'],
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_re_xushu'], guozhan_single:['gz_re_xushu'],
guozhan_zongheng:['gz_huaxin','gz_luyusheng'], guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan"], guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio"],
} }
}, },
characterPack:{ characterPack:{
@ -474,6 +476,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_jianggan:["male","wei",3,["weicheng","daoshu"]], gz_jianggan:["male","wei",3,["weicheng","daoshu"]],
gz_huaxin:['male','wei',3,['wanggui','xibing']], gz_huaxin:['male','wei',3,['wanggui','xibing']],
gz_luyusheng:['female','wu',3,['zhente','zhiwei']], gz_luyusheng:['female','wu',3,['zhente','zhiwei']],
gz_zongyu:['male','shu',3,['zyqiao','chengshang']],
gz_cuimao:['male','wei',3,['gzzhengbi','gzfengying'],[]], gz_cuimao:['male','wei',3,['gzzhengbi','gzfengying'],[]],
gz_yujin:['male','wei',4,['gzjieyue'],['gzskin']], gz_yujin:['male','wei',4,['gzjieyue'],['gzskin']],
@ -493,6 +496,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_jin_simashi:['male','jin',3,['yimie','tairan']], gz_jin_simashi:['male','jin',3,['yimie','tairan']],
gz_duyu:['male','jin',4,['sanchen']], gz_duyu:['male','jin',4,['sanchen']],
gz_zhanghuyuechen:['male','jin',4,['xijue']], gz_zhanghuyuechen:['male','jin',4,['xijue']],
gz_key_ushio:['female','key',3,['ushio_huanxin','ushio_xilv'],['doublegroup:key:wei:shu:wu:qun:jin']],
} }
}, },
skill:{ skill:{
@ -1194,7 +1199,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(target.identity=='unknown'||target.identity=='ye') return true; if(target.identity=='unknown'||target.identity=='ye') return true;
for(var i=0;i<storage.character.length;i++){ for(var i=0;i<storage.character.length;i++){
var group=lib.character[storage.character[i]][1]; var group=lib.character[storage.character[i]][1];
if(target.identity==group) return true; if(group=='ye'||target.identity==group) return true;
var double=get.is.double(storage.character[i],true);
if(double&&double.contains(target.identity)) return true;
} }
return false; return false;
} }
@ -1231,6 +1238,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var evt=_status.event.getParent('chooseToUse'); var evt=_status.event.getParent('chooseToUse');
var name=button.link[2]; var name=button.link[2];
var group=lib.character[ui.selected.buttons[0].link][1]; var group=lib.character[ui.selected.buttons[0].link][1];
var double=get.is.double(ui.selected.buttons[0].link,true);
var player=_status.event.player; var player=_status.event.player;
if(evt.type=='dying'){ if(evt.type=='dying'){
if(evt.dying!=player&&get.effect(evt.dying,{name:name},player,player)<=0) return 0; if(evt.dying!=player&&get.effect(evt.dying,{name:name},player,player)<=0) return 0;
@ -1240,7 +1248,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(!['tao','juedou','guohe','shunshou','wuzhong','xietianzi','yuanjiao','taoyuan','wugu','wanjian','nanman','huoshaolianying'].contains(name)) return 0; if(!['tao','juedou','guohe','shunshou','wuzhong','xietianzi','yuanjiao','taoyuan','wugu','wanjian','nanman','huoshaolianying'].contains(name)) return 0;
if(['taoyuan','wugu','wanjian','nanman','huoshaolianying'].contains(name)){ if(['taoyuan','wugu','wanjian','nanman','huoshaolianying'].contains(name)){
var list=game.filterPlayer(function(current){ var list=game.filterPlayer(function(current){
return (current.identity=='unknown'||current.identity=='ye'||current.identity==group)&&player.canUse({name:name},current); return (group=='ye'||current.identity=='unknown'||current.identity=='ye'||current.identity==group||(double&&double.contains(current.identity)))&&player.canUse({name:name},current);
}); });
var num=0; var num=0;
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
@ -1258,7 +1266,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(typeof button.link!='string') return false; if(typeof button.link!='string') return false;
if(evt.type=='dying'){ if(evt.type=='dying'){
if(evt.dying.identity=='unknown'||evt.dying.identity=='ye') return true; if(evt.dying.identity=='unknown'||evt.dying.identity=='ye') return true;
return evt.dying.identity==lib.character[button.link][1]; var double=get.is.double(button.link,true);
return evt.dying.identity==lib.character[button.link][1]||lib.character[button.link][1]=='ye'||(double&&double.contains(evt.dying.identity));
} }
return true; return true;
} }
@ -1271,6 +1280,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(button.link[3]) card.nature=button.link[3]; if(button.link[3]) card.nature=button.link[3];
var info=get.info(card); var info=get.info(card);
var group=lib.character[ui.selected.buttons[0].link][1]; var group=lib.character[ui.selected.buttons[0].link][1];
var double=get.is.double(ui.selected.buttons[0].link,true);
if(evt.type=='dying'){ if(evt.type=='dying'){
return evt.filterCard(card,player,evt); return evt.filterCard(card,player,evt);
} }
@ -1285,7 +1295,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var targets=[list[i]]; var targets=[list[i]];
info.changeTarget(player,targets); info.changeTarget(player,targets);
for(var j=0;j<targets.length;j++){ for(var j=0;j<targets.length;j++){
if(targets[j].identity!='unknown'&&targets[j].identity!='ye'&&targets[j].identity!=group){ if(group!='ye'&&targets[j].identity!='unknown'&&targets[j].identity!='ye'&&targets[j].identity!=group&&(!double||!double.contains(targets[j].identity))){
giveup=true; giveup=true;
break; break;
} }
@ -1296,7 +1306,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return false; return false;
} }
else return game.hasPlayer(function(current){ else return game.hasPlayer(function(current){
return evt.filterTarget(card,player,current)&&(current.identity=='unknown'||current.identity=='ye'||current.identity==group); return evt.filterTarget(card,player,current)&&(group=='ye'||current.identity=='unknown'||current.identity=='ye'||current.identity==group||(double&&double.contains(current.identity)));
}); });
} }
}, },
@ -1325,13 +1335,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var xx=lib.skill.yigui_backup; var xx=lib.skill.yigui_backup;
var evt=_status.event; var evt=_status.event;
var group=xx.group; var group=xx.group;
var double=get.is.double(xx.character,true);
var info=get.info(card); var info=get.info(card);
if((!(info.singleCard&&ui.selected.targets.length))&&target.identity!='unknown'&&target.identity!='ye'&&target.identity!=group) return false; if((!(info.singleCard&&ui.selected.targets.length))&&group!='ye'&&target.identity!='unknown'&&target.identity!='ye'&&target.identity!=group&&(!double||!double.contains(target.identity))) return false;
if(info.changeTarget){ if(info.changeTarget){
var targets=[target]; var targets=[target];
info.changeTarget(player,targets); info.changeTarget(player,targets);
for(var i=0;i<targets.length;i++){ for(var i=0;i<targets.length;i++){
if(targets[i].identity!='unknown'&&targets[i].identity!='ye'&&targets[i].identity!=group) return false; if(group!='ye'&&targets[i].identity!='unknown'&&targets[i].identity!='ye'&&targets[i].identity!=group&&(!double||!double.contains(targets[i].identity))) return false;
} }
} }
//if(evt.type=='dying') return target==evt.dying; //if(evt.type=='dying') return target==evt.dying;
@ -1408,9 +1419,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
player.storage.yigui_init=true; player.storage.yigui_init=true;
var list=_status.characterlist.filter(function(name){ var list=_status.characterlist.randomGets(2);
return !get.is.double(name);
}).randomGets(2);
if(list.length){ if(list.length){
_status.characterlist.removeArray(list); _status.characterlist.removeArray(list);
player.storage.yigui.character.addArray(list); player.storage.yigui.character.addArray(list);
@ -1560,9 +1569,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return event.name=='damage'||(event.player.isAlive()&&!event.player.isFriendOf(player)) return event.name=='damage'||(event.player.isAlive()&&!event.player.isFriendOf(player))
}, },
content:function(){ content:function(){
var list=_status.characterlist.filter(function(name){ var list=_status.characterlist.randomGets(1);
return !get.is.double(name);
}).randomGets(1);
if(list.length){ if(list.length){
_status.characterlist.removeArray(list); _status.characterlist.removeArray(list);
player.storage.yigui.character.addArray(list); player.storage.yigui.character.addArray(list);
@ -2504,7 +2511,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
event.showCharacter=false; event.showCharacter=false;
var choiceList=['执行该军令,增加一点体力上限,然后回复一点体力','不执行该军令']; var choiceList=['执行该军令,增加一点体力上限,然后回复一点体力','不执行该军令'];
if(event.current.isFriendOf(player)) event.current.chooseJunlingControl(player,event.junling,targets).set('prompt','将略').set('choiceList',choiceList).set('ai',function(){return 0}); if(event.current.isFriendOf(player)) event.current.chooseJunlingControl(player,event.junling,targets).set('prompt','将略').set('choiceList',choiceList).set('ai',function(){return 0});
else if(event.current._group==player.identity&&event.current.wontYe()){ else if((lib.character[event.current.name1][1]==player.identity||lib.character[event.current.name2][1]==player.identity)&&event.current.wontYe(player.identity)){
event.showCharacter=true; event.showCharacter=true;
choiceList[0]='明置一张武将牌以'+choiceList[0]; choiceList[0]='明置一张武将牌以'+choiceList[0];
choiceList[1]='不明置武将牌且'+choiceList[1]; choiceList[1]='不明置武将牌且'+choiceList[1];
@ -2517,7 +2524,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
event.carry=false; event.carry=false;
if(result.index==0&&result.control!='ok'){ if(result.index==0&&result.control!='ok'){
event.carry=true; event.carry=true;
if(event.showCharacter) event.current.chooseControl(['主将','副将']).set('ai',function(){return Math.round()>0.5?0:1;}).prompt='选择并展示一张武将牌,然后执行军令'; if(event.showCharacter){
var list=[];
if(lib.character[event.current.name1][1]==player.identity) list.push('主将');
if(lib.character[event.current.name2][1]==player.identity) list.push('副将');
if(list.length>1) event.current.chooseControl(['主将','副将']).set('ai',function(){
if(player.name1=='gz_fazheng') return 0;
if(player.name2=='gz_fazheng') return 1;
return Math.random()>0.5?0:1;
}).prompt='选择并展示一张武将牌,然后执行军令';
else event._result={index:list[0]=='主将'?0:1};
}
} }
'step 4' 'step 4'
if(!event.list) event.list=[player]; if(!event.list) event.list=[player];
@ -5693,7 +5710,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.huangjintianbingfu.length==0; return player.storage.huangjintianbingfu.length==0&&get.population('qun')>0;
}, },
content:function(){ content:function(){
var cards=get.cards(get.population('qun')); var cards=get.cards(get.population('qun'));
@ -5833,6 +5850,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
// return num>event.num; // return num>event.num;
// }, // },
audio:2, audio:2,
filter:function(event,player){
return get.population('qun')>0;
},
content:function(){ content:function(){
'step 0' 'step 0'
var num=get.population('qun'); var num=get.population('qun');
@ -7162,7 +7182,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
player.storage._mingzhi3=true; player.storage._mingzhi3=true;
var name=player.name1; var name=player.name1;
if(!player.isUnseen(0)||name.indexOf('gz_')!=0||!lib.junList.contains(name.slice(3))||!lib.character['gz_jun_'+name.slice(3)]) event.finish(); if(!player.isUnseen(0)||name.indexOf('gz_')!=0
||!lib.junList.contains(name.slice(3))||!lib.character['gz_jun_'+name.slice(3)]
||(player.identity!='ye'&&player.identity!='unknown'&&lib.character[player.name1][1]!=player.identity)) event.finish();
else{ else{
player.chooseBool("是否将主武将牌替换为君主武将?").ai=function(){return true}; player.chooseBool("是否将主武将牌替换为君主武将?").ai=function(){return true};
} }
@ -7262,6 +7284,47 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
ushio_huanxin:{
trigger:{
player:['damageEnd','useCard'],
source:'damageSource',
},
frequent:true,
filter:function(event,player,name){
if(name=='useCard') return get.type(event.card)=='equip';
if(name=='damageEnd') return true;
return event.getParent().name=='sha';
},
content:function(){
player.judge().set('callback',function(){
var card=event.judgeResult.card;
if(card&&get.position(card,true)=='o'){
player.gain(card,'gain2');
player.chooseToDiscard(true,'he');
}
});
},
},
ushio_xilv:{
trigger:{player:'judgeEnd'},
forced:true,
content:function(){
player.addTempSkill('ushio_xilv2',{player:'phaseJieshu'});
player.addMark('ushio_xilv2',1,false);
},
},
ushio_xilv2:{
onremove:true,
charlotte:true,
mod:{
maxHandcard:function(player,num){
return num+player.countMark('ushio_xilv2');
}
},
intro:{
content:'手牌上限+#',
},
},
}, },
game:{ game:{
getCharacterChoice:function(list,num){ getCharacterChoice:function(list,num){
@ -7683,7 +7746,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.init.onfree(); lib.init.onfree();
} }
else{ else{
var dialog=ui.create.dialog('选择角色','hidden',[list,'characterx']); var dialog=ui.create.dialog('选择角色','hidden',[list,'character']);
if(!_status.brawl||!_status.brawl.noAddSetting){ if(!_status.brawl||!_status.brawl.noAddSetting){
if(get.config('change_identity')){ if(get.config('change_identity')){
addSetting(dialog); addSetting(dialog);
@ -7713,6 +7776,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return false; return false;
}; };
if(get.is.double(ui.selected.buttons[0].link)) return false; if(get.is.double(ui.selected.buttons[0].link)) return false;
if(get.is.double(button.link)) return get.is.double(button.link,true).contains(lib.character[ui.selected.buttons[0].link][1]);
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(){
@ -7720,7 +7784,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ui.arena.classList.remove('selecting'); ui.arena.classList.remove('selecting');
}; };
var createCharacterDialog=function(){ var createCharacterDialog=function(){
event.dialogxx=ui.create.characterDialog('heightset','characterx',function(i){ event.dialogxx=ui.create.characterDialog('heightset',function(i){
if(i.indexOf('gz_shibing')==0) return true; if(i.indexOf('gz_shibing')==0) return true;
if(get.config('onlyguozhan')){ if(get.config('onlyguozhan')){
if(!lib.characterPack.mode_guozhan[i]) return true; if(!lib.characterPack.mode_guozhan[i]) return true;
@ -7790,7 +7854,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
list=game.getCharacterChoice(event.list,parseInt(get.config('choice_num'))); list=game.getCharacterChoice(event.list,parseInt(get.config('choice_num')));
var buttons=ui.create.div('.buttons'); var buttons=ui.create.div('.buttons');
var node=_status.event.dialog.buttons[0].parentNode; var node=_status.event.dialog.buttons[0].parentNode;
_status.event.dialog.buttons=ui.create.buttons(list,'characterx',buttons); _status.event.dialog.buttons=ui.create.buttons(list,'character',buttons);
_status.event.dialog.content.insertBefore(buttons,node); _status.event.dialog.content.insertBefore(buttons,node);
buttons.animate('start'); buttons.animate('start');
node.remove(); node.remove();
@ -7925,11 +7989,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}; };
if(!lib.character[button.link]) return false; if(!lib.character[button.link]) return false;
if(get.is.double(ui.selected.buttons[0].link)) return false; if(get.is.double(ui.selected.buttons[0].link)) return false;
if(get.is.double(button.link)) return get.is.double(button.link,true).contains(lib.character[ui.selected.buttons[0].link][1]);
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]);
}; };
list.randomSort(); list.randomSort();
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
list2.push([game.players[i],['选择角色',[game.getCharacterChoice(list,num),'characterx']],2, list2.push([game.players[i],['选择角色',[game.getCharacterChoice(list,num),'character']],2,
true,function(){return Math.random()},filterButton]); true,function(){return Math.random()},filterButton]);
} }
game.me.chooseButtonOL(list2,function(player,result){ game.me.chooseButtonOL(list2,function(player,result){
@ -8401,6 +8466,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzxiaoguo:'骁果', gzxiaoguo:'骁果',
gzxiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌2.受到你对其造成的1点伤害。', gzxiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌2.受到你对其造成的1点伤害。',
gz_key_ushio:'冈崎汐',
ushio_huanxin:'幻心',
ushio_huanxin_info:'当你受到伤害后/使用【杀】造成伤害后/使用装备牌时,你可进行判定。然后你获得判定牌并弃置一张牌。',
ushio_xilv:'汐旅',
ushio_xilv2:'汐旅',
ushio_xilv_info:'锁定技,此武将牌可作为任意单势力武将牌的副将。当你进行判定后,你令你的手牌上限+1直至你的下个结束阶段。',
guozhan_default:"国战标准", guozhan_default:"国战标准",
guozhan_zhen:"君临天下·阵", guozhan_zhen:"君临天下·阵",
guozhan_shi:"君临天下·势", guozhan_shi:"君临天下·势",
@ -8408,7 +8480,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_quan:"君临天下·权", guozhan_quan:"君临天下·权",
guozhan_jun:"君主武将", guozhan_jun:"君主武将",
guozhan_jin:'文德武备', guozhan_jin:'文德武备',
guozhan_double:'不臣篇·上', guozhan_single:'君临天下EX/不臣篇',
guozhan_double:'双势力武将',
guozhan_zongheng:'纵横捭阖', guozhan_zongheng:'纵横捭阖',
guozhan_others:"其他", guozhan_others:"其他",
}, },
@ -8957,12 +9030,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
_status.characterlist.randomSort(); _status.characterlist.randomSort();
event.tochange=[] event.tochange=[]
for(var i=0;i<_status.characterlist.length;i++){ for(var i=0;i<_status.characterlist.length;i++){
if(lib.character[_status.characterlist[i]][1]==group&&!get.is.double(_status.characterlist[i])) event.tochange.push(_status.characterlist[i]); var double=get.is.double(_status.characterlist[i],true);
if(lib.character[_status.characterlist[i]][1]==group||(double&&double.contains(group))) event.tochange.push(_status.characterlist[i]);
if(event.tochange.length==event.num) break; if(event.tochange.length==event.num) break;
} }
if(!event.tochange.length) event.finish(); if(!event.tochange.length) event.finish();
else{ else{
player.chooseButton(true,['选择要变更的武将牌',[event.tochange,'character']]).ai=function(button){ if(event.tochange.length==1) event._result={
bool:true,
links:event.tochange,
}
else player.chooseButton(true,['选择要变更的武将牌',[event.tochange,'character']]).ai=function(button){
return get.guozhanRank(button.link); return get.guozhanRank(button.link);
}; };
} }
@ -9004,6 +9082,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
player:{ player:{
getGuozhanGroup:function(){
return lib.character[this.name1][1];
},
chooseJunlingFor:function(target){ chooseJunlingFor:function(target){
var next=game.createEvent('chooseJunlingFor'); var next=game.createEvent('chooseJunlingFor');
next.player=this; next.player=this;
@ -9309,11 +9390,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
game.addVideo('showCharacter',this,num); game.addVideo('showCharacter',this,num);
if(this.identity=='unknown'){ if(this.identity=='unknown'){
this.group=lib.character[this.name1][1]; this.group=this.getGuozhanGroup(num);
this._group=this.group;
if(get.is.jun(this.name1)&&this.isAlive()){ if(get.is.jun(this.name1)&&this.isAlive()){
this.identity=this.group; this.identity=this.group;
} }
else if(this.wontYe()){ else if(this.wontYe(this.group)){
this.identity=this.group; this.identity=this.group;
} }
else{ else{
@ -9414,8 +9496,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
game.tryResult(); game.tryResult();
}, },
wontYe:function(){ wontYe:function(group){
var group=lib.character[this.name1][1]; if(!group) group=lib.character[this.name1][1];
if(_status.yeidentity&&_status.yeidentity.contains(group)) return false; if(_status.yeidentity&&_status.yeidentity.contains(group)) return false;
if(get.zhu(this,null,true)) return true; if(get.zhu(this,null,true)) return true;
return get.totalPopulation(group)+1<=get.population()/2; return get.totalPopulation(group)+1<=get.population()/2;