v1.9.116
|
@ -149,7 +149,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
if(card){
|
if(card){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return (get.attitude(target,current)<0&&
|
return (get.attitude(target,current)<0&&
|
||||||
target.canUse(card,current,true,true)&&
|
target.canUse(card,current,null,true)&&
|
||||||
!current.hasSkillTag('filterDamage',null,{
|
!current.hasSkillTag('filterDamage',null,{
|
||||||
player:player,
|
player:player,
|
||||||
card:card,
|
card:card,
|
||||||
|
@ -164,7 +164,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
tag:{
|
tag:{
|
||||||
save:1
|
save:1,
|
||||||
|
recover:0.1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1070,7 +1070,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
distance:{attackFrom:-1},
|
distance:{attackFrom:-1},
|
||||||
ai:{
|
ai:{
|
||||||
equipValue:function(card,player){
|
equipValue:function(card,player){
|
||||||
if(player.identity=='unknown'||player.identity=='ye') return 2.5;
|
if(player.identity=='unknown'||player.identity=='ye') return 2;
|
||||||
return 2+game.countPlayer(function(current){
|
return 2+game.countPlayer(function(current){
|
||||||
return current.isFriendOf(player);
|
return current.isFriendOf(player);
|
||||||
})/2;
|
})/2;
|
||||||
|
|
22
card/sp.js
|
@ -156,16 +156,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
if(get.suit(card)=='spade') return -6;
|
if(get.suit(card)=='spade') return -6;
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
|
cardPrompt:function(card){
|
||||||
|
var str='出牌阶段,对你使用。你将【浮雷】置入判定区。若判定结果为♠,则目标角色受到X点雷电伤害(X为此牌判定结果为♠的次数)。判定完成后,将此牌移动到下家的判定区里。';
|
||||||
|
if(card.storage&&card.storage.fulei) str+=('<br><span style="font-family:yuanli">此牌已判定命中过:'+card.storage.fulei+'次</span>');
|
||||||
|
return str;
|
||||||
|
},
|
||||||
effect:function(){
|
effect:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
if(result.bool==false){
|
if(result.bool==false){
|
||||||
if(!card.storage.fulei){
|
var card=cards[0];
|
||||||
card.storage.fulei=1;
|
if(card){
|
||||||
|
if(!card.storage.fulei){
|
||||||
|
card.storage.fulei=1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
card.storage.fulei++;
|
||||||
|
}
|
||||||
|
player.damage(card.storage.fulei,'thunder','nosource');
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
card.storage.fulei++;
|
|
||||||
}
|
|
||||||
player.damage(card.storage.fulei,'thunder','nosource');
|
|
||||||
}
|
}
|
||||||
'step 1'
|
'step 1'
|
||||||
player.addJudgeNext(card);
|
player.addJudgeNext(card);
|
||||||
|
@ -608,7 +616,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
g_jinchan2_info:'当你因弃置而失去【金蝉脱壳】时,你摸一张牌',
|
g_jinchan2_info:'当你因弃置而失去【金蝉脱壳】时,你摸一张牌',
|
||||||
jinchan_info:'当你成为其他角色使用牌的目标时,若你的手牌里只有【金蝉脱壳】,使目标锦囊牌或基本牌对你无效,你摸两张牌。当你因弃置而失去【金蝉脱壳】时,你摸一张牌。',
|
jinchan_info:'当你成为其他角色使用牌的目标时,若你的手牌里只有【金蝉脱壳】,使目标锦囊牌或基本牌对你无效,你摸两张牌。当你因弃置而失去【金蝉脱壳】时,你摸一张牌。',
|
||||||
fulei:'浮雷',
|
fulei:'浮雷',
|
||||||
fulei_info:'出牌阶段,对你使用。将【浮雷】放置于你的判定区里,若判定结果为黑桃,则目标角色受到X点雷电伤害(X为此锦囊判定结果为黑桃的次数)。判定完成后,将此牌移动到下家的判定区里。',
|
fulei_info:'出牌阶段,对你使用。你将【浮雷】置入判定区。若判定结果为♠,则目标角色受到X点雷电伤害(X为此牌判定结果为♠的次数)。判定完成后,将此牌移动到下家的判定区里。',
|
||||||
qibaodao:'七宝刀',
|
qibaodao:'七宝刀',
|
||||||
qibaodao_info:'攻击范围2;锁定技,你使用【杀】无视目标防具,若目标角色未损失体力值,此【杀】伤害+1',
|
qibaodao_info:'攻击范围2;锁定技,你使用【杀】无视目标防具,若目标角色未损失体力值,此【杀】伤害+1',
|
||||||
qibaodao2:'七宝刀',
|
qibaodao2:'七宝刀',
|
||||||
|
|
398
character/diy.js
|
@ -85,6 +85,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
key_tenzen:['male','key',4,['tenzen_fenghuan','tenzen_retianquan']],
|
key_tenzen:['male','key',4,['tenzen_fenghuan','tenzen_retianquan']],
|
||||||
key_kyouko:['female','key',3,['kyouko_rongzhu','kyouko_gongmian']],
|
key_kyouko:['female','key',3,['kyouko_rongzhu','kyouko_gongmian']],
|
||||||
key_kyou:['female','key',3,['kyou_zhidian','kyou_duanfa']],
|
key_kyou:['female','key',3,['kyou_zhidian','kyou_duanfa']],
|
||||||
|
key_seira:['female','key',3,['seira_xinghui','seira_yuanying']],
|
||||||
|
|
||||||
ns_huangchengyan:['male','shu',3,['nslongyue','nszhenyin']],
|
ns_huangchengyan:['male','shu',3,['nslongyue','nszhenyin']],
|
||||||
ns_sunchensunjun:['male','wu',5,['nsxianhai','nsxingchu']],
|
ns_sunchensunjun:['male','wu',5,['nsxianhai','nsxingchu']],
|
||||||
|
@ -99,6 +100,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
|
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
|
||||||
ns_limi:['male','jin',3,['nstuilun']],
|
ns_limi:['male','jin',3,['nstuilun']],
|
||||||
ns_zhonglimu:['male','wu',4,['nskuanhuai','nsdingbian']],
|
ns_zhonglimu:['male','wu',4,['nskuanhuai','nsdingbian']],
|
||||||
|
prp_zhugeliang:['male','shu',3,['nsxingyun','nshanlang']],
|
||||||
|
|
||||||
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
||||||
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
|
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
|
||||||
|
@ -200,7 +202,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||||
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
||||||
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
||||||
diy_yijiang3:['ns_ruanji','ns_zanghong','ns_limi','ns_zhonglimu'],
|
diy_yijiang3:['ns_ruanji','ns_zanghong','ns_limi','ns_zhonglimu','prp_zhugeliang','key_seira'],
|
||||||
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_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_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"],
|
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
||||||
|
@ -302,6 +304,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
key_kyouko:'#b阿阿阿687',
|
key_kyouko:'#b阿阿阿687',
|
||||||
key_tenzen:'#b皋耳击',
|
key_tenzen:'#b皋耳击',
|
||||||
key_kotarou:'#bb1154486224',
|
key_kotarou:'#bb1154486224',
|
||||||
|
key_seira:'#b阿开木木W🍀',
|
||||||
|
|
||||||
ns_huangchengyan:'#g竹邀月',
|
ns_huangchengyan:'#g竹邀月',
|
||||||
ns_sunchensunjun:'#gVenusjeu',
|
ns_sunchensunjun:'#gVenusjeu',
|
||||||
|
@ -316,6 +319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_zanghong:'#g阿七',
|
ns_zanghong:'#g阿七',
|
||||||
ns_limi:'#g-心若困兽-',
|
ns_limi:'#g-心若困兽-',
|
||||||
ns_zhonglimu:'#gJG赛文♠7',
|
ns_zhonglimu:'#gJG赛文♠7',
|
||||||
|
prp_zhugeliang:'#g阿开木木W🍀',
|
||||||
|
|
||||||
ns_luyusheng:'#g猫咪大院 - 魚と水',
|
ns_luyusheng:'#g猫咪大院 - 魚と水',
|
||||||
ns_caimao:'#gP尔号玩家◆',
|
ns_caimao:'#gP尔号玩家◆',
|
||||||
|
@ -463,7 +467,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return -4;
|
return -4;
|
||||||
},
|
},
|
||||||
effect:function(){
|
effect:function(){
|
||||||
var source=card.storage.nsfuzhou_source;
|
var source=cards[0].storage.nsfuzhou_source;
|
||||||
if(!source||!source.isAlive()) return;
|
if(!source||!source.isAlive()) return;
|
||||||
source.line(player,'thunder');
|
source.line(player,'thunder');
|
||||||
if(result.color=='black'){
|
if(result.color=='black'){
|
||||||
|
@ -523,6 +527,359 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
key_lucia:['key_shizuru'],
|
key_lucia:['key_shizuru'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//樱庭星罗
|
||||||
|
seira_xinghui:{
|
||||||
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
|
check:function(event,player){
|
||||||
|
return !player.getExpansions('seira_xinghui').length;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
game.delayx();
|
||||||
|
'step 1'
|
||||||
|
if(get.isLuckyStar(player)){
|
||||||
|
event.num=6;
|
||||||
|
player.throwDice(6);
|
||||||
|
}
|
||||||
|
else player.throwDice();
|
||||||
|
'step 2'
|
||||||
|
var cards=get.cards(num);
|
||||||
|
event.cards=cards;
|
||||||
|
game.cardsGotoOrdering(cards);
|
||||||
|
var next=player.chooseToMove();
|
||||||
|
next.set('prompt','星辉:选择要作为“星屑”的牌(先选择的在上)');
|
||||||
|
next.set('list',[
|
||||||
|
['置于武将牌上',cards],
|
||||||
|
['置入弃牌堆'],
|
||||||
|
]);
|
||||||
|
next.processAI=function(list){
|
||||||
|
var cards=list[0][1],player=_status.event.player;
|
||||||
|
var top=[];
|
||||||
|
var judges=player.getCards('j');
|
||||||
|
var stopped=false;
|
||||||
|
if(!player.hasWuxie()){
|
||||||
|
for(var i=0;i<judges.length;i++){
|
||||||
|
var judge=get.judge(judges[i]);
|
||||||
|
cards.sort(function(a,b){
|
||||||
|
return judge(b)-judge(a);
|
||||||
|
});
|
||||||
|
if(judge(cards[0])<0){
|
||||||
|
stopped=true;break;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
top.unshift(cards.shift());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var bottom;
|
||||||
|
if(!stopped){
|
||||||
|
cards.sort(function(a,b){
|
||||||
|
return get.value(b,player)-get.value(a,player);
|
||||||
|
});
|
||||||
|
while(cards.length){
|
||||||
|
if(get.value(cards[0],player)<=5) break;
|
||||||
|
top.unshift(cards.shift());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bottom=cards;
|
||||||
|
return [top,bottom];
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
if(result.bool&&result.moved&&result.moved[0].length){
|
||||||
|
event.cards=result.moved[0];
|
||||||
|
player.chooseTarget(true,'将以下牌置于一名角色的武将牌上',get.translation(event.cards),function(card,player,target){
|
||||||
|
return !target.getExpansions('seira_xinghui').length;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
return target==_status.event.player?1:0;
|
||||||
|
});
|
||||||
|
event.cards.reverse();
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 4'
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.line(target,{color:[253, 153, 182]});
|
||||||
|
target.addToExpansion(cards).gaintag.add('seira_xinghui');
|
||||||
|
game.log(player,'将'+get.cnNumber(cards.length)+'张牌置于',target,'的武将牌上')
|
||||||
|
target.addSkill('seira_xinghui_hoshikuzu');
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
markcount:'expansion',
|
||||||
|
content:function(storage,player){
|
||||||
|
return '共有'+get.cnNumber(player.getExpansions('seira_xinghui').length)+'张牌';
|
||||||
|
},
|
||||||
|
onunmark:function(storage,player){
|
||||||
|
player.removeSkill('seira_xinghui_hoshikuzu');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
hoshikuzu:{
|
||||||
|
trigger:{source:'damageBegin1'},
|
||||||
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getExpansions('seira_xinghui').length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
game.log(player,'造成了','#y暴击伤害');
|
||||||
|
},
|
||||||
|
group:['seira_xinghui_draw','seira_xinghui_judge'],
|
||||||
|
},
|
||||||
|
draw:{
|
||||||
|
trigger:{player:'drawBefore'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getExpansions('seira_xinghui').length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var cards=player.getExpansions('seira_xinghui');
|
||||||
|
var num=Math.min(cards.length,trigger.num);
|
||||||
|
trigger.num-=num;
|
||||||
|
player.gain(cards.slice(0,num),'draw');
|
||||||
|
if(trigger.num==0) trigger.cancel();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
judge:{
|
||||||
|
trigger:{player:'judgeBegin'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getExpansions('seira_xinghui').length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.directresult=player.getExpansions('seira_xinghui')[0];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
seira_yuanying:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filterTarget:true,
|
||||||
|
selectTarget:2,
|
||||||
|
multitarget:true,
|
||||||
|
multiline:true,
|
||||||
|
line:{color:[253, 153, 182]},
|
||||||
|
content:function(){
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
if(!targets.contains(current)){
|
||||||
|
current.removeSkill('seira_yinyuan');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
current.addSkillLog('seira_yinyuan');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
game.delayx();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:1,
|
||||||
|
result:{target:1},
|
||||||
|
expose:0.1,
|
||||||
|
},
|
||||||
|
derivation:'seira_yinyuan',
|
||||||
|
},
|
||||||
|
seira_yinyuan:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target!=player&&target.hasSkill('seira_yinyuan',null,null,false)&&target.countCards('hej')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.gainPlayerCard(target,true,'hej');
|
||||||
|
target.recover();
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
intro:{content:'skillinfo'},
|
||||||
|
ai:{
|
||||||
|
order:9,
|
||||||
|
viewHandcard:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(player==arg) return false;
|
||||||
|
return player.hasSkill('seira_yinyuan')&&arg.hasSkill('seira_yinyuan');
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
player:function(player,target){
|
||||||
|
var effect=get.effect(target,{name:'shunshou_copy'},player,player);
|
||||||
|
if(target.isDamaged()){
|
||||||
|
if(effect<0) effect/=2;
|
||||||
|
effect+=get.recoverEffect(target,player,player);
|
||||||
|
}
|
||||||
|
return effect;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//派对浪客
|
||||||
|
nsxingyun:{
|
||||||
|
audio:2,
|
||||||
|
enable:'chooseToUse',
|
||||||
|
getSixiang:function(card){
|
||||||
|
if(typeof card=='string') card={name:card};
|
||||||
|
if(card.name=='shan') return '玄武';
|
||||||
|
var type=get.type(card,null,false);
|
||||||
|
if(type=='delay') return '朱雀';
|
||||||
|
if(get.tag(card,'damage')) return '白虎';
|
||||||
|
if(get.tag(card,'recover')) return '玄武';
|
||||||
|
if(type=='trick') return '青龙';
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.hasSkill('nsxingyun_round')) return false;
|
||||||
|
var list=player.getStorage('nsxingyun');
|
||||||
|
if(list.length>=4) return false;
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
var type=lib.skill.nsxingyun.getSixiang(i);
|
||||||
|
if(!type||list.contains(type)) continue;
|
||||||
|
if(event.filterCard({name:i},player,event)) return true;
|
||||||
|
if(i=='sha'){
|
||||||
|
for(var j of lib.inpile_nature){
|
||||||
|
if(event.filterCard({name:i,nature:j},player,event)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(event,player){
|
||||||
|
var map={青龙:[],朱雀:[],白虎:[],玄武:[]};
|
||||||
|
var list=player.getStorage('nsxingyun');
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
var type=lib.skill.nsxingyun.getSixiang(i);
|
||||||
|
if(!type||list.contains(type)) continue;
|
||||||
|
if(event.filterCard({name:i},player,event)) map[type].push([get.type2(i,false),'',i]);
|
||||||
|
if(i=='sha'){
|
||||||
|
for(var j of lib.inpile_nature){
|
||||||
|
if(event.filterCard({name:i,nature:j},player,event)) map[type].push([get.type2(i,false),'',i,j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var dialog=['星陨','hidden'];
|
||||||
|
for(var i in map){
|
||||||
|
if(map[i].length>0){
|
||||||
|
dialog.push('<div class="text center">'+i+'</div>');
|
||||||
|
dialog.push([map[i],'vcard']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ui.create.dialog.apply(ui.create,dialog);
|
||||||
|
},
|
||||||
|
filter:function(button,player){
|
||||||
|
return _status.event.getParent().filterCard({
|
||||||
|
name:button.link[2],
|
||||||
|
nature:button.link[3],
|
||||||
|
},player,_status.event.getParent());
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
if(_status.event.getParent().type!='phase') return 1;
|
||||||
|
return _status.event.player.getUseValue({
|
||||||
|
name:button.link[2],
|
||||||
|
nature:button.link[3],
|
||||||
|
},false);
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
return {
|
||||||
|
selectCard:1,
|
||||||
|
filterCard:true,
|
||||||
|
popname:true,
|
||||||
|
position:'hs',
|
||||||
|
check:function(card){
|
||||||
|
return 7-get.value(card);
|
||||||
|
},
|
||||||
|
viewAs:{name:links[0][2],nature:links[0][3]},
|
||||||
|
precontent:function(){
|
||||||
|
player.addTempSkill('nsxingyun_round');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
prompt:function(links,player){
|
||||||
|
return '将一张手牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:2.6,
|
||||||
|
order:1,
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
group:'nsxingyun_clear',
|
||||||
|
derivation:['nsxingyun_faq','bazhen'],
|
||||||
|
subSkill:{
|
||||||
|
backup:{},
|
||||||
|
clear:{
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.skill=='nsxingyun_backup'&&event.cards.length==1
|
||||||
|
&&lib.skill.nsxingyun.getSixiang(event.card)!=lib.skill.nsxingyun.getSixiang(event.cards[0])&&!player.getStorage('nsxingyun').contains(lib.skill.nsxingyun.getSixiang(event.card));
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.draw(2);
|
||||||
|
player.markAuto('nsxingyun',[lib.skill.nsxingyun.getSixiang(trigger.card)]);
|
||||||
|
'step 1'
|
||||||
|
if(player.getStorage('nsxingyun').length>=4) player.addSkillLog('bazhen');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
round:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nshanlang:{
|
||||||
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h')>0&&game.hasPlayer(
|
||||||
|
(current)=>player!=current&&player.canCompare(current)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var goon=player.hasCard(function(card){
|
||||||
|
return get.value(card)<=7;
|
||||||
|
},'h');
|
||||||
|
player.chooseTarget([1,3],get.prompt('nshanlang'),'和至多三名角色进行拼点',function(card,player,target){
|
||||||
|
return target!=player&&player.canCompare(target);
|
||||||
|
}).set('ai',function(target){
|
||||||
|
if(!_status.event.goon) return false;
|
||||||
|
var att=get.attitude(_status.event.player,target);
|
||||||
|
if(att>=0) return 0;
|
||||||
|
if(target.hasSkillTag('noh')) att/=3;
|
||||||
|
return -att/Math.sqrt(target.countCards('h'));
|
||||||
|
}).set('goon',goon);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
event.max_num=0;
|
||||||
|
var targets=result.targets.sortBySeat();
|
||||||
|
player.logSkill('nshanlang',targets);
|
||||||
|
player.chooseToCompare(targets).callback=lib.skill.nshanlang.callback;
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(event.target){
|
||||||
|
player.chooseBool('是否令'+get.translation(target)+'获得一张牌?').set('goon',get.attitude(player,target)>0).set('ai',()=>_status.event.goon);
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
if(result.bool){
|
||||||
|
var card=get.cardPile2(function(card){
|
||||||
|
return !lib.skill.nsxingyun.getSixiang(card);
|
||||||
|
});
|
||||||
|
if(card) target.gain(card,'gain2');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
callback:function(){
|
||||||
|
var list=[[player,event.num1],[target,event.num2]],evt=event.getParent(2);
|
||||||
|
for(var i of list){
|
||||||
|
if(i[1]>evt.max_num){
|
||||||
|
evt.max_num=i[1];
|
||||||
|
evt.target=i[0];
|
||||||
|
}
|
||||||
|
else if(evt.target&&i[1]==evt.max_num&&i[0]!=evt.target){
|
||||||
|
delete evt.target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
//钟离牧
|
//钟离牧
|
||||||
nskuanhuai:{
|
nskuanhuai:{
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
@ -2283,6 +2640,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
if(get.position(result.card,true)=='o'){
|
if(get.position(result.card,true)=='o'){
|
||||||
var pos=event.positions.randomRemove();
|
var pos=event.positions.randomRemove();
|
||||||
|
event._first_pos=pos;
|
||||||
game.broadcastAll(function(card,id,player,pos){
|
game.broadcastAll(function(card,id,player,pos){
|
||||||
lib.skill.yuuki_yicha.addCard(card,id,pos);
|
lib.skill.yuuki_yicha.addCard(card,id,pos);
|
||||||
lib.skill.yuuki_yicha.changePrompt(get.translation(player)+'放置了'+get.translation(card),id);
|
lib.skill.yuuki_yicha.changePrompt(get.translation(player)+'放置了'+get.translation(card),id);
|
||||||
|
@ -2296,7 +2654,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
if(get.position(result.card,true)=='o'){
|
if(get.position(result.card,true)=='o'){
|
||||||
var pos=event.positions.randomRemove();
|
var list=event.positions;
|
||||||
|
if(get.isLuckyStar(player)){
|
||||||
|
var index=(get.color(cards[0],false)==get.color(result.card,false)?0:1);
|
||||||
|
list=list.filter(function(i){
|
||||||
|
return Math.abs(i%2-event._first_pos%2)==index;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
var pos=list.randomRemove();
|
||||||
game.broadcastAll(function(card,id,player,pos){
|
game.broadcastAll(function(card,id,player,pos){
|
||||||
lib.skill.yuuki_yicha.addCard(card,id,pos);
|
lib.skill.yuuki_yicha.addCard(card,id,pos);
|
||||||
lib.skill.yuuki_yicha.changePrompt(get.translation(player)+'放置了'+get.translation(card),id);
|
lib.skill.yuuki_yicha.changePrompt(get.translation(player)+'放置了'+get.translation(card),id);
|
||||||
|
@ -15640,7 +16005,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var card=target.getCards('hej').randomGet();
|
var cards=target.getCards('hej');
|
||||||
|
if(get.isLuckyStar(player)){
|
||||||
|
var cardx=ui.cardPile.firstChild;
|
||||||
|
if(cardx){
|
||||||
|
var color=get.color(card),cardsx=cards.filter(function(i){
|
||||||
|
return get.color(i)==color;
|
||||||
|
});
|
||||||
|
if(cardsx.length>0) cards=cardsx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var card=cards.randomGet();
|
||||||
event.card=card;
|
event.card=card;
|
||||||
player.gain(card,target,'giveAuto','bySelf');
|
player.gain(card,target,'giveAuto','bySelf');
|
||||||
player.draw();
|
player.draw();
|
||||||
|
@ -16283,6 +16658,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
kyou_zhidian_info:'你可以将一张锦囊牌当做【杀】使用(无距离限制)。当你使用【杀】指定第一个目标后,你选择一个与上次不同的选项:①此【杀】不可被响应。②此【杀】无视防具。③此【杀】伤害+1。④此【杀】不计入次数限制。',
|
kyou_zhidian_info:'你可以将一张锦囊牌当做【杀】使用(无距离限制)。当你使用【杀】指定第一个目标后,你选择一个与上次不同的选项:①此【杀】不可被响应。②此【杀】无视防具。③此【杀】伤害+1。④此【杀】不计入次数限制。',
|
||||||
kyou_duanfa:'断发',
|
kyou_duanfa:'断发',
|
||||||
kyou_duanfa_info:'限定技,当你受到伤害时,若伤害值不小于你的体力值,则你可弃置所有手牌,防止此伤害并回复1点体力;且当你于你的下回合开始前成为【杀】或伤害性锦囊牌的目标后,你摸一张牌。',
|
kyou_duanfa_info:'限定技,当你受到伤害时,若伤害值不小于你的体力值,则你可弃置所有手牌,防止此伤害并回复1点体力;且当你于你的下回合开始前成为【杀】或伤害性锦囊牌的目标后,你摸一张牌。',
|
||||||
|
key_seira:'樱庭星罗',
|
||||||
|
seira_xinghui:'星辉',
|
||||||
|
seira_xinghui_info:'准备阶段,你可以投掷一枚骰子,观看牌堆顶的X张牌(X为投掷点数)并以任意顺序扣置于一名没有“星屑”的角色的武将牌上,称为“星屑”。有“星屑”的角色造成的伤害+1,且当其从牌堆顶摸牌或取得判定牌时,改为从“星屑”中获取。',
|
||||||
|
seira_yuanying:'缘映',
|
||||||
|
seira_yuanying_info:'出牌阶段限一次,你可选择两名角色。这两名角色成为“姻缘者”且获得〖姻缘〗直到你下次发动〖缘映〗。',
|
||||||
|
seira_yinyuan:'姻缘',
|
||||||
|
seira_yinyuan_info:'你的手牌对其他“姻缘者”可见。出牌阶段限一次,你可以获得一名其他“姻缘者”区域内的一张牌,然后其回复1点体力。',
|
||||||
|
|
||||||
noname:"小无",
|
noname:"小无",
|
||||||
noname_zhuyuan:"祝愿",
|
noname_zhuyuan:"祝愿",
|
||||||
|
@ -16610,6 +16992,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
nskuanhuai_info:'出牌阶段开始时,你可以从弃牌堆中获得一张非基本牌。若如此做:你本阶段内不能使用基本牌,且本回合的弃牌阶段结束时,你可以依次使用本阶段内弃置的基本牌。',
|
nskuanhuai_info:'出牌阶段开始时,你可以从弃牌堆中获得一张非基本牌。若如此做:你本阶段内不能使用基本牌,且本回合的弃牌阶段结束时,你可以依次使用本阶段内弃置的基本牌。',
|
||||||
nsdingbian:'定边',
|
nsdingbian:'定边',
|
||||||
nsdingbian_info:'锁定技。当你于回合内使用锦囊牌或装备牌后,你令自己本回合的手牌上限-1且选择一项:⒈从牌堆获得一张基本牌。⒉令一种基本牌于本回合内不计入手牌上限。',
|
nsdingbian_info:'锁定技。当你于回合内使用锦囊牌或装备牌后,你令自己本回合的手牌上限-1且选择一项:⒈从牌堆获得一张基本牌。⒉令一种基本牌于本回合内不计入手牌上限。',
|
||||||
|
prp_zhugeliang_ab:'诸葛亮',
|
||||||
|
prp_zhugeliang:'派对浪客',
|
||||||
|
nsxingyun:'星陨',
|
||||||
|
nsxingyun_info:'每回合限一次。你可以将一张手牌当做任意一张符合“四象天阵”的牌使用。然后若这两张牌的类型不同,则你删除此“四象天阵”并摸两张牌。当你删除“四象天阵”中的最后一个项目后,你获得技能〖八阵〗。',
|
||||||
|
nsxingyun_faq:'四象天阵',
|
||||||
|
nsxingyun_faq_info:'青龙:无标签普通锦囊牌<br>朱雀:延时锦囊牌<br>白虎:伤害类卡牌<br>玄武:【闪】/回复类卡牌',
|
||||||
|
nshanlang:'酣浪',
|
||||||
|
nshanlang_info:'准备阶段,你可以和至多三名角色拼点。然后若这些角色中有拼点牌唯一最大的角色,则你可以令该角色从牌堆中获得一张不符合“四象天阵”的牌。',
|
||||||
|
|
||||||
junk_zhangrang:'四花张让',
|
junk_zhangrang:'四花张让',
|
||||||
junktaoluan:'滔乱',
|
junktaoluan:'滔乱',
|
||||||
|
|
|
@ -264,19 +264,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var list=[];
|
var list=[];
|
||||||
var equip3=target.getEquip(3);
|
var equip3=target.getEquip(3);
|
||||||
var equip4=target.getEquip(4);
|
var equip4=target.getEquip(4);
|
||||||
if(equip3&&evt.filterCard(get.autoViewAs({
|
var backupx=_status.event;
|
||||||
name:'shan',
|
_status.event=evt;
|
||||||
storage:{shouli:true},
|
try{
|
||||||
},[equip3]),player,evt)) list.push('shan');
|
if(equip3){
|
||||||
var sha=get.autoViewAs({
|
var shan=get.autoViewAs({
|
||||||
name:'sha',
|
name:'shan',
|
||||||
storage:{shouli:true},
|
storage:{shouli:true},
|
||||||
},[equip4]);
|
},[equip3]);
|
||||||
if(equip4&&evt.filterCard(sha,player,evt)){
|
if(evt.filterCard(shan,player,event)) list.push('shan');
|
||||||
if(!evt.filterTarget||game.hasPlayer(function(current){
|
}
|
||||||
return evt.filterTarget(sha,player,current);
|
if(equip4){
|
||||||
})) list.push('sha');
|
var sha=get.autoViewAs({
|
||||||
};
|
name:'sha',
|
||||||
|
storage:{shouli:true},
|
||||||
|
},[equip4]);
|
||||||
|
if(evt.filterCard(sha,player,evt)&&(!evt.filterTarget||game.hasPlayer(function(current){
|
||||||
|
return evt.filterTarget(sha,player,current);
|
||||||
|
}))) list.push('sha');
|
||||||
|
};
|
||||||
|
}catch(e){game.print(e)};
|
||||||
|
_status.event=backupx;
|
||||||
if(list.length==1) event._result={
|
if(list.length==1) event._result={
|
||||||
bool:true,
|
bool:true,
|
||||||
links:[list[0]=='shan'?equip3:equip4],
|
links:[list[0]=='shan'?equip3:equip4],
|
||||||
|
@ -1003,7 +1011,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
group:'jiufa_count',
|
group:'jiufa_count',
|
||||||
subSkill:{
|
subSkill:{
|
||||||
count:{
|
count:{
|
||||||
trigger:{player:'useCard1'},
|
trigger:{player:['useCard1','respond']},
|
||||||
forced:true,
|
forced:true,
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
|
@ -6163,7 +6171,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时,若你有牌且你的体力上限大于1,则你防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
|
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时,若你有牌且你的体力上限大于1,则你防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
|
||||||
shen_jiangwei:'神姜维',
|
shen_jiangwei:'神姜维',
|
||||||
jiufa:'九伐',
|
jiufa:'九伐',
|
||||||
jiufa_info:'①当你声明使用牌时,你记录此牌的牌名。②当你使用或打出的牌结算结束后,若你的〖九伐〗记录中包含至少⑨种不同的牌名,则你可以展示牌堆顶的⑨张牌,选择并获得其中任意张点数各不相同且{这九张牌中存在未被选择且和已选择的牌点数相同}的牌,清除所有的记录,将其余牌置入弃牌堆。',
|
jiufa_info:'①当你声明使用或打出牌时,你记录此牌的牌名。②当你使用或打出的牌结算结束后,若你的〖九伐〗记录中包含至少⑨种不同的牌名,则你可以展示牌堆顶的⑨张牌,选择并获得其中任意张点数各不相同且{这九张牌中存在未被选择且和已选择的牌点数相同}的牌,清除所有的记录,将其余牌置入弃牌堆。',
|
||||||
tianren:'天任',
|
tianren:'天任',
|
||||||
tianren_info:'锁定技。①当有一张基本牌或普通锦囊牌不因使用而进入弃牌堆后,你获得一枚“天任”标记。②当你获得“天任”标记或体力上限变化后,若你的“天任”数不小于X,则你移去X枚“天任”,加1点体力上限并摸两张牌(X为你的体力上限)。',
|
tianren_info:'锁定技。①当有一张基本牌或普通锦囊牌不因使用而进入弃牌堆后,你获得一枚“天任”标记。②当你获得“天任”标记或体力上限变化后,若你的“天任”数不小于X,则你移去X枚“天任”,加1点体力上限并摸两张牌(X为你的体力上限)。',
|
||||||
pingxiang:'平襄',
|
pingxiang:'平襄',
|
||||||
|
|
|
@ -14673,15 +14673,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"rw_tengjia4":{
|
rw_tengjia4:{
|
||||||
inherit:"tengjia3",
|
inherit:"tengjia3",
|
||||||
audio:"tengjia1",
|
audio:"tengjia1",
|
||||||
},
|
},
|
||||||
"xinfu_pingcai":{
|
xinfu_pingcai:{
|
||||||
"wolong_card":function(){
|
subSkill:{backup:{}},
|
||||||
|
wolong_card:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var ingame=game.hasPlayer(function(current){
|
var ingame=game.hasPlayer(function(current){
|
||||||
return ['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name2);
|
return ['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang','prp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang','prp_zhugeliang'].contains(current.name2);
|
||||||
})?true:false;
|
})?true:false;
|
||||||
var prompt='请选择';
|
var prompt='请选择';
|
||||||
prompt+=ingame?'至多两名':'一名';
|
prompt+=ingame?'至多两名':'一名';
|
||||||
|
@ -14700,7 +14701,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fengchu_card":function(){
|
fengchu_card:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var ingame=game.hasPlayer(function(current){
|
var ingame=game.hasPlayer(function(current){
|
||||||
return ['re_pangtong','pangtong','ol_pangtong'].contains(current.name)||['re_pangtong','pangtong','ol_pangtong'].contains(current.name2);
|
return ['re_pangtong','pangtong','ol_pangtong'].contains(current.name)||['re_pangtong','pangtong','ol_pangtong'].contains(current.name2);
|
||||||
|
@ -14722,10 +14723,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xuanjian_card":function(){
|
xuanjian_card:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.ingame=game.hasPlayer(function(current){
|
event.ingame=game.hasPlayer(function(current){
|
||||||
return ['re_xushu','xin_xushu','xushu'].contains(current.name)||['re_xushu','xin_xushu','xushu'].contains(current.name2);
|
return ['re_xushu','xin_xushu','xushu','dc_xushu'].contains(current.name)||['re_xushu','xin_xushu','xushu','dc_xushu'].contains(current.name2);
|
||||||
})?true:false;
|
})?true:false;
|
||||||
var prompt='请选择一名角色,令其回复一点体力并摸一张牌';
|
var prompt='请选择一名角色,令其回复一点体力并摸一张牌';
|
||||||
prompt+=event.ingame?',然后你摸一张牌。':'。';
|
prompt+=event.ingame?',然后你摸一张牌。':'。';
|
||||||
|
@ -14742,7 +14743,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(event.ingame) player.draw();
|
if(event.ingame) player.draw();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shuijing_card":function(){
|
shuijing_card:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.ingame=game.hasPlayer(function(current){
|
event.ingame=game.hasPlayer(function(current){
|
||||||
return current.name=='simahui'||current.name2=='simahui';
|
return current.name=='simahui'||current.name2=='simahui';
|
||||||
|
@ -14850,70 +14851,264 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:true,
|
audio:true,
|
||||||
enable:"phaseUse",
|
enable:"phaseUse",
|
||||||
usable:1,
|
usable:1,
|
||||||
content:function(){
|
chooseButton:{
|
||||||
"step 0"
|
dialog:function(){
|
||||||
var list=["wolong","fengchu","xuanjian","shuijing"];
|
var list=["wolong","fengchu","xuanjian","shuijing"];
|
||||||
var list2=[];
|
for(var i=0;i<list.length;i++){
|
||||||
for(var i=0;i<list.length;i++){
|
list[i]=['','',list[i]+'_card'];
|
||||||
list2.push(game.createCard(list[i]+'_card','',''))
|
}
|
||||||
}
|
return ui.create.dialog('评才',[list,'vcard']);
|
||||||
//list2.randomSort();
|
},
|
||||||
event.time=get.utc();
|
check:function(button){
|
||||||
player.chooseButton(['请选择要擦拭的宝物',list2],true).set('ai',function(button){
|
var name=button.link[2];
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(button.link.name=='xuanjian_card'){
|
if(name=='xuanjian_card'){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return current.isDamaged()&¤t.hp<3&&get.attitude(player,current)>1;
|
return current.isDamaged()&¤t.hp<3&&get.attitude(player,current)>1;
|
||||||
})) return 1+Math.random();
|
})) return 1+Math.random();
|
||||||
else return 1;
|
else return 1;
|
||||||
}
|
}
|
||||||
else if(button.link.name=='wolong_card'){
|
else if(name=='wolong_card'){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return get.damageEffect(current,player,player,'fire')>0;
|
return get.damageEffect(current,player,player,'fire')>0;
|
||||||
})) return 1.2+Math.random();
|
})) return 1.2+Math.random();
|
||||||
else return 0.5;
|
else return 0.5;
|
||||||
}
|
}
|
||||||
else return 0.6;
|
else return 0.6;
|
||||||
});
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
return {
|
||||||
|
audio:'xinfu_pingcai',
|
||||||
|
filterCard:()=>false,
|
||||||
|
selectCard:-1,
|
||||||
|
takara:links[0][2],
|
||||||
|
content:lib.skill.xinfu_pingcai.contentx,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
contentx:function(){
|
||||||
|
"step 0"
|
||||||
|
event.pingcai_delayed=true;
|
||||||
|
var name=lib.skill.xinfu_pingcai_backup.takara;
|
||||||
|
event.cardname=name;
|
||||||
|
event.videoId=lib.status.videoId++;
|
||||||
|
if(player.isUnderControl()){
|
||||||
|
game.swapPlayerAuto(player);
|
||||||
|
}
|
||||||
|
var switchToAuto=function(){
|
||||||
|
game.pause();
|
||||||
|
game.countChoose();
|
||||||
|
setTimeout(function(){
|
||||||
|
_status.imchoosing=false;
|
||||||
|
event._result={
|
||||||
|
bool:true,
|
||||||
|
};
|
||||||
|
game.resume();
|
||||||
|
},9000);
|
||||||
|
};
|
||||||
|
var createDialog=function(player,id,name){
|
||||||
|
if(player==game.me) return;
|
||||||
|
var dialog=ui.create.dialog('forcebutton','hidden');
|
||||||
|
var str=get.translation(player)+'正在擦拭宝物上的灰尘…';
|
||||||
|
var canSkip=(!_status.connectMode);
|
||||||
|
if(canSkip) str+='<br>(点击宝物可以跳过等待AI操作)';
|
||||||
|
dialog.textPrompt=dialog.add('<div class="text center">'+str+'</div>');
|
||||||
|
dialog.classList.add('fixed');
|
||||||
|
dialog.classList.add('scroll1');
|
||||||
|
dialog.classList.add('scroll2');
|
||||||
|
dialog.classList.add('fullwidth');
|
||||||
|
dialog.classList.add('fullheight');
|
||||||
|
dialog.classList.add('noupdate');
|
||||||
|
dialog.videoId=id;
|
||||||
|
|
||||||
|
var canvas2=document.createElement('canvas');
|
||||||
|
dialog.canvas_viewer=canvas2;
|
||||||
|
dialog.appendChild(canvas2);
|
||||||
|
canvas2.classList.add('grayscale');
|
||||||
|
canvas2.style.position="absolute";
|
||||||
|
canvas2.style.width='249px';
|
||||||
|
canvas2.style.height='249px';
|
||||||
|
canvas2.style['border-radius']='6px';
|
||||||
|
canvas2.style.left="calc(50% - 125px)";
|
||||||
|
canvas2.style.top="calc(50% - 125px)";
|
||||||
|
canvas2.width=249;
|
||||||
|
canvas2.height=249;
|
||||||
|
canvas2.style.border='3px solid';
|
||||||
|
|
||||||
|
var ctx2=canvas2.getContext('2d');
|
||||||
|
var img=new Image();
|
||||||
|
img.src=lib.assetURL+'image/card/'+name+'.png';
|
||||||
|
img.onload=function(){
|
||||||
|
ctx2.drawImage(this,0,0,this.width,this.height,0,0,canvas2.width,canvas2.height);
|
||||||
|
}
|
||||||
|
if(canSkip){
|
||||||
|
var skip=function(){
|
||||||
|
if(event.pingcai_delayed){
|
||||||
|
delete event.pingcai_delayed;
|
||||||
|
event._result={
|
||||||
|
bool:true,
|
||||||
|
};
|
||||||
|
game.resume();
|
||||||
|
canvas2.removeEventListener(lib.config.touchscreen?'touchend':'click',skip);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
canvas2.addEventListener(lib.config.touchscreen?'touchend':'click',skip);
|
||||||
|
}
|
||||||
|
dialog.open();
|
||||||
|
};
|
||||||
|
var chooseButton=function(id,name){
|
||||||
|
var event=_status.event;
|
||||||
|
_status.xinfu_pingcai_finished=false;
|
||||||
|
|
||||||
|
var dialog=ui.create.dialog('forcebutton','hidden');
|
||||||
|
dialog.textPrompt=dialog.add('<div class="text center">擦拭掉宝物上的灰尘吧!</div>');
|
||||||
|
event.switchToAuto=function(){
|
||||||
|
event._result={
|
||||||
|
bool:_status.xinfu_pingcai_finished,
|
||||||
|
};
|
||||||
|
game.resume();
|
||||||
|
_status.imchoosing=false;
|
||||||
|
_status.xinfu_pingcai_finished=true;
|
||||||
|
};
|
||||||
|
dialog.classList.add('fixed');
|
||||||
|
dialog.classList.add('scroll1');
|
||||||
|
dialog.classList.add('scroll2');
|
||||||
|
dialog.classList.add('fullwidth');
|
||||||
|
dialog.classList.add('fullheight');
|
||||||
|
dialog.classList.add('noupdate');
|
||||||
|
dialog.videoId=id;
|
||||||
|
|
||||||
|
var canvas=document.createElement('canvas');
|
||||||
|
var canvas2=document.createElement('canvas');
|
||||||
|
|
||||||
|
dialog.appendChild(canvas2);
|
||||||
|
dialog.appendChild(canvas);
|
||||||
|
|
||||||
|
canvas.style.position="absolute";
|
||||||
|
canvas.style.width='249px';
|
||||||
|
canvas.style.height='249px';
|
||||||
|
canvas.style['border-radius']='6px';
|
||||||
|
canvas.style.left="calc(50% - 125px)";
|
||||||
|
canvas.style.top="calc(50% - 125px)";
|
||||||
|
canvas.width=249;
|
||||||
|
canvas.height=249;
|
||||||
|
canvas.style.border='3px solid';
|
||||||
|
|
||||||
|
canvas2.style.position="absolute";
|
||||||
|
canvas2.style.width='249px';
|
||||||
|
canvas2.style.height='249px';
|
||||||
|
canvas2.style['border-radius']='6px';
|
||||||
|
canvas2.style.left="calc(50% - 125px)";
|
||||||
|
canvas2.style.top="calc(50% - 125px)";
|
||||||
|
canvas2.width=249;
|
||||||
|
canvas2.height=249;
|
||||||
|
canvas2.style.border='3px solid';
|
||||||
|
|
||||||
|
var ctx=canvas.getContext('2d');
|
||||||
|
var ctx2=canvas2.getContext('2d');
|
||||||
|
|
||||||
|
var img=new Image();
|
||||||
|
img.src=lib.assetURL+'image/card/'+name+'.png';
|
||||||
|
img.onload=function(){
|
||||||
|
ctx2.drawImage(this,0,0,this.width,this.height,0,0,canvas2.width,canvas2.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.fillStyle='lightgray';
|
||||||
|
ctx.fillRect(0,0,canvas.width,canvas.height);
|
||||||
|
|
||||||
|
canvas.onmousedown=function(ev){
|
||||||
|
//if(_status.xinfu_pingcai_finished) return;
|
||||||
|
canvas.onmousemove=function(e){
|
||||||
|
if(_status.xinfu_pingcai_finished) return;
|
||||||
|
ctx.beginPath();
|
||||||
|
ctx.clearRect(e.offsetX-16,e.offsetY-16,32,32);
|
||||||
|
var data=ctx.getImageData(canvas.width*0.1,canvas.height*0.1,canvas.width*0.8,canvas.height*0.8).data;
|
||||||
|
var sum=0;
|
||||||
|
for(var i=3;i<data.length;i+=4){
|
||||||
|
if(data[i]==0){
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(sum>=(canvas.width*canvas.height)*0.6){
|
||||||
|
//ctx.clearRect(0,0,canvas.width,canvas.height);
|
||||||
|
if(!_status.xinfu_pingcai_finished){
|
||||||
|
_status.xinfu_pingcai_finished=true;
|
||||||
|
event.switchToAuto();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
canvas.ontouchstart=function(ev){
|
||||||
|
//if(_status.xinfu_pingcai_finished) return;
|
||||||
|
canvas.ontouchmove=function(e){
|
||||||
|
if(_status.xinfu_pingcai_finished) return;
|
||||||
|
ctx.beginPath();
|
||||||
|
var rect=canvas.getBoundingClientRect();
|
||||||
|
var X=((e.touches[0].clientX-rect.left)/rect.width*canvas.width);
|
||||||
|
var Y=((e.touches[0].clientY-rect.top)/rect.height*canvas.height);
|
||||||
|
ctx.clearRect(X-16,Y-16,32,32);
|
||||||
|
var data=ctx.getImageData(canvas.width*0.1,canvas.height*0.1,canvas.width*0.8,canvas.height*0.8).data;
|
||||||
|
var sum=0;
|
||||||
|
for(var i=3;i<data.length;i+=4){
|
||||||
|
if(data[i]==0){
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(sum>=(canvas.width*canvas.height)*0.6){
|
||||||
|
if(!_status.xinfu_pingcai_finished){
|
||||||
|
_status.xinfu_pingcai_finished=true;
|
||||||
|
event.switchToAuto();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
canvas.onmouseup=function(ev){
|
||||||
|
canvas.onmousemove=null;
|
||||||
|
}
|
||||||
|
canvas.ontouchend=function(ev){
|
||||||
|
canvas.ontouchmove=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.open();
|
||||||
|
|
||||||
|
game.pause();
|
||||||
|
game.countChoose();
|
||||||
|
};
|
||||||
|
//event.switchToAuto=switchToAuto;
|
||||||
|
game.broadcastAll(createDialog,player,event.videoId,name);
|
||||||
|
if(event.isMine()){
|
||||||
|
chooseButton(event.videoId,name);
|
||||||
|
}
|
||||||
|
else if(event.isOnline()){
|
||||||
|
event.player.send(chooseButton,event.videoId,name);
|
||||||
|
event.player.wait();
|
||||||
|
game.pause();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
switchToAuto();
|
||||||
|
}
|
||||||
"step 1"
|
"step 1"
|
||||||
var delay=8400-(get.utc()-event.time);
|
var result=event.result||result;
|
||||||
if(delay>0){
|
if(!result) result={bool:false};
|
||||||
event.delay2=true;
|
event._result=result;
|
||||||
event.dialog=ui.create.dialog(get.translation(player)+'正在擦拭宝物...'+(_status.connectMode?'':'<br>(点击屏幕可跳过等待)'));
|
game.broadcastAll(function(id,result,player){
|
||||||
event.videoId=lib.status.videoId++;
|
_status.xinfu_pingcai_finished=true;
|
||||||
game.broadcast('createDialog',event.videoId,get.translation(player)+'正在擦拭宝物...');
|
var dialog=get.idDialog(id);
|
||||||
game.pause();
|
if(dialog){
|
||||||
event.pingcai_delayed=true;
|
dialog.textPrompt.innerHTML='<div class="text center">'+(get.translation(player)+'擦拭宝物'+(result.bool?'成功!':'失败…'))+'</div>';
|
||||||
setTimeout(function(){
|
if(result.bool&&dialog.canvas_viewer) dialog.canvas_viewer.classList.remove('grayscale');
|
||||||
if(event.pingcai_delayed==true){
|
}
|
||||||
delete event.pingcai_delayed;
|
if(!_status.connectMode) delete event.pingcai_delayed;
|
||||||
game.resume();
|
},event.videoId,result,player);
|
||||||
}
|
game.delay(2.5);
|
||||||
},delay);
|
|
||||||
if(!_status.connectMode){
|
|
||||||
event.forceMine=true;
|
|
||||||
event.custom.replace.window=function(){
|
|
||||||
if(event.pingcai_delayed==true){
|
|
||||||
delete event.forceMine;
|
|
||||||
delete event.pingcai_delayed;
|
|
||||||
game.resume();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
event.card=result.links[0];
|
|
||||||
"step 2"
|
"step 2"
|
||||||
if(event.delay2){
|
game.broadcastAll('closeDialog',event.videoId);
|
||||||
delete event.custom.replace.window;
|
if(result.bool){
|
||||||
event.dialog.close();
|
player.logSkill('pcaudio_'+event.cardname);
|
||||||
game.addVideo('cardDialog',null,event.videoId);
|
event.insert(lib.skill.xinfu_pingcai[event.cardname],{
|
||||||
game.broadcast('closeDialog',event.videoId);
|
player:player,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
player.logSkill('pcaudio_'+event.card.name);
|
|
||||||
player.$throw(event.card);
|
|
||||||
event.insert(lib.skill.xinfu_pingcai[event.card.name],{
|
|
||||||
player:player,
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:7,
|
order:7,
|
||||||
|
|
|
@ -584,7 +584,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ol_zhuran:'OL朱然',
|
ol_zhuran:'OL朱然',
|
||||||
ol_guansuo:'OL关索',
|
ol_guansuo:'OL关索',
|
||||||
ol_manchong:'OL满宠',
|
ol_manchong:'OL满宠',
|
||||||
old_fuhuanghou:'旧伏皇后',
|
old_fuhuanghou:'旧伏寿',
|
||||||
old_caochong:'旧曹冲',
|
old_caochong:'旧曹冲',
|
||||||
old_guanqiujian:'旧毌丘俭',
|
old_guanqiujian:'旧毌丘俭',
|
||||||
old_huangfusong:'旧皇甫嵩',
|
old_huangfusong:'旧皇甫嵩',
|
||||||
|
|
|
@ -526,6 +526,7 @@ window.noname_character_rank={
|
||||||
'dc_sunru',
|
'dc_sunru',
|
||||||
'dc_wangchang',
|
'dc_wangchang',
|
||||||
'fengfang',
|
'fengfang',
|
||||||
|
'prp_zhugeliang',
|
||||||
],
|
],
|
||||||
bp:[
|
bp:[
|
||||||
'chess_diaochan',
|
'chess_diaochan',
|
||||||
|
@ -802,6 +803,10 @@ window.noname_character_rank={
|
||||||
'caohua',
|
'caohua',
|
||||||
'zhaoang',
|
'zhaoang',
|
||||||
'ns_zhonglimu',
|
'ns_zhonglimu',
|
||||||
|
'caoxiancaohua',
|
||||||
|
'dc_liuba',
|
||||||
|
'key_seira',
|
||||||
|
'lukai',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
|
@ -1039,6 +1044,7 @@ window.noname_character_rank={
|
||||||
'qinyilu',
|
'qinyilu',
|
||||||
'zhaoyǎn',
|
'zhaoyǎn',
|
||||||
'zhangxun',
|
'zhangxun',
|
||||||
|
'xiahoulingnv',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
@ -1415,6 +1421,7 @@ window.noname_character_rank={
|
||||||
'key_kyou',
|
'key_kyou',
|
||||||
'key_erika',
|
'key_erika',
|
||||||
'key_satomi',
|
'key_satomi',
|
||||||
|
'key_seira',
|
||||||
'noname',
|
'noname',
|
||||||
],
|
],
|
||||||
epic:[
|
epic:[
|
||||||
|
@ -1597,6 +1604,7 @@ window.noname_character_rank={
|
||||||
'ol_xunyu',
|
'ol_xunyu',
|
||||||
'ns_zhonglimu',
|
'ns_zhonglimu',
|
||||||
'dc_sunru',
|
'dc_sunru',
|
||||||
|
'prp_zhugeliang',
|
||||||
'key_kano',
|
'key_kano',
|
||||||
'key_haruko',
|
'key_haruko',
|
||||||
'key_akiko',
|
'key_akiko',
|
||||||
|
@ -2006,6 +2014,8 @@ window.noname_character_rank={
|
||||||
'dc_jiling',
|
'dc_jiling',
|
||||||
'dc_wangchang',
|
'dc_wangchang',
|
||||||
'jin_zhouchu',
|
'jin_zhouchu',
|
||||||
|
'lukai',
|
||||||
|
'caoxiancaohua',
|
||||||
],
|
],
|
||||||
junk:[
|
junk:[
|
||||||
'sunshao',
|
'sunshao',
|
||||||
|
@ -2027,6 +2037,7 @@ window.noname_character_rank={
|
||||||
'fanjiangzhangda',
|
'fanjiangzhangda',
|
||||||
'wangxiang',
|
'wangxiang',
|
||||||
'duji',
|
'duji',
|
||||||
|
'dc_liuba',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1886,6 +1886,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//徐晃
|
//徐晃
|
||||||
olduanliang:{
|
olduanliang:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
locked:false,
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
return (get.type2(card)!='trick'&&get.color(card)=='black');
|
return (get.type2(card)!='trick'&&get.color(card)=='black');
|
||||||
|
@ -4203,12 +4204,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
residi2:{
|
residi2:{
|
||||||
onremove:true,
|
onremove:true,
|
||||||
mod:{
|
mod:{
|
||||||
cardEnabled2:function(card,player){
|
cardEnabled:function(card,player){
|
||||||
|
if(player.getStorage('residi2').contains(get.color(card,player))) return false;
|
||||||
|
},
|
||||||
|
cardRespondable:function(card,player){
|
||||||
|
if(player.getStorage('residi2').contains(get.color(card,player))) return false;
|
||||||
|
},
|
||||||
|
cardSavable:function(card,player){
|
||||||
if(player.getStorage('residi2').contains(get.color(card,player))) return false;
|
if(player.getStorage('residi2').contains(get.color(card,player))) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
content:'不能使用$的牌',
|
content:'不能使用或打出$牌',
|
||||||
},
|
},
|
||||||
marktext:'敌',
|
marktext:'敌',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1393,7 +1393,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
order:11,
|
order:11,
|
||||||
result:{
|
result:{
|
||||||
player:function(player){
|
player:function(player){
|
||||||
if(game.countPlayer(function(current){return (current.countCards('h')>player.countCards('h')||current.countCards('e')>player.countCards('e'))&&get.attitude(player,current)<0&&!player.storage.nzry_feijun.contains(current)})>0||game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0})>0||(player.countCards('h')>=2&&game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')&&get.attitude(player,current)<0})>0)) return 1;
|
if(game.hasPlayer(function(current){
|
||||||
|
return (current.countCards('h')>player.countCards('h')||current.countCards('e')>player.countCards('e'))&&get.attitude(player,current)<0&&player.getStorage('nzry_feijun').contains(current);
|
||||||
|
})||game.hasPlayer(function(current){
|
||||||
|
return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0;
|
||||||
|
})||(player.countCards('h')>=2&&game.hasPlayer(function(current){
|
||||||
|
return current.countCards('e')>player.countCards('e')&&get.attitude(player,current)<0;
|
||||||
|
}))) return 1;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
357
character/sp.js
|
@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
connect:true,
|
connect:true,
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sp:{
|
sp:{
|
||||||
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji"],
|
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
||||||
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','zhaoyǎn'],
|
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','zhaoyǎn'],
|
||||||
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
|
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
|
||||||
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
|
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
|
||||||
|
@ -28,6 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
caoxiancaohua:['female','qun',3,['huamu','qianmeng','liangyuan','jisi']],
|
||||||
jin_zhouchu:['male','jin',4,['shanduan','yilie']],
|
jin_zhouchu:['male','jin',4,['shanduan','yilie']],
|
||||||
zhaoyǎn:['male','wei',4,['tongxie']],
|
zhaoyǎn:['male','wei',4,['tongxie']],
|
||||||
ol_puyuan:['male','shu',4,['olshengong','olqisi']],
|
ol_puyuan:['male','shu',4,['olshengong','olqisi']],
|
||||||
|
@ -172,6 +173,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//kaisa:["male","western",4,["zhengfu"]],
|
//kaisa:["male","western",4,["zhengfu"]],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
caoxiancaohua:'此处为「曹宪」的相关介绍。关于「曹华」的部分请参考原本的介绍。<br>曹宪(生卒年不详),女,沛国谯县(今安徽省亳州市)人。东汉末年历史人物,汉献帝刘协嫔妃,魏武帝曹操女儿。建安十八年,嫁给汉献帝刘协,受封为贵人。黄初元年(220年),兄弟曹丕称帝后,汉献帝成为山阳公,不知所终。',
|
||||||
zhaoyǎn:'赵俨(171~245年),字伯然,颍川阳翟(今河南禹州市)。东汉末年颍川“四大名士”之一,三国时期魏国名臣。熟读经史,精明强干。建安二年,投靠大将军曹操之后,起家朗陵县令,历任司空府掾、司空主薄、都督护军、扶风太守等职。魏文帝曹丕继位后,历任魏国侍中、驸马都尉、河东太守、典农中郎将、度支尚书,封宜土亭侯。魏明帝曹睿时期,历任大司农、骠骑将军、大司空等职。正始六年,去世,时年七十五,谥号为穆。',
|
zhaoyǎn:'赵俨(171~245年),字伯然,颍川阳翟(今河南禹州市)。东汉末年颍川“四大名士”之一,三国时期魏国名臣。熟读经史,精明强干。建安二年,投靠大将军曹操之后,起家朗陵县令,历任司空府掾、司空主薄、都督护军、扶风太守等职。魏文帝曹丕继位后,历任魏国侍中、驸马都尉、河东太守、典农中郎将、度支尚书,封宜土亭侯。魏明帝曹睿时期,历任大司农、骠骑将军、大司空等职。正始六年,去世,时年七十五,谥号为穆。',
|
||||||
ruiji:'芮姬,芮玄之女,太子孙登妃,黄武五年卒。',
|
ruiji:'芮姬,芮玄之女,太子孙登妃,黄武五年卒。',
|
||||||
weizi:'卫兹(?-190年),字子许,(《三国演义》中其名为卫弘,当为误记),陈留襄邑(今河南睢县)人。曾举孝廉,先后被车骑将军何苗、司徒杨赐等召辟。中平六年(189年)十二月,曹操在陈留己吾募兵,而卫兹以家财资助曹操,使曹操顺利募得五千士兵。此后,卫兹与曹操共同讨伐董卓。初平元年(190年),卫兹在跟随曹操讨伐董卓途中,于荥阳汴水遭遇董卓军徐荣,力战终日,失利身亡。',
|
weizi:'卫兹(?-190年),字子许,(《三国演义》中其名为卫弘,当为误记),陈留襄邑(今河南睢县)人。曾举孝廉,先后被车骑将军何苗、司徒杨赐等召辟。中平六年(189年)十二月,曹操在陈留己吾募兵,而卫兹以家财资助曹操,使曹操顺利募得五千士兵。此后,卫兹与曹操共同讨伐董卓。初平元年(190年),卫兹在跟随曹操讨伐董卓途中,于荥阳汴水遭遇董卓军徐荣,力战终日,失利身亡。',
|
||||||
|
@ -647,6 +649,348 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//曹宪曹华
|
||||||
|
huamu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var color=get.color(event.card);
|
||||||
|
if(color=='none') return false;
|
||||||
|
if(!player.hasHistory('lose',function(evt){
|
||||||
|
return evt.hs.length>0&&evt.getParent()==event;
|
||||||
|
})||!event.cards.filterInD('oe').length) return false;
|
||||||
|
var history=game.getGlobalHistory('useCard');
|
||||||
|
var index=history.indexOf(event);
|
||||||
|
if(index<1) return false;
|
||||||
|
var evt=history[index-1],color2=get.color(evt.card);
|
||||||
|
return color!=color2&&color2!='none';
|
||||||
|
},
|
||||||
|
prompt2:(event)=>'将'+get.translation(event.cards.filterInD('oe'))+'置于武将牌上',
|
||||||
|
check:function(event,player){
|
||||||
|
if(!game.hasPlayer(function(current){
|
||||||
|
return current.hasSkill('qianmeng',null,null,false)&&get.attitude(player,current)>0;
|
||||||
|
})) return false;
|
||||||
|
var cards=event.cards.filterInD('e');
|
||||||
|
if(!cards.length) return true;
|
||||||
|
var card=cards[0];
|
||||||
|
if(get.owner(card)==player){
|
||||||
|
if(get.value(card,player)<=0) return true;
|
||||||
|
var subtype=get.subtype(card);
|
||||||
|
if(player.hasCard('hs',function(card){
|
||||||
|
return get.subtype(card)==subtype&&player.canUse(card,player)&&get.effect(player,card,player,player)>0;
|
||||||
|
})) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var cards=trigger.cards.filterInD('oe');
|
||||||
|
player.addToExpansion(cards,'gain2').gaintag.add('huamu');
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
reverseOrder:true,
|
||||||
|
combo:'qianmeng',
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
aiOrder:function(player,card,num){
|
||||||
|
if(typeof card=='object'){
|
||||||
|
var history=game.getGlobalHistory('useCard');
|
||||||
|
if(!history.length) return;
|
||||||
|
var evt=history[history.length-1];
|
||||||
|
if(evt&&evt.card&&get.color(evt.card)!='none'&&get.color(card)!='none'&&get.color(evt.card)!=get.color(card)){
|
||||||
|
return num+4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
marktext:'木',
|
||||||
|
intro:{
|
||||||
|
name:'灵杉&玉树',
|
||||||
|
markcount:function(storage,player){
|
||||||
|
var red=[],black=[];
|
||||||
|
var cards=player.getExpansions('huamu');
|
||||||
|
for(var i of cards){
|
||||||
|
var color=get.color(i,false);
|
||||||
|
(color=='red'?red:black).push(i);
|
||||||
|
}
|
||||||
|
return (''+black.length+'/'+red.length);
|
||||||
|
},
|
||||||
|
content:'expansion',
|
||||||
|
mark:function(dialog,storage,player){
|
||||||
|
var red=[],black=[];
|
||||||
|
var cards=player.getExpansions('huamu');
|
||||||
|
for(var i of cards){
|
||||||
|
var color=get.color(i,false);
|
||||||
|
(color=='red'?red:black).push(i);
|
||||||
|
}
|
||||||
|
if(black.length){
|
||||||
|
dialog.addText('灵杉');
|
||||||
|
dialog.addSmall(black);
|
||||||
|
}
|
||||||
|
if(red.length){
|
||||||
|
dialog.addText('玉树');
|
||||||
|
dialog.addSmall(red);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
qianmeng:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
global:['loseAfter','equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.name=='addToExpansion'){
|
||||||
|
if(event.gaintag.contains('huamu')){
|
||||||
|
var cards=event.player.getExpansions('huamu'),red=cards.filter(function(i){
|
||||||
|
return get.color(i,false)=='red';
|
||||||
|
});
|
||||||
|
if(cards.length==red.length||red.length==0||cards.length==red.length*2) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(event.name=='lose'&&event.getlx!==false){
|
||||||
|
for(var i in event.gaintag_map){
|
||||||
|
if(event.gaintag_map[i].contains('huamu')){
|
||||||
|
var cards=event.player.getExpansions('huamu'),red=cards.filter(function(i){
|
||||||
|
return get.color(i,false)=='red';
|
||||||
|
});
|
||||||
|
return (cards.length==red.length||red.length==0||cards.length==red.length/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return game.getGlobalHistory('cardMove',function(evt){
|
||||||
|
if(evt.name!='lose'||event!=evt.getParent()) return false;
|
||||||
|
for(var i in evt.gaintag_map){
|
||||||
|
if(evt.gaintag_map[i].contains('huamu')){
|
||||||
|
var cards=evt.player.getExpansions('huamu'),red=cards.filter(function(i){
|
||||||
|
return get.color(i,false)=='red';
|
||||||
|
});
|
||||||
|
return (cards.length==red.length||red.length==0||cards.length==red.length/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}).length>0;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.draw();
|
||||||
|
},
|
||||||
|
ai:{combo:'huamu'},
|
||||||
|
},
|
||||||
|
liangyuan:{
|
||||||
|
enable:'chooseToUse',
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(name=='tao'){
|
||||||
|
return !player.hasSkill('liangyuan_tao',null,null,false)&&game.hasPlayer(function(current){
|
||||||
|
var storage=current.getExpansions('huamu');
|
||||||
|
return storage.length>0&&storage.filter(function(i){
|
||||||
|
return get.color(i,false)=='red';
|
||||||
|
}).length>0;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if(name=='jiu'){
|
||||||
|
return !player.hasSkill('liangyuan_jiu',null,null,false)&&game.hasPlayer(function(current){
|
||||||
|
var storage=current.getExpansions('huamu');
|
||||||
|
return storage.length>0&&storage.filter(function(i){
|
||||||
|
return get.color(i,false)=='black';
|
||||||
|
}).length>0;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type=='wuxie') return false;
|
||||||
|
if(!player.hasSkill('liangyuan_tao',null,null,false)&&event.filterCard({name:'tao'},player,event)&&game.hasPlayer(function(current){
|
||||||
|
var storage=current.getExpansions('huamu');
|
||||||
|
return storage.length>0&&storage.filter(function(i){
|
||||||
|
return get.color(i,false)=='red';
|
||||||
|
}).length>0;
|
||||||
|
})) return true;
|
||||||
|
if(!player.hasSkill('liangyuan_jiu',null,null,false)&&event.filterCard({name:'jiu'},player,event)&&game.hasPlayer(function(current){
|
||||||
|
var storage=current.getExpansions('huamu');
|
||||||
|
return storage.length>0&&storage.filter(function(i){
|
||||||
|
return get.color(i,false)=='black';
|
||||||
|
}).length>0;
|
||||||
|
})) return true;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(){
|
||||||
|
return ui.create.dialog('良缘',[['tao','jiu'],'vcard'],'hidden');
|
||||||
|
},
|
||||||
|
filter:function(button,player){
|
||||||
|
var evt=_status.event.getParent();
|
||||||
|
var name=button.link[2],color=(name=='tao')?'red':'black';
|
||||||
|
if(player.hasSkill('liangyuan_'+name,null,null,false)) return false;
|
||||||
|
var cards=[];
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
cards.addArray(current.getExpansions('huamu').filter(function(i){
|
||||||
|
return get.color(i,false)==color;
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
if(!cards.length) return false;
|
||||||
|
var card=get.autoViewAs({name:name},cards);
|
||||||
|
return evt.filterCard(card,player,evt);
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
if(_status.event.getParent().type!='phase') return 1;
|
||||||
|
var player=_status.event.player;
|
||||||
|
var name=button.link[2],color=(name=='tao')?'red':'black';
|
||||||
|
var cards=[];
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
cards.addArray(current.getExpansions('huamu').filter(function(i){
|
||||||
|
return get.color(i,false)==color;
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
var card=get.autoViewAs({name:name},cards);
|
||||||
|
return player.getUseValue(card,null,true);
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
var name=links[0][2],color=(name=='tao')?'red':'black';
|
||||||
|
var cards=[];
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
cards.addArray(current.getExpansions('huamu').filter(function(i){
|
||||||
|
return get.color(i,false)==color;
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
if(!cards.length) return false;
|
||||||
|
var card=get.autoViewAs({name:name},cards);
|
||||||
|
return {
|
||||||
|
viewAs:card,
|
||||||
|
color:color,
|
||||||
|
selectCard:-1,
|
||||||
|
filterCard:()=>false,
|
||||||
|
precontent:function(){
|
||||||
|
player.addTempSkill('liangyuan_'+event.result.card.name,'roundStart');
|
||||||
|
player.logSkill('liangyuan');
|
||||||
|
var list=[],color=lib.skill.liangyuan_backup.color;
|
||||||
|
var cards=[];
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
var cardsx=current.getExpansions('huamu').filter(function(i){
|
||||||
|
return get.color(i,false)==color;
|
||||||
|
});
|
||||||
|
if(cardsx.length){
|
||||||
|
cards.addArray(cardsx);
|
||||||
|
list.push([current,cardsx]);
|
||||||
|
current.$throw(cardsx);
|
||||||
|
game.log(current,'将',cardsx,'化作“'+(color==''?'':'')+'”良缘')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
event.result.cards=cards;
|
||||||
|
delete event.result.skill;
|
||||||
|
event.result._apply_args={'throw':false};
|
||||||
|
game.loseAsync({
|
||||||
|
lose_list:list,
|
||||||
|
}).setContent('chooseToCompareLose');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
prompt:function(links,player){
|
||||||
|
var name=links[0][2],color=(name=='tao')?'玉树':'灵杉';
|
||||||
|
return '将场上所有的“'+color+'”当做【'+get.translation(name)+'】使用';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
tao:{charlotte:true},
|
||||||
|
jiu:{charlotte:true},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:function(item,player){
|
||||||
|
if(!player) player=_status.event.player;
|
||||||
|
return get.order({name:lib.skill.liangyuan.hiddenCard(player,'jiu')?'jiu':'tao'})+4;
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
if(_status.event.dying) return get.attitude(player,_status.event.dying);
|
||||||
|
return 1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
combo:'huamu',
|
||||||
|
threaten:3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
jisi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
|
direct:true,
|
||||||
|
limited:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'metal',
|
||||||
|
filter:function(event,player){
|
||||||
|
var skills=player.getStockSkills('一!','五!').filter(function(skill){
|
||||||
|
if(skill=='jisi') return false;
|
||||||
|
var info=get.info(skill);
|
||||||
|
return info&&!info.charlotte;
|
||||||
|
});
|
||||||
|
var history=player.getAllHistory('useSkill');
|
||||||
|
for(var i of history){
|
||||||
|
if(skills.contains(i.sourceSkill)||skills.contains(i.skill)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var skills2=[];
|
||||||
|
var skills=player.getStockSkills('只!','因!').filter(function(skill){
|
||||||
|
if(skill=='jisi') return false;
|
||||||
|
var info=get.info(skill);
|
||||||
|
return info&&!info.charlotte;
|
||||||
|
});
|
||||||
|
var history=player.getAllHistory('useSkill');
|
||||||
|
for(var i of history){
|
||||||
|
if(skills.contains(i.sourceSkill)) skills2.add(i.sourceSkill);
|
||||||
|
if(skills.contains(i.skill)) skills2.add(i.skill);
|
||||||
|
if(skills.length==skills2.length) break;
|
||||||
|
}
|
||||||
|
event.skills2=skills2;
|
||||||
|
var str='令一名其他角色获得';
|
||||||
|
for(var i=0;i<skills2.length;i++){
|
||||||
|
str+=('〖'+get.translation(skills2[i])+'〗');
|
||||||
|
if(i!=skills2.length-1) str+=';';
|
||||||
|
}
|
||||||
|
if(skills2.length>1) str+='中的一个技能';
|
||||||
|
str+='然后你';
|
||||||
|
if(player.countCards('h')>0) str+='弃置所有手牌,并';
|
||||||
|
str+='视为对其使用一张【杀】';
|
||||||
|
player.chooseTarget(get.prompt('jisi'),str,lib.filter.notMe).set('ai',function(target){
|
||||||
|
if(!_status.event.goon) return false;
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(att<4) return false;
|
||||||
|
var eff=get.effect(target,{name:'sha',isCard:true},player,player);
|
||||||
|
if(eff>=0) return att+eff;
|
||||||
|
if(target.hp<=2) return false;
|
||||||
|
return att/Math.max(1,-eff);
|
||||||
|
}).set('goon',function(){
|
||||||
|
if(player.hasUnknown()||player.identity=='nei') return false;
|
||||||
|
var hs=player.getCards('h');
|
||||||
|
if(!hs.length||get.value(hs,player)<=9-player.hp) return true;
|
||||||
|
return false;
|
||||||
|
}());
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('jisi',target);
|
||||||
|
player.awakenSkill('jisi');
|
||||||
|
var list=event.skills2;
|
||||||
|
if(list.length==0) event._result={control:list[0]};
|
||||||
|
player.chooseControl(list).set('prompt','令'+get.translation(target)+'获得一个技能').set(
|
||||||
|
'ai',()=>_status.event.choice
|
||||||
|
).set('choice',list.contains('qianmeng')?'qianmeng':list.randomGet());
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
target.addSkill(result.control);
|
||||||
|
'step 3'
|
||||||
|
var num=player.countCards('h');
|
||||||
|
if(num>0) player.chooseToDiscard('h',num,true);
|
||||||
|
'step 4'
|
||||||
|
if(player.canUse('sha',target,false)) player.useCard(false,target,{
|
||||||
|
name:'sha',
|
||||||
|
isCard:true,
|
||||||
|
},'noai')
|
||||||
|
},
|
||||||
|
},
|
||||||
//周处
|
//周处
|
||||||
shanduan:{
|
shanduan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -18888,7 +19232,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
spfengyin_info:'其他角色的回合开始时,若其体力值不少于你,你可以交给其一张【杀】,令其跳过出牌阶段和弃牌阶段。',
|
spfengyin_info:'其他角色的回合开始时,若其体力值不少于你,你可以交给其一张【杀】,令其跳过出牌阶段和弃牌阶段。',
|
||||||
spchizhong:'持重',
|
spchizhong:'持重',
|
||||||
spchizhong_info:'锁定技,你的手牌上限等于体力上限;其他角色死亡时,你加1点体力上限。',
|
spchizhong_info:'锁定技,你的手牌上限等于体力上限;其他角色死亡时,你加1点体力上限。',
|
||||||
sp_fuhuanghou:'SP伏皇后',
|
sp_fuhuanghou:'SP伏寿',
|
||||||
spcangni:'藏匿',
|
spcangni:'藏匿',
|
||||||
spcangni_info:'弃牌阶段开始时,你可以回复1点体力或摸两张牌,然后将你的武将牌翻面;其他角色的回合内,当你获得(每回合限一次)/失去一次牌时,若你的武将牌背面朝上,你可以令该角色摸/弃置一张牌。',
|
spcangni_info:'弃牌阶段开始时,你可以回复1点体力或摸两张牌,然后将你的武将牌翻面;其他角色的回合内,当你获得(每回合限一次)/失去一次牌时,若你的武将牌背面朝上,你可以令该角色摸/弃置一张牌。',
|
||||||
spmixin:'密信',
|
spmixin:'密信',
|
||||||
|
@ -19077,6 +19421,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
shanduan_info:'①回合开始时,你生成数组R=[1,2,3,4]。②摸牌阶段开始时,你从数组R中选择并移除一个数字A。你本阶段的额定摸牌数改为A。③出牌阶段开始时,你从数组R中选择并移除两个数字B和C。你将你本阶段内的攻击范围基数最小值和使用【杀】的次数上限基础值改为B和C。④弃牌阶段开始时,你从数组R中选择并移除一个数字D。你令你本回合的手牌上限基数改为D。⑤当你于回合外受到伤害后,你令下回合生成的R中最小的一个数字+1。',
|
shanduan_info:'①回合开始时,你生成数组R=[1,2,3,4]。②摸牌阶段开始时,你从数组R中选择并移除一个数字A。你本阶段的额定摸牌数改为A。③出牌阶段开始时,你从数组R中选择并移除两个数字B和C。你将你本阶段内的攻击范围基数最小值和使用【杀】的次数上限基础值改为B和C。④弃牌阶段开始时,你从数组R中选择并移除一个数字D。你令你本回合的手牌上限基数改为D。⑤当你于回合外受到伤害后,你令下回合生成的R中最小的一个数字+1。',
|
||||||
yilie:'义烈',
|
yilie:'义烈',
|
||||||
yilie_info:'每轮每种牌名限一次。你可以将两张颜色相同的手牌当做任意一种基本牌使用。',
|
yilie_info:'每轮每种牌名限一次。你可以将两张颜色相同的手牌当做任意一种基本牌使用。',
|
||||||
|
caoxiancaohua:'曹宪曹华',
|
||||||
|
huamu:'化木',
|
||||||
|
huamu_info:'当你使用手牌后,若此牌和本回合内上一张被使用的牌颜色不同,则你可以将此牌对应的所有{位于处理区或装备区}的实体牌置于你的武将牌上。这些牌中的黑色牌称为“灵杉”,红色牌称为“玉树”。',
|
||||||
|
qianmeng:'前盟',
|
||||||
|
qianmeng_info:'锁定技。当有牌移动事件结算结束后,若有角色的“灵杉”和“玉树”数量发生了变化,且二者数量相等或有一项为0,则你摸一张牌',
|
||||||
|
liangyuan:'良缘',
|
||||||
|
liangyuan_info:'每轮每项各限一次。你可以将场上所有的“灵杉”/“玉树”置于处理区,然后将这些牌当做【酒】/【桃】使用。',
|
||||||
|
jisi:'羁肆',
|
||||||
|
jisi_info:'限定技。准备阶段,你可以令一名其他角色获得你武将牌上的一个已发动过的其他技能。然后你弃置所有手牌,并视为对其使用一张【杀】(无距离关系的限制)。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
|
277
character/sp2.js
|
@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'sp2',
|
name:'sp2',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
xiahoulingnv:['female','wei',4,['fuping','weilie']],
|
||||||
|
dc_liuba:['male','shu',3,['dczhubi','dcliuzhuan']],
|
||||||
zhangxun:['male','qun',4,['suizheng']],
|
zhangxun:['male','qun',4,['suizheng']],
|
||||||
zongyu:['male','shu',3,['zyqiao','chengshang']],
|
zongyu:['male','shu',3,['zyqiao','chengshang']],
|
||||||
fengfang:['male','qun',3,['dcditing','dcbihuo']],
|
fengfang:['male','qun',3,['dcditing','dcbihuo']],
|
||||||
|
@ -169,10 +171,245 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp2_huangjia:['caomao','liubian','dc_liuyu'],
|
sp2_huangjia:['caomao','liubian','dc_liuyu'],
|
||||||
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
|
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
|
||||||
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger'],
|
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','dc_jiling','dc_sunru','zhaoang','dc_wangchang','fengfang','zhangxun'],
|
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan','dc_jiling','dc_sunru','zhaoang','dc_wangchang','fengfang','zhangxun','xiahoulingnv','dc_liuba'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//夏侯令女
|
||||||
|
fuping:{
|
||||||
|
audio:2,
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
var list=player.getStorage('fuping').slice(0);
|
||||||
|
list.removeArray(player.getStorage('fuping_round'));
|
||||||
|
return list.contains(name)&&player.hasCard((card)=>(get.type(card)!='basic'),'ehs');
|
||||||
|
},
|
||||||
|
enable:'chooseToUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.getStorage('fuping').slice(0);
|
||||||
|
list.removeArray(player.getStorage('fuping_round'));
|
||||||
|
if(!list.length) return false;
|
||||||
|
if(!player.hasCard((card)=>(get.type(card)!='basic'),'ehs')) return false;
|
||||||
|
for(var i of list){
|
||||||
|
var type=get.type2(i,false);
|
||||||
|
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(event,player){
|
||||||
|
var list=player.getStorage('fuping').slice(0);
|
||||||
|
list.removeArray(player.getStorage('fuping_round'));
|
||||||
|
var list2=[];
|
||||||
|
for(var i of list){
|
||||||
|
var type=get.type2(i,false);
|
||||||
|
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) list2.push([type,'',i]);
|
||||||
|
}
|
||||||
|
return ui.create.dialog('浮萍',[list2,'vcard']);
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
if(_status.event.getParent().type!='phase') return 1;
|
||||||
|
return _status.event.player.getUseValue({name:button.link[2]},null,true);
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
return {
|
||||||
|
audio:'fuping',
|
||||||
|
filterCard:(card)=>get.type(card)!='basic',
|
||||||
|
position:'he',
|
||||||
|
popname:true,
|
||||||
|
viewAs:{
|
||||||
|
name:links[0][2],
|
||||||
|
isCard:true,
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
return 8-get.value(card);
|
||||||
|
},
|
||||||
|
precontent:function(){
|
||||||
|
player.addTempSkill('fuping_round');
|
||||||
|
player.markAuto('fuping_round',[event.result.card.name]);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
prompt:function(links,player){
|
||||||
|
return '将一张非基本牌当做【'+get.translation(links[0][2])+'】使用';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:8,
|
||||||
|
result:{player:1},
|
||||||
|
respondSha:true,
|
||||||
|
skillTagFilter:function(player){
|
||||||
|
var list=player.getStorage('fuping').slice(0);
|
||||||
|
list.removeArray(player.getStorage('fuping_round'));
|
||||||
|
return list.contains('sha');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
targetInRange:function(card,player,target){
|
||||||
|
if(player.countDisabled()>=5) return true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
marktext:'萍',
|
||||||
|
intro:{content:'已记录$'},
|
||||||
|
group:'fuping_mark',
|
||||||
|
subSkill:{
|
||||||
|
mark:{
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player!=event.player&&event.targets.contains(player)&&
|
||||||
|
player.countDisabled()<5&&!player.getStorage('fuping').contains(event.card.name);
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
prompt2:(event)=>('废除一个装备栏并记录【'+get.translation(event.card.name)+'】'),
|
||||||
|
check:function(event,player){
|
||||||
|
var list=['tao','juedou','guohe','shunshou','wuzhong','xietianzi','yuanjiao','wanjian','nanman','huoshaolianying','chuqibuyi','zhujinqiyuan','lebu','bingliang'];
|
||||||
|
if(!list.contains(event.card.name)) return false;
|
||||||
|
if(['nanman','wanjian'].contains(event.card.name)&&!player.hasValueTarget({name:event.card.name})) return false;
|
||||||
|
var list=[3,5,4,1,2];
|
||||||
|
for(var i of list){
|
||||||
|
if(!player.isDisabled(i)){
|
||||||
|
var card=player.getEquip(i);
|
||||||
|
if(!card) return true;
|
||||||
|
if(get.value(card,player)<=0) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.markAuto('fuping',[trigger.card.name]);
|
||||||
|
game.log(player,'记录了','#y'+get.translation(trigger.card.name));
|
||||||
|
player.chooseToDisable().set('ai',function(event,player,list){
|
||||||
|
var list=[3,5,4,1,2];
|
||||||
|
for(var i of list){
|
||||||
|
if(!player.isDisabled(i)){
|
||||||
|
var card=player.getEquip(i);
|
||||||
|
if(!card) return 'equip'+i;
|
||||||
|
if(get.value(card,player)<=0) return 'equip'+i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list.randomGet();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
backup:{audio:'fuping'},
|
||||||
|
round:{charlotte:true,onremove:true},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
weilie:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countMark('weilie')<=player.getStorage('fuping').length&&player.countCards('he')>0&&game.hasPlayer((current)=>current.isDamaged())
|
||||||
|
},
|
||||||
|
filterCard:true,
|
||||||
|
position:'he',
|
||||||
|
filterTarget:(card,player,target)=>target.isDamaged(),
|
||||||
|
check:function(card){
|
||||||
|
return 8-get.value(card);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.addMark('weilie',1,false);
|
||||||
|
target.recover();
|
||||||
|
'step 1'
|
||||||
|
if(target.isDamaged()) target.draw();
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
|
ai:{
|
||||||
|
order:1,
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
var eff=get.recoverEffect(target,player,player);
|
||||||
|
if(target.getDamagedHp()>1) eff+=get.effect(target,{name:'wuzhong'},player,target)/2;
|
||||||
|
return eff;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//刘巴
|
||||||
|
dczhubi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'loseAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='discard'||event.position!=ui.discardPile) return false;
|
||||||
|
for(var i of event.cards){
|
||||||
|
if(get.suit(i,event.player)=='diamond') return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
prompt2:'检索一张【无中生有】并置于牌堆顶',
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,_status.currentPhase.next)>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var card=get.cardPile(function(card){
|
||||||
|
return card.name=='wuzhong'&&get.suit(card)!='diamond';
|
||||||
|
});
|
||||||
|
if(card){
|
||||||
|
game.log(player,'将',card,'置于牌堆顶');
|
||||||
|
card.fix();
|
||||||
|
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
|
||||||
|
game.updateRoundNumber();
|
||||||
|
game.delayx();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcliuzhuan:{
|
||||||
|
audio:2,
|
||||||
|
group:['dcliuzhuan_mark','dcliuzhuan_gain'],
|
||||||
|
mod:{
|
||||||
|
targetEnabled:function(card){
|
||||||
|
if(card.cards){
|
||||||
|
for(var i of card.cards){
|
||||||
|
if(i.hasGaintag('dcliuzhuan_tag')) return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(get.itemtype(card)=='card'){
|
||||||
|
if(card.hasGaintag('dcliuzhuan_tag')) return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
gain:{
|
||||||
|
trigger:{global:'loseAfter'},
|
||||||
|
forced:true,
|
||||||
|
logTarget:'player',
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='discard'||event.player!=_status.currentPhase) return false;
|
||||||
|
for(var i in event.gaintag_map){
|
||||||
|
if(event.gaintag_map[i].contains('dcliuzhuan_tag')) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var cards=trigger.hs.filter(function(i){
|
||||||
|
return trigger.gaintag_map[i.cardid]&&trigger.gaintag_map[i.cardid].contains('dcliuzhuan_tag');
|
||||||
|
});
|
||||||
|
if(cards.length>0) player.gain(cards,'gain2');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mark:{
|
||||||
|
trigger:{global:'gainBegin'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
lastDo:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player==event.player||event.player!=_status.currentPhase) return false;
|
||||||
|
var evt=event.getParent('phaseDraw');
|
||||||
|
if(evt&&evt.name=='phaseDraw') return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.gaintag.add('dcliuzhuan_tag');
|
||||||
|
trigger.player.addTempSkill('dcliuzhuan_tag');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tag:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:(player,skill)=>player.removeGaintag(skill),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//张勋
|
//张勋
|
||||||
suizheng:{
|
suizheng:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -419,7 +656,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var num=lib.skill.dcpingxi.getNum()+ui.selected.cards.length;
|
var num=lib.skill.dcpingxi.getNum()+ui.selected.cards.length;
|
||||||
if(num<game.countPlayer(function(current){
|
if(num<game.countPlayer(function(current){
|
||||||
if(current==player||current.countCards('he')==0) return false;
|
if(current==player||current.countCards('he')==0) return false;
|
||||||
return get.effect(target,{name:'guohe_copy2'},player,player)+get.effect(target,{name:'shanduan'},player,player)>0;
|
return get.effect(current,{name:'guohe_copy2'},player,player)+get.effect(current,{name:'sha'},player,player)>0;
|
||||||
})){
|
})){
|
||||||
if(get.position(card)=='h'&&player.needsToDiscard()>ui.selected.cards.length) return 7+1/Math.max(1,get.value(card));
|
if(get.position(card)=='h'&&player.needsToDiscard()>ui.selected.cards.length) return 7+1/Math.max(1,get.value(card));
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
|
@ -1292,6 +1529,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(event.card.name=='sha'&&event.card.nature) str+=get.translation(event.card.nature);
|
if(event.card.name=='sha'&&event.card.nature) str+=get.translation(event.card.nature);
|
||||||
return (str+'【'+get.translation(event.card.name)+'】');
|
return (str+'【'+get.translation(event.card.name)+'】');
|
||||||
},
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return !get.tag(event.card,'norepeat')
|
||||||
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addTempSkill('tongli_effect');
|
player.addTempSkill('tongli_effect');
|
||||||
var evt=trigger.getParent('phaseUse');
|
var evt=trigger.getParent('phaseUse');
|
||||||
|
@ -1700,7 +1940,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.num=player.getStat('damage');
|
event.num=Math.min(5,player.getStat('damage'));
|
||||||
player.chooseTarget('是否发动限定技【襄戍】?','令一名角色回复'+event.num+'点体力并摸'+get.cnNumber(event.num)+'张牌',function(card,player,target){
|
player.chooseTarget('是否发动限定技【襄戍】?','令一名角色回复'+event.num+'点体力并摸'+get.cnNumber(event.num)+'张牌',function(card,player,target){
|
||||||
return target.isDamaged();
|
return target.isDamaged();
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
|
@ -4678,7 +4918,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseButton(dialog,true).set('ai',function(button){
|
player.chooseButton(dialog,true).set('ai',function(button){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var color=get.color(button.link),cards=player.getExpansions('syjiqiao');
|
var color=get.color(button.link),cards=player.getExpansions('syjiqiao');
|
||||||
var num1=cards.filter((card)=>get.color(card)==color),num2=cards.length-num1;
|
var num1=cards.filter((card)=>get.color(card)==color).length,num2=cards.length-num1;
|
||||||
if(num1>=num2) return get.value(button.link);
|
if(num1>=num2) return get.value(button.link);
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
@ -4810,7 +5050,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var list=[];
|
var list=[];
|
||||||
for(var name of lib.inpile){
|
for(var name of lib.inpile){
|
||||||
if(get.type(name)!='basic') continue;
|
if(get.type(name)!='basic') continue;
|
||||||
if(player.hasUseTarget({name:name},false)) list.push(['基本','',name]);
|
if(source.hasUseTarget({name:name},false)) list.push(['基本','',name]);
|
||||||
if(name=='sha'){
|
if(name=='sha'){
|
||||||
for(var nature of lib.inpile_nature){
|
for(var nature of lib.inpile_nature){
|
||||||
if(source.hasUseTarget({name:name,nature:nature},false)) list.push(['基本','',name,nature]);
|
if(source.hasUseTarget({name:name,nature:nature},false)) list.push(['基本','',name,nature]);
|
||||||
|
@ -7422,10 +7662,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
global:['phaseBefore'],
|
global:['phaseBefore'],
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player,name){
|
||||||
if(player.hasSkill('zhiwei2')) return false;
|
if(player.hasSkill('zhiwei2')) return false;
|
||||||
if(get.mode()=='guozhan') return event.name=='showCharacter'&&(event.toShow.contains('gz_luyusheng')||event.toShow.contains('luyusheng'));
|
if(get.mode()=='guozhan') return event.name=='showCharacter'&&(event.toShow.contains('gz_luyusheng')||event.toShow.contains('luyusheng'));
|
||||||
return event.name!='showCharacter'&&(event.name!='phase'||game.phaseNumber==0);
|
return event.name!='showCharacter'&&(name!='phaseBefore'||game.phaseNumber==0);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
@ -14450,6 +14690,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
|
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
|
||||||
var info=get.info(event.card);
|
var info=get.info(event.card);
|
||||||
if(info.allowMultiple==false) return false;
|
if(info.allowMultiple==false) return false;
|
||||||
|
var num=player.getHistory('useSkill',function(evt){
|
||||||
|
return evt.skill=='pyzhuren_club';
|
||||||
|
}).length;
|
||||||
|
if(num>=2) return false;
|
||||||
if(event.targets&&!info.multitarget){
|
if(event.targets&&!info.multitarget){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return lib.filter.targetEnabled2(event.card,player,current)&&!event.targets.contains(current);
|
return lib.filter.targetEnabled2(event.card,player,current)&&!event.targets.contains(current);
|
||||||
|
@ -14476,10 +14720,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!event.isMine()&&!event.isOnline()) game.delayx();
|
if(!event.isMine()&&!event.isOnline()) game.delayx();
|
||||||
event.targets=result.targets;
|
event.targets=result.targets;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
player.storage.counttrigger[event.name]--;
|
|
||||||
event.finish();
|
|
||||||
}
|
|
||||||
'step 2'
|
'step 2'
|
||||||
if(event.targets){
|
if(event.targets){
|
||||||
player.logSkill(event.name,event.targets);
|
player.logSkill(event.name,event.targets);
|
||||||
|
@ -16623,6 +16863,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhaoang:'赵昂,字伟章(一作伟璋),天水冀人。汉末时曹操部下。初为羌道令,建安中转参军事徒居州治冀城。建安十八年,马超围冀城多天,城中饥困,凉州刺史韦康不愿百姓再受苦而打算投降,赵昂进劝但不为所纳。后马超背信弃义杀韦康并劫其子赵月为人质,把他送至南郑。欲以此要迫使赵昂为己所用。后与梁宽、赵衢、庞恭、杨阜等结谋为康报仇,并举兵讨伐马超。马超兵败遂弃城,投奔张鲁。得张鲁之援后马超于建安十九年复寇,赵昂与妻子王异坚守祁山三十天至夏侯渊的救兵解围,其子赵月终为马超斩杀。自冀城之难,至于祁山,赵昂出九奇策。',
|
zhaoang:'赵昂,字伟章(一作伟璋),天水冀人。汉末时曹操部下。初为羌道令,建安中转参军事徒居州治冀城。建安十八年,马超围冀城多天,城中饥困,凉州刺史韦康不愿百姓再受苦而打算投降,赵昂进劝但不为所纳。后马超背信弃义杀韦康并劫其子赵月为人质,把他送至南郑。欲以此要迫使赵昂为己所用。后与梁宽、赵衢、庞恭、杨阜等结谋为康报仇,并举兵讨伐马超。马超兵败遂弃城,投奔张鲁。得张鲁之援后马超于建安十九年复寇,赵昂与妻子王异坚守祁山三十天至夏侯渊的救兵解围,其子赵月终为马超斩杀。自冀城之难,至于祁山,赵昂出九奇策。',
|
||||||
fengfang:'冯方,其字不详,司隶人。初掌校事,监察京师及周边地区,刺探文武百官秘事。十常侍之乱后,董卓进京,掌控朝政。冯方认为他胸怀不臣之心,于是弃官携女儿冯妤至江南避祸。其后董卓果然乱政,京师之地生灵涂炭,更将洛阳付之一炬。冯方因其先见之明得以保全家人。<br>冯妤长大成人后,有倾国之貌。一日袁术登城观景,得见冯妤,心中非常喜欢,于是将其纳为夫人。冯方心忧自家女儿不谙世事,于是将可以让人更显妩媚的家传宝梳交给她,希望能借此使其获得袁术的宠爱。其后果然传来袁术偏爱冯夫人的消息,冯方因此宽心,接受了袁术的征辟,为其效力。然而好景不长,没过多久,冯妤自缢身亡的消息传出,冯方悲愤不已,弃官而走,自此销声匿迹。',
|
fengfang:'冯方,其字不详,司隶人。初掌校事,监察京师及周边地区,刺探文武百官秘事。十常侍之乱后,董卓进京,掌控朝政。冯方认为他胸怀不臣之心,于是弃官携女儿冯妤至江南避祸。其后董卓果然乱政,京师之地生灵涂炭,更将洛阳付之一炬。冯方因其先见之明得以保全家人。<br>冯妤长大成人后,有倾国之貌。一日袁术登城观景,得见冯妤,心中非常喜欢,于是将其纳为夫人。冯方心忧自家女儿不谙世事,于是将可以让人更显妩媚的家传宝梳交给她,希望能借此使其获得袁术的宠爱。其后果然传来袁术偏爱冯夫人的消息,冯方因此宽心,接受了袁术的征辟,为其效力。然而好景不长,没过多久,冯妤自缢身亡的消息传出,冯方悲愤不已,弃官而走,自此销声匿迹。',
|
||||||
zhangxun:'张勋,东汉末年军阀袁术帐下大将,袁术称帝后受封大将军。初平四年(公元193年),袁术引兵入陈留,被曹操、袁绍合力击败,逃至雍丘。后入九江,杀死扬州刺史陈温而自领之,并任命张勋、桥蕤为大将。时孙策依附于袁术,被表为怀义校尉,张勋对其倾心敬服。袁术称帝后,任命张勋为大将军,攻打吕布,大败而还。其后曹操又以袁术称帝为名南下进攻,袁术闻之大惊,即走度淮,留张勋、桥蕤守蕲阳以拒曹。曹操破其军,斩桥蕤,张勋退走。建安四年(公元199年),袁术病死,张勋率残军欲南投孙策,途中被袁术旧部刘勋俘虏,其后下落不明。',
|
zhangxun:'张勋,东汉末年军阀袁术帐下大将,袁术称帝后受封大将军。初平四年(公元193年),袁术引兵入陈留,被曹操、袁绍合力击败,逃至雍丘。后入九江,杀死扬州刺史陈温而自领之,并任命张勋、桥蕤为大将。时孙策依附于袁术,被表为怀义校尉,张勋对其倾心敬服。袁术称帝后,任命张勋为大将军,攻打吕布,大败而还。其后曹操又以袁术称帝为名南下进攻,袁术闻之大惊,即走度淮,留张勋、桥蕤守蕲阳以拒曹。曹操破其军,斩桥蕤,张勋退走。建安四年(公元199年),袁术病死,张勋率残军欲南投孙策,途中被袁术旧部刘勋俘虏,其后下落不明。',
|
||||||
|
xiahoulingnv:'夏侯令女,字令女,名不详。生卒年不详,三国时期人物。夏侯文宁之女(《三国演义》中为夏侯令之女),曹文叔之妻。其事迹见于《三国志·魏书·诸夏侯曹传第九》裴松之注引皇甫谧《列女传》。而在《三国演义》中,由于作者断句错误,便认为“夏侯令女”是“夏侯令之女”之意(见《三国演义》第107回:“乃夏侯令女也”,由其语气可推断)。',
|
||||||
},
|
},
|
||||||
characterTitle:{
|
characterTitle:{
|
||||||
wulan:'#b对决限定武将',
|
wulan:'#b对决限定武将',
|
||||||
|
@ -16755,6 +16996,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
luotong:['luotong','dc_luotong'],
|
luotong:['luotong','dc_luotong'],
|
||||||
mamidi:['mamidi','xin_mamidi'],
|
mamidi:['mamidi','xin_mamidi'],
|
||||||
dc_wangchang:['dc_wangchang','tw_wangchang'],
|
dc_wangchang:['dc_wangchang','tw_wangchang'],
|
||||||
|
liuba:['dc_liuba','liuba'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
lijue:"李傕",
|
lijue:"李傕",
|
||||||
|
@ -17288,7 +17530,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rexingluan:'兴乱',
|
rexingluan:'兴乱',
|
||||||
rexingluan_info:'出牌阶段限一次,当你使用的仅指定一个目标的牌结算完成后,你可以获得场上一张与此牌点数相同的牌,或获得牌堆中随机一张点数与此牌相同的牌。',
|
rexingluan_info:'出牌阶段限一次,当你使用的仅指定一个目标的牌结算完成后,你可以获得场上一张与此牌点数相同的牌,或获得牌堆中随机一张点数与此牌相同的牌。',
|
||||||
xinxingluan:'兴乱',
|
xinxingluan:'兴乱',
|
||||||
xinxingluan_info:'出牌阶段限一次。当你使用牌结算结束后,你可选择一项:①观看牌堆中的两张点数为6的牌并获得其中一张(没有则改为摸六张牌);②令一名其他角色弃置一张点数为6的牌或交给你一张牌;③获得场上的一张点数为6的牌。',
|
xinxingluan_info:'每回合限一次。当你于出牌阶段使用牌结算结束后,你可选择一项:①观看牌堆中的两张点数为6的牌并获得其中一张(没有则改为摸六张牌);②令一名其他角色弃置一张点数为6的牌或交给你一张牌;③获得场上的一张点数为6的牌。',
|
||||||
zhouyi:'周夷',
|
zhouyi:'周夷',
|
||||||
zhukou:'逐寇',
|
zhukou:'逐寇',
|
||||||
zhukou_info:'①当你于一名角色的出牌阶段第一次造成伤害后,你可以摸X张牌(X为本回合你已使用的牌数)。②你的结束阶段,若你本回合没有造成伤害,你可以对两名其他角色各造成1点伤害。',
|
zhukou_info:'①当你于一名角色的出牌阶段第一次造成伤害后,你可以摸X张牌(X为本回合你已使用的牌数)。②你的结束阶段,若你本回合没有造成伤害,你可以对两名其他角色各造成1点伤害。',
|
||||||
|
@ -17575,6 +17817,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhangxun:'张勋',
|
zhangxun:'张勋',
|
||||||
suizheng:'随征',
|
suizheng:'随征',
|
||||||
suizheng_info:'结束阶段,你可以选择一名角色A,获得如下效果直到其下回合结束:①A于下回合出牌阶段内使用【杀】的次数上限+1且无距离限制;②A下回合的出牌阶段结束时,你可以选择一名此阶段内受到过A造成的伤害的角色B,视为对B使用一张【杀】。',
|
suizheng_info:'结束阶段,你可以选择一名角色A,获得如下效果直到其下回合结束:①A于下回合出牌阶段内使用【杀】的次数上限+1且无距离限制;②A下回合的出牌阶段结束时,你可以选择一名此阶段内受到过A造成的伤害的角色B,视为对B使用一张【杀】。',
|
||||||
|
dc_liuba:'刘巴',
|
||||||
|
dczhubi:'铸币',
|
||||||
|
dczhubi_info:'当有♦牌因弃置而进入弃牌堆后,你可以令系统从牌堆/弃牌堆中检索一张【无中生有】,并将此牌置于牌堆顶。',
|
||||||
|
dcliuzhuan:'流转',
|
||||||
|
dcliuzhuan_tag:'转',
|
||||||
|
dcliuzhuan_info:'锁定技。①其他角色于其回合内不于摸牌阶段而获得的牌称为“转”。②你不能成为实体牌中包含“转”的牌的目标。③当有“转”因弃置而进入弃牌堆后,你获得之。',
|
||||||
|
xiahoulingnv:'夏侯令女',
|
||||||
|
fuping:'浮萍',
|
||||||
|
fuping_info:'①其他角色对你使用的结算结束后,若你未因此技能记录过此牌的名称且你有未废除的装备栏,则你可以废除一个装备栏,记录此牌的名称。②每回合每种牌名限一次。你可以将一张非基本牌当做〖浮萍①〗记录过的基本牌或锦囊牌使用或打出。③若你的所有装备栏均已被废除,则你使用牌无距离限制。',
|
||||||
|
weilie:'炜烈',
|
||||||
|
weilie_info:'每局游戏限X次。出牌阶段,你可以弃置一张牌并选择一名已受伤的角色,令该角色回复1点体力。然后若其体力值小于体力上限,则其摸一张牌(X为你〖浮萍①〗中的记录数+1)。',
|
||||||
|
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
sp_zlzy:"逐鹿中原",
|
sp_zlzy:"逐鹿中原",
|
||||||
|
|
|
@ -12,10 +12,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
|
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
|
||||||
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
|
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
|
||||||
yijiang_2016:['guohuanghou','sunziliufang','huanghao','liyan','sundeng','cenhun','zhangrang','liuyu'],
|
yijiang_2016:['guohuanghou','sunziliufang','huanghao','liyan','sundeng','cenhun','zhangrang','liuyu'],
|
||||||
yijiang_2017:['xinxianying','jikang','wuxian','qinmi','xuezong','xushi','caiyong','caojie',],
|
yijiang_2017:['xinxianying','jikang','wuxian','qinmi','xuezong','xushi','caiyong','caojie'],
|
||||||
|
yijiang_2022:['lukai'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
lukai:['male','wu',4,['lkbushi','lkzhongzhuang']],
|
||||||
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
||||||
old_guanzhang:['male','shu',4,['old_fuhun']],
|
old_guanzhang:['male','shu',4,['old_fuhun']],
|
||||||
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
|
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
|
||||||
|
@ -99,6 +101,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yujin:["male","wei",4,["yizhong"],[]],
|
yujin:["male","wei",4,["yizhong"],[]],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
lukai:'陆凯(198-269年),字敬风,吴郡吴县(今江苏省苏州市)人。三国时期吴国重臣,丞相陆逊的族侄,大司马陆抗的族兄。黄武年间,举孝廉出身,曾任永兴县长、诸暨县长,颇有治绩。拜建武都尉、儋耳太守,与聂友率军讨伐朱崖和儋耳,迁建武校尉。五凤二年(255年),讨斩零陵山贼陈毖,拜偏将军、巴丘督,册封都乡侯。迁武昌右部督,随军进入寿春。后拜荡魏将军,加号绥远将军。吴景帝孙休继位,拜征北将军、假节、领豫州牧。孙皓即位,迁任镇西大将军,都督巴丘,又领荆州牧,进封嘉兴侯。宝鼎元年(266年),迁左丞相。以正直及屡次劝谏孙皓而闻名。建衡元年(269年),去世,时年七十二。',
|
||||||
caozhi:'字子建,沛国谯人,三国曹魏著名文学家,建安文学代表人物。魏武帝曹操之子,魏文帝曹丕之弟,生前曾为陈王,去世后谥号“思”,因此又称陈思王。南朝宋文学家谢灵运更有“天下才有一石,曹子建独占八斗”的评价。王士祯尝论汉魏以来二千年间诗家堪称“仙才”者,曹植、李白、苏轼三人耳。',
|
caozhi:'字子建,沛国谯人,三国曹魏著名文学家,建安文学代表人物。魏武帝曹操之子,魏文帝曹丕之弟,生前曾为陈王,去世后谥号“思”,因此又称陈思王。南朝宋文学家谢灵运更有“天下才有一石,曹子建独占八斗”的评价。王士祯尝论汉魏以来二千年间诗家堪称“仙才”者,曹植、李白、苏轼三人耳。',
|
||||||
gaoshun:'中国东汉末年将领,吕布帐下中郎将。史载高顺为人清白有威严,不好饮酒,所统率的部队精锐非常,号称“陷阵营”。屡进忠言于吕布,吕布虽知其忠而不能用。曹操击破吕布后,高顺被曹操所杀。',
|
gaoshun:'中国东汉末年将领,吕布帐下中郎将。史载高顺为人清白有威严,不好饮酒,所统率的部队精锐非常,号称“陷阵营”。屡进忠言于吕布,吕布虽知其忠而不能用。曹操击破吕布后,高顺被曹操所杀。',
|
||||||
chengong:'字公台,东汉末年吕布帐下谋士,东郡东武阳人。性情刚直,足智多谋,年少时与海内知名之士相互结交。192年,陈宫等人主张曹操接任兖州牧。但此后陈宫因曹操杀害边让而与曹操反目,并游说张邈等人背叛曹操迎吕布入兖州,辅助吕布攻打曹操。吕布战败后,随吕布等一同被曹操所擒,决意赴死。',
|
chengong:'字公台,东汉末年吕布帐下谋士,东郡东武阳人。性情刚直,足智多谋,年少时与海内知名之士相互结交。192年,陈宫等人主张曹操接任兖州牧。但此后陈宫因曹操杀害边让而与曹操反目,并游说张邈等人背叛曹操迎吕布入兖州,辅助吕布攻打曹操。吕布战败后,随吕布等一同被曹操所擒,决意赴死。',
|
||||||
|
@ -194,6 +197,184 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhonghui:['jiangwei'],
|
zhonghui:['jiangwei'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//陆凯
|
||||||
|
lkbushi:{
|
||||||
|
audio:2,
|
||||||
|
getBushi:function(player){
|
||||||
|
if(!player.storage.lkbushi) return ['spade','heart','club','diamond'];
|
||||||
|
return player.storage.lkbushi;
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
|
direct:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
list=list.map(function(i){
|
||||||
|
return ['','','lukai_'+i];
|
||||||
|
});
|
||||||
|
var next=player.chooseToMove('卜筮:是否调整〖卜筮〗的花色顺序?');
|
||||||
|
next.set('list',[
|
||||||
|
['无次数限制/使用打出摸牌<br>可弃牌无效/结束阶段获得',[list,'vcard'],function(list){
|
||||||
|
var list2=list.map(function(i){
|
||||||
|
return get.translation(i[2].slice(6));
|
||||||
|
});
|
||||||
|
return '你使用'+list2[0]+'牌时无次数限制;使用或打出'+list2[1]+'时,摸一张牌;<br>成为'+list2[2]+'牌目标后可弃一张牌无效;结束阶段获得一张'+list2[3]+'牌';
|
||||||
|
}],
|
||||||
|
]);
|
||||||
|
next.set('processAI',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
var list2=[];
|
||||||
|
var hs=player.getCards('hs',function(card){
|
||||||
|
return player.hasValueTarget(card);
|
||||||
|
});
|
||||||
|
list.sort(function(a,b){
|
||||||
|
return hs.filter((i)=>get.suit(i)==b).length-hs.filter((i)=>get.suit(i)==a).length;
|
||||||
|
});
|
||||||
|
list2.push(list.shift());
|
||||||
|
hs=player.getCards('hs','sha');
|
||||||
|
list.sort(function(a,b){
|
||||||
|
return hs.filter((i)=>get.suit(i)==b).length-hs.filter((i)=>get.suit(i)==a).length;
|
||||||
|
});
|
||||||
|
list2.unshift(list.shift());
|
||||||
|
list.randomSort();
|
||||||
|
list2.addArray(list);
|
||||||
|
return [list2.map((i)=>['','','lukai_'+i])]
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player),list2=result.moved[0].map(function(i){
|
||||||
|
return i[2].slice(6);
|
||||||
|
});
|
||||||
|
for(var i=0;i<4;i++){
|
||||||
|
if(list[i]!=list2[i]){
|
||||||
|
player.logSkill('lkbushi');
|
||||||
|
player.storage.lkbushi=list2;
|
||||||
|
var str='#g';
|
||||||
|
for(var j=0;j<4;j++){
|
||||||
|
str+=get.translation(list2[j]);
|
||||||
|
if(j!=3) str+='/';
|
||||||
|
}
|
||||||
|
game.log(player,'将','#g【卜筮】','的花色序列改为',str);
|
||||||
|
game.delayx();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
marktext:'筮',
|
||||||
|
intro:{
|
||||||
|
content:function(storage,player){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player).map((i)=>get.translation(i));
|
||||||
|
return '①你使用'+list[0]+'牌无次数限制。②当你使用或打出'+list[1]+'牌后,你摸一张牌。③当你成为'+list[2]+'牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张'+list[3]+'牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
group:['lkbushi_unlimit','lkbushi_draw','lkbushi_defend','lkbushi_gain'],
|
||||||
|
subSkill:{
|
||||||
|
unlimit:{
|
||||||
|
mod:{
|
||||||
|
cardUsable:function(card,player){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
if(list[0]==get.suit(card)) return Infinity;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
trigger:{player:'useCard1'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
firstDo:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.addCount===false) return true;
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
return (list[0]==get.suit(event.card));
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.addCount=false;
|
||||||
|
var stat=player.getStat().card,name=trigger.card.name;
|
||||||
|
if(stat[name]&&typeof stat[name]=='number') stat[name]--;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
draw:{
|
||||||
|
audio:'lkbushi',
|
||||||
|
trigger:{player:['useCard','respond']},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
return list[1]==get.suit(event.card);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
defend:{
|
||||||
|
audio:'lkbushi',
|
||||||
|
trigger:{target:'useCardToTargeted'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
return list[2]==get.suit(event.card)&&!event.excluded.contains(player)&&player.countCards('he')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseToDiscard('he',get.prompt('lkbushi'),'弃置一张牌,令'+get.translation(trigger.card)+'对你无效').set('ai',function(card){
|
||||||
|
if(_status.event.eff>=0) return false;
|
||||||
|
return -_status.event.eff*1.1-get.value(card);
|
||||||
|
}).set('eff',get.effect(player,trigger.card,trigger.player,player)).logSkill=['lkbushi_defend',trigger.player];
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
trigger.excluded.add(player);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
gain:{
|
||||||
|
audio:'lkbushi',
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player);
|
||||||
|
var card=get.cardPile(function(card){
|
||||||
|
return get.suit(card,false)==list[3];
|
||||||
|
});
|
||||||
|
if(card) player.gain(card,'gain2');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lkzhongzhuang:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{source:'damageBegin1'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!event.card||event.card.name!='sha'||event.getParent().type!='card') return false;
|
||||||
|
var range=player.getAttackRange();
|
||||||
|
if(range>3) return true;
|
||||||
|
return range<3&&event.num>1;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var range=player.getAttackRange();
|
||||||
|
if(range>3) trigger.num++;
|
||||||
|
else trigger.num=1;
|
||||||
|
},
|
||||||
|
global:'lkzhongzhuang_ai',
|
||||||
|
subSkill:{
|
||||||
|
ai:{
|
||||||
|
ai:{
|
||||||
|
filterDamage:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(arg&&arg.card&&arg.card.name=='sha'){
|
||||||
|
if(arg.player&&arg.player.hasSkill('lkzhongzhuang')&&arg.player.getAttackRange()<3) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//顾雍
|
//顾雍
|
||||||
olbingyi:{
|
olbingyi:{
|
||||||
audio:'bingyi',
|
audio:'bingyi',
|
||||||
|
@ -3808,7 +3989,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
trigger.player.addSkill('xinsidi2');
|
trigger.player.addSkill('xinsidi2');
|
||||||
trigger.player.storage.xinsidi2=get.color(result.cards[0],result.cards[0].original=='h'?player:false);
|
trigger.player.markAuto('xinsidi2',[get.color(result.cards[0],result.cards[0].original=='h'?player:false)]);
|
||||||
trigger.player.storage.xinsidi4=player;
|
trigger.player.storage.xinsidi4=player;
|
||||||
trigger.player.syncStorage('xinsidi2');
|
trigger.player.syncStorage('xinsidi2');
|
||||||
}
|
}
|
||||||
|
@ -3843,8 +4024,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mod:{
|
mod:{
|
||||||
cardEnabled2:function(card,player){
|
cardEnabled:function(card,player){
|
||||||
if(get.color(card)==player.storage.xinsidi2) return false;
|
if(player.getStorage('xinsidi2').contains(get.color(card))) return false;
|
||||||
|
},
|
||||||
|
cardRespondable:function(card,player){
|
||||||
|
if(player.getStorage('xinsidi2').contains(get.color(card))) return false;
|
||||||
|
},
|
||||||
|
cardSavable:function(card,player){
|
||||||
|
if(player.getStorage('xinsidi2').contains(get.color(card))) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
|
@ -10065,6 +10252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhichi2:{
|
zhichi2:{
|
||||||
trigger:{target:'useCardToBefore'},
|
trigger:{target:'useCardToBefore'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
charlotte:true,
|
||||||
priority:15,
|
priority:15,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return get.type(event.card)=='trick'||event.card.name=='sha';
|
return get.type(event.card)=='trick'||event.card.name=='sha';
|
||||||
|
@ -12092,6 +12280,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
card:{
|
||||||
|
lukai_spade:{fullskin:true},
|
||||||
|
lukai_heart:{fullskin:true},
|
||||||
|
lukai_diamond:{fullskin:true},
|
||||||
|
lukai_club:{fullskin:true},
|
||||||
|
},
|
||||||
dynamicTranslate:{
|
dynamicTranslate:{
|
||||||
rejueqing:function(player){
|
rejueqing:function(player){
|
||||||
if(player.storage.rejueqing_rewrite) return '锁定技,你即将造成的伤害均视为失去体力。';
|
if(player.storage.rejueqing_rewrite) return '锁定技,你即将造成的伤害均视为失去体力。';
|
||||||
|
@ -12116,6 +12310,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。';
|
if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。';
|
||||||
return '其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。';
|
return '其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。';
|
||||||
},
|
},
|
||||||
|
lkbushi:function(player){
|
||||||
|
var list=lib.skill.lkbushi.getBushi(player).map((i)=>get.translation(i));
|
||||||
|
return '①你使用'+list[0]+'牌无次数限制。②当你使用或打出'+list[1]+'牌后,你摸一张牌。③当你成为'+list[2]+'牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张'+list[3]+'牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
characterReplace:{
|
characterReplace:{
|
||||||
caozhi:['re_caozhi','caozhi'],
|
caozhi:['re_caozhi','caozhi'],
|
||||||
|
@ -12754,6 +12952,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xinzhaofu_info:'主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。',
|
xinzhaofu_info:'主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。',
|
||||||
olbingyi:'秉壹',
|
olbingyi:'秉壹',
|
||||||
olbingyi_info:'每阶段限一次。当你因弃置而失去牌后,你可以展示所有手牌。若这些牌的颜色均相同,则你可以与至多X名其他角色各摸一张牌(X为你的手牌数)。',
|
olbingyi_info:'每阶段限一次。当你因弃置而失去牌后,你可以展示所有手牌。若这些牌的颜色均相同,则你可以与至多X名其他角色各摸一张牌(X为你的手牌数)。',
|
||||||
|
lukai:'陆凯',
|
||||||
|
lukai_spade:'♠',
|
||||||
|
lukai_spade_bg:'♠️',
|
||||||
|
lukai_heart:'♥',
|
||||||
|
lukai_heart_bg:'♥️',
|
||||||
|
lukai_club:'♣',
|
||||||
|
lukai_club_bg:'♣',
|
||||||
|
lukai_diamond:'♦',
|
||||||
|
lukai_diamond_bg:'♦️️',
|
||||||
|
lkbushi:'卜筮',
|
||||||
|
lkbushi_info:'①你使用♠牌无次数限制。②当你使用或打出♥牌后,你摸一张牌。③当你成为♣牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张♦牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。',
|
||||||
|
lkzhongzhuang:'忠壮',
|
||||||
|
lkzhongzhuang_info:'锁定技。当你因执行【杀】的效果而造成伤害时,若你的攻击范围:大于3,则此伤害+1;小于3,则此伤害改为1。',
|
||||||
|
|
||||||
yijiang_2011:'一将成名2011',
|
yijiang_2011:'一将成名2011',
|
||||||
yijiang_2012:'一将成名2012',
|
yijiang_2012:'一将成名2012',
|
||||||
|
@ -12762,6 +12973,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yijiang_2015:'一将成名2015',
|
yijiang_2015:'一将成名2015',
|
||||||
yijiang_2016:'原创设计2016',
|
yijiang_2016:'原创设计2016',
|
||||||
yijiang_2017:'原创设计2017',
|
yijiang_2017:'原创设计2017',
|
||||||
|
yijiang_2022:'原创设计2022',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
window.noname_asset_list=[
|
window.noname_asset_list=[
|
||||||
'v1.9.115.3',
|
'v1.9.116',
|
||||||
'audio/background/aozhan_chaoming.mp3',
|
'audio/background/aozhan_chaoming.mp3',
|
||||||
'audio/background/aozhan_online.mp3',
|
'audio/background/aozhan_online.mp3',
|
||||||
'audio/background/aozhan_rewrite.mp3',
|
'audio/background/aozhan_rewrite.mp3',
|
||||||
|
@ -4630,6 +4630,10 @@ window.noname_asset_list=[
|
||||||
'image/card/sanlve.png',
|
'image/card/sanlve.png',
|
||||||
'image/card/zhaogujing.png',
|
'image/card/zhaogujing.png',
|
||||||
'image/card/changandajian_equip1.png',
|
'image/card/changandajian_equip1.png',
|
||||||
|
'image/card/lukai_club.png',
|
||||||
|
'image/card/lukai_diamond.png',
|
||||||
|
'image/card/lukai_heart.png',
|
||||||
|
'image/card/lukai_spade.png',
|
||||||
|
|
||||||
'image/card/bagua.png',
|
'image/card/bagua.png',
|
||||||
'image/card/baihupifeng.png',
|
'image/card/baihupifeng.png',
|
||||||
|
@ -5644,6 +5648,12 @@ window.noname_asset_list=[
|
||||||
'image/character/zhangxun.jpg',
|
'image/character/zhangxun.jpg',
|
||||||
'image/character/zhaoang.jpg',
|
'image/character/zhaoang.jpg',
|
||||||
'image/character/zhaoyǎn.jpg',
|
'image/character/zhaoyǎn.jpg',
|
||||||
|
'image/character/caoxiancaohua.jpg',
|
||||||
|
'image/character/dc_liuba.jpg',
|
||||||
|
'image/character/key_seira.jpg',
|
||||||
|
'image/character/lukai.jpg',
|
||||||
|
'image/character/prp_zhugeliang.jpg',
|
||||||
|
'image/character/xiahoulingnv.jpg',
|
||||||
|
|
||||||
'image/character/baiwuchang.jpg',
|
'image/character/baiwuchang.jpg',
|
||||||
'image/character/baosanniang.jpg',
|
'image/character/baosanniang.jpg',
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
window.config={
|
window.config={
|
||||||
extension_sources:{
|
extension_sources:{
|
||||||
Coding:'https://nakamurayuri.coding.net/p/noname-extension/d/noname-extension/git/raw/master/',
|
|
||||||
GitHub:'https://raw.githubusercontent.com/libccy/noname-extension/master/',
|
GitHub:'https://raw.githubusercontent.com/libccy/noname-extension/master/',
|
||||||
},
|
},
|
||||||
extension_source:'Coding',
|
extension_source:'Coding',
|
||||||
|
@ -134,7 +133,7 @@ window.config={
|
||||||
sort:'type_sort',
|
sort:'type_sort',
|
||||||
|
|
||||||
cards:['standard','extra'],
|
cards:['standard','extra'],
|
||||||
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian','sb'],
|
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian','sb','tw','offline'],
|
||||||
connect_characters:['diy'],
|
connect_characters:['diy'],
|
||||||
connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian','yongjian'],
|
connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian','yongjian'],
|
||||||
plays:[],
|
plays:[],
|
||||||
|
|
82
game/game.js
|
@ -21,6 +21,7 @@
|
||||||
globalHistory:[{
|
globalHistory:[{
|
||||||
cardMove:[],
|
cardMove:[],
|
||||||
custom:[],
|
custom:[],
|
||||||
|
useCard:[],
|
||||||
}],
|
}],
|
||||||
cardtag:{
|
cardtag:{
|
||||||
yingbian_zhuzhan:[],
|
yingbian_zhuzhan:[],
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
configprefix:'noname_0.9_',
|
configprefix:'noname_0.9_',
|
||||||
versionOL:27,
|
versionOL:27,
|
||||||
updateURLS:{
|
updateURLS:{
|
||||||
coding:'https://nakamurayuri.coding.net/p/noname/d/noname/git/raw',
|
coding:'https://ghproxy.com/https://raw.githubusercontent.com/libccy/noname',
|
||||||
github:'https://raw.githubusercontent.com/libccy/noname',
|
github:'https://raw.githubusercontent.com/libccy/noname',
|
||||||
},
|
},
|
||||||
updateURL:'https://raw.githubusercontent.com/libccy/noname',
|
updateURL:'https://raw.githubusercontent.com/libccy/noname',
|
||||||
|
@ -540,7 +541,7 @@
|
||||||
init:'coding',
|
init:'coding',
|
||||||
unfrequent:true,
|
unfrequent:true,
|
||||||
item:{
|
item:{
|
||||||
coding:'Coding',
|
coding:'Github Proxy',
|
||||||
github:'GitHub',
|
github:'GitHub',
|
||||||
},
|
},
|
||||||
onclick:function(item){
|
onclick:function(item){
|
||||||
|
@ -7438,6 +7439,9 @@
|
||||||
}
|
}
|
||||||
lib.assetURL=noname_inited;
|
lib.assetURL=noname_inited;
|
||||||
}
|
}
|
||||||
|
if(lib.assetURL.indexOf('com.widget.noname.qingyao')!='-1'){
|
||||||
|
alert('您正在一个不受信任的闭源客户端上运行《无名杀》。建议您更换为其他开源的无名杀客户端,避免给您带来不必要的损失。');
|
||||||
|
}
|
||||||
|
|
||||||
var config3=null;
|
var config3=null;
|
||||||
var proceed=function(config2){
|
var proceed=function(config2){
|
||||||
|
@ -7493,13 +7497,13 @@
|
||||||
var pack=window.noname_package;
|
var pack=window.noname_package;
|
||||||
delete window.noname_package;
|
delete window.noname_package;
|
||||||
for(i in pack.character){
|
for(i in pack.character){
|
||||||
if(lib.config.hiddenCharacterPack.indexOf(i)==-1){
|
if(lib.config.all.sgscharacters.contains(i)||lib.config.hiddenCharacterPack.indexOf(i)==-1){
|
||||||
lib.config.all.characters.push(i);
|
lib.config.all.characters.push(i);
|
||||||
lib.translate[i+'_character_config']=pack.character[i];
|
lib.translate[i+'_character_config']=pack.character[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i in pack.card){
|
for(i in pack.card){
|
||||||
if(lib.config.hiddenCardPack.indexOf(i)==-1){
|
if(lib.config.all.sgscards.contains(i)||lib.config.hiddenCardPack.indexOf(i)==-1){
|
||||||
lib.config.all.cards.push(i);
|
lib.config.all.cards.push(i);
|
||||||
lib.translate[i+'_card_config']=pack.card[i];
|
lib.translate[i+'_card_config']=pack.card[i];
|
||||||
}
|
}
|
||||||
|
@ -7580,8 +7584,10 @@
|
||||||
lib.configMenu.appearence.config.identity_font.item[i]=pack.font[i];
|
lib.configMenu.appearence.config.identity_font.item[i]=pack.font[i];
|
||||||
lib.configMenu.appearence.config.cardtext_font.item[i]=pack.font[i];
|
lib.configMenu.appearence.config.cardtext_font.item[i]=pack.font[i];
|
||||||
lib.configMenu.appearence.config.global_font.item[i]=pack.font[i];
|
lib.configMenu.appearence.config.global_font.item[i]=pack.font[i];
|
||||||
ui.css.fontsheet.sheet.insertRule("@font-face {font-family: '"+i+"';src: url('"+lib.assetURL+"font/"+i+".ttf');}",0);
|
ui.css.fontsheet.sheet.insertRule("@font-face {font-family: '"+i+"'; src: url('"+lib.assetURL+"font/"+i+".ttf');}",0);
|
||||||
|
ui.css.fontsheet.sheet.insertRule("@font-face {font-family: '"+i+"'; src: url('"+lib.assetURL+"font/suits.ttf');}",0);
|
||||||
}
|
}
|
||||||
|
ui.css.fontsheet.sheet.insertRule("@font-face {font-family: 'Suits'; src: url('"+lib.assetURL+"font/suits.ttf');}",0);
|
||||||
lib.configMenu.appearence.config.cardtext_font.item.default='默认';
|
lib.configMenu.appearence.config.cardtext_font.item.default='默认';
|
||||||
lib.configMenu.appearence.config.global_font.item.default='默认';
|
lib.configMenu.appearence.config.global_font.item.default='默认';
|
||||||
}
|
}
|
||||||
|
@ -10671,9 +10677,14 @@
|
||||||
buttons.classList.add('guanxing');
|
buttons.classList.add('guanxing');
|
||||||
buttons._link=i;
|
buttons._link=i;
|
||||||
if(list[i][1]){
|
if(list[i][1]){
|
||||||
var cardsb=ui.create.buttons(list[i][1],'card',buttons);
|
if(get.itemtype(list[i][1])=='cards'){
|
||||||
if(list[i][2]&&typeof list[i][2]=='string'){
|
var cardsb=ui.create.buttons(list[i][1],'card',buttons);
|
||||||
for(var ij of cardsb) ij.node.gaintag.innerHTML=get.translation(list[i][2]);
|
if(list[i][2]&&typeof list[i][2]=='string'){
|
||||||
|
for(var ij of cardsb) ij.node.gaintag.innerHTML=get.translation(list[i][2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(list[i][1].length==2){
|
||||||
|
ui.create.buttons(list[i][1][0],list[i][1][1],buttons);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(list[i][2]&&typeof list[i][2]=='function') buttons.textPrompt=list[i][2];
|
if(list[i][2]&&typeof list[i][2]=='function') buttons.textPrompt=list[i][2];
|
||||||
|
@ -11255,6 +11266,7 @@
|
||||||
_status.globalHistory.push({
|
_status.globalHistory.push({
|
||||||
cardMove:[],
|
cardMove:[],
|
||||||
custom:[],
|
custom:[],
|
||||||
|
useCard:[],
|
||||||
});
|
});
|
||||||
game.countPlayer2(function(current){
|
game.countPlayer2(function(current){
|
||||||
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[],useSkill:[]});
|
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[],useSkill:[]});
|
||||||
|
@ -12590,12 +12602,16 @@
|
||||||
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
|
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
|
||||||
next.dialog=dialog;
|
next.dialog=dialog;
|
||||||
next.set('ai',info.chooseButton.check||function(){return 0;});
|
next.set('ai',info.chooseButton.check||function(){return 0;});
|
||||||
|
if(event.id) next._parent_id=event.id;
|
||||||
|
next.type='chooseToUse_button';
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
var next=player.chooseButton(dialog);
|
var next=player.chooseButton(dialog);
|
||||||
next.set('ai',info.chooseButton.check||function(){return 1;});
|
next.set('ai',info.chooseButton.check||function(){return 1;});
|
||||||
next.set('filterButton',info.chooseButton.filter||function(){return true;});
|
next.set('filterButton',info.chooseButton.filter||function(){return true;});
|
||||||
next.set('selectButton',info.chooseButton.select||1);
|
next.set('selectButton',info.chooseButton.select||1);
|
||||||
|
if(event.id) next._parent_id=event.id;
|
||||||
|
next.type='chooseToUse_button';
|
||||||
}
|
}
|
||||||
event.buttoned=event.result.skill;
|
event.buttoned=event.result.skill;
|
||||||
}
|
}
|
||||||
|
@ -14173,7 +14189,7 @@
|
||||||
choosePlayerCard:function(){
|
choosePlayerCard:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
||||||
else if(!event.isMine){
|
else if(!event.isMine()){
|
||||||
event.dialog.style.display='none';
|
event.dialog.style.display='none';
|
||||||
}
|
}
|
||||||
if(event.prompt){
|
if(event.prompt){
|
||||||
|
@ -14286,7 +14302,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
||||||
else if(!event.isMine){
|
else if(!event.isMine()){
|
||||||
event.dialog.style.display='none';
|
event.dialog.style.display='none';
|
||||||
}
|
}
|
||||||
if(event.prompt==undefined){
|
if(event.prompt==undefined){
|
||||||
|
@ -14431,7 +14447,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
if(!event.dialog) event.dialog=ui.create.dialog('hidden');
|
||||||
else if(!event.isMine){
|
else if(!event.isMine()){
|
||||||
event.dialog.style.display='none';
|
event.dialog.style.display='none';
|
||||||
}
|
}
|
||||||
if(event.prompt==undefined){
|
if(event.prompt==undefined){
|
||||||
|
@ -14937,6 +14953,7 @@
|
||||||
event.oncard(event.card,event.player);
|
event.oncard(event.card,event.player);
|
||||||
}
|
}
|
||||||
player.actionHistory[player.actionHistory.length-1].useCard.push(event);
|
player.actionHistory[player.actionHistory.length-1].useCard.push(event);
|
||||||
|
game.getGlobalHistory().useCard.push(event);
|
||||||
if(event.addCount!==false){
|
if(event.addCount!==false){
|
||||||
if(player.stat[player.stat.length-1].card[card.name]==undefined){
|
if(player.stat[player.stat.length-1].card[card.name]==undefined){
|
||||||
player.stat[player.stat.length-1].card[card.name]=1;
|
player.stat[player.stat.length-1].card[card.name]=1;
|
||||||
|
@ -20266,6 +20283,11 @@
|
||||||
if(event.addCount===false){
|
if(event.addCount===false){
|
||||||
next.addCount=false;
|
next.addCount=false;
|
||||||
}
|
}
|
||||||
|
if(result._apply_args){
|
||||||
|
for(var i in result._apply_args){
|
||||||
|
next[i]=result._apply_args[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
return next;
|
return next;
|
||||||
}
|
}
|
||||||
else if(result.skill){
|
else if(result.skill){
|
||||||
|
@ -22117,6 +22139,7 @@
|
||||||
var info=get.info(card);
|
var info=get.info(card);
|
||||||
if(info.multicheck&&!info.multicheck(card,this)) return false;
|
if(info.multicheck&&!info.multicheck(card,this)) return false;
|
||||||
if(!lib.filter.cardEnabled(card,this)) return false;
|
if(!lib.filter.cardEnabled(card,this)) return false;
|
||||||
|
if(includecard&&!lib.filter.cardUsable(card,this)) return false;
|
||||||
if(distance!==false&&!lib.filter.targetInRange(card,this,target)) return false;
|
if(distance!==false&&!lib.filter.targetInRange(card,this,target)) return false;
|
||||||
return lib.filter[includecard?'targetEnabledx':'targetEnabled'](card,this,target);
|
return lib.filter[includecard?'targetEnabledx':'targetEnabled'](card,this,target);
|
||||||
},
|
},
|
||||||
|
@ -25171,8 +25194,8 @@
|
||||||
}
|
}
|
||||||
var cardnum=card[1]||'';
|
var cardnum=card[1]||'';
|
||||||
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
||||||
if([1,11,12,13].contains(cardnum)){
|
if(cardnum>0&&cardnum<14){
|
||||||
cardnum={'1':'A','11':'J','12':'Q','13':'K'}[cardnum];
|
cardnum=['A','2','3','4','5','6','7','8','9','10','J','Q','K'][cardnum-1];
|
||||||
}
|
}
|
||||||
if(!lib.card[card[2]]){
|
if(!lib.card[card[2]]){
|
||||||
lib.card[card[2]]={};
|
lib.card[card[2]]={};
|
||||||
|
@ -25378,7 +25401,7 @@
|
||||||
this.node.info.innerHTML=info.modinfo;
|
this.node.info.innerHTML=info.modinfo;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.node.info.innerHTML=get.translation(card[0])+'<span> </span>'+cardnum;
|
this.node.info.innerHTML=get.translation(card[0])+'<span style="font-family:xinwei"> </span><span style="font-family:xinwei">'+cardnum+'</span>';
|
||||||
}
|
}
|
||||||
if(info.addinfo){
|
if(info.addinfo){
|
||||||
if(!this.node.addinfo){
|
if(!this.node.addinfo){
|
||||||
|
@ -26805,6 +26828,7 @@
|
||||||
var info=get.info(card);
|
var info=get.info(card);
|
||||||
if(info.updateUsable=='phaseUse'){
|
if(info.updateUsable=='phaseUse'){
|
||||||
event=event||_status.event;
|
event=event||_status.event;
|
||||||
|
if(event.type=='chooseToUse_button') event=event.getParent();
|
||||||
if(player!=_status.event.player) return true;
|
if(player!=_status.event.player) return true;
|
||||||
if(event.getParent().name!='phaseUse') return true;
|
if(event.getParent().name!='phaseUse') return true;
|
||||||
if(event.getParent().player!=player) return true;
|
if(event.getParent().player!=player) return true;
|
||||||
|
@ -26819,6 +26843,7 @@
|
||||||
card=get.autoViewAs(card,null,player);
|
card=get.autoViewAs(card,null,player);
|
||||||
var info=get.info(card);
|
var info=get.info(card);
|
||||||
event=event||_status.event;
|
event=event||_status.event;
|
||||||
|
if(event.type=='chooseToUse_button') event=event.getParent();
|
||||||
if(player!=_status.event.player) return true;
|
if(player!=_status.event.player) return true;
|
||||||
if(info.updateUsable=='phaseUse'){
|
if(info.updateUsable=='phaseUse'){
|
||||||
if(event.getParent().name!='phaseUse') return true;
|
if(event.getParent().name!='phaseUse') return true;
|
||||||
|
@ -29016,6 +29041,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cancel:function(id){
|
cancel:function(id){
|
||||||
|
if(_status.event._parent_id==id&&_status.event.isMine()&&_status.paused&&_status.imchoosing){
|
||||||
|
ui.click.cancel();
|
||||||
|
}
|
||||||
if(_status.event.id==id&&_status.event.isMine()&&_status.paused&&_status.imchoosing){
|
if(_status.event.id==id&&_status.event.isMine()&&_status.paused&&_status.imchoosing){
|
||||||
ui.click.cancel();
|
ui.click.cancel();
|
||||||
if(ui.confirm){
|
if(ui.confirm){
|
||||||
|
@ -33746,6 +33774,7 @@
|
||||||
check:function(event){
|
check:function(event){
|
||||||
var i,j,range;
|
var i,j,range;
|
||||||
if(event==undefined) event=_status.event;
|
if(event==undefined) event=_status.event;
|
||||||
|
event._checked=true;
|
||||||
var custom=event.custom||{};
|
var custom=event.custom||{};
|
||||||
var ok=true,auto=true;
|
var ok=true,auto=true;
|
||||||
var player=event.player;
|
var player=event.player;
|
||||||
|
@ -36590,7 +36619,7 @@
|
||||||
roundNumber:0,
|
roundNumber:0,
|
||||||
shuffleNumber:0,
|
shuffleNumber:0,
|
||||||
};
|
};
|
||||||
window['b'+'ann'+'e'+'dE'+'x'+'ten'+'s'+'i'+'o'+'ns']=[];
|
window['b'+'ann'+'e'+'dE'+'x'+'ten'+'s'+'i'+'o'+'ns']=['\u5047装\u65e0敌'];
|
||||||
var ui={
|
var ui={
|
||||||
updates:[],
|
updates:[],
|
||||||
thrown:[],
|
thrown:[],
|
||||||
|
@ -39104,14 +39133,19 @@
|
||||||
page.classList.add('menu-buttons');
|
page.classList.add('menu-buttons');
|
||||||
page.classList.add('leftbutton');
|
page.classList.add('leftbutton');
|
||||||
if(!connectMenu){
|
if(!connectMenu){
|
||||||
if(mode.indexOf('mode_')!=0){
|
if(lib.config.all.sgscharacters.contains(mode)){
|
||||||
|
ui.create.div('.config.pointerspan','<span style="opacity:0.5">该武将包不可被隐藏</span>',page);
|
||||||
|
}
|
||||||
|
else if(mode.indexOf('mode_')!=0){
|
||||||
ui.create.div('.config.pointerspan','<span>隐藏武将包</span>',page,function(){
|
ui.create.div('.config.pointerspan','<span>隐藏武将包</span>',page,function(){
|
||||||
if(this.firstChild.innerHTML=='隐藏武将包'){
|
if(this.firstChild.innerHTML=='隐藏武将包'){
|
||||||
this.firstChild.innerHTML='武将包将在重启后隐藏';
|
if(confirm('真的要隐藏“'+get.translation(mode+'_character_config')+'”武将包吗?\n建议使用“关闭”而不是“隐藏”功能,否则将会影响其他相关武将包的正常运行!')){
|
||||||
lib.config.hiddenCharacterPack.add(mode);
|
this.firstChild.innerHTML='武将包将在重启后隐藏';
|
||||||
if(!lib.config.prompt_hidepack){
|
lib.config.hiddenCharacterPack.add(mode);
|
||||||
alert('隐藏的扩展包可通过选项-其它-重置隐藏内容恢复');
|
if(!lib.config.prompt_hidepack){
|
||||||
game.saveConfig('prompt_hidepack',true);
|
alert('隐藏的扩展包可通过选项-其它-重置隐藏内容恢复');
|
||||||
|
game.saveConfig('prompt_hidepack',true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -39315,7 +39349,7 @@
|
||||||
var list=[];
|
var list=[];
|
||||||
for(var i=0;i<info.length;i++){
|
for(var i=0;i<info.length;i++){
|
||||||
if(!lib.card[info[i]]||(lib.card[info[i]].derivation&&mode!='mode_derivation')) continue;
|
if(!lib.card[info[i]]||(lib.card[info[i]].derivation&&mode!='mode_derivation')) continue;
|
||||||
list.push(['',get.translation(get.type(info[i],'trick')),info[i]]);
|
list.push([get.translation(get.type(info[i],'trick')),'',info[i]]);
|
||||||
}
|
}
|
||||||
var sortCard=function(card){
|
var sortCard=function(card){
|
||||||
var type=lib.card[card[2]].type;
|
var type=lib.card[card[2]].type;
|
||||||
|
@ -39412,7 +39446,7 @@
|
||||||
}
|
}
|
||||||
page.classList.add('menu-buttons');
|
page.classList.add('menu-buttons');
|
||||||
page.classList.add('leftbutton');
|
page.classList.add('leftbutton');
|
||||||
if(!connectMenu&&mode.indexOf('mode_')!=0){
|
if(!connectMenu&&!lib.config.all.sgscards.contains(mode)&&mode.indexOf('mode_')!=0){
|
||||||
ui.create.div('.config.pointerspan','<span>隐藏卡牌包</span>',page,function(){
|
ui.create.div('.config.pointerspan','<span>隐藏卡牌包</span>',page,function(){
|
||||||
if(this.firstChild.innerHTML=='隐藏卡牌包'){
|
if(this.firstChild.innerHTML=='隐藏卡牌包'){
|
||||||
this.firstChild.innerHTML='卡牌包将在重启后隐藏';
|
this.firstChild.innerHTML='卡牌包将在重启后隐藏';
|
||||||
|
@ -48655,7 +48689,7 @@
|
||||||
if(_status.event.skill&&_status.event.name=='chooseToUse'){
|
if(_status.event.skill&&_status.event.name=='chooseToUse'){
|
||||||
ui.click.cancel();
|
ui.click.cancel();
|
||||||
}
|
}
|
||||||
else{
|
else if(_status.event._checked){
|
||||||
game.uncheck();
|
game.uncheck();
|
||||||
game.check();
|
game.check();
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ window.noname_source_list=[
|
||||||
'character/yijiang.js',
|
'character/yijiang.js',
|
||||||
'character/yingbian.js',
|
'character/yingbian.js',
|
||||||
'character/yxs.js',
|
'character/yxs.js',
|
||||||
|
'font/suits.ttf',
|
||||||
'game/asset.js',
|
'game/asset.js',
|
||||||
'game/codemirror.js',
|
'game/codemirror.js',
|
||||||
'game/config.js',
|
'game/config.js',
|
||||||
|
|
|
@ -1,26 +1,25 @@
|
||||||
window.noname_update={
|
window.noname_update={
|
||||||
version:'1.9.115.3',
|
version:'1.9.116',
|
||||||
update:'1.9.115.2.1',
|
update:'1.9.115.3',
|
||||||
changeLog:[
|
changeLog:[
|
||||||
'钟离牧入选稿公布',
|
'派对浪客、樱庭星罗入选稿公布',
|
||||||
'OL周处、赵俨',
|
'OL曹宪曹华、十周年刘巴、陆凯、夏侯令女',
|
||||||
'十周年纪灵、孙茹、王昶、冯芳、张勋、赵昂',
|
'花色字体显示优化',
|
||||||
'海外服神关羽',
|
|
||||||
'技能调整与bug修复',
|
'技能调整与bug修复',
|
||||||
],
|
],
|
||||||
files:[
|
files:[
|
||||||
//'card/extra.js',
|
'card/extra.js',
|
||||||
//'card/gujian.js',
|
//'card/gujian.js',
|
||||||
//'card/guozhan.js',
|
'card/guozhan.js',
|
||||||
//'card/gwent.js',
|
//'card/gwent.js',
|
||||||
//'card/huanlekapai.js',
|
//'card/huanlekapai.js',
|
||||||
//'card/mtg.js',
|
//'card/mtg.js',
|
||||||
//'card/sp.js',
|
'card/sp.js',
|
||||||
//'card/standard.js',
|
//'card/standard.js',
|
||||||
//'card/swd.js',
|
//'card/swd.js',
|
||||||
//'card/yunchou.js',
|
//'card/yunchou.js',
|
||||||
//'card/yingbian.js',
|
//'card/yingbian.js',
|
||||||
'card/yongjian.js',
|
//'card/yongjian.js',
|
||||||
//'card/zhenfa.js',
|
//'card/zhenfa.js',
|
||||||
//'card/zhulu.js',
|
//'card/zhulu.js',
|
||||||
'character/diy.js',
|
'character/diy.js',
|
||||||
|
@ -32,7 +31,7 @@ window.noname_update={
|
||||||
'character/mobile.js',
|
'character/mobile.js',
|
||||||
//'character/mtg.js',
|
//'character/mtg.js',
|
||||||
//'character/offline.js',
|
//'character/offline.js',
|
||||||
//'character/old.js',
|
'character/old.js',
|
||||||
//'character/ow.js',
|
//'character/ow.js',
|
||||||
'character/rank.js',
|
'character/rank.js',
|
||||||
'character/refresh.js',
|
'character/refresh.js',
|
||||||
|
@ -45,11 +44,12 @@ window.noname_update={
|
||||||
//'character/swd.js',
|
//'character/swd.js',
|
||||||
//'character/xianjian.js',
|
//'character/xianjian.js',
|
||||||
//'character/xinghuoliaoyuan.js',
|
//'character/xinghuoliaoyuan.js',
|
||||||
'character/yingbian.js',
|
//'character/yingbian.js',
|
||||||
'character/yijiang.js',
|
'character/yijiang.js',
|
||||||
//'character/yxs.js',
|
//'character/yxs.js',
|
||||||
//'extension/boss/extension.js',
|
//'extension/boss/extension.js',
|
||||||
//'layout/default/layout.css',
|
'font/suits.ttf',
|
||||||
|
'layout/default/layout.css',
|
||||||
//'layout/newlayout/global.css',
|
//'layout/newlayout/global.css',
|
||||||
//'layout/default/menu.css',
|
//'layout/default/menu.css',
|
||||||
//'layout/nova/layout.css',
|
//'layout/nova/layout.css',
|
||||||
|
@ -59,7 +59,7 @@ window.noname_update={
|
||||||
//'mode/chess.js',
|
//'mode/chess.js',
|
||||||
//'mode/connect.js',
|
//'mode/connect.js',
|
||||||
//'mode/doudizhu.js',
|
//'mode/doudizhu.js',
|
||||||
//'mode/guozhan.js',
|
'mode/guozhan.js',
|
||||||
//'mode/identity.js',
|
//'mode/identity.js',
|
||||||
//'mode/single.js',
|
//'mode/single.js',
|
||||||
//'mode/stone.js',
|
//'mode/stone.js',
|
||||||
|
@ -68,16 +68,16 @@ window.noname_update={
|
||||||
'game/game.js',
|
'game/game.js',
|
||||||
//'game/keyWords.js',
|
//'game/keyWords.js',
|
||||||
//'game/NoSleep.js',
|
//'game/NoSleep.js',
|
||||||
//'game/config.js',
|
'game/config.js',
|
||||||
//'game/package.js',
|
//'game/package.js',
|
||||||
//'game/asset.js',
|
//'game/asset.js',
|
||||||
//'game/source.js',
|
'game/source.js',
|
||||||
//'theme/style/hp/custom.css',
|
//'theme/style/hp/custom.css',
|
||||||
//'theme/style/hp/emotion.css',
|
//'theme/style/hp/emotion.css',
|
||||||
//'theme/style/hp/glass.css',
|
//'theme/style/hp/glass.css',
|
||||||
//'theme/style/hp/image',
|
//'theme/style/hp/image',
|
||||||
//'theme/style/hp/official.css',
|
//'theme/style/hp/official.css',
|
||||||
//'theme/style/hp/ol.css',
|
'theme/style/hp/ol.css',
|
||||||
//'theme/style/hp/round.css',
|
//'theme/style/hp/round.css',
|
||||||
//'theme/style/hp/xinglass.css',
|
//'theme/style/hp/xinglass.css',
|
||||||
//'theme/style/hp/xinround.css',
|
//'theme/style/hp/xinround.css',
|
||||||
|
|
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 90 KiB |
|
@ -25,7 +25,7 @@ body {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
transform-origin: top left;
|
transform-origin: top left;
|
||||||
font-family: 'STHeiti','SimHei','Microsoft JhengHei','Microsoft YaHei','WenQuanYi Micro Hei',Helvetica,Arial,sans-serif
|
font-family: 'STHeiti','SimHei','Microsoft JhengHei','Microsoft YaHei','WenQuanYi Micro Hei','Suits',Helvetica,Arial,sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
|
@ -1295,9 +1295,10 @@ body>.background.land {
|
||||||
/*overflow: hidden;*/
|
/*overflow: hidden;*/
|
||||||
}
|
}
|
||||||
.card>.info {
|
.card>.info {
|
||||||
right: 6px;
|
top: 5.2px;
|
||||||
top: 9px;
|
right: 7px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
word-spacing: -0.1em;
|
||||||
}
|
}
|
||||||
.card>.range {
|
.card>.range {
|
||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
|
@ -4251,13 +4252,14 @@ div[data-decoration="bronze"]::after{
|
||||||
color: rgb(255,235,59);
|
color: rgb(255,235,59);
|
||||||
}
|
}
|
||||||
.card.fullskin>.info {
|
.card.fullskin>.info {
|
||||||
top: 8px;
|
top: 5.2px;
|
||||||
right: 6px;
|
right: 7px;
|
||||||
color: rgba(0,0,0,0.8);
|
color: rgba(0,0,0,0.8);
|
||||||
|
white-space: nowrap;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
}
|
}
|
||||||
.card.fullskin>.info.red {
|
.card.fullskin>.info.red {
|
||||||
color: #631515;
|
color: #A82424;
|
||||||
}
|
}
|
||||||
|
|
||||||
.config>.toggle.onoff {
|
.config>.toggle.onoff {
|
||||||
|
|
|
@ -3039,7 +3039,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return player.countMark('gzsuzhi_count')<3;
|
return player.countMark('gzsuzhi_count')<3;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addTempSkill('fankui',{player:'phaseBegin'});
|
player.addTempSkill('gzfankui',{player:'phaseBegin'});
|
||||||
},
|
},
|
||||||
group:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'],
|
group:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'],
|
||||||
preHidden:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'],
|
preHidden:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'],
|
||||||
|
@ -3365,7 +3365,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
var evt=_status.event.getParent();
|
var evt=_status.event.getParent();
|
||||||
if(evt.name!='gzzhuhai'||!arg||!arg.target) return false;
|
if(evt.name!='gzzhuhai'||!arg||!arg.target) return false;
|
||||||
if(!arg.target.getHistory('sourceDamage',function(evt){
|
if(!arg.target.getHistory('sourceDamage',function(evt){
|
||||||
return evt.player.sameIdentityAs(player);
|
return evt.player.isFriendOf(player);
|
||||||
}).length) return false;
|
}).length) return false;
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
@ -3998,14 +3998,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
gzxingzhao:{
|
gzxingzhao:{
|
||||||
audio:2,
|
audio:2,
|
||||||
getNum:function(){
|
getNum:function(){
|
||||||
var num=0;
|
var list=[],players=game.filterPlayer();
|
||||||
var list=[];
|
for(var target of players){
|
||||||
game.countPlayer(function(current){
|
if(target.isUnseen()||target.isHealthy()) continue;
|
||||||
if(current.identity=='unknown'||current.isHealthy()) return;
|
var add=true;
|
||||||
if(current.identity=='ye') num++;
|
for(var i of list){
|
||||||
else list.add(current.identity);
|
if(i.isFriendOf(target)){
|
||||||
});
|
add=false;
|
||||||
return num+list.length;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(add) list.add(target);
|
||||||
|
}
|
||||||
|
return list.length;
|
||||||
},
|
},
|
||||||
mod:{
|
mod:{
|
||||||
maxHandcard:function(player,num){
|
maxHandcard:function(player,num){
|
||||||
|
@ -6588,7 +6593,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
silent:true,
|
silent:true,
|
||||||
filter:function(event){
|
filter:function(event){
|
||||||
if(event.player.isUnseen()) return false;
|
if(event.player.isUnseen()) return false;
|
||||||
return event.getParent(2).skill=='new_luanji'&&event.player.sameIdentityAs(_status.currentPhase);
|
return event.getParent(2).skill=='new_luanji'&&event.player.isFriendOf(_status.currentPhase);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.player.draw();
|
trigger.player.draw();
|
||||||
|
@ -7881,8 +7886,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(target==player) return false;
|
if(target==player) return false;
|
||||||
if(player.isUnseen()) return target.isUnseen();
|
if(player.isUnseen()) return target.isUnseen();
|
||||||
if(player.identity=='ye') return true;
|
return !target.isFriendOf(player);
|
||||||
return target.identity!=player.identity;
|
|
||||||
},
|
},
|
||||||
check:function(card){
|
check:function(card){
|
||||||
if(card.name=='tao') return 0;
|
if(card.name=='tao') return 0;
|
||||||
|
@ -7975,7 +7979,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{global:'useCardToTarget'},
|
trigger:{global:'useCardToTarget'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!['basic','trick'].contains(get.type(event.card,'trick'))) return false;
|
if(!['basic','trick'].contains(get.type(event.card,'trick'))) return false;
|
||||||
return event.target&&player.sameIdentityAs(event.target)&&event.targets.length==1&&player.getExpansions('qianhuan').length;
|
return event.target&&player.isFriendOf(event.target)&&event.targets.length==1&&player.getExpansions('qianhuan').length;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -8031,7 +8035,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
trigger.cancel();
|
trigger.cancel();
|
||||||
'step 1'
|
'step 1'
|
||||||
if(player.sameIdentityAs(trigger.player)){
|
if(player.isFriendOf(trigger.player)){
|
||||||
trigger.player.mayChangeVice();
|
trigger.player.mayChangeVice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8507,7 +8511,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
audio:'yuejian',
|
audio:'yuejian',
|
||||||
preHidden:true,
|
preHidden:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(player.sameIdentityAs(event.player)){
|
if(player.isFriendOf(event.player)){
|
||||||
return event.player.getHistory('useCard',function(evt){
|
return event.player.getHistory('useCard',function(evt){
|
||||||
if(evt.targets){
|
if(evt.targets){
|
||||||
var targets=evt.targets.slice(0);
|
var targets=evt.targets.slice(0);
|
||||||
|
@ -12434,6 +12438,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
changeViceOnline:function(){
|
changeViceOnline:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
player.showCharacter(2);
|
||||||
var group=lib.character[player.name1][1];
|
var group=lib.character[player.name1][1];
|
||||||
_status.characterlist.randomSort();
|
_status.characterlist.randomSort();
|
||||||
var name=false;
|
var name=false;
|
||||||
|
@ -12450,16 +12455,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
event.toChange=name;
|
event.toChange=name;
|
||||||
if(event.change) event.trigger('removeCharacterBefore');
|
if(event.change) event.trigger('removeCharacterBefore');
|
||||||
'step 1'
|
'step 1'
|
||||||
var name=event.toChange;
|
if(event.hidden){
|
||||||
game.log(player,'将副将变更为','#g'+get.translation(name));
|
if(!player.isUnseen(1)) player.hideCharacter(1);
|
||||||
player.viceChanged=true;
|
|
||||||
if(player.isUnseen(1)){
|
|
||||||
player.showCharacter(1,false);
|
|
||||||
}
|
}
|
||||||
|
'step 2'
|
||||||
|
var name=event.toChange;
|
||||||
|
if(event.hidden) game.log(player,'替换了副将','#g'+get.translation(player.name2));
|
||||||
|
else game.log(player,'将副将从','#g'+get.translation(player.name2),'变更为','#g'+get.translation(name));
|
||||||
|
player.viceChanged=true;
|
||||||
player.reinit(player.name2,name,false);
|
player.reinit(player.name2,name,false);
|
||||||
},
|
},
|
||||||
changeVice:function(){
|
changeVice:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
player.showCharacter(2);
|
||||||
if(!event.num) event.num=3;
|
if(!event.num) event.num=3;
|
||||||
var group=player.identity;
|
var group=player.identity;
|
||||||
if(!lib.group.contains(group)) group=lib.character[player.name1][1];
|
if(!lib.group.contains(group)) group=lib.character[player.name1][1];
|
||||||
|
@ -12491,12 +12499,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
event.toChange=name;
|
event.toChange=name;
|
||||||
if(event.change) event.trigger('removeCharacterBefore');
|
if(event.change) event.trigger('removeCharacterBefore');
|
||||||
if(event.hidden){
|
if(event.hidden){
|
||||||
if(player.isUnseen(0)) player.showCharacter(0,false);
|
|
||||||
if(!player.isUnseen(1)) player.hideCharacter(1);
|
if(!player.isUnseen(1)) player.hideCharacter(1);
|
||||||
}
|
}
|
||||||
else if(player.isUnseen(1)){
|
|
||||||
player.showCharacter(1,false);
|
|
||||||
}
|
|
||||||
'step 2'
|
'step 2'
|
||||||
var name=event.toChange;
|
var name=event.toChange;
|
||||||
if(event.hidden) game.log(player,'替换了副将','#g'+get.translation(player.name2));
|
if(event.hidden) game.log(player,'替换了副将','#g'+get.translation(player.name2));
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
filter:grayscale(1) opacity(0.8);
|
filter:grayscale(1) opacity(0.8);
|
||||||
-webkit-filter:grayscale(1) opacity(0.8);
|
-webkit-filter:grayscale(1) opacity(0.8);
|
||||||
}
|
}
|
||||||
.hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||||
background: url('image/shield.png');
|
background: url('image/shield.png');
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border: none;
|
border: none;
|
||||||
|
|