三家归晋
This commit is contained in:
parent
73b9e22c57
commit
6e0dbee7e8
|
@ -247,7 +247,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
return 8-get.value(card);
|
||||
});
|
||||
'step 3'
|
||||
if(event.forceExecute||!result.bool) target.damage('thunder');
|
||||
if(card.yingbian||!result.bool) target.damage('thunder');
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
|
|
|
@ -48,6 +48,18 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
icedamage:{
|
||||
ai:{
|
||||
result:{
|
||||
target:-1.5
|
||||
},
|
||||
tag:{
|
||||
damage:1,
|
||||
iceDamage:1,
|
||||
natureDamage:1,
|
||||
}
|
||||
}
|
||||
},
|
||||
respondShan:{
|
||||
ai:{
|
||||
result:{
|
||||
|
@ -63,13 +75,23 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
sha:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
nature:['thunder','fire','kami'],
|
||||
nature:['thunder','fire','kami','ice'],
|
||||
type:'basic',
|
||||
enable:true,
|
||||
usable:1,
|
||||
updateUsable:'phaseUse',
|
||||
global:'icesha_skill',
|
||||
range:{attack:1},
|
||||
selectTarget:1,
|
||||
yingbian:function(event){
|
||||
if(event.card.nature=='fire'){
|
||||
if(typeof event.baseDamage!='number') event.baseDamage=1;
|
||||
event.baseDamage++;
|
||||
}
|
||||
else{
|
||||
event.yingbian_addTarget=true;
|
||||
}
|
||||
},
|
||||
filterTarget:function(card,player,target){return player!=target},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -233,6 +255,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
cardcolor:'red',
|
||||
notarget:true,
|
||||
nodelay:true,
|
||||
yingbian:function(event){
|
||||
event.player.draw();
|
||||
},
|
||||
content:function(){
|
||||
event.result='shaned';
|
||||
event.getParent().delayx=false;
|
||||
|
@ -735,6 +760,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
type:'trick',
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
yingbian:function(event){
|
||||
event.yingbian_removeTarget=true;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player;
|
||||
},
|
||||
|
@ -920,6 +948,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
yingbian:function(event){
|
||||
event.directHit.addArray(game.players);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player;
|
||||
},
|
||||
|
@ -1330,6 +1361,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
delete ui.tempnowuxie;
|
||||
}
|
||||
}
|
||||
if(event.card.yingbian){
|
||||
var cardx=event.getParent().respondTo[1];
|
||||
if(cardx&&cardx.cards&&cardx.cards.filterInD().length) player.gain(cardx.cards.filterInD(),'gain2','log');
|
||||
}
|
||||
},
|
||||
},
|
||||
lebu:{
|
||||
|
@ -1566,6 +1601,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
icesha_skill:{
|
||||
inherit:'hanbing_skill',
|
||||
trigger:{source:'damageBegin2'},
|
||||
equipSkill:false,
|
||||
ruleSkill:true,
|
||||
filter:function(event){
|
||||
return event.card&&event.card.name=='sha'&&event.nature=='ice'&&event.notLink()&&event.player.getCards('he').length>0;
|
||||
},
|
||||
},
|
||||
renwang_skill:{
|
||||
equipSkill:true,
|
||||
trigger:{target:'shaBegin'},
|
||||
|
@ -2411,6 +2455,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
wuxie_info:'一张锦囊牌生效前,对此牌使用。抵消此牌对一名角色产生的效果,或抵消另一张【无懈可击】产生的效果。',
|
||||
lebu_info:'出牌阶段,对一名其他角色使用。若判定结果不为红桃,跳过其出牌阶段。',
|
||||
shandian_info:'出牌阶段,对自己使用。若判定结果为黑桃2~9,则目标角色受到3点雷电伤害。若判定不为黑桃2~9,将之移动到下家的判定区里。',
|
||||
icesha_skill:'冰杀',
|
||||
icesha_skill_info:'防止即将造成的伤害,改为依次弃置其两张牌。',
|
||||
},
|
||||
list:[
|
||||
["spade",7,"sha"],
|
||||
|
|
|
@ -0,0 +1,769 @@
|
|||
'use strict';
|
||||
game.import('card',function(lib,game,ui,get,ai,_status){
|
||||
return {
|
||||
name:'yingbian',
|
||||
//connect:true,
|
||||
card:{
|
||||
suijiyingbian:{
|
||||
global:'suijiyingbian_skill',
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
},
|
||||
zhujinqiyuan:{
|
||||
type:'trick',
|
||||
enable:true,
|
||||
audio:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('hej')>0;
|
||||
},
|
||||
content:function(){
|
||||
var dist=get.distance(player,target);
|
||||
if(dist>1||card.yingbian) player.discardPlayerCard(target,'hej',true);
|
||||
if(dist<=1||card.yingbian) player.gainPlayerCard(target,'hej',true);
|
||||
},
|
||||
fullskin:true,
|
||||
postAi:function(targets){
|
||||
return targets.length==1&&targets[0].countCards('j');
|
||||
},
|
||||
ai:{
|
||||
wuxie:function(target,card,player,viewer){
|
||||
if(get.attitude(viewer,player)>0&&get.attitude(viewer,target)>0){
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
basic:{
|
||||
order:7.5,
|
||||
useful:4,
|
||||
value:9
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var discard=get.distance(player,target)>1;
|
||||
if(get.attitude(player,target)<=0) return (target.countCards('he',function(card){
|
||||
return get.value(card,target)>0&&(discard||card!=target.getEquip('jinhe'));
|
||||
})>0)?-1.5:1.5;
|
||||
var js=target.getCards('j');
|
||||
if(js.length){
|
||||
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
|
||||
if(js.length==1&&get.effect(target,jj,target,player)>=0){
|
||||
return -1.5;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
return -1.5;
|
||||
},
|
||||
player:function(player,target){
|
||||
if(get.distance(player,target)>1) return 0;
|
||||
if(get.attitude(player,target)<0&&!target.countCards('he',function(card){
|
||||
return get.value(card,target)>0&&card!=target.getEquip('jinhe');
|
||||
})){
|
||||
return 0;
|
||||
}
|
||||
if(get.attitude(player,target)>1){
|
||||
var js=target.getCards('j');
|
||||
if(js.length){
|
||||
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
|
||||
if(js.length==1&&get.effect(target,jj,target,player)>=0){
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1,
|
||||
gain:1,
|
||||
}
|
||||
},
|
||||
},
|
||||
dongzhuxianji:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
toself:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target==player;
|
||||
},
|
||||
modTarget:true,
|
||||
content:function(){
|
||||
target.chooseToGuanxing(2);
|
||||
target.draw(2);
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
order:7.2,
|
||||
useful:4.5,
|
||||
value:9.2
|
||||
},
|
||||
result:{
|
||||
target:2.1,
|
||||
},
|
||||
tag:{
|
||||
draw:2
|
||||
}
|
||||
}
|
||||
},
|
||||
chuqibuyi:{
|
||||
audio:true,
|
||||
enable:true,
|
||||
type:'trick',
|
||||
fullskin:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')>0;
|
||||
},
|
||||
yingbian:function(event){
|
||||
event.yingbian_addTarget=true;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(player.isDead()||!target.countCards('h')){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
player.choosePlayerCard(target,'h',true);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
target.showCards(result.cards);
|
||||
if(get.suit(card)!=get.suit(result.cards[0])) target.damage();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
order:5,
|
||||
useful:2,
|
||||
value:6
|
||||
},
|
||||
result:{
|
||||
target:function(player,target,cardx){
|
||||
if(player.hasSkillTag('viewHandcard',null,target,true)) return target.countCards('h',function(card){
|
||||
return get.suit(card)!=get.suit(cardx)
|
||||
})>0?-1.5:0;
|
||||
return -1.4;
|
||||
},
|
||||
},
|
||||
tag:{
|
||||
damage:1,
|
||||
}
|
||||
}
|
||||
},
|
||||
wuxinghelingshan:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip1',
|
||||
distance:{attackFrom:-3},
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
}
|
||||
},
|
||||
skills:['wuxinghelingshan_skill']
|
||||
},
|
||||
wutiesuolian:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip1',
|
||||
distance:{attackFrom:-2},
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
}
|
||||
},
|
||||
skills:['wutiesuolian_skill']
|
||||
},
|
||||
heiguangkai:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip2',
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
}
|
||||
},
|
||||
skills:['heiguangkai_skill']
|
||||
},
|
||||
tongque:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip5',
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
}
|
||||
},
|
||||
skills:['tongque_skill']
|
||||
},
|
||||
tianjitu:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip5',
|
||||
loseDelay:false,
|
||||
onEquip:function(){
|
||||
player.logSkill('tianjitu');
|
||||
if(player.countCards('he',function(cardx){
|
||||
return cardx!=card;
|
||||
})) player.chooseToDiscard(true,function(card){
|
||||
return card!=_status.event.card;
|
||||
},'he').set('card',card);
|
||||
},
|
||||
onLose:function(){
|
||||
var next=game.createEvent('tianjitu_lose');
|
||||
event.next.remove(next);
|
||||
var evt=event.getParent();
|
||||
if(evt.getlx===false) evt=evt.getParent();
|
||||
evt.after.push(next);
|
||||
next.player=player;
|
||||
next.setContent(function(){
|
||||
if(player.countCards('h')<5){
|
||||
player.logSkill('tianjitu');
|
||||
player.drawTo(5);
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
taigongyinfu:{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip5',
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
}
|
||||
},
|
||||
skills:['taigongyinfu_skill']
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
suijiyingbian_skill:{
|
||||
mod:{
|
||||
cardname:function(card,player){
|
||||
if(card.name=='suijiyingbian'&&player.storage.suijiyingbian) return player.storage.suijiyingbian;
|
||||
},
|
||||
},
|
||||
trigger:{
|
||||
player:['useCard1','respond','phaseBeginStart'],
|
||||
},
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
filter:function(event,player,name){
|
||||
if(name=='phaseBeginStart') return true;
|
||||
var type=get.type(event.card);
|
||||
return type=='basic'||type=='trick';
|
||||
},
|
||||
content:function(){
|
||||
if(event.triggername=='phaseBeginStart') delete player.storage.suijiyingbian;
|
||||
else player.storage.suijiyingbian=trigger.card.name;
|
||||
},
|
||||
},
|
||||
wuxinghelingshan_skill:{
|
||||
equipSkill:true,
|
||||
trigger:{player:'useCard1'},
|
||||
filter:function(event,player){
|
||||
return (event.card.name=='sha'&&event.card.nature&&event.card.nature!='kami');
|
||||
},
|
||||
audio:true,
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=lib.linked.slice(0);
|
||||
list.remove('kami');
|
||||
list.remove(trigger.card.nature);
|
||||
list.push('cancel2');
|
||||
player.chooseControl(list).set('prompt',get.prompt('wuxinghelingshan_skill')).set('prompt2','将'+get.translation(trigger.card)+'转换为以下属性之一');
|
||||
'step 1'
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('wuxinghelingshan_skill');
|
||||
trigger.card.nature=result.control;
|
||||
player.popup(get.translation(result.control)+'杀',result.control);
|
||||
game.log(trigger.card,'被转为了','#y'+get.translation(result.control),'属性')
|
||||
}
|
||||
}
|
||||
},
|
||||
wutiesuolian_skill:{
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
forced:true,
|
||||
equipSkill:true,
|
||||
audio:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&(!event.target.isLinked()||event.target.countCards('h'));
|
||||
},
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
var target=trigger.target;
|
||||
if(!target.isLinked()) target.link();
|
||||
else player.viewHandcards(target);
|
||||
},
|
||||
},
|
||||
heiguangkai_skill:{
|
||||
equipSkill:true,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
forced:true,
|
||||
audio:true,
|
||||
filter:function(event,player){
|
||||
if(event.targets.length<2||(event.card.name!='sha'&&get.type(event.card)!='trick')) return false;
|
||||
if(player.hasSkillTag('unequip2')) return false;
|
||||
if(event.player.hasSkillTag('unequip',false,{
|
||||
name:event.card?event.card.name:null,
|
||||
target:player,
|
||||
card:event.card
|
||||
})) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
trigger.excluded.add(player);
|
||||
},
|
||||
},
|
||||
tongque_skill:{
|
||||
ai:{forceYingbian:true},
|
||||
},
|
||||
tianjitu_skill:{
|
||||
audio:true,
|
||||
},
|
||||
taigongyinfu_skill:{
|
||||
audio:true,
|
||||
},
|
||||
_yingbian:{
|
||||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
firstDo:true,
|
||||
filter:function(event,player){
|
||||
var bool=player.hasSkillTag('forceYingbian');
|
||||
var card=event.card;
|
||||
if(get.cardtag(card,'yingbian_kongchao')&&(!player.countCards('h')||bool)) return true;
|
||||
if(get.cardtag(card,'yingbian_canqu')&&(player.hp==1||bool)) return true;
|
||||
if(get.cardtag(card,'yingbian_fujia')&&(player.isMaxHandcard()||bool)) return true;
|
||||
if(get.cardtag(card,'yingbian_zhuzhan')||bool) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=trigger.card;
|
||||
event.card=card;
|
||||
var bool=false;
|
||||
if(get.cardtag(card,'yingbian_kongchao')&&!player.countCards('h')){
|
||||
player.popup('空巢','soil');
|
||||
bool=true;
|
||||
}
|
||||
else if(get.cardtag(card,'yingbian_canqu')&&player.hp==1){
|
||||
player.popup('残躯','fire');
|
||||
bool=true;
|
||||
}
|
||||
else if(get.cardtag(card,'yingbian_fujia')&&player.isMaxHandcard()){
|
||||
player.popup('富甲','orange');
|
||||
bool=true;
|
||||
}
|
||||
else if(player.hasSkillTag('forceYingbian')) bool=true;
|
||||
if(bool){
|
||||
game.log(player,'触发了',card,'的应变条件');
|
||||
event.goto(10);
|
||||
}
|
||||
'step 1'
|
||||
event._global_waiting=true;
|
||||
event.send=function(player,card,source,id,id2,skillState){
|
||||
if(skillState){
|
||||
player.applySkills(skillState);
|
||||
}
|
||||
var type=get.type(card);
|
||||
var next=player.chooseCard({
|
||||
filterCard:function(card){
|
||||
return get.type(card)==type&&lib.filter.cardDiscardable.apply(this,arguments);
|
||||
},
|
||||
prompt:(get.translation(source)+'使用了'+get.translation(card)+',是否弃置一张'+get.translation(type)+'为其助战?'),
|
||||
position:'h',
|
||||
_global_waiting:true,
|
||||
id:id,
|
||||
id2:id2,
|
||||
ai:function(card){
|
||||
if(get.attitude(player,source)<=0) return false;
|
||||
return 5-get.value(card);
|
||||
},
|
||||
});
|
||||
if(game.online){
|
||||
_status.event._resultid=id;
|
||||
game.resume();
|
||||
}
|
||||
};
|
||||
'step 2'
|
||||
var type=get.type(card);
|
||||
var list=game.filterPlayer(function(current){
|
||||
if(current==player) return false;
|
||||
if(!current.countCards('h')) return false;
|
||||
return _status.connectMode||current.countCards('h',function(cardx){
|
||||
return get.type(cardx)==type;
|
||||
})
|
||||
});
|
||||
event.list=list;
|
||||
event.id=get.id();
|
||||
list.sort(function(a,b){
|
||||
return get.distance(event.source,a,'absolute')-get.distance(event.source,b,'absolute');
|
||||
});
|
||||
'step 3'
|
||||
if(event.list.length==0){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
else if(_status.connectMode&&(event.list[0].isOnline()||event.list[0]==game.me)){
|
||||
event.goto(5);
|
||||
}
|
||||
else{
|
||||
event.current=event.list.shift();
|
||||
event.send(event.current,event.card,player,event.id,trigger.parent.id);
|
||||
}
|
||||
'step 4'
|
||||
if(result.bool){
|
||||
event.zhuzhanresult=event.current;
|
||||
event.zhuzhanresult2=result;
|
||||
if(event.current!=game.me) game.delayx();
|
||||
event.goto(9);
|
||||
}
|
||||
else{
|
||||
event.goto(3);
|
||||
}
|
||||
'step 5'
|
||||
var id=event.id;
|
||||
var sendback=function(result,player){
|
||||
if(result&&result.id==id&&!event.zhuzhanresult&&result.bool){
|
||||
event.zhuzhanresult=player;
|
||||
event.zhuzhanresult2=result;
|
||||
game.broadcast('cancel',id);
|
||||
if(_status.event.id==id&&_status.event.name=='chooseCard'&&_status.paused){
|
||||
return (function(){
|
||||
event.resultOL=_status.event.resultOL;
|
||||
ui.click.cancel();
|
||||
if(ui.confirm) ui.confirm.close();
|
||||
});
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(_status.event.id==id&&_status.event.name=='chooseCard'&&_status.paused){
|
||||
return (function(){
|
||||
event.resultOL=_status.event.resultOL;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var withme=false;
|
||||
var withol=false;
|
||||
var list=event.list;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i].isOnline()){
|
||||
withol=true;
|
||||
list[i].wait(sendback);
|
||||
list[i].send(event.send,list[i],event.card,player,event.id,trigger.parent.id,get.skillState(list[i]));
|
||||
list.splice(i--,1);
|
||||
}
|
||||
else if(list[i]==game.me){
|
||||
withme=true;
|
||||
event.send(list[i],event.card,event.source,event.id,trigger.parent.id);
|
||||
list.splice(i--,1);
|
||||
}
|
||||
}
|
||||
if(!withme){
|
||||
event.goto(7);
|
||||
}
|
||||
if(_status.connectMode){
|
||||
if(withme||withol){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player) game.players[i].showTimer();
|
||||
}
|
||||
}
|
||||
}
|
||||
event.withol=withol;
|
||||
'step 6'
|
||||
if(result&&result.bool&&!event.zhuzhanresult){
|
||||
game.broadcast('cancel',event.id);
|
||||
event.zhuzhanresult=game.me;
|
||||
event.zhuzhanresult2=result;
|
||||
}
|
||||
'step 7'
|
||||
if(event.withol&&!event.resultOL){
|
||||
game.pause();
|
||||
}
|
||||
'step 8'
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
game.players[i].hideTimer();
|
||||
}
|
||||
'step 9'
|
||||
if(event.zhuzhanresult){
|
||||
var target=event.zhuzhanresult;
|
||||
target.line(player,'green');
|
||||
target.discard(event.zhuzhanresult2.cards);
|
||||
target.popup('助战','wood');
|
||||
game.log(target,'响应了',player,'发起的助战');
|
||||
}
|
||||
else event.finish();
|
||||
'step 10'
|
||||
trigger.card.yingbian=true;
|
||||
var info=get.info(trigger.card);
|
||||
if(info&&info.yingbian) info.yingbian(trigger);
|
||||
player.addTempSkill('yingbian_changeTarget');
|
||||
},
|
||||
},
|
||||
yingbian_changeTarget:{
|
||||
trigger:{player:'useCard2'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
if(event.yingbian_removeTarget&&event.targets&&event.targets.length>1) return true;
|
||||
if(!event.yingbian_addTarget) return false;
|
||||
var info=get.info(event.card);
|
||||
if(info.allowMultiple==false) return false;
|
||||
if(event.targets&&!info.multitarget){
|
||||
if(game.hasPlayer(function(current){
|
||||
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
|
||||
})){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(trigger.yingbian_addTarget) player.chooseTarget('应变:是否为'+get.translation(trigger.card)+'增加一个目标?',function(card,player,target){
|
||||
var trigger=_status.event.getTrigger();
|
||||
var card=trigger.card;
|
||||
return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(card,player,target)&&lib.filter.targetInRange(card,player,target);
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var card=_status.event.getTrigger().card;
|
||||
return get.effect(target,card,player,player);
|
||||
});
|
||||
else event.goto(2);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
game.log(player,'发动应变效果,令',target,'也成为了',trigger.card,'的目标');
|
||||
trigger.targets.add(target);
|
||||
}
|
||||
'step 2'
|
||||
if(trigger.yingbian_removeTarget&&trigger.targets.length>1) player.chooseTarget('应变:是否为'+get.translation(trigger.card)+'减少一个目标?',function(card,player,target){
|
||||
var trigger=_status.event.getTrigger();
|
||||
return trigger.targets.contains(target);
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var card=_status.event.getTrigger().card;
|
||||
return -get.effect(target,card,player,player);
|
||||
});
|
||||
else event.finish();
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
game.log(player,'发动应变效果,将',target,'从',trigger.card,'的目标中移除了');
|
||||
trigger.targets.remove(target);
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
translate:{
|
||||
suijiyingbian:'随机应变',
|
||||
suijiyingbian_info:'此牌的牌名视为你本回合内使用或打出的上一张基本牌或普通锦囊牌的牌名。',
|
||||
zhujinqiyuan:'逐近弃远',
|
||||
zhujinqiyuan_info:'出牌阶段,对一名有牌的其他角色使用。若你与其距离的大于1,你弃置其区域内的一张牌;若你与其的距离等于1,你获得其区域内的一张牌。',
|
||||
dongzhuxianji:'洞烛先机',
|
||||
dongzhuxianji_info:'出牌阶段,对包含你在内的一名角色使用。你观看牌堆顶的两张牌并将其以任意顺序置于牌堆顶或牌堆底,然后摸两张牌。',
|
||||
chuqibuyi:'出其不意',
|
||||
chuqibuyi_info:'出牌阶段,对一名有手牌的其他角色使用。你展示其一张手牌,若此牌与【出其不意】的花色不同,则你对其造成1点伤害。',
|
||||
wuxinghelingshan:'五行鹤翎扇',
|
||||
wuxinghelingshan_skill:'五行鹤翎扇',
|
||||
wuxinghelingshan_info:'当你声明使用不为神属性的属性【杀】时,你可将此【杀】的属性改为不为神属性的其他属性。',
|
||||
wutiesuolian:'乌铁锁链',
|
||||
wutiesuolian_skill:'乌铁锁链',
|
||||
wutiesuolian_skill_info:'当你使用【杀】指定目标后,若其:已横置,你观看其手牌。未横置,其横置。',
|
||||
heiguangkai:'黑光铠',
|
||||
heiguangkai_skill:'黑光铠',
|
||||
heiguangkai_info:'锁定技,当你成为【杀】或普通锦囊牌的目标后,若此牌的目标数大于1,则你令此牌对你无效。',
|
||||
tongque:'铜雀',
|
||||
tongque_info:'你使用带有【应变】效果的牌可以无视条件直接生效。',
|
||||
tianjitu:'天机图',
|
||||
tianjitu_skill:'天机图',
|
||||
tianjitu_info:'锁定技,当此牌进入你的装备区时,你弃置一张不为此【天机图】的牌。当此牌离开你的装备区后,你将手牌摸至五张。',
|
||||
taigongyinfu:'太公阴符',
|
||||
taigongyinfu_info:'出牌阶段开始时,你可以横置一名角色。出牌阶段结束时,你可以重置一张手牌。',
|
||||
yingbian_zhuzhan_tag:'助战',
|
||||
yingbian_kongchao_tag:'空巢',
|
||||
yingbian_fujia_tag:'富甲',
|
||||
yingbian_canqu_tag:'残躯',
|
||||
_yingbian:'应变',
|
||||
yingbian_changeTarget:'应变',
|
||||
},
|
||||
list:[
|
||||
['spade',1,'juedou',null,['yingbian_fujia']],
|
||||
['spade',1,'taigongyinfu'],
|
||||
['spade',1,'guding'],
|
||||
['spade',2,'cixiong'],
|
||||
['spade',2,'bagua'],
|
||||
['spade',2,'tengjia'],
|
||||
['spade',2,'suijiyingbian'],
|
||||
['spade',3,'jiu'],
|
||||
['spade',3,'zhujinqiyuan'],
|
||||
['spade',3,'shuiyanqijunx',null,['yingbian_zhuzhan']],
|
||||
['spade',4,'sha','thunder'],
|
||||
['spade',4,'guohe'],
|
||||
['spade',4,'shuiyanqijunx',null,['yingbian_zhuzhan']],
|
||||
['spade',5,'sha','thunder'],
|
||||
['spade',5,'qinglong'],
|
||||
['spade',5,'jueying'],
|
||||
['spade',6,'sha','thunder'],
|
||||
['spade',6,'lebu'],
|
||||
['spade',6,'qinggang'],
|
||||
['spade',7,'sha','ice'],
|
||||
['spade',7,'sha','ice'],
|
||||
['spade',7,'nanman',null,['yingbian_fujia']],
|
||||
['spade',8,'sha','ice'],
|
||||
['spade',8,'sha','ice'],
|
||||
['spade',8,'sha','ice'],
|
||||
['spade',9,'sha',null,['yingbian_canqu']],
|
||||
['spade',9,'sha',null,['yingbian_canqu']],
|
||||
['spade',9,'jiu'],
|
||||
['spade',10,'sha',null,['yingbian_canqu']],
|
||||
['spade',10,'sha',null,['yingbian_canqu']],
|
||||
['spade',10,'bingliang'],
|
||||
['spade',11,'wuxie'],
|
||||
['spade',11,'shuiyanqijunx'],
|
||||
['spade',11,'tiesuo'],
|
||||
['spade',12,'zhujinqiyuan',null,['yingbian_zhuzhan']],
|
||||
['spade',12,'tiesuo'],
|
||||
['spade',12,'zhangba'],
|
||||
['spade',13,'wuxie',null,['yingbian_kongchao']],
|
||||
['spade',13,'nanman',null,['yingbian_fujia']],
|
||||
['spade',13,'dawan'],
|
||||
|
||||
['heart',1,'taoyuan'],
|
||||
['heart',1,'wanjian'],
|
||||
['heart',1,'wuxie'],
|
||||
['heart',2,'shan',null,['yingbian_kongchao']],
|
||||
['heart',2,'shan',null,['yingbian_kongchao']],
|
||||
['heart',2,'chuqibuyi',null,['yingbian_zhuzhan']],
|
||||
['heart',3,'wugu'],
|
||||
['heart',3,'tao'],
|
||||
['heart',3,'chuqibuyi',null,['yingbian_zhuzhan']],
|
||||
['heart',4,'sha','fire'],
|
||||
['heart',4,'tao'],
|
||||
['heart',4,'suijiyingbian'],
|
||||
['heart',5,'chitu'],
|
||||
['heart',5,'tao'],
|
||||
['heart',5,'qilin'],
|
||||
['heart',6,'tao'],
|
||||
['heart',6,'tao'],
|
||||
['heart',6,'lebu'],
|
||||
['heart',7,'sha','fire'],
|
||||
['heart',7,'tao'],
|
||||
['heart',7,'dongzhuxianji'],
|
||||
['heart',8,'tao'],
|
||||
['heart',8,'shan'],
|
||||
['heart',8,'dongzhuxianji'],
|
||||
['heart',9,'tao'],
|
||||
['heart',9,'shan'],
|
||||
['heart',9,'dongzhuxianji'],
|
||||
['heart',10,'sha','fire',['yingbian_canqu']],
|
||||
['heart',10,'sha'],
|
||||
['heart',10,'sha'],
|
||||
['heart',11,'sha'],
|
||||
['heart',11,'shan'],
|
||||
['heart',11,'dongzhuxianji'],
|
||||
['heart',12,'tao'],
|
||||
['heart',12,'shan'],
|
||||
['heart',12,'guohe'],
|
||||
['heart',1,'shandian'],
|
||||
['heart',13,'wuxie',null,['yingbian_kongchao']],
|
||||
['heart',13,'shan'],
|
||||
['heart',13,'zhuahuang'],
|
||||
|
||||
['club',1,'juedou',null,['yingbian_fujia']],
|
||||
['club',1,'zhuge'],
|
||||
['club',1,'huxinjing'],
|
||||
['club',2,'sha',null,['yingbian_kongchao']],
|
||||
['club',2,'heiguangkai'],
|
||||
['club',2,'tengjia'],
|
||||
['club',1,'renwang'],
|
||||
['club',3,'sha',null,['yingbian_kongchao']],
|
||||
['club',3,'jiu'],
|
||||
['club',3,'zhujinqiyuan',null,['yingbian_zhuzhan']],
|
||||
['club',4,'sha',null,['yingbian_kongchao']],
|
||||
['club',4,'bingliang'],
|
||||
['club',4,'zhujinqiyuan',null,['yingbian_zhuzhan']],
|
||||
['club',5,'sha',null,['yingbian_kongchao']],
|
||||
['club',5,'sha'],
|
||||
['club',5,'dilu'],
|
||||
['club',6,'sha'],
|
||||
['club',6,'sha','thunder'],
|
||||
['club',6,'lebu'],
|
||||
['club',7,'sha'],
|
||||
['club',7,'sha','thunder'],
|
||||
['club',7,'nanman'],
|
||||
['club',8,'sha'],
|
||||
['club',8,'sha','thunder'],
|
||||
['club',8,'jiu'],
|
||||
['club',9,'sha','thunder'],
|
||||
['club',9,'sha','thunder'],
|
||||
['club',9,'jiu'],
|
||||
['club',10,'sha','thunder'],
|
||||
['club',10,'sha','thunder'],
|
||||
['club',10,'tiesuo'],
|
||||
['club',11,'sha'],
|
||||
['club',11,'sha',null,['yingbian_canqu']],
|
||||
['club',11,'tiesuo'],
|
||||
['club',12,'wuxie'],
|
||||
['club',12,'tianjitu'],
|
||||
['club',12,'tiesuo'],
|
||||
['club',13,'wuxie'],
|
||||
['club',13,'tongque'],
|
||||
['club',13,'tiesuo'],
|
||||
|
||||
['diamond',1,'juedou'],
|
||||
['diamond',1,'zhuge'],
|
||||
['diamond',1,'wuxinghelingshan'],
|
||||
['diamond',2,'tao'],
|
||||
['diamond',2,'shan',null,['yingbian_kongchao']],
|
||||
['diamond',2,'shan',null,['yingbian_kongchao']],
|
||||
['diamond',3,'tao'],
|
||||
['diamond',3,'shan'],
|
||||
['diamond',3,'shunshou'],
|
||||
['diamond',4,'sha','fire',['yingbian_canqu']],
|
||||
['diamond',4,'shan'],
|
||||
['diamond',4,'shunshou'],
|
||||
['diamond',5,'sha','fire'],
|
||||
['diamond',5,'shan'],
|
||||
['diamond',5,'guanshi'],
|
||||
['diamond',6,'sha'],
|
||||
['diamond',6,'shan'],
|
||||
['diamond',6,'shan'],
|
||||
['diamond',7,'sha'],
|
||||
['diamond',7,'shan'],
|
||||
['diamond',7,'shan'],
|
||||
['diamond',8,'sha',null,['yingbian_canqu']],
|
||||
['diamond',8,'shan'],
|
||||
['diamond',8,'shan'],
|
||||
['diamond',9,'sha'],
|
||||
['diamond',9,'shan'],
|
||||
['diamond',9,'jiu'],
|
||||
['diamond',10,'sha','fire'],
|
||||
['diamond',10,'shan'],
|
||||
['diamond',10,'shan'],
|
||||
['diamond',11,'chuqibuyi'],
|
||||
['diamond',11,'shan'],
|
||||
['diamond',11,'shan'],
|
||||
['diamond',12,'tao'],
|
||||
['diamond',12,'shan'],
|
||||
['diamond',12,'wutiesuolian'],
|
||||
['diamond',12,'wuxie'],
|
||||
['diamond',13,'sha','fire'],
|
||||
['diamond',13,'zixin'],
|
||||
['diamond',13,'hualiu'],
|
||||
],
|
||||
}
|
||||
});
|
|
@ -95,7 +95,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_liufu:['male','wei',3,['zhucheng','duoqi']],
|
||||
diy_xizhenxihong:['male','shu',4,['fuchou','jinyan']],
|
||||
diy_liuzan:['male','wu',4,['kangyin']],
|
||||
diy_zaozhirenjun:['male','wei',3,['liangce','jianbi','juntun']],
|
||||
diy_zaozhirenjun:['male','wei',3,['liangce','jianbi','diyjuntun']],
|
||||
diy_yangyi:['male','shu',3,['choudu','liduan']],
|
||||
diy_tianyu:['male','wei',4,['chezhen','youzhan']],
|
||||
|
||||
|
@ -10390,7 +10390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
juntun:{
|
||||
diyjuntun:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.countCards('he',{type:'equip'})>0;
|
||||
|
@ -12228,8 +12228,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
liangce_info:'①出牌阶段限一次,你可以将一张基本牌当【五谷丰登】使用。②当因执行【五谷丰登】的效果而亮出的牌因效果执行完毕而置入弃牌堆后,你可以选择一名角色,令该角色获取之',
|
||||
jianbi:'坚壁',
|
||||
jianbi_info:'当你成为锦囊牌的目标时,若此牌的目标包括其他角色,你可以令此牌对1个目标无效',
|
||||
juntun:'军屯',
|
||||
juntun_info:'出牌阶段,你可以重铸装备牌',
|
||||
diyjuntun:'军屯',
|
||||
diyjuntun_info:'出牌阶段,你可以重铸装备牌',
|
||||
choudu:'筹度',
|
||||
choudu_info:'出牌阶段限一次,你可以弃置一张牌,并指定一名角色视为其使用一张调兵遣将',
|
||||
liduan:'立断',
|
||||
|
|
|
@ -6425,7 +6425,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
quanfeng_info:'锁定技,限定技,一名角色死亡时,你选择获得其的一个技能(主公技,限定技,觉醒技,带有Charlotte标签的技能除外),然后加1点体力上限并回复1点体力。',
|
||||
simashi:'司马师',
|
||||
baiyi:'败移',
|
||||
baiyi_info:'限定技,出牌阶段,若你已受伤,你可以交换两名角色的座次。',
|
||||
baiyi_info:'限定技,出牌阶段,若你已受伤,你可以交换两名其他角色的座次。',
|
||||
jinglve:'景略',
|
||||
jinglve2:'景略',
|
||||
jinglve3:'景略',
|
||||
|
|
|
@ -1629,7 +1629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(info.allowMultiple==false) return false;
|
||||
if(event.targets&&!info.multitarget){
|
||||
if(game.hasPlayer(function(current){
|
||||
return lib.filter.targetEnabled2(event.card,player,current)&&!event.targets.contains(current);
|
||||
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
|
||||
})){
|
||||
return true;
|
||||
}
|
||||
|
|
136
character/sp2.js
136
character/sp2.js
|
@ -4,7 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
//jin_zhangchunhua:['female','wei',3,['jiang','hunzi'],['hiddenSkill']],
|
||||
jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']],
|
||||
dongxie:['female','qun','3/4',['juntun','jiaojie']],
|
||||
//jin_simayi:['female','wei',3,['reyingzi','gzyinghun'],['hiddenSkill']],
|
||||
re_xinxianying:['female','wei',3,['rezhongjian','recaishi']],
|
||||
luyusheng:['female','wu',3,['sicong','xianzhao'],['unseen']],
|
||||
|
@ -73,6 +74,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterSort:{
|
||||
sp2:{
|
||||
sp_yingbian:['jin_zhangchunhua'],
|
||||
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
|
||||
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
|
||||
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
|
||||
|
@ -82,7 +84,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_huangjin:['liuhong','zhujun','re_hejin','hansui'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','liubian','re_xinxianying'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','liubian','re_xinxianying','dongxie'],
|
||||
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
|
||||
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
|
||||
sp_yongjian:["ns_chendao","yj_caoang"],
|
||||
|
@ -90,6 +92,118 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
juntun:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.maxHp>1;
|
||||
},
|
||||
content:function(){
|
||||
player.loseMaxHp();
|
||||
player.draw(player.maxHp);
|
||||
},
|
||||
},
|
||||
jiaojie:{
|
||||
mod:{
|
||||
ignoredHandcard:function(card,player){
|
||||
if(get.color(card)=='red'){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
cardDiscardable:function(card,player,name){
|
||||
if(name=='phaseDiscard'&&get.color(card)=='red'){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
targetInRange:function(card){
|
||||
if(get.color(card)=='black') return true;
|
||||
},
|
||||
cardUsable:function(card){
|
||||
if(get.color(card)=='black') return Infinity;
|
||||
},
|
||||
},
|
||||
},
|
||||
huishi:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin1'},
|
||||
filter:function(event,player){
|
||||
return ui.cardPile.childElementCount%10>0&&!event.numFixed;
|
||||
},
|
||||
prompt:function(){
|
||||
return get.prompt('huishi')+'(当前牌堆尾数:'+ui.cardPile.childElementCount%10+')';
|
||||
},
|
||||
check:function(event,player){
|
||||
return ui.cardPile.childElementCount%10>3;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.changeToZero();
|
||||
event.cards=game.cardsGotoOrdering(get.cards(ui.cardPile.childElementCount%10)).cards;
|
||||
var num=Math.ceil(event.cards.length/2);
|
||||
var str='按顺序将卡牌置于牌堆底';
|
||||
if(event.cards.length>num) str='按顺序将'+get.cnNumber(num)+'张牌置于牌堆底,然后获得其余的牌';
|
||||
player.chooseButton([str,'<div class="text center">(先选择的在上)</div>',event.cards],true,num).set('ai',function(card){
|
||||
return -get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
for(var i of result.links){
|
||||
cards.remove(i);
|
||||
i.fix();
|
||||
ui.cardPile.appendChild(i);
|
||||
}
|
||||
game.updateRoundNumber();
|
||||
if(cards.length) player.gain(cards,'gain2','log');
|
||||
},
|
||||
},
|
||||
qingleng:{
|
||||
audio:2,
|
||||
trigger:{global:'phaseEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
var target=event.player;
|
||||
return target!=player&&!target.storage.nohp&&(target.hp+target.countCards('h'))>=(ui.cardPile.childElementCount%10)&&player.countCards('he')>0&&player.canUse({name:'sha',nature:'ice'},target,false);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCard('he',get.prompt('qingleng',trigger.player),'将一张牌当做冰【杀】对其使用',function(card,player){
|
||||
return player.canUse(get.autoViewAs({name:'sha',nature:'ice'},[card]),_status.event.target,false);
|
||||
}).set('target',trigger.player).set('ai',function(card){
|
||||
if(get.effect(_status.event.target,get.autoViewAs({name:'sha',nature:'ice'},[card]),player)<=0) return false;
|
||||
return 6-get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.useCard(get.autoViewAs({name:'sha',nature:'ice'},result.cards),result.cards,false,trigger.player,'qingleng');
|
||||
}
|
||||
},
|
||||
},
|
||||
xuanmu:{
|
||||
audio:2,
|
||||
trigger:{player:'showCharacterAfter'},
|
||||
forced:true,
|
||||
hiddenSkill:true,
|
||||
filter:function(event,player){
|
||||
return event.toShow.contains('jin_zhangchunhua')&&player!=_status.currentPhase;
|
||||
},
|
||||
content:function(){
|
||||
player.addTempSkill('xuanmu2');
|
||||
},
|
||||
},
|
||||
xuanmu2:{
|
||||
trigger:{player:'damageBegin4'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'damage')&&!player.hasSkillTag('jueqing',false,target)) return 'zerotarget';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
decadewuniang:{
|
||||
trigger:{
|
||||
player:["useCard","respond"],
|
||||
|
@ -5182,10 +5296,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return '共有'+(storage.red+storage.black)+'个标记';
|
||||
},
|
||||
},
|
||||
trigger:{global:'damage'},
|
||||
trigger:{global:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&_status.currentPhase!=player;
|
||||
return event.player!=player&&event.player.isAlive()&&_status.currentPhase!=player;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.gxlianhua[player.getFriends().contains(trigger.player)?'red':'black']++;
|
||||
|
@ -7161,7 +7275,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
decadewuniang:'武娘',
|
||||
decadewuniang_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌。若如此做,其摸一张牌。(若你已发动许身,则关索也摸一张牌)',
|
||||
jin_zhangchunhua:'晋张春华',
|
||||
jin_zhangchunhua_ab:'张春华',
|
||||
huishi:'慧识',
|
||||
huishi_info:'摸牌阶段,你可以放弃摸牌,改为观看牌堆顶的X张牌,获得其中的一半(向下取整),然后将其余牌置入牌堆底。(X为牌堆数量的个位数)',
|
||||
qingleng:'清冷',
|
||||
qingleng_info:'一名角色的回合结束时,若其体力值与手牌数之和不小于X,你可将一张牌当无距离限制的冰属性【杀】对其使用。(X为牌堆数量的个位数)',
|
||||
xuanmu:'宣穆',
|
||||
xuanmu2:'宣穆',
|
||||
xuanmu_info:'锁定技,隐匿技。你于其他角色的回合登场时,防止你受到的伤害直到回合结束。',
|
||||
jin_simayi:'晋司马懿',
|
||||
dongxie:'董翓',
|
||||
juntun:'军屯',
|
||||
juntun_info:'锁定技,准备阶段,若X大于1,则你减1点体力上限并摸X张牌(X为你的体力上限)。',
|
||||
jiaojie:'狡黠',
|
||||
jiaojie_info:'锁定技,你的红色牌不计入手牌上限。你使用黑色牌无距离和次数限制。',
|
||||
sp_yingbian:'应变篇',
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
sp_longzhou:"同舟共济",
|
||||
|
|
|
@ -12054,7 +12054,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterReplace:{
|
||||
caozhi:['re_caozhi','caozhi'],
|
||||
zhangchunhua:['zhangchunhua','mini_zhangchunhua'],
|
||||
zhangchunhua:['zhangchunhua','jin_zhangchunhua','mini_zhangchunhua'],
|
||||
yujin:['yujin_yujin','re_yujin','ol_yujin','xin_yujin','yujin'],
|
||||
xushu:['re_xushu','xin_xushu','xushu'],
|
||||
fazheng:['xin_fazheng','fazheng'],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.106.4',
|
||||
'v1.9.106.4.2',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -3514,6 +3514,8 @@ window.noname_asset_list=[
|
|||
'image/character/xin_lingtong.jpg',
|
||||
'image/character/xin_liubiao.jpg',
|
||||
'image/character/re_xinxianying.jpg',
|
||||
'image/character/jin_zhangchunhua.jpg',
|
||||
'image/character/dongxie.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
153
game/game.js
153
game/game.js
|
@ -9360,14 +9360,15 @@
|
|||
},
|
||||
c:function(){
|
||||
(function(){
|
||||
var a=0,b=0,c=0,d=0,e=0,f=0;
|
||||
var sa=0,sb=0,sc=0,sd=0,se=0,sf=0;
|
||||
var a=0,b=0,c=0,d=0,e=0,f=0,g=0;
|
||||
var sa=0,sb=0,sc=0,sd=0,se=0,sf=0,sg=0;
|
||||
for(var i in lib.character){
|
||||
switch(lib.character[i][1]){
|
||||
case 'wei':a++;if(lib.config.banned.contains(i)) sa++;break;
|
||||
case 'shu':b++;if(lib.config.banned.contains(i)) sb++;break;
|
||||
case 'wu':c++;if(lib.config.banned.contains(i)) sc++;break;
|
||||
case 'qun':d++;if(lib.config.banned.contains(i)) sd++;break;
|
||||
case 'jin':g++;if(lib.config.banned.contains(i)) sg++;break;
|
||||
case 'western':e++;if(lib.config.banned.contains(i)) se++;break;
|
||||
case 'key':f++;if(lib.config.banned.contains(i)) sf++;break;
|
||||
}
|
||||
|
@ -9376,6 +9377,7 @@
|
|||
console.log('蜀:'+(b-sb)+'/'+b);
|
||||
console.log('吴:'+(c-sc)+'/'+c);
|
||||
console.log('群:'+(d-sd)+'/'+d);
|
||||
console.log('晋:'+(g-sg)+'/'+g);
|
||||
console.log('西:'+(e-se)+'/'+e);
|
||||
console.log('键:'+(f-sf)+'/'+f);
|
||||
console.log('已启用:'+((a+b+c+d+e+f)-(sa+sb+sc+sd+se+sf))+'/'+(a+b+c+d+e+f));
|
||||
|
@ -9822,6 +9824,7 @@
|
|||
thunder:"雷",
|
||||
poison:"毒",
|
||||
kami:'神',
|
||||
ice:'冰',
|
||||
wei:'魏',
|
||||
shu:'蜀',
|
||||
wu:'吴',
|
||||
|
@ -9829,6 +9832,7 @@
|
|||
shen:'神',
|
||||
western:'西',
|
||||
key:'键',
|
||||
jin:'晋',
|
||||
wei2:'魏国',
|
||||
shu2:'蜀国',
|
||||
wu2:'吴国',
|
||||
|
@ -9836,6 +9840,7 @@
|
|||
shen2:'神明',
|
||||
western2:'西方',
|
||||
key2:'KEY',
|
||||
jin2:'晋朝',
|
||||
male:'男',
|
||||
female:'女',
|
||||
mad:'混乱',
|
||||
|
@ -9853,6 +9858,7 @@
|
|||
qunColor:"#f6f6f6",
|
||||
shenColor:"#ffe14c",
|
||||
westernColor:"#ffe14c",
|
||||
jinColor:"#ffe14c",
|
||||
keyColor:"#c9b1fd",
|
||||
basic:'基本',
|
||||
equip:'装备',
|
||||
|
@ -9881,6 +9887,7 @@
|
|||
_lianhuan:'连环',
|
||||
_lianhuan2:'连环',
|
||||
_kamisha:'神杀',
|
||||
_icesha:'冰杀',
|
||||
qianxing:'潜行',
|
||||
mianyi:'免疫',
|
||||
fengyin:'封印',
|
||||
|
@ -15888,6 +15895,7 @@
|
|||
this.name=this.name1;
|
||||
skills=lib.character[this.name][3]||[];
|
||||
this.sex=lib.character[this.name][0];
|
||||
if(this.group=='unknown') this.group=lib.character[this.name][1];
|
||||
this.classList.remove('unseen');
|
||||
break;
|
||||
case 1:
|
||||
|
@ -15906,6 +15914,7 @@
|
|||
var skills=(lib.character[this.name][3]||[]);
|
||||
if(this.name2) skills=skills.concat(lib.character[this.name2][3]||[]);
|
||||
this.sex=lib.character[this.name][0];
|
||||
if(this.group=='unknown') this.group=lib.character[this.name][1];
|
||||
this.classList.remove('unseen');
|
||||
this.classList.remove('unseen2');
|
||||
break;
|
||||
|
@ -15918,8 +15927,7 @@
|
|||
game.broadcast(function(player,name,sex,num,group){
|
||||
player.group=group;
|
||||
player.name=name;
|
||||
player.sex=sex;
|
||||
player.node.identity.classList.remove('guessing');
|
||||
player.sex=sex;;
|
||||
switch(num){
|
||||
case 0:player.classList.remove('unseen');break;
|
||||
case 1:player.classList.remove('unseen2');break;
|
||||
|
@ -16344,25 +16352,19 @@
|
|||
this.node.intro.innerHTML=lib.config.intro;
|
||||
this.node.name.dataset.nature=get.groupnature(this.group);
|
||||
lib.setIntro(this);
|
||||
// var name=get.translation(character);
|
||||
this.node.name.innerHTML=get.slimName(character);
|
||||
if(this.classList.contains('minskin')&&this.node.name.querySelectorAll('br').length>=4){
|
||||
this.node.name.classList.add('long');
|
||||
}
|
||||
// if(!lib.config.show_name){
|
||||
// this.node.name.style.display='none';
|
||||
// }
|
||||
// for(var i=0;i<name.length;i++){
|
||||
// if(name[i]!='s'&&name[i]!='p')
|
||||
// this.node.name.innerHTML+=name[i]+'<br/>';
|
||||
// }
|
||||
if(info[4].contains('hiddenSkill')){
|
||||
if(!this.hiddenSkills) this.hiddenSkills=[];
|
||||
this.hiddenSkills.addArray(skills);
|
||||
skills=[];
|
||||
this.classList.add('unseen');
|
||||
this.name='unknown';
|
||||
//this.node.name_seat=ui.create.div('.name.name_seat','未知',this);
|
||||
this.node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(get.translation(this.name)),this);
|
||||
this.sex='male';
|
||||
this.group='unknown';
|
||||
this.storage.nohp=true;
|
||||
}
|
||||
if(character2&&lib.character[character2]){
|
||||
|
@ -16423,15 +16425,7 @@
|
|||
}
|
||||
else skills=skills.concat(info2[3]);
|
||||
|
||||
// var name=get.translation(character2);
|
||||
this.node.name2.innerHTML=get.slimName(character2);
|
||||
// this.node.name2.dataset.nature=get.groupnature(info2[1]);
|
||||
// if(!lib.config.show_name){
|
||||
// this.node.name2.style.display='none';
|
||||
// }
|
||||
// for(var i=0;i<name.length;i++){
|
||||
// this.node.name2.innerHTML+=name[i]+'<br/>';
|
||||
// }
|
||||
}
|
||||
if(this.storage.nohp) this.node.hp.hide();
|
||||
if(skill!=false){
|
||||
|
@ -16913,6 +16907,8 @@
|
|||
linked:this.isLinked(),
|
||||
turnedover:this.isTurnedOver(),
|
||||
phaseNumber:this.phaseNumber,
|
||||
unseen:this.isUnseen(0),
|
||||
unseen2:this.isUnseen(1),
|
||||
}
|
||||
for(var i=0;i<state.judges.length;i++){
|
||||
state.views[i]=state.judges[i].viewAs;
|
||||
|
@ -18226,34 +18222,41 @@
|
|||
next._args.add('glow_result');
|
||||
return next;
|
||||
},
|
||||
chooseCard:function(){
|
||||
chooseCard:function(choose){
|
||||
var next=game.createEvent('chooseCard');
|
||||
next.player=this;
|
||||
for(var i=0;i<arguments.length;i++){
|
||||
if(typeof arguments[i]=='number'){
|
||||
next.selectCard=[arguments[i],arguments[i]];
|
||||
if(arguments.length==1&&get.is.object(choose)){
|
||||
for(var i in choose){
|
||||
next[i]=choose[i];
|
||||
}
|
||||
else if(get.itemtype(arguments[i])=='select'){
|
||||
next.selectCard=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='boolean'){
|
||||
next.forced=arguments[i];
|
||||
}
|
||||
else if(get.itemtype(arguments[i])=='position'){
|
||||
next.position=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='function'){
|
||||
if(next.filterCard) next.ai=arguments[i];
|
||||
else next.filterCard=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='object'&&arguments[i]){
|
||||
next.filterCard=get.filter(arguments[i]);
|
||||
}
|
||||
else if(arguments[i]=='glow_result'){
|
||||
next.glow_result=true;
|
||||
}
|
||||
else if(typeof arguments[i]=='string'){
|
||||
get.evtprompt(next,arguments[i]);
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<arguments.length;i++){
|
||||
if(typeof arguments[i]=='number'){
|
||||
next.selectCard=[arguments[i],arguments[i]];
|
||||
}
|
||||
else if(get.itemtype(arguments[i])=='select'){
|
||||
next.selectCard=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='boolean'){
|
||||
next.forced=arguments[i];
|
||||
}
|
||||
else if(get.itemtype(arguments[i])=='position'){
|
||||
next.position=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='function'){
|
||||
if(next.filterCard) next.ai=arguments[i];
|
||||
else next.filterCard=arguments[i];
|
||||
}
|
||||
else if(typeof arguments[i]=='object'&&arguments[i]){
|
||||
next.filterCard=get.filter(arguments[i]);
|
||||
}
|
||||
else if(arguments[i]=='glow_result'){
|
||||
next.glow_result=true;
|
||||
}
|
||||
else if(typeof arguments[i]=='string'){
|
||||
get.evtprompt(next,arguments[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(next.filterCard==undefined) next.filterCard=lib.filter.all;
|
||||
|
@ -23342,6 +23345,10 @@
|
|||
card[2]='sha';
|
||||
card[3]='kami';
|
||||
}
|
||||
if(card[2]=='icesha'){
|
||||
card[2]='sha';
|
||||
card[3]='ice';
|
||||
}
|
||||
}
|
||||
else if(typeof card=='object'){
|
||||
card=[card.suit,card.number,card.name,card.nature];
|
||||
|
@ -23585,6 +23592,10 @@
|
|||
name='神'+name;
|
||||
this.node.image.classList.add('kami');
|
||||
}
|
||||
else if(card[3]=='ice'){
|
||||
name='冰'+name;
|
||||
this.node.image.classList.add('ice');
|
||||
}
|
||||
}
|
||||
for(var i=0;i<name.length;i++){
|
||||
this.node.name.innerHTML+=name[i]+'<br/>';
|
||||
|
@ -24755,7 +24766,7 @@
|
|||
}
|
||||
var fullskills=game.expandSkills(player.getSkills().concat(lib.skill.global));
|
||||
var info=get.info(skill);
|
||||
if(info.noHidden&&!fullskills.contains(skill)){
|
||||
if((info.noHidden||get.mode()!='guozhan')&&!fullskills.contains(skill)){
|
||||
return false;
|
||||
}
|
||||
if(!info.trigger) return false;
|
||||
|
@ -25248,7 +25259,7 @@
|
|||
},
|
||||
skill:{
|
||||
_showHiddenCharacter:{
|
||||
trigger:{player:['changeHp','phaseBeginStart']},
|
||||
trigger:{player:['changeHp','phaseBeginStart','loseMaxHpBegin']},
|
||||
firstDo:true,
|
||||
forced:true,
|
||||
popup:false,
|
||||
|
@ -26764,7 +26775,13 @@
|
|||
player.setModeState(info);
|
||||
}
|
||||
else{
|
||||
player.init(info.name,info.name2);
|
||||
player.init(info.name1,info.name2);
|
||||
}
|
||||
if(!info.unseen) player.classList.remove('unseen');
|
||||
if(!info.unseen2) player.classList.remove('unseen2');
|
||||
if(!player.isUnseen(2)&&player.storage.nohp){
|
||||
delete player.storage.nohp;
|
||||
player.node.hp.show();
|
||||
}
|
||||
player.playerid=i;
|
||||
player.nickname=info.nickname;
|
||||
|
@ -27017,8 +27034,8 @@
|
|||
},
|
||||
suit:['club','spade','diamond','heart'],
|
||||
group:['wei','shu','wu','qun','shen'],
|
||||
nature:['fire','thunder','poison','kami'],
|
||||
linked:['fire','thunder','kami'],
|
||||
nature:['fire','thunder','poison','kami','ice'],
|
||||
linked:['fire','thunder','kami','ice'],
|
||||
groupnature:{
|
||||
shen:'thunder',
|
||||
wei:'water',
|
||||
|
@ -27027,6 +27044,7 @@
|
|||
qun:'metal',
|
||||
western:'thunder',
|
||||
key:'key',
|
||||
jin:'thunder',
|
||||
},
|
||||
phaseName:['phaseZhunbei','phaseJudge','phaseDraw','phaseUse','phaseDiscard','phaseJieshu'],
|
||||
};
|
||||
|
@ -31636,6 +31654,7 @@
|
|||
if(cardnature) tempname=get.translation(cardnature)+tempname;
|
||||
if(cardnature=='thunder') cards[i]._tempName.dataset.nature='thunder';
|
||||
if(cardnature=='kami') cards[i]._tempName.dataset.nature='kami';
|
||||
if(cardnature=='ice') cards[i]._tempName.dataset.nature='ice';
|
||||
}
|
||||
cards[i]._tempName.innerHTML=lib.config.cardtempname=='default'?get.verticalStr(tempname):tempname;
|
||||
cards[i]._tempName.tempname=tempname;
|
||||
|
@ -31818,7 +31837,7 @@
|
|||
else if(info.enable=='phaseUse') enable=(event.type=='phase');
|
||||
else if(typeof info.enable=='string') enable=(info.enable==event.name);
|
||||
if(enable){
|
||||
if(!game.expandSkills(player.getSkills().concat(lib.skill.global)).contains(skills2[i])&&(info.noHidden||player.hasSkillTag('nomingzhi',false,null,true))) enable=false;
|
||||
if(!game.expandSkills(player.getSkills().concat(lib.skill.global)).contains(skills2[i])&&(info.noHidden||get.mode()!='guozhan'||player.hasSkillTag('nomingzhi',false,null,true))) enable=false;
|
||||
if(info.filter&&!info.filter(event,player)) enable=false;
|
||||
if(info.viewAs&&typeof info.viewAs!='function'&&event.filterCard&&!event.filterCard(info.viewAs,player,event)) enable=false;
|
||||
if(info.viewAs&&typeof info.viewAs!='function'&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;
|
||||
|
@ -36608,9 +36627,10 @@
|
|||
if(info[name][1]=='shu') return 1;
|
||||
if(info[name][1]=='wu') return 2;
|
||||
if(info[name][1]=='qun') return 3;
|
||||
if(info[name][1]=='western') return 4;
|
||||
if(info[name][1]=='key') return 5;
|
||||
return 6;
|
||||
if(info[name][1]=='jin') return 4;
|
||||
if(info[name][1]=='western') return 5;
|
||||
if(info[name][1]=='key') return 6;
|
||||
return 7;
|
||||
}
|
||||
list.sort(function(a,b){
|
||||
var del=groupSort(a)-groupSort(b);
|
||||
|
@ -38710,7 +38730,7 @@
|
|||
editnode.classList.add('disabled');
|
||||
delnode.innerHTML='取消';
|
||||
delete delnode.button;
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
}
|
||||
|
||||
newCard=ui.create.div('.new_character',page);
|
||||
|
@ -38924,7 +38944,7 @@
|
|||
};
|
||||
var saveConfig=ui.create.div('.editbutton','保存',editorpage,saveInput);
|
||||
var editor=ui.create.div(editorpage);
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
|
||||
var editnode=ui.create.div('.menubutton.large.new_card.disabled','创建卡牌',newCard,function(){
|
||||
var name=page.querySelector('input.new_name').value;
|
||||
|
@ -39606,8 +39626,8 @@
|
|||
else{
|
||||
dashes.content.node.code='function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.precontent.node.code='function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.config.node.code='config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.help.node.code='help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.config.node.code='config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.help.node.code='help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
}
|
||||
};
|
||||
var dashes={};
|
||||
|
@ -39730,8 +39750,8 @@
|
|||
};
|
||||
page.content={}
|
||||
createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
|
||||
return page;
|
||||
|
@ -41597,7 +41617,7 @@
|
|||
},true,true);
|
||||
},
|
||||
groupControl:function(dialog){
|
||||
return ui.create.control('wei','shu','wu','qun','western','key',function(link,node){
|
||||
return ui.create.control('wei','shu','wu','qun','jin','western','key',function(link,node){
|
||||
if(link=='全部'){
|
||||
dialog.currentcapt='';
|
||||
dialog.currentgroup='';
|
||||
|
@ -42024,7 +42044,7 @@
|
|||
}
|
||||
}
|
||||
if(!thisiscard){
|
||||
var groups=['wei','shu','wu','qun'];
|
||||
var groups=['wei','shu','wu','qun','jin'];
|
||||
var bool1=false;
|
||||
var bool2=false;
|
||||
var bool3=(get.mode()=='guozhan'&&_status.forceKey!=true&&get.config('onlyguozhan'));
|
||||
|
@ -43586,7 +43606,7 @@
|
|||
name:ui.create.div('.name',node),
|
||||
intro:ui.create.div('.intro',node)
|
||||
}
|
||||
if(item.name.indexOf('unknown')==0){
|
||||
if(item.name&&item.name.indexOf('unknown')==0){
|
||||
if(item.node&&item.node.name_seat){
|
||||
node.classList.add('cardbg');
|
||||
ui.create.div('.avatar_name',node,get.translation(item.name));
|
||||
|
@ -49952,6 +49972,9 @@
|
|||
else if(str.nature=='kami'){
|
||||
str2='神'+str2;
|
||||
}
|
||||
else if(str.nature=='ice'){
|
||||
str2='冰'+str2;
|
||||
}
|
||||
}
|
||||
if(get.itemtype(str)=='card'||str.isCard){
|
||||
if(_status.cardtag&&str.cardid){
|
||||
|
@ -51591,7 +51614,7 @@
|
|||
}
|
||||
},
|
||||
groups:function(){
|
||||
return ['wei','shu','wu','qun','western','key'];
|
||||
return ['wei','shu','wu','qun','jin','western','key'];
|
||||
},
|
||||
types:function(){
|
||||
var types=[];
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
window.noname_update={
|
||||
version:'1.9.106.4.1',
|
||||
update:'1.9.106.4',
|
||||
version:'1.9.106.4.2',
|
||||
update:'1.9.106.4.1',
|
||||
changeLog:[
|
||||
'铃木央人',
|
||||
'界凌统、界刘表',
|
||||
'辛宪英、鲍三娘',
|
||||
'晋张春华',
|
||||
'董翓',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
//'card/guozhan.js',
|
||||
'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
'card/yingbian.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
//'character/diy.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
//'character/mobile.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/old.js',
|
||||
//'character/rank.js',
|
||||
|
@ -39,22 +39,22 @@ window.noname_update={
|
|||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
//'character/yijiang.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
//'game/game.js',
|
||||
'game/game.js',
|
||||
//'game/keyWords.js',
|
||||
//'game/server.js',
|
||||
//'game/NoSleep.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 88 KiB |
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
|
@ -2279,6 +2279,9 @@ div:not(.handcards)>.card>.info>span,
|
|||
#window>.damage.fullscreenavatar[data-nature='water']>div:first-child>div{
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 10px, rgba(0, 0, 0,0.3) 0 0 30px, rgba(78, 117, 140,1) 0 0 60px, rgba(78, 117, 140,1) 0 0 60px;
|
||||
}
|
||||
#window>.damage.fullscreenavatar[data-nature='ice']>div:first-child>div{
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 20px, rgba(0, 0, 0,0.3) 0 0 40px, rgba(213, 194, 179, 1) 0 0 80px;
|
||||
}
|
||||
#window>.damage.fullscreenavatar[data-nature='soil']>div:first-child>div{
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 10px, rgba(0, 0, 0,0.3) 0 0 30px, rgba(128, 59, 2,1) 0 0 60px;
|
||||
}
|
||||
|
@ -2765,7 +2768,8 @@ div:not(.handcards)>.card>.info>span,
|
|||
.player>.name_seat {
|
||||
opacity: 0;
|
||||
}
|
||||
.player:not([data-position='0']).unseen.unseen2>.name_seat {
|
||||
.player:not([data-position='0']).unseen.unseen2>.name_seat,
|
||||
.player:not([data-position='0']):not(.fullskin2).unseen>.name_seat {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
|
@ -3472,6 +3476,9 @@ div:not(.handcards)>.card>.info>span,
|
|||
.kami {
|
||||
color: rgba(90,118,99,0.3);
|
||||
}
|
||||
.ice {
|
||||
color: rgba(80,160,255,0.3);
|
||||
}
|
||||
.poison {
|
||||
color: rgba(30, 133, 51,0.4);
|
||||
}
|
||||
|
@ -3803,6 +3810,7 @@ span[data-nature='keymm'] {
|
|||
.player .identity[data-color="ye"],
|
||||
.player .identity[data-color="rYe"],
|
||||
.player .identity[data-color="bYe"],
|
||||
.player .identity[data-color="jin"],
|
||||
div[data-nature='thunder'],
|
||||
span[data-nature='thunder'] {
|
||||
text-shadow: rgba(100, 74, 139,1) 0 0 2px,rgba(100, 74, 139,1) 0 0 5px,rgba(100, 74, 139,1) 0 0 10px,
|
||||
|
@ -3926,6 +3934,27 @@ span[data-nature='graymx'] {
|
|||
rgba(213, 194, 179,1) 0 0 5px,black 0 0 1px;
|
||||
}
|
||||
|
||||
div[data-nature='ice'],
|
||||
span[data-nature='ice'] {
|
||||
text-shadow: rgba(213, 194, 179,1) 0 0 2px,rgba(213, 194, 179,1) 0 0 5px,rgba(213, 194, 179,1) 0 0 10px,
|
||||
rgba(213, 194, 179,1) 0 0 10px,rgba(213, 194, 179,1) 0 0 20px,rgba(213, 194, 179,1) 0 0 20px,black 0 0 1px;
|
||||
}
|
||||
div[data-nature='icem'],
|
||||
span[data-nature='icem'] {
|
||||
text-shadow: rgba(213, 194, 179,1) 0 0 2px,rgba(213, 194, 179,1) 0 0 5px,rgba(213, 194, 179,1) 0 0 5px,
|
||||
rgba(213, 194, 179,1) 0 0 5px,black 0 0 1px;
|
||||
}
|
||||
div[data-nature='icemm'],
|
||||
span[data-nature='icemm'] {
|
||||
text-shadow: rgba(213, 194, 179,1) 0 0 2px,rgba(213, 194, 179,1) 0 0 2px,rgba(213, 194, 179,1) 0 0 2px,
|
||||
rgba(213, 194, 179,1) 0 0 2px,black 0 0 1px;
|
||||
}
|
||||
div[data-nature='icemx'],
|
||||
span[data-nature='icemx'] {
|
||||
text-shadow: black 0 0 1px,rgba(213, 194, 179,0.2) 0 0 2px,rgba(213, 194, 179,1) 0 0 2px,rgba(213, 194, 179,1) 0 0 5px,
|
||||
rgba(213, 194, 179,1) 0 0 5px,black 0 0 1px;
|
||||
}
|
||||
|
||||
.player .identity[data-color="unknownx"],
|
||||
div[data-nature='black'],
|
||||
span[data-nature='black'] {
|
||||
|
@ -4095,6 +4124,10 @@ div[data-decoration="bronze"]::after{
|
|||
color: #1F3C38;
|
||||
border: 1px solid #1F3C38;
|
||||
}
|
||||
.card.fullskin.ice>.name {
|
||||
color: #152E63;
|
||||
border: 1px solid #152E63;
|
||||
}
|
||||
.card.fullskin.fire>.name {
|
||||
color: #631515;
|
||||
border: 1px solid #631515;
|
||||
|
@ -4268,6 +4301,7 @@ div[data-decoration="bronze"]::after{
|
|||
color: rgb(104,221,127);
|
||||
}
|
||||
.thundertext,
|
||||
.icetext,
|
||||
.controlthundertext {
|
||||
color: rgb(117,186,255);
|
||||
}
|
||||
|
|
|
@ -3865,6 +3865,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(cname=='sha'){
|
||||
pileaddlist.push(['huosha','火杀']);
|
||||
pileaddlist.push(['leisha','雷杀']);
|
||||
pileaddlist.push(['icesha','冰杀']);
|
||||
pileaddlist.push(['kamisha','神杀']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4390,7 +4390,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var card={name:button.link[2]};
|
||||
var info=get.info(card);
|
||||
var num=player.countCards('h');
|
||||
if(get.tag(card,'multitarget')&&get.select(info.selectTarget)[1]==-1){
|
||||
//if(get.tag(card,'multitarget')&&get.select(info.selectTarget)[1]==-1){
|
||||
if(get.select(info.selectTarget)[1]==-1){
|
||||
if(game.countPlayer(function(current){
|
||||
return player.canUse(card,current)
|
||||
})>num){
|
||||
|
|
Loading…
Reference in New Issue