v1.9.115.2

This commit is contained in:
Spmario233 2022-09-15 20:33:17 +08:00
parent 5cdd1a9b46
commit 030fc1bd62
83 changed files with 1708 additions and 392 deletions

BIN
audio/die/caohua.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/dc_liuyu.mp3 Normal file

Binary file not shown.

BIN
audio/die/ol_xunyu.mp3 Normal file

Binary file not shown.

BIN
audio/die/qinyilu.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_liuchen.mp3 Normal file

Binary file not shown.

BIN
audio/die/ruanhui.mp3 Normal file

Binary file not shown.

BIN
audio/die/xin_mamidi.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/zhangxuan.mp3 Normal file

Binary file not shown.

BIN
audio/skill/buxu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/buxu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/caiyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/caiyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chengye1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chengye2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuaili1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuaili2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/dcpijing1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcpijing2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcsuifu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcsuifu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dczimu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/guili1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/guili2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jingzhong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jingzhong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mingcha1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mingcha2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/oljieming1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/oljieming2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/piaoping1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/piaoping2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/reqinwang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqinwang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rezhanjue1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rezhanjue2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbyaoming1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbyaoming2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shezang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shezang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shizhan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shizhan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tongli1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tongli2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tuoxian.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tuoxian2.mp3 Normal file

Binary file not shown.

View File

@ -640,7 +640,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
targets.push(player);
if(target.identity!='ye'){
game.filterPlayer(function(current){
return target!=current&&target.identity==current.identity&&!current.hasSkill('diaohulishan');
return target!=current&&target.isFriendOf(current)&&!current.hasSkill('diaohulishan');
},targets);
}
}
@ -1072,7 +1072,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
equipValue:function(card,player){
if(player.identity=='unknown'||player.identity=='ye') return 2.5;
return 2+game.countPlayer(function(current){
return current.identity==player.identity;
return current.isFriendOf(player);
})/2;
},
basic:{
@ -1747,11 +1747,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
g_wuliu_skill:{
equipSkill:true,
mod:{
attackFrom:function(from,to,distance){
return distance-game.countPlayer(function(current){
if(current==from) return false;
if(current.identity=='unknown'||current.identity=='ye') return false;
if(current.identity!=from.identity) return false;
attackRange:function(player,distance){
return distance+game.countPlayer(function(current){
if(current==player||!current.isFriendOf(player)) return false;
if(current.hasSkill('wuliu_skill')) return true;
});
}

View File

@ -717,11 +717,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
"step 1"
if(result&&result.control=='顺时针'){
var evt=event.getParent();
var evt=event.getParent(),sorter=(_status.currentPhase||player);
evt.fixedSeat=true;
evt.targets.sortBySeat();
evt.targets.sortBySeat(sorter);
evt.targets.reverse();
if(evt.targets[evt.targets.length-1]==player){
if(evt.targets[evt.targets.length-1]==sorter){
evt.targets.unshift(evt.targets.pop());
}
}
@ -863,14 +863,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
result:{
target:function(player,target){
var sorter=(_status.currentPhase||player);
if(get.is.versus()){
if(target==player) return 1.5;
if(target==sorter) return 1.5;
return 1;
}
if(player.hasUnknown(2)){
return 0;
}
return (1-get.distance(player,target,'absolute')/game.countPlayer())*get.attitude(player,target)>0?0.5:0.7;
return (1-get.distance(sorter,target,'absolute')/game.countPlayer())*get.attitude(player,target)>0?0.5:0.7;
}
},
tag:{

View File

@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{
noname:["female","key",3,["noname_zhuyuan","noname_duocai"]],
sp_key_yuri:['female','qun',4,['mubing','ziqu','diaoling']],
key_lucia:['female','key','1/2',['lucia_duqu','lucia_zhenren']],
key_lucia:['female','key','2/3',['lucia_duqu','lucia_zhenren']],
key_kyousuke:['male','key',4,['nk_shekong','key_huanjie']],
key_yuri:['female','key',3,['yuri_xingdong','key_huanjie','yuri_wangxi'],['zhu']],
key_haruko:['female','key',4,['haruko_haofang','haruko_zhuishi']],
@ -97,6 +97,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_yanghu:['male','jin',3,['nsbizhao','nsqingde','nsyidi'],['hiddenSkill']],
ns_zanghong:['male','qun',4,['nsshimeng']],
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
ns_limi:['male','jin',3,['nstuilun']],
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
@ -198,7 +199,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
diy_yijiang3:['ns_ruanji','ns_zanghong'],
diy_yijiang3:['ns_ruanji','ns_zanghong','ns_limi'],
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
@ -312,6 +313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_yanghu:'#ginCenv',
ns_ruanji:'#g伯约的崛起',
ns_zanghong:'#g阿七',
ns_limi:'#g-心若困兽-',
ns_luyusheng:'#g猫咪大院 - 魚と水',
ns_caimao:'#gP尔号玩家◆',
@ -519,6 +521,108 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
//李密
nstuilun:{
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
return player.hp>1&&player.countCards('h')>1&&player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'nstuilun');
},'h');
},
prompt2:'失去任意点体力至多失去至1点并弃置任意张手牌至多弃置至一张。',
check:function(event,player){
if(game.hasPlayer(function(current){
return current!=player&&current.hp>=player.hp;
})) return true;
return false;
},
content:function(){
'step 0'
if(player.hp==2) event._result={index:0};
else{
var list=[];
for(var i=1;i<player.hp;i++){
list.push(i+'点');
}
player.chooseControl(list).set('prompt','请选择失去体力的量');
}
'step 1'
player.loseHp(1+result.index);
'step 2'
if(player.countCards('h')>1&&player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'nstuilun');
},'h')){
player.chooseToDiscard('h',true,[1,player.countCards('h')-1]);
}
else game.delayx();
'step 3'
player.addTempSkill('nstuilun_effect',{player:'phaseBegin'});
},
subSkill:{
effect:{
charlotte:true,
trigger:{global:'phaseBegin'},
forced:true,
popup:false,
filter:function(event,player){
return player.hp<event.player.hp||(player.hp>0&&player.countCards('h')<event.player.countCards('h'));
},
content:function(){
'step 0'
if(player.hp<trigger.player.hp){
player.chooseTarget('退论是否令一名角色回复或失去1点体力').set('ai',function(target){
var eff=get.effect(target,{name:'losehp'},player,player);
if(target.isDamaged()) eff=Math.max(eff,get.recoverEffect(target,player,player));
return eff;
});
}
else event.goto(3);
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('nstuilun_effect',target);
if(target.isHealthy()) event._result={index:1};
else player.chooseControl('回复1点体力','失去1点体力').set('prompt','令'+get.translation(target)+'…').set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().target;
if(get.recoverEffect(target,player,player)>=get.effect(target,{name:'losehp'},player,player)) return 0;
return 1;
});
}
else event.goto(3);
'step 2'
if(result.index==0) target.recover();
else target.loseHp();
'step 3'
if(trigger.player.countCards('h')>player.countCards('h')){
var str=get.cnNumber(player.hp);
player.chooseTarget('退论:是否令一名角色摸一张牌或弃置一张牌?').set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att>0||target.countCards('he')==0) return get.effect(target,{name:'wuzhong'},player,player)/2;
return get.effect(target,{name:'guohe_copy2'},target,player);
});
}
else event.finish();
'step 4'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('nstuilun_effect',target);
if(!target.countCards('he')) event._result={index:1};
else player.chooseControl('摸一张牌','弃置一张牌').set('prompt','令'+get.translation(target)+'…').set('ai',function(player){
var evt=_status.event;
return get.attitude(evt.player,evt.getParent().target)>0?0:1;
});
}
else event.finish();
'step 5'
if(result.index==0) target.draw();
else target.chooseToDiscard('he',true);
},
},
},
},
//阮籍
nsshizui:{
trigger:{target:'useCardToTargeted'},
@ -9034,11 +9138,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
lucia_duqu:{
mod:{
cardSavable:function(card,player,target){
if(player==target&&card.name=='du'&&!player.hasSkill('lucia_duqu_terra')) return true;
},
},
trigger:{
player:['damage','loseHpBefore','useCardBefore'],
source:'damage',
@ -9049,9 +9148,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(onrewrite=='loseHpBefore'){
return event.type=='du';
}
if(onrewrite=='useCardBefore'){
return event.card.name=='du'&&event.getParent().type=='dying';
}
return event.source!=undefined&&event.source!=event.player;
},
content:function(){
@ -9060,30 +9156,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
player.recover(trigger.num);
}
else if(onrewrite=='useCardBefore'){
player.addTempSkill('lucia_duqu_terra');
}
else{
var another=trigger[trigger.source==player?'player':'source'];
player.line(another,{color:[220, 90, 139]});
var card=game.createCard2('du');
player.$gain2(card);
player.gain(card);
another.gain(game.createCard2('du'),'gain2');
}
},
ai:{
usedu:true,
save:true,
skillTagFilter:function(player,tag,target){
if(tag=='usedu') return player.isDamaged();
return player==target&&player.hasUsableCard('du')&&!player.hasSkill('lucia_duqu_terra');
},
},
subSkill:{terra:{sub:true}}
},
lucia_zhenren:{
trigger:{global:'phaseEnd'},
trigger:{global:'phaseJieshuBegin'},
forced:true,
charlotte:true,
filter:function(event,player){
@ -15611,7 +15695,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_erika:'苍井えりか',
key_satomi:'藏里见',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你令对方获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。',
lucia_zhenren:'振刃',
lucia_zhenren_info:'锁定技每个结束阶段若你的装备区内有牌则你弃置之。然后你依次弃置场上的X张牌。X为你以此法弃置的牌数',
nk_shekong:'设控',
@ -16364,7 +16448,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nsshizui:'酾醉',
nsshizui_info:'每回合限一次。当你成为基本牌或普通锦囊牌的目标后,你可以弃置一张牌,然后视为使用一张【酒】。若你弃置的牌与其使用的牌花色相同,则此牌对你无效;若你弃置的牌为♣,则你获得其使用的牌。',
nsxiaoye:'啸野',
nsxiaoye_info:'一名角色的结束阶段开始时,若你于当前回合內使用过【酒】,则你可以视为使用一张其于本回合内使用过的【杀】或普通锦囊牌。',
nsxiaoye_info:'一名角色的结束阶段开始时,若你于当前回合内使用过【酒】,则你可以视为使用一张其于本回合内使用过的【杀】或普通锦囊牌。',
ns_limi:'李密',
nstuilun:'退论',
nstuilun_info:'结束阶段你可以失去任意点体力至多失去至1点并弃置任意张手牌至多弃置至一张。若如此做你获得如下效果直到你下回合开始其他角色的回合开始时若你的体力值小于该角色则你可以令一名角色回复或失去1点体力若你的手牌数小于该角色则你可以令一名角色摸一张牌或弃置一张牌。',
junk_zhangrang:'四花张让',
junktaoluan:'滔乱',

View File

@ -1866,7 +1866,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(target.isMaxHandcard()) player.loseMaxHp();
},
ai:{
order:1,
order:1.2,
result:{
player:1,
},
@ -1954,28 +1954,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zuoxing:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
var target=player.storage.zuoxing;
return target&&target.isAlive()&&target.maxHp>1;
},
logTarget:function(event,player){
return player.storage.zuoxing;
},
check:function(event,player){
var target=player.storage.zuoxing;
if(get.attitude(player,target)<=0) return true;
return target.maxHp>3&&!player.hasJudge('lebu');
},
content:function(){
player.storage.zuoxing.loseMaxHp();
player.addTempSkill('zuoxing2');
},
},
zuoxing2:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
var target=player.storage.zuoxing;
if(!target||!target.isAlive()||target.maxHp<2) return false;
for(var i of lib.inpile){
if(get.type(i)=='trick'&&event.filterCard({name:i,isCard:true},player,event)) return true;
}
@ -2003,6 +1986,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
popname:true,
precontent:function(){
player.logSkill('zuoxing');
var target=player.storage.zuoxing;
target.loseMaxHp();
//delete event.result.skill;
},
}
@ -2017,6 +2002,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'sghuishi',
inherit:'sghuishi',
filterTarget:true,
prompt:function(){
var player=_status.event.player;
if(player.maxHp>=game.players.length) return '选择一名角色。若其拥有未发动过的觉醒技则你解除其中一个觉醒技的发动限制否则其摸四张牌。然后你减2点体力上限。';
return '令一名角色摸四张牌然后你减2点体力上限。';
},
content:function(){
'step 0'
player.awakenSkill('resghuishi');
@ -2620,7 +2610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else player.line(target,'green');
//targets.push(target);
if(!target.countCards('h')) event._result={index:1};
if(target.countCards('h')==0) event._result={index:0};
else player.chooseControl('摸一张牌','弃置一张手牌').set('prompt','选择一项令'+get.translation(target)+'执行…').set('goon',get.attitude(player,target)>0?0:1).set('ai',()=>_status.event.goon);
//else player.discardPlayerCard(target,'h','弃置'+get.translation(target)+'一张手牌,或点【取消】令其摸一张牌。');
}
@ -6000,7 +5990,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
stianyi_info:'觉醒技准备阶段若场上的所有存活角色均于本局游戏内受到过伤害则你加2点体力上限并回复1点体力然后令一名角色获得技能〖佐幸〗。',
zuoxing:'佐幸',
zuoxing2:'佐幸',
zuoxing_info:'准备阶段若令你获得〖佐幸〗的角色存活且体力上限大于1则你可以令其减1点体力上限然后你获得如下效果:出牌阶段限一次,你可以获得一张普通锦囊牌。',
zuoxing_info:'出牌阶段限一次若令你获得〖佐幸〗的角色存活且体力上限大于1则你可以令其减1点体力上限并视为一张普通锦囊牌。',
sghuishi:'辉逝',
sghuishi_info:'限定技出牌阶段你可以选择一名其他角色若其有未发动过的觉醒技则你令其发动这些觉醒技时无视原有条件否则其摸四张牌。然后你减2点体力上限。',
shen_taishici:'神太史慈',

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan"],
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan","ruanhui","xin_mamidi"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning",'yj_huangzhong'],
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'],
@ -15,17 +15,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_shijiyan:['sp_cuiyan','sp_zhangchangpu','sp_jiangwan','sp_jiangqing','sp_lvfan','sp_huangfusong','sp_zhujun','liuba'],
mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong","re_caiwenji"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong","re_caiwenji","re_xunyu"],
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai","re_gaoshun"],
mobile_yijiang2:["xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui","re_bulianshi"],
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong","xin_sunluban","xin_caozhen","xin_jushou"],
mobile_yijiang5:['xin_sunxiu',],
mobile_yijiang5:['xin_sunxiu','xin_quancong'],
mobile_yijiang67:["re_jikang"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
xin_mamidi:['male','qun',3,['chengye','buxu']],
ruanhui:['female','wei',3,['mingcha','jingzhong']],
xin_quancong:['male','wu',4,['sbyaoming']],
re_xunyu:["male","wei",3,["quhu","rejieming"]],
xin_jushou:['male','qun',3,['xinjianying','shibei']],
liuba:['male','shu',3,['duanbi','tongduo']],
re_bulianshi:['female','wu',3,['reanxu','zhuiyi']],
@ -168,6 +172,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
},
characterIntro:{
ruanhui:'阮氏女,是指三国时期曹魏名士许允之妻阮氏,陈留尉氏人。阮氏女是中国古代四大丑女之一,貌丑而见识非凡。她出身士族之家,是卫尉阮共(字伯彦)之女、阮侃(字德如)之妹。嫁与许允后生有二子:许奇,官至司隶校尉;许猛,官至幽州刺史。',
peixiu:'裴秀224年271年4月3日字季彦。河东郡闻喜县今山西省闻喜县人。[1]魏晋时期名臣、地图学家东汉尚书令裴茂之孙、曹魏光禄大夫裴潜之子。出身河东裴氏少年时便颇有名气后被大将军曹爽辟为掾属袭爵清阳亭侯又迁黄门侍郎。高平陵之变后因是曹爽的故吏而被罢免。此后历任廷尉正、安东将军及卫将军司马参与谋划军国之政参与平定诸葛诞叛乱。因功转任尚书进封鲁阳乡侯。魏元帝继位后进爵鲁阳县侯任尚书仆射。咸熙元年264年受命负责修改官制又提议恢复五等爵制。五等制恢复后获封济川侯。他建议立司马炎为世子司马炎继位晋王后拜裴秀为尚书令、右光禄大夫。西晋建立后加左光禄大夫封钜鹿郡公。泰始三年267年升任司空。泰始七年271年裴秀因服食寒食散后饮冷酒而逝世年四十八谥号“元”。有文集三卷。裴秀作《禹贡地域图》开创了中国古代地图绘制学。李约瑟称他为“中国科学制图学之父”与古希腊著名地图学家托勒密齐名是世界古代地图学史上东西辉映的两颗灿烂明星。为纪念这位中国地图科学创始人而设立的“裴秀奖”每两年评选一次是中国地图学界最高奖项。由于他的贡献突出联合国天文组织将月球正面的一个环形山命名为“裴秀环形山”',
liucheng:'游卡桌游的原创人物。设定为黄忠的妻子。',
jiangwan:'蒋琬246年字公琰。零陵郡湘乡县人。三国时期蜀汉政治家与诸葛亮、董允、费祎合称“蜀汉四相”。蒋琬最初随刘备入蜀为广都县长。因其不理政事惹怒刘备在诸葛亮的劝说下才免于一死。后重获启用受到诸葛亮的悉心培养累官丞相长史兼抚军将军。建兴十二年234年诸葛亮去世蒋琬继其执政拜尚书令又加行都护、假节领益州刺史再迁大将军录尚书事封安阳亭侯。延熙元年238年受命开府加大司马总揽蜀汉军政。曾制定由水路进攻曹魏的计划但未被采纳。延熙九年246年蒋琬病逝谥号为恭。',
@ -617,6 +622,465 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//马日磾
chengye:{
audio:2,
liujing_filter:[
function(card){
return get.type(card,false)=='trick'&&get.tag(card,'damage',null,false)>0;
},
(card)=>get.type(card,false)=='basic',
(card)=>get.name(card,false)=='wuxie',
(card)=>get.name(card,false)=='wuzhong',
(card)=>get.name(card,false)=='lebu',
(card)=>get.type(card,false)=='equip',
],
getLiujing:function(player,index){
var filter=lib.skill.chengye.liujing_filter[index],expansion=player.getExpansions('chengye');
for(var i of expansion){
if(filter(i)) return i;
}
return false;
},
trigger:{global:['useCardAfter','loseAfter','cardsDiscardAfter']},
forced:true,
filter:function(event,player){
if(player==event.player) return false;
if(event.name=='useCard'){
if(!event.card.isCard) return false;
var cards=event.cards.filterInD();
if(!cards.length) return false;
}
else if(event.name=='lose'){
if(event.position!=ui.discardPile) return false;
var cards=event.cards2.filter(function(card){
if(get.position(card,true)!='d') return false;
var type=get.type(card,false);
return type=='delay'||type=='equip';
});
if(!cards.length) return false;
}
else{
var evtx=event.getParent();
if(evtx.name!='orderingDiscard') return false;
var evt2=(evtx.relatedEvent||evtx.getParent());
if(evt2.name!='phaseJudge'||evt2.player==player) return;
var cards=event.cards.filter(function(card){
if(get.position(card,true)!='d') return false;
var type=get.type(card,false);
return type=='delay';
});
if(!cards.length) return false;
}
for(var i=0;i<6;i++){
if(lib.skill.chengye.getLiujing(player,i)) continue;
for(var j of cards){
if(lib.skill.chengye.liujing_filter[i](j)) return true;
}
}
return false;
},
content:function(){
var cards,cards2=[];
if(trigger.name=='useCard'){
cards=trigger.cards.filterInD();
}
else if(trigger.name=='lose'){
cards=trigger.cards2.filter(function(card){
if(get.position(card,true)!='d') return false;
var type=get.type(card,false);
return type=='delay'||type=='equip';
});
}
else{
cards=trigger.cards.filter(function(card){
if(get.position(card,true)!='d') return false;
var type=get.type(card,false);
return type=='delay';
});
}
for(var i=0;i<6;i++){
if(lib.skill.chengye.getLiujing(player,i)) continue;
for(var j of cards){
if(lib.skill.chengye.liujing_filter[i](j)){
cards.remove(j);
cards2.push(j);
break;
}
}
if(!cards.length) break;
}
player.addToExpansion(cards2,'gain2').gaintag.add('chengye');
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
marktext:'六',
intro:{
name:'六经',
markcount:'expansion',
content:'expansion',
mark:function(dialog,storage,player){
var list=['《诗经》','《尚书》','《仪礼》','《易经》','《乐经》','《春秋》'];
var desc=['伤害类锦囊牌','基本牌','无懈可击','无中生有','乐不思蜀','装备牌'];
for(var i=0;i<6;i++){
dialog.addText(list[i]);
var card=lib.skill.chengye.getLiujing(player,i);
if(!card) dialog.addText('(缺少 '+desc[i]+'');
else dialog.addSmall([card]);
}
},
},
group:'chengye_gain',
subSkill:{
gain:{
trigger:{player:'phaseUseBegin'},
forced:true,
filter:function(event,player){
return player.getExpansions('chengye').length>=6;
},
content:function(){
player.gain(player.getExpansions('chengye'),'gain2');
},
},
},
},
buxu:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
var num=(player.getStat('skill').buxu||0)+1;
return player.countCards('he')>=num&&player.getExpansions('chengye').length<6;
},
chooseButton:{
chooseControl:function(event,player){
var list=['诗经','尚书','仪礼','易经','乐经','春秋'];
var choices=[];
for(var i=0;i<6;i++){
if(!lib.skill.chengye.getLiujing(player,i)) choices.push(list[i]);
}
choices.push('cancel2');
return choices;
},
check:function(event,player){
var list=[4,3,5,0,2,1];
for(var i of list){
if(!lib.skill.chengye.getLiujing(player,i)){
return ['诗经','尚书','仪礼','易经','乐经','春秋'][i];
}
}
return 'cancel2';
},
dialog:function(event,player){
var num=(player.getStat('skill').buxu||0)+1;
return ui.create.dialog('###补叙###弃置'+get.cnNumber(num)+'张牌并补充一张“六经”');
},
prompt:function(links,player){
var num=(player.getStat('skill').buxu||0)+1;
return '弃置'+get.cnNumber(num)+'张牌并补充一张《'+links.control+'》';
},
backup:function(links,player){
return {
index:['诗经','尚书','仪礼','易经','乐经','春秋'].indexOf(links.control),
filterCard:true,
position:'he',
selectCard:(player.getStat('skill').buxu||0)+1,
ai1:function(card){
var player=_status.event.player;
if(player.needsToDiscard()>ui.selected.cards.length) return 10/Math.max(0.1,get.value(card));
return 5-(player.getStat('skill').buxu||0)-get.value(card);
},
ai2:()=>1,
content:function(){
var filter=lib.skill.chengye.liujing_filter[lib.skill.buxu_backup.index];
var card=get.cardPile(filter);
if(card) player.addToExpansion(card,'gain2').gaintag.add('chengye');
},
ai:{result:{player:1}},
}
},
},
ai:{
combo:'chengye',
order:0.2,
result:{player:1},
},
},
//阮慧
mingcha:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
forced:true,
locked:false,
filter:(event)=>!event.numFixed,
content:function(){
'step 0'
var cards=get.cards(2),cards2=cards.slice(0);
event.cards=cards.filter(function(i){
return get.number(i)<7;
});
while(cards2.length>0){
var card=cards2.pop();
card.fix();
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
}
game.updateRoundNumber();
player.showCards(cards,get.translation(player)+'发动了【明察】');
if(!event.cards.length) event.finish();
'step 1'
player.chooseBool('是否放弃摸牌并获得'+get.translation(cards)).set('goon',trigger.num-cards.length<=1);
'step 2'
if(result.bool){
trigger.changeToZero();
player.gain(cards,'gain2');
}
else event.finish();
'step 3'
player.chooseTarget('是否随机获得其他角色的一张牌?',function(card,player,target){
return target!=player&&target.countCards('he')>0;
}).set('ai',function(target){
return 3-get.attitude(player,target);
});
'step 4'
if(result.bool){
var target=result.targets[0],cards=target.getGainableCards(player,'he');
player.line(target,'green');
if(cards.length) player.gain(cards.randomGet(),target,'giveAuto');
}
},
},
jingzhong:{
audio:2,
trigger:{player:'phaseDiscardAfter'},
filter:function(event,player){
var num=0;
player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==event){
for(var i of evt.cards2){
if(get.color(i,player)=='black') num++;
}
}
});
return num>1;
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('jingzhong'),'获得一名其他角色下回合出牌阶段内使用的牌',lib.filter.notMe).set('ai',function(target){
return Math.sqrt(target.countCards('h'))*get.threaten(target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('jingzhong',target);
player.addSkill('jingzhong_effect');
player.markAuto('jingzhong_effect',[target]);
game.delayx();
}
},
subSkill:{
effect:{
trigger:{global:'useCardAfter'},
forced:true,
charlotte:true,
filter:function(event,player){
if(!player.getStorage('jingzhong_effect').contains(event.player)||!event.cards.filterInD().length) return false;
var evt=event.getParent('phaseUse');
if(!evt||evt.player!=event.player) return false;
return player.getHistory('useSkill',function(evtx){
return evtx.skill=='jingzhong_effect'&&evtx.event.getParent('phaseUse')==evt;
}).length<3;
},
logTarget:'player',
content:function(){
player.gain(trigger.cards.filterInD(),'gain2');
},
mark:true,
intro:{content:'已指定$为目标'},
group:'jingzhong_remove',
},
remove:{
trigger:{global:'phaseAfter'},
forced:true,
charlotte:true,
popup:false,
firstDo:true,
filter:function(event,player){
return player.getStorage('jingzhong_effect').contains(event.player);
},
content:function(){
var storage=player.getStorage('jingzhong_effect');
storage.remove(trigger.player);
if(!storage.length) player.removeSkill('jingzhong_effect');
},
},
},
},
//全琮
sbyaoming:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countMark('sbyaoming')>0;
},
filterTarget:true,
prompt:function(){
var num=_status.event.player.storage.sbyaoming_status;
var list=['弃置一名手牌数不小于你的角色的一张牌',';或令一名手牌数不大于你的角色摸一张牌']
if(typeof num=='number') list[num]+='(上次选择)';
return list[0]+list[1];
},
content:function(){
'step 0'
player.removeMark('sbyaoming',1);
var num=target.countCards('h'),num2=player.countCards('h');
if(num==num2&&target.countCards('he')>0){
var str=get.translation(target),choiceList=[
'弃置'+str+'的一张牌',
'令'+str+'摸一张牌',
];
if(typeof player.storage.sbyaoming_status=='number') choiceList[player.storage.sbyaoming_status]+='(上次选择)';
player.chooseControl().set('choiceList',choiceList);
}
else event._result={index:num>num2?0:1};
'step 1'
if(result.index==0){
player.discardPlayerCard(target,true,'he');
}
else target.draw();
if(typeof player.storage.sbyaoming_status=='number'&&result.index!=player.storage.sbyaoming_status){
player.addMark('sbyaoming',1);
delete player.storage.sbyaoming_status;
}
else{
player.storage.sbyaoming_status=result.index;
}
},
ai:{
order:6,
result:{
player:function(player,target){
var att=get.attitude(player,target),eff=[0,0];
var hs=player.countCards('h'),ht=target.countCards('h');
if(hs>=ht){
eff[0]=get.effect(target,{name:'wuzhong'},player,player)/2;
if(player.storage.sbyaoming_status==0) eff[0]*=1.2;
}
if(hs<=ht){
eff[1]=get.effect(target,{name:'guohe_copy2'},player,player);
if(player.storage.sbyaoming_status==1) eff[1]*=1.2;
}
return Math.max.apply(Math,eff);
},
},
},
group:['sbyaoming_damage','sbyaoming_init'],
marktext:'名',
intro:{
name2:'名',
content:'mark',
},
subSkill:{
damage:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
var num=Math.min(trigger.num,4-player.countMark('sbyaoming_damage'));
if(num>0){
player.logSkill('sbyaoming_damage');
player.addMark('sbyaoming',num);
game.delayx();
}
'step 1'
player.chooseTarget(get.prompt('sbyaoming'),lib.skill.sbyaoming.prompt()).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,'sbyaoming',player,player)
});
'step 2'
if(result.bool){
player.useSkill('sbyaoming',result.targets);
}
},
},
init:{
trigger:{
global:'phaseBefore',
player:'enterGame',
},
forced:true,
locked:false,
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0);
},
content:function(){
player.addMark('sbyaoming',2);
},
},
},
},
//手杀荀彧
rejieming:{
audio:2,
trigger:{
player:"damageEnd",
},
direct:true,
content:function (){
"step 0"
event.count=trigger.num;
"step 1"
player.chooseTarget(get.prompt('rejieming'),'令一名角色摸两张牌。然后若其手牌数少于体力上限,你摸一张牌').set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>2){
if((target.maxHp-target.countCards('h'))>2) return 2*att;
return att;
}
return att/3;
});
"step 2"
if(result.bool){
event.current=result.targets[0];
player.logSkill('rejieming',event.current);
player.line(event.current,'thunder');
event.current.draw(2);
event.count--;
}
else event.finish();
"step 3"
if(event.current.countCards('h')<event.current.maxHp){
player.draw();
}
if(event.count>0) event.goto(1);
},
ai:{
maixie:true,
"maixie_hp":true,
effect:{
target:function (card,player,target,current){
if(get.tag(card,'damage')&&target.hp>1){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
var max=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(get.attitude(target,players[i])>0){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
switch(max){
case 0:return 2;
case 1:return 1.5;
case 2:return [1,2];
default:return [0,max];
}
}
if((card.name=='tao'||card.name=='caoyao')&&
target.hp>1&&target.countCards('h')<=target.hp) return [0,0];
},
},
},
},
//沮授
xinjianying:{
audio:'jianying',
@ -5599,7 +6063,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
popup:false,
filter:function(event,player){
return event._gonghuan_player&&player.hp==event._gonghuan_player.hp;
return event._gonghuan_player;
},
content:function(){
player.removeMark('luanchou',player.countMark('luanchou'));
@ -13271,6 +13735,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1;
},
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
@ -16485,7 +16950,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luanchou:'鸾俦',
luanchou_info:'出牌阶段限一次,你可令两名角色获得“姻”标记并清除原有标记。拥有“姻”标记的角色视为拥有技能〖共患〗。',
gonghuan:'共患',
gonghuan_info:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值小于你,则你将伤害转移给自己。此伤害结算结束后,若你与其体力值相等,则你与其移去“姻”标记。',
gonghuan_info:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值小于你,则你将伤害转移给自己。此伤害结算结束后,你与其移去“姻”标记。',
sp_yanghu:'手杀羊祜',
mingfa:'明伐',
mingfa_info:'①结束阶段,你可展示一张牌并记录为“明伐”。②出牌阶段开始时,若“明伐”牌在你的手牌区或装备区,则你可以使用“明伐”牌与一名其他角色拼点。若你赢:你获得对方一张牌并从牌堆中获得一张点数等于“明伐”牌牌面点数-1的牌。若你没赢你本回合不能使用牌指定其他角色为目标。③你的拼点牌亮出后你令此牌的点数+2。',
@ -16725,6 +17190,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_jushou:'手杀沮授',
xinjianying:'渐营',
xinjianying_info:'锁定技。①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
re_xunyu:"手杀荀彧",
rejieming:"节命",
rejieming_info:"当你受到1点伤害后你可以令一名角色摸两张牌。然后若其手牌数小于体力上限则你摸一张牌。",
xin_quancong:'手杀全琮',
sbyaoming:'邀名',
sbyaoming_info:'①游戏开始时你获得2枚“名”。②当你受到1点伤害后若你的“名”少于4枚则你获得一枚“名”。③出牌阶段或当你受到伤害后你可以移除一枚“名”并选择一项⒈弃置一名手牌数不小于你的角色的一张牌。⒉令一名手牌数不大于你的角色摸一张牌。若你上次发动〖邀名③〗时未获得过“名”且你选择的选项和上次不同则你获得一枚“名”。',
ruanhui:'阮慧',
mingcha:'明察',
mingcha_info:'摸牌阶段开始时你亮出牌堆顶的两张牌。若这两张牌中有点数小于7的牌则你可以放弃摸牌并获得这些牌然后你可以获得一名其他角色的随机一张牌。',
jingzhong:'敬重',
jingzhong_info:'弃牌阶段结束时,若你于本阶段内弃置过至少两张黑色牌,则你可以选择一名其他角色并获得如下效果直到其回合结束:每阶段限三次,其于出牌阶段内使用的牌结算结束后,你获得此牌对应的实体牌。',
xin_mamidi:'手杀马日磾',
chengye:'承业',
chengye_info:'锁定技。①其他角色使用的非转化牌结算结束后,或其他角色的装备牌和延时锦囊牌进入弃牌堆后,或有延时锦囊牌因其他角色执行判定阶段的流程而进入弃牌堆后,若你的“六经”有空缺的位置可以置入此牌,则你将此牌置于你武将牌上,填补“六经”的对应位置。②出牌阶段开始时,若你的“六经”没有空缺的位置,则你获得所有“六经”。',
chengye_append:'<span style="font-family: yuanli"><li>《诗经》:伤害类锦囊牌<br><li>《尚书》:基本牌<br><li>《仪礼》:无懈可击<br><li>《易经》:无中生有<br><li>《乐经》:乐不思蜀<br><li>《春秋》:装备牌</span>',
buxu:'补叙',
buxu_backup:'补叙',
buxu_info:'出牌阶段若你的“六经”中有空缺的位置则你可以弃置X+1张牌并选择一种空缺的“六经”。系统从牌堆或弃牌堆中检索一张对应的牌然后你将此牌置于你武将牌上填补“六经”的对应位置。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',

View File

@ -270,6 +270,7 @@ window.noname_character_rank={
'caomao',
'guanning',
'ol_puyuan',
'ns_limi',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -518,6 +519,8 @@ window.noname_character_rank={
'ruiji',
're_liuchen',
'dc_gongsunzan',
'ol_xunyu',
'zhangxuan',
],
bp:[
'chess_diaochan',
@ -791,6 +794,7 @@ window.noname_character_rank={
'sb_huangzhong',
'dc_yanghu',
'dc_gongsunzan',
'caohua',
],
b:[
'diy_feishi',
@ -1024,6 +1028,8 @@ window.noname_character_rank={
'shen_sunquan',
're_jushou',
'dc_huangzu',
'dc_liuyu',
'qinyilu',
],
bm:[
'diy_xizhenxihong',
@ -1184,6 +1190,9 @@ window.noname_character_rank={
'tw_wujing',
'dc_zhuling',
'tw_puyangxing',
'ruanhui',
'xin_mamidi',
'xin_quancong',
],
c:[
'xiahoudun',
@ -1573,6 +1582,9 @@ window.noname_character_rank={
'laiyinger',
'ns_ruanji',
'ns_zanghong',
'caohua',
'ns_limi',
'ol_xunyu',
'key_kano',
'key_haruko',
'key_akiko',
@ -1977,6 +1989,8 @@ window.noname_character_rank={
'dc_yanghu',
're_duji',
're_liuchen',
'dc_liuyu',
'qinyilu',
],
junk:[
'sunshao',

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh:{
refresh_standard:["re_caocao","re_simayi","re_guojia","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong",'re_gongsunzan'],
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
refresh_huo:["ol_sp_zhugeliang","ol_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','ol_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu','ol_lusu'],
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu'],
@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
connect:true,
character:{
ol_xunyu:['male','wei',3,['quhu','oljieming']],
re_liuchen:['male','shu',4,['rezhanjue','reqinwang'],['zhu']],
dc_gongsunzan:['male','qun',4,['reyicong','dcqiaomeng']],
re_duji:['male','wei',3,['reandong','reyingshi']],
@ -101,7 +102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunshangxiang:['female','wu',3,['xiaoji','rejieyin']],
re_zhenji:['female','wei',3,['reluoshen','reqingguo']],
re_zhugeliang:['male','shu',3,['reguanxing','kongcheng']],
re_huaxiong:["male","qun",6,["reyaowu"]],
re_huaxiong:["male","qun",6,["reyaowu","shizhan"]],
re_zhangjiao:['male','qun',3,['xinleiji','xinguidao','xinhuangtian'],['zhu']],
xin_yuji:['male','qun',3,['reguhuo']],
@ -116,7 +117,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_pangde:['male','qun',4,['mashu','rejianchu']],
ol_xuhuang:['male','wei',4,['olduanliang','oljiezi']],
ol_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo","cangzhuo"],[]],
re_xunyu:["male","wei",3,["quhu","rejieming"],[]],
re_dianwei:["male","wei",4,["reqiangxi"],[]],
re_yanwen:["male","qun",4,["reshuangxiong"],[]],
ol_yuanshao:['male','qun',4,['olluanji','olxueyi'],['zhu']],
@ -147,6 +147,103 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//界荀彧
oljieming:{
audio:2,
trigger:{player:['damageEnd','dieAfter']},
direct:true,
forceDie:true,
filter:function(event,player){
if(event.name=='die') return true;
return player.isAlive();
},
content:function(){
'step 0'
event.count=trigger.num||1;
'step 1'
event.count--;
player.chooseTarget(get.prompt2('oljieming'),function(card,player,target){
return target.maxHp>0;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
var draw=Math.min(5,target.maxHp)-target.countCards('h');
if(draw>=0){
if(target.hasSkillTag('nogain')) att/=6;
if(att>2){
return Math.sqrt(draw+1)*att;
}
return att/3;
}
if(draw<-1){
if(target.hasSkillTag('nogain')) att*=6;
if(att<-2){
return -Math.sqrt(1-draw)*att;
}
}
return 0;
});
'step 2'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('oljieming',target);
target.draw(Math.min(5,target.maxHp));
}
else event.finish();
'step 3'
var num=target.countCards('h')-Math.min(5,target.maxHp);
if(num>0) target.chooseToDiscard('h',true,num);
'step 4'
if(event.count>0&&player.isAlive()) event.goto(1);
},
ai:{
expose:0.2,
maixie:true,
maixie_hp:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')&&target.hp>1){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
var max=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(get.attitude(target,players[i])>0){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
switch(max){
case 0:return 2;
case 1:return 1.5;
case 2:return [1,2];
default:return [0,max];
}
}
if((card.name=='tao'||card.name=='caoyao')&&
target.hp>1&&target.countCards('h')<=target.hp) return [0,0];
}
},
}
},
//OL华雄
shizhan:{
audio:2,
enable:'phaseUse',
usable:2,
filterTarget:function(card,player,target){
return target!=player&&target.canUse('juedou',player);
},
content:function(){
target.useCard({name:'juedou',isCard:true},player,'noai');
},
ai:{
order:2,
result:{
player:function(player,target){
return get.effect(player,{name:'juedou',isCard:true},target,player);
},
},
},
},
//刘谌
rezhanjue:{
audio:2,enable:'phaseUse',
@ -3869,7 +3966,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
position:'he',
filterCard:true,
filter:function(event,player){
return player.countCards('h')>0;
return player.countCards('he')>0;
},
check:function(card){
var base=0,player=_status.event.player,suit=get.suit(card,player),added=false,added2=false,added3;
@ -5736,12 +5833,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
position:'he',
filter:function(event,player){
return player.countCards('he',function(card){
return lib.skill.regongji.filterCard(card,player);
})>0;
return player.hasCard(function(card){
return lib.skill.regongji.filterCard(card);
},'eh');
},
filterCard:function(card,player){
return get.type(card,player)!='basic';
return get.type(card)!='basic';
},
filterTarget:function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'he')>0;
@ -8475,66 +8572,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:"将一张黑色牌当无懈可击使用",
check:function (card){return 8-get.value(card)},
},
rejieming:{
audio:2,
trigger:{
player:"damageEnd",
},
direct:true,
content:function (){
"step 0"
event.count=trigger.num;
"step 1"
player.chooseTarget(get.prompt('rejieming'),'令一名角色摸两张牌。然后若其手牌数少于体力上限,你摸一张牌').set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>2){
if((target.maxHp-target.countCards('h'))>2) return 2*att;
return att;
}
return att/3;
});
"step 2"
if(result.bool){
event.current=result.targets[0];
player.logSkill('rejieming',event.current);
player.line(event.current,'thunder');
event.current.draw(2);
event.count--;
}
else event.finish();
"step 3"
if(event.current.countCards('h')<event.current.maxHp){
player.draw();
}
if(event.count>0) event.goto(1);
},
ai:{
maixie:true,
"maixie_hp":true,
effect:{
target:function (card,player,target,current){
if(get.tag(card,'damage')&&target.hp>1){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
var max=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(get.attitude(target,players[i])>0){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
switch(max){
case 0:return 2;
case 1:return 1.5;
case 2:return [1,2];
default:return [0,max];
}
}
if((card.name=='tao'||card.name=='caoyao')&&
target.hp>1&&target.countCards('h')<=target.hp) return [0,0];
},
},
},
},
reshuangxiong:{
trigger:{
player:"phaseDrawBegin1",
@ -11840,7 +11877,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_huaxiong:"界华雄",
"ol_sp_zhugeliang":"界卧龙",
"re_xunyu":"界荀彧",
"re_dianwei":"界典韦",
"re_yanwen":"界颜良文丑",
xin_yuanshao:"手杀袁绍",
@ -11883,8 +11919,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"rehuoji_info":"出牌阶段,你可一张红色牌当作【火攻】使用。",
rekanpo:"看破",
"rekanpo_info":"你可以将一张黑色牌当作【无懈可击】使用。",
rejieming:"节命",
"rejieming_info":"当你受到1点伤害后你可以令一名角色摸两张牌。然后若其手牌数小于体力上限则你摸一张牌。",
reshuangxiong:"双雄",
"reshuangxiong_info":"摸牌阶段,你可以放弃摸牌。若如此做,你展示牌堆顶的两张牌并选择获得其中的一张。然后,你本回合内可以将与此牌颜色不同的一张手牌当做【决斗】使用。当你受到【决斗】造成的伤害时,你可以获得对方于此决斗中打出的所有【杀】",
"reshuangxiong2":"双雄",
@ -12395,6 +12429,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rezhanjue_info:'出牌阶段若你本阶段内因〖战绝〗获得过的牌数小于3则你可以将所有不具有“勤王”标记的手牌当做【决斗】使用。此【决斗】使用结算结束后你摸一张牌。然后所有因此【决斗】受到过伤害的角色也各摸一张牌。',
reqinwang:'勤王',
reqinwang_info:'主公技。出牌阶段限一次,你可以令所有其他蜀势力角色依次选择是否交给你一张【杀】,然后你可以令选择是的角色摸一张牌。',
shizhan:'势斩',
shizhan_info:'出牌阶段限两次,你可以选择一名其他角色。该角色视为对你使用一张【决斗】。',
ol_xunyu:'界荀彧',
oljieming:'节命',
oljieming_info:'当你受到1点伤害后或死亡后你可令一名角色摸X张牌。然后若其手牌数大于X则其将手牌弃置至X张X为其体力上限且至多为5。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -175,6 +175,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.addTempSkill('sbliegong_block');
if(!target.storage.sbliegong_block) target.storage.sbliegong_block=[];
target.storage.sbliegong_block.push([evt.card,storage]);
lib.skill.sbliegong.updateBlocker(target);
},
updateBlocker:function(player){
var list=[],storage=player.storage.sbliegong_block;
if(storage&&storage.length){
for(var i of storage) list.addArray(i[1]);
}
player.storage.sbliegong_blocker=list;
},
ai:{
threaten:3.5,
@ -212,15 +220,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
block:{
mod:{
cardEnabled:function(card,player){
if(!player.storage.sbliegong_block) return;
if(!player.storage.sbliegong_blocker) return;
var suit=get.suit(card);
if(suit=='none') return;
var evt=_status.event;
if(evt.name!='chooseToUse') evt=evt.getParent('chooseToUse');
if(!evt||!evt.respondTo||evt.respondTo[1].name!='sha') return;
for(var i of player.storage.sbliegong_block){
if(i[1].contains(suit)) return false;
}
if(player.storage.sbliegong_blocker.contains(suit)) return false;
},
},
trigger:{
@ -231,7 +237,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
firstDo:true,
charlotte:true,
onremove:true,
onremove:function(player){
delete player.storage.sbliegong_block;
delete player.storage.sbliegong_blocker;
},
filter:function(event,player){
if(!event.card||!player.storage.sbliegong_block) return false;
for(var i of player.storage.sbliegong_block){
@ -247,6 +256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
if(!storage.length) player.removeSkill('sbliegong_block');
else lib.skill.sbliegong.updateBlocker(target);
},
},
count:{
@ -457,7 +467,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!card||card.name!='sha') return false;
var evtx=evt.getParent('useCard');
return evtx.card==card&&evtx.getParent()==event;
})) player.recover();
})){
target.draw();
player.recover();
}
},
},
},
@ -466,7 +479,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmingxuan:'瞑昡',
spmingxuan_info:'锁定技。出牌阶段开始时你须选择至多X张花色各不相同的手牌X为未选择过选项一的角色将这些牌随机交给这些角色中的等量角色。然后这些角色依次选择一项⒈对你使用一张【杀】。⒉交给你一张牌然后你摸一张牌。',
spxianchou:'陷仇',
spxianchou_info:'当你受到有来源的伤害后,你可选择一名不为伤害来源的其他角色。该角色可以弃置一张牌,然后视为对伤害来源使用一张【杀】(无距离限制)。若其因此【杀】造成了伤害,则你回复1点体力。',
spxianchou_info:'当你受到有来源的伤害后,你可选择一名不为伤害来源的其他角色。该角色可以弃置一张牌,然后视为对伤害来源使用一张【杀】(无距离限制)。若其因此【杀】造成了伤害,则其摸一张牌,你回复1点体力。',
liucheng:'刘赪',
splveying:'掠影',
splveying_info:'锁定技。①每回合限两次当你使用【杀】指定目标后你获得一个“椎”。②当你使用的【杀】结算结束后若你的“椎”数大于1则你弃置两个“椎”然后弃置所有目标角色的各一张手牌。',

View File

@ -4887,7 +4887,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.current.animate('target');
event.current.chooseToUse('乱武:使用一张杀或失去一点体力',function(card){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments)
return lib.filter.cardEnabled.apply(this,arguments)
},function(card,player,target){
if(player==target) return false;
var dist=get.distance(player,target);
@ -4898,10 +4898,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false;
}
}
return lib.filter.filterTarget.apply(this,arguments)
return lib.filter.filterTarget.apply(this,arguments);
}).set('ai2',function(){
return get.effect_use.apply(this,arguments)+0.01;
});
}).set('addCount',false);
"step 2"
if(result.bool==false) event.current.loseHp();
event.current=event.current.next;
@ -5256,13 +5256,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
quhu:{
audio:2,
audioname:['re_xunyu'],
audioname:['re_xunyu','ol_xunyu'],
enable:'phaseUse',
usable:1,
filter:function(event,player){
if(player.countCards('h')==0) return false;
return game.hasPlayer(function(current){
return current.hp>player.hp&&current.countCards('h');
return current.hp>player.hp&&player.canCompare(current);
});
},
filterTarget:function(card,player,target){
@ -7279,7 +7279,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['xin_yuji','re_yuji','yuji'],
zhangjiao:['re_zhangjiao','sp_zhangjiao','zhangjiao'],
dianwei:['dianwei','re_dianwei'],
xunyu:['re_xunyu','xunyu'],
xunyu:['ol_xunyu','re_xunyu','xunyu'],
sp_zhugeliang:['ol_sp_zhugeliang','re_sp_zhugeliang','sp_zhugeliang'],
pangtong:['ol_pangtong','re_pangtong','pangtong'],
re_jsp_pangtong:['re_jsp_pangtong','sp_pangtong'],

View File

@ -1708,36 +1708,40 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:['phaseZhunbeiBegin','damageEnd']},
direct:true,
filter:function(event,player){
var storage1=player.getStorage('luochong_round'),storage2=player.getStorage('luochong');
var storage1=player.storage.luochong_round,storage2=player.getStorage('luochong');
if(!storage1) storage1=[[],[]];
for(var i=0;i<4;i++){
if(!storage1.contains(i)&&!storage2.contains(i)&&(i!=2||game.hasPlayer(function(current){
return current!=player&&current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'he')
}))) return true;
if(!storage1[0].contains(i)&&!storage2.contains(i)&&game.hasPlayer(function(current){
return !storage1[1].contains(current)&&lib.skill.luochong.filterx[i](current);
})) return true;
}
return false;
},
filterx:[
(target)=>target.isDamaged(),
()=>true,
(target)=>target.countCards('he')>0,
()=>true,
],
onremove:true,
content:function(){
'step 0'
var list=[];
var choiceList=[
'令一名角色回复1点体力。',
'令一名其他角色失去1点体力。',
'弃置一名其他角色的至多两张牌。',
'令一名角色失去1点体力。',
'令一名角色弃置两张牌。',
'令一名角色摸两张牌。',
];
var storage1=player.getStorage('luochong_round'),storage2=player.getStorage('luochong');
var storage1=player.storage.luochong_round,storage2=player.getStorage('luochong');
if(!storage1) storage1=[[],[]];
for(var i=0;i<4;i++){
if(storage2.contains(i)){
choiceList[i]=('<span style="text-decoration: line-through; opacity:0.5; ">'+choiceList[i]+'</span>');
}
else if(storage1.contains(i)||(i==2&&!game.hasPlayer(function(current){
return current!=player&&current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'he')
}))){
else if(storage1[0].contains(i)||!game.hasPlayer(function(current){
return !storage1[1].contains(current)&&lib.skill.luochong.filterx[i](current);
})){
choiceList[i]=('<span style="opacity:0.5;">'+choiceList[i]+'</span>');
}
else list.push('选项'+get.cnNumber(i+1,true))
@ -1746,6 +1750,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseControl(list).set('prompt',get.prompt('luochong')).set('choiceList',choiceList).set('ai',function(){
var player=_status.event.player;
var list=_status.event.controls.slice(0);
var listx=(player.storage.luochong_round||[[],[]])[1];
var gett=function(choice){
if(choice=='cancel2') return 0.1;
var max=0,func={
@ -1763,7 +1768,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
max=Math.max(max,get.effect(target,{name:'wuzhong'},player,player));
},
}[choice];
game.countPlayer(func);
game.countPlayer(function(current){
if(!listx.contains(current)) func(current);
});
return max;
};
return list.sort(function(a,b){
@ -1774,30 +1781,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.control!='cancel2'){
var index=['选项一','选项二','选项三','选项四'].indexOf(result.control);
event.index=index;
var listx=(player.storage.luochong_round||[[],[]])[1];
var list=[
['选择一名角色令其回复1点体力',function(target){
var player=_status.event.player;
return get.recoverEffect(target,player,player);
}],
['选择一名其他角色令其失去1点体力',function(target){
['选择一名角色令其失去1点体力',function(target){
return get.effect(target,{name:'losehp'},player,player);
},lib.filter.notMe],
['选择一名其他角色,弃置其至多两张牌',function(target){
}],
['选择一名角色,令其弃置两张牌',function(target){
var player=_status.event.player;
return get.effect(target,{name:'guohe_copy2'},player,player)*Math.sqrt(Math.min(2,target.countCards('he')));
},function(card,player,target){
return target!=player&&target.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,target);
},'he');
}],
['选择一名角色,令其摸两张牌',function(target){
var player=_status.event.player;
return get.effect(target,{name:'wuzhong'},player,player);
}]
][index];
var next=player.chooseTarget(list[0],true);
var targets=game.filterPlayer(function(current){
return !listx.contains(current)&&lib.skill.luochong.filterx[event.index](current);
})
var next=player.chooseTarget(list[0],true,function(card,player,target){
return _status.event.targets.contains(target);
});
next.set('targets',targets);
next.set('ai',list[1]);
if(list.length>2) next.set('filterTarget',list[2]);
}
else event.finish();
'step 2'
@ -1806,7 +1815,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('luochong',target);
if(player!=target) player.addExpose(0.2);
player.addTempSkill('luochong_round','roundStart');
player.markAuto('luochong_round',[event.index]);
if(!player.storage.luochong_round) player.storage.luochong_round=[[],[]];
player.storage.luochong_round[0].push(event.index);
player.storage.luochong_round[1].push(target);
switch(event.index){
case 0:
target.recover();
@ -1815,7 +1826,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.loseHp();
break;
case 2:
player.discardPlayerCard(target,true,'he',[1,2]);
target.chooseToDiscard(true,'he',2);
break;
case 3:
target.draw(2);
@ -1839,14 +1850,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
var num=1-player.hp;
if(num>0) player.recover(num);
'step 1'
//var num=1-player.hp;
//if(num>0) player.recover(num);
var list=[];
var choiceList=[
'令一名角色回复1点体力。',
'令一名其他角色失去1点体力。',
'弃置一名其他角色的至多两张牌。',
'令一名角色失去1点体力。',
'令一名角色弃置两张牌。',
'令一名角色摸两张牌。',
];
var storage2=player.getStorage('luochong');
@ -1864,14 +1874,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return 0;
});
'step 2'
'step 1'
var index=['选项一','选项二','选项三','选项四'].indexOf(result.control);
player.markAuto('luochong',[index]);
game.log(player,'移去了','#g【落宠】','的','#y'+[
'令一名角色回复1点体力',
'令一名其他角色失去1点体力',
'弃置一名其他角色的至多两张牌。',
'令一名角色摸两张牌',
'令一名角色回复1点体力',
'令一名角色失去1点体力',
'令一名角色弃置两张牌',
'令一名角色摸两张牌',
][index],'的选项');
},
},
@ -14380,7 +14390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'phaseUseBegin'},
filter:function(event,player){
return /*(get.mode()!='guozhan'||event.player!=player)&&*/event.player.isAlive()&&player.countCards('h')>0;
return /*(get.mode()!='guozhan'||event.player!=player)&&*/event.player.isAlive()&&player.countCards('h')>0&&event.player.hasUseTarget({name:'jiu'},null,true);
},
direct:true,
preHidden:true,
@ -17551,11 +17561,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
luochong:function(player){
var storage=player.getStorage('luochong');
var str='准备阶段开始时/当你受到伤害后,你可选择本轮内未选择过的一项'
var str='准备阶段开始时/当你受到伤害后,你可选择本轮内未选择过的一项(每名角色每轮限选一次)'
var choiceList=[
'⒈令一名角色回复1点体力。',
'⒉令一名其他角色失去1点体力。',
'⒊弃置一名其他角色的至多两张牌。',
'⒉令一名角色失去1点体力。',
'⒊令一名角色弃置两张牌。',
'⒋令一名角色摸两张牌。'
];
for(var i=0;i<4;i++){
@ -18224,9 +18234,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fanxiang_info:'觉醒技准备阶段开始时若场上有已受伤且你发动过〖良助〗的选项二的角色则你加1点体力上限并回复1点体力失去技能〖良助〗并获得技能〖枭姬〗',
xunzhi_info:'准备阶段开始时若你的上家和下家与你的体力值均不相等你可以失去1点体力。若如此做你本局内手牌上限+2。',
yawang_info:'锁定技摸牌阶段开始时你改为摸X张牌然后你于本回合的出牌阶段内至多使用X张牌X为与你体力值相等的角色数',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌直到其下个回合开始。',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌直到其下个回合开始。',
danlao:'啖酪',
danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌,令此牌对你无效。',
danlao_info:'当你成为【杀】或普通锦囊牌的目标后若此牌的目标数大于1你可以摸一张牌,令此牌对你无效。',
gongao:'功獒',
zhuiji:'追击',
chouhai:'仇海',
@ -18525,9 +18535,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sppanqin_info:'出牌阶段或弃牌阶段结束时,你可将你于本阶段内弃置且位于弃牌堆的所有牌当做【南蛮入侵】使用。然后若此牌对应的实体牌数不大于此牌的目标数,则你执行并移除〖蛮王〗中的最后一个选项。',
tengfanglan:'滕芳兰',
luochong:'落宠',
luochong_info:'准备阶段开始时/当你受到伤害后,你可选择本轮内未选择过的一项⒈令一名角色回复1点体力。⒉令一名其他角色失去1点体力。⒊弃置一名其他角色的至多两张牌。⒋令一名角色摸两张牌。',
luochong_info:'准备阶段开始时/当你受到伤害后,你可选择本轮内未选择过的一项(每名角色每轮限选一次)⒈令一名角色回复1点体力。⒉令一名角色失去1点体力。⒊令一名角色弃置两张牌。⒋令一名角色摸两张牌。',
aichen:'哀尘',
aichen_info:'锁定技。当你进入濒死状态时若〖落宠〗中的剩余选项数大于1则你将体力回复至1点然后选择移去〖落宠〗中的一个选项。',
aichen_info:'锁定技。当你进入濒死状态时若〖落宠〗中的剩余选项数大于1则你选择移去〖落宠〗中的一个选项。',
weizi:'卫兹',
yuanzi:'援资',
yuanzi_info:'每轮限一次。其他角色的准备阶段开始时,你可将所有手牌交给该角色。若如此做,当该角色于本回合内造成伤害后,若其手牌数不小于你,则你摸两张牌。',

View File

@ -4,6 +4,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
caohua:['female','wei',3,['caiyi','guili']],
dc_liuyu:['male','qun',3,['dcsuifu','dcpijing']],
qinyilu:['male','qun',3,['piaoping','tuoxian','chuaili']],
zhangxuan:['female','wu',4,['tongli','shezang']],
dc_yanghu:['male','wei',3,['dcdeshao','dcmingfa']],
dc_huangzu:['male','qun',4,['dcjinggong','dcxiaojuan']],
caimaozhangyun:['male','wei',4,['lianzhou','jinglan']],
@ -138,25 +142,598 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
sp_sbfm:["lisu","xinpi","zhangwen"],
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou","xinping","hanmeng"],
sp_qihuan:['liubian','zhaozhong','re_hejin'],
sp_binglin:['re_niujin',"sp_mifangfushiren",'wufan'],
sp_qihuan:['zhaozhong','re_hejin'],
sp_binglin:['re_niujin',"sp_mifangfushiren",'licaiwei'],
sp_danqi:['dufuren','qinyilu'],
sp_fenghuo:['re_nanhualaoxian','tongyuan','zhangning','re_pangdegong'],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie'],
sp_caizijiaren:['re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue'],
sp_zhilan:['liuyong','wanniangongzhu','zhanghu','lvlingqi'],
sp_guixin:['re_kanze','re_chendeng'],
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi'],
sp_huangjin:['liuhong','zhujun','re_hansui'],
sp_caizijiaren:['re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue','zhangxuan','tengyin','zhangyao'],
sp_zhilan:['liuyong','wanniangongzhu','zhanghu','lvlingqi','tenggongzhu','dc_gaolan'],
sp_guixin:['re_kanze','re_chendeng','caimaozhangyun'],
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu'],
sp_huangjin:['liuhong','zhujun','re_hansui',"xushao"],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_xiaohu:['haomeng','yanfuren'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei','dc_luotong','dc_zhuling','tengyin','dc_gaolan','guanning','caomao','laiyinger','dc_huangchengyan','tenggongzhu','yanrou','caimaozhangyun','zhangyao','dc_huangzu'],
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong'],
sp2_shengun:["puyuan","guanlu","gexuan",'wufan','re_zhangbao'],
sp2_huangjia:['caomao','liubian','dc_liuyu'],
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger'],
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan'],
}
},
skill:{
//蓝曹华
caiyi:{
audio:2,
zhuanhuanji:true,
trigger:{player:'phaseJieshuBegin'},
direct:true,
onremove:function(player){
delete player.storage.caiyi;
delete player.storage.caiyi_info;
},
filter:function(event,player){
if(player.storage.caiyi_info){
if(player.storage.caiyi_info[player.storage.caiyi?1:0].length>=4) return false;
}
return true;
},
choices:[[
'回复X点体力',
'摸X张牌',
'复原武将牌',
'随机执行一个已经移除过的选项',
],[
'受到X点伤害',
'弃置X张牌',
'翻面并横置',
'随机执行一个已经移除过的选项',
]],
filterx:[[
(player)=>player.isDamaged(),
()=>true,
(player)=>player.isTurnedOver()||player.isLinked(),
()=>true,
],[
()=>true,
(player)=>player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'caiyi');
},'he'),
(player)=>!player.isTurnedOver()||!player.isLinked(),
()=>true,
]],
content:function(){
'step 0'
if(!player.storage.caiyi_info) player.storage.caiyi_info=[[],[]];
var index=player.storage.caiyi?1:0;
event.index=index;
var list=player.storage.caiyi_info[index],choices=lib.skill.caiyi.choices[index],numbers=['⒈',';⒉',';⒊',';⒋'];
event.num=4-list.length;
var str='令一名角色选择执行其中一项:';
for(var i=0;i<4;i++){
if(list.contains(i)) continue;
if(i==3&&!list.length) continue;
str+=numbers.shift();
str+=choices[i];
}
str+='。';
str=str.replace(/X/g,get.cnNumber(event.num));
player.chooseTarget(get.prompt('caiyi')+'(当前状态:'+(index?'阳':'阴')+'',str).set('ai',function(target){
var player=_status.event.player;
return (player.storage.caiyi?-1:1)*get.attitude(player,target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('caiyi',target);
player.changeZhuanhuanji('caiyi');
event.goto(event.index==1?5:2);
}
else event.finish();
'step 2'
var list=[],str=get.cnNumber(num);
var choiceList=[
'回复'+str+'点体力。',
'摸'+str+'张牌。',
'将武将牌翻至正面且重置。',
'随机执行一个已经被移除的选项。',
];
var storage=player.storage.caiyi_info[event.index];
for(var i=0;i<4;i++){
if(storage.contains(i)){
choiceList[i]=('<span style="text-decoration: line-through; opacity:0.5; ">'+choiceList[i]+'</span>');
}
else if(!lib.skill.caiyi.filterx[event.index][i](target)||(i==3&&!storage.length)){
choiceList[i]=('<span style="opacity:0.5;">'+choiceList[i]+'</span>');
}
else list.push('选项'+get.cnNumber(i+1,true))
}
if(!list.length){
event.finish();
return;
}
target.chooseControl(list).set('choiceList',choiceList).set('ai',function(){
var evt=_status.event,player=evt.player;
var list=evt.controls.slice(0);
var gett=function(choice){
if(choice=='cancel2') return 0.1;
var max=0,func={
选项一:function(current){
max=get.recoverEffect(current,player,player)*Math.min(evt.getParent().num,player.getDamagedHp());
},
选项二:function(target){
max=get.effect(target,{name:'wuzhong'},player,player)/2*evt.getParent().num;
},
选项三:function(target){
if(player.isTurnedOver()) max+=25;
if(player.isLinked()) max+=get.effect(player,{name:'tiesuo'},player,player);
},
选项四:function(target){
max=3;
},
}[choice];
func(player);
return max;
};
return list.sort(function(a,b){
return gett(b)-gett(a);
})[0];
});
'step 3'
var index2=['选项一','选项二','选项三','选项四'].indexOf(result.control);
player.storage.caiyi_info[event.index].push(index2);
if(index2==3){
var list=player.storage.caiyi_info[event.index].filter(function(i){
return i!=3&&lib.skill.caiyi.filterx[event.index][i](target);
});
if(!list.length){
event.finish();
return;
}
index2=list.randomGet();
}
switch(index2){
case 0:
target.recover(num);
break;
case 1:
target.draw(num);
break;
case 2:
!target.isTurnedOver()||target.turnOver();
break;
}
if(index2!=2) event.finish();
'step 4'
!target.isLinked()||target.link();
event.finish();
'step 5'
var list=[],str=get.cnNumber(num);
var choiceList=[
'受到'+str+'点伤害。',
'弃置'+str+'张牌。',
'将武将牌翻至背面并横置。',
'随机执行一个已经被移除的选项。',
];
var storage=player.storage.caiyi_info[event.index];
for(var i=0;i<4;i++){
if(storage.contains(i)){
choiceList[i]=('<span style="text-decoration: line-through; opacity:0.5; ">'+choiceList[i]+'</span>');
}
else if(!lib.skill.caiyi.filterx[event.index][i](target)||(i==3&&!storage.length)){
choiceList[i]=('<span style="opacity:0.5;">'+choiceList[i]+'</span>');
}
else list.push('选项'+get.cnNumber(i+1,true))
}
if(!list.length){
event.finish();
return;
}
target.chooseControl(list).set('choiceList',choiceList).set('ai',function(){
var evt=_status.event,player=evt.player;
var list=evt.controls.slice(0);
var gett=function(choice){
if(choice=='cancel2') return 0.1;
var max=0,func={
选项一:function(current){
max=get.effect(current,{name:'damage'},player,player)*evt.getParent().num;
},
选项二:function(target){
max=get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(player.countCards('he'),evt.getParent().num);
},
选项三:function(target){
if(!player.isTurnedOver()) max-=5;
if(!player.isLinked()) max+=get.effect(player,{name:'tiesuo'},player,player);
},
选项四:function(target){
max=-3;
},
}[choice];
func(player);
return max;
};
return list.sort(function(a,b){
return gett(b)-gett(a);
})[0];
});
'step 6'
var index2=['选项一','选项二','选项三','选项四'].indexOf(result.control);
player.storage.caiyi_info[event.index].push(index2);
if(index2==3){
var list=player.storage.caiyi_info[event.index].filter(function(i){
return i!=3&&lib.skill.caiyi.filterx[event.index][i](target);
});
if(!list.length){
event.finish();
return;
}
index2=list.randomGet();
}
switch(index2){
case 0:
target.damage(num);
break;
case 1:
target.chooseToDiscard(num,true,'he');
break;
case 2:
target.isTurnedOver()||target.turnOver();
break;
}
if(index2!=2) event.finish();
'step 7'
target.isLinked()||target.link();
event.finish();
},
mark:true,
marktext:'☯',
intro:{
content:function(storage){
if(storage) return '转换技。结束阶段你可令一名角色选择并执行一项然后移除此选项⒈受到X点伤害。⒉弃置X张牌。⒊翻面并横置。⒋随机执行一个已经移除过的阳选项。X为该阴阳态剩余选项的数量。';
return '转换技。结束阶段你可令一名角色选择并执行一项然后移除此选项⒈回复X点体力。⒉摸X张牌⒊复原武将牌。⒋随机执行一个已经移除过的阴选项。⒋随机执行一个已经移除过的阳选项。X为该阴阳态剩余选项的数量。';
},
},
},
guili:{
audio:2,
trigger:{player:'phaseBegin'},
forced:true,
locked:false,
filter:function(event,player){
return player.phaseNumber==1&&game.hasPlayer((current)=>current!=player);
},
content:function(){
'step 0'
player.chooseTarget(lib.filter.notMe,true,'请选择【归离】的目标',lib.translate.guili_info).set('ai',function(target){
return -get.threaten(target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
game.log(player,'选择了',target);
player.storage.guili_insert=target;
player.addSkill('guili_insert');
game.delayx();
}
},
onremove:true,
subSkill:{
insert:{
trigger:{global:'phaseAfter'},
forced:true,
charlotte:true,
logTarget:'player',
filter:function(event,player){
if(event.player!=player.storage.guili_insert) return false;
if(event.player.getHistory('sourceDamage').length>0) return false;
var history=event.player.actionHistory;
if(history[history.length-1].isRound) return true;
for(var i=history.length-2;i>=0;i--){
if(history[i].isMe) return false;
if(history[i].isRound) return true;
}
return false;
},
content:function(){
player.insertPhase();
},
},
},
},
//刘虞
dcsuifu:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){
if(player==event.player||!event.player.countCards('h')) return false;
var num=0;
game.countPlayer(function(current){
if(current==player||current.getSeatNum()==1){
current.getHistory('damage',function(evt){
num+=evt.num;
});
}
});
return num>=2;
},
logTarget:'player',
check:function(event,player){
return get.attitude(player,event.player)<=0;
},
content:function(){
'step 0'
var target=trigger.player,cards=target.getCards('h');
target.lose(cards,ui.cardPile,'insert');
target.$throw(cards.length);
game.updateRoundNumber();
game.log(player,'将',target,'的',get.cnNumber(cards.length),'张手牌置于牌堆顶');
'step 1'
game.delayx();
player.chooseUseTarget({name:'wugu',isCard:true},true);
},
},
dcpijing:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget([1,game.countPlayer()],get.prompt('dcpijing'),'令任意名角色获得技能〖自牧〗').set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
var targets=result.targets;
targets.add(player);
targets.sortBySeat();
player.logSkill('dcpijing',targets);
game.countPlayer(function(current){
if(!targets.contains(current)) current.removeSkill('dczimu');
else current.addSkill('dczimu');
});
game.delayx();
}
},
derivation:'dczimu',
},
dczimu:{
audio:2,
trigger:{player:'damageEnd'},
forced:true,
mark:true,
logTarget:function(event,player){
return game.filterPlayer(function(current){
return current!=player&&current.hasSkill('dczimu',null,null,false);
}).sortBySeat();
},
content:function(){
'step 0'
var list=game.filterPlayer(function(current){
return current!=player&&current.hasSkill('dczimu',null,null,false);
});
if(list.length>0){
if(list.length==1) list[0].draw();
else{
game.asyncDraw(list);
event.delay=true;
}
}
'step 1'
player.removeSkill('dczimu');
if(event.delay) game.delayx();
},
marktext:'牧',
intro:{content:'锁定技。当你受到伤害后,你令所有拥有〖自牧〗的其他角色各摸一张牌,然后你失去〖自牧〗。'},
},
//秦宜禄
piaoping:{
audio:2,
trigger:{player:'useCard'},
forced:true,
zhuanhuanji:true,
filter:function(event,player){
return !player.hasSkill('piaoping_blocker',null,null,false);
},
content:function(){
player.changeZhuanhuanji('piaoping');
var num=Math.min(player.hp,player.getHistory('useSkill',function(evt){
return evt.skill=='piaoping';
}).length);
if(num<=0) return;
if(player.storage.piaoping==true) player.draw(num);
else if(player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'piaoping');
},'he')){
game.delayx();
player.chooseToDiscard(true,'he',num);
}
},
mark:true,
marktext:'☯',
intro:{
content:function(storage){
if(storage) return '转换技锁定技。当你使用一张牌时你弃置X张牌。X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值';
return '转换技锁定技。当你使用一张牌时你摸X张牌。X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值';
},
},
subSkill:{blocker:{charlotte:true}},
},
tuoxian:{
audio:2,
ai:{combo:'piaoping'},
trigger:{player:'loseAfter'},
marktext:'栗',
filter:function(event,player){
return event.type=='discard'&&event.getParent(3).name=='piaoping'&&player.countMark('tuoxian')>0&&event.cards.filterInD('d').length>0;
},
direct:true,
content:function(){
'step 0'
event.cards=trigger.cards.filterInD('d');
player.chooseTarget(lib.filter.notMe,get.prompt('tuoxian'),'令一名其他角色获得'+get.translation(event.cards)).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(att<0) return 0;
if(target.hasSkillTag('nogain')) att/=10;
return att*Math.pow(1+target.countCards('he'),0.25);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('tuoxian',target);
player.removeMark('tuoxian',1);
target.gain(cards,'gain2');
}
else event.finish();
'step 2'
target.chooseControl().set('choiceList',[
'弃置区域内的'+get.cnNumber(cards.length)+'张牌',
'令'+get.translation(player)+'的〖漂萍〗于本回合内失效',
]).set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().player;
if(player.hasCard(function(card){
return get.effect(player,{name:card.viewAs||card.name},player,player)<0;
},'j')||player.hasCard(function(card){
return get.value(card,player)<=0;
})) return 0;
if(get.attitude(player,target)<=0||!target.isPhaseUsing()) return 1;
if(!target.needsToDiscard()&&!target.hasCard(function(card){
return !target.hasValueTarget(card,null,true);
},'hs')) return 1;
return 0;
});
'step 3'
if(result.index==0){
if(target.countCards('j')>0) target.discardPlayerCard(target,cards.length,true,'hej');
else target.chooseToDiscard('he',true,cards.length);
}
else player.addTempSkill('piaoping_blocker');
},
intro:{name2:'栗',content:'mark'},
},
chuaili:{
audio:2,
trigger:{target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
if(player==event.player||get.color(event.card)!='black') return false;
if(!player.hasSkill('piaoping',null,null,false)) return false;
return player.storage.piaoping==true||!player.hasSkill('chuaili_blocker',null,null,false);
},
content:function(){
if(player.storage.piaoping==true){
player.changeZhuanhuanji('piaoping');
}
else{
player.addMark('tuoxian',1);
player.addTempSkill('chuaili_blocker');
}
game.delayx();
},
ai:{combo:'piaoping'},
subSkill:{blocker:{charlotte:true}},
},
//张嫙
tongli:{
audio:2,
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
if(!event.isFirstTarget||(event.card.storage&&event.card.storage.tongli)) return false;
var type=get.type(event.card);
if(type!='basic'&&type!='trick') return false;
var hs=player.getCards('h');
if(!hs.length) return false;
var evt=event.getParent('phaseUse');
if(!evt||evt.player!=player) return false;
var num1=player.getHistory('useCard',function(evtx){
if(evtx.getParent('phaseUse')!=evt) return false;
return !evtx.card.storage||!evtx.card.storage.tongli;
}).length;
if(hs.length<num1) return false;
var list=[];
for(var i of hs) list.add(get.suit(i,player));
return list.length==num1;
},
prompt2:function(event,player){
var evt=event.getParent('phaseUse');
var num=player.getHistory('useCard',function(evtx){
if(evtx.getParent('phaseUse')!=evt) return false;
return !evtx.card.storage||!evtx.card.storage.tongli;
}).length;
var str='视为额外使用'+get.cnNumber(num)+'张'
if(event.card.name=='sha'&&event.card.nature) str+=get.translation(event.card.nature);
return (str+'【'+get.translation(event.card.name)+'】');
},
content:function(){
player.addTempSkill('tongli_effect');
var evt=trigger.getParent('phaseUse');
var num=player.getHistory('useCard',function(evtx){
if(evtx.getParent('phaseUse')!=evt) return false;
return !evtx.card.storage||!evtx.card.storage.tongli;
}).length;
trigger.getParent().tongli_effect=[{
name:trigger.card.name,
nature:trigger.card.nature,
isCard:true,
storage:{tongli:true},
},num];
},
subSkill:{
effect:{
trigger:{player:'useCardAfter'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.tongli_effect!=undefined;
},
content:function(){
'step 0'
event.card=trigger.tongli_effect[0];
event.count=trigger.tongli_effect[1];
'step 1'
event.count--;
for(var i of trigger.targets){
if(!i.isIn()||!player.canUse(card,i,false)) return;
}
if(trigger.addedTarget&&!trigger.addedTarget.isIn()) return;
if(trigger.addedTargets&&trigger.addedTargetfs.length){
for(var i of trigger.addedTargets){
if(!i.isIn()) return;
}
}
var next=player.useCard(get.copy(card),trigger.targets);
if(trigger.addedTarget) next.addedTarget=trigger.addedTarget;
if(trigger.addedTargets&&trigger.addedTargets.length) next.addedTargets=trigger.addedTargets.slice(0);
if(event.count>0) event.redo();
},
},
},
},
shezang:{
audio:2,
round:1,
trigger:{global:'dying'},
frequent:true,
filter:function(event,player){
return event.player==player||player==_status.currentPhase;
},
content:function(){
var cards=[];
for(var i of lib.suit){
var card=get.cardPile2(function(card){
return get.suit(card,false)==i;
});
if(card) cards.push(card);
}
if(cards.length) player.gain(cards,'gain2');
},
},
//羊祜
dcdeshao:{
audio:2,
@ -271,8 +848,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card=player.storage.dcmingfa_info[0];
delete player.storage.dcmingfa_info;
event.card=card;
event.count=Math.min(5,target.countCards('h'));
if(event.count<=0) event.goto(2);
event.count=Math.max(1,Math.min(5,target.countCards('h')));
if(!event.player.isIn()) event.goto(2);
'step 1'
event.count--;
if(target.isIn()&&lib.filter.targetEnabled2(card,player,target)){
@ -619,7 +1196,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.count--;
var suits=lib.suit.slice(0),cards=player.getExpansions('yuanyu');
for(var i of cards) suits.remove(get.suit(i,false));
var next=target.chooseCard('h',true,'将一张手牌置于'+get.translation(target)+'的武将牌上');
var next=target.chooseCard('h',true,'将一张手牌置于'+get.translation(player)+'的武将牌上');
next.set('suits',suits);
next.set('ai',function(card){
var val=get.value(card),evt=_status.event;
@ -4034,7 +4611,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
trigger.player.gain(moved[1],'gain2');
if(moved[2].length) player.gain(moved[2],'gain2');
game.updateRoundNumber();
}
},
mark:true,
@ -5035,8 +5611,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
player.gain(result.links,'gain2');
}
'step 2'
game.updateRoundNumber();
},
},
nhyanzheng:{
@ -7753,7 +8327,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.finish();
'step 2'
for(var i of cards){
if(!(('hejsd').includes(get.position(i,true)))){
if(!(('hejsdx').includes(get.position(i,true)))){
i.fix();
ui.cardPile.appendChild(i);
}
@ -8558,7 +9132,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(card2) cards.push(card2);
if(cards.length) player.gain(cards,'gain2');
'step 1'
game.updateRoundNumber();
player.chooseControl('red','black').set('prompt','偏宠:请选择一种颜色。直至你的下回合开始时,失去该颜色的一张牌后,从牌堆获得另一种颜色的一张牌。').set('ai',function(){
var red=0,black=0;
var player=_status.event.player;
@ -8615,9 +9188,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else break;
}
if(cards.length) player.gain(cards,'gain2');
else event.finish();
'step 1'
game.updateRoundNumber();
},
mark:true,
intro:{
@ -8756,7 +9326,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
if(card) player.chooseUseTarget(card,true).nopopup=true;
'step 2'
game.updateRoundNumber();
event.num++;
if(event.num<=5&&target.isAlive()&&player.countCards('e')<target.countCards('e')) event.goto(1);
},
@ -10027,9 +10596,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
if(cards.length) target.gain(cards,'gain2','log');
else event.finish();
'step 2'
game.updateRoundNumber();
},
ai:{
order:10,
@ -10199,9 +10765,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
if(cards.length) player.gain(cards,'gain2','log');
}
else event.finish();
"step 2"
game.updateRoundNumber();
},
},
moying2:{},
@ -11096,8 +11659,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
player.gain(list,'gain2');
'step 3'
game.updateRoundNumber();
},
},
//王双
@ -15435,6 +15996,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tenggongzhu:'滕公主名讳不详三国人物吴大帝孙权之女。一说为养女生父为孙权堂弟孙奂。黄武年间222年—228年以公主身份下嫁功臣滕胄之子滕胤当时滕胤年仅20岁。滕胤皮肤白皙容貌俊美每逢入朝大臣们没有不惊叹称羡的。滕胤仕官后上书言及时局又对政策多有匡弼。孙权对公主也特别宠爱因为滕胤的缘故又格外增加对公主的赏赐又几次探望慰劳。少帝孙亮时期孙綝以宗室身份独揽大权作恶多端引发群臣不满。五凤三年256年滕胤与连襟吕据密谋推翻孙綝事败遭到夷三族 。公主则被亲兄孙壹救出,携其逃亡曹魏。',
zhangyao:'张美人,三国东吴末帝孙皓后妃,张布之女。另有张布女,张美人姊被孙皓立为左夫人。《吴书五妃嫔传第五》:江表传曰:皓以张布女为美人,有宠,皓问曰:“汝父所在?”答曰:“贼以杀之。”皓大怒,棒杀之。后思其颜色,使巧工刻木作美人形象,恒置座侧。问左右:“布复有女否?”答曰:“布大女适故卫尉冯朝子纯。”即夺纯妻入宫,大有宠,拜为左夫人,昼夜与夫人房宴,不听朝政,使尚方以金作华燧、步摇、假髻以千数。令宫人著以相扑,朝成夕败,辄出更作,工匠因缘偷盗,府藏为空。会夫人死,皓哀愍思念,葬于苑中,大作冢,使工匠刻柏作木人,内冢中以为兵卫,以金银珍玩之物送葬,不可称计。已葬之后,皓治丧於内,半年不出。国人见葬太奢丽,皆谓皓已死,所葬者是也。皓舅子何都颜状似皓,云都代立。临海太守奚熙信讹言,举兵欲还诛都,都叔父植时为备海督,击杀熙,夷三族,讹言乃息,而人心犹疑。',
yanrou:'阎柔(生卒年不详),燕国广阳(今北京市附近)人。三国时期曹魏名将。年少时曾被乌丸、鲜卑俘虏,后来却得到他们的信任。刘虞死后,阎柔被鲜于辅等推举为乌丸司马,联系鲜卑为刘虞报仇,和公孙瓒对抗。在官渡之战时归曹操,拜护乌丸校尉,对曹操讨伐乌丸有功,赐爵关内侯。曹操待其如子,曹丕也视其如亲兄弟,阎柔坐镇北方,统帅幽州兵马,抗击胡人的入侵。曹丕即位后,阎柔被拜为度辽将军。',
zhangxuan:'张嫙,三国时期孙吴将领张布之女,孙皓后妃张媱的姐姐。初为卫尉冯朝之子冯纯的妻子,后为孙皓后妃,册封左夫人。因孙皓诛灭张布,张媱口吐怨言,被暴怒的孙皓下令棒杀。后来孙皓怀念她的容颜,于是询问侍从:“张布还有女儿吗?”侍从回答:“张布的大女儿嫁给了已故卫尉冯朝的儿子冯纯。”于是孙皓夺走了冯纯的妻子张嫙,纳入宫中。孙皓颇为宠爱张嫙,册封其为左夫人。昼夜嬉戏,纸醉金迷,不理朝政。后来张嫙也去世了,孙皓非常悲伤,下令以最高的规格埋葬张嫙。因为悲伤过度,孙皓一度半年都不出宫门,甚至由于葬礼太过奢华被宫外之人认为孙皓已经死了。',
qinyilu:'秦宜禄—200年并州云中郡云中县人今内蒙古自治区呼和浩特市托克托县古城镇。东汉军阀吕布的部将。吕布战败后归降曹操后为张飞所杀。',
caohua:'曹华东汉末年人物曹操之女为汉献帝妃嫔。建安十八年213年曹操进为魏公把曹宪、曹节、曹华三个女儿一齐都送给汉献帝刘协做了妃子皆封为夫人聘以束帛五万匹年龄尚小者在魏公国待年长而聘。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -15507,9 +16071,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
str+=',然后当前回合角色于本回合内下一次造成伤害时,你选择两项:⒈防止此伤害。系统从技能名中包含“仁/义/礼/智/信”字样的技能中随机选择三个其未拥有的技能然后你令当前回合角色获得其中一个技能。⒉从〖遁世〗中删除你本次使用或打出的牌并获得一个“赂”。⒊减1点体力上限并摸X张牌X为你的“赂”数。';
return str;
},
piaoping:function(player){
if(player.storage.piaoping) return '转换技锁定技。当你使用一张牌时你摸X张牌。<span class="bluetext">阳你弃置X张牌。</span>X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值';
return '转换技,锁定技。当你使用一张牌时,<span class="bluetext">阴你摸X张牌。</span>阳你弃置X张牌。X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值';
},
chuaili:function(player){
if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。';
if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:<span class="bluetext">处于阳状态,则你将〖漂萍〗转换至阴状态;</span>处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。';
return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;<span class="bluetext">处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。</span>';
},
caiyi:function(player){
var current=player.storage.caiyi,list=player.storage.caiyi_info||[[],[]];
var str='转换技。结束阶段,你可令一名角色选择并执行一项,然后移除此选项。';
var list1=['⒈回复X点体力。','⒉摸X张牌。','⒊复原武将牌。','⒋随机执行一个已经移除过的阴选项;'],list2=['⒈受到X点伤害。','⒉弃置X张牌。','⒊翻面并横置。','⒋随机执行一个已经移除过的阳选项。'],str1='阴:',str2='阳:';
for(var i=0;i<4;i++){
var clip1=list1[i],clip2=list2[i];
if(list[0].contains(i)) clip1=('<span style="text-decoration: line-through;">'+clip1+'</span>');
if(list[1].contains(i)) clip2=('<span style="text-decoration: line-through;">'+clip2+'</span>');
str1+=clip1;
str2+=clip2;
}
if(current) str2=('<span class="bluetext">'+str2+'</span>');
else str1=('<span class="bluetext">'+str1+'</span>');
return str+str1+str2+'X为该阴阳态剩余选项的数量。';
},
},
perfectPair:{
},
perfectPair:{},
characterReplace:{
lijue:['lijue','ns_lijue'],
fanchou:['fanchou','ns_fanchou'],
@ -15542,6 +16129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_hejin:['re_hejin','tw_hejin'],
fengfangnv:['re_fengfangnv','fengfangnv'],
luotong:['luotong','dc_luotong'],
mamidi:['mamidi','xin_mamidi'],
},
translate:{
lijue:"李傕",
@ -16310,7 +16898,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcdeshao:'德劭',
dcdeshao_info:'每回合限两次。当你成为其他角色使用的黑色牌的目标后,你可以摸一张牌,然后若其手牌数不小于你,则你弃置其一张牌。',
dcmingfa:'明伐',
dcmingfa_info:'①出牌阶段限一次。当你使用【杀】或普通锦囊牌结算结束后若你的武将牌上没有“明伐”牌则你可以将此牌作为“明伐”牌置于武将牌上并选择一名其他角色记录该角色和此牌的名称。②一名角色的回合结束时若其是你〖明伐①〗记录的角色则你视为对其依次使用X张〖明伐①〗记录的牌然后移去“明伐”牌X为其手牌数且至多为5。③一名角色死亡时若其是你〖明伐①〗记录的角色则你移去“移去”牌。',
dcmingfa_info:'①出牌阶段限一次。当你使用【杀】或普通锦囊牌结算结束后若你的武将牌上没有“明伐”牌则你可以将此牌作为“明伐”牌置于武将牌上并选择一名其他角色记录该角色和此牌的名称。②一名角色的回合结束时若其是你〖明伐①〗记录的角色则你视为对其依次使用X张〖明伐①〗记录的牌然后移去“明伐”牌X为其手牌数且至少为1至多为5。③一名角色死亡时若其是你〖明伐①〗记录的角色则你移去“明伐”牌。',
zhangxuan:'张嫙',
tongli:'同礼',
tongli_info:'当你于出牌阶段不因〖同礼〗而使用基本牌或普通锦囊牌指定第一个目标后若你手牌中的花色数和你于本阶段内不因〖同礼〗而使用过的牌数相等则你可以于此牌结算结束后依次视为对此牌的所有目标使用X张名称和属性相同的牌X为你手牌中的花色数。',
shezang:'奢葬',
shezang_info:'每轮限一次。当你或你回合内的其他角色进入濒死状态时,你可以从牌堆中获得每种花色的牌各一张。',
qinyilu:'秦宜禄',
piaoping:'漂萍',
piaoping_info:'转换技锁定技。当你使用一张牌时你摸X张牌。阳你弃置X张牌。X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值',
tuoxian:'托献',
tuoxian_info:'当你因执行〖漂萍〗的效果而弃置牌后,你可以弃置一枚“栗”并令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。',
chuaili:'揣栗',
chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。',
dc_liuyu:'刘虞',
dcsuifu:'绥抚',
dcsuifu_info:'其他角色的结束阶段开始时若你和一号位本回合内累计受到过的伤害值大于1则你可以将该角色的所有手牌置于牌堆顶然后视为使用一张【五谷丰登】。',
dcpijing:'辟境',
dcpijing_info:'结束阶段开始时,你可以选择任意名角色。你令所有未选择的角色失去〖自牧〗,然后你和这些角色获得〖自牧〗。',
dczimu:'自牧',
dczimu_info:'锁定技。当你受到伤害后,你令所有拥有〖自牧〗的其他角色各摸一张牌,然后你失去〖自牧〗。',
caohua:'曹华',
caiyi:'彩翼',
caiyi_info:'转换技。结束阶段你可令一名角色选择并执行一项然后移除此选项。阴⒈回复X点体力。⒉摸X张牌⒊复原武将牌。⒋随机执行一个已经移除过的阴选项⒈受到X点伤害。⒉弃置X张牌。⒊翻面并横置。⒋随机执行一个已经移除过的阳选项。X为该阴阳态剩余选项的数量。',
guili:'归离',
guili_info:'你的第一个回合开始时,你须选择一名其他角色。该角色每轮的第一个回合结束后,若其本回合内未造成过伤害,则你执行一个额外的回合。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -16333,6 +16945,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zongheng:'荟萃·纵横捭阖',
sp_fenghuo:'烽火连天',
sp_guixin:'荟萃·天下归心',
sp_danqi:'千里单骑',
sp2_huben:'限定·百战虎贲',
sp2_shengun:'限定·奇人异士',
sp2_huangjia:'限定·皇家贵胄',
sp2_zhangtai:'限定·章台春望',
sp2_jinse:'限定·锦瑟良缘',
sp_decade:'其他新服武将',
},
};

View File

@ -12157,10 +12157,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoxiu:['re_caoxiu','caoxiu','old_caoxiu'],
xiahoushi:['re_xiahoushi','xiahoushi'],
zhangyi:['re_zhangyi','zhangyi'],
quancong:['re_quancong','quancong','old_quancong'],
quancong:['old_quancong','re_quancong','xin_quancong','quancong'],
sunxiu:['re_sunxiu','xin_sunxiu','sunxiu'],
zhuzhi:['zhuzhi','old_zhuzhi'],
liuyu:['liuyu','ol_liuyu'],
liuyu:['dc_liuyu','liuyu','ol_liuyu'],
zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'],
jikang:['re_jikang','jikang'],
xinxianying:['re_xinxianying','xinxianying','ol_xinxianying','sp_xinxianying'],

View File

@ -1439,6 +1439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
bolan:{
audio:2,
banned:['kotomi_chuanxiang'],
initList:function(player){
var list,skills=[];
if(get.mode()=='guozhan'){
@ -1458,7 +1459,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var j of lib.character[i][3]){
if(j=='bolan') continue;
var skill=lib.skill[j];
if(!skill||skill.zhuSkill||skill.dutySkill) continue;
if(!skill||skill.zhuSkill||skill.dutySkill||lib.skill.bolan.banned.contains(j)) continue;
if(skill.init||skill.ai&&(skill.ai.combo||skill.ai.notemp||skill.ai.neg)) continue;
var info=lib.translate[j+'_info'];
if(info&&info.indexOf('出牌阶段限一次')!=-1) skills.add(j);
@ -1517,6 +1518,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 3'
game.broadcastAll('closeDialog',event.videoId);
trigger.player.addTempSkill(result.control,'phaseUseEnd');
trigger.player.popup(result.control,'thunder');
game.log(player,'为',player==trigger.player?'自己':trigger.player,'选择了技能','#g【'+get.translation(result.control)+'】')
},
},
yifa:{

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.115.1',
'v1.9.115.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -176,32 +176,6 @@ window.noname_asset_list=[
'audio/card/male/yuanjiao.mp3',
'audio/card/male/zhibi.mp3',
'audio/die/caimaozhangyun.mp3',
'audio/die/ol_puyuan.mp3',
'audio/die/wangxiang.mp3',
'audio/die/wenyang.mp3',
'audio/die/yanrou.mp3',
'audio/die/zhangyao.mp3',
'audio/die/ol_lusu.mp3',
'audio/die/re_jiaxu.mp3',
'audio/die/re_jushou.mp3',
'audio/die/sb_huangzhong.mp3',
'audio/die/sb_huaxiong.mp3',
'audio/die/sb_yujin.mp3',
'audio/die/shen_machao.mp3',
'audio/die/shen_sunquan.mp3',
'audio/die/tengfanglan.mp3',
'audio/die/weizi.mp3',
'audio/die/dc_gongsunzan.mp3',
'audio/die/dc_huangzu.mp3',
'audio/die/dc_yanghu.mp3',
'audio/die/gz_dc_yanghu.mp3',
'audio/die/ns_zanghong.mp3',
'audio/die/re_masu.mp3',
'audio/die/re_zhangyi.mp3',
'audio/die/ruiji.mp3',
'audio/die/yangyi.mp3',
'audio/die/yj_ganning.mp3',
'audio/die/baosanniang.mp3',
'audio/die/beimihu.mp3',
@ -213,6 +187,7 @@ window.noname_asset_list=[
'audio/die/buzhi.mp3',
'audio/die/caesar.mp3',
'audio/die/caifuren.mp3',
'audio/die/caimaozhangyun.mp3',
'audio/die/caiwenji.mp3',
'audio/die/caiyong.mp3',
'audio/die/caizhaoji.mp3',
@ -223,6 +198,7 @@ window.noname_asset_list=[
'audio/die/caochong.mp3',
'audio/die/caochun.mp3',
'audio/die/caohong.mp3',
'audio/die/caohua.mp3',
'audio/die/caojie.mp3',
'audio/die/caojinyu.mp3',
'audio/die/caomao.mp3',
@ -256,10 +232,14 @@ window.noname_asset_list=[
'audio/die/db_wenyang.mp3',
'audio/die/dc_bulianshi.mp3',
'audio/die/dc_gaolan.mp3',
'audio/die/dc_gongsunzan.mp3',
'audio/die/dc_huangchengyan.mp3',
'audio/die/dc_huangzu.mp3',
'audio/die/dc_jiben.mp3',
'audio/die/dc_liuyu.mp3',
'audio/die/dc_luotong.mp3',
'audio/die/dc_xushu.mp3',
'audio/die/dc_yanghu.mp3',
'audio/die/dc_zhuling.mp3',
'audio/die/dengai.mp3',
'audio/die/dengshizai.mp3',
@ -316,6 +296,7 @@ window.noname_asset_list=[
'audio/die/guozhao.mp3',
'audio/die/guyong.mp3',
'audio/die/guzhielai.mp3',
'audio/die/gz_dc_yanghu.mp3',
'audio/die/gz_dengzhi.mp3',
'audio/die/gz_gongsunyuan.mp3',
'audio/die/gz_huangzu.mp3',
@ -472,6 +453,7 @@ window.noname_asset_list=[
'audio/die/neo_xuchu.mp3',
'audio/die/neo_zhouyu.mp3',
'audio/die/niujin.mp3',
'audio/die/ns_zanghong.mp3',
'audio/die/ol_caiwenji.mp3',
'audio/die/ol_chendeng.mp3',
'audio/die/ol_dengai.mp3',
@ -483,9 +465,11 @@ window.noname_asset_list=[
'audio/die/ol_jiangwei.mp3',
'audio/die/ol_lisu.mp3',
'audio/die/ol_liushan.mp3',
'audio/die/ol_lusu.mp3',
'audio/die/ol_masu.mp3',
'audio/die/ol_pangde.mp3',
'audio/die/ol_pangtong.mp3',
'audio/die/ol_puyuan.mp3',
'audio/die/ol_sp_zhugeliang.mp3',
'audio/die/ol_sunjian.mp3',
'audio/die/ol_wangrong.mp3',
@ -493,6 +477,7 @@ window.noname_asset_list=[
'audio/die/ol_xiahouyuan.mp3',
'audio/die/ol_xiaoqiao.mp3',
'audio/die/ol_xuhuang.mp3',
'audio/die/ol_xunyu.mp3',
'audio/die/ol_yangyi.mp3',
'audio/die/ol_yuanshao.mp3',
'audio/die/ol_yujin.mp3',
@ -516,6 +501,7 @@ window.noname_asset_list=[
'audio/die/qiaozhou.mp3',
'audio/die/qinghegongzhu.mp3',
'audio/die/qinmi.mp3',
'audio/die/qinyilu.mp3',
'audio/die/qiuliju.mp3',
'audio/die/quancong.mp3',
'audio/die/quyi.mp3',
@ -563,12 +549,15 @@ window.noname_asset_list=[
'audio/die/re_hucheer.mp3',
'audio/die/re_jiangwei.mp3',
'audio/die/re_jianyong.mp3',
'audio/die/re_jiaxu.mp3',
'audio/die/re_jsp_pangtong.mp3',
'audio/die/re_jushou.mp3',
'audio/die/re_liaohua.mp3',
'audio/die/re_lingtong.mp3',
'audio/die/re_liru.mp3',
'audio/die/re_liubei.mp3',
'audio/die/re_liubiao.mp3',
'audio/die/re_liuchen.mp3',
'audio/die/re_liushan.mp3',
'audio/die/re_liuzan.mp3',
'audio/die/re_lusu.mp3',
@ -634,7 +623,12 @@ window.noname_asset_list=[
'audio/die/re_zhugeliang.mp3',
'audio/die/re_zhuran.mp3',
'audio/die/re_zhurong.mp3',
'audio/die/ruanhui.mp3',
'audio/die/ruanyu.mp3',
'audio/die/ruiji.mp3',
'audio/die/sb_huangzhong.mp3',
'audio/die/sb_huaxiong.mp3',
'audio/die/sb_yujin.mp3',
'audio/die/shen_caocao.mp3',
'audio/die/shen_caopi.mp3',
'audio/die/shen_diaochan.mp3',
@ -648,8 +642,10 @@ window.noname_asset_list=[
'audio/die/shen_lvbu1.mp3',
'audio/die/shen_lvbu2.mp3',
'audio/die/shen_lvmeng.mp3',
'audio/die/shen_machao.mp3',
'audio/die/shen_simayi.mp3',
'audio/die/shen_sunce.mp3',
'audio/die/shen_sunquan.mp3',
'audio/die/shen_taishici.mp3',
'audio/die/shen_xunyu.mp3',
'audio/die/shen_zhangliao.mp3',
@ -737,6 +733,7 @@ window.noname_asset_list=[
'audio/die/tangji.mp3',
'audio/die/tangzi.mp3',
'audio/die/taoqian.mp3',
'audio/die/tengfanglan.mp3',
'audio/die/tenggongzhu.mp3',
'audio/die/tengyin.mp3',
'audio/die/tianfeng.mp3',
@ -761,6 +758,7 @@ window.noname_asset_list=[
'audio/die/wangrong.mp3',
'audio/die/wangshuang.mp3',
'audio/die/wangtao.mp3',
'audio/die/wangxiang.mp3',
'audio/die/wangyi.mp3',
'audio/die/wangyuanji.mp3',
'audio/die/wangyue.mp3',
@ -769,7 +767,9 @@ window.noname_asset_list=[
'audio/die/weiguan.mp3',
'audio/die/weiwenzhugezhi.mp3',
'audio/die/weiyan.mp3',
'audio/die/weizi.mp3',
'audio/die/wenpin.mp3',
'audio/die/wenyang.mp3',
'audio/die/wis_huaxiong.mp3',
'audio/die/wis_jiangwan.mp3',
'audio/die/wis_jiangwei.mp3',
@ -814,6 +814,7 @@ window.noname_asset_list=[
'audio/die/xin_liaohua.mp3',
'audio/die/xin_lingtong.mp3',
'audio/die/xin_liubiao.mp3',
'audio/die/xin_mamidi.mp3',
'audio/die/xin_panzhangmazhong.mp3',
'audio/die/xin_quancong.mp3',
'audio/die/xin_sunluban.mp3',
@ -856,6 +857,7 @@ window.noname_asset_list=[
'audio/die/yangzhi.mp3',
'audio/die/yanjun.mp3',
'audio/die/yanpu.mp3',
'audio/die/yanrou.mp3',
'audio/die/yanwen.mp3',
'audio/die/yitianjian.mp3',
'audio/die/yj_ganning.mp3',
@ -902,6 +904,8 @@ window.noname_asset_list=[
'audio/die/zhangwen.mp3',
'audio/die/zhangxingcai.mp3',
'audio/die/zhangxiu.mp3',
'audio/die/zhangxuan.mp3',
'audio/die/zhangyao.mp3',
'audio/die/zhangyi.mp3',
'audio/die/zhangyì.mp3',
'audio/die/zhangzhang.mp3',
@ -978,115 +982,9 @@ window.noname_asset_list=[
'audio/effect/tori_no_uta.mp3',
'audio/effect/win.mp3',
'audio/skill/bingxin1.mp3',
'audio/skill/bingxin2.mp3',
'audio/skill/choutao1.mp3',
'audio/skill/choutao2.mp3',
'audio/skill/jinglan1.mp3',
'audio/skill/jinglan2.mp3',
'audio/skill/lianzhou1.mp3',
'audio/skill/lianzhou2.mp3',
'audio/skill/olqisi1.mp3',
'audio/skill/olqisi2.mp3',
'audio/skill/olshengong1.mp3',
'audio/skill/olshengong2.mp3',
'audio/skill/xiangshu1.mp3',
'audio/skill/xiangshu2.mp3',
'audio/skill/xiyan1.mp3',
'audio/skill/xiyan2.mp3',
'audio/skill/yongjin_xin_lingtong1.mp3',
'audio/skill/yongjin_xin_lingtong2.mp3',
'audio/skill/yuanyu1.mp3',
'audio/skill/yuanyu2.mp3',
'audio/skill/aichen1.mp3',
'audio/skill/aichen2.mp3',
'audio/skill/dcjianying1.mp3',
'audio/skill/dcjianying2.mp3',
'audio/skill/dcshibei1.mp3',
'audio/skill/dcshibei2.mp3',
'audio/skill/dili_chigang1.mp3',
'audio/skill/dili_chigang2.mp3',
'audio/skill/dili_jiaohui1.mp3',
'audio/skill/dili_jiaohui2.mp3',
'audio/skill/dili_qionglan1.mp3',
'audio/skill/dili_qionglan2.mp3',
'audio/skill/dili_quandao1.mp3',
'audio/skill/dili_quandao2.mp3',
'audio/skill/dili_shengzhi1.mp3',
'audio/skill/dili_shengzhi2.mp3',
'audio/skill/dili_yuanlv1.mp3',
'audio/skill/dili_yuanlv2.mp3',
'audio/skill/dili1.mp3',
'audio/skill/dili2.mp3',
'audio/skill/hengwu1.mp3',
'audio/skill/hengwu2.mp3',
'audio/skill/huaping.mp3',
'audio/skill/liejie1.mp3',
'audio/skill/liejie2.mp3',
'audio/skill/luochong1.mp3',
'audio/skill/luochong2.mp3',
'audio/skill/new_reyaowu_sb_huaxiong1.mp3',
'audio/skill/new_reyaowu_sb_huaxiong2.mp3',
'audio/skill/qibaodao2.mp3',
'audio/skill/rw_bagua_skill.mp3',
'audio/skill/rw_baiyin_skill.mp3',
'audio/skill/rw_renwang_skill.mp3',
'audio/skill/rw_tengjia1.mp3',
'audio/skill/rw_tengjia2.mp3',
'audio/skill/rw_zhuge_skill.mp3',
'audio/skill/sbjieyue1.mp3',
'audio/skill/sbjieyue2.mp3',
'audio/skill/sbjieyue3.mp3',
'audio/skill/sbjieyue4.mp3',
'audio/skill/sbliegong1.mp3',
'audio/skill/sbliegong2.mp3',
'audio/skill/sbxiayuan1.mp3',
'audio/skill/sbxiayuan2.mp3',
'audio/skill/sbyangwei1.mp3',
'audio/skill/sbyangwei2.mp3',
'audio/skill/shouli1.mp3',
'audio/skill/shouli2.mp3',
'audio/skill/yuanzi1.mp3',
'audio/skill/yuanzi2.mp3',
'audio/skill/yuheng1.mp3',
'audio/skill/yuheng2.mp3',
'audio/skill/dcdeshao1.mp3',
'audio/skill/dcdeshao2.mp3',
'audio/skill/dcjinggong1.mp3',
'audio/skill/dcjinggong2.mp3',
'audio/skill/dcmingfa1.mp3',
'audio/skill/dcmingfa2.mp3',
'audio/skill/dcqiaomeng1.mp3',
'audio/skill/dcqiaomeng2.mp3',
'audio/skill/dcxiaojuan1.mp3',
'audio/skill/dcxiaojuan2.mp3',
'audio/skill/duoduan1.mp3',
'audio/skill/duoduan2.mp3',
'audio/skill/gnjinfan1.mp3',
'audio/skill/gnjinfan2.mp3',
'audio/skill/gnsheque1.mp3',
'audio/skill/gnsheque2.mp3',
'audio/skill/gongsun1.mp3',
'audio/skill/gongsun2.mp3',
'audio/skill/ns_nsshimeng1.mp3',
'audio/skill/ns_nsshimeng2.mp3',
'audio/skill/qiaoli1.mp3',
'audio/skill/qiaoli2.mp3',
'audio/skill/qingliang1.mp3',
'audio/skill/qingliang2.mp3',
'audio/skill/resanyao1.mp3',
'audio/skill/resanyao2.mp3',
'audio/skill/rewurong1.mp3',
'audio/skill/rewurong2.mp3',
'audio/skill/reyicong_dc_gongsunzan.mp3',
'audio/skill/reyicong_dc_gongsunzan1.mp3',
'audio/skill/sanyao1.mp3',
'audio/skill/sanyao2.mp3',
'audio/skill/zhiman_re_masu1.mp3',
'audio/skill/zhiman_re_masu2.mp3',
'audio/skill/zhiyan_xin_yufan1.mp3',
'audio/skill/zhiyan_xin_yufan2.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
'audio/skill/anjian1.mp3',
@ -1178,6 +1076,8 @@ window.noname_asset_list=[
'audio/skill/binglun2.mp3',
'audio/skill/bingqing1.mp3',
'audio/skill/bingqing2.mp3',
'audio/skill/bingxin1.mp3',
'audio/skill/bingxin2.mp3',
'audio/skill/bingyi_xin_guyong1.mp3',
'audio/skill/bingyi_xin_guyong2.mp3',
'audio/skill/bingyi1.mp3',
@ -1270,6 +1170,8 @@ window.noname_asset_list=[
'audio/skill/bushi2.mp3',
'audio/skill/busuan1.mp3',
'audio/skill/busuan2.mp3',
'audio/skill/buxu1.mp3',
'audio/skill/buxu2.mp3',
'audio/skill/buyi_re_wuguotai1.mp3',
'audio/skill/buyi_re_wuguotai2.mp3',
'audio/skill/buyi1.mp3',
@ -1278,6 +1180,8 @@ window.noname_asset_list=[
'audio/skill/caishi2.mp3',
'audio/skill/caiwang1.mp3',
'audio/skill/caiwang2.mp3',
'audio/skill/caiyi1.mp3',
'audio/skill/caiyi2.mp3',
'audio/skill/caiyuan1.mp3',
'audio/skill/caiyuan2.mp3',
'audio/skill/caizhaoji_hujia.mp3',
@ -1308,6 +1212,8 @@ window.noname_asset_list=[
'audio/skill/chengwu2.mp3',
'audio/skill/chengxiang1.mp3',
'audio/skill/chengxiang2.mp3',
'audio/skill/chengye1.mp3',
'audio/skill/chengye2.mp3',
'audio/skill/chengzhang1.mp3',
'audio/skill/chengzhang2.mp3',
'audio/skill/chengzhao1.mp3',
@ -1342,6 +1248,10 @@ window.noname_asset_list=[
'audio/skill/chouliang.mp3',
'audio/skill/choulve1.mp3',
'audio/skill/choulve2.mp3',
'audio/skill/choutao1.mp3',
'audio/skill/choutao2.mp3',
'audio/skill/chuaili1.mp3',
'audio/skill/chuaili2.mp3',
'audio/skill/chuanshu1.mp3',
'audio/skill/chuanshu2.mp3',
'audio/skill/chuanxin1.mp3',
@ -1422,8 +1332,26 @@ window.noname_asset_list=[
'audio/skill/dbzhuifeng2.mp3',
'audio/skill/dcanxu1.mp3',
'audio/skill/dcanxu2.mp3',
'audio/skill/dcdeshao1.mp3',
'audio/skill/dcdeshao2.mp3',
'audio/skill/dcjianying1.mp3',
'audio/skill/dcjianying2.mp3',
'audio/skill/dcjiezhen1.mp3',
'audio/skill/dcjiezhen2.mp3',
'audio/skill/dcjinggong1.mp3',
'audio/skill/dcjinggong2.mp3',
'audio/skill/dcmingfa1.mp3',
'audio/skill/dcmingfa2.mp3',
'audio/skill/dcpijing1.mp3',
'audio/skill/dcpijing2.mp3',
'audio/skill/dcqiaomeng1.mp3',
'audio/skill/dcqiaomeng2.mp3',
'audio/skill/dcshibei1.mp3',
'audio/skill/dcshibei2.mp3',
'audio/skill/dcsuifu1.mp3',
'audio/skill/dcsuifu2.mp3',
'audio/skill/dcxiaojuan1.mp3',
'audio/skill/dcxiaojuan2.mp3',
'audio/skill/dcyinshi1.mp3',
'audio/skill/dcyinshi2.mp3',
'audio/skill/dczecai1.mp3',
@ -1432,6 +1360,7 @@ window.noname_asset_list=[
'audio/skill/dczhanyi2.mp3',
'audio/skill/dczhuiyi1.mp3',
'audio/skill/dczhuiyi2.mp3',
'audio/skill/dczimu1.mp3',
'audio/skill/debao1.mp3',
'audio/skill/debao2.mp3',
'audio/skill/decadejingce1.mp3',
@ -1460,6 +1389,20 @@ window.noname_asset_list=[
'audio/skill/diaoling2.mp3',
'audio/skill/difa1.mp3',
'audio/skill/difa2.mp3',
'audio/skill/dili_chigang1.mp3',
'audio/skill/dili_chigang2.mp3',
'audio/skill/dili_jiaohui1.mp3',
'audio/skill/dili_jiaohui2.mp3',
'audio/skill/dili_qionglan1.mp3',
'audio/skill/dili_qionglan2.mp3',
'audio/skill/dili_quandao1.mp3',
'audio/skill/dili_quandao2.mp3',
'audio/skill/dili_shengzhi1.mp3',
'audio/skill/dili_shengzhi2.mp3',
'audio/skill/dili_yuanlv1.mp3',
'audio/skill/dili_yuanlv2.mp3',
'audio/skill/dili1.mp3',
'audio/skill/dili2.mp3',
'audio/skill/dimeng1.mp3',
'audio/skill/dimeng2.mp3',
'audio/skill/dingfa1.mp3',
@ -1707,6 +1650,8 @@ window.noname_asset_list=[
'audio/skill/guidao_sp_zhangjiao2.mp3',
'audio/skill/guidao1.mp3',
'audio/skill/guidao2.mp3',
'audio/skill/guili1.mp3',
'audio/skill/guili2.mp3',
'audio/skill/guiming1.mp3',
'audio/skill/guiming2.mp3',
'audio/skill/guixin1.mp3',
@ -1832,6 +1777,8 @@ window.noname_asset_list=[
'audio/skill/heji2.mp3',
'audio/skill/hengjiang1.mp3',
'audio/skill/hengjiang2.mp3',
'audio/skill/hengwu1.mp3',
'audio/skill/hengwu2.mp3',
'audio/skill/hengzheng1.mp3',
'audio/skill/hengzheng2.mp3',
'audio/skill/heqia1.mp3',
@ -1875,6 +1822,7 @@ window.noname_asset_list=[
'audio/skill/huanshi2.mp3',
'audio/skill/huantu1.mp3',
'audio/skill/huantu2.mp3',
'audio/skill/huaping.mp3',
'audio/skill/huaping1.mp3',
'audio/skill/huaping2.mp3',
'audio/skill/huashen21.mp3',
@ -2042,10 +1990,14 @@ window.noname_asset_list=[
'audio/skill/jingce2.mp3',
'audio/skill/jinghe1.mp3',
'audio/skill/jinghe2.mp3',
'audio/skill/jinglan1.mp3',
'audio/skill/jinglan2.mp3',
'audio/skill/jinglve1.mp3',
'audio/skill/jinglve2.mp3',
'audio/skill/jingong1.mp3',
'audio/skill/jingong2.mp3',
'audio/skill/jingzhong1.mp3',
'audio/skill/jingzhong2.mp3',
'audio/skill/jinhui1.mp3',
'audio/skill/jinhui2.mp3',
'audio/skill/jinjian1.mp3',
@ -2224,6 +2176,8 @@ window.noname_asset_list=[
'audio/skill/lianpo2.mp3',
'audio/skill/lianying1.mp3',
'audio/skill/lianying2.mp3',
'audio/skill/lianzhou1.mp3',
'audio/skill/lianzhou2.mp3',
'audio/skill/lianzhu1.mp3',
'audio/skill/lianzhu2.mp3',
'audio/skill/lianzi1.mp3',
@ -2240,6 +2194,8 @@ window.noname_asset_list=[
'audio/skill/liegong2.mp3',
'audio/skill/liehou1.mp3',
'audio/skill/liehou2.mp3',
'audio/skill/liejie1.mp3',
'audio/skill/liejie2.mp3',
'audio/skill/lieren_ol_zhurong1.mp3',
'audio/skill/lieren_ol_zhurong2.mp3',
'audio/skill/lieren1.mp3',
@ -2324,6 +2280,8 @@ window.noname_asset_list=[
'audio/skill/luanzhan2.mp3',
'audio/skill/lulve1.mp3',
'audio/skill/lulve2.mp3',
'audio/skill/luochong1.mp3',
'audio/skill/luochong2.mp3',
'audio/skill/luoshen1.mp3',
'audio/skill/luoshen2.mp3',
'audio/skill/luoyan1.mp3',
@ -2378,6 +2336,8 @@ window.noname_asset_list=[
'audio/skill/miji2.mp3',
'audio/skill/mingce1.mp3',
'audio/skill/mingce2.mp3',
'audio/skill/mingcha1.mp3',
'audio/skill/mingcha2.mp3',
'audio/skill/mingfa1.mp3',
'audio/skill/mingfa2.mp3',
'audio/skill/mingjian1.mp3',
@ -2442,6 +2402,8 @@ window.noname_asset_list=[
'audio/skill/neifa2.mp3',
'audio/skill/new_jiangchi1.mp3',
'audio/skill/new_jiangchi2.mp3',
'audio/skill/new_reyaowu_sb_huaxiong1.mp3',
'audio/skill/new_reyaowu_sb_huaxiong2.mp3',
'audio/skill/new_reyaowu1.mp3',
'audio/skill/new_reyaowu2.mp3',
'audio/skill/niepan_re_pangtong1.mp3',
@ -2452,6 +2414,8 @@ window.noname_asset_list=[
'audio/skill/nifu2.mp3',
'audio/skill/niluan1.mp3',
'audio/skill/niluan2.mp3',
'audio/skill/ns_nsshimeng1.mp3',
'audio/skill/ns_nsshimeng2.mp3',
'audio/skill/nzry_binglve1.mp3',
'audio/skill/nzry_binglve2.mp3',
'audio/skill/nzry_chenglve1.mp3',
@ -2549,6 +2513,8 @@ window.noname_asset_list=[
'audio/skill/olhunzi_re_sunyi2.mp3',
'audio/skill/olhunzi1.mp3',
'audio/skill/olhunzi2.mp3',
'audio/skill/oljieming1.mp3',
'audio/skill/oljieming2.mp3',
'audio/skill/oljiezi1.mp3',
'audio/skill/oljiezi2.mp3',
'audio/skill/oljiuchi1.mp3',
@ -2563,8 +2529,12 @@ window.noname_asset_list=[
'audio/skill/olluanji2.mp3',
'audio/skill/olniepan1.mp3',
'audio/skill/olniepan2.mp3',
'audio/skill/olqisi1.mp3',
'audio/skill/olqisi2.mp3',
'audio/skill/olruoyu1.mp3',
'audio/skill/olruoyu2.mp3',
'audio/skill/olshengong1.mp3',
'audio/skill/olshengong2.mp3',
'audio/skill/olsujian1.mp3',
'audio/skill/olsujian2.mp3',
'audio/skill/oltuntian1.mp3',
@ -2607,6 +2577,8 @@ window.noname_asset_list=[
'audio/skill/pianyi2.mp3',
'audio/skill/piaoling1.mp3',
'audio/skill/piaoling2.mp3',
'audio/skill/piaoping1.mp3',
'audio/skill/piaoping2.mp3',
'audio/skill/pindi1.mp3',
'audio/skill/pindi2.mp3',
'audio/skill/pinghe1.mp3',
@ -2661,6 +2633,8 @@ window.noname_asset_list=[
'audio/skill/qiaobian32.mp3',
'audio/skill/qiaobian41.mp3',
'audio/skill/qiaobian42.mp3',
'audio/skill/qiaoli1.mp3',
'audio/skill/qiaoli2.mp3',
'audio/skill/qiaomeng1.mp3',
'audio/skill/qiaomeng2.mp3',
'audio/skill/qiaoshi1.mp3',
@ -2669,6 +2643,7 @@ window.noname_asset_list=[
'audio/skill/qiaoshui2.mp3',
'audio/skill/qiaoyan1.mp3',
'audio/skill/qiaoyan2.mp3',
'audio/skill/qibaodao2.mp3',
'audio/skill/qibie1.mp3',
'audio/skill/qibie2.mp3',
'audio/skill/qice_backup1.mp3',
@ -2697,6 +2672,8 @@ window.noname_asset_list=[
'audio/skill/qingjue2.mp3',
'audio/skill/qingleng1.mp3',
'audio/skill/qingleng2.mp3',
'audio/skill/qingliang1.mp3',
'audio/skill/qingliang2.mp3',
'audio/skill/qinglong_skill.mp3',
'audio/skill/qingman1.mp3',
'audio/skill/qingman2.mp3',
@ -2764,6 +2741,8 @@ window.noname_asset_list=[
'audio/skill/quanjin2.mp3',
'audio/skill/quanjiu1.mp3',
'audio/skill/quanjiu2.mp3',
'audio/skill/quhu_ol_xunyu1.mp3',
'audio/skill/quhu_ol_xunyu2.mp3',
'audio/skill/quhu_re_xunyu1.mp3',
'audio/skill/quhu_re_xunyu2.mp3',
'audio/skill/quhu1.mp3',
@ -2963,6 +2942,8 @@ window.noname_asset_list=[
'audio/skill/reqingguo2.mp3',
'audio/skill/reqingxi1.mp3',
'audio/skill/reqingxi2.mp3',
'audio/skill/reqinwang1.mp3',
'audio/skill/reqinwang2.mp3',
'audio/skill/reqiuyuan1.mp3',
'audio/skill/reqiuyuan2.mp3',
'audio/skill/requanji1.mp3',
@ -3019,6 +3000,8 @@ window.noname_asset_list=[
'audio/skill/reyanyu2.mp3',
'audio/skill/reyanzhu1.mp3',
'audio/skill/reyanzhu2.mp3',
'audio/skill/reyicong_dc_gongsunzan.mp3',
'audio/skill/reyicong_dc_gongsunzan1.mp3',
'audio/skill/reyicong1.mp3',
'audio/skill/reyicong2.mp3',
'audio/skill/reyiji1.mp3',
@ -3042,6 +3025,8 @@ window.noname_asset_list=[
'audio/skill/reyonglve2.mp3',
'audio/skill/rezaiqi1.mp3',
'audio/skill/rezaiqi2.mp3',
'audio/skill/rezhanjue1.mp3',
'audio/skill/rezhanjue2.mp3',
'audio/skill/rezhiheng_shen_caopi1.mp3',
'audio/skill/rezhiheng_shen_caopi2.mp3',
'audio/skill/rezhiheng1.mp3',
@ -3072,6 +3057,12 @@ window.noname_asset_list=[
'audio/skill/ruoyu_re_liushan2.mp3',
'audio/skill/ruoyu1.mp3',
'audio/skill/ruoyu2.mp3',
'audio/skill/rw_bagua_skill.mp3',
'audio/skill/rw_baiyin_skill.mp3',
'audio/skill/rw_renwang_skill.mp3',
'audio/skill/rw_tengjia1.mp3',
'audio/skill/rw_tengjia2.mp3',
'audio/skill/rw_zhuge_skill.mp3',
'audio/skill/sanchen1.mp3',
'audio/skill/sanchen2.mp3',
'audio/skill/sanjian_skill.mp3',
@ -3086,6 +3077,18 @@ window.noname_asset_list=[
'audio/skill/sbaiyin.mp3',
'audio/skill/sbaiyin1.mp3',
'audio/skill/sbaiyin2.mp3',
'audio/skill/sbjieyue1.mp3',
'audio/skill/sbjieyue2.mp3',
'audio/skill/sbjieyue3.mp3',
'audio/skill/sbjieyue4.mp3',
'audio/skill/sbliegong1.mp3',
'audio/skill/sbliegong2.mp3',
'audio/skill/sbxiayuan1.mp3',
'audio/skill/sbxiayuan2.mp3',
'audio/skill/sbyangwei1.mp3',
'audio/skill/sbyangwei2.mp3',
'audio/skill/sbyaoming1.mp3',
'audio/skill/sbyaoming2.mp3',
'audio/skill/scfuhai1.mp3',
'audio/skill/scfuhai2.mp3',
'audio/skill/sghuishi1.mp3',
@ -3162,6 +3165,8 @@ window.noname_asset_list=[
'audio/skill/sheyan2.mp3',
'audio/skill/sheyi1.mp3',
'audio/skill/sheyi2.mp3',
'audio/skill/shezang1.mp3',
'audio/skill/shezang2.mp3',
'audio/skill/shhlianhua1.mp3',
'audio/skill/shhlianhua2.mp3',
'audio/skill/shibei_xin_jushou1.mp3',
@ -3187,8 +3192,12 @@ window.noname_asset_list=[
'audio/skill/shiyong3.mp3',
'audio/skill/shiyuan1.mp3',
'audio/skill/shiyuan2.mp3',
'audio/skill/shizhan1.mp3',
'audio/skill/shizhan2.mp3',
'audio/skill/shoucheng1.mp3',
'audio/skill/shoucheng2.mp3',
'audio/skill/shouli1.mp3',
'audio/skill/shouli2.mp3',
'audio/skill/shoulijian.mp3',
'audio/skill/shouxi1.mp3',
'audio/skill/shouxi2.mp3',
@ -3443,6 +3452,10 @@ window.noname_asset_list=[
'audio/skill/tongduo2.mp3',
'audio/skill/tongji1.mp3',
'audio/skill/tongji2.mp3',
'audio/skill/tongli1.mp3',
'audio/skill/tongli2.mp3',
'audio/skill/tongqu1.mp3',
'audio/skill/tongqu2.mp3',
'audio/skill/tongyuan1.mp3',
'audio/skill/tongyuan2.mp3',
'audio/skill/tspowei1.mp3',
@ -3466,6 +3479,8 @@ window.noname_asset_list=[
'audio/skill/tuntian2.mp3',
'audio/skill/tuogu1.mp3',
'audio/skill/tuogu2.mp3',
'audio/skill/tuoxian.mp3',
'audio/skill/tuoxian2.mp3',
'audio/skill/tuxi1.mp3',
'audio/skill/tuxi2.mp3',
'audio/skill/tuxing1.mp3',
@ -3643,6 +3658,8 @@ window.noname_asset_list=[
'audio/skill/xiangle_re_liushan2.mp3',
'audio/skill/xiangle1.mp3',
'audio/skill/xiangle2.mp3',
'audio/skill/xiangshu1.mp3',
'audio/skill/xiangshu2.mp3',
'audio/skill/xianjing1.mp3',
'audio/skill/xianjing2.mp3',
'audio/skill/xianshuai1.mp3',
@ -3964,6 +3981,8 @@ window.noname_asset_list=[
'audio/skill/xiusheng2.mp3',
'audio/skill/xixiu1.mp3',
'audio/skill/xixiu2.mp3',
'audio/skill/xiyan1.mp3',
'audio/skill/xiyan2.mp3',
'audio/skill/xiying1.mp3',
'audio/skill/xiying2.mp3',
'audio/skill/xizhen1.mp3',
@ -4175,6 +4194,10 @@ window.noname_asset_list=[
'audio/skill/yuanlve2.mp3',
'audio/skill/yuanqing1.mp3',
'audio/skill/yuanqing2.mp3',
'audio/skill/yuanyu1.mp3',
'audio/skill/yuanyu2.mp3',
'audio/skill/yuanzi1.mp3',
'audio/skill/yuanzi2.mp3',
'audio/skill/yuce_re_manchong1.mp3',
'audio/skill/yuce_re_manchong2.mp3',
'audio/skill/yuce1.mp3',
@ -4185,6 +4208,8 @@ window.noname_asset_list=[
'audio/skill/yuejian2.mp3',
'audio/skill/yufeng1.mp3',
'audio/skill/yufeng2.mp3',
'audio/skill/yuheng1.mp3',
'audio/skill/yuheng2.mp3',
'audio/skill/yuhua1.mp3',
'audio/skill/yuhua2.mp3',
'audio/skill/yujue1.mp3',
@ -4321,6 +4346,8 @@ window.noname_asset_list=[
'audio/skill/zhiyan_gexuan1.mp3',
'audio/skill/zhiyan_re_yufan1.mp3',
'audio/skill/zhiyan_re_yufan2.mp3',
'audio/skill/zhiyan_xin_yufan1.mp3',
'audio/skill/zhiyan_xin_yufan2.mp3',
'audio/skill/zhiyan1.mp3',
'audio/skill/zhiyan2.mp3',
'audio/skill/zhiyi1.mp3',
@ -5549,6 +5576,15 @@ window.noname_asset_list=[
'image/character/ns_zanghong.jpg',
'image/character/re_duji.jpg',
'image/character/re_liuchen.jpg',
'image/character/caohua.jpg',
'image/character/dc_liuyu.jpg',
'image/character/ns_limi.jpg',
'image/character/ol_xunyu.jpg',
'image/character/qinyilu.jpg',
'image/character/ruanhui.jpg',
'image/character/xin_mamidi.jpg',
'image/character/xin_quancong.jpg',
'image/character/zhangxuan.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -7148,13 +7148,6 @@
return this.childNodes[row].childNodes[col];
}
};
Array.prototype.numOf=function(item){
var num=0;
for(var i=0;i<this.length;i++){
if(this[i]==item) num++;
}
return num;
};
Array.prototype.filterInD=function(pos){
if(!pos) pos='o';
var list=[];
@ -11482,11 +11475,11 @@
}).set('prompt','选择'+get.translation(card)+'的结算方向').set('choice',choice).set('forceDie',true);
"step 2"
if(result&&result.control=='顺时针'){
var evt=event.getParent();
var evt=event.getParent(),sorter=(_status.currentPhase||player);
evt.fixedSeat=true;
evt.targets.sortBySeat();
evt.targets.sortBySeat(sorter);
evt.targets.reverse();
if(evt.targets[evt.targets.length-1]==player){
if(evt.targets[evt.targets.length-1]==sorter){
evt.targets.unshift(evt.targets.pop());
}
}
@ -15025,7 +15018,7 @@
if(num==0&&targets.length>1){
if(!info.multitarget){
if(!event.fixedSeat&&!sort){
targets.sortBySeat(player);
targets.sortBySeat((_status.currentPhase||player));
}
if(animate) for(var i=0;i<targets.length;i++){
targets[i].animate('target');
@ -15040,9 +15033,9 @@
}
event.sortTarget();
event.getTriggerTarget=function(list1,list2){
var listx=list1.slice(0).sortBySeat();
var listx=list1.slice(0).sortBySeat((_status.currentPhase||player));
for(var i=0;i<listx.length;i++){
if(list2.numOf(listx[i])<listx.numOf(listx[i])) return listx[i];
if(get.numOf(list2,listx[i])<get.numOf(listx,listx[i])) return listx[i];
}
return null;
}
@ -15787,6 +15780,7 @@
if(!map[id]) map[id]=[];
map[id].push(i);
}
else if(!event.updatePile&&get.position(i)=='c') event.updatePile=true;
}
for(var i in map){
var owner=(_status.connectMode?lib.playerOL:game.playerMap)[i];
@ -15948,6 +15942,7 @@
}
"step 4"
game.delayx();
if(event.updatePile) game.updateRoundNumber();
},
addToExpansion:function(){
"step 0"
@ -15961,6 +15956,7 @@
if(!map[id]) map[id]=[];
map[id].push(i);
}
else if(!event.updatePile&&get.position(i)=='c') event.updatePile=true;
}
for(var i in map){
var owner=(_status.connectMode?lib.playerOL:game.playerMap)[i];
@ -16068,6 +16064,7 @@
}
"step 4"
game.delayx();
if(event.updatePile) game.updateRoundNumber();
},
lose:function(){
"step 0"
@ -16771,6 +16768,7 @@
"step 0"
var owner=get.owner(card)
if(owner) owner.lose(card,ui.special,'visible').set('type','equip').set('getlx',false);
else if(get.position(card)=='c') event.updatePile=true;
"step 1"
if(event.cancelled){
event.finish();
@ -16832,6 +16830,7 @@
player.$equip(card);
game.addVideo('equip',player,get.cardInfo(card));
game.log(player,'装备了',card);
if(event.updatePile) game.updateRoundNumber();
"step 5"
var info=get.info(card,false);
if(info.onEquip&&(!info.filterEquip||info.filterEquip(card,player))){
@ -16861,8 +16860,9 @@
if(cards){
var owner=get.owner(cards[0]);
if(owner){
event.relatedLose=owner.lose(cards,'visible').set('getlx',false);
event.relatedLose=owner.lose(cards,'visible',ui.special).set('getlx',false);
}
else if(get.position(cards[0])=='c') event.updatePile=true;
}
"step 1"
if(cards[0].destroyed){
@ -16934,6 +16934,7 @@
}
game.addVideo('addJudge',player,[get.cardInfo(cards[0]),cards[0].viewAs]);
}
if(event.updatePile) game.updateRoundNumber();
},
judge:function(){
"step 0"
@ -50531,6 +50532,13 @@
},
};
var get={
numOf:function(obj,item){
var num=0;
for(var i=0;i<obj.length;i++){
if(obj[i]==item) num++;
}
return num;
},
connectNickname:function(){
return typeof lib.config.connect_nickname=='string'?(lib.config.connect_nickname.slice(0,12)):'无名玩家';
},
@ -52872,10 +52880,10 @@
if(item.cardtags&&item.cardtags.contains(tag)) return true;
return false;
},
tag:function(item,tag,item2){
tag:function(item,tag,item2,bool){
var result;
if(get.info(item)&&get.info(item).ai&&get.info(item).ai.tag){
result=get.info(item).ai.tag[tag];
result=get.info(item,bool).ai.tag[tag];
}
if(typeof result=='function') return result(item,item2);
return result;

View File

@ -1,20 +1,22 @@
window.noname_update={
version:'1.9.115.1',
update:'1.9.115',
version:'1.9.115.2',
update:'1.9.115.1',
changeLog:[
'阮籍、臧洪入选稿公布',
'十周年界公孙瓒、界杜畿、界刘谌、黄祖、羊祜',
'李密入选稿公布',
'OL界荀彧',
'十周年曹华,刘虞、秦宜禄、张嫙',
'移动版阮慧、马日磾、全琮i',
'技能调整与bug修复',
],
files:[
'card/extra.js',
//'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
@ -38,12 +40,12 @@ window.noname_update={
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
'character/standard.js',
//'character/standard.js',
//'character/tw.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
//'character/xinghuoliaoyuan.js',
'character/yingbian.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
@ -66,7 +68,7 @@ window.noname_update={
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',
'game/config.js',
//'game/config.js',
//'game/package.js',
//'game/asset.js',
//'game/source.js',

BIN
image/character/caohua.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
image/character/ns_limi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
image/character/qinyilu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
image/character/ruanhui.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -1754,7 +1754,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
intro:{
content:'受到的伤害-1',
},
trigger:{player:'damageBegin1'},
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
trigger.num--;
@ -6383,7 +6383,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
preHidden:true,
content:function(){
'step 0'
event.num=game.countGroup();
var list=[],players=game.filterPlayer();
for(var target of players){
if(target.isUnseen()) continue;
var add=true;
for(var i of list){
if(i.isFriendOf(target)){
add=false;
break;
}
}
if(add) list.add(target);
}
event.num=list.length;
player.draw(event.num);
if(event.num>2) player.turnOver();
'step 1'
@ -11438,7 +11450,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzkuangfu:'狂斧',
gzkuangfu_info:'出牌阶段限一次。当你使用【杀】指定目标后,你可获得目标角色装备区内的一张牌。然后若此【杀】未造成伤害,则你弃置两张手牌。',
gzliegong:'烈弓',
gzliegong_info:'①你对手牌数不大于你的角色使用【杀】不受距离关系的限制。②当你使用【杀】指定目标后,若其体力值不小于你,则你可以选择一项:⒈令此【杀】对其的伤害值基数+1。⒉令其不响应此【杀】。',
gzliegong_info:'①你对手牌数不大于你的角色使用【杀】不受距离关系的限制。②当你使用【杀】指定目标后,若其体力值不小于你,则你可以选择一项:⒈令此【杀】对其的伤害值基数+1。⒉令其不响应此【杀】。',
gzhongyan:'红颜',
gzhongyan_info:'锁定技。①你区域内的黑桃牌和黑桃判定牌的花色视为红桃。②若你的装备区内有红桃牌,则你的手牌上限+1。',
gztianxiang:'天香',
@ -11595,6 +11607,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzdeshao_info:'每回合限X次X为你的体力值。其他角色使用黑色牌指定你为唯一目标后若其暗置的武将牌数大于等于你则你可以弃置其一张牌。',
gzmingfa:'明伐',
gzmingfa_info:'出牌阶段限一次你可以选择一名敌方角色。该角色的下个回合结束时若其手牌数小于你你对其造成1点伤害并获得其一张手牌大于你你摸X张牌X为你与其的手牌数之差且至多为5。',
gzjilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌直到回合结束。',
gzdanlao_info:'当你成为普通锦囊牌的目标后若此牌的目标数大于1则你可以摸一张牌令此牌对你无效。',
gz_cuimao:'崔琰毛玠',
gzzhengbi:'征辟',