out
This commit is contained in:
parent
35e4930aa4
commit
0506f7fdfa
|
@ -304,7 +304,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.damage();
|
||||
target.draw(false);
|
||||
target.$draw();
|
||||
target.turnOver();
|
||||
target.out();
|
||||
event.redo();
|
||||
}
|
||||
'step 2'
|
||||
|
@ -397,7 +397,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
var rank=get.rank(current,true);
|
||||
if(current.maxHp>=3){
|
||||
if(current.hp<=1){
|
||||
return att*2;
|
||||
return att*3;
|
||||
}
|
||||
else if(current.hp==2){
|
||||
if(att>0){
|
||||
|
@ -412,7 +412,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(att>0){
|
||||
return att/10;
|
||||
}
|
||||
return -att;
|
||||
return -att/5;
|
||||
}
|
||||
else if(rank<=4){
|
||||
if(att<0){
|
||||
|
@ -852,7 +852,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
list.push(get.cardPile('sha','cardPile'));
|
||||
}
|
||||
if(list.length){
|
||||
player.gain(list,'gain2');
|
||||
player.gain(list,'gain2','log');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -1025,7 +1025,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.draw();
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:6,
|
||||
useful:[3,1],
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -1406,7 +1406,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
gw_leizhoushu:'雷咒术',
|
||||
gw_leizhoushu_info:'获得技能雷咒术(在每个准备阶段令全场牌数最多的所有其他角色各随机弃置一张牌,重复获得时效果叠加),然后结束出牌阶段',
|
||||
gw_aerdeyin:'阿尔德印',
|
||||
gw_aerdeyin_info:'对相邻的角色造成一点伤害,目标摸一张牌并翻面,然后结束出牌阶段',
|
||||
gw_aerdeyin_info:'对相邻的角色造成一点伤害,目标摸一张牌并移出游戏一轮,然后结束出牌阶段',
|
||||
gw_xinsheng:'新生',
|
||||
gw_xinsheng_info:'随机观看12张武将牌,选择一张替代一名角色的武将牌,然后结束出牌阶段',
|
||||
gw_zhongmozhizhan:'终末之战',
|
||||
|
|
|
@ -4745,7 +4745,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
'轩辕剑':'<ul><li>零件、祭器牌可用于煅造装备,煅造得到强化装备,并可装备给距离1以内的角色<li>'+
|
||||
'煅造装备时失去牌不触发技能<li>'+
|
||||
'进行洗牌时强化装备将从弃牌堆中消失,不进入牌堆<li>'+
|
||||
'专属、特殊装备无法被强化'
|
||||
'专属、特殊装备无法被强化<li>'+
|
||||
'护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限'
|
||||
},
|
||||
translate:{
|
||||
g_yuchan_equip:'玉蝉',
|
||||
|
|
|
@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
// gw_fuertaisite:['male','qun',3,[]],
|
||||
// gw_hengsaite:['male','qun',3,[]],
|
||||
gw_fulisi:['male','qun',3,['lanquan']],
|
||||
// gw_gaier:['male','shu',3,['hunmo']],
|
||||
gw_gaier:['male','qun',3,['hunmo']],
|
||||
|
||||
gw_jieluote:['male','qun',6,['fayin']],
|
||||
gw_yenaifa:['female','qun',3,['xuezhou']],
|
||||
|
@ -54,6 +54,71 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gw_yioufeisi:'国王还是乞丐,两者有何区别,人类少一个算一个',
|
||||
},
|
||||
skill:{
|
||||
hunmo:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return lib.skill.hunmo.filterTarget(null,player,current);
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.countCards('h')==2) return false;
|
||||
if(target!=player){
|
||||
return !target.hasSkill('hunmo2');
|
||||
}
|
||||
else{
|
||||
return player.storage.hunmo2>=player.storage.hunmo1;
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
var nh=target.countCards('h');
|
||||
if(nh<2){
|
||||
target.draw();
|
||||
}
|
||||
else if(nh>2){
|
||||
target.chooseToDiscard('h',true);
|
||||
}
|
||||
if(target!=player){
|
||||
target.addTempSkill('hunmo2','phaseAfter');
|
||||
player.storage.hunmo2++;
|
||||
}
|
||||
else{
|
||||
player.storage.hunmo1++;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:11,
|
||||
threaten:1.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var nh=target.countCards('h');
|
||||
if(nh<2) return 1;
|
||||
if(nh>2){
|
||||
if(target.hasSkillTag('noh')) return 0;
|
||||
if(target.hasSkillTag('nodiscard')) return 0;
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
group:'hunmo_count',
|
||||
subSkill:{
|
||||
count:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
content:function(){
|
||||
player.storage.hunmo1=0;
|
||||
player.storage.hunmo2=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
hunmo2:{},
|
||||
hunmo3:{},
|
||||
hunmo4:{},
|
||||
shuijian:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
direct:true,
|
||||
|
@ -551,6 +616,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('fengjian');
|
||||
if(!event.isMine()){
|
||||
game.delay();
|
||||
}
|
||||
player.useCard({name:'sha',nature:'thunder'},result.targets,false);
|
||||
player.addTempSkill('qianxing',{player:'phaseBegin'});
|
||||
}
|
||||
|
@ -1030,7 +1098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gwbaquan:'霸权',
|
||||
gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你获得的牌且该角色体力值不小于你,你对其造成一点伤害',
|
||||
hunmo:'魂墨',
|
||||
hunmo_info:'准备阶段和结束阶段,你可以令任意名角色的手牌数等于其当前体力值(最多为3)',
|
||||
hunmo_info:'出牌阶段,你可以令一名手牌数少于2的角色摸一张牌,或令一名手牌数大于2的角色弃置一张手牌,每阶段对除你之外的每名角色最多发动一次,对你最多发动X+1次,X为你本回合对其他角色发动魂墨的次数',
|
||||
huihun:'回魂',
|
||||
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌',
|
||||
lanquan:'揽权',
|
||||
|
|
|
@ -5351,13 +5351,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return player.hujia?true:false;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target;
|
||||
return player!=target&&get.distance(player,target,'attack')<=1;
|
||||
},
|
||||
selectTarget:function(){
|
||||
return [1,_status.event.player.hujia];
|
||||
},
|
||||
contentBefore:function(){
|
||||
player.changeHujia(-player.hujia);
|
||||
player.changeHujia(-targets.length);
|
||||
},
|
||||
content:function(){
|
||||
target.damage();
|
||||
|
@ -7902,7 +7902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhongjia:'战甲',
|
||||
zhongjia_info:'锁定技,每当你受到一次伤害,你获得一点护甲;当你的体力值大于手牌数时,你的护甲不为你抵挡伤害',
|
||||
dunji:'盾击',
|
||||
dunji_info:'出牌阶段限一次,你可以失去你的所有护甲,并对等量的其他角色各造成一点伤害',
|
||||
dunji_info:'出牌阶段限一次,你可以对攻击范围内的至多X名其他角色各造成一点伤害,并失去等量的护甲,X为你的护甲数',
|
||||
qiaodong:'巧动',
|
||||
qiaodong_info:'你可以将一张装备牌当作闪使用或打出',
|
||||
fengxian:'奉献',
|
||||
|
|
|
@ -56,6 +56,7 @@ window.noname_character_rank={
|
|||
'swd_shuwaner',
|
||||
],
|
||||
a:[
|
||||
'gw_gaier',
|
||||
'pal_mingxiu',
|
||||
'pal_yueqi',
|
||||
'pal_luozhaoyan',
|
||||
|
|
|
@ -1098,7 +1098,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
threaten:function(player,target){
|
||||
if(target.countCards('h')==0) return 2;
|
||||
return 0.5;
|
||||
}
|
||||
},
|
||||
nodiscard:true,
|
||||
nolose:true
|
||||
}
|
||||
},
|
||||
zaoxian:{
|
||||
|
|
|
@ -104,7 +104,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
miheng:['male','qun',3,['kuangcai','shejian']],
|
||||
taoqian:['male','qun',3,['zhaohuo','yixiang','yirang']],
|
||||
|
||||
wangyun:['male','qun',4,['wylianji','moucheng','jingong']],
|
||||
// wangyun:['male','qun',4,['wylianji','moucheng','jingong']],
|
||||
// liuqi:['male','qun',3,['wenji','tunjiang']],
|
||||
// tangzi:['male','wu',4,['xingzhao']],
|
||||
},
|
||||
|
|
|
@ -128,13 +128,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
group:'linghuo_mark',
|
||||
subSkill:{
|
||||
mark:{
|
||||
trigger:{global:['phaseBegin','phaseCancelled']},
|
||||
trigger:{global:'roundStart'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
return _status.roundStart==event.player;
|
||||
},
|
||||
content:function(){
|
||||
if(2-(game.roundNumber-player.storage.linghuo)>0){
|
||||
player.updateMarks();
|
||||
|
@ -275,13 +272,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
subSkill:{
|
||||
mark:{
|
||||
trigger:{global:['phaseBegin','phaseCancelled']},
|
||||
trigger:{global:'roundStart'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
return _status.roundStart==event.player;
|
||||
},
|
||||
content:function(){
|
||||
if(3-(game.roundNumber-player.storage.guijin)>0){
|
||||
player.updateMarks();
|
||||
|
@ -357,13 +351,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
group:'chengxin_mark',
|
||||
subSkill:{
|
||||
mark:{
|
||||
trigger:{global:['phaseBegin','phaseCancelled']},
|
||||
trigger:{global:'roundStart'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
return _status.roundStart==event.player;
|
||||
},
|
||||
content:function(){
|
||||
if(4-(game.roundNumber-player.storage.chengxin)>0){
|
||||
player.updateMarks();
|
||||
|
|
103
game/game.js
103
game/game.js
|
@ -8819,7 +8819,7 @@
|
|||
if(info.filter&&!info.filter(trigger,player,event.triggername)){
|
||||
event.finish();
|
||||
}
|
||||
else if(event._trigger.notrigger.contains(player)&&!lib.skill.global.contains(event.skill)){
|
||||
else if(event._trigger._notrigger.contains(player)&&!lib.skill.global.contains(event.skill)){
|
||||
event.finish();
|
||||
}
|
||||
else if(typeof info.usable=='number'&&player.hasSkill('counttrigger')&&
|
||||
|
@ -9420,17 +9420,17 @@
|
|||
else if(ai.basic.chooseCard(event.ai1)){
|
||||
if(ai.basic.chooseTarget(event.ai2)){
|
||||
ui.click.ok();
|
||||
event.aiexcludeclear=true;
|
||||
event._aiexcludeclear=true;
|
||||
}
|
||||
else{
|
||||
if(!event.norestore){
|
||||
if(event.skill){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event.aiexclude.add(skill);
|
||||
event._aiexclude.add(skill);
|
||||
var info=get.info(skill);
|
||||
if(info.sourceSkill){
|
||||
event.aiexclude.add(info.sourceSkill);
|
||||
event._aiexclude.add(info.sourceSkill);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -9448,10 +9448,10 @@
|
|||
else if(event.skill&&!event.norestore){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event.aiexclude.add(skill);
|
||||
event._aiexclude.add(skill);
|
||||
var info=get.info(skill);
|
||||
if(info.sourceSkill){
|
||||
event.aiexclude.add(info.sourceSkill);
|
||||
event._aiexclude.add(info.sourceSkill);
|
||||
}
|
||||
event.redo();
|
||||
game.resume();
|
||||
|
@ -9505,15 +9505,15 @@
|
|||
}
|
||||
else{
|
||||
ui.control.animate('nozoom',100);
|
||||
event.aiexclude.add(event.buttoned);
|
||||
event._aiexclude.add(event.buttoned);
|
||||
}
|
||||
event.goto(0);
|
||||
delete event.buttoned;
|
||||
}
|
||||
"step 4"
|
||||
if(event.aiexcludeclear){
|
||||
delete event.aiexcludeclear;
|
||||
event.aiexclude.length=0;
|
||||
if(event._aiexcludeclear){
|
||||
delete event._aiexcludeclear;
|
||||
event._aiexclude.length=0;
|
||||
}
|
||||
delete _status.noclearcountdown;
|
||||
if(event.skillDialog&&get.objtype(event.skillDialog)=='div'){
|
||||
|
@ -9565,7 +9565,7 @@
|
|||
else if(event.skill){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event.aiexclude.add(skill);
|
||||
event._aiexclude.add(skill);
|
||||
event.redo();
|
||||
game.resume();
|
||||
}
|
||||
|
@ -9673,7 +9673,7 @@
|
|||
else if(event.skill){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event.aiexclude.add(skill);
|
||||
event._aiexclude.add(skill);
|
||||
event.redo();
|
||||
game.resume();
|
||||
}
|
||||
|
@ -10193,7 +10193,7 @@
|
|||
else if(event.skill){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event.aiexclude.add(skill);
|
||||
event._aiexclude.add(skill);
|
||||
event.redo();
|
||||
game.resume();
|
||||
}
|
||||
|
@ -10282,7 +10282,7 @@
|
|||
if(ai.basic.chooseCard(event.ai1)){
|
||||
if(ai.basic.chooseTarget(event.ai2)){
|
||||
ui.click.ok();
|
||||
_status.event.aiexclude.length=0;
|
||||
_status.event._aiexclude.length=0;
|
||||
}
|
||||
else{
|
||||
get.card(true).aiexclude();
|
||||
|
@ -15041,10 +15041,16 @@
|
|||
},
|
||||
out:function(skill){
|
||||
if(typeof skill=='number'){
|
||||
this.outCount++;
|
||||
this.outCount+=skill;
|
||||
}
|
||||
else if(typeof skill=='string'){
|
||||
this.outSkill=skill;
|
||||
if(!this.outSkills){
|
||||
this.outSkills=[];
|
||||
}
|
||||
this.outSkills.add(skill);
|
||||
}
|
||||
else{
|
||||
this.outCount++;
|
||||
}
|
||||
if(!this.classList.contains('out')){
|
||||
this.classList.add('out');
|
||||
|
@ -15057,21 +15063,23 @@
|
|||
in:function(skill){
|
||||
if(this.isOut()){
|
||||
if(typeof skill=='string'){
|
||||
if(this.outSkill==skill){
|
||||
delete this.outSkill;
|
||||
if(this.outSkills){
|
||||
this.outSkills.remove(skill);
|
||||
if(!this.outSkills.length){
|
||||
delete this.outSkills;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(skill===true){
|
||||
delete this.outSkill;
|
||||
this.outCount=0;
|
||||
}
|
||||
else{
|
||||
if(typeof skill!='number'){
|
||||
skill=1;
|
||||
}
|
||||
else if(typeof skill=='number'){
|
||||
this.outCount-=skill;
|
||||
}
|
||||
if(this.outCount<=0&&!this.outSkill){
|
||||
else{
|
||||
if(skill===true){
|
||||
delete this.outSkills;
|
||||
}
|
||||
this.outCount=0;
|
||||
}
|
||||
if(this.outCount<=0&&!this.outSkills){
|
||||
this.outCount=0;
|
||||
this.classList.remove('out');
|
||||
game.log(this,'进入游戏');
|
||||
|
@ -18154,7 +18162,7 @@
|
|||
}
|
||||
},
|
||||
aiexclude:function(){
|
||||
_status.event.aiexclude.add(this);
|
||||
_status.event._aiexclude.add(this);
|
||||
},
|
||||
getSource:function(name){
|
||||
if(this.name==name) return true;
|
||||
|
@ -18369,7 +18377,7 @@
|
|||
position:this.position,
|
||||
forced:this.forced,
|
||||
fakeforce:this.fakeforce,
|
||||
aiexclude:this.aiexclude,
|
||||
_aiexclude:this._aiexclude,
|
||||
complexSelect:this.complexSelect,
|
||||
complexCard:this.complexCard,
|
||||
complexTarget:this.complexTarget,
|
||||
|
@ -18382,7 +18390,7 @@
|
|||
if(skill){
|
||||
var info=get.info(skill);
|
||||
this.skill=skill;
|
||||
this.aiexclude=[];
|
||||
this._aiexclude=[];
|
||||
if(info.viewAs){
|
||||
if(info.filterButton!=undefined) this.filterButton=get.filter(info.filterButton);
|
||||
if(info.selectButton!=undefined) this.selectButton=info.selectButton;
|
||||
|
@ -18430,7 +18438,7 @@
|
|||
this.position=this._backup.position;
|
||||
this.forced=this._backup.forced;
|
||||
this.fakeforce=this._backup.fakeforce;
|
||||
this.aiexclude=this._backup.aiexclude;
|
||||
this._aiexclude=this._backup._aiexclude;
|
||||
this.complexSelect=this._backup.complexSelect;
|
||||
this.complexCard=this._backup.complexCard;
|
||||
this.complexTarget=this._backup.complexTarget;
|
||||
|
@ -18603,7 +18611,7 @@
|
|||
this._triggered=5;
|
||||
}
|
||||
else if(player){
|
||||
this.notrigger.add(player);
|
||||
this._notrigger.add(player);
|
||||
for(var i=0;i<this.next.length;i++){
|
||||
if(this.next[i].player==player) this.next.splice(i--,1);
|
||||
}
|
||||
|
@ -19031,7 +19039,7 @@
|
|||
},
|
||||
cardAiIncluded:function(card){
|
||||
if(_status.event.isMine()) return true;
|
||||
return (_status.event.aiexclude.contains(card)==false);
|
||||
return (_status.event._aiexclude.contains(card)==false);
|
||||
},
|
||||
filterCard:function(card,player,event){
|
||||
return (lib.filter.cardEnabled(card,player,event)&&
|
||||
|
@ -19368,9 +19376,9 @@
|
|||
priority:20,
|
||||
popup:false,
|
||||
content:function(){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
game.players[i].in();
|
||||
}
|
||||
// for(var i=0;i<game.players.length;i++){
|
||||
// game.players[i].in();
|
||||
// }
|
||||
if(player.isTurnedOver()){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
|
@ -19380,8 +19388,18 @@
|
|||
else{
|
||||
player.phaseSkipped=false;
|
||||
}
|
||||
if(player==_status.roundStart&&!trigger.skill){
|
||||
if((player==_status.roundStart||_status.roundSkipped)&&!trigger.skill){
|
||||
delete _status.roundSkipped;
|
||||
game.roundNumber++;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()&&game.players[i].outCount>0){
|
||||
game.players[i].outCount--;
|
||||
if(game.players[i].outCount==0&&!game.players[i].outSkills){
|
||||
game.players[i].in();
|
||||
}
|
||||
}
|
||||
}
|
||||
event.trigger('roundStart');
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -23422,12 +23440,12 @@
|
|||
step:0,
|
||||
finished:false,
|
||||
next:[],
|
||||
aiexclude:[],
|
||||
notrigger:[],
|
||||
custom:{
|
||||
add:{},
|
||||
replace:{}
|
||||
},
|
||||
_aiexclude:[],
|
||||
_notrigger:[],
|
||||
_result:{},
|
||||
_set:[],
|
||||
}
|
||||
|
@ -24490,6 +24508,9 @@
|
|||
event.finish();
|
||||
}
|
||||
else if(player&&player.isOut()&&event.name!='phaseLoop'&&!event.includeOut){
|
||||
if(event.name=='phase'&&player==_status.roundStart&&!event.skill){
|
||||
_status.roundSkipped=true;
|
||||
}
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
|
@ -24795,7 +24816,7 @@
|
|||
if(event._skillChoice){
|
||||
skills2=event._skillChoice;
|
||||
for(var i=0;i<skills2.length;i++){
|
||||
if(event.isMine()||!event.aiexclude.contains(skills2[i])){
|
||||
if(event.isMine()||!event._aiexclude.contains(skills2[i])){
|
||||
skills.push(skills2[i]);
|
||||
}
|
||||
}
|
||||
|
@ -24826,7 +24847,7 @@
|
|||
if(info.chooseButton&&_status.event.noButton) enable=false;
|
||||
}
|
||||
if(enable){
|
||||
if(event.isMine()||!event.aiexclude.contains(skills2[i])){
|
||||
if(event.isMine()||!event._aiexclude.contains(skills2[i])){
|
||||
skills.add(skills2[i]);
|
||||
}
|
||||
event._skillChoice.add(skills2[i]);
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 59 KiB |
Loading…
Reference in New Issue