This commit is contained in:
libccy 2017-05-16 01:44:43 +08:00
parent 35e4930aa4
commit 0506f7fdfa
10 changed files with 151 additions and 67 deletions

View File

@ -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:'终末之战',

View File

@ -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:'玉蝉',

View File

@ -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:'揽权',

View File

@ -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:'奉献',

View File

@ -56,6 +56,7 @@ window.noname_character_rank={
'swd_shuwaner',
],
a:[
'gw_gaier',
'pal_mingxiu',
'pal_yueqi',
'pal_luozhaoyan',

View File

@ -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:{

View File

@ -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']],
},

View File

@ -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();

View File

@ -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