v1.9.87
|
@ -687,7 +687,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
players.sort(lib.sort.seat);
|
||||
var choice=players[0];
|
||||
var next=player.chooseTarget('是否移动木牛流马?',function(card,player,target){
|
||||
return !target.isMin()&&player!=target&&!target.getEquip(5);
|
||||
return !target.isMin()&&player!=target&&target.isEmpty(5);
|
||||
});
|
||||
next.set('ai',function(target){
|
||||
return target==_status.event.choice?1:-1;
|
||||
|
|
|
@ -11,8 +11,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shen_simayi:['male','shen',4,['renjie','sbaiyin','lianpo'],['wei']],
|
||||
shen_caocao:['male','shen',3,['guixin','feiying'],['wei']],
|
||||
shen_lvbu:['male','shen',5,['baonu','wumou','ol_wuqian','ol_shenfen'],['qun']],
|
||||
|
||||
"shen_liubei":["male","shen",6,["nzry_longnu","nzry_jieying"],["shu"]],
|
||||
"shen_luxun":["male","shen",4,["nzry_junlve","nzry_cuike","nzry_dinghuo"],["wu"]],
|
||||
"shen_zhangliao":["male","shen",4,["drlt_duorui","drlt_zhiti"],["wei"]],
|
||||
"shen_ganning":["male","shen",3,["drlt_poxi","drlt_jieying"],["wu"]],
|
||||
},
|
||||
characterIntro:{
|
||||
shen_guanyu:'关羽,字云长。曾水淹七军、擒于禁、斩庞德、威震华夏,吓得曹操差点迁都躲避,但是东吴偷袭荆州,关羽兵败被害。后传说吕蒙因关羽之魂索命而死。',
|
||||
|
@ -20,6 +23,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shen_zhouyu:'字公瑾,庐江舒县人。东汉末年名将。有姿貌、精音律,江东有“曲有误,周郎顾”之语。周瑜少与孙策交好,后孙策遇刺身亡,孙权继任。周瑜将兵赴丧,以中护军的身份与长史张昭共掌众事,建安十三年(208年),周瑜率东吴军与刘备军联合,在赤壁击败曹操。此战也奠定了三分天下的基础。',
|
||||
shen_zhugeliang:'字孔明、号卧龙,汉族,琅琊阳都人,三国时期蜀汉丞相、杰出的政治家、军事家、发明家、文学家。在世时被封为武乡侯,死后追谥忠武侯,后来东晋政权推崇诸葛亮军事才能,特追封他为武兴王。诸葛亮为匡扶蜀汉政权,呕心沥血、鞠躬尽瘁、死而后已。其代表作有《前出师表》、《后出师表》、《诫子书》等。曾发明木牛流马等,并改造连弩,可一弩十矢俱发。于234年在宝鸡五丈原逝世。',
|
||||
},
|
||||
characterTitle:{
|
||||
shen_ganning:"体力上限:6",
|
||||
},
|
||||
skill:{
|
||||
ol_shenfen:{
|
||||
audio:2,
|
||||
|
@ -939,7 +945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.value(card);
|
||||
};
|
||||
"step 2"
|
||||
player.lose(result.cards,ui.special)._triggered=null;
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.qixing=result.cards;
|
||||
game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']);
|
||||
},
|
||||
|
@ -985,7 +991,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qixing');
|
||||
player.lose(result.cards,ui.special)._triggered=null;
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.qixing=player.storage.qixing.concat(result.cards);
|
||||
player.syncStorage('qixing');
|
||||
event.num=result.cards.length;
|
||||
|
@ -1006,7 +1012,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
game.delay(0.5);
|
||||
}
|
||||
"step 3"
|
||||
player.gain(result.links)._triggered=null;
|
||||
player.gain(result.links,'fromStorage');
|
||||
for(var i=0;i<result.links.length;i++){
|
||||
player.storage.qixing.remove(result.links[i]);
|
||||
}
|
||||
|
@ -1184,21 +1190,52 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
line:'fire',
|
||||
check:function (){return -1},
|
||||
selectTarget:function (){
|
||||
if(ui.selected.cards.length==4) return 1;
|
||||
if(ui.selected.cards.length==4) return [1,2];
|
||||
if(ui.selected.cards.length==0) return [1,3];
|
||||
game.uncheck('target');
|
||||
return [1,3];
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
content:function (){
|
||||
"step 0"
|
||||
player.awakenSkill('yeyan');
|
||||
player.storage.yeyan=true;
|
||||
if(cards.length==4){
|
||||
player.loseHp(3);
|
||||
target.damage('fire',3,'nocard');
|
||||
}
|
||||
event.num=0;
|
||||
"step 1"
|
||||
if(cards.length==4) event.goto(2);
|
||||
else {
|
||||
target.damage('fire','nocard');
|
||||
if(event.num<targets.length){
|
||||
targets[event.num].damage('fire',1,'nocard');
|
||||
event.num++;
|
||||
}
|
||||
if(event.num==targets.length) event.finish();
|
||||
else event.redo();
|
||||
}
|
||||
"step 2"
|
||||
player.loseHp(3);
|
||||
if(targets.length==1) event.goto(4);
|
||||
else{
|
||||
player.chooseTarget('请选择受到2点伤害的角色',true,function(card,player,target){
|
||||
return targets.contains(target)
|
||||
}).set('ai',function(target){
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
"step 3"
|
||||
if(event.num<targets.length){
|
||||
var dnum=1;
|
||||
if(result.bool&&result.targets&&targets[event.num]==result.targets[0]) dnum=2;
|
||||
targets[event.num].damage('fire',dnum,'nocard');
|
||||
event.num++;
|
||||
}
|
||||
if(event.num==targets.length) event.finish();
|
||||
else event.redo();
|
||||
"step 4"
|
||||
player.chooseControl("2点","3点").set('prompt','请选择伤害点数').set('ai',function(){
|
||||
return "3点";
|
||||
});
|
||||
"step 5"
|
||||
targets[0].damage('fire',result.control=="2点"?2:3,'nocard');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
|
@ -1802,9 +1839,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.storage.nzry_junlve++;
|
||||
player.storage.nzry_junlve+=trigger.num;
|
||||
player.syncStorage('nzry_junlve');
|
||||
game.log(player,'获得一个“军略”标记');
|
||||
game.log(player,'获得',trigger.num,'个“军略”标记');
|
||||
},
|
||||
},
|
||||
"nzry_cuike":{
|
||||
|
@ -1870,9 +1907,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
unique:true,
|
||||
mark:true,
|
||||
skillAnimation:true,
|
||||
trigger:{
|
||||
player:"phaseUseBegin",
|
||||
},
|
||||
enable:'phaseUse',
|
||||
filter:function (event,player){
|
||||
return !player.storage.nzry_dinghuo&&player.storage.nzry_junlve>0;
|
||||
},
|
||||
|
@ -1880,26 +1915,487 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var num=game.countPlayer(function(current){return get.attitude(player,current)<0&¤t.isLinked()});
|
||||
return player.storage.nzry_junlve>=num&&num==game.countPlayer(function(current){return get.attitude(player,current)<0});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target.isLinked();
|
||||
},
|
||||
selectTarget:function(){
|
||||
return [1,_status.event.player.storage.nzry_junlve];
|
||||
},
|
||||
multiline:true,
|
||||
multitarget:true,
|
||||
content:function (){
|
||||
'step 0'
|
||||
player.awakenSkill('nzry_dinghuo');
|
||||
player.storage.nzry_dinghuo=true;
|
||||
player.chooseTarget([0,player.storage.nzry_junlve],'请选择【绽火】的目标',function(card,player,target){
|
||||
/*player.chooseTarget([0,player.storage.nzry_junlve],'请选择【绽火】的目标',function(card,player,target){
|
||||
return target.isLinked();
|
||||
}).ai=function(target){
|
||||
return -get.attitude(player,target);
|
||||
};
|
||||
};*/
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.line(result.targets);
|
||||
player.storage.nzry_junlve=0;
|
||||
player.syncStorage('nzry_junlve');
|
||||
game.log(player,'移去了所有“军略”标记');
|
||||
for(var i=0;i<result.targets.length;i++){
|
||||
result.targets[i].discard(result.targets[i].get('e'));
|
||||
result.targets[i].damage('fire');
|
||||
for(var i=0;i<targets.length;i++){
|
||||
targets[i].discard(targets[i].getCards('e'));
|
||||
}
|
||||
player.chooseTarget(true,'对一名目标角色造成1点火焰伤害',function(card,player,target){
|
||||
return targets.contains(target);
|
||||
}).ai=function(){return 1};
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
result.targets[0].damage('fire','nocard');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hasSkillTag('nofire')) return 0;
|
||||
if(lib.config.mode=='versus') return -1;
|
||||
if(player.hasUnknown()) return 0;
|
||||
return get.damageEffect(target,player)-target.countCards('e');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"drlt_duorui":{
|
||||
audio:2,
|
||||
init:function(player){
|
||||
player.storage.drlt_duorui=[];
|
||||
},
|
||||
trigger:{
|
||||
source:'damageAfter'
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(player.storage.drlt_duorui.length) return false;
|
||||
return player!=event.player&&event.player.isAlive()&&_status.currentPhase==player;
|
||||
},
|
||||
check:function(event,player){
|
||||
var list=[];
|
||||
var skills=trigger.player.skills.slice(0);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
var info=get.info(skills[i])
|
||||
if(info!=undefined&&!info.charlotte&&(!info.unique||info.gainable)) list.push(skills[i]);
|
||||
};
|
||||
return !player.storage.disableEquip.contains('equip5')&&list.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.skills=[];
|
||||
var skills=trigger.player.skills.slice(0);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
var info=get.info(skills[i])
|
||||
if(info!=undefined&&!info.charlotte&&(!info.unique||info.gainable)) event.skills.push(skills[i]);
|
||||
};
|
||||
if(player.storage.disableEquip.length<5){
|
||||
var list=['武器','防具','防御马','攻击马','宝物'];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.remove(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
var list1=['equip1','equip2','equip3','equip4','equip5'];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list1.remove(player.storage.disableEquip[i]);
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
if(list1.contains('equip5')&&event.skills.length>0) return '宝物';
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要废除的栏位');
|
||||
}
|
||||
'step 1'
|
||||
if(result.control!=undefined){
|
||||
if(result.control=='武器') player.disableEquip('equip1');
|
||||
if(result.control=='防具') player.disableEquip('equip2');
|
||||
if(result.control=='防御马') player.disableEquip('equip3');
|
||||
if(result.control=='攻击马') player.disableEquip('equip4');
|
||||
if(result.control=='宝物') player.disableEquip('equip5');
|
||||
}
|
||||
if(event.skills.length>0){
|
||||
player.chooseControl(event.skills).set('prompt','请选择要获得的技能');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.addTempSkill(result.control,{player:'dieAfter'});
|
||||
player.storage.drlt_duorui=[result.control];
|
||||
player.storage.drlt_duorui_player=trigger.player;
|
||||
trigger.player.storage.drlt_duorui=[result.control];
|
||||
trigger.player.addTempSkill('drlt_duorui1',{player:'phaseAfter'});
|
||||
},
|
||||
group:['duorui_clear'],
|
||||
},
|
||||
"duorui_clear":{
|
||||
trigger:{global:['phaseAfter','dieAfter'],},
|
||||
filter:function(event,player){
|
||||
if(!player.storage.drlt_duorui_player||!player.storage.drlt_duorui) return false;
|
||||
return player.storage.drlt_duorui_player==event.player&&player.storage.drlt_duorui.length;
|
||||
},
|
||||
silent:true,
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.removeSkill(player.storage.drlt_duorui[0]);
|
||||
delete player.storage.drlt_duorui_player;
|
||||
player.storage.drlt_duorui=[];
|
||||
},
|
||||
},
|
||||
"drlt_duorui1":{
|
||||
init:function(player,skill){
|
||||
player.disableSkill(skill,player.storage.drlt_duorui);
|
||||
},
|
||||
onremove:function(player,skill){
|
||||
"step 0"
|
||||
player.enableSkill(skill);
|
||||
"step 1"
|
||||
delete player.storage.drlt_duorui;
|
||||
},
|
||||
locked:true,
|
||||
mark:true,
|
||||
intro:{
|
||||
content:function(storage,player,skill){
|
||||
var list=[];
|
||||
for(var i in player.disabledSkills){
|
||||
if(player.disabledSkills[i].contains(skill)) list.push(i);
|
||||
};
|
||||
if(list.length){
|
||||
var str='失效技能:';
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(lib.translate[list[i]+'_info']) str+=get.translation(list[i])+'、';
|
||||
};
|
||||
return str.slice(0,str.length-1);
|
||||
};
|
||||
},
|
||||
},
|
||||
},
|
||||
"drlt_zhiti":{
|
||||
audio:2,
|
||||
locked:true,
|
||||
group:["drlt_zhiti_1","drlt_zhiti_2","drlt_zhiti_3","drlt_zhiti_4","drlt_zhiti_5"],
|
||||
subSkill:{
|
||||
'1':{
|
||||
audio:2,
|
||||
trigger:{
|
||||
global:'juedouAfter'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.targets&&event.targets.contains(player)&&event.turn!=player&&player.storage.disableEquip!=undefined&&player.storage.disableEquip.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.push(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要恢复的栏位');;
|
||||
'step 1'
|
||||
if(result.control=='武器') player.enableEquip('equip1');
|
||||
if(result.control=='防具') player.enableEquip('equip2');
|
||||
if(result.control=='防御马') player.enableEquip('equip3');
|
||||
if(result.control=='攻击马') player.enableEquip('equip4');
|
||||
if(result.control=='宝物') player.enableEquip('equip5');
|
||||
},
|
||||
},
|
||||
'2':{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'juedouAfter',
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.turn!=player&&player.storage.disableEquip!=undefined&&player.storage.disableEquip.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.push(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要恢复的栏位');;
|
||||
'step 1'
|
||||
if(result.control=='武器') player.enableEquip('equip1');
|
||||
if(result.control=='防具') player.enableEquip('equip2');
|
||||
if(result.control=='防御马') player.enableEquip('equip3');
|
||||
if(result.control=='攻击马') player.enableEquip('equip4');
|
||||
if(result.control=='宝物') player.enableEquip('equip5');
|
||||
},
|
||||
},
|
||||
'3':{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'chooseToCompareAfter'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.result.bool==true&&player.storage.disableEquip!=undefined&&player.storage.disableEquip.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.push(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要恢复的栏位');;
|
||||
'step 1'
|
||||
if(result.control=='武器') player.enableEquip('equip1');
|
||||
if(result.control=='防具') player.enableEquip('equip2');
|
||||
if(result.control=='防御马') player.enableEquip('equip3');
|
||||
if(result.control=='攻击马') player.enableEquip('equip4');
|
||||
if(result.control=='宝物') player.enableEquip('equip5');
|
||||
},
|
||||
},
|
||||
'4':{
|
||||
audio:2,
|
||||
trigger:{
|
||||
global:'chooseToCompareAfter'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return (event.targets!=undefined&&event.targets.contains(player)||event.target==player)&&event.result.bool==false&&player.storage.disableEquip!=undefined&&player.storage.disableEquip.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.push(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要恢复的栏位');;
|
||||
'step 1'
|
||||
if(result.control=='武器') player.enableEquip('equip1');
|
||||
if(result.control=='防具') player.enableEquip('equip2');
|
||||
if(result.control=='防御马') player.enableEquip('equip3');
|
||||
if(result.control=='攻击马') player.enableEquip('equip4');
|
||||
if(result.control=='宝物') player.enableEquip('equip5');
|
||||
},
|
||||
},
|
||||
'5':{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:['damageEnd']
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.disableEquip!=undefined&&player.storage.disableEquip.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.disableEquip.length;i++){
|
||||
list.push(get.translation(player.storage.disableEquip[i]));
|
||||
};
|
||||
player.chooseControl(list).set('ai',function(event){
|
||||
return list.randomGet();
|
||||
}).set('prompt','请选择需要恢复的栏位');;
|
||||
'step 1'
|
||||
if(result.control=='武器') player.enableEquip('equip1');
|
||||
if(result.control=='防具') player.enableEquip('equip2');
|
||||
if(result.control=='防御马') player.enableEquip('equip3');
|
||||
if(result.control=='攻击马') player.enableEquip('equip4');
|
||||
if(result.control=='宝物') player.enableEquip('equip5');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"_drlt_zhiti":{
|
||||
mod:{
|
||||
maxHandcard:function (player,num){
|
||||
if(player.maxHp>player.hp&&game.countPlayer(function(current){return current!=player&¤t.hasSkill('drlt_zhiti')&&get.distance(current,player,'attack')<=1})) return num-1;
|
||||
},
|
||||
},
|
||||
},
|
||||
'drlt_poxi':{
|
||||
init:function (player,skill){
|
||||
if(player.hasStockSkill(skill)&&!player.storage[skill]){
|
||||
player.gainMaxHp(3);
|
||||
player.storage[skill]=true;
|
||||
}
|
||||
},
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
//return target!=player&&target.countCards('h')>0;
|
||||
return target!=player;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.list1=[];
|
||||
event.list2=[];
|
||||
if(target.countCards('h')>0){
|
||||
var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),get.translation(target.name)+'的手牌',target.getCards('h'),'hidden']);
|
||||
}else{
|
||||
var chooseButton=player.chooseButton(4,'hidden',['你的手牌',player.getCards('h'),'hidden']);
|
||||
}
|
||||
chooseButton.set('ai',function(button){
|
||||
//if(button.link.name=='du') return 1;
|
||||
return 0;
|
||||
});
|
||||
chooseButton.filterButton=function(button){
|
||||
for(var i=0;i<ui.selected.buttons.length;i++){
|
||||
if(get.suit(button.link)==get.suit(ui.selected.buttons[i].link)) return false;
|
||||
};
|
||||
return true;
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var list=result.links;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(get.owner(list[i])==player){
|
||||
event.list1.push(list[i]);
|
||||
}else{
|
||||
event.list2.push(list[i]);
|
||||
};
|
||||
};
|
||||
target.discard(event.list2);
|
||||
player.discard(event.list1);
|
||||
};
|
||||
'step 2'
|
||||
if(event.list1.length+event.list2.length==4){
|
||||
if(event.list1.length==0) player.loseMaxHp();
|
||||
if(event.list1.length==1){
|
||||
var evt=_status.event;
|
||||
for(var i=0;i<10;i++){
|
||||
if(evt&&evt.getParent)evt=evt.getParent();
|
||||
if(evt.name=='phaseUse'){
|
||||
evt.skipped=true;
|
||||
break;
|
||||
};
|
||||
};
|
||||
player.addTempSkill('drlt_poxi1',{player:'phaseAfter'});
|
||||
};
|
||||
if(event.list1.length==3) player.recover();
|
||||
if(event.list1.length==4) player.draw(4);
|
||||
};
|
||||
},
|
||||
ai:{
|
||||
order:13,
|
||||
result:{
|
||||
target:function(target,player){
|
||||
return -1;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
'drlt_poxi1':{
|
||||
mod:{
|
||||
maxHandcard:function (player,num){
|
||||
return num-1;
|
||||
},
|
||||
},
|
||||
},
|
||||
'drlt_jieying':{
|
||||
audio:2,
|
||||
init:function (player){
|
||||
player.storage.drlt_jieying=0;
|
||||
},
|
||||
marktext:"营",
|
||||
intro:{
|
||||
content:function(storage){
|
||||
return '当前有'+storage+'个“营”';
|
||||
},
|
||||
},
|
||||
mark:true,
|
||||
group:["drlt_jieying_1","drlt_jieying_2","drlt_jieying_3"],
|
||||
subSkill:{
|
||||
'1':{
|
||||
audio:'drlt_jieying',
|
||||
trigger:{
|
||||
global:'gameStart'
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.storage.drlt_jieying++;
|
||||
player.syncStorage('drlt_jieying');
|
||||
game.log(player,'获得了“营”标记');
|
||||
},
|
||||
},
|
||||
'2':{
|
||||
audio:'drlt_jieying',
|
||||
trigger:{
|
||||
player:"phaseEnd",
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('drlt_jieying'),function(card,player,target){
|
||||
return target.storage.drlt_jieying==undefined;
|
||||
}).ai=function(target){
|
||||
if(get.attitude(player,target)>0)
|
||||
return 0.1;
|
||||
if(get.attitude(player,target)<1&&(target.isTurnedOver()||target.countCards('h')<1))
|
||||
return 0.2;
|
||||
if(get.attitude(player,target)<1&&target.countCards('h')>0&&target.countCards('j',{name:'lebu'})>0)
|
||||
return target.countCards('h')*0.8+target.getHandcardLimit()*0.7+2;
|
||||
if(get.attitude(player,target)<1&&target.countCards('h')>0)
|
||||
return target.countCards('h')*0.8+target.getHandcardLimit()*0.7;
|
||||
return 1;
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target);
|
||||
player.logSkill('drlt_jieying');
|
||||
delete player.storage.drlt_jieying;
|
||||
player.unmarkSkill('drlt_jieying');
|
||||
game.log(player,'失去了“营”标记');
|
||||
player.storage.drlt_jieying1=target;
|
||||
if(target.storage.drlt_jieying==undefined) target.storage.drlt_jieying=0;
|
||||
target.storage.drlt_jieying++;
|
||||
target.markSkill('drlt_jieying');
|
||||
game.log(target,'获得了“营”标记');
|
||||
};
|
||||
},
|
||||
},
|
||||
'3':{
|
||||
audio:'drlt_jieying',
|
||||
trigger:{
|
||||
global:'phaseAfter'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.storage.drlt_jieying!=undefined
|
||||
},
|
||||
content:function(){
|
||||
if(trigger.player.countCards('h')>0){
|
||||
trigger.player.give(trigger.player.getCards('h'),player);
|
||||
}
|
||||
if(player.storage.drlt_jieying==undefined) player.storage.drlt_jieying=0;
|
||||
player.storage.drlt_jieying++;
|
||||
delete trigger.player.storage.drlt_jieying;
|
||||
trigger.player.unmarkSkill('drlt_jieying');
|
||||
player.markSkill('drlt_jieying');
|
||||
game.log(player,'获得了“营”标记');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
'_drlt_jieying':{
|
||||
mod:{
|
||||
cardUsable:function (card,player,num){
|
||||
if(player.storage.drlt_jieying!=undefined&&card.name=='sha') return num+1;
|
||||
},
|
||||
maxHandcard:function (player,num){
|
||||
if(player.storage.drlt_jieying!=undefined) return num+1;
|
||||
},
|
||||
},
|
||||
audio:'drlt_jieying',
|
||||
trigger:{
|
||||
player:'phaseDrawBegin'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.drlt_jieying!=undefined;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1910,13 +2406,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"nzry_cuike":"摧克",
|
||||
"nzry_cuike_info":"出牌阶段开始时,若“军略”标记的数量为奇数,你可以对一名角色造成一点伤害;若“军略”标记的数量为偶数,你可以横置一名角色并弃置其区域内的一张牌。若“军略”标记的数量超过7个,你可以移去全部“军略”标记并对所有其他角色造成一点伤害",
|
||||
"nzry_dinghuo":"绽火",
|
||||
"nzry_dinghuo_info":"限定技,出牌阶段开始时,你可以移去全部“军略”标记,令至多等量的已横置角色弃置所有装备区内的牌,然后受到1点火焰伤害",
|
||||
"nzry_dinghuo_info":"限定技,出牌阶段,你可以移去全部“军略”标记,令至多等量的已横置角色弃置所有装备区内的牌。然后,你对其中一名角色造成1点火焰伤害",
|
||||
"shen_liubei":"神刘备",
|
||||
"nzry_longnu":"龙怒",
|
||||
"nzry_longnu_info":"转换技,锁定技,①出牌阶段开始时,你流失1点体力并摸一张牌,然后本回合你的红色手牌均视为火杀且无距离限制。②出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷杀且无使用次数限制",
|
||||
"nzry_jieying":"结营",
|
||||
"nzry_jieying_info":"锁定技,你始终处于横置状态;已横置的角色手牌上限+2;结束阶段,你横置一名其他角色",
|
||||
|
||||
"shen_ganning":"神甘宁",
|
||||
"shen_zhangliao":"神张辽",
|
||||
|
||||
"drlt_poxi":"魄袭",
|
||||
"drlt_poxi_info":"出牌阶段限一次,你可以观看一名其他角色的手牌,然后你可以弃置你与其手牌中的四张花色不同的牌。若如此做,根据此次弃置你的牌的数量执行以下效果:1.没有,扣减一点体力上限;2.一张,立即结束出牌阶段且本回合手牌上限-1;三张,恢复一点体力;四张,摸四张牌",
|
||||
"drlt_jieying":"劫营",
|
||||
"drlt_jieying_info":"游戏开始时,你获得一个“营”标记。结束阶段,你可以将“营”标记置于一名角色的武将牌旁;有“营”标记的角色摸牌阶段多摸一张牌、出牌阶段可多使用一张【杀】、手牌上限+1。有“营”标记的其他角色的回合结束后,你获得其所有手牌并收回“营”标记。",
|
||||
"drlt_duorui1":"失效技能",
|
||||
"drlt_duorui1_bg":"锐",
|
||||
"drlt_duorui":"夺锐",
|
||||
"drlt_duorui_info":"当你于出牌阶段内对一名其他角色造成伤害后,你可以废除你装备区内的一个装备栏(若已全部废除则可以跳过此步骤),然后获得其的一个技能直到其的下回合结束或其死亡(觉醒技,限定技,主公技等特殊技能除外)。若如此做,该角色该技能失效且你不能再发动〖夺锐〗直到你失去此技能。",
|
||||
"drlt_zhiti":"止啼",
|
||||
"drlt_zhiti_info":"锁定技,你范围内已受伤的其他角色手牌上限-1;当你拼点或【决斗】胜利,或受到伤害后,你恢复一个装备栏",
|
||||
|
||||
shen_zhaoyun:'神赵云',
|
||||
shen_guanyu:'神关羽',
|
||||
shen_lvmeng:'神吕蒙',
|
||||
|
|
124
character/old.js
|
@ -29,6 +29,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
old_machao:['male','qun',4,['zhuiji','cihuai']],
|
||||
old_bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
|
||||
old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]],
|
||||
zhangliang:["male","qun",3,["old_jijun","old_fangtong"]],
|
||||
},
|
||||
characterFilter:{
|
||||
old_lingju:function(mode){
|
||||
|
@ -36,6 +38,118 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
old_zuilun:{
|
||||
subSkill:{
|
||||
e:{},
|
||||
h:{},
|
||||
},
|
||||
enable:"phaseUse",
|
||||
usable:2,
|
||||
filterTarget:function (card,player,target){
|
||||
if(player==target) return false;
|
||||
var pos='he';
|
||||
if(player.hasSkill('old_zuilun_h')) pos='e';
|
||||
if(player.hasSkill('old_zuilun_e')) pos='h';
|
||||
return target.countGainableCards(player,pos)>0;
|
||||
},
|
||||
content:function (){
|
||||
'step 0'
|
||||
var pos='he';
|
||||
if(player.hasSkill('old_zuilun_h')) pos='e';
|
||||
if(player.hasSkill('old_zuilun_e')) pos='h';
|
||||
player.gainPlayerCard(target,pos,true);
|
||||
'step 1'
|
||||
if(result.bool&&result.cards&&result.cards.length){
|
||||
target.draw();
|
||||
var pos=result.cards[0].original;
|
||||
if(pos=='h'||pos=='e') player.addTempSkill('old_zuilun_'+pos,'phaseUseAfter');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:-1,
|
||||
},
|
||||
},
|
||||
},
|
||||
old_fuyin:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if((card.name=='juedou'||card.name=='sha'||card.name=='huogong')&&player!=target&&player.countCards('h')>=target.countCards('h')&&!target.isEmpty(2)) return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
"old_jijun":{
|
||||
marktext:"方",
|
||||
intro:{
|
||||
content:"cards",
|
||||
},
|
||||
enable:"phaseUse",
|
||||
filterCard:true,
|
||||
selectCard:[1,Infinity],
|
||||
filter:function (event,player){
|
||||
return player.countCards('h')>0;
|
||||
},
|
||||
check:function (card){
|
||||
var player=_status.event.player;
|
||||
if(player.storage.old_jijun&&(36-player.storage.old_jijun.length)<=player.countCards('h')) return 1;
|
||||
return 5-get.value(card);
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
content:function (){
|
||||
player.lose(cards,ui.special,'toStorage');
|
||||
player.$give(cards,player);
|
||||
if(!player.storage.old_jijun) player.storage.old_jijun=[];
|
||||
player.storage.old_jijun.addArray(cards);
|
||||
player.markSkill('old_jijun');
|
||||
},
|
||||
},
|
||||
"old_fangtong":{
|
||||
trigger:{
|
||||
player:"phaseEnd",
|
||||
},
|
||||
forced:true,
|
||||
skillAnimation:true,
|
||||
filter:function (event,player){
|
||||
return (player.storage.old_jijun&&player.storage.old_jijun.length>35);
|
||||
},
|
||||
content:function (){
|
||||
var bool=false;
|
||||
if(player==game.me) bool=true;
|
||||
else switch(get.mode()){
|
||||
case 'identity':{
|
||||
game.showIdentity();
|
||||
var id1=player.identity;
|
||||
var id2=game.me.identity;
|
||||
if(['zhu','zhong','mingzhong'].contains(id1)){
|
||||
if(['zhu','zhong','mingzhong'].contains(id2)) bool=true;
|
||||
break;
|
||||
}
|
||||
else if(id1=='fan'){
|
||||
if(id2=='fan') bool=true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'guozhan':{
|
||||
if(game.me.isFriendOf(player)) bool=true;
|
||||
break;
|
||||
}
|
||||
case 'versus':{
|
||||
if(player.side==game.me.side) bool=true;
|
||||
break;
|
||||
}
|
||||
case 'boss':{
|
||||
if(player.side==game.me.side) bool=true;
|
||||
break;
|
||||
}
|
||||
default:{}
|
||||
}
|
||||
game.over(bool);
|
||||
},
|
||||
},
|
||||
|
||||
oldanxu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
|
@ -460,7 +574,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_zhuzhi:'旧朱治',
|
||||
old_machao:'旧马超',
|
||||
old_bulianshi:'旧步练师',
|
||||
old_zhugezhan:"旧诸葛瞻",
|
||||
zhangliang:'张梁',
|
||||
|
||||
"old_jijun":"集军",
|
||||
"old_jijun_info":"出牌阶段,你可以将任意张手牌置于你的武将牌上。(均称为“方”)",
|
||||
"old_fangtong":"方统",
|
||||
"old_fangtong_info":"锁定技,结束阶段,若你的“方”的数目大于等于36,则你所在的游戏阵营直接取得游戏胜利。",
|
||||
old_zuilun:"罪论",
|
||||
old_zuilun_info:"出牌阶段,你可以获得一名其他角色的一张牌(手牌、装备区各一次),然后该角色摸一张牌。",
|
||||
old_fuyin:"父荫",
|
||||
old_fuyin_info:"锁定技,若你的装备区内没有防具牌,手牌数大于或等于你的其他角色不能使用【杀】、【决斗】或【火攻】指定你为目标",
|
||||
oldanxu:'安恤',
|
||||
oldanxu_info:'出牌阶段限一次,你可以选择手牌数不相等的两名其他角色,令其中手牌少的角色获得手牌多的角色的一张手牌并展示之,然后若此牌不为黑桃,你摸一张牌。',
|
||||
oldfaen:'法恩',
|
||||
|
|
|
@ -93,7 +93,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
direct:true,
|
||||
content:function (){
|
||||
'step 0'
|
||||
player.gainPlayerCard(get.prompt('new_liyu',trigger.player),trigger.player,'he').set('ai',function(card){
|
||||
player.gainPlayerCard(get.prompt('new_liyu',trigger.player),trigger.player,'he','visibleMove').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
var evt=_status.event.target;
|
||||
if(get.type(card)=='equip'){
|
||||
|
@ -113,7 +113,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.showCards(result.cards);
|
||||
player.logSkill('new_liyu',trigger.player);
|
||||
if(get.type(result.cards[0])!='equip'){
|
||||
trigger.player.draw();
|
||||
|
@ -950,7 +949,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(target.sex!='male') return false;
|
||||
var card=ui.selected.cards[0];
|
||||
if(!card) return false;
|
||||
if(get.position(card)=='e'&&target.countCards('e',{subtype:get.subtype(card)})) return false;
|
||||
if(get.position(card)=='e'&&!target.isEmpty(get.subtype(card))) return false;
|
||||
return true;
|
||||
},
|
||||
discard:false,
|
||||
|
|
1043
character/shenhua.js
|
@ -46,7 +46,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
caoang:['male','wei',4,['kaikang']],
|
||||
sp_caoren:['male','wei',4,['weikui','lizhan']],
|
||||
zhangbao:['male','qun',3,['zhoufu','yingbin']],
|
||||
zhangliang:['male','qun',3,['fulu','fuji']],
|
||||
huangjinleishi:['female','qun',3,['fulu','fuji']],
|
||||
maliang:['male','shu',3,['zishu','yingyuan']],
|
||||
sp_pangtong:['male','qun',3,['manjuan','zuixiang']],
|
||||
zhugedan:['male','wei',4,['gongao','juyi']],
|
||||
|
@ -241,8 +241,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangliang:'东汉末年黄巾起义首领之一,张角的三弟。中平元年(184)随兄起义,号称“人公将军”。遭到朝廷所派左中郎将皇甫嵩进攻时,他率军在广宗(今河北威县)进行反击。后因警戒疏忽,遭到汉军夜袭,兵败身亡。',
|
||||
},
|
||||
characterTitle:{
|
||||
"baosanniang":"Sukincen",
|
||||
'zhaotongzhaoguang':"Sukincen"
|
||||
//"baosanniang":"Sukincen",
|
||||
//'zhaotongzhaoguang':"Sukincen"
|
||||
},
|
||||
perfectPair:{
|
||||
yuejin:['re_lidian'],
|
||||
|
@ -441,7 +441,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(player.storage.new_xingwu.length<2){
|
||||
player.$give(result.cards,player);
|
||||
}
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.new_xingwu=player.storage.new_xingwu.concat(result.cards);
|
||||
player.markSkill('new_xingwu');
|
||||
player.syncStorage('new_xingwu');
|
||||
|
@ -811,7 +811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var att=get.attitude(player,target)
|
||||
if(target.getEquip(2)&&!player.getEquip(2)){
|
||||
if(target.getEquip(2)&&player.isEmpty(2)){
|
||||
return -2*att;
|
||||
}
|
||||
return -att;
|
||||
|
@ -2050,7 +2050,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('shuimeng'),function(card,player,target){
|
||||
return target!=player&&target.countCards('h');
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
if(!_status.event.goon) return 0;
|
||||
return -get.attitude(_status.event.player,target);
|
||||
|
@ -2918,7 +2918,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return true;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target.countCards('h')&&target!=player;
|
||||
return player.canCompare(target);
|
||||
},
|
||||
ai:{
|
||||
order:2.8,
|
||||
|
@ -3186,7 +3186,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
}
|
||||
player.chooseTarget(get.prompt('shuangren'),function(card,player,target){
|
||||
return target!=player&&target.countCards('h');
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(_status.event.goon&&get.attitude(player,target)<0){
|
||||
|
@ -4862,7 +4862,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('tuifeng');
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.$give(result.cards,player);
|
||||
for(var i=0;i<result.cards.length;i++){
|
||||
player.storage.tuifeng.push(result.cards[i]);
|
||||
|
@ -4953,7 +4953,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(ui.selected.targets.length){
|
||||
return target.countCards('h')>0&&target.distanceTo(ui.selected.targets[0])<=1;
|
||||
return ui.selected.targets[0].canCompare(target)&&target.distanceTo(ui.selected.targets[0])<=1;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
@ -5070,7 +5070,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')>0;
|
||||
return player.canCompare(target);
|
||||
},
|
||||
selectTarget:[1,3],
|
||||
filter:function(event,player){
|
||||
|
@ -5106,8 +5106,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.die();
|
||||
}
|
||||
else{
|
||||
// player.chooseToDiscard('弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
|
||||
event.finish();
|
||||
player.chooseToDiscard('弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
|
||||
//event.finish();
|
||||
}
|
||||
}
|
||||
'step 1'
|
||||
|
@ -5281,7 +5281,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 2'
|
||||
if(result.bool){
|
||||
var card=result.cards[0];
|
||||
player.lose(card,ui.special);
|
||||
player.lose(card,ui.special,'toStorage');
|
||||
player.storage.shefu.push(card);
|
||||
player.syncStorage('shefu');
|
||||
player.markSkill('shefu');
|
||||
|
@ -5739,7 +5739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.countCards('h');
|
||||
return player.canCompare(target);
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0;
|
||||
|
@ -5841,7 +5841,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
inherit:'bagua_skill',
|
||||
filter:function(event,player){
|
||||
if(!lib.skill.bagua_skill.filter(event,player)) return false;
|
||||
if(player.getEquip(2)) return false;
|
||||
if(!player.isEmpty(2)) return false;
|
||||
return true;
|
||||
},
|
||||
ai:{
|
||||
|
@ -6038,6 +6038,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
ui.special.appendChild(trigger.card);
|
||||
trigger.player.markSkill('zhenwei2');
|
||||
event.trigger("addCardToStorage");
|
||||
}
|
||||
trigger.cancel();
|
||||
trigger.player.addSkill('zhenwei2');
|
||||
|
@ -6076,7 +6077,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.countCards('h');
|
||||
return player.canCompare(target);
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0;
|
||||
|
@ -6370,7 +6371,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool&&result.links&&result.links.length){
|
||||
target.$give(result.links,player);
|
||||
target.lose(result.links,ui.special);
|
||||
target.lose(result.links,ui.special,'toStorage');
|
||||
player.storage.yinling.push(result.links[0]);
|
||||
player.markSkill('yinling');
|
||||
player.syncStorage('yinling');
|
||||
|
@ -6416,8 +6417,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return player.countCards('he',{suit:'diamond'})>0;
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
prepare:'give',
|
||||
content:function(){
|
||||
player.lose(cards,ui.special,'toStorage');
|
||||
if(target.hasSkill('yanxiao2')&&target.storage.yanxiao2){
|
||||
target.storage.yanxiao2.push(cards[0]);
|
||||
target.syncStorage('yanxiao2');
|
||||
|
@ -6449,7 +6452,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
forced:true,
|
||||
content:function(){
|
||||
var cards=player.storage.yanxiao2.concat(player.getCards('j'));
|
||||
player.gain(cards,'gain2','log');
|
||||
player.gain(cards,'gain2','log','fromStorage');
|
||||
delete player.storage.yanxiao2;
|
||||
player.removeSkill('yanxiao2');
|
||||
},
|
||||
|
@ -6666,7 +6669,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.logSkill('yinbing');
|
||||
game.log(player,'将',result.cards,'置于武将牌上');
|
||||
player.storage.yinbing=player.storage.yinbing.concat(result.cards);
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.markSkill('yinbing');
|
||||
player.syncStorage('yinbing');
|
||||
}
|
||||
|
@ -6776,7 +6779,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
var target=result.targets[0];
|
||||
target.recover();
|
||||
target.gain(player.storage.yinbing.slice(0),'gain2','log');
|
||||
target.gain(player.storage.yinbing.slice(0),'gain2','log','fromStorage');
|
||||
target.draw(player.storage.yinbing.length);
|
||||
player.storage.yinbing.length=0;
|
||||
}
|
||||
|
@ -6977,7 +6980,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 2'
|
||||
if(result.bool){
|
||||
event.target.$give(result.links,player);
|
||||
event.target.lose(result.links,ui.special);
|
||||
event.target.lose(result.links,ui.special,'toStorage');
|
||||
player.storage.fentian=player.storage.fentian.concat(result.links);
|
||||
player.syncStorage('fentian');
|
||||
setTimeout(function(){
|
||||
|
@ -7121,7 +7124,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.tunchu.addArray(result.cards);
|
||||
player.markSkill('tunchu');
|
||||
player.syncStorage('tunchu');
|
||||
|
@ -7760,7 +7763,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.chooseCard(2,'he',true,'选择两张牌作为“米”');
|
||||
'step 1'
|
||||
player.storage.yishe=result.cards;
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.syncStorage('yishe');
|
||||
player.markSkill('yishe');
|
||||
}
|
||||
|
@ -7778,7 +7781,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('bushi');
|
||||
trigger.player.gain(result.links[0],'draw2','log');
|
||||
trigger.player.gain(result.links[0],'draw2','log','fromStorage');
|
||||
player.storage.yishe.remove(result.links[0]);
|
||||
player.syncStorage('yishe');
|
||||
if(player.storage.yishe.length==0){
|
||||
|
@ -8583,7 +8586,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
prepare:'throw',
|
||||
discard:false,
|
||||
lose:false,
|
||||
content:function(){
|
||||
player.lose(cards,ui.special,'toStorage');
|
||||
target.$gain2(cards);
|
||||
target.storage.zhoufu2=cards[0];
|
||||
target.addSkill('zhoufu2');
|
||||
|
@ -8830,7 +8835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.$give(result.cards,trigger.target);
|
||||
game.delay();
|
||||
event.card=result.cards[0];
|
||||
if(get.type(event.card)!='equip') event.finish();
|
||||
if(get.type(event.card)!='equip'||trigger.target.isDisabled(get.subtype(event.card))) event.finish();
|
||||
"step 2"
|
||||
if(!trigger.target.isMin()){
|
||||
trigger.target.chooseBool('是否装备'+get.translation(event.card)+'?').set('ai',function(){
|
||||
|
@ -10523,7 +10528,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.logSkill('bifa',result.targets[0]);
|
||||
result.targets[0].addSkill('bifa2');
|
||||
result.targets[0].storage.bifa=[result.cards[0],player];
|
||||
player.lose(result.cards[0],result.targets[0].node.special);
|
||||
player.lose(result.cards[0],result.targets[0].node.special,'toStorage');
|
||||
player.$give(1,result.targets[0]);
|
||||
}
|
||||
},
|
||||
|
@ -10554,7 +10559,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool&&!event.directfalse){
|
||||
player.storage.bifa[1].gain(result.cards,player);
|
||||
player.$give(result.cards,player.storage.bifa[1]);
|
||||
player.gain(player.storage.bifa[0],'draw2','log');
|
||||
player.gain(player.storage.bifa[0],'draw2','log','fromStorage');
|
||||
}
|
||||
else{
|
||||
player.storage.bifa[0].discard();
|
||||
|
@ -10771,7 +10776,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
position:'he',
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.getEquip(card);
|
||||
return target.isEmpty(get.subtype(card));
|
||||
},
|
||||
ai1:function(card){
|
||||
return 6-get.value(card);
|
||||
|
@ -10923,7 +10928,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
"step 1"
|
||||
player.chooseTarget(true,'选择拼点目标',function(card,player,target){
|
||||
return target.countCards('h')&&target!=_status.event.target1&&target!=player;
|
||||
return _status.event.target1.canCompare(target)&&target!=player;
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var eff=get.effect(target,{name:'sha'},_status.event.target1,player);
|
||||
|
@ -11153,7 +11158,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunhao:'孙皓',
|
||||
chengyu:'程昱',
|
||||
simalang:'司马朗',
|
||||
zhangliang:'张梁',
|
||||
tianfeng:'田丰',
|
||||
sp_pangtong:'sp庞统',
|
||||
sp_jiaxu:'sp贾诩',
|
||||
|
@ -11228,6 +11232,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
beimihu:'卑弥呼',
|
||||
luzhi:'鲁芝',
|
||||
sp_liuqi:'刘琦',
|
||||
huangjinleishi:'黄巾雷使',
|
||||
|
||||
lijue:"李傕",
|
||||
zhangji:"张济",
|
||||
|
@ -11444,7 +11449,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yongdi_info:'限定技,当你受到伤害后,你可令一名其他男性角色增加一点体力上限,然后若该角色的武将牌上有主公技且其不为主公,其获得此主公技',
|
||||
gushe:'鼓舌',
|
||||
gushe_bg:'舌',
|
||||
gushe_info:'出牌阶段限一次,你可以用一张手牌与至多三名角色同时拼点,然后依次结算拼点结果,若你赢,对方选择一项:1.弃置一张牌;2.令你摸一张牌。若你没赢,你获得一个“饶舌”标记(你有7个饶舌标记时,你死亡)',
|
||||
gushe_info:'出牌阶段限一次,你可以用一张手牌与至多三名角色同时拼点,然后依次结算拼点结果,没赢的角色选择一项:1.弃置一张牌;2.令你摸一张牌。若你没赢,你获得一个“饶舌”标记(你有7个饶舌标记时,你死亡)',
|
||||
jici:'激词',
|
||||
jici_info:'当你发动“鼓舌”拼点的牌亮出后,若点数小于X,你可令点数+X;若点数等于X,你可令你本回合发动“鼓舌”的次数上限+1(X为你“饶舌”标记的数量)',
|
||||
shefu:'设伏',
|
||||
|
|
|
@ -30,6 +30,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lvbu:['male','qun',4,['wushuang']],
|
||||
diaochan:['female','qun',3,['lijian','biyue']],
|
||||
huaxiong:['male','qun',6,['yaowu']],
|
||||
gongsunzan:['male','qun',4,['yicong']],
|
||||
|
||||
caozhang:['male','wei',4,['new_jiangchi']],
|
||||
xf_yiji:["male","shu",3,["xinfu_jijie","xinfu_jiyuan"],[]],
|
||||
|
|
|
@ -209,7 +209,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<event.toequip.length;i++){
|
||||
if(get.type(card)=='equip'&&get.subtype(card)==get.subtype(event.toequip[i])) bool1=false;
|
||||
}
|
||||
return (get.type(card)=='equip'&&!event.toequip.contains(card)&&bool1);
|
||||
return (get.type(card)=='equip'&&!event.toequip.contains(card)&&!target.isDisabled(get.subtype(card))&&bool1);
|
||||
});
|
||||
if(equip) event.toequip.push(equip);
|
||||
else event.num=0;
|
||||
|
@ -1874,8 +1874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
priority:15,
|
||||
filter:function (event,player){
|
||||
if(player.hasSkill('smh_huoji')||player.hasSkill('smh_lianhuan')) return false;
|
||||
if(player.getEquip(2)) return false;
|
||||
if(player.storage.lose_pos_equip&&player.storage.lose_pos_equip.contains('equip2')) return false;
|
||||
if(!player.isEmpty(2)) return false;
|
||||
if(event.nature) return true;
|
||||
return get.type(event.card,'trick')=='trick';
|
||||
},
|
||||
|
@ -3073,6 +3072,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
game.addVideo('gain2',player,get.cardsInfo([result.node]));
|
||||
player.markSkill('xinfu_jijun');
|
||||
game.addVideo('storage',player,['xinfu_jijun',get.cardsInfo(player.storage.xinfu_jijun),'cards']);
|
||||
event.trigger("addCardToStorage");
|
||||
}
|
||||
},
|
||||
init:function (player){
|
||||
|
@ -3561,7 +3561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(get.suit(cards[i])=='heart') togain.push(cards[i]);
|
||||
}
|
||||
player.logSkill('xinfu_yingshi',result.targets);
|
||||
player.lose(togain,ui.special);
|
||||
player.lose(togain,ui.special,'toStorage');
|
||||
player.$give(togain,result.targets[0]);
|
||||
result.targets[0].storage.yingshi_heart=togain;
|
||||
result.targets[0].addSkill('yingshi_heart');
|
||||
|
@ -3586,7 +3586,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
player.$give(result.links,trigger.source);
|
||||
trigger.source.gain(result.links);
|
||||
trigger.source.gain(result.links,'fromStorage');
|
||||
player.storage.yingshi_heart.remove(result.links[0]);
|
||||
player.syncStorage('yingshi_heart');
|
||||
player.updateMarks('yingshi_heart');
|
||||
|
@ -4376,7 +4376,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var next=player.chooseTarget(2,function(card,player,target){
|
||||
if(ui.selected.targets.length){
|
||||
if(!event.ingame){
|
||||
return !target.getEquip(2)?true:false;
|
||||
return target.isEmpty(2)?true:false;
|
||||
}
|
||||
var from=ui.selected.targets[0];
|
||||
if(target.isMin()) return false;
|
||||
|
@ -4384,7 +4384,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<es.length;i++){
|
||||
if(['equip3','equip4'].contains(get.subtype(es[i]))&&target.getEquip('liulongcanjia')) continue;
|
||||
if(es[i].name=='liulongcanjia'&&target.countCards('e',{subtype:['equip3','equip4']})>1) continue;
|
||||
if(!target.getEquip(get.subtype(es[i]))) return true;
|
||||
if(target.isEmpty(get.subtype(es[i]))) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -4407,7 +4407,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<es.length;i++){
|
||||
if(['equip3','equip4'].contains(get.subtype(es[i]))&¤t.getEquip('liulongcanjia')) continue;
|
||||
else if(es[i].name=='liulongcanjia'&&target.countCards('e',{subtype:['equip3','equip4']})>1) continue;
|
||||
else if(!current.getEquip(get.subtype(es[i]))) return true;
|
||||
else if(current.isEmpty(get.subtype(es[i]))) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -4421,7 +4421,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(i=0;i<es.length;i++){
|
||||
if(['equip3','equip4'].contains(get.subtype(es[i]))&&target.getEquip('liulongcanjia')) continue;
|
||||
if(es[i].name=='liulongcanjia'&&target.countCards('e',{subtype:['equip3','equip4']})>1) continue;
|
||||
if(!target.getEquip(get.subtype(es[i]))) break;
|
||||
if(target.isEmpty(get.subtype(es[i]))) break;
|
||||
}
|
||||
if(i==es.length) return 0;
|
||||
}
|
||||
|
@ -5085,8 +5085,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return [1,3-player.storage.xinfu_zhaoxin.length];
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
content:function (){
|
||||
'step 0'
|
||||
player.lose(cards,ui.special,'toStorage')
|
||||
player.$give(cards,player);
|
||||
player.storage.xinfu_zhaoxin=player.storage.xinfu_zhaoxin.concat(cards);
|
||||
player.markSkill('xinfu_zhaoxin');
|
||||
|
@ -5137,7 +5139,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 3'
|
||||
if(result.bool){
|
||||
player.storage.xinfu_zhaoxin.remove(event.card);
|
||||
player.give(event.card,trigger.player,true);
|
||||
player.$give(event.card,trigger.player);
|
||||
trigger.player.gain(event.card,'fromStorage');
|
||||
if(player.storage.xinfu_zhaoxin.length) player.markSkill('xinfu_zhaoxin');
|
||||
else player.unmarkSkill('xinfu_zhaoxin');
|
||||
player.chooseBool('是否对'+get.translation(trigger.player)+'造成一点伤害?').ai=function(){
|
||||
|
|
|
@ -311,7 +311,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.hp=true;
|
||||
}
|
||||
event.equip=get.cardPile(function(card){
|
||||
return get.type(card)=='equip';
|
||||
return get.type(card)=='equip'&&!target.isDisabled(get.subtype(card));
|
||||
});
|
||||
if(target.isMinEquip()){
|
||||
target.equip(event.equip||game.createCard(get.inpilefull('equip').randomGet()),true);
|
||||
|
@ -544,7 +544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.attitude(player,event.target)<0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&event.target.countCards('h')>0&&event.target!=player;
|
||||
return player.canCompare(event.target);
|
||||
},
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
|
@ -562,7 +562,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.effect(player,event.card,event.player,player)<0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&event.player.countCards('h')>0&&event.player!=player;
|
||||
return player.canCompare(event.target);
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
|
@ -794,7 +794,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.index==0){
|
||||
target.loseHp();
|
||||
event.card=get.cardPile(function(card){
|
||||
return get.type(card)=='equip';
|
||||
return get.type(card)=='equip'&&!target.isDisabled(get.subtype(card));
|
||||
});
|
||||
if(event.card){
|
||||
target.equip(event.card,true).set('delay',true);
|
||||
|
@ -1012,6 +1012,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
game.delay();
|
||||
player.storage.bizhuan.push(card);
|
||||
player.markSkill('bizhuan');
|
||||
event.trigger("addCardToStorage");
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
|
@ -1076,7 +1077,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('tongbo');
|
||||
player.lose(result.cards,ui.special)._triggered=null;
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.bizhuan=player.storage.bizhuan.concat(result.cards);
|
||||
player.syncStorage('bizhuan');
|
||||
event.num=result.cards.length;
|
||||
|
@ -1136,7 +1137,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
game.delay(0.5);
|
||||
}
|
||||
"step 3"
|
||||
player.gain(result.links)._triggered=null;
|
||||
player.gain(result.links,'fromStorage');
|
||||
for(var i=0;i<result.links.length;i++){
|
||||
player.storage.bizhuan.remove(result.links[i]);
|
||||
}
|
||||
|
@ -2991,7 +2992,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
target.$give(result.cards,player);
|
||||
target.lose(result.cards,ui.special);
|
||||
target.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.kuangbi_draw=result.cards;
|
||||
player.storage.kuangbi_draw_source=target;
|
||||
player.syncStorage('kuangbi_draw');
|
||||
|
@ -3021,7 +3022,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
var cards=player.storage.kuangbi_draw;
|
||||
if(cards){
|
||||
player.gain(cards,'gain2');
|
||||
player.gain(cards,'gain2','fromStorage');
|
||||
var target=player.storage.kuangbi_draw_source;
|
||||
if(target&&target.isAlive()){
|
||||
target.draw(cards.length);
|
||||
|
@ -3423,7 +3424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool&&result.cards&&result.cards.length){
|
||||
event.target.$give(result.cards,player);
|
||||
player.storage.jieyue2=result.cards[0];
|
||||
event.target.lose(result.cards[0],ui.special);
|
||||
event.target.lose(result.cards[0],ui.special,'toStorage');
|
||||
player.syncStorage('jieyue2');
|
||||
player.addSkill('jieyue2');
|
||||
}
|
||||
|
@ -3482,7 +3483,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.gain(player.storage.jieyue2,'gain2');
|
||||
player.gain(player.storage.jieyue2,'gain2','fromStorage');
|
||||
player.storage.jieyue2=null;
|
||||
player.removeSkill('jieyue2');
|
||||
}
|
||||
|
@ -3527,7 +3528,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.countCards('h')>0;
|
||||
return player.canCompare(target);
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0;
|
||||
|
@ -3661,7 +3662,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.storage.chunlao=player.storage.chunlao.concat(result.cards);
|
||||
player.syncStorage('chunlao');
|
||||
player.markSkill('chunlao');
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.$give(result.cards,player);
|
||||
}
|
||||
},
|
||||
|
@ -5610,7 +5611,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
game.addVideo('storage',trigger.target,['xinpojun2',get.cardsInfo(trigger.target.storage.xinpojun2),'cards']);
|
||||
trigger.target.addSkill('xinpojun2');
|
||||
trigger.target.lose(result.links,ui.special);
|
||||
trigger.target.lose(result.links,ui.special,'toStorage');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -5627,7 +5628,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
if(player.storage.xinpojun2){
|
||||
player.gain(player.storage.xinpojun2);
|
||||
player.gain(player.storage.xinpojun2,'fromStorage');
|
||||
delete player.storage.xinpojun2;
|
||||
}
|
||||
player.removeSkill('xinpojun2');
|
||||
|
@ -6188,7 +6189,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt('qiaoshui'),function(card,player,target){
|
||||
return player!=target&&target.countCards('h')>0;
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
return -get.attitude(_status.event.player,target)/target.countCards('h');
|
||||
});
|
||||
|
@ -6671,7 +6672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
"step 2"
|
||||
if(result.cards&&result.cards.length){
|
||||
player.lose(result.cards,ui.special);
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.storage.quanji=player.storage.quanji.concat(result.cards);
|
||||
player.syncStorage('quanji');
|
||||
player.markSkill('quanji');
|
||||
|
@ -6855,7 +6856,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
var next;
|
||||
if(trigger.player.hasCard(function(card){
|
||||
return !player.getEquip(card);
|
||||
return player.isEmpty(get.subtype(card));
|
||||
},'e')){
|
||||
next=player.chooseControl('移动装备','draw_card','cancel2',function(event,player){
|
||||
var source=_status.event.source;
|
||||
|
@ -6883,7 +6884,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.control=='移动装备'){
|
||||
player.logSkill('qieting',trigger.player);
|
||||
player.choosePlayerCard(trigger.player,'e','将一张装备牌移至你的装备区').set('filterButton',function(button){
|
||||
return !_status.event.player.getEquip(button.link);
|
||||
return _status.event.player.isEmpty(get.subtype(button.link));
|
||||
});
|
||||
}
|
||||
else{
|
||||
|
@ -6931,8 +6932,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
logTarget:'player',
|
||||
filter:function(event,player){
|
||||
return player.hp<player.maxHp&&event.player!=player&&
|
||||
player.countCards('h')>0&&event.player.countCards('h')>0;
|
||||
return player.hp<player.maxHp&&player.canCompare(event.player);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -7057,6 +7057,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
trigger:{player:'dieBegin'},
|
||||
direct:true,
|
||||
skillAnimation:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt('zhuiyi'),function(card,player,target){
|
||||
|
@ -7076,11 +7077,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('zhuiyi',target);
|
||||
target.recover();
|
||||
target.draw(3);
|
||||
var next=game.createEvent('zhuiyi',null,trigger.parent);
|
||||
next.player=target;
|
||||
next.source=player;
|
||||
next.setContent(lib.skill.zhuiyi.contentx);
|
||||
}
|
||||
},
|
||||
contentx:function(){
|
||||
event.source.logSkill('zhuiyi',player);
|
||||
event.source.line(player,'green');
|
||||
player.recover();
|
||||
player.draw(3);
|
||||
},
|
||||
ai:{
|
||||
expose:0.5,
|
||||
}
|
||||
|
@ -7114,14 +7122,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gainner=targets[1];
|
||||
giver=targets[0];
|
||||
}
|
||||
gainner.gainPlayerCard(giver,true);
|
||||
gainner.gainPlayerCard(giver,true,'h','visibleMove');
|
||||
event.gainner=gainner;
|
||||
event.giver=giver;
|
||||
'step 1'
|
||||
if(result.cards){
|
||||
event.bool=false;
|
||||
var card=result.cards[0];
|
||||
event.gainner.showCards(card);
|
||||
if(get.suit(card)!='spade') event.bool=true;
|
||||
}
|
||||
'step 2'
|
||||
|
@ -7431,7 +7438,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
case 'trick':event.effect='';break;
|
||||
case 'equip':event.effect='recover';break;
|
||||
}
|
||||
if(get.type(card)=='equip'){
|
||||
if(get.type(card)=='equip'&&!event.target.isDisabled(get.sub(card))){
|
||||
event.target.equip(card);
|
||||
event.target.$draw(card);
|
||||
game.delay();
|
||||
|
@ -8887,7 +8894,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.storage.xiansi=player.storage.xiansi.concat(result.links);
|
||||
player.markSkill('xiansi');
|
||||
player.syncStorage('xiansi');
|
||||
event.current.lose(result.links,ui.special);
|
||||
event.current.lose(result.links,ui.special,'toStorage');
|
||||
event.current.$give(result.links,player);
|
||||
event.goto(2);
|
||||
}
|
||||
|
@ -9187,7 +9194,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
logTarget:'player',
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.countCards('h')>0&&player.countCards('h')>0;
|
||||
return player.canCompare(event.player);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -9241,6 +9248,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.storage.zyexin.push(card);
|
||||
player.$draw(card);
|
||||
player.markSkill('zyexin');
|
||||
event.trigger("addCardToStorage");
|
||||
game.addVideo('storage',player,['zyexin',get.cardsInfo(player.storage.zyexin),'cards']);
|
||||
},
|
||||
group:'zyexin2'
|
||||
|
@ -9258,7 +9266,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
prompt:'用任意数量的手牌与等量的“权”交换',
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.lose(cards,ui.special)._triggered=null;
|
||||
player.lose(cards,ui.special,'toStorage');
|
||||
player.storage.zyexin=player.storage.zyexin.concat(cards);
|
||||
player.chooseCardButton(player.storage.zyexin,'选择'+cards.length+'张牌作为手牌',cards.length,true).ai=function(button){
|
||||
return get.value(button.link);
|
||||
|
@ -9267,7 +9275,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
game.delay();
|
||||
}
|
||||
"step 1"
|
||||
player.gain(result.links)._triggered=null;
|
||||
player.gain(result.links,'toStorage');
|
||||
for(var i=0;i<result.links.length;i++){
|
||||
player.storage.zyexin.remove(result.links[i]);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'1.9.85.1',
|
||||
'1.9.87',
|
||||
'audio/background/music_danji.mp3',
|
||||
'audio/background/music_default.mp3',
|
||||
'audio/background/music_diaochan.mp3',
|
||||
|
@ -1747,6 +1747,18 @@ window.noname_asset_list=[
|
|||
'image/card/zixin.png',
|
||||
'image/card/ziyangdan.png',
|
||||
'image/card/zong.png',
|
||||
'image/character/chendao.jpg',
|
||||
'image/character/guanqiujian.jpg',
|
||||
'image/character/haozhao.jpg',
|
||||
'image/character/huangjinleishi.jpg',
|
||||
'image/character/lukang.jpg',
|
||||
'image/character/old_zhugezhan.jpg',
|
||||
'image/character/shen_ganning.jpg',
|
||||
'image/character/shen_zhangliao.jpg',
|
||||
'image/character/yl_yuanshu.jpg',
|
||||
'image/character/zhangxiu.jpg',
|
||||
'image/character/zhoufei.jpg',
|
||||
'image/character/zhugezhan.jpg',
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
'image/character/beimihu.jpg',
|
||||
|
|
148
game/game.js
|
@ -9250,6 +9250,36 @@
|
|||
},
|
||||
element:{
|
||||
content:{
|
||||
disableEquip:function(){
|
||||
event.trigger('disableEquip');
|
||||
if(!player.isDisabled(event.pos)){
|
||||
player.storage.disableEquip.add(event.pos);
|
||||
//player.markSkill('_disableEquip');
|
||||
player.syncStorage('_disableEquip');
|
||||
var str=event.pos.slice(event.pos.length-1,event.pos.length);
|
||||
if(player.get('e',str)!=undefined) player.discard(player.get('e',str));
|
||||
game.log(player,'废除了',get.translation(event.pos),'栏');
|
||||
player.$disableEquip(event.pos);
|
||||
}
|
||||
},
|
||||
enableEquip:function(){
|
||||
event.trigger('enableEquip');
|
||||
if(player.storage.disableEquip.contains(event.pos)){
|
||||
player.storage.disableEquip.remove(event.pos);
|
||||
player.syncStorage('_disableEquip');
|
||||
//if(player.storage.disableEquip.length==0) player.unmarkSkill('_disableEquip');
|
||||
};
|
||||
game.log(player,'恢复了',get.translation(event.pos),'栏');
|
||||
player.$enableEquip(event.pos);
|
||||
},
|
||||
disableJudge:function(){
|
||||
var js=player.getCards('j');
|
||||
if(js.length) player.discard(js);
|
||||
player.storage._disableJudge=true;
|
||||
player.markSkill('_disableJudge');
|
||||
game.log(player,'废除了判定区');
|
||||
},
|
||||
/*----分界线----*/
|
||||
phasing:function(){
|
||||
'step 0'
|
||||
while(ui.dialogs.length){
|
||||
|
@ -12145,7 +12175,7 @@
|
|||
}
|
||||
event.result.cards=event.result.links.slice(0);
|
||||
event.cards=cards;
|
||||
if(!_status.connectMode&&(target.isUnderControl(true)||player.isUnderControl(true)||event.visible)){
|
||||
if((!_status.connectMode&&(target.isUnderControl(true)||player.isUnderControl(true)))||event.visibleMove){
|
||||
target.$give(cards,player);
|
||||
}
|
||||
else{
|
||||
|
@ -12292,12 +12322,12 @@
|
|||
var from=ui.selected.targets[0];
|
||||
var js=from.getCards('j');
|
||||
for(var i=0;i<js.length;i++){
|
||||
if(!target.hasJudge(js[i])) return true;
|
||||
if(!target.storage._disableJudge&&!target.hasJudge(js[i])) return true;
|
||||
}
|
||||
if(target.isMin()) return false;
|
||||
var es=from.getCards('e');
|
||||
for(var i=0;i<es.length;i++){
|
||||
if(!target.getEquip(get.subtype(es[i]))) return true;
|
||||
if(target.isEmpty(get.subtype(es[i]))) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -12317,7 +12347,7 @@
|
|||
if(get.attitude(player,current)>0){
|
||||
var es=target.getCards('e');
|
||||
for(var i=0;i<es.length;i++){
|
||||
if(!current.getEquip(get.subtype(es[i]))) return true;
|
||||
if(current.isEmpty(get.subtype(es[i]))) return true;
|
||||
}
|
||||
}
|
||||
})){
|
||||
|
@ -12330,7 +12360,7 @@
|
|||
var es=ui.selected.targets[0].getCards('e');
|
||||
var i;
|
||||
for(i=0;i<es.length;i++){
|
||||
if(!target.getEquip(get.subtype(es[i]))){
|
||||
if(target.isEmpty(get.subtype(es[i]))){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -12371,10 +12401,10 @@
|
|||
},targets[0]).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
|
||||
var targets1=_status.event.targets1;
|
||||
if(get.position(button.link)=='j'){
|
||||
return !targets1.hasJudge(button.link);
|
||||
return !targets1.storage._disableJudge&&!targets1.hasJudge(button.link);
|
||||
}
|
||||
else{
|
||||
return !targets1.countCards('e',{subtype:get.subtype(button.link)});
|
||||
return targets1.isEmpty(get.subtype(button.link));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -14135,6 +14165,89 @@
|
|||
},
|
||||
},
|
||||
player:{
|
||||
//新函数
|
||||
canCompare:function(target){
|
||||
if(this==target) return false;
|
||||
if(!this.countCards('h')||!target.countCards('h')) return false;
|
||||
if(this.hasSkillTag('noCompareSource')||target.hasSkillTag('noCompareTarget')) return false;
|
||||
return true;
|
||||
},
|
||||
disableEquip:function(pos){
|
||||
if(typeof pos=='number') pos='equip'+pos;
|
||||
var next=game.createEvent('disableEquip');
|
||||
next.player=this;
|
||||
next.pos=pos;
|
||||
next.source=_status.event.player;
|
||||
next.setContent('disableEquip');
|
||||
return next;
|
||||
},
|
||||
$disableEquip:function(skill){
|
||||
game.broadcast(function(player,skill){
|
||||
player.$disableEquip(skill);
|
||||
},this,skill);
|
||||
var pos={equip1:'武器栏',equip2:'防具栏',equip3:'+1马栏',equip4:'-1马栏',equip5:'宝物栏'}[skill];
|
||||
var card=game.createCard('feichu_'+skill,pos,'');
|
||||
card.fix();
|
||||
card.style.transform='';
|
||||
card.classList.remove('drawinghidden');
|
||||
card.classList.add('feichu');
|
||||
delete card._transform;
|
||||
var player=this;
|
||||
var equipNum=get.equipNum(card);
|
||||
var equipped=false;
|
||||
for(var i=0;i<player.node.equips.childNodes.length;i++){
|
||||
if(get.equipNum(player.node.equips.childNodes[i])>=equipNum){
|
||||
player.node.equips.insertBefore(card,player.node.equips.childNodes[i]);
|
||||
equipped=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!equipped){
|
||||
player.node.equips.appendChild(card);
|
||||
if(_status.discarded){
|
||||
_status.discarded.remove(card);
|
||||
}
|
||||
}
|
||||
return player;
|
||||
},
|
||||
enableEquip:function(pos){
|
||||
if(typeof pos=='number') pos='equip'+pos;
|
||||
var next=game.createEvent('enableEquip');
|
||||
next.player=this;
|
||||
next.pos=pos;
|
||||
next.source=_status.event.player;
|
||||
next.setContent('enableEquip');
|
||||
return next;
|
||||
},
|
||||
$enableEquip:function(skill){
|
||||
game.broadcast(function(player,skill){
|
||||
player.$enableEquip(skill);
|
||||
},this,skill);
|
||||
var player=this;
|
||||
for(var i=0;i<player.node.equips.childNodes.length;i++){
|
||||
if(player.node.equips.childNodes[i].name=='feichu_'+skill){
|
||||
player.node.equips.removeChild(player.node.equips.childNodes[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return player;
|
||||
},
|
||||
isDisabled:function(arg){
|
||||
if(typeof arg=='number') arg='equip'+arg;
|
||||
if(this.storage.disableEquip&&this.storage.disableEquip.contains(arg)) return true;
|
||||
return false;
|
||||
},
|
||||
isEmpty:function(num){
|
||||
return !this.isDisabled(num)&&!this.getEquip(num);
|
||||
},
|
||||
disableJudge:function(){
|
||||
var next=game.createEvent('disableJudge');
|
||||
next.player=this;
|
||||
next.source=_status.event.player;
|
||||
next.setContent('disableJudge');
|
||||
return next;
|
||||
},
|
||||
//原有函数
|
||||
init:function(character,character2,skill){
|
||||
if(typeof character=='string'&&!lib.character[character]){
|
||||
lib.character[character]=get.character(character);
|
||||
|
@ -15101,7 +15214,7 @@
|
|||
}
|
||||
else if(arg1[i]=='e'){
|
||||
for(j=0;j<this.node.equips.childElementCount;j++){
|
||||
if(!this.node.equips.childNodes[j].classList.contains('removing')){
|
||||
if(!this.node.equips.childNodes[j].classList.contains('removing')&&!this.node.equips.childNodes[j].classList.contains('feichu')){
|
||||
cards.push(this.node.equips.childNodes[j]);
|
||||
}
|
||||
}
|
||||
|
@ -16315,6 +16428,9 @@
|
|||
else if(arguments[i]=='visible'){
|
||||
next.visible=true;
|
||||
}
|
||||
else if(arguments[i]=='visibleMove'){
|
||||
next.visibleMove=true;
|
||||
}
|
||||
else if(typeof arguments[i]=='function'){
|
||||
if(next.ai) next.filterButton=arguments[i];
|
||||
else next.ai=arguments[i];
|
||||
|
@ -16394,7 +16510,7 @@
|
|||
var att2=get.attitude(player,current2);
|
||||
if(att2<=0) return false;
|
||||
}
|
||||
return current!=current2&&!current2.isMin()&&!current2.getEquip(get.subtype(es[i]));
|
||||
return current!=current2&&!current2.isMin()&¤t2.isEmpty(get.subtype(es[i]));
|
||||
})){
|
||||
return true;
|
||||
}
|
||||
|
@ -16408,7 +16524,7 @@
|
|||
var att2=get.attitude(player,current2);
|
||||
if(att2>0) return false;
|
||||
}
|
||||
return current!=current2&&!current2.hasJudge(js[i]);
|
||||
return current!=current2&&!current2.storage._disableJudge&&!current2.hasJudge(js[i]);
|
||||
})){
|
||||
return true;
|
||||
}
|
||||
|
@ -16828,6 +16944,9 @@
|
|||
else if(arguments[i]==='log'){
|
||||
next.log=true;
|
||||
}
|
||||
else if(arguments[i]=='fromStorage'){
|
||||
next.fromStorage=true;
|
||||
}
|
||||
else if(typeof arguments[i]=='string'){
|
||||
next.animate=arguments[i];
|
||||
}
|
||||
|
@ -16882,6 +17001,9 @@
|
|||
else if(get.objtype(arguments[i])=='div'){
|
||||
next.position=arguments[i];
|
||||
}
|
||||
else if(arguments[i]=='toStorage'){
|
||||
next.toStorage=true;
|
||||
}
|
||||
}
|
||||
if(next.cards){
|
||||
var hej=this.getCards('hej');
|
||||
|
@ -20127,6 +20249,11 @@
|
|||
}
|
||||
},
|
||||
$equip:function(card){
|
||||
if(this.storage.disableEquip!=undefined&&this.storage.disableEquip.contains(get.subtype(card))){
|
||||
this.gain(card,'gain2');
|
||||
game.log(this,'装备失败');
|
||||
}
|
||||
else{
|
||||
game.broadcast(function(player,card){
|
||||
player.$equip(card);
|
||||
},this,card);
|
||||
|
@ -20157,6 +20284,7 @@
|
|||
}
|
||||
}
|
||||
return player;
|
||||
};
|
||||
},
|
||||
$gain:function(card,log,init){
|
||||
if(init!==false){
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
window.noname_update={
|
||||
version:'1.9.86.1',
|
||||
update:'1.9.85.1',
|
||||
version:'1.9.87',
|
||||
update:'1.9.86.1',
|
||||
changeLog:[
|
||||
'雷包武将(by 极光)',
|
||||
'旧张梁,黄巾雷使',
|
||||
'修复BUG',
|
||||
//'阴包武将(by 极光)',
|
||||
'新手杀字体(方正隶变体)'
|
||||
],
|
||||
files:[
|
||||
'card/sp.js',
|
||||
//'character/diy.js',
|
||||
'character/yxs.js',
|
||||
/*'character/extra.js',
|
||||
'character/old.js',*/
|
||||
//'character/yxs.js',
|
||||
'character/extra.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
/*'character/shenhua.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/standard.js',
|
||||
'character/xinghuoliaoyuan.js',
|
||||
'character/yijiang.js',*/
|
||||
'character/yijiang.js',
|
||||
'game/asset.js',
|
||||
//'game/config.js',
|
||||
//'game/game.js',
|
||||
'game/game.js',
|
||||
'game/package.js'
|
||||
]
|
||||
};
|
||||
|
|
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 193 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 232 KiB |
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 127 KiB |
After Width: | Height: | Size: 214 KiB |
After Width: | Height: | Size: 162 KiB |