From 11adb1be2b8a010fa5bbc7d5ea91fff29435294c Mon Sep 17 00:00:00 2001 From: Miao_Spring <539943419@qq.com> Date: Tue, 10 Oct 2023 00:18:36 +0800 Subject: [PATCH] fix some bugs --- extension.js | 11693 +++++++++++++++++++++++++------------------------ 1 file changed, 5887 insertions(+), 5806 deletions(-) diff --git a/extension.js b/extension.js index 3891764..620179d 100644 --- a/extension.js +++ b/extension.js @@ -1,5 +1,8 @@ -game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵喵喵喵",content:function (config, pack) { - /*---------------------------------------------------------------以下为杂项---------------------------------------------------------------*/ +game.import("extension", function (lib, game, ui, get, ai, _status) { + return { + name: "喵喵喵喵", + content: function (config, pack) { + /*---------------------------------------------------------------以下为杂项---------------------------------------------------------------*/ get.is.xuemai = function (skill) { var info = lib.skill[skill]; if (typeof info.xuemai == "function") return info.xuemai(skill); @@ -65,12 +68,12 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 }, player); }; - //获得限伤 - lib.element.player.addDamageLimiter = function() { - if(!this.storage._damageLimiter_Miao){ - this.storage._damageLimiter_Miao = [] - } - var id = _status.event.name, + //获得限伤 + lib.element.player.addDamageLimiter = function () { + if (!this.storage._damageLimiter_Miao) { + this.storage._damageLimiter_Miao = []; + } + var id = _status.event.name, num = 1, source = _status.event.player, nolog = false; @@ -85,21 +88,21 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 id = arguments[i]; } } - - this.removeDamageLimiter(id) - var Limiter = {} - Limiter.id = id - Limiter.num = num - Limiter.source = source - this.storage._damageLimiter_Miao.push(Limiter); - this.markSkill("_DamageLimiter"); - }; - lib.element.player.removeDamageLimiter = function() { - if(!this.storage._damageLimiter_Miao){ - this.storage._damageLimiter_Miao = [] - } - var id = _status.event.name, + this.removeDamageLimiter(id); + var Limiter = {}; + Limiter.id = id; + Limiter.num = num; + Limiter.source = source; + this.storage._damageLimiter_Miao.push(Limiter); + this.markSkill("_DamageLimiter"); + }; + + lib.element.player.removeDamageLimiter = function () { + if (!this.storage._damageLimiter_Miao) { + this.storage._damageLimiter_Miao = []; + } + var id = _status.event.name, nolog = false; for (var i = 0; i < arguments.length; i++) { if (arguments[i] == "nolog") { @@ -108,62 +111,62 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 id = arguments[i]; } } - for(var i = 0;i < this.storage._damageLimiter_Miao.length;i+=1){ - if(this.storage._damageLimiter_Miao[i].id == id){ - this.storage._damageLimiter_Miao.splice(i,1) - } - } - if(this.storage._damageLimiter_Miao.length == 0)this.unmarkSkill("_DamageLimiter"); - }; + for (var i = 0; i < this.storage._damageLimiter_Miao.length; i += 1) { + if (this.storage._damageLimiter_Miao[i].id == id) { + this.storage._damageLimiter_Miao.splice(i, 1); + } + } + if (this.storage._damageLimiter_Miao.length == 0) this.unmarkSkill("_DamageLimiter"); + }; - lib.skill["_DamageLimiter"] = { - trigger:{ - player:["damageBegin3"], - }, - filter:function (event, player) { - if(!player.storage._damageLimiter_Miao) return false; - var min = Infinity - for(var i = 0;i < player.storage._damageLimiter_Miao.length;++i){ - limiter = player.storage._damageLimiter_Miao[i] - if( player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num - } - return event.num > min; - }, - priority:-705831, - forced:true, - charlotte:true, - unique:true, - mark:true, - marktext:'限伤', - intro:{ - name:"最大伤害限制", - mark:function (dialog, storage, player) { - var min = Infinity - for(var i = 0;i < player.storage._damageLimiter_Miao.length;++i){ - limiter = player.storage._damageLimiter_Miao[i] - if( player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num - } - return "你受到的所有伤害不超过" + min + "点"; - }, - }, - content:function () { - var min = Infinity - for(var i = 0;i < player.storage._damageLimiter_Miao.length;++i){ - limiter = player.storage._damageLimiter_Miao[i] - if( player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num - } - if(trigger.num > min)trigger.num = min - game.log(player,'触发了限伤') - _status.event.trigger('damageLimit') - }, - }; + lib.skill["_DamageLimiter"] = { + trigger: { + player: ["damageBegin3"] + }, + filter: function (event, player) { + if (!player.storage._damageLimiter_Miao) return false; + var min = Infinity; + for (var i = 0; i < player.storage._damageLimiter_Miao.length; ++i) { + limiter = player.storage._damageLimiter_Miao[i]; + if (player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num; + } + return event.num > min; + }, + priority: -705831, + forced: true, + charlotte: true, + unique: true, + mark: true, + marktext: "限伤", + intro: { + name: "最大伤害限制", + mark: function (dialog, storage, player) { + var min = Infinity; + for (var i = 0; i < player.storage._damageLimiter_Miao.length; ++i) { + limiter = player.storage._damageLimiter_Miao[i]; + if (player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num; + } + return "你受到的所有伤害不超过" + min + "点"; + } + }, + content: function () { + var min = Infinity; + for (var i = 0; i < player.storage._damageLimiter_Miao.length; ++i) { + limiter = player.storage._damageLimiter_Miao[i]; + if (player.storage._damageLimiter_Miao[i].num < min) min = player.storage._damageLimiter_Miao[i].num; + } + if (trigger.num > min) trigger.num = min; + game.log(player, "触发了限伤"); + _status.event.trigger("damageLimit"); + } + }; - //获得缓伤,即百分比减伤 - lib.element.player.addDamageMitigationer = function() { - if(!this.storage._damageMitigationer_Miao){ - this.storage._damageMitigationer_Miao = [] - } - var id = _status.event.name, + //获得缓伤,即百分比减伤 + lib.element.player.addDamageMitigationer = function () { + if (!this.storage._damageMitigationer_Miao) { + this.storage._damageMitigationer_Miao = []; + } + var id = _status.event.name, num = 1, source = _status.event.player, nolog = false; @@ -178,21 +181,21 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 id = arguments[i]; } } - - this.removeDamageMitigationer(id) - var Limiter = {} - Limiter.id = id - Limiter.num = num - Limiter.source = source - this.storage._damageMitigationer_Miao.push(Limiter); - this.markSkill("_DamageMitigationer"); - }; - lib.element.player.removeDamageMitigationer = function() { - if(!this.storage._damageMitigationer_Miao){ - this.storage._damageMitigationer_Miao = [] - } - var id = _status.event.name, + this.removeDamageMitigationer(id); + var Limiter = {}; + Limiter.id = id; + Limiter.num = num; + Limiter.source = source; + this.storage._damageMitigationer_Miao.push(Limiter); + this.markSkill("_DamageMitigationer"); + }; + + lib.element.player.removeDamageMitigationer = function () { + if (!this.storage._damageMitigationer_Miao) { + this.storage._damageMitigationer_Miao = []; + } + var id = _status.event.name, nolog = false; for (var i = 0; i < arguments.length; i++) { if (arguments[i] == "nolog") { @@ -201,220 +204,217 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 id = arguments[i]; } } - for(var i = 0;i < this.storage._damageMitigationer_Miao.length;i+=1){ - if(this.storage._damageMitigationer_Miao[i].id == id){ - this.storage._damageMitigationer_Miao.splice(i,1) - } - } - if(this.storage._damageMitigationer_Miao.length == 0)this.unmarkSkill("_DamageMitigationer"); - }; + for (var i = 0; i < this.storage._damageMitigationer_Miao.length; i += 1) { + if (this.storage._damageMitigationer_Miao[i].id == id) { + this.storage._damageMitigationer_Miao.splice(i, 1); + } + } + if (this.storage._damageMitigationer_Miao.length == 0) this.unmarkSkill("_DamageMitigationer"); + }; - lib.skill["_DamageMitigationer"] = { - trigger:{ - player:["damageBegin4"], - }, - filter:function (event, player) { - if(!player.hp_float){ - player.hp_float = 0//储存浮点位的hp - } - if(!player.storage._damageMitigationer_Miao || player.storage._damageMitigationer_Miao.length == 0) return false; - return true - }, - priority:-Infinity,//保证优先级最低 - forced:true, - charlotte:true, - unique:true, - mark:true, - marktext:'减伤', - intro:{ - name:"伤害减免", - mark:function (dialog, storage, player) { - var min = Infinity - for(var i = 0;i < player.storage._damageMitigationer_Miao.length;++i){ - limiter = player.storage._damageMitigationer_Miao[i] - if( player.storage._damageMitigationer_Miao[i].num < min) min = player.storage._damageMitigationer_Miao[i].num - } - return "你受到的所有伤害减少" + (100-min*100).toString() + "%"; - }, - }, - content:function () { - 'step 0' - var min = 1 - for(var i = 0;i < player.storage._damageMitigationer_Miao.length;++i){ - limiter = player.storage._damageMitigationer_Miao[i] - if( player.storage._damageMitigationer_Miao[i].num < min) min = player.storage._damageMitigationer_Miao[i].num - } - n1 = trigger.num - n2 = parseFloat((n1 * min + 0.00001).toFixed(4)) - // nint = parseInt(n2) - // game.log(n2,nint,n2-nint) - // nfloathp = parseFloat(n2 - nint) - // player.hp_float = player.hp_float + parseFloat(nfloathp) - // trigger.num = parseInt(n2) - // if(parseFloat(nfloathp) != 0){ - // trigger.num += 1 - // } - // game.log(player.hp_float >= 1) - // flag=false - // if(player.hp_float == 0 && n2 > 0){ - // // if(player.hujia > 0){ - // // player.changeHujia(-1) - // // } - // // else{ - // // player.hp-=1 - // // } - // trigger.num += 1 + lib.skill["_DamageMitigationer"] = { + trigger: { + player: ["damageBegin4"] + }, + filter: function (event, player) { + if (!player.hp_float) { + player.hp_float = 0; //储存浮点位的hp + } + if (!player.storage._damageMitigationer_Miao || player.storage._damageMitigationer_Miao.length == 0) return false; + return true; + }, + priority: -Infinity, //保证优先级最低 + forced: true, + charlotte: true, + unique: true, + mark: true, + marktext: "减伤", + intro: { + name: "伤害减免", + mark: function (dialog, storage, player) { + var min = Infinity; + for (var i = 0; i < player.storage._damageMitigationer_Miao.length; ++i) { + limiter = player.storage._damageMitigationer_Miao[i]; + if (player.storage._damageMitigationer_Miao[i].num < min) min = player.storage._damageMitigationer_Miao[i].num; + } + return "你受到的所有伤害减少" + (100 - min * 100).toString() + "%"; + } + }, + content: function () { + "step 0" + var min = 1; + for (var i = 0; i < player.storage._damageMitigationer_Miao.length; ++i) { + limiter = player.storage._damageMitigationer_Miao[i]; + if (player.storage._damageMitigationer_Miao[i].num < min) min = player.storage._damageMitigationer_Miao[i].num; + } + n1 = trigger.num; + n2 = parseFloat((n1 * min + 0.00001).toFixed(4)); + // nint = parseInt(n2) + // game.log(n2,nint,n2-nint) + // nfloathp = parseFloat(n2 - nint) + // player.hp_float = player.hp_float + parseFloat(nfloathp) + // trigger.num = parseInt(n2) + // if(parseFloat(nfloathp) != 0){ + // trigger.num += 1 + // } + // game.log(player.hp_float >= 1) + // flag=false + // if(player.hp_float == 0 && n2 > 0){ + // // if(player.hujia > 0){ + // // player.changeHujia(-1) + // // } + // // else{ + // // player.hp-=1 + // // } + // trigger.num += 1 - // } - player.hp_float -= n2 - // game.log(player.hp_float) - trigger.num = 0 - // if(flag){ - // trigger.num += 1 - // } - while(player.hp_float < 0){ - player.hp_float += 1 - trigger.num += 1 - } - // if(player.hp_float == 0){ - // // if(player.hujia > 0){ - // // player.changeHujia(1) - // // } - // // else{ - // // player.hp+=1 - // // } - // trigger.num -= 1 - // } - // game.log(player.hp_float,'sss',trigger.num) - game.log(player,"触发了减伤,实际受到" + n2 + "点伤害") - if(n2 < 1){ - if(player.hujia != 0){ - player.changeHujia(-trigger.num) - } - else player.hp -= trigger.num - if(trigger.source){ - player.$damage(trigger.source) - }else{ - player.$damage() - } - player.update() - trigger.num = 0 - } - _status.event.trigger('damageMitigation') - 'step 1' - if(player.hp <= 0 && player.hp_float <= 0){ - player.nodying = false - // game.log(player.hp,player.hp_float); - player.dying() - } - }, - }; - //濒死阶段0.xhp处理 - lib.skill["_DyingWithFloatHp"] = { - trigger:{ - player:["dying"], - }, - direct:true, - unique:true, - // forceunique:true, - filter:function (event, player) { - if(!player.hp_float){ - player.hp_float = 0//储存浮点位的hp - } - return player.hp == 0 && player.hp_float > 0; - }, - init:function (player) { - if(!player.hp_float){ - player.hp_float = 0//储存浮点位的hp - } - }, - content:function () { - // game.log(player.hp,player.hp_float) - trigger.cancel(); - for(var i = 0; i < _status.dying.length;++i){ - if(_status.dying[i] == player){ - _status.dying.splice(i,1) - } - } - // trigger.nodying = true - }, - } - //回满血0.xhp处理 - lib.skill["_RecoverWithFloatHp"] = { - trigger:{ - player:['recoverEnd'], - }, - direct:true, - unique:true, - forceunique:true, - filter:function (event, player) { - if(!player.hp_float){ - player.hp_float = 0//储存浮点位的hp - } - return player.hp == player.maxHp; - }, - init:function (player) { - if(!player.hp_float){ - player.hp_float = 0//储存浮点位的hp - } - }, - content:function () { - player.hp_float = 0 - }, - } + // } + player.hp_float -= n2; + // game.log(player.hp_float) + trigger.num = 0; + // if(flag){ + // trigger.num += 1 + // } + while (player.hp_float < 0) { + player.hp_float += 1; + trigger.num += 1; + } + // if(player.hp_float == 0){ + // // if(player.hujia > 0){ + // // player.changeHujia(1) + // // } + // // else{ + // // player.hp+=1 + // // } + // trigger.num -= 1 + // } + // game.log(player.hp_float,'sss',trigger.num) + game.log(player, "触发了减伤,实际受到" + n2 + "点伤害"); + if (n2 < 1) { + if (player.hujia != 0) { + player.changeHujia(-trigger.num); + } else player.hp -= trigger.num; + if (trigger.source) { + player.$damage(trigger.source); + } else { + player.$damage(); + } + player.update(); + trigger.num = 0; + } + _status.event.trigger("damageMitigation"); + "step 1" + if (player.hp <= 0 && player.hp_float <= 0) { + player.nodying = false; + // game.log(player.hp,player.hp_float); + player.dying(); + } + } + }; + //濒死阶段0.xhp处理 + lib.skill["_DyingWithFloatHp"] = { + trigger: { + player: ["dying"] + }, + direct: true, + unique: true, + // forceunique:true, + filter: function (event, player) { + if (!player.hp_float) { + player.hp_float = 0; //储存浮点位的hp + } + return player.hp == 0 && player.hp_float > 0; + }, + init: function (player) { + if (!player.hp_float) { + player.hp_float = 0; //储存浮点位的hp + } + }, + content: function () { + // game.log(player.hp,player.hp_float) + trigger.cancel(); + for (var i = 0; i < _status.dying.length; ++i) { + if (_status.dying[i] == player) { + _status.dying.splice(i, 1); + } + } + // trigger.nodying = true + } + }; + //回满血0.xhp处理 + lib.skill["_RecoverWithFloatHp"] = { + trigger: { + player: ["recoverEnd"] + }, + direct: true, + unique: true, + forceunique: true, + filter: function (event, player) { + if (!player.hp_float) { + player.hp_float = 0; //储存浮点位的hp + } + return player.hp == player.maxHp; + }, + init: function (player) { + if (!player.hp_float) { + player.hp_float = 0; //储存浮点位的hp + } + }, + content: function () { + player.hp_float = 0; + } + }; - lib.skill["zioy_lockHp"] = { - trigger:{ - player:['damageBegin','loseHpBegin'], - }, - direct:true, - unique:true, - forceunique:true, - filter:function (event, player) { - return true; - }, - mark:true, - marktext:'锁血', - intro:{ - name:'锁血', - }, - init:function (player) { - }, - content:function () { - trigger.cancel(); - }, - } + lib.skill["zioy_lockHp"] = { + trigger: { + player: ["damageBegin", "loseHpBegin"] + }, + direct: true, + unique: true, + forceunique: true, + filter: function (event, player) { + return true; + }, + mark: true, + marktext: "锁血", + intro: { + name: "锁血" + }, + init: function (player) {}, + content: function () { + trigger.cancel(); + } + }; - /*-----------------------------------------------------------以下部分为全局状态相关----------------------------------------------------------- */ - game.globalStatus = { - name: null, - /*全局状态名称,string or null*/ - timing_type: null, - /*全局状态计时类型,轮:'round'or回合:"phase"or null */ - locked_timing_type: null, - /*全局状态锁定计时类型,轮:'round'or回合:"phase"or null */ - source: null, - /*全局状态来源,player or null*/ - end: 0, - /*全局状态结束时间,int */ - locked_end: -1, - /*锁定结束时间,int */ - storage: { - remove_timing_locked: true - }, - /*存放全局状态需要的数据,object */ - isLocked: function () { - /*返回全局状态是否锁定 */ - if (this.locked_timing_type == "round") return this.locked_end > game.roundNumber; - else return this.locked_end > 0; - }, - translation: function () { - /*返回全局状态的中文字符名称 */ - return get.status(this).translation; - } - }; + game.globalStatus = { + name: null, + /*全局状态名称,string or null*/ + timing_type: null, + /*全局状态计时类型,轮:'round'or回合:"phase"or null */ + locked_timing_type: null, + /*全局状态锁定计时类型,轮:'round'or回合:"phase"or null */ + source: null, + /*全局状态来源,player or null*/ + end: 0, + /*全局状态结束时间,int */ + locked_end: -1, + /*锁定结束时间,int */ + storage: { + remove_timing_locked: true + }, + /*存放全局状态需要的数据,object */ + isLocked: function () { + /*返回全局状态是否锁定 */ + if (this.locked_timing_type == "round") return this.locked_end > game.roundNumber; + else return this.locked_end > 0; + }, + translation: function () { + /*返回全局状态的中文字符名称 */ + return get.status(this).translation; + } + }; game.changeGlobalStatus = function () { /*改变场上状态,example:game.changeGlobalStatus(5,3,"xiyu",ture,"phase") 表示强制转换为细雨天气5回合并锁定3回合,来源默认为event.player*/ @@ -869,7 +869,7 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 type: "environment", intro: "还没想出来。" }, - "huoshan": { + "huoshan": { translation: "风林火山", skill: "zioy_status_huoshan", type: "environment", @@ -923,9 +923,9 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 trigger: { source: "damageBegin1" }, - filter:function(event){ - return event.hasNature('fire'); - }, + filter: function (event) { + return event.hasNature("fire"); + }, priority: -5, content: function () { trigger.nature = null; @@ -940,9 +940,9 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 trigger: { source: "damageBegin1" }, - filter:function(event){ - return event.hasNature('fire'); - }, + filter: function (event) { + return event.hasNature("fire"); + }, priority: -5, content: function () { trigger.num += 1; @@ -1004,7 +1004,7 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 }, mod: {} }, - huoshan: { + huoshan: { trigger: { player: "recoverBegin" }, @@ -1019,10 +1019,10 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 init: function (player) {}, onremove: function (player) {}, content: function () { - trigger.num = parseInt(trigger.num/2); - }, + trigger.num = parseInt(trigger.num / 2); + }, mod: {}, - "_priority":685, + "_priority": 685 }, test: { sub: true, @@ -1226,7 +1226,7 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 var buff = [], num = Infinity, type = "round", - id = _status.event.name,// 区分不同来源的异常免疫 + id = _status.event.name, // 区分不同来源的异常免疫 clear = false, //添加免疫时移除已有但免疫的异常 all = false; //免疫所有异常 for (var i = 0; i < arguments.length; i++) { @@ -1286,7 +1286,7 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 this.storage.immuneBuffRemover[b] = {}; this.storage.immuneBuffRemover[b].num = num; this.storage.immuneBuffRemover[b].type = type; - this.storage.immuneBuffRemover[b].id = id; + this.storage.immuneBuffRemover[b].id = id; if (_status.event.getParent()["triggername"] == "phaseBegin" && type == "phase") { /*回合开始阶段修正 */ this.storage.immuneBuffRemover[b].num += 1; @@ -1381,7 +1381,7 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 if (player.storage.immuneBuffRemover[i].type == "round") { player.storage.immuneBuffRemover[i].num -= 1; if (player.storage.immuneBuffRemover[i].num == 0) { - flag = true; + flag = true; player.removeBuffImmune(i); } } @@ -2116,5516 +2116,5597 @@ game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"喵 lib.groupnature[name] = "miao_" + name; }; game.AddGroupNatureMiao("daqin", "秦", [255, 165, 0]); - },precontent:function () {},help:{},config:{},package:{ - character:{ - character:{ - "zioy_xixuegui":["male","qun",4,["zioy_xixue"],[]], - "zioy_yilong":["female","qun","2/2/2",["zioy_shiyi"],[]], - "zioy_shuijinxiezi":["male","qun",3,["zioy_jinjia","zioy_jinsui"],[]], - "zioy_dreamaker":["female","jin",3,["zioy_chenmeng","zioy_xiaoxiang"],[]], - "zioy_drugdoctor":["male","qun",4,["zioy_heiyi"],[]], - "zioy_zhigaotian":["female","shen",3,["zioy_eye","zioy_damie"],["hiddenSkill"]], - "zioy_huajian":["female","jin","3/7/4",["zioy_huashou","zioy_longyue"],[]], - "zioy_renturtle":["male","wei","1/1/10",["zioy_jike"],[]], - "zioy_shenxianxiang":["female","shu","3/4/2",["zioy_happyNewYear"],["des:新春特典"]], - "zioy_yinlong":["male","wu",4,["zioy_qianlong","zioy_jianlong","zioy_kanglong2"],["des:新春特典"]], - "zioy_peiki":["male","shu",3,["zioy_yixiang","zioy_chuixing","zioy_yuyan"],["des:新春特典"]], - "zioy_xielingyun":["female","daqin","3/5",["zioy_zhijin","zioy_xuanzhuan"],[]], - "zioy_heibai":["male","qun",4,["zioy_leiye1","zioy_mosha","zioy_shuangsha","zioy_lieying"],["des:新春特典"]], - "zioy_sose":["male","wei","1/1/7",["zioy_wrjzc","zioy_zsyhj"],["des:新春特典"]], - "zioy_pqsj":["none","qun",1,["zioy_weixiang"],[]], - "zioy_nianshou":["none","shu",1,["zioy_fansheng","zioy_nianxi"],["des:新春特典"]], - "zioy_jinu":["none","qun",3,["zioy_jifou"],[]], - "zioy_xiaozhenhe":["male","wei",3,["zioy_liubo","zioy_shuiyue"],[]], - "zioy_gaiying":[null,null,"3/3/2",["zioy_moying","zioy_yingdun","zioy_jianying"],["hiddenSkill"]], - "zioy_diana":["female","wei",4,["zioy_yuexiang","zioy_douzhuan"],["forbidai"]], - "zioy_senjianmeng":["female","jin","2/9/3",["zioy_xiantong","zioy_xiane"],[]], - "zioy_yenglish":["male","wei","4/6",["zioy_wuya","zioy_sheji","zioy_puai"],[]], - "zioy_xingjun":["male","qun",5,["zioy_xingchi"],[]], - "zioy_titan":["male","wu","4/4/4",["zioy_cangzhen"],[]], - "zioy_alps":["female","jin",5,["zioy_shangqin","zioy_hanshou"],["hiddenSkill"]], - "zioy_xukongchong":["female","jin",5,["zioy_longzi","zioy_yingyuan"],["hiddenSkill"]], - "zioy_muxi":["female","jin","-3/3",["zioy_shuohui"],[]], - "zioy_kailuer":["female","qun",4,["zioy_hey","zioy_ya","zioy_ha"],[]], - "zioy_nike":["none","shen",5,["zioy_cuiyi","zioy_shihong","zioy_huangyi","zioy_shulin"],[]], - "zioy_bailu":["female","shen",2,["zioy_hexuchongxiang","zioy_yuezhuiyunwei"],["forbidai"]], - test:["male","",3,["zioy_t"],[]], - "zioy_lanchesite":["none","shu","4/4/1",["zioy_yujin","zioy_xumie"],[]], - "zioy_b7chuhaoji":["female","qun",3,["zioy_v07yuxie","zioy_f42chongzai"],[]], - "zioy_badun":["male","qun","8/8/8",["zioy_yuemai"],[]], - "zioy_nemesis":["female","wu","4/7",["zioy_pinghuqiuyue","zioy_yurangzhijian","zioy_liechenyuyou_water"],[]], - "zioy_osiris":["male","shu",4,["zioy_zhuxingwuchang","zioy_zhufashengmie","zioy_yongyeqingxiao","zioy_liechenyuyou_fire"],[]], - "zioy_morana":["female","jin",6,["zioy_lanzhiyuane","zioy_liuzhenxiongxiang","zioy_yinhuxiaowu"],["hiddenSkill"]], - "zioy_guanghan":["female","wu","2/9",["zioy_nongying","zioy_chanjuan"],["des:2023中秋"]], - "zioy_xuanhu":["male","wei",1,["zioy_noname1"],[]], - }, - translate:{ - "zioy_xixuegui":"弗拉基米尔", - "zioy_yilong":"岩龙", - "zioy_shuijinxiezi":"斯卡纳", - "zioy_dreamaker":"长野原神乐", - "zioy_drugdoctor":"摆渡人", - "zioy_zhigaotian":"至高天", - "zioy_huajian":"今春花见", - "zioy_renturtle":"忍龟", - "zioy_shenxianxiang":"神仙香", - "zioy_yinlong":"胤龙", - "zioy_peiki":"派琦", - "zioy_xielingyun":"谢灵运", - "zioy_heibai":"除夕", - "zioy_sose":"SO-SE", - "zioy_pqsj":"皮丘什金", - "zioy_nianshou":"年", - "zioy_jinu":"祭奴", - "zioy_xiaozhenhe":"肖郑鹤", - "zioy_gaiying":"该隐", - "zioy_diana":"黛安娜", - "zioy_senjianmeng":"森见梦", - "zioy_yenglish":"英格力士", - "zioy_xingjun":"行钧", - "zioy_titan":"泰坦", - "zioy_alps":"阿尔卑斯", - "zioy_xukongchong":"虚空虫王", - "zioy_muxi":"暮曦", - "zioy_kailuer":"凯璐儿", - "zioy_nike":"籁寂", - "zioy_bailu":"白鹭", - test:"测试狗狗", - "zioy_lanchesite":"兰彻斯特", - "zioy_b7chuhaoji":"B7初号机", - "zioy_badun":"巴顿", - "zioy_nemesis":"涅默汐斯", - "zioy_osiris":"奥曦里斯", - "zioy_morana":"莫洛娜", - "zioy_guanghan":"广寒", - "zioy_xuanhu":"翾狐", - }, - }, - card:{ - card:{ - "zioy_yueguang":{ - type:"equip", - subtype:"equip1", - distance:{ - attackFrom:-1, - }, - vanish:true, - skills:[], - enable:true, - selectTarget:-1, - filterTarget:function (card, player, target) { - return target == player; - }, - modTarget:true, - allowMultiple:false, - content:function () { - if (cards.length && get.position(cards[0], true) == "o") target.equip(cards[0]); - }, - toself:true, - fullimage:true, - }, - }, - translate:{ - "zioy_yueguang":"月光", - "zioy_yueguang_info":"这把武器没有除攻击范围外的其他增益", - }, - list:[], - }, - skill:{ - skill:{ - "zioy_xixue":{ - enable:"phaseUse", - usable:1, - check:function () { - return true; - }, - filterCard:true, - filterTarget:function (card, player, target) { - if (game.roundNumber >= player.storage.lastRoundNum + 2) return true; - //if(target.storage.last == 3) return false; - return player.storage.last != target && player != target; - }, - content:function () { - player.storage.last = target; - player.storage.lastRoundNum = game.roundNumber; - target.loseHp(); + }, + precontent: function () {}, + help: {}, + config: {}, + package: { + character: { + character: { + "zioy_xixuegui": ["male", "qun", 4, ["zioy_xixue"], []], + "zioy_yilong": ["female", "qun", "2/2/2", ["zioy_shiyi"], []], + "zioy_shuijinxiezi": ["male", "qun", 3, ["zioy_jinjia", "zioy_jinsui"], []], + "zioy_dreamaker": ["female", "jin", 3, ["zioy_chenmeng", "zioy_xiaoxiang"], []], + "zioy_drugdoctor": ["male", "qun", 4, ["zioy_heiyi"], []], + "zioy_zhigaotian": ["female", "shen", 3, ["zioy_eye", "zioy_damie"], ["hiddenSkill"]], + "zioy_huajian": ["female", "jin", "3/7/4", ["zioy_huashou", "zioy_longyue"], []], + "zioy_renturtle": ["male", "wei", "1/1/10", ["zioy_jike"], []], + "zioy_shenxianxiang": ["female", "shu", "3/4/2", ["zioy_happyNewYear"], ["des:新春特典"]], + "zioy_yinlong": ["male", "wu", 4, ["zioy_qianlong", "zioy_jianlong", "zioy_kanglong2"], ["des:新春特典"]], + "zioy_peiki": ["male", "shu", 3, ["zioy_yixiang", "zioy_chuixing", "zioy_yuyan"], ["des:新春特典"]], + "zioy_xielingyun": ["female", "daqin", "3/5", ["zioy_zhijin", "zioy_xuanzhuan"], []], + "zioy_heibai": ["male", "qun", 4, ["zioy_leiye1", "zioy_mosha", "zioy_shuangsha", "zioy_lieying"], ["des:新春特典"]], + "zioy_sose": ["male", "wei", "1/1/7", ["zioy_wrjzc", "zioy_zsyhj"], ["des:新春特典"]], + "zioy_pqsj": ["none", "qun", 1, ["zioy_weixiang"], []], + "zioy_nianshou": ["none", "shu", 1, ["zioy_fansheng", "zioy_nianxi"], ["des:新春特典"]], + "zioy_jinu": ["none", "qun", 3, ["zioy_jifou"], []], + "zioy_xiaozhenhe": ["male", "wei", 3, ["zioy_liubo", "zioy_shuiyue"], []], + "zioy_gaiying": [null, null, "3/3/2", ["zioy_moying", "zioy_yingdun", "zioy_jianying"], ["hiddenSkill"]], + "zioy_diana": ["female", "wei", 4, ["zioy_yuexiang", "zioy_douzhuan"], ["forbidai"]], + "zioy_senjianmeng": ["female", "jin", "2/9/3", ["zioy_xiantong", "zioy_xiane"], []], + "zioy_yenglish": ["male", "wei", "4/6", ["zioy_wuya", "zioy_sheji", "zioy_puai"], []], + "zioy_xingjun": ["male", "qun", 5, ["zioy_xingchi"], []], + "zioy_titan": ["male", "wu", "4/4/4", ["zioy_cangzhen"], []], + "zioy_alps": ["female", "jin", 5, ["zioy_shangqin", "zioy_hanshou"], ["hiddenSkill"]], + "zioy_xukongchong": ["female", "jin", 5, ["zioy_longzi", "zioy_yingyuan"], ["hiddenSkill"]], + "zioy_muxi": ["female", "jin", "-3/3", ["zioy_shuohui"], []], + "zioy_kailuer": ["female", "qun", 4, ["zioy_hey", "zioy_ya", "zioy_ha"], []], + "zioy_nike": ["none", "shen", 5, ["zioy_cuiyi", "zioy_shihong", "zioy_huangyi", "zioy_shulin"], []], + "zioy_bailu": ["female", "shen", 2, ["zioy_hexuchongxiang", "zioy_yuezhuiyunwei"], ["forbidai"]], + test: ["male", "", 3, ["zioy_t"], []], + "zioy_lanchesite": ["none", "shu", "4/4/1", ["zioy_yujin", "zioy_xumie"], []], + "zioy_b7chuhaoji": ["female", "qun", 3, ["zioy_v07yuxie", "zioy_f42chongzai"], []], + "zioy_badun": ["male", "qun", "8/8/8", ["zioy_yuemai"], []], + "zioy_nemesis": ["female", "wu", "4/7", ["zioy_pinghuqiuyue", "zioy_yurangzhijian", "zioy_liechenyuyou_water"], []], + "zioy_osiris": ["male", "shu", 4, ["zioy_zhuxingwuchang", "zioy_zhufashengmie", "zioy_yongyeqingxiao", "zioy_liechenyuyou_fire"], []], + "zioy_morana": ["female", "jin", 6, ["zioy_lanzhiyuane", "zioy_liuzhenxiongxiang", "zioy_yinhuxiaowu"], ["hiddenSkill"]], + "zioy_guanghan": ["female", "wu", "2/9", ["zioy_nongying", "zioy_chanjuan"], ["des:2023中秋"]], + "zioy_xuanhu": ["male", "wei", 1, ["zioy_noname1"], []] + }, + translate: { + "zioy_xixuegui": "弗拉基米尔", + "zioy_yilong": "岩龙", + "zioy_shuijinxiezi": "斯卡纳", + "zioy_dreamaker": "长野原神乐", + "zioy_drugdoctor": "摆渡人", + "zioy_zhigaotian": "至高天", + "zioy_huajian": "今春花见", + "zioy_renturtle": "忍龟", + "zioy_shenxianxiang": "神仙香", + "zioy_yinlong": "胤龙", + "zioy_peiki": "派琦", + "zioy_xielingyun": "谢灵运", + "zioy_heibai": "除夕", + "zioy_sose": "SO-SE", + "zioy_pqsj": "皮丘什金", + "zioy_nianshou": "年", + "zioy_jinu": "祭奴", + "zioy_xiaozhenhe": "肖郑鹤", + "zioy_gaiying": "该隐", + "zioy_diana": "黛安娜", + "zioy_senjianmeng": "森见梦", + "zioy_yenglish": "英格力士", + "zioy_xingjun": "行钧", + "zioy_titan": "泰坦", + "zioy_alps": "阿尔卑斯", + "zioy_xukongchong": "虚空虫王", + "zioy_muxi": "暮曦", + "zioy_kailuer": "凯璐儿", + "zioy_nike": "籁寂", + "zioy_bailu": "白鹭", + test: "测试狗狗", + "zioy_lanchesite": "兰彻斯特", + "zioy_b7chuhaoji": "B7初号机", + "zioy_badun": "巴顿", + "zioy_nemesis": "涅默汐斯", + "zioy_osiris": "奥曦里斯", + "zioy_morana": "莫洛娜", + "zioy_guanghan": "广寒", + "zioy_xuanhu": "翾狐" + } + }, + card: { + card: { + "zioy_yueguang": { + type: "equip", + subtype: "equip1", + distance: { + attackFrom: -1 + }, + vanish: true, + skills: [], + enable: true, + selectTarget: -1, + filterTarget: function (card, player, target) { + return target == player; + }, + modTarget: true, + allowMultiple: false, + content: function () { + if (cards.length && get.position(cards[0], true) == "o") target.equip(cards[0]); + }, + toself: true, + fullimage: true + } + }, + translate: { + "zioy_yueguang": "月光", + "zioy_yueguang_info": "这把武器没有除攻击范围外的其他增益" + }, + list: [] + }, + skill: { + skill: { + "zioy_xixue": { + enable: "phaseUse", + usable: 1, + check: function () { + return true; + }, + filterCard: true, + filterTarget: function (card, player, target) { + if (game.roundNumber >= player.storage.lastRoundNum + 2) return true; + //if(target.storage.last == 3) return false; + return player.storage.last != target && player != target; + }, + content: function () { + player.storage.last = target; + player.storage.lastRoundNum = game.roundNumber; + target.loseHp(); - player.recover(); - player.update(); - }, - ai:{ - order:9, - result:{ - target:function (player, target) { - return target.hp - target.maxHp - 1; - return get.damageEffect(target, player); - }, - player:1, - }, - threaten:2, - }, - "_priority":0, - }, - "zioy_shiyi":{ - mod:{ - globalTo:function (from, to, distance) { - return distance + to.hujia; - }, - globalFrom:function (from, to, distance) { - return distance - from.hujia; - }, - maxHandcardBase:function (player, num) { - return player.hujia + num; - }, - }, - trigger:{ - source:"damageBegin1", - }, - filter:function (event, player) { - return true; - }, - forced:true, - content:function () { - player.changeHujia(1); + player.recover(); + player.update(); + }, + ai: { + order: 9, + result: { + target: function (player, target) { + return target.hp - target.maxHp - 1; + return get.damageEffect(target, player); + }, + player: 1 + }, + threaten: 2 + }, + "_priority": 0 + }, + "zioy_shiyi": { + mod: { + globalTo: function (from, to, distance) { + return distance + to.hujia; + }, + globalFrom: function (from, to, distance) { + return distance - from.hujia; + }, + maxHandcardBase: function (player, num) { + return player.hujia + num; + } + }, + trigger: { + source: "damageBegin1" + }, + filter: function (event, player) { + return true; + }, + forced: true, + content: function () { + player.changeHujia(1); - //player.update(); - }, - ai:{ - damageBonus:true, - }, - "_priority":0, - }, - "zioy_jinjia":{ - trigger:{ - global:"roundStart", - }, - filter:function (card, player, target) { - //if(target.storage.last == 3) return false; - return !player.hujia; - }, - direct:true, - content:function () { - player.changeHujia(1); - }, - "_priority":0, - }, - "zioy_jinsui":{ - enable:"phaseUse", - check:function () { - return true; - }, - filter:function (card, player, target) { - //if(target.storage.last == 3) return false; - return player.hujia; - }, - filterTarget:function (card, player, target) { - //if(target.storage.last == 3) return false; - return player != target && player != target; - }, - content:function () { - target.storage.jss = player; - target.addTempSkill("zioy_jinsui2"); - player.hujia = 0; - player.update(); - }, - "_priority":0, - }, - "zioy_jinsui2":{ - trigger:{ - player:"damageEnd", - }, - direct:true, - content:function () { - /*target.storage.jss.recover(); + //player.update(); + }, + ai: { + damageBonus: true + }, + "_priority": 0 + }, + "zioy_jinjia": { + trigger: { + global: "roundStart" + }, + filter: function (card, player, target) { + //if(target.storage.last == 3) return false; + return !player.hujia; + }, + direct: true, + content: function () { + player.changeHujia(1); + }, + "_priority": 0 + }, + "zioy_jinsui": { + enable: "phaseUse", + check: function () { + return true; + }, + filter: function (card, player, target) { + //if(target.storage.last == 3) return false; + return player.hujia; + }, + filterTarget: function (card, player, target) { + //if(target.storage.last == 3) return false; + return player != target && player != target; + }, + content: function () { + target.storage.jss = player; + target.addTempSkill("zioy_jinsui2"); + player.hujia = 0; + player.update(); + }, + "_priority": 0 + }, + "zioy_jinsui2": { + trigger: { + player: "damageEnd" + }, + direct: true, + content: function () { + /*target.storage.jss.recover(); target.storage.jss.draw(); target.storage.jss.changeHujia(1); */ player.turnOver(); - }, - "_priority":0, - }, - "zioy_chenmeng":{ - trigger:{ - global:"damageEnd", - }, - marktext:"尘", - intro:{ - name:"尘梦", - content:"mark", - onunmark:true, - }, - init:function (player) { - player.storage.cmnum = 0; - }, - forced:true, - filter:function (event, player) { - return event.source && !event.source.hasSkill("zioy_chenmeng1") && event.source != player; - }, - content:function () { - player.gainMaxHp(); - trigger.source.loseMaxHp(); - player.storage.cmnum++; - trigger.source.storage.chenmengsource = player; - trigger.source.addSkill("zioy_chenmeng1"); - trigger.source.addMark("zioy_chenmeng"); - }, - "_priority":0, - }, - "zioy_chenmeng1":{ - trigger:{ - player:"damageEnd", - }, - filter:function (event, player) { - return event.source == player.storage.chenmengsource; - }, - content:function () { - player.gainMaxHp(); - player.storage.chenmengsource.loseMaxHp(); - player.storage.chenmengsource.recover(); - player.loseHp(); - player.storage.chenmengsource.cmnum--; - player.removeSkill(event.name); - player.removeMark("zioy_chenmeng"); - player.storage.chenmengsource.gainPlayerCard(true, player, "h"); - }, - "_priority":0, - }, - "zioy_eye":{ - trigger:{ - source:"damageBefore", - }, - forced:true, - charlotte:true, - filter:function (event, player) { - return event.player != player; - }, - content:function () { - trigger.cancel(); - trigger.player.hp -= trigger.num; - trigger.player.maxHp -= trigger.num; - trigger.player.update(); - if (trigger.player.hp <= 0) trigger.player.dying(); - player.line(trigger.player, "red"); - }, - "_priority":0, - }, - "zioy_damie":{ - trigger:{ - global:"roundStart", - }, - filter:function (event, player) { - return game.dead.length > 0; - }, - forced:true, - check:function (trigger) { - return trigger.hasSkill("test_control1"); - }, - content:function () { - "step 0" - player - .chooseTarget(1, true, "抹除一名角色的体力", function (card, player, target) { - return target != player; - }) - .set("ai", function (target) { - var player = _status.event.player; - return -1; - }); - "step 1" - target = result.targets[0]; - target.hp = 0; - target.maxHp = 0; - target.update(); - }, - ai:{ - order:8, - result:{ - target:function (player, target) { - if (ui.selected.targets.length == 0) { - return -3; - } else { - return get.effect(target, { name: "juedou" }, ui.selected.targets[0], target); - } - }, - }, - expose:0.4, - threaten:3, - }, - "_priority":0, - }, - "zioy_heiyi":{ - trigger:{ - target:"shaBefore", - }, - priority:15, - filter:function (event, player) { - return true; - }, - direct:true, - derivation:["zioy_duyi"], - content:function () { - /*player.draw(); + }, + "_priority": 0 + }, + "zioy_chenmeng": { + trigger: { + global: "damageEnd" + }, + marktext: "尘", + intro: { + name: "尘梦", + content: "mark", + onunmark: true + }, + init: function (player) { + player.storage.cmnum = 0; + }, + forced: true, + filter: function (event, player) { + return event.source && !event.source.hasSkill("zioy_chenmeng1") && event.source != player; + }, + content: function () { + player.gainMaxHp(); + trigger.source.loseMaxHp(); + player.storage.cmnum++; + trigger.source.storage.chenmengsource = player; + trigger.source.addSkill("zioy_chenmeng1"); + trigger.source.addMark("zioy_chenmeng"); + }, + "_priority": 0 + }, + "zioy_chenmeng1": { + trigger: { + player: "damageEnd" + }, + filter: function (event, player) { + return event.source == player.storage.chenmengsource; + }, + content: function () { + player.gainMaxHp(); + player.storage.chenmengsource.loseMaxHp(); + player.storage.chenmengsource.recover(); + player.loseHp(); + player.storage.chenmengsource.cmnum--; + player.removeSkill(event.name); + player.removeMark("zioy_chenmeng"); + player.storage.chenmengsource.gainPlayerCard(true, player, "h"); + }, + "_priority": 0 + }, + "zioy_eye": { + trigger: { + source: "damageBefore" + }, + forced: true, + charlotte: true, + filter: function (event, player) { + return event.player != player; + }, + content: function () { + trigger.cancel(); + trigger.player.hp -= trigger.num; + trigger.player.maxHp -= trigger.num; + trigger.player.update(); + if (trigger.player.hp <= 0) trigger.player.dying(); + player.line(trigger.player, "red"); + }, + "_priority": 0 + }, + "zioy_damie": { + trigger: { + global: "roundStart" + }, + filter: function (event, player) { + return game.dead.length > 0; + }, + forced: true, + check: function (trigger) { + return trigger.hasSkill("test_control1"); + }, + content: function () { + "step 0" + player + .chooseTarget(1, true, "抹除一名角色的体力", function (card, player, target) { + return target != player; + }) + .set("ai", function (target) { + var player = _status.event.player; + return -1; + }); + "step 1" + target = result.targets[0]; + target.hp = 0; + target.maxHp = 0; + target.update(); + }, + ai: { + order: 8, + result: { + target: function (player, target) { + if (ui.selected.targets.length == 0) { + return -3; + } else { + return get.effect(target, { name: "juedou" }, ui.selected.targets[0], target); + } + } + }, + expose: 0.4, + threaten: 3 + }, + "_priority": 0 + }, + "zioy_heiyi": { + trigger: { + target: "shaBefore" + }, + priority: 15, + filter: function (event, player) { + return true; + }, + direct: true, + derivation: ["zioy_duyi"], + content: function () { + /*player.draw(); if(trigger.player == player)trigger.target.addSkill('zioy_duyi'); else */ trigger.player.addSkill("zioy_duyi"); - }, - ai:{ - "maixie_defend":true, - expose:0.4, - }, - "_priority":1500, - }, - "zioy_duyi":{ - trigger:{ - player:"phaseBegin", - }, - logTarget:"player", - filter:function () { - return true; - }, - direct:true, - content:function () { - if (player.hp != 1) player.loseHp(); - else player.loseMaxHp(); - }, - "_priority":0, - }, - "zioy_eji":{ - "_priority":0, - }, - "zioy_huashou":{ - trigger:{ - player:"phaseBegin", - }, - logTarget:"player", - filter:function () { - return true; - }, - direct:true, - intro:{ - name:"花狩", - content:"mark", - onunmark:true, - }, - content:function () { - //player.draw(); - var targets = game.players; - var ts1 = []; - var ts2 = []; - //var p = player.identity; - //if(p == 'zhu') p = 'zhong'; - for (var i = 0; i < targets.length; ++i) { - //if(targets[i].identity == p) return false; - if (get.distance(player, targets[i], "attack") <= 1 && get.attitude(player, targets[i]) <= 0) { - ts2.push(targets[i]); - } - if (get.attitude(player, targets[i]) <= 0 /*|| get.attitude(targets[i],player)<=0*/) { - ts1.push(targets[i]); - } - } - var target = ts1.randomGet(); - //if(ts2.length > 0) target = ts2.randomGet(); - player.logSkill(event.name, target); - var arr = target.getCards("hej"); - //player.draw(); - var n = arr.length; - var cards = []; - while (n) { - var i = Math.floor(Math.random() * n--); - cards.push(arr.splice(i, 1)[0]); - } - var l = cards.length; - while (l % 3 != 0) l--; - var sum = l / 3; - while (sum > 0) { - cards.splice(0, 1); - sum--; - l--; - } - player.line(target, "red"); - target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_huashou2"); - target.addTempSkill("zioy_huashou2"); - target.storage.huashouSource = player; - }, - "_priority":0, - }, - "zioy_huashou2":{ - trigger:{ - global:"phaseEnd", - }, - group:["zioy_huashou3"], - forced:true, - content:function () { - var cards = player.getExpansions("zioy_huashou2"); - if (cards.length) player.gain(cards, "draw"); - player.removeSkill("zioy_huashou2"); - }, - ai:{ - effect:{ - target:function (card, player, target, current) { - if (card.name == "sha") { - return [1, -2]; - } - }, - }, - }, - intro:{ - mark:function (dialog, storage, player) { - var cards = player.getExpansions("zioy_huashou2"); - if (player.isUnderControl(true) || player.storage.huashouSource.isUnderControl(true)) dialog.addAuto(cards); - else return "共有" + get.cnNumber(cards.length) + "张牌"; - }, - markcount:"expansion", - }, - "_priority":0, - }, - "zioy_huashou3":{ - trigger:{ - player:"damageEnd", - }, - filter:function (event, player) { - return event.source == player.storage.huashouSource; - }, - forced:true, - content:function () { - "step 0" - player.storage.huashouSource.addMark("zioy_longyue"); - if (player.storage.huashouSource.countMark("zioy_longyue") % 4 == 0) player.storage.huashouSource.gainMaxHp(); - var cards = player.getExpansions("zioy_huashou2"); - if (cards.length) player.storage.huashouSource.gain(cards, "draw"); - player.removeSkill("zioy_huashou2"); - "step 1" - var num = player.maxHp - player.hp; - player.damage(num, player.storage.huashouSource); - if(parseInt(num / 2) > player.maxHp - player.hp){ - player.changeHujia(1 - player.hujia) - } - player.storage.huashouSource.recover(parseInt(num / 2)); - }, - "_priority":0, - }, - "zioy_longyue":{ - trigger:{ - player:"phaseUseBefore", - }, - group:["zioy_longyue2","zioy_longyue3"], - mod:{ - maxHandcardBase:function (player, num) { - var n = player.countMark("zioy_longyue"); - if (n % 2 == 1) n--; + }, + ai: { + "maixie_defend": true, + expose: 0.4 + }, + "_priority": 1500 + }, + "zioy_duyi": { + trigger: { + player: "phaseBegin" + }, + logTarget: "player", + filter: function () { + return true; + }, + direct: true, + content: function () { + if (player.hp != 1) player.loseHp(); + else player.loseMaxHp(); + }, + "_priority": 0 + }, + "zioy_eji": { + "_priority": 0 + }, + "zioy_huashou": { + trigger: { + player: "phaseBegin" + }, + logTarget: "player", + filter: function () { + return true; + }, + direct: true, + intro: { + name: "花狩", + content: "mark", + onunmark: true + }, + content: function () { + //player.draw(); + var targets = game.players; + var ts1 = []; + var ts2 = []; + //var p = player.identity; + //if(p == 'zhu') p = 'zhong'; + for (var i = 0; i < targets.length; ++i) { + //if(targets[i].identity == p) return false; + if (get.distance(player, targets[i], "attack") <= 1 && get.attitude(player, targets[i]) <= 0) { + ts2.push(targets[i]); + } + if (get.attitude(player, targets[i]) <= 0 /*|| get.attitude(targets[i],player)<=0*/) { + ts1.push(targets[i]); + } + } + var target = ts1.randomGet(); + //if(ts2.length > 0) target = ts2.randomGet(); + player.logSkill(event.name, target); + var arr = target.getCards("hej"); + //player.draw(); + var n = arr.length; + var cards = []; + while (n) { + var i = Math.floor(Math.random() * n--); + cards.push(arr.splice(i, 1)[0]); + } + var l = cards.length; + while (l % 3 != 0) l--; + var sum = l / 3; + while (sum > 0) { + cards.splice(0, 1); + sum--; + l--; + } + player.line(target, "red"); + target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_huashou2"); + target.addTempSkill("zioy_huashou2"); + target.storage.huashouSource = player; + }, + "_priority": 0 + }, + "zioy_huashou2": { + trigger: { + global: "phaseEnd" + }, + group: ["zioy_huashou3"], + forced: true, + content: function () { + var cards = player.getExpansions("zioy_huashou2"); + if (cards.length) player.gain(cards, "draw"); + player.removeSkill("zioy_huashou2"); + }, + ai: { + effect: { + target: function (card, player, target, current) { + if (card.name == "sha") { + return [1, -2]; + } + } + } + }, + intro: { + mark: function (dialog, storage, player) { + var cards = player.getExpansions("zioy_huashou2"); + if (player.isUnderControl(true) || player.storage.huashouSource.isUnderControl(true)) dialog.addAuto(cards); + else return "共有" + get.cnNumber(cards.length) + "张牌"; + }, + markcount: "expansion" + }, + "_priority": 0 + }, + "zioy_huashou3": { + trigger: { + player: "damageEnd" + }, + filter: function (event, player) { + return event.source == player.storage.huashouSource; + }, + forced: true, + content: function () { + "step 0" + player.storage.huashouSource.addMark("zioy_longyue"); + if (player.storage.huashouSource.countMark("zioy_longyue") % 4 == 0) player.storage.huashouSource.gainMaxHp(); + var cards = player.getExpansions("zioy_huashou2"); + if (cards.length) player.storage.huashouSource.gain(cards, "draw"); + player.removeSkill("zioy_huashou2"); + "step 1" + var num = player.maxHp - player.hp; + player.damage(num, player.storage.huashouSource); + if (parseInt(num / 2) > player.maxHp - player.hp) { + player.changeHujia(1 - player.hujia); + } + player.storage.huashouSource.recover(parseInt(num / 2)); + }, + "_priority": 0 + }, + "zioy_longyue": { + trigger: { + player: "phaseUseBefore" + }, + group: ["zioy_longyue2", "zioy_longyue3"], + mod: { + maxHandcardBase: function (player, num) { + var n = player.countMark("zioy_longyue"); + if (n % 2 == 1) n--; - return num + n / 2; - }, - attackFrom:function (from, to, distance) { - if (from.countMark("zioy_longyue") > 0 && from.getEquip("zioy_yueguang")) return distance - 1; - }, - }, - mark:true, - intro:{ - content:function (storage, player) { - var info = lib.skill.zioy_longyue.getInfo(player); - return ( - '
已获得提升:
月光的攻击范围:' + - info[0] + - "
手牌上限:" + - info[1] + - "
摸牌阶段摸牌数:" + - info[2] + - "
体力上限:" + - info[3] + - "
" - ); - }, - }, - getInfo:function (player) { - if (!player.countMark("zioy_longyue")) return [0, 0, 0, 0]; - var info = [0, 0, 0, 0]; - if (player.countMark("zioy_longyue") > 0) info[0] = 1; - var n = player.countMark("zioy_longyue"); - info[1] = parseInt(n / 2); - info[2] = parseInt(n / 3); - info[3] = parseInt(n / 4); - return info; - }, - filter:function (event, player) { - if (player.getEquip("zioy_yueguang")) return false; - /*for(var card of event.cards2){ + return num + n / 2; + }, + attackFrom: function (from, to, distance) { + if (from.countMark("zioy_longyue") > 0 && from.getEquip("zioy_yueguang")) return distance - 1; + } + }, + mark: true, + intro: { + content: function (storage, player) { + var info = lib.skill.zioy_longyue.getInfo(player); + return ( + '
已获得提升:
月光的攻击范围:' + + info[0] + + "
手牌上限:" + + info[1] + + "
摸牌阶段摸牌数:" + + info[2] + + "
体力上限:" + + info[3] + + "
" + ); + } + }, + getInfo: function (player) { + if (!player.countMark("zioy_longyue")) return [0, 0, 0, 0]; + var info = [0, 0, 0, 0]; + if (player.countMark("zioy_longyue") > 0) info[0] = 1; + var n = player.countMark("zioy_longyue"); + info[1] = parseInt(n / 2); + info[2] = parseInt(n / 3); + info[3] = parseInt(n / 4); + return info; + }, + filter: function (event, player) { + if (player.getEquip("zioy_yueguang")) return false; + /*for(var card of event.cards2){ if(card == player.storage.yueguang) return true; } return false;*/ - return true; - }, - init:function (player) { - //player.addMark('zioy_longyue'); - //player.removeMark('zioy_longyue'); - //player.draw(); - //player.storage.yueguang = game.createCard('zioy_yueguang','spade',14); - //player.equip(player.storage.yueguang); - }, - forced:true, - content:function () { - //trigger.cancel(); - player.chooseUseTarget(player.storage.yueguang, true, "nopopup"); - //player.equip(player.storage.yueguang); - }, - "_priority":0, - }, - "zioy_longyue2":{ - trigger:{ - global:"phaseBefore", - player:"enterGame", - }, - direct:true, - unique:true, - filter:function (event, player) { - return event.name != "phase" || game.phaseNumber == 0; - }, - forceunique:true, - content:function () { - player.addMark("zioy_longyue"); - player.removeMark("zioy_longyue"); - player.draw(); - player.storage.yueguang = game.createCard("zioy_yueguang", "spade", 14); - //player.equip(player.storage.yueguang); - }, - "_priority":0, - }, - "zioy_jike":{ - trigger:{ - player:"damageAfter", - }, - direct:true, - filter:function (event, player) { - return event.source && event.num > 0 && event.source != player; - }, - content:function () { - "step 0" - trigger.source.damage(trigger.num); - }, - ai:{ - "maixie_defend":true, - effect:{ - target:function (card, player, target) { - if (player.hasSkillTag("jueqing", false, target)) return [1, -1.5]; - if (!target.hasFriend()) return; - if (get.tag(card, "damage")) return [1, 0, 0, -0.7]; - }, - }, - }, - "_priority":0, - }, - "zioy_longyue3":{ - trigger:{ - player:"phaseDrawBegin2", - }, - forced:true, - preHidden:true, - filter:function (event, player) { - return !event.numFixed; - }, - content:function () { - var n = player.countMark("zioy_longyue"); - while (n % 3 != 0) n--; - n /= 3; - trigger.num = trigger.num + n; - }, - "_priority":0, - }, - "zioy_happyNewYear":{ - forced:true, - locked:true, - trigger:{ - player:"loseEnd", - }, - group:["zioy_qunyou2"], - mark:true, - marktext:"春", - intro:{ - name:"春", - content:"mark", - onunmark:true, - }, - filter:function (event, player) { - return true; - }, - content:function () { - player.addMark("zioy_happyNewYear"); - var n = player.countMark("zioy_happyNewYear"); - if (n % 2 == 0) player.draw(); - //else if(player.countCards('h') > 0)player.chooseToDiscard(); - }, - ai:{ - threaten:2.023, - }, - "_priority":0, - }, - "zioy_qunyou2":{ - audio:"ext:无源之流:2", - shaRelated:true, - trigger:{ - player:"useCard", - }, - direct:true, - filter:function (event, player) { - if (game.roundNumber > player.storage.qunyou_lastround) { - player.storage.qunyou_num = 4; - if (player.countMark("zioy_qunyou2") > 4) player.removeMark("zioy_qunyou2", player.countMark("zioy_qunyou2") - 4); - player.storage.qunyou_lastround = game.roundNumber; - } - return event.card.name == "sha" && player.countMark("zioy_happyNewYear") >= player.storage.qunyou_num && event.player.isPhaseUsing(); - }, - mark:true, - marktext:"逡游", - intro:{ - name:"逡游", - content:"X值目前为#", - onunmark:true, - }, - init:function (player) { - player.addMark("zioy_qunyou2", 4); - player.storage.qunyou_lastround = -1; - player.storage.qunyou_num = 4; - }, - content:function () { - trigger.addCount = false; - trigger.player.getStat().card.sha--; - player.removeMark("zioy_happyNewYear", player.storage.qunyou_num); - var n = player.countMark("zioy_happyNewYear"); - if (n % 2 == 0) player.draw(); - //else player.chooseToDiscard(); - player.storage.qunyou_num += 2; - player.addMark("zioy_qunyou2", 2); - }, - ai:{ - expose:0.2, - }, - "_priority":0, - }, - "zioy_qianlong":{ - trigger:{ - player:["useCardEnd","respond"], - }, - filter:function (event, player) { - return player.countCards("hej") > 0 && player.hujia == 0 && event.card && (event.card.name == "shan" || event.card.name == "sha"); - }, - priority:-1, - forced:false, - content:function () { - player.chooseToDiscard("hej", true, "弃置一张牌").set("ai", function (card) { - return 7 - get.value(card); - }); - player.draw(); - player.changeHujia(1); - }, - ai:{ - threaten:2, - }, - "_priority":-100, - }, - "zioy_jianlong":{ - enable:"phaseUse", - filter:function (event, player) { - return player.hujia > 0; - }, - check:2023, - derivation:["zioy_feilong","zioy_kanglong"], - content:function () { - "step 0" - player.draw(); - player.changeHujia(-1); - player.addSkill("zioy_jianlong4"); - player.removeSkill("zioy_jianlong"); - }, - ai:{ - result:{ - player:1, - }, - order:2.5, - }, - "_priority":0, - }, - "zioy_feilong":{ - mod:{ - playerEnabled:function (card, player, target) { - if (player.storage.aimOfFeilong.isAlive() && card.name == "sha" && player.storage.aimOfFeilong != target) return false; - }, - targetInRange:function (card, player, target) { - if (card.name == "sha") return true; - }, - }, - trigger:{ - player:"useCard", - }, - forced:true, - filter:function (event, player, trigger) { - return event.card && event.card.name == "sha"; - }, - content:function () { - player.draw(); - trigger.directHit.addArray(game.players); - player.removeSkill(event.name); - player.addSkill("zioy_kanglong"); - player.addSkill("zioy_jianlong"); - }, - "_priority":0, - }, - "zioy_kanglong":{ - unique:true, - enable:"phaseUse", - limited:true, - filterTarget:function (card, player, target) { - return target != player; - }, - content:function () { - "step 0" - player.draw(); - target.addTempSkill("zioy_kanglong2"); - var n = player.hp - target.hp; - if (n < 0) n = -n; - if (n == 0) n = 1; - target.damage(n); - }, - ai:{ - order:1, - fireAttack:true, - 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); - }, - }, - }, - mark:true, - intro:{ - content:"limited", - }, - init:function (player, skill) { - player.storage[skill] = false; - }, - skillAnimation:true, - "_priority":0, - }, - "zioy_jianlong2":{ - trigger:{ - source:"damageSource", - }, - filter:function (event, player) { - return event.card && event.card.name == "sha"; - }, - priority:2023, - forced:true, - locked:false, - content:function () { - player.draw(); - player.addSkill("zioy_feilong"); - player.storage.aimOfFeilong = trigger.player; - }, - "_priority":202300, - }, - "zioy_jianlong4":{ - mod:{ - targetInRange:function (card, player, target, now) { - if (card.name == "sha") return true; - }, - }, - group:["zioy_jianlong2","wushuang1"], - trigger:{ - player:"useCardEnd", - }, - forced:true, - filter:function (event, player, trigger) { - return event.card && event.card.name == "sha"; - }, - content:function () { - //trigger.directHit.addArray(game.players); - player.removeSkill(event.name); - player.removeSkill("zioy_jianlong2"); - if (!player.hasSkill("zioy_feilong")) player.addSkill("zioy_jianlong"); - }, - ai:{ - threaten:3, - }, - "_priority":0, - }, - "zioy_kanglong2":{ - trigger:{ - player:"damageEnd", - }, - forced:true, - popup:false, - charlotte:true, - filter:function (event, player) { - return true; - }, - content:function () { - if(trigger.source != null)trigger.source.awakenSkill("zioy_kanglong"); - player.removeSkill("zioy_kanglong2"); - }, - "_priority":0, - }, - "zioy_yixiang":{ - group:["zioy_yixiang2"], - trigger:{ - source:"damageBegin1", - }, - forced:true, - content:function () { - trigger.nature = "fire"; - }, - "_priority":0, - }, - "zioy_yixiang2":{ - trigger:{ - player:"damageBegin3", - }, - filter:function (event, player) { - if (event.nature != "fire") return false; + return true; + }, + init: function (player) { + //player.addMark('zioy_longyue'); + //player.removeMark('zioy_longyue'); + //player.draw(); + //player.storage.yueguang = game.createCard('zioy_yueguang','spade',14); + //player.equip(player.storage.yueguang); + }, + forced: true, + content: function () { + //trigger.cancel(); + player.chooseUseTarget(player.storage.yueguang, true, "nopopup"); + //player.equip(player.storage.yueguang); + }, + "_priority": 0 + }, + "zioy_longyue2": { + trigger: { + global: "phaseBefore", + player: "enterGame" + }, + direct: true, + unique: true, + filter: function (event, player) { + return event.name != "phase" || game.phaseNumber == 0; + }, + forceunique: true, + content: function () { + player.addMark("zioy_longyue"); + player.removeMark("zioy_longyue"); + player.draw(); + player.storage.yueguang = game.createCard("zioy_yueguang", "spade", 14); + //player.equip(player.storage.yueguang); + }, + "_priority": 0 + }, + "zioy_jike": { + trigger: { + player: "damageAfter" + }, + direct: true, + filter: function (event, player) { + return event.source && event.num > 0 && event.source != player; + }, + content: function () { + "step 0" + trigger.source.damage(trigger.num); + }, + ai: { + "maixie_defend": true, + effect: { + target: function (card, player, target) { + if (player.hasSkillTag("jueqing", false, target)) return [1, -1.5]; + if (!target.hasFriend()) return; + if (get.tag(card, "damage")) return [1, 0, 0, -0.7]; + } + } + }, + "_priority": 0 + }, + "zioy_longyue3": { + trigger: { + player: "phaseDrawBegin2" + }, + forced: true, + preHidden: true, + filter: function (event, player) { + return !event.numFixed; + }, + content: function () { + var n = player.countMark("zioy_longyue"); + while (n % 3 != 0) n--; + n /= 3; + trigger.num = trigger.num + n; + }, + "_priority": 0 + }, + "zioy_happyNewYear": { + forced: true, + locked: true, + trigger: { + player: "loseEnd" + }, + group: ["zioy_qunyou2"], + mark: true, + marktext: "春", + intro: { + name: "春", + content: "mark", + onunmark: true + }, + filter: function (event, player) { + return true; + }, + content: function () { + player.addMark("zioy_happyNewYear"); + var n = player.countMark("zioy_happyNewYear"); + if (n % 2 == 0) player.draw(); + //else if(player.countCards('h') > 0)player.chooseToDiscard(); + }, + ai: { + threaten: 2.023 + }, + "_priority": 0 + }, + "zioy_qunyou2": { + audio: "ext:无源之流:2", + shaRelated: true, + trigger: { + player: "useCard" + }, + direct: true, + filter: function (event, player) { + if (game.roundNumber > player.storage.qunyou_lastround) { + player.storage.qunyou_num = 4; + if (player.countMark("zioy_qunyou2") > 4) player.removeMark("zioy_qunyou2", player.countMark("zioy_qunyou2") - 4); + player.storage.qunyou_lastround = game.roundNumber; + } + return event.card.name == "sha" && player.countMark("zioy_happyNewYear") >= player.storage.qunyou_num && event.player.isPhaseUsing(); + }, + mark: true, + marktext: "逡游", + intro: { + name: "逡游", + content: "X值目前为#", + onunmark: true + }, + init: function (player) { + player.addMark("zioy_qunyou2", 4); + player.storage.qunyou_lastround = -1; + player.storage.qunyou_num = 4; + }, + content: function () { + trigger.addCount = false; + trigger.player.getStat().card.sha--; + player.removeMark("zioy_happyNewYear", player.storage.qunyou_num); + var n = player.countMark("zioy_happyNewYear"); + if (n % 2 == 0) player.draw(); + //else player.chooseToDiscard(); + player.storage.qunyou_num += 2; + player.addMark("zioy_qunyou2", 2); + }, + ai: { + expose: 0.2 + }, + "_priority": 0 + }, + "zioy_qianlong": { + trigger: { + player: ["useCardEnd", "respond"] + }, + filter: function (event, player) { + return player.countCards("hej") > 0 && player.hujia == 0 && event.card && (event.card.name == "shan" || event.card.name == "sha"); + }, + priority: -1, + forced: false, + content: function () { + player.chooseToDiscard("hej", true, "弃置一张牌").set("ai", function (card) { + return 7 - get.value(card); + }); + player.draw(); + player.changeHujia(1); + }, + ai: { + threaten: 2 + }, + "_priority": -100 + }, + "zioy_jianlong": { + enable: "phaseUse", + filter: function (event, player) { + return player.hujia > 0; + }, + check: 2023, + derivation: ["zioy_feilong", "zioy_kanglong"], + content: function () { + "step 0" + player.draw(); + player.changeHujia(-1); + player.addSkill("zioy_jianlong4"); + player.removeSkill("zioy_jianlong"); + }, + ai: { + result: { + player: 1 + }, + order: 2.5 + }, + "_priority": 0 + }, + "zioy_feilong": { + mod: { + playerEnabled: function (card, player, target) { + if (player.storage.aimOfFeilong.isAlive() && card.name == "sha" && player.storage.aimOfFeilong != target) return false; + }, + targetInRange: function (card, player, target) { + if (card.name == "sha") return true; + } + }, + trigger: { + player: "useCard" + }, + forced: true, + filter: function (event, player, trigger) { + return event.card && event.card.name == "sha"; + }, + content: function () { + player.draw(); + trigger.directHit.addArray(game.players); + player.removeSkill(event.name); + player.addSkill("zioy_kanglong"); + player.addSkill("zioy_jianlong"); + }, + "_priority": 0 + }, + "zioy_kanglong": { + unique: true, + enable: "phaseUse", + limited: true, + filterTarget: function (card, player, target) { + return target != player; + }, + content: function () { + "step 0" + player.draw(); + target.addTempSkill("zioy_kanglong2"); + var n = player.hp - target.hp; + if (n < 0) n = -n; + if (n == 0) n = 1; + target.damage(n); + }, + ai: { + order: 1, + fireAttack: true, + 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); + } + } + }, + mark: true, + intro: { + content: "limited" + }, + init: function (player, skill) { + player.storage[skill] = false; + }, + skillAnimation: true, + "_priority": 0 + }, + "zioy_jianlong2": { + trigger: { + source: "damageSource" + }, + filter: function (event, player) { + return event.card && event.card.name == "sha"; + }, + priority: 2023, + forced: true, + locked: false, + content: function () { + player.draw(); + player.addSkill("zioy_feilong"); + player.storage.aimOfFeilong = trigger.player; + }, + "_priority": 202300 + }, + "zioy_jianlong4": { + mod: { + targetInRange: function (card, player, target, now) { + if (card.name == "sha") return true; + } + }, + group: ["zioy_jianlong2", "wushuang1"], + trigger: { + player: "useCardEnd" + }, + forced: true, + filter: function (event, player, trigger) { + return event.card && event.card.name == "sha"; + }, + content: function () { + //trigger.directHit.addArray(game.players); + player.removeSkill(event.name); + player.removeSkill("zioy_jianlong2"); + if (!player.hasSkill("zioy_feilong")) player.addSkill("zioy_jianlong"); + }, + ai: { + threaten: 3 + }, + "_priority": 0 + }, + "zioy_kanglong2": { + trigger: { + player: "damageEnd" + }, + forced: true, + popup: false, + charlotte: true, + filter: function (event, player) { + return true; + }, + content: function () { + if (trigger.source != null) trigger.source.awakenSkill("zioy_kanglong"); + player.removeSkill("zioy_kanglong2"); + }, + "_priority": 0 + }, + "zioy_yixiang": { + group: ["zioy_yixiang2"], + trigger: { + source: "damageBegin1" + }, + forced: true, + content: function () { + trigger.nature = "fire"; + }, + "_priority": 0 + }, + "zioy_yixiang2": { + trigger: { + player: "damageBegin3" + }, + filter: function (event, player) { + if (event.nature != "fire") return false; - return true; - }, - forced:true, - content:function () { - trigger.num--; - }, - "_priority":0, - }, - "zioy_yuyan":{ - group:["feiying","mashu"], - init:function (player) { - player.disableEquip("equip3"); - player.disableEquip("equip4"); - }, - "_priority":0, - }, - "zioy_chuixing":{ - init:function (player) { - player.storage.yynum = [1]; - }, - trigger:{ - player:"useCardEnd", - }, - filter:function (event, player) { - if (event.getParent().name == "zioy_chuixing") return false; - if (event.card.name != "sha" && event.card.name != "huosha" && event.card.name != "leisha") return false; - return true; - }, - mark:true, - marktext:"吹星", - intro:{ - name:"吹星", - content:"你已累计使用#张【杀】", - onunmark:true, - }, - priority:1, - forced:true, - content:function () { - "step 0" - player.addMark("zioy_chuixing", 1); - var i = 0; - player.storage.yynum[0]++; - //while(i < player.storage.yynum.length){ - if (player.storage.yynum[i] % (2 + i) == 0) { - player.chooseUseTarget({ name: "sha", nature: "fire" }, false, false, "nodistance"); - if (i + 1 == player.storage.yynum.length) { - player.storage.yynum.push(0); - } - player.storage.yynum[i + 1]++; - //player.say('i = ' + i + '::' + player.storage.yynum[i]); - } - i++; - //} - }, - ai:{ - threaten:2, - }, - "_priority":100, - }, - "zioy_zhijin":{ - forced:true, - priority:15, - trigger:{ - player:"gainAfter", - }, - filter:function (event, player) { - return player.storage.lockflag == false; - }, - init:function (player) { - player.storage.lockflag = false; - }, - content:function () { - "step 0" - player.storage.lockflag = true; - "step 1" - var num = trigger.cards.length; - var sum = 0; - var res = []; - var n = 0; - var bools = [false]; - for (var i = num; i-- > 0; ) bools.push(true); - //player.damage(); - while (bools.randomGet()) { - sum++; - //player.gain(ui.cardPile[0],'gain2').type = 'zioy_zhijin'; - bools.push(false); - n++; - //res.push(ui.cardPile.splice(Math.floor(Math.random()*ui.cardPile.length), 1)[0]); - } - player.draw(sum); - //player.gain(res).type = 'zioy_zhijin'; - "step 2" - player.storage.lockflag = false; - }, - "_priority":1500, - }, - "zioy_xuanzhuan":{ - enable:"phaseUse", - filter:function (event, player) { - return true; - }, - check:2023, - usable:1, - content:function () { - "step 0" - event.current = player; - event.cp = []; - event.ps = []; - "step 1" - if (!event.current.countCards("h")) event.goto(3); - else - event.current.chooseCard("将一张牌置于" + get.translation(player) + "的武将牌上", "h", true).set("ai", function (card) { - var evt = _status.event.getParent(); - if (get.attitude(_status.event.player, evt.player) > 2) { - if (card.name == "jiu") return 120; - if (card.name == "tao") return 110; - } - return 100 - get.value(card); - }); - "step 2" - if (result.bool && result.cards && result.cards.length) { - player.addToExpansion(result.cards, "giveAuto", player).gaintag.add("zioy_xuanzhuan"); - event.ps.push(event.current); - if ([true, false, false].randomGet()) event.ps.push(player); - event.cp.push(result.cards); - } - "step 3" - event.current = event.current.next; - if (event.current != player) event.goto(1); - "step 4" - //player.damage(); - var cards = player.getExpansions("zioy_xuanzhuan"); - for (var i = cards.length; i-- > 0; ) { - var p = event.ps.randomGet(); - p.gain(cards[i], "draw"); - } - }, - ai:{ - result:{ - player:1, - }, - order:2.5, - }, - "_priority":0, - }, - "zioy_leiye1":{ - trigger:{ - source:"damageEnd", - }, - group:["zioy_leiye2"], - forced:function () { - return true; - }, - charlotte:true, - filter:function () { - return true; - }, - marktext:"墨", - intro:{ - name:"墨", - content:"mark", - onunmark:true, - }, - content:function () { - player.addMark(event.name); - }, - "_priority":0, - }, - "zioy_leiye2":{ - marktext:"霜", - intro:{ - name:"霜", - content:"mark", - onunmark:true, - }, - trigger:{ - player:["damageEnd","recoverAfter"], - }, - forced:true, - charlotte:true, - filter:function () { - return true; - }, - content:function () { - player.addMark("zioy_leiye2"); - }, - "_priority":0, - }, - "zioy_mosha":{ - enable:"phaseUse", - skillAnimation:true, - animationColor:"thunder", - juexingji:true, - unique:true, - filter:function (event, player) { - //return true; - return player.countMark("zioy_leiye1") > 2; - }, - filterTarget:function (card, player, target) { - return target != player; - }, - forced:true, - content:function () { - "step 0" - player.awakenSkill("zioy_mosha"); - player.awakenSkill("zioy_shuangsha"); - player.awakenSkill("zioy_leiye1"); - player.awakenSkill("zioy_leiye2"); - player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); - player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); - target.damage(3); - player.loseMaxHp(); - player.node.name.innerHTML /*= player.name = player.name1 = player.name2*/ = "墨玄飱阳"; - player.changeGroup("shen"); - player.update(); - "step 1" - player.storage.ly = 2; - }, - ai:{ - order:9, - result:{ - target:function (player, target) { - return target.hp - target.maxHp - 1; - return get.damageEffect(target, player); - }, - player:1, - }, - threaten:2, - }, - "_priority":0, - }, - "zioy_shuangsha":{ - enable:"phaseUse", - skillAnimation:true, - animationColor:"thunder", - juexingji:true, - unique:true, - filter:function (event, player) { - return player.countMark("zioy_leiye2") > 2; - }, - filterTarget:function (card, player, target) { - return target != player; - }, - forced:true, - content:function () { - "step 0" - player.awakenSkill("zioy_mosha"); - player.awakenSkill("zioy_shuangsha"); - player.awakenSkill("zioy_leiye1"); - player.awakenSkill("zioy_leiye2"); - player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); - player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); - player.awakenSkill("zioy_leiye2"); - player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); - player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); - target.damage(1); - player.recover(1); - player.gainMaxHp(1); - player.node.name.innerHTML /*= player.name = player.name1 = player.name2*/ = "霜华染月"; - player.changeGroup("shen"); - player.update(); - "step 1" - player.storage.ly = 3; - }, - ai:{ - order:9, - result:{ - target:function (player, target) { - return target.hp - target.maxHp - 1; - return get.damageEffect(target, player); - }, - player:1, - }, - threaten:2, - }, - "_priority":0, - }, - "zioy_lieying":{ - trigger:{ - source:"damageBegin", - }, - group:["zioy_lieying1"], - forced:true, - filter:function (event, player, trigger) { - return true; - }, - mod:{ - selectTarget:function (card, player, range) { - if (card.name == "sha" && range[1] != -1 && player.storage.ly == 3) range[1] += 1; - }, - }, - init:function (player) { - player.storage.ly = 1; - }, - content:function () { - player.draw(); - if (player.storage.ly == 2) trigger.num++; - if (player.storage.ly == 3) { - var n = player.maxHp - player.hp; - if (n % 2 == 1) n--; - //n /= 2; - player.recover(n / 2); - } - }, - "_priority":0, - }, - "zioy_lieying1":{ - trigger:{ - player:"useCard", - }, - forced:true, - filter:function (event, player, trigger) { - return player.storage.ly == 2 && event.card && event.card.name == "sha"; - }, - content:function () { - //trigger.target.addTempSkill('qinggang2'); - //trigger.target.storage.qinggang2.add(trigger.card); - //trigger.target.markSkill('qinggang2'); - trigger.directHit.addArray(game.players); - }, - "_priority":0, - }, - "zioy_wrjzc":{ - trigger:{ - player:"phaseBegin", - }, - filter:function (event, player) { - return game.hasPlayer(function (current) { - return current != player && current.countCards("h"); - }); - }, - direct:true, - locked:true, - content:function () { - var target = game - .filterPlayer(function (target) { - return player != target && target.countCards("h"); - }) - .randomGet(); - var cards = target.getCards("h"); - player.logSkill(event.name, target); - var content = [get.translation(target) + "的手牌", cards]; - game.log(player, "观看了", target, "的手牌"); - player.chooseControl("ok").set("dialog", content); - }, - "_priority":0, - }, - "zioy_zsyhj":{ - trigger:{ - player:"damageBegin3", - }, - group:["zioy_zsyhjn"], - locked:true, - forced:true, - filter:function (event, player) { - return event.num > 0; - }, - mod:{ - maxHandcardBase:function (player, num) { - return player.hujia; - }, - }, - init:function (player) { - player.storage.zsyhj1 = player.storage.zsyhj2 = false; - }, - content:function () { - if (event.nature) { - if (player.storage.zsyhj1) { - trigger.cancel(); - player.storage.zsyhj1 = false; - } else if (!player.storage.zsyhj2) player.storage.zsyhj1 = true; - } else { - if (player.storage.zsyhj2) { - trigger.cancel(); - player.storage.zsyhj2 = false; - } else if (!player.storage.zsyhj1) player.storage.zsyhj2 = true; - } - }, - mark:true, - marktext:"护甲", - intro:{ - mark:function (dialog, storage, player) { - if (player.storage.zsyhj1) { - return "防止受到属性伤害"; - } + return true; + }, + forced: true, + content: function () { + trigger.num--; + }, + "_priority": 0 + }, + "zioy_yuyan": { + group: ["feiying", "mashu"], + init: function (player) { + player.disableEquip("equip3"); + player.disableEquip("equip4"); + }, + "_priority": 0 + }, + "zioy_chuixing": { + init: function (player) { + player.storage.yynum = [1]; + }, + trigger: { + player: "useCardEnd" + }, + filter: function (event, player) { + if (event.getParent().name == "zioy_chuixing") return false; + if (event.card.name != "sha" && event.card.name != "huosha" && event.card.name != "leisha") return false; + return true; + }, + mark: true, + marktext: "吹星", + intro: { + name: "吹星", + content: "你已累计使用#张【杀】", + onunmark: true + }, + priority: 1, + forced: true, + content: function () { + "step 0" + player.addMark("zioy_chuixing", 1); + var i = 0; + player.storage.yynum[0]++; + //while(i < player.storage.yynum.length){ + if (player.storage.yynum[i] % (2 + i) == 0) { + player.chooseUseTarget({ name: "sha", nature: "fire" }, false, false, "nodistance"); + if (i + 1 == player.storage.yynum.length) { + player.storage.yynum.push(0); + } + player.storage.yynum[i + 1]++; + //player.say('i = ' + i + '::' + player.storage.yynum[i]); + } + i++; + //} + }, + ai: { + threaten: 2 + }, + "_priority": 100 + }, + "zioy_zhijin": { + forced: true, + priority: 15, + trigger: { + player: "gainAfter" + }, + filter: function (event, player) { + return player.storage.lockflag == false; + }, + init: function (player) { + player.storage.lockflag = false; + }, + content: function () { + "step 0" + player.storage.lockflag = true; + "step 1" + var num = trigger.cards.length; + var sum = 0; + var res = []; + var n = 0; + var bools = [false]; + for (var i = num; i-- > 0; ) bools.push(true); + //player.damage(); + while (bools.randomGet()) { + sum++; + //player.gain(ui.cardPile[0],'gain2').type = 'zioy_zhijin'; + bools.push(false); + n++; + //res.push(ui.cardPile.splice(Math.floor(Math.random()*ui.cardPile.length), 1)[0]); + } + player.draw(sum); + //player.gain(res).type = 'zioy_zhijin'; + "step 2" + player.storage.lockflag = false; + }, + "_priority": 1500 + }, + "zioy_xuanzhuan": { + enable: "phaseUse", + filter: function (event, player) { + return true; + }, + check: 2023, + usable: 1, + content: function () { + "step 0" + event.current = player; + event.cp = []; + event.ps = []; + "step 1" + if (!event.current.countCards("h")) event.goto(3); + else + event.current.chooseCard("将一张牌置于" + get.translation(player) + "的武将牌上", "h", true).set("ai", function (card) { + var evt = _status.event.getParent(); + if (get.attitude(_status.event.player, evt.player) > 2) { + if (card.name == "jiu") return 120; + if (card.name == "tao") return 110; + } + return 100 - get.value(card); + }); + "step 2" + if (result.bool && result.cards && result.cards.length) { + player.addToExpansion(result.cards, "giveAuto", player).gaintag.add("zioy_xuanzhuan"); + event.ps.push(event.current); + if ([true, false, false].randomGet()) event.ps.push(player); + event.cp.push(result.cards); + } + "step 3" + event.current = event.current.next; + if (event.current != player) event.goto(1); + "step 4" + //player.damage(); + var cards = player.getExpansions("zioy_xuanzhuan"); + for (var i = cards.length; i-- > 0; ) { + var p = event.ps.randomGet(); + p.gain(cards[i], "draw"); + } + }, + ai: { + result: { + player: 1 + }, + order: 2.5 + }, + "_priority": 0 + }, + "zioy_leiye1": { + trigger: { + source: "damageEnd" + }, + group: ["zioy_leiye2"], + forced: function () { + return true; + }, + charlotte: true, + filter: function () { + return true; + }, + marktext: "墨", + intro: { + name: "墨", + content: "mark", + onunmark: true + }, + content: function () { + player.addMark(event.name); + }, + "_priority": 0 + }, + "zioy_leiye2": { + marktext: "霜", + intro: { + name: "霜", + content: "mark", + onunmark: true + }, + trigger: { + player: ["damageEnd", "recoverAfter"] + }, + forced: true, + charlotte: true, + filter: function () { + return true; + }, + content: function () { + player.addMark("zioy_leiye2"); + }, + "_priority": 0 + }, + "zioy_mosha": { + enable: "phaseUse", + skillAnimation: true, + animationColor: "thunder", + juexingji: true, + unique: true, + filter: function (event, player) { + //return true; + return player.countMark("zioy_leiye1") > 2; + }, + filterTarget: function (card, player, target) { + return target != player; + }, + forced: true, + content: function () { + "step 0" + player.awakenSkill("zioy_mosha"); + player.awakenSkill("zioy_shuangsha"); + player.awakenSkill("zioy_leiye1"); + player.awakenSkill("zioy_leiye2"); + player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); + player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); + target.damage(3); + player.loseMaxHp(); + player.node.name.innerHTML /*= player.name = player.name1 = player.name2*/ = "墨玄飱阳"; + player.changeGroup("shen"); + player.update(); + "step 1" + player.storage.ly = 2; + }, + ai: { + order: 9, + result: { + target: function (player, target) { + return target.hp - target.maxHp - 1; + return get.damageEffect(target, player); + }, + player: 1 + }, + threaten: 2 + }, + "_priority": 0 + }, + "zioy_shuangsha": { + enable: "phaseUse", + skillAnimation: true, + animationColor: "thunder", + juexingji: true, + unique: true, + filter: function (event, player) { + return player.countMark("zioy_leiye2") > 2; + }, + filterTarget: function (card, player, target) { + return target != player; + }, + forced: true, + content: function () { + "step 0" + player.awakenSkill("zioy_mosha"); + player.awakenSkill("zioy_shuangsha"); + player.awakenSkill("zioy_leiye1"); + player.awakenSkill("zioy_leiye2"); + player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); + player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); + player.awakenSkill("zioy_leiye2"); + player.removeMark("zioy_leiye1", player.countMark("zioy_leiye1")); + player.removeMark("zioy_leiye2", player.countMark("zioy_leiye2")); + target.damage(1); + player.recover(1); + player.gainMaxHp(1); + player.node.name.innerHTML /*= player.name = player.name1 = player.name2*/ = "霜华染月"; + player.changeGroup("shen"); + player.update(); + "step 1" + player.storage.ly = 3; + }, + ai: { + order: 9, + result: { + target: function (player, target) { + return target.hp - target.maxHp - 1; + return get.damageEffect(target, player); + }, + player: 1 + }, + threaten: 2 + }, + "_priority": 0 + }, + "zioy_lieying": { + trigger: { + source: "damageBegin" + }, + group: ["zioy_lieying1"], + forced: true, + filter: function (event, player, trigger) { + return true; + }, + mod: { + selectTarget: function (card, player, range) { + if (card.name == "sha" && range[1] != -1 && player.storage.ly == 3) range[1] += 1; + } + }, + init: function (player) { + player.storage.ly = 1; + }, + content: function () { + player.draw(); + if (player.storage.ly == 2) trigger.num++; + if (player.storage.ly == 3) { + var n = player.maxHp - player.hp; + if (n % 2 == 1) n--; + //n /= 2; + player.recover(n / 2); + } + }, + "_priority": 0 + }, + "zioy_lieying1": { + trigger: { + player: "useCard" + }, + forced: true, + filter: function (event, player, trigger) { + return player.storage.ly == 2 && event.card && event.card.name == "sha"; + }, + content: function () { + //trigger.target.addTempSkill('qinggang2'); + //trigger.target.storage.qinggang2.add(trigger.card); + //trigger.target.markSkill('qinggang2'); + trigger.directHit.addArray(game.players); + }, + "_priority": 0 + }, + "zioy_wrjzc": { + trigger: { + player: "phaseBegin" + }, + filter: function (event, player) { + return game.hasPlayer(function (current) { + return current != player && current.countCards("h"); + }); + }, + direct: true, + locked: true, + content: function () { + var target = game + .filterPlayer(function (target) { + return player != target && target.countCards("h"); + }) + .randomGet(); + var cards = target.getCards("h"); + player.logSkill(event.name, target); + var content = [get.translation(target) + "的手牌", cards]; + game.log(player, "观看了", target, "的手牌"); + player.chooseControl("ok").set("dialog", content); + }, + "_priority": 0 + }, + "zioy_zsyhj": { + trigger: { + player: "damageBegin3" + }, + group: ["zioy_zsyhjn"], + locked: true, + forced: true, + filter: function (event, player) { + return event.num > 0; + }, + mod: { + maxHandcardBase: function (player, num) { + return player.hujia; + } + }, + init: function (player) { + player.storage.zsyhj1 = player.storage.zsyhj2 = false; + }, + content: function () { + if (event.nature) { + if (player.storage.zsyhj1) { + trigger.cancel(); + player.storage.zsyhj1 = false; + } else if (!player.storage.zsyhj2) player.storage.zsyhj1 = true; + } else { + if (player.storage.zsyhj2) { + trigger.cancel(); + player.storage.zsyhj2 = false; + } else if (!player.storage.zsyhj1) player.storage.zsyhj2 = true; + } + }, + mark: true, + marktext: "护甲", + intro: { + mark: function (dialog, storage, player) { + if (player.storage.zsyhj1) { + return "防止受到属性伤害"; + } - if (player.storage.zsyhj2) { - return "防止受到无属性伤害"; - } - return "未拥有护盾"; - }, - markcount:"expansion", - }, - "_priority":0, - }, - "zioy_weixiang":{ - trigger:{ - global:"phaseBefore", - player:"enterGame", - }, - forced:true, - filter:function (event) { - return game.players.length > 1 && (event.name != "phase" || game.phaseNumber == 0); - }, - content:function () { - "step 0" - player - .chooseTarget("请选择【伪像】的目标", lib.translate.zioyweixiang__info, true, function (card, player, target) { - return target != player && (!player.storage.xianfu2 || !player.storage.xianfu2.contains(target)); - }) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - if (att > 0) return att + 1; - if (att == 0) return Math.random(); - return att; - }).animate = false; - "step 1" - if (result.bool) { - var target = result.targets[0]; - player.reinit(player.name, target.name); - player.hp = target.hp; - player.maxHp = target.maxHp; - player.hujia = target.hujia; - player.update(); - } - }, - "_priority":0, - }, - "zioy_zsyhjn":{ - trigger:{ - global:"phaseBefore", - }, - forced:true, - filter:function (event, player) { - return player.maxHp > 1; - }, - content:function () { - var n = player.maxHp - 1; - player.maxHp = 1; - player.hujia += n; - player.update(); - }, - "_priority":0, - }, - "zioy_fansheng":{ - trigger:{ - player:"die", - }, - filter:function (event, player) { - return event.source && event.source.isIn(); - }, - forced:true, - forceDie:true, - logTarget:"source", - skillAnimation:true, - animationColor:"gray", - content:function () { - var a = trigger.source; - a.addSkill("zioy_nianzhong"); - a.storage.orimaxHp = a.maxHp; - a.loseMaxHp(a.maxHp - 1); - a.storage.zioy_nianzhong = player; - a.disableEquip("equip3"); - //a.disableEquip('equip4'); - //a.disableEquip('equip1'); - a.disableEquip("equip2"); - a.disableEquip("equip5"); - }, - ai:{ - threaten:function (player, target) { - if (target.hp == 1) return 0.2; - return 1.5; - }, - effect:{ - target:function (card, player, target, current) { - if (!target.hasFriend()) return; - if (target.hp <= 1 && get.tag(card, "damage")) return [1, 0, 0, -2]; - }, - }, - }, - "_priority":0, - }, - "zioy_nianzhong":{ - trigger:{ - player:"die", - }, - filter:function (event, player) { - return true; - }, - forced:true, - forceDie:true, - skillAnimation:true, - animationColor:"gray", - content:function () { - player.storage.zioy_nianzhong.revive(); - player.storage.zioy_nianzhong.gainMaxHp(player.storage.orimaxHp); - player.storage.zioy_nianzhong.draw(player.storage.orimaxHp); - player.storage.zioy_nianzhong.recover(player.storage.orimaxHp); - game.swapSeat(player, player.storage.zioy_nianzhong); - var target = player; - var list = []; - if (lib.character[target.name]) list.addArray(lib.character[target.name][3]); - if (lib.character[target.name1]) list.addArray(lib.character[target.name1][3]); - if (lib.character[target.name2]) list.addArray(lib.character[target.name2][3]); - player.storage.zioy_nianzhong.addSkill(list); - player.storage.zioy_nianzhong.insertPhase(); - var a = player.storage.zioy_nianzhong; - var n = a.storage.nianxi_num; - a.addSkill("zioy_nianxi"); - a.storage.nianxi_num = n; - a.addMark("zioy_nianxi", 1); - a.removeMark("zioy_nianxi", Infinity); - }, - ai:{ - effect:{ - target:function (card, player, target, current) { - if (get.tag(card, "damage")) return 200000; - }, - }, - }, - "_priority":0, - }, - "zioy_jifou":{ - trigger:{ - global:"roundStart", - }, - filter:function (event, player) { - return true; - }, - forced:true, - content:function () { - "step 0" - player - .chooseTarget(get.prompt2(event.name), function (card, player, target) { - return player != target; - }) - .set("ai", function (target) { - var num = get.attitude(_status.event.player, target); - if (num > 0) { - if (target.hp == 1) { - num += 2; - } - if (target.hp < target.maxHp) { - num += 2; - } - } - return num; - }) - .set("sourcex", trigger.source); - "step 1" - if (result.bool) { - var n = 3; - target = result.targets[0]; - target.gainMaxHp(n); - target.recover(n + target.maxHp - target.hp); - target.draw(n); - target.addSkill("zioy_jifou2"); - if (player.identity == "zhu") { - player.identity = target.identity; - target.identity = "zhu"; - player.update(); - target.showIdentity(); - player.showIdentity(); - target.update(); - game.zhu = target; - } - player.loseHp(Infinity); - player.die(); - } - }, - ai:{ - order:8, - result:{ - target:function (player, target) { - if (ui.selected.targets.length == 0) { - return -3; - } else { - return get.effect(target, { name: "juedou" }, ui.selected.targets[0], target); - } - }, - }, - expose:0.4, - threaten:3, - }, - mark:true, - intro:{ - content:"limited", - }, - init:function (player, skill) { - player.storage[skill] = false; - }, - "_priority":0, - }, - "zioy_jifou2":{ - trigger:{ - player:"phaseDrawBegin2", - }, - priority:-1, - forced:true, - filter:function (event, player) { - return !event.numFixed; - }, - content:function () { - trigger.num = trigger.num + 3; - }, - ai:{ - threaten:1.5, - }, - mod:{ - maxHandcardBase:function (player, num) { - return num + 3; - }, - }, - "_priority":-100, - }, - "zioy_liubo":{ - trigger:{ - global:["loseAfter"], - }, - group:["zioy_liubo2"], - filter:function (event, player) { - //return true; - //if(player.storage.liuboflag == false) return false; - for (var i = 0; i < event.cards2.length; i++) { - if (get.position(event.cards2[0], true) == "d") { - return true; - } - } - return false; - }, - init:function (player) { - player.storage.liuboflag = false; - player.storage.liubocard = null; - player.storage.liubosum = 0; - }, - direct:true, - content:function () { - for (var i = 0; i < trigger.cards2.length; i++) { - player.storage.liubocard = trigger.cards2[i]; - player.storage.liuboflag = true; - } - }, - mark:true, - intro:{ - mark:function (dialog, storage, player) { - if (player.storage.liuboflag == false) return "未记录"; - if (player.isUnderControl(true)) dialog.addAuto(player.storage.liubocard); - else return "已记录"; - }, - markcount:"expansion", - }, - "_priority":0, - }, - "zioy_liubo2":{ - trigger:{ - player:"useCard2", - }, - direct:true, - filter:function (event, player) { - if (player.storage.liubocard == null) return false; - var type = get.type(event.card); - return type == "basic" || type == "trick"; - }, - content:function () { - "step 0" - var goon = false; - var info = get.info(trigger.card); - if (trigger.targets && !info.multitarget) { - var players = game.filterPlayer(); - for (var i = 0; i < players.length; i++) { - if (lib.filter.targetEnabled2(trigger.card, player, players[i]) && !trigger.targets.contains(players[i])) { - goon = true; - break; - } - } - } - if (goon) { - player - .chooseTarget(event.name + ":是否额外指定一名" + get.translation(trigger.card) + "的目标?", function (card, player, target) { - var trigger = _status.event; - if (trigger.targets.contains(target)) return false; - return lib.filter.targetEnabled2(trigger.card, _status.event.player, target); - }) - .set("ai", function (target) { - var trigger = _status.event.getTrigger(); - var player = _status.event.player; - return get.effect(target, trigger.card, player, player); - }) - .set("targets", trigger.targets) - .set("card", trigger.card); - } else { - if (!info.multitarget && trigger.targets && trigger.targets.length > 1) { - event.finish(); - } - } - "step 1" - if (result.bool) { - if (!event.isMine()) game.delayx(); - event.target = result.targets[0]; - } else { - event.finish(); - } - "step 2" - if (event.target) { - player.gain(player.storage.liubocard); - player.storage.liubocard = null; - player.storage.liuboflag = false; - player.storage.liubosum++; - player.logSkill("zioy_liubo2", event.target); - trigger.targets.add(event.target); - } - event.finish(); - }, - "_priority":0, - }, - "zioy_shuiyue":{ - trigger:{ - player:"phaseJieshuBegin", - }, - frequent:false, - filter:function (event, player) { - return player.storage.liubosum > 0; - }, - content:function () { - if (player.storage.liubosum > 0) player.draw(player.storage.liubosum); - var n = 0; - while (n * 1.5 <= player.storage.liubosum) n++; - player.storage.liubosum = n - 1; - }, - check:function (event, player) { - return player.storage.liubosum > 3; - }, - mark:true, - intro:{ - mark:function (dialog, storage, player) { - return "已记录" + player.storage.liubosum + "次〖流波〗"; - }, - markcount:"expansion", - }, - "_priority":0, - }, - "zioy_moying":{ - enable:"phaseUse", - usable:1, - check:function () { - return true; - }, - discard:false, - line:true, - position:"h", - init:function (player) { - player.storage.shadowl = []; - }, - filter:function (event, player) { - return player.countCards("h", { color: "black" }) > 0; - }, - filterCard:function (card) { - return get.color(card) == "black"; - }, - filterTarget:function (card, player, target) { - if (target == player) return false; - return !target.hasSkill("zioy_moying2"); - //return !player.storage.shadowl.contains(target); - }, - content:function () { - if (player.storage.shadowl.length > 1) { - var p = player.storage.shadowl[0]; - p.removeSkill("zioy_moying2"); - player.storage.shadowl.shift(); - } - player.storage.shadowl.push(target); - target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_moying"); - target.addSkill("zioy_moying2"); - target.storage.shadow_source = player; - target.storage.shadow_card = cards; - //target.loseHp(); - }, - ai:{ - order:9, - result:{ - target:function (player, target) { - return target.hp - target.maxHp - 1; - return get.damageEffect(target, player); - }, - player:1, - }, - threaten:2, - }, - "_priority":0, - }, - "zioy_yingdun":{ - audio:"ext:无源之流:2", - audioname:["re_daqiao","daxiaoqiao"], - trigger:{ - target:"useCardToTarget", - }, - direct:true, - preHidden:true, - filter:function (event, player) { - //if(event.card.name!='sha') return false; - if (player.storage.shadowl.length == 0) return false; - return game.hasPlayer(function (current) { - //var evt=_status.event.getTrigger(); - return ( - current != event.player && //current!=trigger.source&& - player.storage.shadowl.contains(current) && - current.storage.shadow_flag && - !event.targets.contains(current) - ); - }); - }, - content:function () { - "step 0" - player - .chooseTarget("请选择【影遁】的目标", lib.translate.zioy_yingdun_info, false, function (card, player, target) { - var evt = _status.event.getTrigger(); - //return !evt.targets.contains(target) - return ( - target != event.player && - !evt.targets.contains(target) && - target != trigger.source && //trigger.targets.contains(target)&& - player.storage.shadowl.contains(target) && - target.storage.shadow_flag - ); /*&&lib.filter.targetEnabled(event.card,event.player,target);*/ - }) - .set("ai", function (target) { - return [1, -1].randomGet(); - }); - "step 1" - if (result.bool) { - var target = result.targets[0]; - target.storage.shadow_flag = false; - game.swapSeat(player, target); - player.logSkill(event.name, target); - //player.discard(result.cards); - var evt = trigger.getParent(); - evt.triggeredTargets2.remove(player); - evt.targets.remove(player); - evt.targets.push(target); - } - }, - "_priority":0, - }, - "zioy_moying2":{ - mark:true, - intro:{ - mark:function (dialog, storage, player) { - dialog.addAuto(player.storage.shadow_card); - //else return '已记录'; - }, - markcount:"expansion", - }, - group:["zioy_moying3"], - init:function (player) { - player.storage.shadow_flag = true; - //player.addMark('zioy_moying2'); - }, - onremove:function (player) { - player.storage.shadow_source.gain(player.storage.shadow_card); - //player.removeMark('zioy_moying2'); - }, - trigger:{ - global:"useCard", - }, - filter:function (event, player) { - /*var flag = false; + if (player.storage.zsyhj2) { + return "防止受到无属性伤害"; + } + return "未拥有护盾"; + }, + markcount: "expansion" + }, + "_priority": 0 + }, + "zioy_weixiang": { + trigger: { + global: "phaseBefore", + player: "enterGame" + }, + forced: true, + filter: function (event) { + return game.players.length > 1 && (event.name != "phase" || game.phaseNumber == 0); + }, + content: function () { + "step 0" + player + .chooseTarget("请选择【伪像】的目标", lib.translate.zioyweixiang__info, true, function (card, player, target) { + return target != player && (!player.storage.xianfu2 || !player.storage.xianfu2.contains(target)); + }) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + if (att > 0) return att + 1; + if (att == 0) return Math.random(); + return att; + }).animate = false; + "step 1" + if (result.bool) { + var target = result.targets[0]; + player.reinit(player.name, target.name); + player.hp = target.hp; + player.maxHp = target.maxHp; + player.hujia = target.hujia; + player.update(); + } + }, + "_priority": 0 + }, + "zioy_zsyhjn": { + trigger: { + global: "phaseBefore" + }, + forced: true, + filter: function (event, player) { + return player.maxHp > 1; + }, + content: function () { + var n = player.maxHp - 1; + player.maxHp = 1; + player.hujia += n; + player.update(); + }, + "_priority": 0 + }, + "zioy_fansheng": { + trigger: { + player: "die" + }, + filter: function (event, player) { + return event.source && event.source.isIn(); + }, + forced: true, + forceDie: true, + logTarget: "source", + skillAnimation: true, + animationColor: "gray", + content: function () { + var a = trigger.source; + a.addSkill("zioy_nianzhong"); + a.storage.orimaxHp = a.maxHp; + a.loseMaxHp(a.maxHp - 1); + a.storage.zioy_nianzhong = player; + a.disableEquip("equip3"); + //a.disableEquip('equip4'); + //a.disableEquip('equip1'); + a.disableEquip("equip2"); + a.disableEquip("equip5"); + }, + ai: { + threaten: function (player, target) { + if (target.hp == 1) return 0.2; + return 1.5; + }, + effect: { + target: function (card, player, target, current) { + if (!target.hasFriend()) return; + if (target.hp <= 1 && get.tag(card, "damage")) return [1, 0, 0, -2]; + } + } + }, + "_priority": 0 + }, + "zioy_nianzhong": { + trigger: { + player: "die" + }, + filter: function (event, player) { + return true; + }, + forced: true, + forceDie: true, + skillAnimation: true, + animationColor: "gray", + content: function () { + player.storage.zioy_nianzhong.revive(); + player.storage.zioy_nianzhong.gainMaxHp(player.storage.orimaxHp); + player.storage.zioy_nianzhong.draw(player.storage.orimaxHp); + player.storage.zioy_nianzhong.recover(player.storage.orimaxHp); + game.swapSeat(player, player.storage.zioy_nianzhong); + var target = player; + var list = []; + if (lib.character[target.name]) list.addArray(lib.character[target.name][3]); + if (lib.character[target.name1]) list.addArray(lib.character[target.name1][3]); + if (lib.character[target.name2]) list.addArray(lib.character[target.name2][3]); + player.storage.zioy_nianzhong.addSkill(list); + player.storage.zioy_nianzhong.insertPhase(); + var a = player.storage.zioy_nianzhong; + var n = a.storage.nianxi_num; + a.addSkill("zioy_nianxi"); + a.storage.nianxi_num = n; + a.addMark("zioy_nianxi", 1); + a.removeMark("zioy_nianxi", Infinity); + }, + ai: { + effect: { + target: function (card, player, target, current) { + if (get.tag(card, "damage")) return 200000; + } + } + }, + "_priority": 0 + }, + "zioy_jifou": { + trigger: { + global: "roundStart" + }, + filter: function (event, player) { + return true; + }, + forced: true, + content: function () { + "step 0" + player + .chooseTarget(get.prompt2(event.name), function (card, player, target) { + return player != target; + }) + .set("ai", function (target) { + var num = get.attitude(_status.event.player, target); + if (num > 0) { + if (target.hp == 1) { + num += 2; + } + if (target.hp < target.maxHp) { + num += 2; + } + } + return num; + }) + .set("sourcex", trigger.source); + "step 1" + if (result.bool) { + var n = 3; + target = result.targets[0]; + target.gainMaxHp(n); + target.recover(n + target.maxHp - target.hp); + target.draw(n); + target.addSkill("zioy_jifou2"); + if (player.identity == "zhu") { + player.identity = target.identity; + target.identity = "zhu"; + player.update(); + target.showIdentity(); + player.showIdentity(); + target.update(); + game.zhu = target; + } + player.loseHp(Infinity); + player.die(); + } + }, + ai: { + order: 8, + result: { + target: function (player, target) { + if (ui.selected.targets.length == 0) { + return -3; + } else { + return get.effect(target, { name: "juedou" }, ui.selected.targets[0], target); + } + } + }, + expose: 0.4, + threaten: 3 + }, + mark: true, + intro: { + content: "limited" + }, + init: function (player, skill) { + player.storage[skill] = false; + }, + "_priority": 0 + }, + "zioy_jifou2": { + trigger: { + player: "phaseDrawBegin2" + }, + priority: -1, + forced: true, + filter: function (event, player) { + return !event.numFixed; + }, + content: function () { + trigger.num = trigger.num + 3; + }, + ai: { + threaten: 1.5 + }, + mod: { + maxHandcardBase: function (player, num) { + return num + 3; + } + }, + "_priority": -100 + }, + "zioy_liubo": { + trigger: { + global: ["loseAfter"] + }, + group: ["zioy_liubo2"], + filter: function (event, player) { + //return true; + //if(player.storage.liuboflag == false) return false; + for (var i = 0; i < event.cards2.length; i++) { + if (get.position(event.cards2[0], true) == "d") { + return true; + } + } + return false; + }, + init: function (player) { + player.storage.liuboflag = false; + player.storage.liubocard = null; + player.storage.liubosum = 0; + }, + direct: true, + content: function () { + for (var i = 0; i < trigger.cards2.length; i++) { + player.storage.liubocard = trigger.cards2[i]; + player.storage.liuboflag = true; + } + }, + mark: true, + intro: { + mark: function (dialog, storage, player) { + if (player.storage.liuboflag == false) return "未记录"; + if (player.isUnderControl(true)) dialog.addAuto(player.storage.liubocard); + else return "已记录"; + }, + markcount: "expansion" + }, + "_priority": 0 + }, + "zioy_liubo2": { + trigger: { + player: "useCard2" + }, + direct: true, + filter: function (event, player) { + if (player.storage.liubocard == null) return false; + var type = get.type(event.card); + return type == "basic" || type == "trick"; + }, + content: function () { + "step 0" + var goon = false; + var info = get.info(trigger.card); + if (trigger.targets && !info.multitarget) { + var players = game.filterPlayer(); + for (var i = 0; i < players.length; i++) { + if (lib.filter.targetEnabled2(trigger.card, player, players[i]) && !trigger.targets.contains(players[i])) { + goon = true; + break; + } + } + } + if (goon) { + player + .chooseTarget(event.name + ":是否额外指定一名" + get.translation(trigger.card) + "的目标?", function (card, player, target) { + var trigger = _status.event; + if (trigger.targets.contains(target)) return false; + return lib.filter.targetEnabled2(trigger.card, _status.event.player, target); + }) + .set("ai", function (target) { + var trigger = _status.event.getTrigger(); + var player = _status.event.player; + return get.effect(target, trigger.card, player, player); + }) + .set("targets", trigger.targets) + .set("card", trigger.card); + } else { + if (!info.multitarget && trigger.targets && trigger.targets.length > 1) { + event.finish(); + } + } + "step 1" + if (result.bool) { + if (!event.isMine()) game.delayx(); + event.target = result.targets[0]; + } else { + event.finish(); + } + "step 2" + if (event.target) { + player.gain(player.storage.liubocard); + player.storage.liubocard = null; + player.storage.liuboflag = false; + player.storage.liubosum++; + player.logSkill("zioy_liubo2", event.target); + trigger.targets.add(event.target); + } + event.finish(); + }, + "_priority": 0 + }, + "zioy_shuiyue": { + trigger: { + player: "phaseJieshuBegin" + }, + frequent: false, + filter: function (event, player) { + return player.storage.liubosum > 0; + }, + content: function () { + if (player.storage.liubosum > 0) player.draw(player.storage.liubosum); + var n = 0; + while (n * 1.5 <= player.storage.liubosum) n++; + player.storage.liubosum = n - 1; + }, + check: function (event, player) { + return player.storage.liubosum > 3; + }, + mark: true, + intro: { + mark: function (dialog, storage, player) { + return "已记录" + player.storage.liubosum + "次〖流波〗"; + }, + markcount: "expansion" + }, + "_priority": 0 + }, + "zioy_moying": { + enable: "phaseUse", + usable: 1, + check: function () { + return true; + }, + discard: false, + line: true, + position: "h", + init: function (player) { + player.storage.shadowl = []; + }, + filter: function (event, player) { + return player.countCards("h", { color: "black" }) > 0; + }, + filterCard: function (card) { + return get.color(card) == "black"; + }, + filterTarget: function (card, player, target) { + if (target == player) return false; + return !target.hasSkill("zioy_moying2"); + //return !player.storage.shadowl.contains(target); + }, + content: function () { + if (player.storage.shadowl.length > 1) { + var p = player.storage.shadowl[0]; + p.removeSkill("zioy_moying2"); + player.storage.shadowl.shift(); + } + player.storage.shadowl.push(target); + target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_moying"); + target.addSkill("zioy_moying2"); + target.storage.shadow_source = player; + target.storage.shadow_card = cards; + //target.loseHp(); + }, + ai: { + order: 9, + result: { + target: function (player, target) { + return target.hp - target.maxHp - 1; + return get.damageEffect(target, player); + }, + player: 1 + }, + threaten: 2 + }, + "_priority": 0 + }, + "zioy_yingdun": { + audio: "ext:无源之流:2", + audioname: ["re_daqiao", "daxiaoqiao"], + trigger: { + target: "useCardToTarget" + }, + direct: true, + preHidden: true, + filter: function (event, player) { + //if(event.card.name!='sha') return false; + if (player.storage.shadowl.length == 0) return false; + return game.hasPlayer(function (current) { + //var evt=_status.event.getTrigger(); + return ( + current != event.player && //current!=trigger.source&& + player.storage.shadowl.contains(current) && + current.storage.shadow_flag && + !event.targets.contains(current) + ); + }); + }, + content: function () { + "step 0" + player + .chooseTarget("请选择【影遁】的目标", lib.translate.zioy_yingdun_info, false, function (card, player, target) { + var evt = _status.event.getTrigger(); + //return !evt.targets.contains(target) + return ( + target != event.player && + !evt.targets.contains(target) && + target != trigger.source && //trigger.targets.contains(target)&& + player.storage.shadowl.contains(target) && + target.storage.shadow_flag + ); /*&&lib.filter.targetEnabled(event.card,event.player,target);*/ + }) + .set("ai", function (target) { + return [1, -1].randomGet(); + }); + "step 1" + if (result.bool) { + var target = result.targets[0]; + target.storage.shadow_flag = false; + game.swapSeat(player, target); + player.logSkill(event.name, target); + //player.discard(result.cards); + var evt = trigger.getParent(); + evt.triggeredTargets2.remove(player); + evt.targets.remove(player); + evt.targets.push(target); + } + }, + "_priority": 0 + }, + "zioy_moying2": { + mark: true, + intro: { + mark: function (dialog, storage, player) { + dialog.addAuto(player.storage.shadow_card); + //else return '已记录'; + }, + markcount: "expansion" + }, + group: ["zioy_moying3"], + init: function (player) { + player.storage.shadow_flag = true; + //player.addMark('zioy_moying2'); + }, + onremove: function (player) { + player.storage.shadow_source.gain(player.storage.shadow_card); + //player.removeMark('zioy_moying2'); + }, + trigger: { + global: "useCard" + }, + filter: function (event, player) { + /*var flag = false; for(var card of event.cards){ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true; }*/ - return ( - event.targets && - event.targets.length == 1 && - //flag&& - event.targets[0] != player && - event.targets[0] != player.storage.shadow_source && - event.targets[0].isAlive() && - event.player == player.storage.shadow_source && - //get.type(event.cards[0].name) == 'basic'&& - //get.type(event.cards[0].name) == 'trick'&& - //lib.filter.targetInRange(card,this,target)&& - //player.canUse(event.cards,event.targets[0])&& - true - ); - }, - direct:true, - content:function () { - player.useCard(trigger.cards, trigger.targets[0]); - //game.delay(0.5); - }, - "_priority":0, - }, - "zioy_jianying":{ - trigger:{ - player:"showCharacterAfter", - }, - forced:true, - hiddenSkill:true, - filter:function (event, player) { - return true; - }, - content:function () { - "step 0" - player - .chooseTarget("请选择【末影】的目标", lib.translate.zioy_jianying_info, false, function (card, player, target) { - if (target == player) return false; - return !target.hasSkill("zioy_moying2"); - }) - .set("ai", function (target) { - return 1; - }); - "step 1" - if (result.bool) { - var target = result.targets[0]; - if (player.storage.shadowl.length > 1) { - var p = player.storage.shadowl[0]; - p.removeSkill("zioy_moying2"); - player.storage.shadowl.shift(); - } - var cards = game.createCard("sha", "spade", Infinity); - player.storage.shadowl.push(target); - target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_moying"); - target.addSkill("zioy_moying2"); - target.storage.shadow_source = player; - target.storage.shadow_card = cards; - } - }, - "_priority":0, - }, - "zioy_moying3":{ - trigger:{ - player:"die", - }, - filter:function (event, player) { - return true; - }, - direct:true, - forceDie:true, - content:function () { - var p = player.storage.shadow_source; - if (p.storage.shadowl[0] == player) p.storage.shadowl.shift(); - else p.storage.shadowl.pop(); - }, - "_priority":0, - }, - "zioy_yuexiang":{ - trigger:{ - player:"phaseDrawBegin2", - }, - group:["zioy_yuexiang2"], - direct:true, - filter:function (event, player) { - return !event.numFixed; - }, - priority:3, - init:function (player) { - player.storage.yuexiang_num = [0, 1, 2, 3].randomGet(); - player.storage.yuexiang_list = ["🌓", "🌕", "🌘", "🌑"]; - player.storage.yuexiang_list2 = ["上弦", "满月", "下弦", "新月"]; - }, - content:function () { - var n = 0; - var index = 1; - if (player.storage.douzhuan_flag) index = 2; - if (player.storage.yuexiang_num == 1) n = 2 * index; - else if (player.storage.yuexiang_num == 3) n = 0 * index; - else n = index; - trigger.num += n; - }, - ai:{ - threaten:1.3, - }, - mark:true, - intro:{ - mark:function (dialog, storage, player) { - return player.storage.yuexiang_list2[player.storage.yuexiang_num]; - }, - markcount:"expansion", - }, - "_priority":300, - }, - "zioy_yuexiang2":{ - trigger:{ - global:"roundStart", - }, - filter:function (event, player) { - return true; - }, - direct:true, - content:function () { - player.storage.yuexiang_num++; - player.storage.yuexiang_num %= 4; - if (player.storage.yuexiang_num == 1) { - var p = null; - if (player.hasSkill("zioy_xingdou")) { - p = player; - } - if (player.next.hasSkill("zioy_xingdou")) { - p = player.next; - } - if (player.previous.hasSkill("zioy_xingdou")) { - p = player.previous; - } - if (p != null) { - player.gain(p.getExpansions("zioy_xingdou")); - player.storage.douzhuan_flag = true; - } - } - }, - "_priority":0, - }, - "zioy_douzhuan":{ - trigger:{ - global:"phaseBefore", - player:"enterGame", - }, - direct:true, - unique:true, - group:["zioy_douzhuan2"], - filter:function (event, player) { - return event.name != "phase" || game.phaseNumber == 0; - }, - init:function (player) { - player.storage.douzhuan_flag = false; - }, - priority:1, - forceunique:true, - content:function () { - "step 0" - var targets = game.players; - var target = targets.randomGet(); - var cards = get.cards(7); - target.addToExpansion(cards, "draw").gaintag.add("zioy_xingdou"); - target.addSkill("zioy_xingdou"); - target.storage.zioy_xingdou_lastround = game.phaseNumber; - "step 1" - if (player.storage.yuexiang_num == 1) { - var p = null; - if (player.hasSkill("zioy_xingdou")) { - p = player; - } - if (player.next.hasSkill("zioy_xingdou")) { - p = player.next; - } - if (player.previous.hasSkill("zioy_xingdou")) { - p = player.previous; - } - if (p != null) { - player.gain(p.getExpansions("zioy_xingdou")); - player.storage.douzhuan_flag = true; - } - } - }, - mod:{ - maxHandcardBase:function (player, num) { - var n = 0; - if (player.storage.douzhuan_flag) n = 7; - return num + n; - }, - }, - "_priority":100, - }, - "zioy_xingdou":{ - mark:true, - intro:{ - mark:function (dialog, storage, player) { - var content = player.getExpansions("zioy_xingdou"); - if (content && content.length) { - dialog.addAuto(content); - } else { - return "群星暗淡"; - } - }, - markcount:"expansion", - }, - priority:2, - trigger:{ - global:"roundStart", - }, - filter:function (event, player) { - return player.storage.zioy_xingdou_lastround < game.phaseNumber; - }, - onremove:function (player) { - //player.removeSkill("zioy_xingdou"); - }, - direct:true, - content:function () { - "step 0" - var target = player.next; - var cards = player.getExpansions("zioy_xingdou"); - if (cards.length > 0) { - target.addToExpansion(cards, "draw").gaintag.add("zioy_xingdou"); - target.addSkill("zioy_xingdou"); - target.storage.zioy_xingdou_lastround = game.phaseNumber; - } - player.removeSkill("zioy_xingdou"); - delete player.storage.zioy_xingdou_lastround; - }, - "_priority":200, - }, - "zioy_shengyue":{ - "_priority":0, - }, - "zioy_xiaoxiang":{ - trigger:{ - global:"roundStart", - }, - limited:true, - unique:true, - filter:function (event, player) { - return player.storage.cmnum > 0; - }, - selectTarget:-1, - content:function () { - var target = player.next; - player.awakenSkill(event.name); - while (target != player) { - player.storage.cmnum--; - target.removeSkill("zioy_chenmeng1"); - target.removeMark("zioy_chenmeng"); - target.turnOver(); - //player.gainMaxHp(); - player.recover(); - player.update(); - target = target.next; - } - }, - check:function (event, player) { - return player.storage.cmnum > 3 || player.hp < 3; - }, - mark:true, - intro:{ - content:"limited", - }, - skillAnimation:true, - init:function (player, skill) { - player.storage[skill] = false; - }, - "_priority":0, - }, - "zioy_douzhuan2":{ - trigger:{ - global:"die", - }, - preHidden:true, - filter:function (event) { - return event.player.hasSkill("zioy_xingdou"); - }, - direct:true, - content:function () { - "step 0" - player.gain(trigger.player.getExpansions("zioy_xingdou")); - player.storage.douzhuan_flag = true; - }, - "_priority":0, - }, - "zioy_nianxi":{ - audio:"ext:无源之流:2", - enable:"phaseUse", - usable:1, - filter:function (event, player) { - return player.countCards("he", { color: "red" }) > 0; - }, - filterTarget:function (card, player, target) { - if (player == target) return false; - return player.inRange(target); - }, - init:function (player) { - player.storage.nianxi_num = 0; - }, - content:function () { - "step 0" - player.addSkill("zioy_nianxi2"); - player.storage.nianxi_flag = false; - "step 1" - player.useCard({ name: "sha", isCard: false }, target, false); - "step 2" - player.removeSkill("zioy_nianxi2"); - if (player.storage.nianxi_flag == false) { - player.storage.nianxi_num++; - player.damage((number = player.storage.nianxi_num), (player = target)); - //player.addMark(event.name); - } - }, - mark:true, - intro:{ - mark:function (dialog, storage, player) { - return "已记录" + player.storage.nianxi_num + "次〖年袭〗"; - }, - }, - filterCard:function (card) { - return get.color(card) != "red"; - }, - selectCard:function () { - return 1; - }, - position:"he", - check:function (card) { - return 1000; - }, - ai:{ - damage:true, - order:8, - result:{ - player:function (player, target) { - if (ui.selected.cards.length) return 0; - if (player.hp >= target.hp) return -0.9; - if (player.hp <= 2) return -10; - return -2; - }, - target:function (player, target) { - if (!ui.selected.cards.length) { - if (player.hp < 2) return 0; - if (player.hp == 2 && target.hp >= 2) return 0; - if (target.hp > player.hp) return 0; - } - return get.damageEffect(target, player); - }, - }, - threaten:1.3, - }, - "_priority":0, - }, - "zioy_nianxi2":{ - trigger:{ - source:"damageBegin1", - }, - forced:true, - content:function () { - player.storage.nianxi_flag = true; - }, - "_priority":0, - }, - "zioy_xiantong":{ - trigger:{ - player:"phaseDrawEnd", - global:"roundStart", - }, - filter:function (event, player) { - var cards = player.getExpansions("zioy_xiantong"); - return ( - player.countCards(function (card) { - return get.type(card) != "equip"; - }) > 0 && cards.length < player.maxHp - ); - }, - group:["zioy_xiantong2"], - direct:true, - content:function () { - "step 0" - player.chooseCard("h", false, "你可以选择一张非装备牌并将其置于武将牌上,称为“瞳”", function (card) { - return get.type(card) != "equip"; - }); - "step 1" - if (result.bool) { - //player.markAuto("zioy_xiantong",result.cards); - player.addToExpansion(result.cards, "giveAuto", player).gaintag.add("zioy_xiantong"); - } - }, - mark:true, - marktext:"瞳", - intro:{ - mark:function (dialog, storage, player) { - var cards = player.getExpansions("zioy_xiantong"); - if (cards.length == 0) return "共有" + get.cnNumber(cards.length) + "张牌"; - if (player.isUnderControl(true) || player.storage.huashouSource.isUnderControl(true)) dialog.addAuto(cards); - else return "共有" + get.cnNumber(cards.length) + "张牌"; - }, - markcount:"expansion", - }, - "_priority":0, - }, - "zioy_xiane":{ - priority:2, - skillAnimation:true, - animationColor:"thunder", - trigger:{ - player:"phaseEnd", - }, - filter:function (event, player) { - var cards = player.getExpansions("zioy_xiantong"); - return cards.length > 2; - }, - content:function () { - "step 0" - event.cs = player.getExpansions("zioy_xiantong"); - if (event.cs.length == 0) event.finish(); - "step 1" - var c = event.cs[0]; - var ts = game.players; - var target = player; - do { - target = ts.randomGet(); - } while (target == player); - player.gain(c); - target.damage(2, "thunder"); - player.line(target, "red"); - event.goto(0); - }, - "_priority":200, - }, - "zioy_xiantong2":{ - priority:1, - skillAnimation:true, - animationColor:"thunder", - trigger:{ - player:"phaseEnd", - }, - direct:true, - filter:function (event, player) { - var cards = player.getExpansions("zioy_xiantong"); - return cards.length > 0; - }, - content:function () { - "step 0" - event.index = 0; - "step 1" - event.cs = player.getExpansions("zioy_xiantong"); - if (event.cs.length == event.index) event.finish(); - "step 2" - var c = event.cs[event.index]; - event.index += 1; - var ts = game.players; - var target = player; - do { - target = ts.randomGet(); - } while (target == player); - player.useCard({ name: c.name, isCard: false }, target, true); //.animate=false; - player.line(target, "red"); - event.goto(1); - }, - "_priority":100, - }, - "zioy_wuya":{ - enable:"phaseUse", - usable:1, - filter:function (event, player) { - return player.maxHp > 1 || player.storage.puai_flag; - }, - filterTarget:function (card, player, target) { - if (player == target) return false; - return !target.hasSkill("zioy_wuya2"); - }, - init:function (player) { - player.storage.nianxi_num = 0; - }, - group:["zioy_wuya4","zioy_wuya3"], - content:function () { - "step 0" - //target.addMark('zioy_wuya'); - target.addSkill("zioy_wuya2"); - if (player.storage.puai_flag == false) player.loseMaxHp(); - else player.gainMaxHp(); - target.storage.wuya_count = 1; - }, - mark:true, - marktext:"黑血", - intro:{ - name:"黑血", - mark:function (dialog, storage, player) { - return null; - }, - }, - filterCard:function (card) { - return get.color(card) != "red"; - }, - selectCard:function () { - return 0; - }, - position:"h", - check:function (card) { - return 1000; - }, - "_priority":0, - }, - "zioy_sheji":{ - trigger:{ - player:"useCardToTarget", - }, - filter:function (event, player) { - return event.card.name == "sha" && player.countMark("zioy_wuya") > 0; - }, - content:function () { - "step 0" - player.removeMark("zioy_wuya"); - ts = trigger.targets; - for (var i = 0; i < ts.length; ++i) { - ts[i].loseHp(); - player.recover(); - } - "step 1" - trigger.targets.remove(trigger.targets); - trigger.getParent().triggeredTargets2.remove(trigger.targets); - trigger.untrigger(); - }, - "_priority":0, - }, - "zioy_puai":{ - enable:"phaseUse", - skillAnimation:true, - animationColor:"thunder", - juexingji:true, - unique:true, - filter:function (event, player) { - return player.countMark("zioy_wuya") > 0 && player.maxHp > 1; - }, - init:function (player) { - player.storage.puai_flag = false; - }, - content:function () { - "step 0" - var choices = []; - for (var i = 1; i <= player.countMark("zioy_wuya") && i < player.maxHp; ++i) { - choices.push(i); - } - player.chooseControl(choices).set("prompt", "请选择移去的“黑血”数量"); - "step 1" - player.storage.puai_round = result.control; - player.loseMaxHp(result.control); - player.removeMark("zioy_wuya", result.control); - player.addSkill("zioy_puai2"); - player.awakenSkill(event.name); - }, - "_priority":0, - }, - "zioy_wuya2":{ - init:function (player, skill) { - player.addSkillBlocker(skill); - }, - onremove:function (player, skill) { - player.removeSkillBlocker(skill); - }, - charlotte:true, - skillBlocker:function (skill, player) { - return !lib.skill[skill].charlotte && !get.is.locked(skill, player); - }, - mark:true, - marktext:"鸦", - intro:{ - content:function (storage, player, skill) { - var list = player.getSkills(null, false, false).filter(function (i) { - return lib.skill.fengyin.skillBlocker(i, player); - }); - if (list.length) return "失效技能:" + get.translation(list); - return "无失效技能"; - }, - }, - ai:{ - effect:{ - target:function (card, player, target) { - if (get.tag(card, "damage")) { - if (player.hasSkillTag("jueqing", false, target)) return [1, -2]; - if (!target.hasFriend()) return; - var num = 1; - if (get.attitude(player, target) > 0) { - if (player.needsToDiscard()) { - num = 0.7; - } else { - num = 0.5; - } - } - if (target.hp >= 4) return [1, num * 2]; - if (target.hp == 3) return [1, num * 1.5]; - if (target.hp == 2) return [1, num * 0.5]; - } - }, - }, - }, - "_priority":0, - }, - "zioy_wuya3":{ - trigger:{ - global:"damageBefore", - }, - filter:function (event, player) { - return event.player.hasSkill("zioy_wuya2"); - }, - forced:true, - content:function () { - "step 0" - if (player.storage.puai_flag == false) { - event.goto(3); - } - "step 1" - var choices = ["是", "否"]; - player - .chooseControl(choices) - .set("prompt", "雾鸦:请选择一项") - .set("prompt2", "是否移去“鸦”并防止" + get.translation(trigger.player) + "受到伤害"); - "step 2" - if (result.control == "否") event.finish(); - "step 3" - trigger.cancel(); - trigger.player.removeSkill("zioy_wuya2"); - }, - "_priority":0, - }, - "zioy_wuya4":{ - trigger:{ - global:"phaseBegin", - }, - filter:function (event, player) { - return event.player.hasSkill("zioy_wuya2") && !player.hasSkill("zioy_wuya2"); - }, - direct:true, - content:function () { - "step 0" - "step 1"; - if (player.storage.puai_flag == false) - player - .chooseTarget( - "请选择【雾鸦】的目标", - function (card, player, target) { - return !target.hasSkill("zioy_wuya2"); - }, - true - ) - .set("ai", function (target) { - return [-1, 1].randomGet(); - }); - else - player - .chooseTarget( - "请选择【雾鸦】的目标", - function (card, player, target) { - return !target.hasSkill("zioy_wuya2"); - }, - false - ) - .set("ai", function (target) { - return [-1, 1].randomGet(); - }); - "step 2" - if (result.bool) { - var target = result.targets[0]; - trigger.player.loseHp(); - trigger.player.line(target, "red"); - game.log("雾鸦转移至", target); - trigger.player.removeSkill("zioy_wuya2"); - if (target != player) { - target.addSkill("zioy_wuya2"); - target.storage.wuya_count = trigger.player.storage.wuya_count + 1; - } else { - var num = trigger.player.storage.wuya_count; - player.recover(num); - player.addMark("zioy_wuya", num); - //var card=get.cardPile(function(card){ - // return get.color(card)=='black'; - //}); - //if(card) player.gain(card,'gain2'); - } - game.delayx(); - } - }, - "_priority":0, - }, - "zioy_puai2":{ - priority:2, - trigger:{ - global:"roundStart", - }, - filter:function (event, player) { - return true; - }, - group:["zioy_puai3"], - direct:true, - onremove:function (player) { - player.storage.puai_flag = false; - }, - content:function () { - player.storage.puai_flag = true; - if (player.storage.puai_round == 0) { - player.removeSkill(event.name); - } - player.storage.puai_round--; - }, - mod:{ - globalTo:function (from, to, distance) { - if (to.storage.puai_flag) return Infinity; - }, - globalFrom:function (from, to, distance) { - if (to.storage.puai_flag) return distance - 9999; - }, - }, - mark:true, - marktext:"瀑霭", - intro:{ - content:function (storage, player, skill) { - return "剩余" + player.storage.puai_round + "回合"; - }, - }, - "_priority":200, - }, - "zioy_puai3":{ - priority:2.5, - trigger:{ - target:"useCardToTarget", - }, - forced:true, - filter:function (event, player) { - return get.tag(event.card, "damage") && player.storage.puai_flag == true; - }, - content:function () { - trigger.targets.remove(player); - trigger.getParent().triggeredTargets2.remove(player); - trigger.untrigger(); - }, - "_priority":250, - }, - "zioy_xingchi":{ - group:["zioy_xingchi2","zioy_xingchi3"], - trigger:{ - player:["useCard","respond"], - }, - filter:function (event, player) { - return event.card && (event.card.name == "shan" || event.card.name == "sha"); - }, - priority:1.23, - forced:true, - locked:true, - content:function () { - player.addMark("zioy_xingchi"); - }, - mark:true, - marktext:"正觉", - intro:{ - name:"正觉", - mark:function (dialog, storage, player) { - return "唯佛一人智慧为阿耨多罗三藐三菩提"; - }, - }, - "_priority":123, - }, - "zioy_xingchi2":{ - trigger:{ - player:"damageBegin", - }, - filter:function (event, player) { - return player.countMark("zioy_xingchi") > 2; - }, - direct:true, - content:function () { - "step 0" - player.removeMark("zioy_xingchi", 3); - trigger.num--; - }, - "_priority":0, - }, - "zioy_xingchi3":{ - trigger:{ - source:"damageBegin", - }, - priority:-3, - filter:function (event, player) { - return player.countMark("zioy_xingchi") > 2; - }, - direct:true, - content:function () { - "step 0" - player.removeMark("zioy_xingchi", 3); - trigger.num++; - }, - "_priority":-300, - }, - "zioy_cangzhen":{ - trigger:{ - source:"damageBegin1", - }, - priority:1, - group:["zioy_cangzhen2"], - filter:function (event) { - return !event.player.storage.cangzhen_round || event.player.storage.cangzhen_round - 5 > game.roundNumber; - }, - forced:true, - content:function () { - trigger.num += 1; - trigger.player.turnOver(); - trigger.player.storage.cangzhen_round = game.roundNumber; - }, - ai:{ - damageBonus:true, - }, - "_priority":100, - }, - "zioy_cangzhen2":{ - trigger:{ - source:"damageEnd", - }, - forced:true, - filter:function (event, player, trigger) { - return [false].randomGet(); - }, - content:function () { - trigger.player.turnOver(); - }, - "_priority":0, - }, - "zioy_shangqin":{ - audio:"ext:无源之流:2", - trigger:{ - global:"die", - }, - group:["zioy_shangqin2","zioy_shangqin3"], - direct:true, - locked:true, - preHidden:false, - filter:function (event, player) { - return !event.player.isAlive() && event.player != player; - }, - init:function (player) { - player.storage.alps_bugs = []; - }, - content:function () { - "step 0" - event.p = trigger.player; - if (!player.storage.alps_bugs.contains(event.p)) { - event.goto(1); - } else { - event.togain = trigger.player.getCards("he"); - player.gain(event.togain, trigger.player, "giveAuto", "bySelf"); - event.finish(); - } - "step 1" - player.line(p, "red"); - var p = event.p; - var name, name1, name2; - player.storage.alps_bugs.push(p); - name = p.name; - name1 = p.name1; - name2 = p.name2; - p.revive(); - event.p.clearSkills(); - p.reinit(p.name, "zioy_xukongchong"); - //p.setAvatar(p.name1,'xioy_xukongchong1'); - //p.avatar2.setBackground('xioy_xukongchong1','character'); - p.node.name.innerHTML = "虚空虫"; - p.name = name; - p.name1 = name1; - p.name2 = name2; - p._trueMe = player; - p.storage.alps = player; - p.changeGroup("jin"); - if (player.identity == "zhu") { - p.identity = "zhong"; - } else { - p.identity = player.identity; - } - game.addGlobalSkill("autoswap"); - if (p == game.me) { - game.notMe = true; - if (!_status.auto) ui.click.auto(); - } - p.maxHp = p.hp = 2; - "step 2" - event.p.clearSkills(); - event.p.draw(2); - player.draw(2); - player.gainMaxHp(); - "step 3" - var n = 0; - var n1 = player.maxHp - player.hp - 1; - while (n * 2 < n1) n++; - player.recover(n); - }, - ai:{ - threaten:function (player, target) { - return target.storage.alps_bugs.length - 1; - }, - }, - "_priority":0, - }, - "zioy_hanshou":{ - trigger:{ - global:"roundStart", - }, - skillAnimation:true, - animationColor:"thunder", - unique:true, - direct:false, - filter:function (event, player) { - for (var i = 0; i < player.storage.alps_bugs.length; i++) { - var p = player.storage.alps_bugs[i]; - if (!p.isAlive()) { - return true; - } - } - return false; - }, - check:function (event, player) { - var n = 0; - for (var i = 0; i < player.storage.alps_bugs.length; i++) { - var p = player.storage.alps_bugs[i]; - if (!p.isAlive()) { - n++; - } - } - return n > 2; - }, - content:function () { - "step 0" - player.awakenSkill(event.name); - event.num = 0; - event.l = player.storage.alps_bugs; - for (var i = 0; i < event.l.length; i++) { - var p = event.l[i]; - if (!p.isAlive()) { - player.line(p, "red"); - p.revive(); - p.recover(999); - p.hp = p.maxHp; - event.num++; - } - } - "step 1" - player.loseMaxHp(event.num); - for (var i = 0; i < event.l.length; i++) { - var p = event.l[i]; - player.line(p, "red"); - p.draw(event.num); - } - }, - "_priority":0, - }, - "zioy_shangqin2":{ - trigger:{ - global:"useCard", - }, - forced:true, - filter:function (event, player) { - return false && event.card && get.tag(event.card, "damage") && event.player.storage.alps; - }, - content:function () { - trigger.customArgs.default.customSource = player; - }, - "_priority":0, - }, - "zioy_shangqin3":{ - trigger:{ - global:"die", - }, - filter:function (event) { - return false && event.player.countCards("he") > 0 && event.player.storage.alps; - }, - content:function () { - "step 0" - event.togain = trigger.player.getCards("he"); - player.gain(event.togain, trigger.player, "giveAuto", "bySelf"); - }, - "_priority":0, - }, - "zioy_longzi":{ - "_priority":0, - }, - "zioy_yingyuan":{ - trigger:{ - global:"phaseJieshuBegin", - }, - frequent:true, - filter:function (event, player) { - return event.player != player && !player.isTurnedOver(); - }, - content:function () { - player.turnOver(); - }, - init:function (player) { - player.storage.yy_player == null; - player.storage.yingyuan_lastround = -1; - }, - subSkill:{ - "yy1":{ - trigger:{ - global:"phaseEnd", - }, - forced:false, - filter:function (event, player) { - if (player.storage.yingyuan_lastround == game.roundNumber) return false; - return event.player != player && player.isTurnedOver() && event.player.maxHp != event.player.hp; - }, - content:function () { - "step 0" - if (player.next != trigger.player) game.swapSeat(player, player.next); - "step 1" - if (player.next != trigger.player) event.goto(0); - "step 2" - player.turnOver(); - "step 3" - player.insertPhase(); - player.storage.yy_player = trigger.player; - player.storage.yingyuan_lastround = game.roundNumber; - }, - sub:true, - "_priority":0, - }, - "yy2":{ - trigger:{ - player:"damageBefore", - }, - filter:function (event, player) { - return player.isTurnedOver(); - }, - forced:true, - content:function () { - trigger.num -= 1; - }, - sub:true, - ai:{ - effect:{ - target:function (card, player, target) { - if (!target.isTurnedOver() || player.hasSkillTag("jueqing", false, target)) return; + return ( + event.targets && + event.targets.length == 1 && + //flag&& + event.targets[0] != player && + event.targets[0] != player.storage.shadow_source && + event.targets[0].isAlive() && + event.player == player.storage.shadow_source && + //get.type(event.cards[0].name) == 'basic'&& + //get.type(event.cards[0].name) == 'trick'&& + //lib.filter.targetInRange(card,this,target)&& + //player.canUse(event.cards,event.targets[0])&& + true + ); + }, + direct: true, + content: function () { + player.useCard(trigger.cards, trigger.targets[0]); + //game.delay(0.5); + }, + "_priority": 0 + }, + "zioy_jianying": { + trigger: { + player: "showCharacterAfter" + }, + forced: true, + hiddenSkill: true, + filter: function (event, player) { + return true; + }, + content: function () { + "step 0" + player + .chooseTarget("请选择【末影】的目标", lib.translate.zioy_jianying_info, false, function (card, player, target) { + if (target == player) return false; + return !target.hasSkill("zioy_moying2"); + }) + .set("ai", function (target) { + return 1; + }); + "step 1" + if (result.bool) { + var target = result.targets[0]; + if (player.storage.shadowl.length > 1) { + var p = player.storage.shadowl[0]; + p.removeSkill("zioy_moying2"); + player.storage.shadowl.shift(); + } + var cards = game.createCard("sha", "spade", Infinity); + player.storage.shadowl.push(target); + target.addToExpansion(cards, "giveAuto", target).gaintag.add("zioy_moying"); + target.addSkill("zioy_moying2"); + target.storage.shadow_source = player; + target.storage.shadow_card = cards; + } + }, + "_priority": 0 + }, + "zioy_moying3": { + trigger: { + player: "die" + }, + filter: function (event, player) { + return true; + }, + direct: true, + forceDie: true, + content: function () { + var p = player.storage.shadow_source; + if (p.storage.shadowl[0] == player) p.storage.shadowl.shift(); + else p.storage.shadowl.pop(); + }, + "_priority": 0 + }, + "zioy_yuexiang": { + trigger: { + player: "phaseDrawBegin2" + }, + group: ["zioy_yuexiang2"], + direct: true, + filter: function (event, player) { + return !event.numFixed; + }, + priority: 3, + init: function (player) { + player.storage.yuexiang_num = [0, 1, 2, 3].randomGet(); + player.storage.yuexiang_list = ["🌓", "🌕", "🌘", "🌑"]; + player.storage.yuexiang_list2 = ["上弦", "满月", "下弦", "新月"]; + }, + content: function () { + var n = 0; + var index = 1; + if (player.storage.douzhuan_flag) index = 2; + if (player.storage.yuexiang_num == 1) n = 2 * index; + else if (player.storage.yuexiang_num == 3) n = 0 * index; + else n = index; + trigger.num += n; + }, + ai: { + threaten: 1.3 + }, + mark: true, + intro: { + mark: function (dialog, storage, player) { + return player.storage.yuexiang_list2[player.storage.yuexiang_num]; + }, + markcount: "expansion" + }, + "_priority": 300 + }, + "zioy_yuexiang2": { + trigger: { + global: "roundStart" + }, + filter: function (event, player) { + return true; + }, + direct: true, + content: function () { + player.storage.yuexiang_num++; + player.storage.yuexiang_num %= 4; + if (player.storage.yuexiang_num == 1) { + var p = null; + if (player.hasSkill("zioy_xingdou")) { + p = player; + } + if (player.next.hasSkill("zioy_xingdou")) { + p = player.next; + } + if (player.previous.hasSkill("zioy_xingdou")) { + p = player.previous; + } + if (p != null) { + player.gain(p.getExpansions("zioy_xingdou")); + player.storage.douzhuan_flag = true; + } + } + }, + "_priority": 0 + }, + "zioy_douzhuan": { + trigger: { + global: "phaseBefore", + player: "enterGame" + }, + direct: true, + unique: true, + group: ["zioy_douzhuan2"], + filter: function (event, player) { + return event.name != "phase" || game.phaseNumber == 0; + }, + init: function (player) { + player.storage.douzhuan_flag = false; + }, + priority: 1, + forceunique: true, + content: function () { + "step 0" + var targets = game.players; + var target = targets.randomGet(); + var cards = get.cards(7); + target.addToExpansion(cards, "draw").gaintag.add("zioy_xingdou"); + target.addSkill("zioy_xingdou"); + target.storage.zioy_xingdou_lastround = game.phaseNumber; + "step 1" + if (player.storage.yuexiang_num == 1) { + var p = null; + if (player.hasSkill("zioy_xingdou")) { + p = player; + } + if (player.next.hasSkill("zioy_xingdou")) { + p = player.next; + } + if (player.previous.hasSkill("zioy_xingdou")) { + p = player.previous; + } + if (p != null) { + player.gain(p.getExpansions("zioy_xingdou")); + player.storage.douzhuan_flag = true; + } + } + }, + mod: { + maxHandcardBase: function (player, num) { + var n = 0; + if (player.storage.douzhuan_flag) n = 7; + return num + n; + } + }, + "_priority": 100 + }, + "zioy_xingdou": { + mark: true, + intro: { + mark: function (dialog, storage, player) { + var content = player.getExpansions("zioy_xingdou"); + if (content && content.length) { + dialog.addAuto(content); + } else { + return "群星暗淡"; + } + }, + markcount: "expansion" + }, + priority: 2, + trigger: { + global: "roundStart" + }, + filter: function (event, player) { + return player.storage.zioy_xingdou_lastround < game.phaseNumber; + }, + onremove: function (player) { + //player.removeSkill("zioy_xingdou"); + }, + direct: true, + content: function () { + "step 0" + var target = player.next; + var cards = player.getExpansions("zioy_xingdou"); + if (cards.length > 0) { + target.addToExpansion(cards, "draw").gaintag.add("zioy_xingdou"); + target.addSkill("zioy_xingdou"); + target.storage.zioy_xingdou_lastround = game.phaseNumber; + } + player.removeSkill("zioy_xingdou"); + delete player.storage.zioy_xingdou_lastround; + }, + "_priority": 200 + }, + "zioy_shengyue": { + "_priority": 0 + }, + "zioy_xiaoxiang": { + trigger: { + global: "roundStart" + }, + limited: true, + unique: true, + filter: function (event, player) { + return player.storage.cmnum > 0; + }, + selectTarget: -1, + content: function () { + var target = player.next; + player.awakenSkill(event.name); + while (target != player) { + player.storage.cmnum--; + target.removeSkill("zioy_chenmeng1"); + target.removeMark("zioy_chenmeng"); + target.turnOver(); + //player.gainMaxHp(); + player.recover(); + player.update(); + target = target.next; + } + }, + check: function (event, player) { + return player.storage.cmnum > 3 || player.hp < 3; + }, + mark: true, + intro: { + content: "limited" + }, + skillAnimation: true, + init: function (player, skill) { + player.storage[skill] = false; + }, + "_priority": 0 + }, + "zioy_douzhuan2": { + trigger: { + global: "die" + }, + preHidden: true, + filter: function (event) { + return event.player.hasSkill("zioy_xingdou"); + }, + direct: true, + content: function () { + "step 0" + player.gain(trigger.player.getExpansions("zioy_xingdou")); + player.storage.douzhuan_flag = true; + }, + "_priority": 0 + }, + "zioy_nianxi": { + audio: "ext:无源之流:2", + enable: "phaseUse", + usable: 1, + filter: function (event, player) { + return player.countCards("he", { color: "red" }) > 0; + }, + filterTarget: function (card, player, target) { + if (player == target) return false; + return player.inRange(target); + }, + init: function (player) { + player.storage.nianxi_num = 0; + }, + content: function () { + "step 0" + player.addSkill("zioy_nianxi2"); + player.storage.nianxi_flag = false; + "step 1" + player.useCard({ name: "sha", isCard: false }, target, false); + "step 2" + player.removeSkill("zioy_nianxi2"); + if (player.storage.nianxi_flag == false) { + player.storage.nianxi_num++; + player.damage((number = player.storage.nianxi_num), (player = target)); + //player.addMark(event.name); + } + }, + mark: true, + intro: { + mark: function (dialog, storage, player) { + return "已记录" + player.storage.nianxi_num + "次〖年袭〗"; + } + }, + filterCard: function (card) { + return get.color(card) != "red"; + }, + selectCard: function () { + return 1; + }, + position: "he", + check: function (card) { + return 1000; + }, + ai: { + damage: true, + order: 8, + result: { + player: function (player, target) { + if (ui.selected.cards.length) return 0; + if (player.hp >= target.hp) return -0.9; + if (player.hp <= 2) return -10; + return -2; + }, + target: function (player, target) { + if (!ui.selected.cards.length) { + if (player.hp < 2) return 0; + if (player.hp == 2 && target.hp >= 2) return 0; + if (target.hp > player.hp) return 0; + } + return get.damageEffect(target, player); + } + }, + threaten: 1.3 + }, + "_priority": 0 + }, + "zioy_nianxi2": { + trigger: { + source: "damageBegin1" + }, + forced: true, + content: function () { + player.storage.nianxi_flag = true; + }, + "_priority": 0 + }, + "zioy_xiantong": { + trigger: { + player: "phaseDrawEnd", + global: "roundStart" + }, + filter: function (event, player) { + var cards = player.getExpansions("zioy_xiantong"); + return ( + player.countCards(function (card) { + return get.type(card) != "equip"; + }) > 0 && cards.length < player.maxHp + ); + }, + group: ["zioy_xiantong2"], + direct: true, + content: function () { + "step 0" + player.chooseCard("h", false, "你可以选择一张非装备牌并将其置于武将牌上,称为“瞳”", function (card) { + return get.type(card) != "equip"; + }); + "step 1" + if (result.bool) { + //player.markAuto("zioy_xiantong",result.cards); + player.addToExpansion(result.cards, "giveAuto", player).gaintag.add("zioy_xiantong"); + } + }, + mark: true, + marktext: "瞳", + intro: { + mark: function (dialog, storage, player) { + var cards = player.getExpansions("zioy_xiantong"); + if (cards.length == 0) return "共有" + get.cnNumber(cards.length) + "张牌"; + if (player.isUnderControl(true) || player.storage.huashouSource.isUnderControl(true)) dialog.addAuto(cards); + else return "共有" + get.cnNumber(cards.length) + "张牌"; + }, + markcount: "expansion" + }, + "_priority": 0 + }, + "zioy_xiane": { + priority: 2, + skillAnimation: true, + animationColor: "thunder", + trigger: { + player: "phaseEnd" + }, + filter: function (event, player) { + var cards = player.getExpansions("zioy_xiantong"); + return cards.length > 2; + }, + content: function () { + "step 0" + event.cs = player.getExpansions("zioy_xiantong"); + if (event.cs.length == 0) event.finish(); + "step 1" + var c = event.cs[0]; + var ts = game.players; + var target = player; + do { + target = ts.randomGet(); + } while (target == player); + player.gain(c); + target.damage(2, "thunder"); + player.line(target, "red"); + event.goto(0); + }, + "_priority": 200 + }, + "zioy_xiantong2": { + priority: 1, + skillAnimation: true, + animationColor: "thunder", + trigger: { + player: "phaseEnd" + }, + direct: true, + filter: function (event, player) { + var cards = player.getExpansions("zioy_xiantong"); + return cards.length > 0; + }, + content: function () { + "step 0" + event.index = 0; + "step 1" + event.cs = player.getExpansions("zioy_xiantong"); + if (event.cs.length == event.index) event.finish(); + "step 2" + var c = event.cs[event.index]; + event.index += 1; + var ts = game.players; + var target = player; + do { + target = ts.randomGet(); + } while (target == player); + player.useCard({ name: c.name, isCard: false }, target, true); //.animate=false; + player.line(target, "red"); + event.goto(1); + }, + "_priority": 100 + }, + "zioy_wuya": { + enable: "phaseUse", + usable: 1, + filter: function (event, player) { + return player.maxHp > 1 || player.storage.puai_flag; + }, + filterTarget: function (card, player, target) { + if (player == target) return false; + return !target.hasSkill("zioy_wuya2"); + }, + init: function (player) { + player.storage.nianxi_num = 0; + }, + group: ["zioy_wuya4", "zioy_wuya3"], + content: function () { + "step 0" + //target.addMark('zioy_wuya'); + target.addSkill("zioy_wuya2"); + if (player.storage.puai_flag == false) player.loseMaxHp(); + else player.gainMaxHp(); + target.storage.wuya_count = 1; + }, + mark: true, + marktext: "黑血", + intro: { + name: "黑血", + mark: function (dialog, storage, player) { + return null; + } + }, + filterCard: function (card) { + return get.color(card) != "red"; + }, + selectCard: function () { + return 0; + }, + position: "h", + check: function (card) { + return 1000; + }, + "_priority": 0 + }, + "zioy_sheji": { + trigger: { + player: "useCardToTarget" + }, + filter: function (event, player) { + return event.card.name == "sha" && player.countMark("zioy_wuya") > 0; + }, + content: function () { + "step 0" + player.removeMark("zioy_wuya"); + ts = trigger.targets; + for (var i = 0; i < ts.length; ++i) { + ts[i].loseHp(); + player.recover(); + } + "step 1" + trigger.targets.remove(trigger.targets); + trigger.getParent().triggeredTargets2.remove(trigger.targets); + trigger.untrigger(); + }, + "_priority": 0 + }, + "zioy_puai": { + enable: "phaseUse", + skillAnimation: true, + animationColor: "thunder", + juexingji: true, + unique: true, + filter: function (event, player) { + return player.countMark("zioy_wuya") > 0 && player.maxHp > 1; + }, + init: function (player) { + player.storage.puai_flag = false; + }, + content: function () { + "step 0" + var choices = []; + for (var i = 1; i <= player.countMark("zioy_wuya") && i < player.maxHp; ++i) { + choices.push(i); + } + player.chooseControl(choices).set("prompt", "请选择移去的“黑血”数量"); + "step 1" + player.storage.puai_round = result.control; + player.loseMaxHp(result.control); + player.removeMark("zioy_wuya", result.control); + player.addSkill("zioy_puai2"); + player.awakenSkill(event.name); + }, + "_priority": 0 + }, + "zioy_wuya2": { + init: function (player, skill) { + player.addSkillBlocker(skill); + }, + onremove: function (player, skill) { + player.removeSkillBlocker(skill); + }, + charlotte: true, + skillBlocker: function (skill, player) { + return !lib.skill[skill].charlotte && !get.is.locked(skill, player); + }, + mark: true, + marktext: "鸦", + intro: { + content: function (storage, player, skill) { + var list = player.getSkills(null, false, false).filter(function (i) { + return lib.skill.fengyin.skillBlocker(i, player); + }); + if (list.length) return "失效技能:" + get.translation(list); + return "无失效技能"; + } + }, + ai: { + effect: { + target: function (card, player, target) { + if (get.tag(card, "damage")) { + if (player.hasSkillTag("jueqing", false, target)) return [1, -2]; + if (!target.hasFriend()) return; + var num = 1; + if (get.attitude(player, target) > 0) { + if (player.needsToDiscard()) { + num = 0.7; + } else { + num = 0.5; + } + } + if (target.hp >= 4) return [1, num * 2]; + if (target.hp == 3) return [1, num * 1.5]; + if (target.hp == 2) return [1, num * 0.5]; + } + } + } + }, + "_priority": 0 + }, + "zioy_wuya3": { + trigger: { + global: "damageBefore" + }, + filter: function (event, player) { + return event.player.hasSkill("zioy_wuya2"); + }, + forced: true, + content: function () { + "step 0" + if (player.storage.puai_flag == false) { + event.goto(3); + } + "step 1" + var choices = ["是", "否"]; + player + .chooseControl(choices) + .set("prompt", "雾鸦:请选择一项") + .set("prompt2", "是否移去“鸦”并防止" + get.translation(trigger.player) + "受到伤害"); + "step 2" + if (result.control == "否") event.finish(); + "step 3" + trigger.cancel(); + trigger.player.removeSkill("zioy_wuya2"); + }, + "_priority": 0 + }, + "zioy_wuya4": { + trigger: { + global: "phaseBegin" + }, + filter: function (event, player) { + return event.player.hasSkill("zioy_wuya2") && !player.hasSkill("zioy_wuya2"); + }, + direct: true, + content: function () { + "step 0" + "step 1"; + if (player.storage.puai_flag == false) + player + .chooseTarget( + "请选择【雾鸦】的目标", + function (card, player, target) { + return !target.hasSkill("zioy_wuya2"); + }, + true + ) + .set("ai", function (target) { + return [-1, 1].randomGet(); + }); + else + player + .chooseTarget( + "请选择【雾鸦】的目标", + function (card, player, target) { + return !target.hasSkill("zioy_wuya2"); + }, + false + ) + .set("ai", function (target) { + return [-1, 1].randomGet(); + }); + "step 2" + if (result.bool) { + var target = result.targets[0]; + trigger.player.loseHp(); + trigger.player.line(target, "red"); + game.log("雾鸦转移至", target); + trigger.player.removeSkill("zioy_wuya2"); + if (target != player) { + target.addSkill("zioy_wuya2"); + target.storage.wuya_count = trigger.player.storage.wuya_count + 1; + } else { + var num = trigger.player.storage.wuya_count; + player.recover(num); + player.addMark("zioy_wuya", num); + //var card=get.cardPile(function(card){ + // return get.color(card)=='black'; + //}); + //if(card) player.gain(card,'gain2'); + } + game.delayx(); + } + }, + "_priority": 0 + }, + "zioy_puai2": { + priority: 2, + trigger: { + global: "roundStart" + }, + filter: function (event, player) { + return true; + }, + group: ["zioy_puai3"], + direct: true, + onremove: function (player) { + player.storage.puai_flag = false; + }, + content: function () { + player.storage.puai_flag = true; + if (player.storage.puai_round == 0) { + player.removeSkill(event.name); + } + player.storage.puai_round--; + }, + mod: { + globalTo: function (from, to, distance) { + if (to.storage.puai_flag) return Infinity; + }, + globalFrom: function (from, to, distance) { + if (to.storage.puai_flag) return distance - 9999; + } + }, + mark: true, + marktext: "瀑霭", + intro: { + content: function (storage, player, skill) { + return "剩余" + player.storage.puai_round + "回合"; + } + }, + "_priority": 200 + }, + "zioy_puai3": { + priority: 2.5, + trigger: { + target: "useCardToTarget" + }, + forced: true, + filter: function (event, player) { + return get.tag(event.card, "damage") && player.storage.puai_flag == true; + }, + content: function () { + trigger.targets.remove(player); + trigger.getParent().triggeredTargets2.remove(player); + trigger.untrigger(); + }, + "_priority": 250 + }, + "zioy_xingchi": { + group: ["zioy_xingchi2", "zioy_xingchi3"], + trigger: { + player: ["useCard", "respond"] + }, + filter: function (event, player) { + return event.card && (event.card.name == "shan" || event.card.name == "sha"); + }, + priority: 1.23, + forced: true, + locked: true, + content: function () { + player.addMark("zioy_xingchi"); + }, + mark: true, + marktext: "正觉", + intro: { + name: "正觉", + mark: function (dialog, storage, player) { + return "唯佛一人智慧为阿耨多罗三藐三菩提"; + } + }, + "_priority": 123 + }, + "zioy_xingchi2": { + trigger: { + player: "damageBegin" + }, + filter: function (event, player) { + return player.countMark("zioy_xingchi") > 2; + }, + direct: true, + content: function () { + "step 0" + player.removeMark("zioy_xingchi", 3); + trigger.num--; + }, + "_priority": 0 + }, + "zioy_xingchi3": { + trigger: { + source: "damageBegin" + }, + priority: -3, + filter: function (event, player) { + return player.countMark("zioy_xingchi") > 2; + }, + direct: true, + content: function () { + "step 0" + player.removeMark("zioy_xingchi", 3); + trigger.num++; + }, + "_priority": -300 + }, + "zioy_cangzhen": { + trigger: { + source: "damageBegin1" + }, + priority: 1, + group: ["zioy_cangzhen2"], + filter: function (event) { + return !event.player.storage.cangzhen_round || event.player.storage.cangzhen_round - 5 > game.roundNumber; + }, + forced: true, + content: function () { + trigger.num += 1; + trigger.player.turnOver(); + trigger.player.storage.cangzhen_round = game.roundNumber; + }, + ai: { + damageBonus: true + }, + "_priority": 100 + }, + "zioy_cangzhen2": { + trigger: { + source: "damageEnd" + }, + forced: true, + filter: function (event, player, trigger) { + return [false].randomGet(); + }, + content: function () { + trigger.player.turnOver(); + }, + "_priority": 0 + }, + "zioy_shangqin": { + audio: "ext:无源之流:2", + trigger: { + global: "die" + }, + group: ["zioy_shangqin2", "zioy_shangqin3"], + direct: true, + locked: true, + preHidden: false, + filter: function (event, player) { + return !event.player.isAlive() && event.player != player; + }, + init: function (player) { + player.storage.alps_bugs = []; + }, + content: function () { + "step 0" + event.p = trigger.player; + if (!player.storage.alps_bugs.contains(event.p)) { + event.goto(1); + } else { + event.togain = trigger.player.getCards("he"); + player.gain(event.togain, trigger.player, "giveAuto", "bySelf"); + event.finish(); + } + "step 1" + player.line(p, "red"); + var p = event.p; + var name, name1, name2; + player.storage.alps_bugs.push(p); + name = p.name; + name1 = p.name1; + name2 = p.name2; + p.revive(); + event.p.clearSkills(); + p.reinit(p.name, "zioy_xukongchong"); + //p.setAvatar(p.name1,'xioy_xukongchong1'); + //p.avatar2.setBackground('xioy_xukongchong1','character'); + p.node.name.innerHTML = "虚空虫"; + p.name = name; + p.name1 = name1; + p.name2 = name2; + p._trueMe = player; + p.storage.alps = player; + p.changeGroup("jin"); + if (player.identity == "zhu") { + p.identity = "zhong"; + } else { + p.identity = player.identity; + } + game.addGlobalSkill("autoswap"); + if (p == game.me) { + game.notMe = true; + if (!_status.auto) ui.click.auto(); + } + p.maxHp = p.hp = 2; + "step 2" + event.p.clearSkills(); + event.p.draw(2); + player.draw(2); + player.gainMaxHp(); + "step 3" + var n = 0; + var n1 = player.maxHp - player.hp - 1; + while (n * 2 < n1) n++; + player.recover(n); + }, + ai: { + threaten: function (player, target) { + return target.storage.alps_bugs.length - 1; + } + }, + "_priority": 0 + }, + "zioy_hanshou": { + trigger: { + global: "roundStart" + }, + skillAnimation: true, + animationColor: "thunder", + unique: true, + direct: false, + filter: function (event, player) { + for (var i = 0; i < player.storage.alps_bugs.length; i++) { + var p = player.storage.alps_bugs[i]; + if (!p.isAlive()) { + return true; + } + } + return false; + }, + check: function (event, player) { + var n = 0; + for (var i = 0; i < player.storage.alps_bugs.length; i++) { + var p = player.storage.alps_bugs[i]; + if (!p.isAlive()) { + n++; + } + } + return n > 2; + }, + content: function () { + "step 0" + player.awakenSkill(event.name); + event.num = 0; + event.l = player.storage.alps_bugs; + for (var i = 0; i < event.l.length; i++) { + var p = event.l[i]; + if (!p.isAlive()) { + player.line(p, "red"); + p.revive(); + p.recover(999); + p.hp = p.maxHp; + event.num++; + } + } + "step 1" + player.loseMaxHp(event.num); + for (var i = 0; i < event.l.length; i++) { + var p = event.l[i]; + player.line(p, "red"); + p.draw(event.num); + } + }, + "_priority": 0 + }, + "zioy_shangqin2": { + trigger: { + global: "useCard" + }, + forced: true, + filter: function (event, player) { + return false && event.card && get.tag(event.card, "damage") && event.player.storage.alps; + }, + content: function () { + trigger.customArgs.default.customSource = player; + }, + "_priority": 0 + }, + "zioy_shangqin3": { + trigger: { + global: "die" + }, + filter: function (event) { + return false && event.player.countCards("he") > 0 && event.player.storage.alps; + }, + content: function () { + "step 0" + event.togain = trigger.player.getCards("he"); + player.gain(event.togain, trigger.player, "giveAuto", "bySelf"); + }, + "_priority": 0 + }, + "zioy_longzi": { + "_priority": 0 + }, + "zioy_yingyuan": { + trigger: { + global: "phaseJieshuBegin" + }, + frequent: true, + filter: function (event, player) { + return event.player != player && !player.isTurnedOver(); + }, + content: function () { + player.turnOver(); + }, + init: function (player) { + player.storage.yy_player == null; + player.storage.yingyuan_lastround = -1; + }, + subSkill: { + "yy1": { + trigger: { + global: "phaseEnd" + }, + forced: false, + filter: function (event, player) { + if (player.storage.yingyuan_lastround == game.roundNumber) return false; + return event.player != player && player.isTurnedOver() && event.player.maxHp != event.player.hp; + }, + content: function () { + "step 0" + if (player.next != trigger.player) game.swapSeat(player, player.next); + "step 1" + if (player.next != trigger.player) event.goto(0); + "step 2" + player.turnOver(); + "step 3" + player.insertPhase(); + player.storage.yy_player = trigger.player; + player.storage.yingyuan_lastround = game.roundNumber; + }, + sub: true, + "_priority": 0 + }, + "yy2": { + trigger: { + player: "damageBefore" + }, + filter: function (event, player) { + return player.isTurnedOver(); + }, + forced: true, + content: function () { + trigger.num -= 1; + }, + sub: true, + ai: { + effect: { + target: function (card, player, target) { + if (!target.isTurnedOver() || player.hasSkillTag("jueqing", false, target)) return; - var num = get.tag(card, "damage"); - if (num) { - if (num > 1) return 0.5; - return 0; - } - }, - }, - }, - "_priority":0, - }, - }, - group:["zioy_yingyuan_yy1","zioy_yingyuan_yy2"], - "_priority":0, - }, - "zioy_hey":{ - derivation:["zioy_guangmang"], - trigger:{ - player:["phaseBegin","phaseEnd"], - }, - logTarget:"player", - filter:function () { - return true; - }, - direct:true, - init:function (player) { - player.storage.hey_lastp = null; - player.storage.hey_lastr = -999; - player.addSkill("zioy_guangmang"); - }, - content:function () { - "step 0" - if (player.storage.hey_lastr < game.roundNumber) { - player.storage.hey_lastp = null; - player.storage.hey_lastr = game.roundNumber; - } - var choices = ["红色", "黑色"]; - player.chooseControl(choices).set("prompt", "请选择一种颜色"); - "step 1" - event.color = "red"; - if (result.control == "黑色") event.color = "black"; - player - .chooseTarget( - "请选择观看一名角色的手牌", - function (card, player, target) { - return target != player.storage.hey_lastp; - }, - true - ) - .set("ai", function (target) { - return [-1, 1].randomGet(); - }); - "step 2" - event.target = result.targets[0]; - player.storage.hey_lastp = event.target; - player.viewHandcards(event.target); - var hs = event.target.getCards("h", { color: event.color }); - var l = event.target.getCards("h").length - hs.length; - event.flag = true; - if (hs.length < l) event.flag = false; - "step 3" - var target = event.target; - if (event.flag == true) { - player.draw(); - event.target.draw(); - } else { - target = player; - player.chooseToDiscard(true); - event.target.chooseToDiscard(true); - } - if (target.hasSkill("zioy_guangmang")) { - target.removeSkill("zioy_guangmang"); - } else { - target.addSkill("zioy_guangmang"); - } - }, - "_priority":0, - }, - "zioy_ya":{ - derivation:["zioy_guangmang"], - trigger:{ - player:"damageBegin", - }, - filter:function (event, player) { - if (player.hasSkill("zioy_guangmang")) return false; - var targets = game.players; - var ts1 = []; - for (var i = 0; i < targets.length; ++i) { - if (targets[i].hasSkill("zioy_guangmang")) { - ts1.push(targets[i]); - } - } - if (ts1.length > 0) return true; - return false; - }, - direct:true, - content:function () { - "step 0" - player - .chooseTarget( - "是否将一名角色的光芒移动至己方区域内并防止此次伤害", - function (card, player, target) { - return target.hasSkill("zioy_guangmang"); - }, - false - ) - .set("ai", function (target) { - return 1; - }); - "step 1" - if (result.bool) { - event.from = result.targets[0]; - event.from.removeSkill("zioy_guangmang"); - player.addSkill("zioy_guangmang"); - trigger.cancel(); - } else event.finish(); - }, - "_priority":0, - }, - "zioy_ha":{ - derivation:["zioy_guangmang"], - trigger:{ - source:"damageAfter", - }, - forced:true, - filter:function (event, player, trigger) { - var targets = game.players; - var ts1 = []; - for (var i = 0; i < targets.length; ++i) { - if (targets[i].hasSkill("zioy_guangmang")) { - ts1.push(targets[i]); - } - } - if (ts1.length > 0) return true; - return false; - }, - content:function () { - "step 0" - player - .chooseTarget( - "请选择转出光芒的角色", - function (card, player, target) { - return target.hasSkill("zioy_guangmang"); - }, - false - ) - .set("ai", function (player, target) { - if (target == player) return 2; - return [-1, 1].randomGet(); - }); - "step 1" - if (result.bool) { - event.from = result.targets[0]; - player - .chooseTarget( - "请选择转入光芒的角色", - function (card, player, target) { - return !target.hasSkill("zioy_guangmang"); - }, - false - ) - .set("ai", function (target) { - return 1; - }); - } else event.finish(); - "step 2" - if (result.bool) { - event.to = result.targets[0]; - event.from.removeSkill("zioy_guangmang"); - event.to.addSkill("zioy_guangmang"); - } - }, - "_priority":0, - }, - "zioy_guangmang":{ - mark:true, - marktext:"光芒", - intro:{ - markcount:"expansion", - }, - trigger:{ - player:"damageEnd", - }, - direct:true, - filter:function (event, player) { - return event.num > 0; - }, - content:function () { - "step 0" - var targets = game.players; - var ts1 = []; - for (var i = 0; i < targets.length; ++i) { - if (targets[i].hasSkill(event.name) && targets[i] != player) { - ts1.push(targets[i]); - } - } - if (ts1.length > 0) event.target = ts1.randomGet(); - else event.finish(); - "step 1" - player.removeSkill(event.name); - "step 2" - target.damage(trigger.num); - }, - mod:{ - globalTo:function (from, to, distance) { - if (!from.hasSkill("zioy_guangmang")) return Infinity; - }, - globalFrom:function (from, to, distance) { - //if(!to.hasSkill("zioy_guangmang")) return Infinity; - }, - }, - "_priority":0, - }, - "zioy_shihong":{ - trigger:{ - player:"phaseDrawBegin2", - }, - forced:true, - locked:true, - filter:function (event, player) { - return true || !event.numFixed; - }, - content:function () { - "step 0" - var num = game.players.length; - if (player.storage.shulin_juexing == true) { - game.changeGlobalStatus("shuguang", num, "phase"); - event.finish(); - } else { - num = Math.ceil(num / 2); - var choices = []; - for (var i = 0; i <= num; ++i) { - choices.push(i); - } - player - .chooseControl(choices) - .set("prompt", "请选择本回合额外摸牌数") - .set("ai", function () { - var num = game.players.length; - num = Math.ceil(num / 2); - var choices = 0; - for (var i = 0; i <= num; ++i) { - choices = i; - } - if (choices < 2) choices = 2; - return choices - 2; - }); - } - "step 1" - var num = game.players.length; - num = Math.ceil(num / 2); - trigger.num += result.control; - event.num = num - result.control; - if (event.num > 0) - player - .chooseTarget( - "弃置一名角色" + event.num + "张的牌", - function (card, player, target) { - return true; - }, - true - ) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - return -att; - }); - else { - event.finish(); - } - "step 2" - if (result.bool) { - var target = result.targets[0]; - player.discardPlayerCard(target, "hej", true, event.num); - } else { - event.finish(); - } - }, - ai:{ - threaten:1.3, - }, - "_priority":0, - }, - "zioy_cuiyi":{ - trigger:{ - player:["phaseBegin"], - }, - logTarget:"player", - filter:function () { - return true; - }, - forced:true, - locked:true, - init:function (player) { - // player.unmarkSkill('zioy_cuiyi'); - }, - mark:false, - intro:{ - markcount:"expansion", - }, - content:function () { - "step 0" - var p = player; - var num = game.players.length; - if (!player.storage.shulin_juexing) player.storage.shulin_juexing = false; - if (player.storage.shulin_juexing == true) { - var p1 = p; - do { - if (p1.countMark("zioy_cuiyi") > 0) p1.lockEnhancement(num, "phase"); - p1 = p1.next; - } while (p1 != p); - } else { - player - .chooseTarget( - "请选择一名角色并将其“皠翊”拥有状态取反", - function (card, player, target) { - return true; - }, - false - ) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - if (target == player && !player.hasMark("zioy_cuiyi")) att = 100; - // if(!player.storage.shulin_countphase && att < 0){ - // att = -att/2; - // } - // num = 0 ; - // c = ["strike","attack", "defend", "miss", "hit"]; - // for(var i = 0;i < c.length;++i){ - // num += Math.abs(trigger.player.storage.enhancementArray[c[i]]); - // } - var index = 2; - if (target.hasMark("zioy_cuiyi")) index = -1; - return index * att; - }); - } - "step 1" - if (player.storage.shulin_juexing == false && result.bool) { - var target = result.targets[0]; - if (target.countMark("zioy_cuiyi") == 0) { - target.addMark("zioy_cuiyi"); - } else { - target.removeMark("zioy_cuiyi"); - } - } - "step 2" - var p = player; - if (player.storage.shulin_juexing == false) { - var p1 = p; - do { - if (p1.countMark("zioy_cuiyi") > 0) { - c = ["strike", "attack", "defend", "miss", "hit"]; - p1.changeEnhancement(c[(2 * game.roundNumber - 1) % 5], c[(2 * game.roundNumber) % 5], 1); - } - p1 = p1.next; - } while (p1 != p); - } - }, - "_priority":0, - }, - "zioy_shulin":{ - trigger:{ - player:["phaseUseBegin"], - }, - filter:function (event, player) { - return true; - }, - init:function (player) { - player.storage.shulin_juexing = false; - }, - check:function (event, player) { - return player.hp * 2 < player.maxHp; - }, - skillAnimation:true, - animationColor:"thunder", - content:function () { - if (player.storage.shulin_juexing == false) { - player.storage.shulin_juexing = true; - player.storage.shulin_countphase = 1; - player.storage.shulin_name = player.node.name.innerHTML; - player.node.name.innerHTML = "觉醒" + player.node.name.innerHTML; - player.recover(player.maxHp - player.hp); - } else { - n = player.storage.shulin_countphase - (player.maxHp - player.hp); - if (n < 0) player.recover(player.storage.shulin_countphase); - else { - player.recover(player.maxHp - player.hp); - player.draw(n); - } - player.storage.shulin_juexing = false; - player.node.name.innerHTML = player.storage.shulin_name; - player.awakenSkill("zioy_shulin"); - } - }, - group:["zioy_shulin_count"], - subSkill:{ - count:{ - trigger:{ - player:["phaseBegin"], - }, - priority:546546, - filter:function (event, player) { - return player.storage.shulin_juexing; - }, - direct:true, - content:function () { - player.storage.shulin_countphase++; - }, - sub:true, - "_priority":54654600, - }, - }, - "_priority":0, - }, - "zioy_huangyi":{ - trigger:{ - source:"damageBegin1", - }, - priority:0, - forced:true, - locked:true, - filter:function (card, player, target) { - return player.storage.huangyi_locked == false; - }, - init:function (player) { - player.storage.huangyi_locked = false; - }, - content:function () { - "step 0" - if (player.storage.shulin_juexing == false) { - player.recover(); - trigger.num -= 1; - event.finish(); - } else { - player.storage.huangyi_locked = true; - if (trigger.player.storage.enhancementArray["locked"] == true) { - trigger.player.unlockEnhancement(); - } - } - "step 1" - target = trigger.player; - num = 0; - c = ["strike", "attack", "defend", "miss", "hit"]; - for (var i = 0; i < c.length; ++i) { - if (Math.abs(trigger.player.storage.enhancementArray[c[i]]) != 0) num++; - trigger.player.changeEnhancement(c[i], -2 * trigger.player.storage.enhancementArray[c[i]]); - } - trigger.num += num; - // trigger.player.damage(trigger.num, trigger.nature); - "step 2" - player.storage.huangyi_locked = false; - // trigger.cancel(); - }, - "_priority":0, - }, - "zioy_t":{ - enable:"phaseUse", - frequent:false, - filter:function (event, player) { - return true; - }, - content:function () { - player.addDamageMitigationer(0.25,'zioy_t') - if([true,false].randomGet()){ - player.removeDamageMitigationer('zioy_t') - } - // player.addMark("zioy_t",0.5) - // game.log(player.countMark('zioy_t')) - // game.changeGlobalStatus("test", 2, false) - // game.changeGlobalStatus(["xiyu", "rerang"].randomGet(), 5, 4, "phase"); - // if([false,true].randomGet()) - // player.addDamageLimiter(1,'test123456') - // else{ - // player.removeDamageLimiter('test123456') - // } - // for(var i in _status.event){ - // game.log(i," ==> ",_status.event[i]) - // } - // game.log(_status.event.name) - // game.changeGlobalStatusEnd(-1, -999); - // // game.changeGlobalStatus("mizhang", 2, 1, true) - // // game.clearGlobalStatus(false) - // // game.clearGlobalStatus(true) - // // game.changeGlobalStatus("mizhang", 2, 1) - // // player.addBuffImmune(["shuimian", "ranshao"]); - // player.addBuffImmune("all", true); - // if ([true, false].randomGet()) player.removeBuffImmune("all"); - // player.addBuff(["shuimian", "bingdong"].randomGet(), [null, player].randomGet(), [true, false].randomGet()); - // // player.removeBuff('all'); - // num = 6; - // if (player.storage.enhancementArray["miss"] != 0) num = -6; - // player.changeEnhancement("all", num); - // player.lockEnhancement(1, "round"); - // player.addSkill('jiang'); - // var p = player.next; - // while(p != player){ - // game.log(p,p.storage.enhancementArray['miss']); - // p = p.next; - // } - }, - init:function (player) {}, - subSkill:{ - "t1":{ - trigger:{ - player:"damageBegin3", - }, - frequent:false, - filter:function (event, player) { - return false; - }, - content:function () { - // trigger.cancel(); - // player.say("test"); - // trigger.num /= 10 - }, - sub:true, - "_priority":0, - }, - }, - group:["zioy_t_t1"], - "_priority":0, - }, - "zioy_shuohui":{ - trigger:{ - player:["dieBefore","dying"], - }, - direct:true, - unique:true, - forceunique:true, - filter:function (event, player) { - return player.hp < player.maxHp; - }, - init:function (player) { - player.storage.shuohui_locked = false; - }, - logTarget:"player", - content:function () { - trigger.cancel(); - for(var i = 0; i < _status.dying.length;++i){ - if(_status.dying[i] == player){ - _status.dying.splice(i,1) - } - } - }, - group:["zioy_shuohui_damageBegin","zioy_shuohui_recoverBegin","zioy_shuohui_phase","zioy_shuohui_phaseJieshu"], - mod:{ - maxHandcard:function (player, num) { - return player.maxHp - player.hp; - }, - }, - subSkill:{ - damageBegin:{ - trigger:{ - player:["loseHpBegin","damageBegin1"], - }, - priority:43, - direct:true, - unique:true, - forceunique:true, - filter:function (event, player) { - return player.storage.shuohui_locked == false; - }, - logTarget:"player", - content:function () { - "step 0" - player.storage.shuohui_locked = true; - "step 1" - trigger.cancel(); - if(trigger.source != null)player.recover(trigger.num, trigger.source, trigger.cards, trigger.card); - "step 2" - player.storage.shuohui_locked = false; - "step 3" - event.forceDie = true; - if ((_status.dying.contains(player) && player.isAlive()) || player.hp < player.maxHp) { - event.finish(); - return; - } - _status.dying.unshift(player); - game.broadcast(function (list) { - _status.dying = list; - }, _status.dying); - event.trigger("dying"); - game.log(player, "濒死"); - "step 4" - delete event.filterStop; - if (player.hp < player.maxHp || event.nodying) { - _status.dying.remove(player); - game.broadcast(function (list) { - _status.dying = list; - }, _status.dying); - event.finish(); - } else if (!event.skipTao) { - var next = game.createEvent("_save"); - var start = false; - var starts = [_status.currentPhase, event.source, event.player, game.me, game.players[0]]; - for (var i = 0; i < starts.length; i++) { - if (get.itemtype(starts[i]) == "player") { - start = starts[i]; - break; - } - } - next.player = start; - next._trigger = event; - next.triggername = "_save"; - next.forceDie = true; - next.setContent(function () { - "step 0" - event.dying = trigger.player; - if (!event.acted) event.acted = []; - "step 1" - if (trigger.player.isDead()) { - event.finish(); - return; - } - event.acted.push(player); - if ( - lib.config.tao_enemy && - event.dying.side != player.side && - lib.config.mode != "identity" && - lib.config.mode != "guozhan" && - !event.dying.hasSkillTag("revertsave") - ) { - event._result = { - bool: false - }; - } else if (player.canSave(event.dying)) { - player.chooseToUse({ - filterCard: function (card, player, event) { - event = event || _status.event; - return lib.filter.cardSavable(card, player, event.dying); - }, - dyingPlayer: trigger.player, - filterTarget: function (card, player, target) { - if (target != _status.event.dying) return false; - if (!card) return false; - var info = get.info(card); - if (!info.singleCard || ui.selected.targets.length == 0) { - var mod = game.checkMod(card, player, target, "unchanged", "playerEnabled", player); - if (mod == false) return false; - var mod = game.checkMod(card, player, target, "unchanged", "targetEnabled", target); - if (mod != "unchanged") return mod; - } - return true; - }, - prompt: function (event) { - var handTip = event.handTip; - var player = event.player; - var target = event.dyingPlayer; - if (player != target) { - handTip.appendText(get.translation(target), "player"); - handTip.appendText("濒死,需要"); - handTip.appendText(1, "number"); - handTip.appendText("个桃,是否对其使用桃?"); - } else { - handTip.appendText("你当前体力值为"); - handTip.appendText(target.hp, "number"); - handTip.appendText(",需要"); - handTip.appendText(1, "number"); - handTip.appendText("个桃,是否出桃?"); - } - return ""; - }, - ai1: function (card) { - if (typeof card == "string") { - var info = get.info(card); - if (info.ai && info.ai.order) { - if (typeof info.ai.order == "number") { - return info.ai.order; - } else if (typeof info.ai.order == "function") { - return info.ai.order(); - } - } - } - return 1; - }, - ai2: get.effect_use, - type: "dying", - targetRequired: true, - dying: event.dying - }); - } else { - event._result = { - bool: false - }; - } - "step 2" - if (result.bool) { - var player = trigger.player; - player.hp--; - if (player.hp >= player.maxHp && !trigger.nodying && !player.nodying && player.isAlive() && !player.isOut() && !player.removed) - event.goto(0); - else trigger.untrigger(); - } else { - for (var i = 0; i < 20; i++) { - if (event.acted.contains(event.player.next)) { - break; - } else { - event.player = event.player.next; - if (!event.player.isOut()) { - event.goto(1); - break; - } - } - } - } - }); - } - "step 5" - _status.dying.remove(player); - game.broadcast(function (list) { - _status.dying = list; - }, _status.dying); - if (player.hp >= player.maxHp && !event.nodying && !player.nodying) player.die(event.reason); - }, - sub:true, - "_priority":4300, - }, - recoverBegin:{ - trigger:{ - player:["recoverBegin"], - }, - direct:true, - unique:true, - forceunique:true, - filter:function (event, player) { - return player.storage.shuohui_locked == false; - }, - logTarget:"player", - content:function () { - "step 0" - player.storage.shuohui_locked = true; - "step 1" - trigger.cancel(); - if(trigger.source != null){ - player.loseHp(trigger.num, trigger.source, trigger.cards, trigger.card); - } - // player.hp -=trigger.num; - "step 2" - player.storage.shuohui_locked = false; - game.log(player.hp); - }, - sub:true, - "_priority":0, - }, - phase:{ - trigger:{ - player:"phaseBegin", - }, - direct:true, - content:function () { - var next = player.phaseDiscard(); - event.next.remove(next); - trigger.next.push(next); - var next = player.phaseUse(); - event.next.remove(next); - trigger.next.push(next); - var next = player.phaseDraw(); - event.next.remove(next); - trigger.next.push(next); - var next = player.phaseJudge(); - event.next.remove(next); - trigger.next.push(next); - var next = player.phaseJieshu(); - event.next.remove(next); - trigger.next.push(next); - }, - sub:true, - "_priority":0, - }, - phaseJieshu:{ - trigger:{ - player:"phaseJieshu", - }, - direct:true, - content:function () { - var evt = _status.event.getParent("phase"); - if (evt) { - game.resetSkills(); - _status.event = evt; - _status.event.finish(); - _status.event.untrigger(true); - } - }, - sub:true, - "_priority":0, - }, - }, - "_priority":0, - }, - "zioy_hexuchongxiang":{ - trigger:{ - player:["loseHpBegin","damageBegin3"], - }, - filter:function (event, player) { - return event.num > player.storage.hxcx_x; - }, - priority:13, - forced:true, - charlotte:true, - unique:true, - init:function (player) { - var p = player; - p.storage.hxcx_x = 0; - p.storage.hxcx_count1 = 0; - p.storage.hxcx_count2 = 0; - p.storage.yzyw_count1 = 0; - p.gainShenqi = function (num) { - if (num > 999) num = 999; - var p = this; - var mark = "zioy_hexuchongxiang_mark"; - var mark_count = p.countMark(mark); - var num_gain = 0; - var num_hp = 0; - var num_hx = 0; - while (num != 0) { - num--; - if (mark_count + num_gain + 1 <= p.maxHp) { - num_gain++; - } else if (p.hp + num_hp + 1 <= p.maxHp) { - num_hp++; - } else { - num_hx++; - } - } - // game.log(num_gain,num_hp,num_hx); - if (num_gain > 0) p.addMark(mark, num_gain); - if (num_hp > 0) p.recover(num_hp); - // if(p.countMark(mark) > 0)p.markSkill(mark); - if (num_hx > 0) { - if (game.globalStatus.name != "shenlou") { - game.changeGlobalStatus("shenlou", num_hx, "phase"); - } else { - game.changeGlobalStatusEnd(num_hx); - } - } - _status.event.trigger("shenqi"); - }; - p.loseShenqi = function (num) { - if (num > 999) num = 999; - var p = this; - var mark = "zioy_hexuchongxiang_mark"; - var mark_count = p.countMark(mark); - var num_lose = num; - p.removeMark(mark, num_lose); - _status.event.trigger("shenqi"); - }; - }, - content:function () { - player.storage.hxcx_count1++; - var num1 = trigger.num - player.storage.hxcx_x; - player.gainShenqi(num1); - trigger.num = player.storage.hxcx_x; - if (player.storage.hxcx_count1 > player.storage.hxcx_x + 1) { - player.storage.hxcx_x *= 2; - if (player.storage.hxcx_x == 0) player.storage.hxcx_x++; - player.storage.hxcx_count1 = 0; - } - }, - group:["zioy_hexuchongxiang_revive","zioy_hexuchongxiang_damage","zioy_hexuchongxiang_loseMaxHpEnd"], - subSkill:{ - mark:{ - mark:false, - marktext:"蜃气", - intro:{ - name:"蜃气", - }, - sub:true, - "_priority":0, - }, - revive:{ - trigger:{ - player:"dieBefore", - }, - forced:true, - unique:true, - forceunique:true, - skillAnimation:true, - animationColor:"thunder", - filter:function (event, player) { - var flag = false; - var p = player.next; - while (p != player) { - if (p.maxHp >= player.maxHp) { - flag = true; - break; - } - p = p.next; - } - return player.hp > 0 || flag; - }, - logTarget:"player", - content:function () { - "step 0" - if (player.hp > 0) { - trigger.cancel(); - for(var i = 0; i < _status.dying.length;++i){ - if(_status.dying[i] == player){ - _status.dying.splice(i,1) - } - } - player.loseHp(player.hp); - event.finish(); - } - "step 1" - trigger.cancel(); - player.storage.hxcx_count2++; - player.gainMaxHp(player.storage.hxcx_count2 + 1); - var num_mark = player.countMark("zioy_hexuchongxiang_mark"); - player.removeMark("zioy_hexuchongxiang_mark", num_mark); - player.changeHujia(num_mark); - player.draw(num_mark); - player.storage.hxcx_x = player.storage.hxcx_count2 - 1; - player.storage.hxcx_count1 = 0; - if (player.storage.yzyw_eq_flag) player.storage.yzyw_eq_flag = true; - "step 2" - player.recover(player.maxHp - player.hp); - }, - sub:true, - "_priority":0, - }, - damage:{ - trigger:{ - player:["loseHpBegin","damageBegin2","phaseDrawBegin2"], - source:["damageBegin2"], - }, - filter:function (event, player) { - return player.storage.hxcx_count2 > 0; - }, - priority:-301727, - forced:true, - charlotte:true, - unique:true, - direct:true, - content:function () { - trigger.num = parseInt(trigger.num * (player.storage.hxcx_count2 * 0.80001 + 1 + player.storage.yzyw_count1 * 0.2001)); - }, - sub:true, - "_priority":-30172700, - }, - loseMaxHpEnd:{ - trigger:{ - player:["loseMaxHpEnd"], - }, - filter:function (event, player) { - return player.countMark("zioy_hexuchongxiang_mark") > player.maxHp; - }, - priority:-301727, - forced:true, - charlotte:true, - unique:true, - direct:true, - content:function () { - player.loseShenqi(player.countMark("zioy_hexuchongxiang_mark") - player.maxHp); - }, - sub:true, - "_priority":-30172700, - }, - }, - "_priority":1300, - }, - "zioy_yuezhuiyunwei":{ - enable:"phaseUse", - usable:1, - filter:function (event, player) { - return player.countMark("zioy_hexuchongxiang_mark") > 0; - }, - init:function (player) { - player.addBuffImmune("shuimian", Infinity); - player.storage.shenlou_noLoseHp = true - if (!player.storage.yzyw_count1) player.storage.yzyw_count1 = 0; - player.storage.yzyw_eq_flag = true; - }, - content:function () { - "step 0" - num = player.countMark("zioy_hexuchongxiang_mark"); - event.num = num; - player.loseShenqi(num); - if (game.globalStatus.name != "shenlou") { - game.changeGlobalStatus("shenlou", num, "phase"); - } else { - game.changeGlobalStatusEnd(num); - } - c = ["attack", "miss", "defend", "hit", "strike"]; - for (var i = 0; i < c.length; ++i) { - if (player.storage.enhancementArray[c[i]] > 0) continue; - player.changeEnhancement(c[i], -2 * player.storage.enhancementArray[c[i]]); - } - player.removeBuff("all"); - player - .chooseTarget( - "令一名角色获得" + event.num + "点护甲", - function (card, player, target) { - return true; - }, - true - ) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - return att; - }); - "step 1" - var target = result.targets[0]; - target.changeHujia(event.num); - player - .chooseTarget( - "令一名角色恢复" + event.num + "点体力", - function (card, player, target) { - return true; - }, - true - ) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - return att; - }); - "step 2" - var target = result.targets[0]; - target.recover(event.num); - }, - group:["zioy_yuezhuiyunwei_0","zioy_yuezhuiyunwei_501","zioy_yuezhuiyunwei_502","zioy_yuezhuiyunwei_1","zioy_yuezhuiyunwei_6","zioy_yuezhuiyunwei_eq"], - subSkill:{ - "0":{ - trigger:{ - global:["phaseBegin"], - }, - filter:function (event, player) { - return player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp; - }, - direct:true, - priority:4544684, - content:function () { - player.changeEnhancement("attack", "defend", -1); - }, - sub:true, - "_priority":454468400, - }, - "1":{ - trigger:{ - target:"useCardToTargeted", - }, - filter:function (event, player) { - return player.countMark("zioy_hexuchongxiang_mark") > 0.25 * player.maxHp; - }, - direct:true, - priority:45411284, - content:function () { - target = trigger.player; - c = target.getCards("hej"); - for (let i = 0; i < c.length; ++i) { - if (c[i].name == trigger.card.name) { - target.discard(c[i]); - break; - } - } - }, - sub:true, - "_priority":4541128400, - }, - "6":{ - trigger:{ - source:"damageEnd", - }, - filter:function (event, player) { - return event.num > 1 && player.countMark("zioy_hexuchongxiang_mark") > 6; - }, - direct:true, - priority:4584184, - content:function () { - player.loseMaxHp(1); - trigger.player.gainMaxHp(1); - player.storage.yzyw_count1++; - }, - sub:true, - "_priority":458418400, - }, - "501":{ - trigger:{ - global:["shenqi","roundStart"], - }, - filter:function (event, player) { - return true; - }, - direct:true, - priority:44684, - content:function () { - if (player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp) { - if (!player.storage._disableJudge) player.disableJudge(); - for (let i in lib.buffMiao) { - if (i != "shuimian") player.addBuffImmune(i, Infinity); - } - } else { - if (player.storage._disableJudge) player.enableJudge(); - for (let i in lib.buffMiao) { - if (i != "shuimian") player.removeBuffImmune(i, Infinity); - } - } - }, - sub:true, - "_priority":4468400, - }, - "502":{ - trigger:{ - player:"turnOverBefore", - }, - priority:21220, - direct:true, - filter:function (event, player) { - return !player.isTurnedOver() && player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp; - }, - content:function () { - trigger.cancel(); - game.log(player, "取消了翻面"); - }, - sub:true, - "_priority":2122000, - }, - eq:{ - trigger:{ - player:"useCardToTargeted", - }, - filter:function (event, player) { - return player.countMark("zioy_hexuchongxiang_mark") == player.maxHp && player.storage.yzyw_eq_flag == true; - }, - direct:true, - priority:4521284, - content:function () { - target = trigger.target; - var num = Math.abs(player.maxHp - target.maxHp); - var limit = player.storage.hxcx_count2; - if (num > limit) num = limit; - if (num != 0) { - if (player.maxHp < target.maxHp) { - player.gainMaxHp(num); - target.loseMaxHp(num); - } else if (player.maxHp > target.maxHp) { - player.loseMaxHp(num); - target.gainMaxHp(num); - } - } - num = Math.abs(player.hp - target.hp); - if (num > limit) num = limit; - if (num != 0) { - if (player.hp < target.hp) { - player.recover(num); - target.loseHp(num); - } else if (player.hp > target.hp) { - player.loseHp(num); - target.recover(num); - } - } - player.storage.yzyw_eq_flag = false; - }, - sub:true, - "_priority":452128400, - }, - }, - "_priority":0, - }, - "zioy_pianhongxiusao":{ - "_priority":0, - }, - "zioy_hanbosuliu":{ - "_priority":0, - }, - "zioy_zhumingxiangan":{ - "_priority":0, - }, - "zioy_yujin":{ - mark:false, - marktext:"烬", - intro:{ - name:"烬", - }, - init:function(player){ - player.addMark('zioy_yujin',5); - player.addDamageLimiter(1,'zioy_yujin'); - player.storage.zioy_yujin_gainhujia = 0; - player.storage.zioy_yujin_hujia = player.hujia > 0; - }, - trigger:{ - player:"damageLimit", - }, - forced:true, - filter:function(event, player){ - return player.countMark('zioy_yujin') > 0 - }, - content:function(){ - player.removeMark('zioy_yujin',2); - player.storage.zioy_yujin_gainhujia++ - if(player.countMark('zioy_yujin') <= 0){ - player.removeDamageLimiter('zioy_yujin') - } - }, - group:["zioy_yujin_gainHujia","zioy_yujin_hujiaBroken","zioy_yujin_damageEnd","zioy_yujin_loseHp"], - subSkill:{ - loseHp:{ - trigger:{ - player:"loseHpBegin", - }, - forced:true, - filter:function(event, player){ - return player.countMark('zioy_yujin') > 0 - }, - content:function(){ - trigger.num = 0; - player.removeMark('zioy_yujin',2); - player.storage.zioy_yujin_gainhujia++ - if(player.countMark('zioy_yujin') <= 0){ - player.removeDamageLimiter('zioy_yujin') - } - }, - sub:true, - "_priority":0, - }, - gainHujia:{ - trigger:{ - player:"changeHujiaEnd", - }, - filter:function(event, player){ - return player.hujia > 0 - }, - direct:true, - content:function(){ - player.storage.zioy_yujin_hujia = true; - }, - sub:true, - "_priority":0, - }, - hujiaBroken:{ - trigger:{ - player:"damageEnd", - }, - forced:true, - filter:function(event, player){ - return player.storage.zioy_yujin_hujia&&player.hujia==0 - }, - priority:212241231350, - content:function(){ - player.storage.zioy_yujin_hujia = false; - player.recover(); - if(trigger.source != null){ - player.discardPlayerCard(trigger.source,'hej',false,'visible',[1,2]); - trigger.source.damage(1,'fire'); - } - }, - sub:true, - "_priority":21224123135000, - }, - damageEnd:{ - trigger:{ - player:"damageEnd", - }, - forced:true, - priority:-212240, - filter:function(event, player){ - return player.storage.zioy_yujin_gainhujia && player.storage.zioy_yujin_gainhujia > 0 - }, - content:function(){ - player.changeHujia(1); - player.storage.zioy_yujin_gainhujia-- - }, - sub:true, - "_priority":-21224000, - }, - }, - "_priority":0, - }, - "zioy_xumie":{ - trigger:{ - source:"damageEnd", - }, - forced:true, - filter:function(event,player){ - // return event.getParent(2).name!='zioy_xumie'; - return player.storage.zioy_xumie_flag - }, - init:function(player){ - player.storage.zioy_xumie_flag = true; - }, - content:function(){ - 'step 0' - player.storage.zioy_xumie_flag = false; - 'step 1' - if(!trigger.player.storage.zioy_xumie){ - trigger.player.storage.zioy_xumie = 0 - } - trigger.player.storage.zioy_xumie++; - if(trigger.player.storage.zioy_xumie > 1){ - player.discardPlayerCard(trigger.player,'hej',false,'visible',[1,2]); - } - if(trigger.player.storage.zioy_xumie > 2){ - trigger.player.addSkill('zioy_xumie_1'); - } - if(trigger.player.storage.zioy_xumie > 3){ - trigger.player.damage(1); - } - if(trigger.player.storage.zioy_xumie > 4){ - player.addMark('zioy_yujin',1) - player.addDamageLimiter(1,'zioy_yujin'); - } - 'step 2' - player.storage.zioy_xumie_flag = true; - }, - mod:{ - inRange:function(from,to){ - if(to.storage.zioy_xumie && to.storage.zioy_xumie > 0) return true; - }, - }, - group:["zioy_xumie_0"], - subSkill:{ - "0":{ - trigger:{ - player:"useCard", - }, - direct:true, - filter:function(event,player){ - return event.card.name == 'sha' && game.hasPlayer(current=>{ - return current!=player&¤t.storage.zioy_xumie&¤t.storage.zioy_xumie > 0; - }); - }, - content:function(){ - trigger.directHit.addArray(game.filterPlayer(current=>{ - return current!=player&¤t.storage.zioy_xumie&¤t.storage.zioy_xumie > 0; - })); - }, - sub:true, - "_priority":0, - }, - "1":{ - trigger:{ - source:"damageBegin1", - }, - forced:true, - filter:function(event,player){ - return true - }, - priority:32.01, - content:function(){ - trigger.num-=1; - player.removeSkill('zioy_xumie_1'); - }, - sub:true, - "_priority":3201, - }, - }, - "_priority":0, - }, - "zioy_v07yuxie":{ - trigger:{ - global:"phaseBefore", - player:"enterGame", - }, - forced:true, - filter:function(event,player){ - return (event.name!='phase'||game.phaseNumber==0); - }, - mark:true, - marktext:"驭械", - intro:{ - name:"驭械", - mark:function (dialog, storage, player) { - if(player.countCards('h') < player.hp) - return "当前处于冷却状态"; - return "当前处于暴走状态" - }, - }, - init:function(player){ - player.unmarkSkill('zioy_v07yuxie'); - }, - content:function(){ - player.changeHujia(4); - player.addSkill('zioy_v07yuxie_yuxie'); - }, - group:["zioy_v07yuxie_exitYuxie"], - subSkill:{ - exitYuxie:{ - trigger:{ - player:["damageEnd","changeHujiaEnd"], - }, - direct:true, - filter:function(event, player){ - return player.hasSkill('zioy_v07yuxie_yuxie')&&player.hujia==0 - }, - priority:22, - content:function(){ - player.removeSkill('zioy_v07yuxie_yuxie') - }, - sub:true, - "_priority":2200, - }, - yuxie:{ - init:function(player){ - player.markSkill('zioy_v07yuxie') - player.removeDamageLimiter(1,'zioy_v07yuxie_yuxie'); - c = ["strike", "attack", "defend", "miss", "hit"]; - for (var i = 0; i < c.length; ++i) { - player.changeEnhancement(c[i], -1 * player.storage.enhancementArray[c[i]]); - } - player.removeBuff("all"); - var cards=player.getCards('j'); - if(cards.length){ - player.gain(cards); - } - game.log(player,'已进入驭械状态') - }, - onremove:function(player){ - player.unmarkSkill('zioy_v07yuxie') - player.addDamageLimiter(1,'zioy_v07yuxie_yuxie'); - c = ["strike", "attack", "defend", "miss", "hit"]; - for (var i = 0; i < c.length; ++i) { - player.changeEnhancement(c[i], -1 * player.storage.enhancementArray[c[i]]); - } - player.removeBuff("all"); - var cards=player.getCards('j'); - if(cards.length){ - player.gain(cards); - } - game.log(player,'已退出驭械状态') - }, - mod:{ - globalFrom:function(from,to,current){ - if(from.hp<=from.countCards('h')) return current-2; - }, - cardUsable:function(card,player){ - if(player.hp<=player.countCards('h')) return true; - }, - maxHandcard:function(player,num){ - return num+player.hujia; - }, - }, - group:["zioy_v07yuxie_yuxie1","zioy_v07yuxie_yuxie2","zioy_v07yuxie_yuxie3","zioy_v07yuxie_yuxie4","zioy_v07yuxie_yuxie5","zioy_v07yuxie_yuxie6","zioy_v07yuxie_yuxie7"], - sub:true, - "_priority":0, - }, - "yuxie1":{ - trigger:{ - player:"useCard", - }, - direct:true, - filter:function(event,player){ - if(player.countCards('h') < player.hp)return false; - return event.card.name == 'sha' && game.hasPlayer(current=>{ - return current!=player; - }); - }, - content:function(){ - trigger.directHit.addArray(game.filterPlayer(current=>{ - return current!=player; - })); - }, - sub:true, - "_priority":0, - }, - "yuxie2":{ - trigger:{ - player:"useCardToPlayer", - }, - forced:true, - filter:function(event,player){ - if(player.countCards('h') >= player.hp)return false; - if(get.type2(event.card)!='trick') return false; - return player != event.target//event.targets.some(i=>i!=player); - }, - content:function(){ - player.discardPlayerCard(trigger.target,'hej',false,[1,2]); - }, - sub:true, - "_priority":0, - }, - "yuxie3":{ - trigger:{ - player:"damageBegin1", - }, - direct:true, - filter:function(event,player){ - if(player.countCards('h') >= player.hp)return false; - return event.num>1; - }, - priority:0.4547, - content:function(){ - trigger.num--; - player.recover() - }, - sub:true, - "_priority":45.47, - }, - "yuxie4":{ - trigger:{ - player:"useCard", - }, - forced:true, - priority:0.4457, - filter:function(event,player){ - if(player.countCards('he')==0) return false; - if(player.countCards('h') < player.hp)return false; - // if(event.card.name=='sha') return true; - return true; - }, - autodelay:true, - content:function(){ - player.chooseToDiscard(true,'hej'); - }, - sub:true, - "_priority":44.57, - }, - "yuxie5":{ - trigger:{ - player:"useCardEnd", - }, - forced:true, - filter:function(event,player){ - if(player.countCards('h') >= player.hp)return false; - for(var i = 0;i < player.storage.zioy_yuxie5_cards.length;i++){ - for(var c of event.cards){ - if (player.storage.zioy_yuxie5_cards[i] == c){ - return false; - } - } - } - return event.cards && player.storage.zioy_yuxie5_flag && get.type(event.card)!='equip' - }, - init:function(player){ - player.storage.zioy_yuxie5_flag = true; - player.storage.zioy_yuxie5_cards = []; - }, - content:function(){ - player.gain(trigger.cards); - for(var c of trigger.cards){ - player.storage.zioy_yuxie5_cards.push(c); - } - player.storage.zioy_yuxie5_flag = false; - }, - sub:true, - "_priority":0, - }, - "yuxie6":{ - trigger:{ - global:"phaseEnd", - }, - direct:true, - filter:function(event,player){ - return true; - }, - priority:0.6854, - autodelay:true, - content:function(){ - player.storage.zioy_yuxie5_flag = true; - player.storage.zioy_yuxie5_cards = []; - }, - sub:true, - "_priority":68.54, - }, - "yuxie7":{ - trigger:{ - player:"gainEnd", - }, - direct:true, - filter:function(event,player){ - return player.countCards('h') > player.hp - }, - autodelay:true, - content:function(){ - player.storage.zioy_yuxie5_flag = true; - }, - sub:true, - "_priority":0, - }, - }, - "_priority":0, - }, - "zioy_f42chongzai":{ - enable:"phaseUse", - usable:1, - filter:function (event, player) { - return player.hasSkill('zioy_v07yuxie_yuxie'); - }, - check:function (event, player) { - return player.countCards('h') < player.hp; - }, - init:function(player){ - player.storage.zioy_f42chongzai_hp = 0 - player.storage.zioy_f42chongzai_hujia = 0 - }, - content:function () { - 'step 0' - event.i = 0 - 'step 1' - game.players[event.i].damage(1,'nosource','nocard') - player.line(game.players[event.i]) - event.i ++ ; - 'step 2' - if(event.i < game.players.length){ - event.goto(1) - } - else{ - player.draw(3) - if(player.hp == player.maxHp){ - player.hp-=1 - player.storage.zioy_f42chongzai_hp+=1 - } - if(player.hujia && player.hujia > 0){ - player.changeHujia(-1) - player.storage.zioy_f42chongzai_hujia+=1 - } - } - }, - ai:{ - order:1, - result:{ - player:2.5, - }, - }, - group:["zioy_f42chongzai_1"], - subSkill:{ - "1":{ - enable:"phaseUse", - usable:1, - filter:function (event, player) { - // return true; - return !player.hasSkill('zioy_v07yuxie_yuxie'); - }, - filterCard:function(card){ - var suit=get.suit(card); - for(var i=0;i 1){ - player.addMark('zioy_f42chongzai_1',player.hp-1) - player.hp = 1 - } - player.addSkill('zioy_f42chongzai_2') - 'step 1' - if(player.storage.zioy_f42chongzai_hp > 0){ - player.recover(player.storage.zioy_f42chongzai_hp); - player.storage.zioy_f42chongzai_hp = 0 - } - }, - ai:{ - order:1, - result:{ - player:1, - }, - }, - sub:true, - "_priority":0, - }, - "2":{ - trigger:{ - global:"phaseEnd", - }, - direct:true, - priority:3254, - filter:function(event,player){ - return player.countMark('zioy_f42chongzai_1') < player.maxHp; - }, - content:function(){ - player.addMark('zioy_f42chongzai_1',1) - }, - group:["zioy_f42chongzai_3"], - sub:true, - "_priority":325400, - }, - "3":{ - trigger:{ - global:"phaseEnd", - }, - forced:true, - skillAnimation:true, - animationColor:"thunder", - unique:true, - priority:3278, - filter:function(event,player){ - return player.countMark('zioy_f42chongzai_1') >= player.maxHp; - }, - autodelay:true, - content:function(){ - num = player.countMark('zioy_f42chongzai_1') - player.removeMark('zioy_f42chongzai_1',num) - num+=player.storage.zioy_f42chongzai_hujia - player.changeHujia(num) - player.storage.zioy_f42chongzai_hujia = 0 - if(num > player.maxHp){ - player.gainMaxHp(1) - } - player.removeSkill('zioy_f42chongzai_2') - player.addSkill('zioy_v07yuxie_yuxie') - }, - sub:true, - "_priority":327800, - }, - }, - "_priority":0, - }, - "zioy_yuemai":{ - trigger:{ - source:"damageEnd", - }, - locked:true, - forced:true, - filter:function(event,player){ - return get.status(game.globalStatus.name).type != "environment" - }, - content:function(){ - 'step 0' - game.changeGlobalStatus('mizhang',8) - 'step 1' - if(game.globalStatus.name == 'mizhang'){ - player.changeHujia(2) - } - }, - mod:{ - globalFrom:function (from, to, distance) { - if(game.globalStatus.name == 'mizhang') return distance - 1; - }, - }, - group:["zioy_yuemai_jianshang"], - subSkill:{ - jianshang:{ - trigger:{ - global:"changeGlobalStatus_End", - }, - direct:true, - filter:function(){ - return true - }, - content:function(){ - if(game.globalStatus.name == 'mizhang'){ - player.addDamageMitigationer(0.5,'zioy_yuemai_jianshang') - } - else{ - player.removeDamageMitigationer('zioy_yuemai_jianshang') - } - }, - sub:true, - "_priority":0, - }, - }, - "_priority":0, - }, - "zioy_liechenyuyou_water":{ - init:function(player){ - player.storage.kami_protect = "water"; - }, - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - player:"phaseDrawBegin", - }, - content:function(){ - trigger.num+=2 - }, - group:["zioy_liechenyuyou_water_draw1","zioy_liechenyuyou_water_damage"], - subSkill:{ - "draw1":{ - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - player:["phaseEnd","roundStart"], - }, - content:function(){ - player.draw(1); - }, - sub:true, - "_priority":5234500, - }, - damage:{ - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - source:"damageBegin1", - }, - filter:function(event,player){ - if(event.player.group=='shen') - return false; - return !event.player.storage.kami_protect || event.player.storage.kami_protect == 'fire'; - }, - content:function(){ - trigger.num+=1; - }, - sub:true, - "_priority":5234500, - }, - }, - "_priority":5234500, - }, - "zioy_pinghuqiuyue":{ - init:function(player){ - player.addDamageLimiter(2,"zioy_pinghuqiuyue"); - player.storage.pinghuqiuyue_targetHasHujia = false - }, - onremove:function(player){ - player.removeDamageLimiter('zioy_pinghuqiuyue') - }, - trigger:{ - player:"loseHpEnd", - }, - mod:{ - maxHandcardBase:function(player,num){ - num-=4; - if(num < 3)num = 3; - return num; - }, - }, - forced:true, - direct:true, - priority:52345, - mark:true, - marktext:"怒气", - intro:{ - name:"怒气", - }, - content:function(){ - player.addTempSkill("zioy_pinghuqiuyue_noLoseHp",'roundStart'); - player.zioy_get_nuqi = function(){ - return this.countMark("zioy_pinghuqiuyue"); - } - }, - group:["zioy_pinghuqiuyue_damage2hujia","zioy_pinghuqiuyue_damageEndS","zioy_pinghuqiuyue_damageEndP","zioy_pinghuqiuyue_damageLimit","zioy_pinghuqiuyue_phaseEnd","zioy_pinghuqiuyue_dyingBegin"], - subSkill:{ - noLoseHp:{ - trigger:{ - player:"loseHpBegin", - }, - forced:true, - direct:true, - priority:52345, - content:function(){ - trigger.cancel(); - }, - sub:true, - "_priority":5234500, - }, - "damage2hujia":{ - trigger:{ - source:"damageBegin1", - }, - forced:true, - priority:523245, - filter:function(event,player){ - return event.player && event.player.hujia > 0; - }, - content:function(){ - trigger.num+=1; - player.storage.pinghuqiuyue_targetHasHujia = true - }, - sub:true, - "_priority":52324500, - }, - damageEndS:{ - trigger:{ - source:"damageEnd", - }, - forced:true, - priority:52345, - filter:function(event,player){ - return true; - }, - content:function(){ - if(player.storage.pinghuqiuyue_targetHasHujia){ - player.storage.pinghuqiuyue_targetHasHujia = false; - if(trigger.player.hujia == 0){ - player.addMark("zioy_pinghuqiuyue",7); - } - } - player.addMark("zioy_pinghuqiuyue",trigger.num); - }, - sub:true, - "_priority":5234500, - }, - damageEndP:{ - trigger:{ - player:"damageEnd", - }, - forced:true, - priority:524345, - filter:function(event,player){ - return true; - }, - content:function(){ - player.addMark("zioy_pinghuqiuyue",trigger.num); - }, - sub:true, - "_priority":52434500, - }, - dyingBegin:{ - trigger:{ - source:"dyingBegin", - }, - forced:true, - priority:524545, - filter:function(event,player){ - return true; - }, - content:function(){ - player.addMark("zioy_pinghuqiuyue",7); - }, - sub:true, - "_priority":52454500, - }, - phaseEnd:{ - trigger:{ - player:"phaseEnd", - }, - forced:true, - priority:523415, - filter:function(event,player){ - return player.countMark('zioy_pinghuqiuyue') > 0; - }, - content:function(){ - player.removeMark('zioy_pinghuqiuyue',1) - }, - sub:true, - "_priority":52341500, - }, - damageLimit:{ - trigger:{ - player:"damageLimit", - }, - forced:true, - priority:5415, - content:function(){ - player.addMark("zioy_pinghuqiuyue",7); - }, - sub:true, - "_priority":541500, - }, - }, - "_priority":5234500, - }, - "zioy_yurangzhijian":{ - enable:"phaseUse", - usable:1, - unique:true, - init:function(player){ - player.storage.yurangzhijian_nuqi = 0.0; - player.storage.yurangzhijian_count = 0; - }, - content:function(){ - nuqi = player.countMark('zioy_pinghuqiuyue') - player.removeMark('zioy_pinghuqiuyue',nuqi) - m = 0 - if(player.hasSkill('zioy_yurangzhijian_chengsheng')){ - m = player.countMark('zioy_yurangzhijian_chengsheng') - if(m < 4){ - m = m - 1 - } - else{ - m = 3 - } - player.removeMark('zioy_yurangzhijian_chengsheng',m) - } - game.changeGlobalStatus('xiyu',5,'round'); - player.addBuffImmune('all',5,'round'); - x = player.storage.yurangzhijian_count; - y = parseInt(0 - x + parseInt(nuqi/3) + m); - if(y > 0){ - player.recover(y) - }else if(y < 0){ - if(player.hasSkill('zioy_yurangzhijian_chengsheng')){ - player.chooseToDiscard('h',Math.min(player.countCards('h'),-y),true) - }else{ - player.chooseToDiscard('he',Math.min(player.countCards('he'),-y),true) - } - } - if(player.hasSkill('zioy_yurangzhijian_chengsheng')){ - player.addSkill('zioy_yurangzhijian_damage'); - } - if(player.storage.yurangzhijian_nuqi + nuqi >= 10 && !player.hasSkill('zioy_yurangzhijian_chengsheng')){ - player.addSkill('zioy_yurangzhijian_chengsheng'); - player.addMark('zioy_yurangzhijian_chengsheng',1); - } - player.storage.yurangzhijian_nuqi += nuqi/3 - player.storage.yurangzhijian_count+=1.5; - }, - ai:{ - order:1, - result:{ - player:function(player){ - x = player.storage.yurangzhijian_count; - n = player.countMark('zioy_pinghuqiuyue'); - m = player.countMark('zioy_yurangzhijian_chengsheng'); - y = parseInt(0 - x + n/3 + m); - if(player.storage.yurangzhijian_nuqi + n >= 10 && !player.hasSkill('zioy_yurangzhijian_chengsheng')){ - return 100; - } - if(player.hp < 3 && y > 0){ - return 100; - } - return Math.min(y,player.maxHp - player.hp) - 1; - }, - }, - }, - subSkill:{ - damage:{ - trigger:{ - player:"damageBegin", - }, - forced:true, - priority:54145, - content:function(){ - trigger.num = 0; - player.removeSkill('zioy_yurangzhijian_damage'); - }, - sub:true, - "_priority":5414500, - }, - chengsheng:{ - mark:true, - marktext:"盛怒", - charlotte:true, - unique:true, - direct:true, - intro:{ - name:"盛怒", - }, - init:function(player){ - game.log(player,'已进入盛怒') - }, - trigger:{ - player:"useCard", - }, - filter:function(event,player){ - return event.card &&(get.tag(event.card,'damage')) ; - }, - content:function(){ - if(player.countMark('zioy_yurangzhijian_chengsheng') < 7){ - player.addMark('zioy_yurangzhijian_chengsheng',1); - } - }, - mod:{ - cardUsable:function(card,player,num){ - if(card.name=='sha') return num+parseInt(player.countMark('zioy_yurangzhijian_chengsheng')*0.43); - }, - canBeDiscarded:function(card){ - if(get.position(card)=='e') return false; - }, - }, - group:["zioy_yurangzhijian_wushuang","zioy_yurangzhijian_damageEnd","zioy_yurangzhijian_damageBegin"], - sub:true, - "_priority":0, - }, - wushuang:{ - trigger:{ - player:"useCardToPlayered", - }, - forced:true, - filter:function(event,player){ - return event.card.name=='sha'&&!event.getParent().directHit.contains(event.target); - }, - logTarget:"target", - content:function(){ - var id=trigger.target.playerid; - var map=trigger.getParent().customArgs; - if(!map[id]) map[id]={}; - if(typeof map[id].shanRequired=='number'){ - n = parseInt(player.countMark('zioy_yurangzhijian_chengsheng')/2.3); - if(n == 0){ - n = 1 - } - map[id].shanRequired+=n; - } - else{ - map[id].shanRequired=2; - } - }, - ai:{ - "directHit_ai":true, - skillTagFilter:function(player,tag,arg){ - if(arg.card.name!='sha'||arg.target.countCards('h','shan')>parseInt(player.countMark('zioy_yurangzhijian_chengsheng')/2.3)) return false; - }, - }, - sub:true, - "_priority":0, - }, - damageEnd:{ - trigger:{ - source:"damageEnd", - }, - forced:true, - priority:5243145, - filter:function(event,player){ - return true; - }, - content:function(){ - player.recover(parseInt(trigger.num*0.05*player.countMark('zioy_yurangzhijian_chengsheng'))); - if(parseInt(trigger.num*0.15*player.countMark('zioy_yurangzhijian_chengsheng')) > 0) - player.discardPlayerCard(trigger.player,'hej',true,Math.min(trigger.player.countCards('hej'),parseInt(trigger.num*0.15*player.countMark('zioy_yurangzhijian_chengsheng')))); - }, - sub:true, - "_priority":524314500, - }, - damageBegin:{ - trigger:{ - source:"damageBegin1", - }, - direct:true, - priority:5045, - filter:function(event,player){ - return true; - }, - content:function(){ - trigger.num+=parseInt(0.58*player.countMark('zioy_yurangzhijian_chengsheng')); - }, - sub:true, - "_priority":504500, - }, - }, - "_priority":0, - }, - "zioy_liechenyuyou_fire":{ - init:function(player){ - player.storage.kami_protect = "fire"; - }, - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - player:"phaseDrawBegin", - }, - content:function(){ - trigger.num+=2 - }, - group:["zioy_liechenyuyou_fire_draw1","zioy_liechenyuyou_fire_damage"], - subSkill:{ - "draw1":{ - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - player:["phaseEnd","roundStart"], - }, - content:function(){ - player.draw(1); - }, - sub:true, - "_priority":5234500, - }, - damage:{ - forced:true, - unique:true, - charlotte:true, - locked:true, - priority:52345, - trigger:{ - source:"damageBegin1", - }, - filter:function(event,player){ - if(event.player.group=='shen') - return false; - return !event.player.storage.kami_protect || event.player.storage.kami_protect == 'wood'; - }, - content:function(){ - trigger.num+=1; - }, - sub:true, - "_priority":5234500, - }, - }, - "_priority":5234500, - }, - "zioy_zhuxingwuchang":{ - filter:function(event,player){ - return player.countMark("zioy_yongyeqingxiao") == 0; - }, - direct:true, - locked:true, - trigger:{ - source:"damageEnd", - }, - content:function(){ - 'step 0' - player.loseHp(1); - 'step 1' - if(game.globalStatus.name != 'huoshan'){ - player.recover(2); - } - else{ - player.recover(4); - } - 'step 2' - if(game.roundNumber%2 == 1){ - game.changeGlobalStatus('rerang',2); - } - else{ - game.changeGlobalStatus('huoshan',2); - } - }, - group:["zioy_zhuxingwuchang_damageBegin","zioy_zhuxingwuchang_damageEnd","zioy_zhuxingwuchang_useCard"], - subSkill:{ - damageBegin:{ - filter:function(event,player){ - return get.status(game.globalStatus.name).type == "weather"; - }, - direct:true, - locked:true, - trigger:{ - player:["useCardToBefore"], - }, - content:function(){ - trigger.card.nature = 'fire'; - }, - "_priority":165463463456, - sub:true, - }, - useCard:{ - trigger:{ - player:"useCard", - }, - direct:true, - locked:true, - filter:function(event,player){ - return get.status(game.globalStatus.name).type == "environment"; - }, - content:function(){ - trigger.directHit.addArray(game.filterPlayer()); - }, - sub:true, - "_priority":0, - }, - damageEnd:{ - filter:function(event,player){ - return get.status(game.globalStatus.name).type == "weather"; - }, - direct:true, - locked:true, - trigger:{ - source:"damageEnd", - }, - content:function(){ - 'step 0' - if(trigger.player.countCards('hej') > 0) - player.discardPlayerCard(trigger.player,'hej',true,1); - }, - sub:true, - "_priority":0, - }, - }, - "_priority":16, - }, - "zioy_zhufashengmie":{ - trigger:{ - player:"dieBefore", - }, - forced:true, - unique:true, - forceunique:true, - skillAnimation:true, - animationColor:"thunder", - filter:function (event, player) { - return true; - }, - content:function(){ - 'step 0' - player.awakenSkill("zioy_zhufashengmie"); - trigger.cancel(); - 'step 1' - player.hp = player.maxHp; - 'step 2' - player.addTempSkill('zioy_lockHp',{player:"phaseUseEnd"}); - 'step 3' - player.update() - }, - "_priority":0, - }, - "zioy_yongyeqingxiao":{ - init:function(player){ - player.addMark("zioy_yongyeqingxiao",5); - // player.storage.huoshan_no = true; - }, - usable:null, - mark:false, - marktext:"无瞋", - intro:{ - name:"无瞋", - mark:function(){ - return "复有三法,谓三善根:一者不贪,二者不恚,三者不痴。" - }, - }, - enable:"phaseUse", - filter:function(event,player){ - return player.countMark("zioy_yongyeqingxiao") > 0 && player.countMark("zioy_yongyeqingxiao") != 5; - }, - content:function(){ - var n = player.countMark("zioy_yongyeqingxiao"); - n = 5 - n; - player.addMark('zioy_yongyeqingxiao',n); - player.draw(parseInt(n*1.25+0.01)); - if(parseInt(n/1.5+0.01) > 0 && !player.hasSkill('zioy_yongyeqingxiao_recoverMark')){ - player.recover(parseInt(n/2+0.01)); - player.addTempSkill('zioy_yongyeqingxiao_recoverMark') - } - player.addBuffImmune('all',n); - if(game.roundNumber%2 == 1){ - game.changeGlobalStatus('rerang',n); - } - else{ - game.changeGlobalStatus('huoshan',n); - } - }, - mod:{ - globalFrom:function(from,to,distance){ - if(from.countMark("zioy_yongyeqingxiao") == 0) - return distance-1; - }, - cardUsable:function(card,player,num){ - // if(player.countMark("zioy_yongyeqingxiao") == 0) - // if(card.name=='sha') return num+1; - }, - }, - ai:{ - order:1, - result:{ - player:function(player){ - var n = player.countMark("zioy_yongyeqingxiao"); - n = 5 - n; - return 5*(n - 2); - }, - }, - }, - group:["zioy_yongyeqingxiao_useCard"], - subSkill:{ - useCard:{ - trigger:{ - player:"useCardEnd", - }, - filter:function(event,player){ - return player.countMark("zioy_yongyeqingxiao") > 0; - }, - direct:true, - content:function(){ - 'step 0' - player.removeMark('zioy_yongyeqingxiao'); - if(player.countCards('he') > 0){ - player.chooseToDiscard('he',1,true); - } - 'step 1' - if(player.countMark("zioy_yongyeqingxiao") == 0){ - player.disableJudge(); - player.addBuffImmune('all',Infinity); - } - }, - sub:true, - "_priority":0, - }, - recoverMark:{ - sub:true, - "_priority":0, - }, - }, - "_priority":0, - }, - "zioy_nongying":{ - trigger:{ - player:["chooseToRespondBegin","chooseToUseBegin"], - }, - filter:function(event,player){ - if(event.responded) return false; - if(!event.filterCard({name:'shan'},player,event)) return false; - return true; - }, - content:function(){ - trigger.untrigger(); - // game.log(trigger) - trigger.responded=true; - trigger.result={bool:true,card:{name:'shan'}} - if(player.hp < player.maxHp){ - player.recover() - player.loseMaxHp() - }else{ - player.loseHp() - player.gainMaxHp() - } - }, - mod:{ - cardname:function(card){ - if(card.name=='shan') return 'sha'; - }, - }, - group:["zioy_nongying_2"], - subSkill:{ - "2":{ - trigger:{ - player:["useCard","respond"], - }, - filter:function(event,player){ - if(event.card.name != 'sha')return false - for(var c of event.cards){ - if(c.name == 'shan') return true - } - return false - }, - forced:true, - content:function(){ - if(player.hp < player.maxHp){ - player.recover() - player.loseMaxHp() - }else{ - player.loseHp() - player.gainMaxHp() - } - }, - sub:true, - "_priority":0, - }, - }, - "_priority":0, - }, - "zioy_chanjuan":{ - trigger:{ - player:"recoverEnd", - }, - filter:function(event,player){ - return event && event.num > 0; - }, - direct:true, - content:function(){ - 'step 0' - player - .chooseTarget( - "令任意名其他角色恢复" + trigger.num + "点体力", - function (card, player, target) { - return target.hp < target.maxHp && target != player; - },[1,game.countPlayer(function (target) { - return target.hp < target.maxHp; - })], - false - ) - .set("ai", function (target) { - var att = get.attitude(_status.event.player, target); - return att; - }); - 'step 1' - if(result.bool){ - for(var p of result.targets){ - p.recover(trigger.num) - } - } - }, - "_priority":0, - }, - "zioy_lanzhiyuane":{ - "_priority":0, - }, - "zioy_liuzhenxiongxiang":{ - "_priority":0, - }, - "zioy_yinhuxiaowu":{ - "_priority":0, - }, - "zioy_noname1":{ - "_priority":0, - }, - }, - translate:{ - "zioy_xixue":"汲血", - "zioy_xixue_info":"出牌阶段,你可以弃置一张牌并选择一名非上一回合以此法选择角色,你偷取其一点体力值。", - "zioy_shiyi":"石翼", - "zioy_shiyi_info":"锁定技
①:当你造成伤害时,你获得一点护甲。
②:你的与其他角色的距离-X,其他角色与你的距离+X,你的手牌上限+X(X为你的护甲值)", - "zioy_jinjia":"晶甲", - "zioy_jinjia_info":"锁定技,一轮游戏开始时,若你没有护甲,你获得两点护甲。", - "zioy_jinsui":"晶髓", - "zioy_jinsui_info":"出牌阶段,你可以消耗你所有的护甲并选择一名角色,直到你的回合结束,若该角色受到伤害,该角色翻面。", - "zioy_jinsui2":"晶髓", - "zioy_jinsui2_info":"若你受到伤害,你翻面。", - "zioy_chenmeng":"尘梦", - "zioy_chenmeng_info":"锁定技,其他角色造成伤害时,你令其失去一点体力上限并获得〖尘〗标记,然后你获得一点体力上限。你对拥有〖尘〗标记的角色造成伤害时,你移除其〖尘〗标记,恢复其以此法失去的体力上限,然后其失去一点体力,你获得其一张手牌,回复1点体力并失去以此法获得的体力上限。", - "zioy_chenmeng1":"尘梦", - "zioy_chenmeng1_info":"当你受到由〖长野原神乐〗造成的伤害时,你回复一点体力上限并失去一点体力,其失去一点体力上限,回复一点体力并获得你一张牌。", - "zioy_eye":"厄夜", - "zioy_eye_info":"锁定技,你即将对其他角色造成的伤害改为抹除体力。", - "zioy_damie":"大灭", - "zioy_damie_info":"一轮游戏开始时,若场上已有角色死亡,则你可以抹除一名角色的所有体力,你以此法无法使该角色死亡。", - "zioy_heiyi":"黑疫", - "zioy_heiyi_info":"锁定技,当你成为【杀】的目标时,此【杀】的来源获得技能〖黑死〗。", - "zioy_duyi":"黑死", - "zioy_duyi_info":"锁定技,回合开始时,你失去一点体力,若你体力值为1,则改为失去一点体力上限。", - "zioy_eji":"恶剂", - "zioy_eji_info":"限定技,出牌阶段,你可以获得3点体力与体力上限,摸3张牌,接下来的每个回合开始阶段,你失去一点体力上限直到你的体力上限等于1。", - "zioy_huashou":"花狩", - "zioy_huashou_info":"锁定技,你的回合开始阶段,你随机标记一名敌人并将其区域内随机2/3数量的牌(向上取整)置于其武将牌上。若你回合内对被标记者造成伤害,你移除其标记,对其造成X点伤害,回复X/2(向下取整)点体力,若X/2大于你已损失体力则将你的护甲置为1,然后获得其以此法置于武将牌上的所有牌。若回合结束时其未受到伤害,其获得其武将牌上的所有牌。(X为受伤角色已损失体力)", - "zioy_huashou2":"花狩", - "zioy_huashou2_info":"若你本回合未受到伤害,回合结束时获得被〖花狩〗置于武将牌上的牌。", - "zioy_huashou3":"花狩", - "zioy_huashou3_info":"", - "zioy_longyue":"胧月", - "zioy_longyue_info":"游戏开始时,你摸一张牌并创建一张【月光】,你的出牌阶段开始时,你装备你游戏开始时创建的【月光】。你对被〖花狩〗标记的角色造成伤害会提升你的基础属性: 第一次造成伤害时:你装备的【月光】提供的攻击范围+1,每2次造成伤害:你的手牌上限+1,每3次造成伤害:你的摸牌阶段摸牌数+1,每4次造成伤害:你的体力上限+1。", - "zioy_longyue2":"胧月", - "zioy_longyue2_info":"", - "zioy_jike":"棘壳", - "zioy_jike_info":"锁定技,当你受到伤害时,若伤害来源不为你,你对其造成等额的伤害。", - "zioy_longyue3":"胧月", - "zioy_longyue3_info":"摸牌", - "zioy_happyNewYear":"逡游", - "zioy_happyNewYear_info":"锁定技,当你失去牌时,你获得一个\"春\"标记。当你的\"春\"标记数量发生变化时,若标记数量为偶数,你摸一张牌。当你于你的回合内使用【杀】指定目标时,若你的\"春\"标记数量大于等于X,你需弃置X个\"春\"标记,并使你此次使用的【杀】不计入出牌阶段使用次数(X在你的出牌阶段第一次使用牌时被赋值为4,且每次使用此技能令【杀】不计入次数时+2)。", - "zioy_qunyou2":"逡游", - "zioy_qunyou2_info":"春节快乐,于2023.1.21,8:37。", - "zioy_qianlong":"潜龙", - "zioy_qianlong_info":"当你使用或打出一张【杀】或【闪】时,若你区域内有牌,你可以弃置一张牌,然后你摸一张牌并获得一点护甲", - "zioy_jianlong":"见龙", - "zioy_jianlong_info":"出牌阶段,若你护甲值大于0,你可以摸一张牌并移去一点护甲。若此做,你的下一张【杀】无视距离且若此【杀】造成伤害,你将此技能替换为〖飞龙〗。", - "zioy_feilong":"飞龙", - "zioy_feilong_info":"锁定技,除非该角色死亡,你的【杀】只能对你上一次使用【杀】造成伤害的角色使用。你的下一张【杀】无距离限制且无法被响应。若你使用【杀】对一名角色造成伤害,你失去【飞龙】并获得【亢龙】,【见龙】,然后你摸一张牌。", - "zioy_kanglong":"亢龙", - "zioy_kanglong_info":"限定技,出牌阶段,你可以选择一名角色,你摸一张牌,并对该角色造成X点伤害,若该角色因〖亢龙〗死亡,则你的〖亢龙〗视为未使用(X为你当前体力值与该角色当前体力值的差值且至少为1)", - "zioy_jianlong2":"见龙", - "zioy_jianlong2_info":"你的杀无视距离", - "zioy_jianlong4":"见龙", - "zioy_jianlong4_info":"你的下一张【杀】无视距离。", - "zioy_kanglong2":"亢龙", - "zioy_kanglong2_info":"", - "zioy_yixiang":"燚祥", - "zioy_yixiang_info":"你造成的伤害均视为火属性,你受到的火属性伤害-1。", - "zioy_yixiang2":"燚祥", - "zioy_yixiang2_info":"", - "zioy_yuyan":"驭煙", - "zioy_yuyan_info":"锁定技,你废除你的坐骑栏,你与其他角色的距离-1,其他角色与你的距离+1。", - "zioy_chuixing":"吹星", - "zioy_chuixing_info":"你每使用两张【杀】,就可以视为使用一张无实体牌且无视距离的【火杀】,你初始视为使用过一张【杀】。", - "zioy_zhijin":"掷金", - "zioy_zhijin_info":"当你不因〖掷金〗而获得牌时,你随机摸一定数量的牌,该数量与你本次摸牌数成正相关且可能等于零。", - "zioy_xuanzhuan":"璇转", - "zioy_xuanzhuan_info":"出牌阶段限一次,你可以令场上所有有手牌的角色将一张手牌置于你的武将牌上,然后对于你武将牌上的每张牌,你令随机一名刚才有将牌置入你的武将牌上的角色获得之,你有更大的概率获得。", - "zioy_leiye1":"累业", - "zioy_leiye1_info":"当你造成伤害时,你获得一个\"墨\"标记,当你受到伤害或回复体力时,你获得一个\"霜\"标记。", - "zioy_leiye2":"累业", - "zioy_leiye2_info":"霜", - "zioy_mosha":"霜杀墨染雪", - "zioy_mosha_info":"觉醒技,与〖墨残霜伴樱〗共用次数。出牌阶段,若你的\"墨\"标记达到3,你可以选择一名角色,然后你失去一点体力上限并对其造成3点伤害。", - "zioy_shuangsha":"墨残霜伴樱", - "zioy_shuangsha_info":"觉醒技,与〖霜杀墨染雪〗共用次数。出牌阶段,若你的\"霜\"标记达到3,你可以获得一点体力上限,回复2点体力并选择一名角色,你对其造成一点伤害。", - "zioy_lieying":"裂影", - "zioy_lieying_info":"当你造成伤害时,你可以摸一张牌。若你使用过〖霜杀墨染雪〗,你的【杀】不可被响应且你造成的伤害+1。若你使用过〖墨残霜伴樱〗,你的【杀】可以额外指定一个目标,当你造成伤害时,你回复X点体力值(X为你已损失体力值/2,向下取整)", - "zioy_lieying1":"裂影", - "zioy_lieying1_info":"", - "zioy_wrjzc":"无人机侦查", - "zioy_wrjzc_info":"回合开始阶段,你观看随机一名角色的手牌。", - "zioy_zsyhj":"自适应护甲", - "zioy_zsyhj_info":"锁定技,你的手牌上限等于你的护甲,每个回合开始阶段,你大于1的体力上限会被转化为护甲。当你受到一次属性伤害,你免疫下一次属性伤害。当你受到一次无属性伤害,你免疫下一次无属性伤害。两种免疫效果不能同时存在。", - "zioy_weixiang":"伪像", - "zioy_weixiang_info":"游戏开始时,你选择一名角色,然后你将你的武将牌替换成你选择角色的武将牌,同时修改自己的体力,体力上限,护甲与其一致。", - "zioy_zsyhjn":"护甲", - "zioy_zsyhjn_info":"抵消下一次受到的属性伤害", - "zioy_fansheng":"反生", - "zioy_fansheng_info":"锁定技,你死亡时,杀死你的角色获得〖年种〗标记并将体力上限减少至1,然后你废除其防具栏,+1马栏,宝物栏。若拥有你给予的〖年种〗标记的角色死亡,你复活并令你回复X点体力,增加X点体力上限,摸X张牌,然后你与其交换座位并进行一个额外的回合(X为〖年种〗标记的角色原有的体力上限)", - "zioy_nianzhong":"年种", - "zioy_nianzhong_info":"锁定技,你死亡时,'年'复活并与你交换座位并额外进行一个回合。", - "zioy_jifou":"祭否", - "zioy_jifou_info":"一轮游戏开始时,你可以选择一名角色,你使该角色摸牌阶段摸牌数+2,体力上限+3,回复体力至体力上限,并摸5张牌。然后你死亡。", - "zioy_jifou2":"祭否", - "zioy_jifou2_info":"你已获得赐福", - "zioy_liubo":"流波", - "zioy_liubo_info":"你记录最后一张因弃置进入弃牌堆的牌。当你使用牌指定一名角色为目标时,你可以为此牌额外指定一名目标,并获得〖流波〗记录的牌。", - "zioy_liubo2":"流波", - "zioy_liubo2_info":"使用牌", - "zioy_shuiyue":"水月", - "zioy_shuiyue_info":"回合结束阶段,你可以摸X张牌,然后将X/1.5且向下取整(X为你本局游戏中发动〖流波〗的次数)", - "zioy_moying":"末影", - "zioy_moying_info":"出牌阶段限一次,你可以将一张黑色牌置于一名角色的武将牌上,称为\"末影\",当你使用牌指定一名其他角色为唯一目标时,拥有\"末影\"且不为目标的角色视为对目标使用一张与你使用牌相同的牌。场上至多同时存在2个由你产生的\"末影\",当\"末影\"超出限制时,你获得已存在最早产生的\"末影\"。", - "zioy_yingdun":"影遁", - "zioy_yingdun_info":"当你成为一名角色使用牌的目标时,你可以选择一名不为此牌目标且拥有\"末影\"的角色,你将此牌目标转移为该角色并与其交换座位,每个\"末影\"限一次,重新赋予\"末影\"可刷新限制。", - "zioy_moying2":"末影", - "zioy_moying2_info":"当该影使用牌指定一名其他角色为唯一目标时,若该目标是你的合法目标,你视为对其使用一张与该影使用牌相同的牌。", - "zioy_jianying":"渐影", - "zioy_jianying_info":"隐匿技,当你亮出武将牌时,你可以将一张无限点数的黑桃【杀】加入游戏并当作\"末影\"置于一名其他角色的武将牌上。", - "zioy_moying3":"末影", - "zioy_moying3_info":"死", - "zioy_yuexiang":"月相", - "zioy_yuexiang_info":"获得此技能时,你随机获得一个月相,每轮开始时月相会按规律进行变化,摸牌阶段,你的摸牌数根据月相增加0~2张。", - "zioy_yuexiang2":"月相", - "zioy_yuexiang2_info":"一轮开始时", - "zioy_douzhuan":"斗转", - "zioy_douzhuan_info":"游戏开始时,你随机指定一名角色并将7张牌置于其武将牌上,称为“星斗”。每轮游戏开始时,星斗将转移至拥有者下家。当“星斗”拥有者死亡或一轮游戏开始时你为满月且与“星斗”拥有者的座位相邻时,你获得“星斗”中的所有牌,使你月相的额外摸牌效果翻倍并使你的手牌上限+7。", - "zioy_xingdou":"星斗", - "zioy_xingdou_info":"闲云潭影日悠悠,物转星移几度秋", - "zioy_shengyue":"神月", - "zioy_shengyue_info":"限定技,出牌阶段,若\"星斗\"不位于你的区域内,你可以与你的下家交换座位并重复此流程直到你的上家区域内拥有\"星斗\"。", - "zioy_xiaoxiang":"消香", - "zioy_xiaoxiang_info":"限定技,一轮游戏开始时,对每个拥有〖尘〗的角色,你移去其的〖尘〗,令其翻面并令你回复一点体力。", - "zioy_douzhuan2":"斗转", - "zioy_douzhuan2_info":"死了", - "zioy_nianxi":"年袭", - "zioy_nianxi_info":"出牌阶段,你可以弃置一张非红色牌,视为打出一张【杀】,若此杀未造成伤害,你受到由目标角色对你造成的X点伤害(X为你因此技能受到伤害的次数+1)", - "zioy_nianxi2":"年袭", - "zioy_nianxi2_info":"", - "zioy_xiantong":"显瞳", - "zioy_xiantong_info":"一轮游戏开始或你的摸牌阶段结束时,你可以将一张非装备牌置于你的武将牌上,称为“瞳”。你拥有的“瞳”的数量不能超过你的体力上限。你的回合结束阶段,对于你的每张“瞳”,你视为对随机一名其他角色使用一张虚拟的同名牌。", - "zioy_xiane":"显厄", - "zioy_xiane_info":"回合结束阶段,若你的“瞳”达到3张,你可以依次获得你的所有“瞳”,你每以此法获得一张“瞳”,随机一名其他角色受到由你造成的2点雷电伤害。", - "zioy_xiantong2":"显瞳", - "zioy_xiantong2_info":"结束阶段", - "zioy_wuya":"雾鸦", - "zioy_wuya_info":"出牌阶段,你可以失去一点体力上限并选择一名角色,你令其获得“鸦”标记。拥有“鸦”标记的角色所有技能失效。拥有“鸦”标记的角色即将受到伤害时,防止此伤害并移去“鸦”标记。拥有“鸦”标记的角色的回合开始阶段,你需将此标记转移给一名未拥有“鸦”的角色。你以此法转移“鸦”标记时,原被标记者失去一点体力。若你以此法将“鸦”标记转移到自己区域内,你失去“鸦”标记,回复X点体力,并获得X点“黑血”标记(X为此“鸦”标记转移的次数+1)", - "zioy_sheji":"摄脊", - "zioy_sheji_info":"当你使用【杀】指定一名角色为目标时,你可以失去一点“黑血”,然后令【杀】失效,你偷取目标角色一点体力值。", - "zioy_puai":"瀑霭", - "zioy_puai_info":"限定技,回合结束阶段,你可以移去任意点“黑血”并失去等量体力上限,然后从下轮游戏开始,持续X轮,获得以下效果:
①.“鸦”不被强制要求抵挡伤害
②.“鸦”不被强制要求移动
③.发动〖雾鸦〗时失去体力上限改为获得体力上限。
④.你与其他角色的距离为负无穷大,其他角色与你的距离为无穷大,防止你成为伤害类卡牌的目标。", - "zioy_wuya2":"雾鸦", - "zioy_wuya2_info":"", - "zioy_wuya3":"雾鸦", - "zioy_wuya3_info":"", - "zioy_wuya4":"雾鸦", - "zioy_wuya4_info":"", - "zioy_puai2":"瀑霭", - "zioy_puai2_info":"", - "zioy_puai3":"瀑霭", - "zioy_puai3_info":"", - "zioy_xingchi":"行持", - "zioy_xingchi_info":"锁定技,当你使用或打出一张【杀】或【闪】时,你获得1点“正觉”。
当你即将造成/受到伤害时,你移去3点“正觉”并令此伤害+1/-1。", - "zioy_xingchi2":"行持", - "zioy_xingchi2_info":"", - "zioy_xingchi3":"行持", - "zioy_xingchi3_info":"", - "zioy_cangzhen":"沧震", - "zioy_cangzhen_info":"锁定技,每名角色限一次,你对一名角色造成伤害前,你令其翻面且此伤害+1。", - "zioy_cangzhen2":"沧震", - "zioy_cangzhen2_info":"", - "zioy_shangqin":"上觐", - "zioy_shangqin_info":"锁定技,①当有其他非“虚空虫”角色死亡后,你可令其复活并将武将牌替换为“虚空虫”,其体力上限与体力值为2,身份与你同阵营,操控者为你。然后你获得一点体力上限并回复一半已损失体力(向上取整)
②“虚空虫”死亡后,你获得其所有牌。", - "zioy_hanshou":"颔首", - "zioy_hanshou_info":"限定技,一轮游戏开始时,你可以令所有已死亡的“虚空虫”满体力复活,然后你失去X点体力上限并令所有“虚空虫”摸X张牌(X为以此法复活的“虚空虫”数量)", - "zioy_shangqin2":"上觐", - "zioy_shangqin2_info":"", - "zioy_shangqin3":"上觐", - "zioy_shangqin3_info":"", - "zioy_longzi":"溶紫", - "zioy_longzi_info":"", - "zioy_yingyuan":"隐渊", - "zioy_yingyuan_info":"①其他角色的回合结束阶段开始时,若你的武将牌为正面朝上,你可以将你的武将牌翻面。
②每轮游戏限一次,已受伤角色的回合结束阶段,若你武将牌翻面,你可以重复和你的下家交换位置直到你成为此受伤角色的上家,然后你将武将牌翻面并立即执行一个额外的回合
③若你武将牌背面向上,你即将受到的伤害-1。", - "zioy_hey":"嘿!", - "zioy_hey_info":"每名角色每轮限一次,回合开始与结束阶段,你选择一种颜色并观看一名角色的手牌,若其手牌中你选择颜色数量占优/不占优,你与其各摸/弃置一张牌并令其/你“光芒”标记拥有状态取反。获得此技能时你获得“光芒”。", - "zioy_ya":"呀!", - "zioy_ya_info":"你即将受到伤害时,若你没有“光芒”,你可以将一枚“光芒”移动至你的区域内并防止此次伤害。", - "zioy_ha":"哈!", - "zioy_ha_info":"你造成伤害后,你可以移动一枚“光芒”标记。", - "zioy_guangmang":"光芒", - "zioy_guangmang_info":"锁定技,①受到伤害结算后,若场上存在其他拥有“光芒”的角色,你移去“光芒”并对其中随机一名角色造成等于本次伤害值的伤害。
②无“光芒”角色与你的距离为无穷大。", - "zioy_shihong":"拾虹", - "zioy_shihong_info":"锁定技,摸牌阶段,未觉醒状态下你可以额外摸0~Y张牌,并弃置一名角色X张牌,觉醒状态下召唤曙光天气N回合(N为当前存活角色数,Y为N/2且向上取整,X为Y-本回合以此法额外摸牌的数量)", - "zioy_cuiyi":"皠翊", - "zioy_cuiyi_info":"回合开始阶段,未觉醒状态下令一名角色“皠翊”标记拥有状态取反,然后根据游戏轮数强化拥有“皠翊”标记的角色2项属性1级。觉醒状态下锁定所有拥有“皠翊”标记的角色强化N回合(N为当前存活角色数)", - "zioy_shulin":"倏翷", - "zioy_shulin_info":"觉醒技,每局游戏限2次。出牌阶段开始时,你可以回复所有已损失体力并进入觉醒状态。再次使用此技能时回复X点体力并将多出的回复值转化为摸牌数,然后你退出觉醒状态(X为觉醒状态持续时间)", - "zioy_huangyi":"煌熠", - "zioy_huangyi_info":"锁定技,你即将造成伤害时,未觉醒状态下你令伤害-1并回复1点体力,觉醒状态下若目标角色强化锁定则解除锁定,然后倒置目标角色强化,令伤害+X(X为你以此法倒置的强化项数之和)", - "zioy_t":"测试", - "zioy_t_info":"测试技能", - "zioy_t1":"测试", - "zioy_t1_info":"sadadwadwaedaw", - "zioy_shuohui":"朔回", - "zioy_shuohui_info":"锁定技
①防止你在已损失体力时死亡,你在未损失体力时进入濒死状态。
②你不以此法失去体力与受到伤害均改为回复体力,不以此法回复体力均改为失去体力。
③除开始阶段与结束阶段,你的回合阶段执行顺序与正常顺序相反。
④你的手牌上限等于你已损失体力。", - "zioy_hexuchongxiang":"鹤墟重香", - "zioy_hexuchongxiang_info":"清香更何用,犹发去年枝。
①将你即将受到伤害/流失体力时伤害/流失值超过X点的部分转化为“蜃气”,触发此效果超过X+1次后令X翻倍(若X=0则令X加1)并重置计数(获得此技能时令X=0)
②当你死亡时,若你体力值不小于0则改为失去所有体力,否则:若你体力上限不为场上唯一最多,你复活,获得N+1点体力上限,回复所有体力,移去所有“蜃气”并获得等量护盾,摸等量的牌,令X等于N-1,重置①效果计数,令你本局游戏摸牌阶段摸牌数,造成/受到伤害,失去体力的数值永久增加80%(向下取整)(N为〖鹤墟重香②〗发动的次数)
③你的“蜃气”数量不会超过你体力上限,获得“蜃气”时根据你是否受伤将多余的“蜃气”转换为体力值或“海市蜃楼”天气回合数。", - "zioy_hexuchongxiang_mark":"鹤墟重香③", - "zioy_hexuchongxiang_revive":"鹤墟重香②", - "zioy_yuezhuiyunwei":"月坠云微", - "zioy_yuezhuiyunwei_info":"梦回芳草思依依,天远雁声稀。
①根据当前“蜃气”的数量执行下列效果:
不大于50%体力上限:一名角色的回合开始阶段你失去1级防御,攻击强化,你的判定区视为被废除,你免疫任何异常状态,你的武将牌始终正面向上。
大于25%体力上限:当你成为其他角色使用牌的目标时,其弃置一张与此牌同名的手牌(没有则不弃)
大于6:当你造成超过1点伤害后,你失去1点体力上限并令其获得1点体力上限,令你本局游戏摸牌阶段摸牌数,造成/受到伤害,失去体力的数值永久增加20%(与〖鹤墟重香〗同乘区)。
等于体力上限:每局游戏限一次,发动〖鹤墟重香②〗或〖月坠云微②〗时重置计数。当你使用牌对指定一名角色为唯一目标时,你与其交换体力与体力上限。以此法交换的体力和体力上限不超过X点(X为你发动〖鹤墟重香③〗的次数)
②每回合限1次,出牌阶段,若你有“蜃气”,你可以主动发动此技能:你失去所有“蜃气”,倒置负面强化并清除所有异常状态,召唤等量回合的“海市蜃楼”天气,令一名角色获得等量护盾,令一名角色回复等量体力(X=你的体力上限/2且向下取整)
③你永久免疫“睡眠”异常,永久免疫“海市蜃楼”的任何效果。", - "zioy_zhumingxiangan":"烛明香暗", - "zioy_zhumingxiangan_info":"凭阑半日独无言,依旧竹声新月似当年。
①。", - "zioy_hanbosuliu":"寒波泝流", - "zioy_hanbosuliu_info":"琼窗春断双蛾皱,回首边头。", - "zioy_pianhongxiusao":"片红休埽", - "zioy_pianhongxiusao_info":"啼莺散,馀花乱,寂寞画堂深院。", - "zioy_yujin":"余烬", - "zioy_yujin_info":"①获得此技能时你获得5点“烬”,若你有“烬”,限制你受到的伤害不超过1点且防止你失去体力。每次触发限伤或防止失去体力时你失去2点“烬”并在下次受到伤害后获得1点护甲。
②你的护甲被击破时,你恢复1点体力,弃置伤害来源至多2张牌并令其受到由你造成的1点火属性伤害。", - "zioy_xumie":"虚灭", - "zioy_xumie_info":"当你造成伤害时,根据你对该受伤角色造成伤害的次数追加以下效果:
大于0次:其始终在你攻击范围内且不能响应你使用的【杀】。
大于1次:你弃置其至多2张牌。
大于2次:其下一次造成的伤害-1。
大于3次:你对其追加1点伤害,此伤害无法触发〖虚灭〗。
大于4次:你获得1点“烬”", - "zioy_v07yuxie":"V07-驭械", - "zioy_v07yuxie_info":"①游戏开始时你获得4点护甲并进入“驭械”状态,当你的护甲被击破时你退出“驭械”状态。
②“驭械”状态为你提供以下增益:
1.你的手牌上限+X(X为你的护甲值)。

·>当你手牌数不小于体力值时,你为暴走状态,获得以下增益:
1.你的进攻距离+2。
2.你的【杀】无法被响应。
3.你使用牌没有次数限制。
4.你使用牌时需额外弃置1张牌。

·>当你手牌数小于体力值时,你为冷却状态,获得以下增益:
1.你使用锦囊牌指定角色为目标时,你可以弃置目标角色至多2张牌。
2.你使用非装备牌结算完成后,你收回此牌。每回合限1次,获得手牌时若手牌数大于体力值则重置此计数。每张牌每回合限1次。
3.你即将受到超过1点的伤害时令此伤害值-1并恢复你1点体力。

③非“驭械”状态下限制你受到的伤害不超过1点。
④进入或退出“驭械”状态时清除自身任何强化与异常状态并获得判定区内的所有牌。", - "zioy_f42chongzai":"F42-重载", - "zioy_f42chongzai_info":"出牌阶段各限1次:
①若你为“驭械”状态,你令所有角色受到1点无来源伤害,然后你摸3张牌,然后若你未损失体力则储存1点体力,若你拥有护甲则储存1点护甲。
②若你不为“驭械”状态,你可以弃置至少2张花色各不同的手牌,根据你弃置的手牌数执行以下效果:
不为4张:你获得等同于弃置手牌数-1枚“能量”标记。
4张:你获得4枚“能量”标记。
然后将当前体力值超过1的部分转化为等量“能量”标记,之后释放你储存的体力值。使用此技能后的每个的回合结束阶段,根据你的“能量”标记数量,执行以下效果:
小于体力上限:你获得1枚“能量”标记。
不小于体力上限:你弃置所有“能量”标记,获得等量护甲并释放储存的护甲,进入“驭械”状态,若你以此法获得的护甲值大于你的体力上限,你获得1点体力上限。", - "zioy_yuemai":"岳衇", - "zioy_yuemai_info":"锁定技,①你造成伤害后,若场上没有环境,则尝试召唤“迷嶂”环境8轮,召唤成功则获得2点护甲。
②“迷嶂”环境中你进攻距离+1,“迷嶂”环境下你获得50%免伤。", - "zioy_liechenyuyou_water":"列辰御佑", - "zioy_liechenyuyou_water_info":"血脉技,免疫失效。
①令你获得“泷之神佑”。
②你的摸牌阶段摸牌数+2,结束阶段与一轮游戏开始时你摸1张牌.
③你使用【杀】对非神势力非拥有“神佑”或拥有“燚之神佑”的角色造成的伤害+1。", - "zioy_pinghuqiuyue":"平湖秋月", - "zioy_pinghuqiuyue_info":"①限制你受到的伤害最大为2点。
②当你流失体力后,防止你于本轮游戏流失体力。
③你的手牌上限-4且不小于3。
④你对拥有护甲的角色造成的伤害+1。
⑤触发限伤效果/击破一名角色护甲/令一名角色进入濒死状态时获得7点怒气,受到/造成伤害时获得等额怒气。
⑥你的回合结束阶段,你失去1点怒气。", - "zioy_yurangzhijian":"与浪之间", - "zioy_yurangzhijian_info":"出牌阶段限一次,依次结算以下效果:
①消耗你所有“怒气”,减少你至多3层“盛怒”层数(最多减少至1层)。
②召唤5轮“细雨”天气,获得5回合全异常免疫。
③令Y=M-1.5X+N/3(向下取整),若Y大于零则回复Y点体力,否则弃置-Y张牌(X为本局游戏〖与浪之间〗累计使用次数,N为本次消耗怒气值,M为本次消耗“盛怒”层数)。
④若累计记录消耗怒气数+N达到10点则进入盛怒状态并获得1点“盛怒”层数,此效果一局游戏限1次。
⑤盛怒状态下使你下一次受到的伤害基础值等于0。
⑥记录N/3点消耗怒气数。
盛怒状态:盛怒状态最多达到7层,盛怒状态中每次使用伤害类型牌时获得1层“盛怒”层数,盛怒状态为你提供以下增益:
>①你出牌阶段可以多使用X*0.43(向下取整)张【杀】
>②你使用【杀】时对方需多使用X*0.43(向下取整且至少为1)张【闪】
>③你的【杀】造成的伤害+X*0.58(向下取整)
>④造成伤害时你回复0.05*X*伤害值(向下取整)点伤害值并弃置受伤角色0.15*X*伤害值(向下取整)张牌。
>⑤你装备区的牌无法被弃置。", - "zioy_liechenyuyou_fire":"列辰御佑", - "zioy_liechenyuyou_fire_info":"血脉技,免疫失效。
①令你获得“燚之神佑”。
②你的摸牌阶段摸牌数+2,结束阶段与一轮游戏开始时你摸1张牌.
③你使用【杀】对非神势力非拥有“神佑”或拥有“苏之神佑”的角色造成的伤害+1。", - "zioy_zhuxingwuchang":"诸行无常", - "zioy_zhuxingwuchang_info":"锁定技,若场上为天气,你使用的牌视为火属性且造成伤害后弃置受伤角色1张牌;若场上为环境,你的牌不可被响应;若你没有“无瞋”:造成伤害后你失去1点体力然后恢复2点体力,“风林火山”环境下提升至4点,若当前为奇数轮则召唤2轮“热浪”天气,否则召唤2轮“风林火山”环境。。", - "zioy_zhufashengmie":"诸法生灭", - "zioy_zhufashengmie_info":"一局游戏限一次,你死亡时,取消之,然后你令你的体力值等于体力上限并锁定体力直到你的下个出牌阶段结束。", - "zioy_yongyeqingxiao":"永夜清宵", - "zioy_yongyeqingxiao_info":"①获得此技能时你获得5个“无瞋”标记。若你有“无瞋”,你使用牌结算后需弃置1张牌(没有则不弃)并失去1个“无瞋”。
②出牌阶段,若你有“无瞋”标记且不为5个,你可以将“无瞋”补至5个,记补充数量为X,你摸X*1.25(向下取整)张牌,回复X/2(向下取整)点体力(回复体力效果每回合限1次),获得X轮异常免疫,若当前为奇数轮则召唤X轮“热浪”天气,否则召唤X轮“风林火山”环境。
③若你没有“无瞋”,你废弃你的判定区,永久获得全异常免疫,攻击距离+1。", - "zioy_nongying":"弄影", - "zioy_nongying_info":"起舞弄清影,何似在人间。
①你手牌中的【闪】均视为【杀】,当你需要使用或打出【闪】时,你可以视为打出一张【闪】。
②每当你发动〖弄影①〗或将【闪】视为【杀】使用或打出时,若你已受伤,你失去1点体力上限并恢复1点体力,否则你获得1点体力上限并失去1点体力。", - "zioy_chanjuan":"婵娟", - "zioy_chanjuan_info":"但愿人长久,千里共婵娟。
你回复体力后,可令任意名已受伤的其他角色回复等量体力。", - "zioy_lanzhiyuane":"滥蛭垣厄", - "zioy_lanzhiyuane_info":"锁定技,你的【杀】造成的伤害+X(X为log2(目标角色当前体力)且向下取整),若造成伤害后目标角色体力值不小于最大体力值*0.5则弃置其2张牌,否则倒置其下次回复体力效果并令此技能无法再对其发动。", - "zioy_liuzhenxiongxiang":"流鸩汹飨", - "zioy_liuzhenxiongxiang_info":"", - "zioy_yinhuxiaowu":"饮蛊销污", - "zioy_yinhuxiaowu_info":"", - "zioy_noname1":"占位", - "zioy_noname1_info":"①记你的体力上限为你的\"尾数\",若你的\"尾数\"不为9,你每次使用进攻类型的牌或即将受到伤害时你获得1点体力上限并回复1点体力值。
②你即将受到的伤害不超过尾数/2(向下取整),你受到的伤害减少尾数*0.05(向上取整),你的摸牌阶段摸牌数+X(X为你的尾数)。
③当你尾数为9时,你造成的任何伤害+1并且附带1点不触发此技能的雷属性伤害。
④每个回合开始阶段将你超过9的体力上限部分与全部护甲转换为体力。", - }, - }, - intro:"??????????????????????????
拒绝规范描述", - author:"喵喵", - diskURL:"", - forumURL:"", - version:"23.08.13.01.39", -},files:{"character":["zioy_xuanhu.jpg"],"card":["zioy_yueguang.jpg"],"skill":[],"audio":[]}}}) \ No newline at end of file + var num = get.tag(card, "damage"); + if (num) { + if (num > 1) return 0.5; + return 0; + } + } + } + }, + "_priority": 0 + } + }, + group: ["zioy_yingyuan_yy1", "zioy_yingyuan_yy2"], + "_priority": 0 + }, + "zioy_hey": { + derivation: ["zioy_guangmang"], + trigger: { + player: ["phaseBegin", "phaseEnd"] + }, + logTarget: "player", + filter: function () { + return true; + }, + direct: true, + init: function (player) { + player.storage.hey_lastp = null; + player.storage.hey_lastr = -999; + player.addSkill("zioy_guangmang"); + }, + content: function () { + "step 0" + if (player.storage.hey_lastr < game.roundNumber) { + player.storage.hey_lastp = null; + player.storage.hey_lastr = game.roundNumber; + } + var choices = ["红色", "黑色"]; + player.chooseControl(choices).set("prompt", "请选择一种颜色"); + "step 1" + event.color = "red"; + if (result.control == "黑色") event.color = "black"; + player + .chooseTarget( + "请选择观看一名角色的手牌", + function (card, player, target) { + return target != player.storage.hey_lastp; + }, + true + ) + .set("ai", function (target) { + return [-1, 1].randomGet(); + }); + "step 2" + event.target = result.targets[0]; + player.storage.hey_lastp = event.target; + player.viewHandcards(event.target); + var hs = event.target.getCards("h", { color: event.color }); + var l = event.target.getCards("h").length - hs.length; + event.flag = true; + if (hs.length < l) event.flag = false; + "step 3" + var target = event.target; + if (event.flag == true) { + player.draw(); + event.target.draw(); + } else { + target = player; + player.chooseToDiscard(true); + event.target.chooseToDiscard(true); + } + if (target.hasSkill("zioy_guangmang")) { + target.removeSkill("zioy_guangmang"); + } else { + target.addSkill("zioy_guangmang"); + } + }, + "_priority": 0 + }, + "zioy_ya": { + derivation: ["zioy_guangmang"], + trigger: { + player: "damageBegin" + }, + filter: function (event, player) { + if (player.hasSkill("zioy_guangmang")) return false; + var targets = game.players; + var ts1 = []; + for (var i = 0; i < targets.length; ++i) { + if (targets[i].hasSkill("zioy_guangmang")) { + ts1.push(targets[i]); + } + } + if (ts1.length > 0) return true; + return false; + }, + direct: true, + content: function () { + "step 0" + player + .chooseTarget( + "是否将一名角色的光芒移动至己方区域内并防止此次伤害", + function (card, player, target) { + return target.hasSkill("zioy_guangmang"); + }, + false + ) + .set("ai", function (target) { + return 1; + }); + "step 1" + if (result.bool) { + event.from = result.targets[0]; + event.from.removeSkill("zioy_guangmang"); + player.addSkill("zioy_guangmang"); + trigger.cancel(); + } else event.finish(); + }, + "_priority": 0 + }, + "zioy_ha": { + derivation: ["zioy_guangmang"], + trigger: { + source: "damageAfter" + }, + forced: true, + filter: function (event, player, trigger) { + var targets = game.players; + var ts1 = []; + for (var i = 0; i < targets.length; ++i) { + if (targets[i].hasSkill("zioy_guangmang")) { + ts1.push(targets[i]); + } + } + if (ts1.length > 0) return true; + return false; + }, + content: function () { + "step 0" + player + .chooseTarget( + "请选择转出光芒的角色", + function (card, player, target) { + return target.hasSkill("zioy_guangmang"); + }, + false + ) + .set("ai", function (player, target) { + if (target == player) return 2; + return [-1, 1].randomGet(); + }); + "step 1" + if (result.bool) { + event.from = result.targets[0]; + player + .chooseTarget( + "请选择转入光芒的角色", + function (card, player, target) { + return !target.hasSkill("zioy_guangmang"); + }, + false + ) + .set("ai", function (target) { + return 1; + }); + } else event.finish(); + "step 2" + if (result.bool) { + event.to = result.targets[0]; + event.from.removeSkill("zioy_guangmang"); + event.to.addSkill("zioy_guangmang"); + } + }, + "_priority": 0 + }, + "zioy_guangmang": { + mark: true, + marktext: "光芒", + intro: { + markcount: "expansion" + }, + trigger: { + player: "damageEnd" + }, + direct: true, + filter: function (event, player) { + return event.num > 0; + }, + content: function () { + "step 0" + var targets = game.players; + var ts1 = []; + for (var i = 0; i < targets.length; ++i) { + if (targets[i].hasSkill(event.name) && targets[i] != player) { + ts1.push(targets[i]); + } + } + if (ts1.length > 0) event.target = ts1.randomGet(); + else event.finish(); + "step 1" + player.removeSkill(event.name); + "step 2" + target.damage(trigger.num); + }, + mod: { + globalTo: function (from, to, distance) { + if (!from.hasSkill("zioy_guangmang")) return Infinity; + }, + globalFrom: function (from, to, distance) { + //if(!to.hasSkill("zioy_guangmang")) return Infinity; + } + }, + "_priority": 0 + }, + "zioy_shihong": { + trigger: { + player: "phaseDrawBegin2" + }, + forced: true, + locked: true, + filter: function (event, player) { + return true || !event.numFixed; + }, + content: function () { + "step 0" + var num = game.players.length; + if (player.storage.shulin_juexing == true) { + game.changeGlobalStatus("shuguang", num, "phase"); + event.finish(); + } else { + num = Math.ceil(num / 2); + var choices = []; + for (var i = 0; i <= num; ++i) { + choices.push(i); + } + player + .chooseControl(choices) + .set("prompt", "请选择本回合额外摸牌数") + .set("ai", function () { + var num = game.players.length; + num = Math.ceil(num / 2); + var choices = 0; + for (var i = 0; i <= num; ++i) { + choices = i; + } + if (choices < 2) choices = 2; + return choices - 2; + }); + } + "step 1" + var num = game.players.length; + num = Math.ceil(num / 2); + trigger.num += result.control; + event.num = num - result.control; + if (event.num > 0) + player + .chooseTarget( + "弃置一名角色" + event.num + "张的牌", + function (card, player, target) { + return true; + }, + true + ) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + return -att; + }); + else { + event.finish(); + } + "step 2" + if (result.bool) { + var target = result.targets[0]; + player.discardPlayerCard(target, "hej", true, event.num); + } else { + event.finish(); + } + }, + ai: { + threaten: 1.3 + }, + "_priority": 0 + }, + "zioy_cuiyi": { + trigger: { + player: ["phaseBegin"] + }, + logTarget: "player", + filter: function () { + return true; + }, + forced: true, + locked: true, + init: function (player) { + // player.unmarkSkill('zioy_cuiyi'); + }, + mark: false, + intro: { + markcount: "expansion" + }, + content: function () { + "step 0" + var p = player; + var num = game.players.length; + if (!player.storage.shulin_juexing) player.storage.shulin_juexing = false; + if (player.storage.shulin_juexing == true) { + var p1 = p; + do { + if (p1.countMark("zioy_cuiyi") > 0) p1.lockEnhancement(num, "phase"); + p1 = p1.next; + } while (p1 != p); + } else { + player + .chooseTarget( + "请选择一名角色并将其“皠翊”拥有状态取反", + function (card, player, target) { + return true; + }, + false + ) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + if (target == player && !player.hasMark("zioy_cuiyi")) att = 100; + // if(!player.storage.shulin_countphase && att < 0){ + // att = -att/2; + // } + // num = 0 ; + // c = ["strike","attack", "defend", "miss", "hit"]; + // for(var i = 0;i < c.length;++i){ + // num += Math.abs(trigger.player.storage.enhancementArray[c[i]]); + // } + var index = 2; + if (target.hasMark("zioy_cuiyi")) index = -1; + return index * att; + }); + } + "step 1" + if (player.storage.shulin_juexing == false && result.bool) { + var target = result.targets[0]; + if (target.countMark("zioy_cuiyi") == 0) { + target.addMark("zioy_cuiyi"); + } else { + target.removeMark("zioy_cuiyi"); + } + } + "step 2" + var p = player; + if (player.storage.shulin_juexing == false) { + var p1 = p; + do { + if (p1.countMark("zioy_cuiyi") > 0) { + c = ["strike", "attack", "defend", "miss", "hit"]; + p1.changeEnhancement(c[(2 * game.roundNumber - 1) % 5], c[(2 * game.roundNumber) % 5], 1); + } + p1 = p1.next; + } while (p1 != p); + } + }, + "_priority": 0 + }, + "zioy_shulin": { + trigger: { + player: ["phaseUseBegin"] + }, + filter: function (event, player) { + return true; + }, + init: function (player) { + player.storage.shulin_juexing = false; + }, + check: function (event, player) { + return player.hp * 2 < player.maxHp; + }, + skillAnimation: true, + animationColor: "thunder", + content: function () { + if (player.storage.shulin_juexing == false) { + player.storage.shulin_juexing = true; + player.storage.shulin_countphase = 1; + player.storage.shulin_name = player.node.name.innerHTML; + player.node.name.innerHTML = "觉醒" + player.node.name.innerHTML; + player.recover(player.maxHp - player.hp); + } else { + n = player.storage.shulin_countphase - (player.maxHp - player.hp); + if (n < 0) player.recover(player.storage.shulin_countphase); + else { + player.recover(player.maxHp - player.hp); + player.draw(n); + } + player.storage.shulin_juexing = false; + player.node.name.innerHTML = player.storage.shulin_name; + player.awakenSkill("zioy_shulin"); + } + }, + group: ["zioy_shulin_count"], + subSkill: { + count: { + trigger: { + player: ["phaseBegin"] + }, + priority: 546546, + filter: function (event, player) { + return player.storage.shulin_juexing; + }, + direct: true, + content: function () { + player.storage.shulin_countphase++; + }, + sub: true, + "_priority": 54654600 + } + }, + "_priority": 0 + }, + "zioy_huangyi": { + trigger: { + source: "damageBegin1" + }, + priority: 0, + forced: true, + locked: true, + filter: function (card, player, target) { + return player.storage.huangyi_locked == false; + }, + init: function (player) { + player.storage.huangyi_locked = false; + }, + content: function () { + "step 0" + if (player.storage.shulin_juexing == false) { + player.recover(); + trigger.num -= 1; + event.finish(); + } else { + player.storage.huangyi_locked = true; + if (trigger.player.storage.enhancementArray["locked"] == true) { + trigger.player.unlockEnhancement(); + } + } + "step 1" + target = trigger.player; + num = 0; + c = ["strike", "attack", "defend", "miss", "hit"]; + for (var i = 0; i < c.length; ++i) { + if (Math.abs(trigger.player.storage.enhancementArray[c[i]]) != 0) num++; + trigger.player.changeEnhancement(c[i], -2 * trigger.player.storage.enhancementArray[c[i]]); + } + trigger.num += num; + // trigger.player.damage(trigger.num, trigger.nature); + "step 2" + player.storage.huangyi_locked = false; + // trigger.cancel(); + }, + "_priority": 0 + }, + "zioy_t": { + enable: "phaseUse", + frequent: false, + filter: function (event, player) { + return true; + }, + content: function () { + player.addDamageMitigationer(0.25, "zioy_t"); + if ([true, false].randomGet()) { + player.removeDamageMitigationer("zioy_t"); + } + // player.addMark("zioy_t",0.5) + // game.log(player.countMark('zioy_t')) + // game.changeGlobalStatus("test", 2, false) + // game.changeGlobalStatus(["xiyu", "rerang"].randomGet(), 5, 4, "phase"); + // if([false,true].randomGet()) + // player.addDamageLimiter(1,'test123456') + // else{ + // player.removeDamageLimiter('test123456') + // } + // for(var i in _status.event){ + // game.log(i," ==> ",_status.event[i]) + // } + // game.log(_status.event.name) + // game.changeGlobalStatusEnd(-1, -999); + // // game.changeGlobalStatus("mizhang", 2, 1, true) + // // game.clearGlobalStatus(false) + // // game.clearGlobalStatus(true) + // // game.changeGlobalStatus("mizhang", 2, 1) + // // player.addBuffImmune(["shuimian", "ranshao"]); + // player.addBuffImmune("all", true); + // if ([true, false].randomGet()) player.removeBuffImmune("all"); + // player.addBuff(["shuimian", "bingdong"].randomGet(), [null, player].randomGet(), [true, false].randomGet()); + // // player.removeBuff('all'); + // num = 6; + // if (player.storage.enhancementArray["miss"] != 0) num = -6; + // player.changeEnhancement("all", num); + // player.lockEnhancement(1, "round"); + // player.addSkill('jiang'); + // var p = player.next; + // while(p != player){ + // game.log(p,p.storage.enhancementArray['miss']); + // p = p.next; + // } + }, + init: function (player) {}, + subSkill: { + "t1": { + trigger: { + player: "damageBegin3" + }, + frequent: false, + filter: function (event, player) { + return false; + }, + content: function () { + // trigger.cancel(); + // player.say("test"); + // trigger.num /= 10 + }, + sub: true, + "_priority": 0 + } + }, + group: ["zioy_t_t1"], + "_priority": 0 + }, + "zioy_shuohui": { + trigger: { + player: ["dieBefore", "dying"] + }, + direct: true, + unique: true, + forceunique: true, + filter: function (event, player) { + return player.hp < player.maxHp; + }, + init: function (player) { + player.storage.shuohui_locked = false; + }, + logTarget: "player", + content: function () { + trigger.cancel(); + for (var i = 0; i < _status.dying.length; ++i) { + if (_status.dying[i] == player) { + _status.dying.splice(i, 1); + } + } + }, + group: ["zioy_shuohui_damageBegin", "zioy_shuohui_recoverBegin", "zioy_shuohui_phase", "zioy_shuohui_phaseJieshu"], + mod: { + maxHandcard: function (player, num) { + return player.maxHp - player.hp; + } + }, + subSkill: { + damageBegin: { + trigger: { + player: ["loseHpBegin", "damageBegin1"] + }, + priority: 43, + direct: true, + unique: true, + forceunique: true, + filter: function (event, player) { + return player.storage.shuohui_locked == false; + }, + logTarget: "player", + content: function () { + "step 0" + player.storage.shuohui_locked = true; + "step 1" + trigger.cancel(); + if (trigger.source != null) player.recover(trigger.num, trigger.source, trigger.cards, trigger.card); + "step 2" + player.storage.shuohui_locked = false; + "step 3" + event.forceDie = true; + if ((_status.dying.contains(player) && player.isAlive()) || player.hp < player.maxHp) { + event.finish(); + return; + } + _status.dying.unshift(player); + game.broadcast(function (list) { + _status.dying = list; + }, _status.dying); + event.trigger("dying"); + game.log(player, "濒死"); + "step 4" + delete event.filterStop; + if (player.hp < player.maxHp || event.nodying) { + _status.dying.remove(player); + game.broadcast(function (list) { + _status.dying = list; + }, _status.dying); + event.finish(); + } else if (!event.skipTao) { + var next = game.createEvent("_save"); + var start = false; + var starts = [_status.currentPhase, event.source, event.player, game.me, game.players[0]]; + for (var i = 0; i < starts.length; i++) { + if (get.itemtype(starts[i]) == "player") { + start = starts[i]; + break; + } + } + next.player = start; + next._trigger = event; + next.triggername = "_save"; + next.forceDie = true; + next.setContent(function () { + "step 0" + event.dying = trigger.player; + if (!event.acted) event.acted = []; + "step 1" + if (trigger.player.isDead()) { + event.finish(); + return; + } + event.acted.push(player); + if ( + lib.config.tao_enemy && + event.dying.side != player.side && + lib.config.mode != "identity" && + lib.config.mode != "guozhan" && + !event.dying.hasSkillTag("revertsave") + ) { + event._result = { + bool: false + }; + } else if (player.canSave(event.dying)) { + player.chooseToUse({ + filterCard: function (card, player, event) { + event = event || _status.event; + return lib.filter.cardSavable(card, player, event.dying); + }, + dyingPlayer: trigger.player, + filterTarget: function (card, player, target) { + if (target != _status.event.dying) return false; + if (!card) return false; + var info = get.info(card); + if (!info.singleCard || ui.selected.targets.length == 0) { + var mod = game.checkMod(card, player, target, "unchanged", "playerEnabled", player); + if (mod == false) return false; + var mod = game.checkMod(card, player, target, "unchanged", "targetEnabled", target); + if (mod != "unchanged") return mod; + } + return true; + }, + prompt: function (event) { + var handTip = event.handTip; + var player = event.player; + var target = event.dyingPlayer; + if (player != target) { + handTip.appendText(get.translation(target), "player"); + handTip.appendText("濒死,需要"); + handTip.appendText(1, "number"); + handTip.appendText("个桃,是否对其使用桃?"); + } else { + handTip.appendText("你当前体力值为"); + handTip.appendText(target.hp, "number"); + handTip.appendText(",需要"); + handTip.appendText(1, "number"); + handTip.appendText("个桃,是否出桃?"); + } + return ""; + }, + ai1: function (card) { + if (typeof card == "string") { + var info = get.info(card); + if (info.ai && info.ai.order) { + if (typeof info.ai.order == "number") { + return info.ai.order; + } else if (typeof info.ai.order == "function") { + return info.ai.order(); + } + } + } + return 1; + }, + ai2: get.effect_use, + type: "dying", + targetRequired: true, + dying: event.dying + }); + } else { + event._result = { + bool: false + }; + } + "step 2" + if (result.bool) { + var player = trigger.player; + player.hp--; + if (player.hp >= player.maxHp && !trigger.nodying && !player.nodying && player.isAlive() && !player.isOut() && !player.removed) + event.goto(0); + else trigger.untrigger(); + } else { + for (var i = 0; i < 20; i++) { + if (event.acted.contains(event.player.next)) { + break; + } else { + event.player = event.player.next; + if (!event.player.isOut()) { + event.goto(1); + break; + } + } + } + } + }); + } + "step 5" + _status.dying.remove(player); + game.broadcast(function (list) { + _status.dying = list; + }, _status.dying); + if (player.hp >= player.maxHp && !event.nodying && !player.nodying) player.die(event.reason); + }, + sub: true, + "_priority": 4300 + }, + recoverBegin: { + trigger: { + player: ["recoverBegin"] + }, + direct: true, + unique: true, + forceunique: true, + filter: function (event, player) { + return player.storage.shuohui_locked == false; + }, + logTarget: "player", + content: function () { + "step 0" + player.storage.shuohui_locked = true; + "step 1" + trigger.cancel(); + if (trigger.source != null) { + player.loseHp(trigger.num, trigger.source, trigger.cards, trigger.card); + } + // player.hp -=trigger.num; + "step 2" + player.storage.shuohui_locked = false; + game.log(player.hp); + }, + sub: true, + "_priority": 0 + }, + phase: { + trigger: { + player: "phaseBegin" + }, + direct: true, + content: function () { + var next = player.phaseDiscard(); + event.next.remove(next); + trigger.next.push(next); + var next = player.phaseUse(); + event.next.remove(next); + trigger.next.push(next); + var next = player.phaseDraw(); + event.next.remove(next); + trigger.next.push(next); + var next = player.phaseJudge(); + event.next.remove(next); + trigger.next.push(next); + var next = player.phaseJieshu(); + event.next.remove(next); + trigger.next.push(next); + }, + sub: true, + "_priority": 0 + }, + phaseJieshu: { + trigger: { + player: "phaseJieshu" + }, + direct: true, + content: function () { + var evt = _status.event.getParent("phase"); + if (evt) { + game.resetSkills(); + _status.event = evt; + _status.event.finish(); + _status.event.untrigger(true); + } + }, + sub: true, + "_priority": 0 + } + }, + "_priority": 0 + }, + "zioy_hexuchongxiang": { + trigger: { + player: ["loseHpBegin", "damageBegin3"] + }, + filter: function (event, player) { + return event.num > player.storage.hxcx_x; + }, + priority: 13, + forced: true, + charlotte: true, + unique: true, + init: function (player) { + var p = player; + p.storage.hxcx_x = 0; + p.storage.hxcx_count1 = 0; + p.storage.hxcx_count2 = 0; + p.storage.yzyw_count1 = 0; + p.gainShenqi = function (num) { + if (num > 999) num = 999; + var p = this; + var mark = "zioy_hexuchongxiang_mark"; + var mark_count = p.countMark(mark); + var num_gain = 0; + var num_hp = 0; + var num_hx = 0; + while (num != 0) { + num--; + if (mark_count + num_gain + 1 <= p.maxHp) { + num_gain++; + } else if (p.hp + num_hp + 1 <= p.maxHp) { + num_hp++; + } else { + num_hx++; + } + } + // game.log(num_gain,num_hp,num_hx); + if (num_gain > 0) p.addMark(mark, num_gain); + if (num_hp > 0) p.recover(num_hp); + // if(p.countMark(mark) > 0)p.markSkill(mark); + if (num_hx > 0) { + if (game.globalStatus.name != "shenlou") { + game.changeGlobalStatus("shenlou", num_hx, "phase"); + } else { + game.changeGlobalStatusEnd(num_hx); + } + } + _status.event.trigger("shenqi"); + }; + p.loseShenqi = function (num) { + if (num > 999) num = 999; + var p = this; + var mark = "zioy_hexuchongxiang_mark"; + var mark_count = p.countMark(mark); + var num_lose = num; + p.removeMark(mark, num_lose); + _status.event.trigger("shenqi"); + }; + }, + content: function () { + player.storage.hxcx_count1++; + var num1 = trigger.num - player.storage.hxcx_x; + player.gainShenqi(num1); + trigger.num = player.storage.hxcx_x; + if (player.storage.hxcx_count1 > player.storage.hxcx_x + 1) { + player.storage.hxcx_x *= 2; + if (player.storage.hxcx_x == 0) player.storage.hxcx_x++; + player.storage.hxcx_count1 = 0; + } + }, + group: ["zioy_hexuchongxiang_revive", "zioy_hexuchongxiang_damage", "zioy_hexuchongxiang_loseMaxHpEnd"], + subSkill: { + mark: { + mark: false, + marktext: "蜃气", + intro: { + name: "蜃气" + }, + sub: true, + "_priority": 0 + }, + revive: { + trigger: { + player: "dieBefore" + }, + forced: true, + unique: true, + forceunique: true, + skillAnimation: true, + animationColor: "thunder", + filter: function (event, player) { + var flag = false; + var p = player.next; + while (p != player) { + if (p.maxHp >= player.maxHp) { + flag = true; + break; + } + p = p.next; + } + return player.hp > 0 || flag; + }, + logTarget: "player", + content: function () { + "step 0" + if (player.hp > 0) { + trigger.cancel(); + for (var i = 0; i < _status.dying.length; ++i) { + if (_status.dying[i] == player) { + _status.dying.splice(i, 1); + } + } + player.loseHp(player.hp); + event.finish(); + } + "step 1" + trigger.cancel(); + player.storage.hxcx_count2++; + player.gainMaxHp(player.storage.hxcx_count2 + 1); + var num_mark = player.countMark("zioy_hexuchongxiang_mark"); + player.removeMark("zioy_hexuchongxiang_mark", num_mark); + player.changeHujia(num_mark); + player.draw(num_mark); + player.storage.hxcx_x = player.storage.hxcx_count2 - 1; + player.storage.hxcx_count1 = 0; + if (player.storage.yzyw_eq_flag) player.storage.yzyw_eq_flag = true; + "step 2" + player.recover(player.maxHp - player.hp); + }, + sub: true, + "_priority": 0 + }, + damage: { + trigger: { + player: ["loseHpBegin", "damageBegin2", "phaseDrawBegin2"], + source: ["damageBegin2"] + }, + filter: function (event, player) { + return player.storage.hxcx_count2 > 0; + }, + priority: -301727, + forced: true, + charlotte: true, + unique: true, + direct: true, + content: function () { + trigger.num = parseInt(trigger.num * (player.storage.hxcx_count2 * 0.80001 + 1 + player.storage.yzyw_count1 * 0.2001)); + }, + sub: true, + "_priority": -30172700 + }, + loseMaxHpEnd: { + trigger: { + player: ["loseMaxHpEnd"] + }, + filter: function (event, player) { + return player.countMark("zioy_hexuchongxiang_mark") > player.maxHp; + }, + priority: -301727, + forced: true, + charlotte: true, + unique: true, + direct: true, + content: function () { + player.loseShenqi(player.countMark("zioy_hexuchongxiang_mark") - player.maxHp); + }, + sub: true, + "_priority": -30172700 + } + }, + "_priority": 1300 + }, + "zioy_yuezhuiyunwei": { + enable: "phaseUse", + usable: 1, + filter: function (event, player) { + return player.countMark("zioy_hexuchongxiang_mark") > 0; + }, + init: function (player) { + player.addBuffImmune("shuimian", Infinity); + player.storage.shenlou_noLoseHp = true; + if (!player.storage.yzyw_count1) player.storage.yzyw_count1 = 0; + player.storage.yzyw_eq_flag = true; + }, + content: function () { + "step 0" + num = player.countMark("zioy_hexuchongxiang_mark"); + event.num = num; + player.loseShenqi(num); + if (game.globalStatus.name != "shenlou") { + game.changeGlobalStatus("shenlou", num, "phase"); + } else { + game.changeGlobalStatusEnd(num); + } + c = ["attack", "miss", "defend", "hit", "strike"]; + for (var i = 0; i < c.length; ++i) { + if (player.storage.enhancementArray[c[i]] > 0) continue; + player.changeEnhancement(c[i], -2 * player.storage.enhancementArray[c[i]]); + } + player.removeBuff("all"); + player + .chooseTarget( + "令一名角色获得" + event.num + "点护甲", + function (card, player, target) { + return true; + }, + true + ) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + return att; + }); + "step 1" + var target = result.targets[0]; + target.changeHujia(event.num); + player + .chooseTarget( + "令一名角色恢复" + event.num + "点体力", + function (card, player, target) { + return true; + }, + true + ) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + return att; + }); + "step 2" + var target = result.targets[0]; + target.recover(event.num); + }, + group: [ + "zioy_yuezhuiyunwei_0", + "zioy_yuezhuiyunwei_501", + "zioy_yuezhuiyunwei_502", + "zioy_yuezhuiyunwei_1", + "zioy_yuezhuiyunwei_6", + "zioy_yuezhuiyunwei_eq" + ], + subSkill: { + "0": { + trigger: { + global: ["phaseBegin"] + }, + filter: function (event, player) { + return player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp; + }, + direct: true, + priority: 4544684, + content: function () { + player.changeEnhancement("attack", "defend", -1); + }, + sub: true, + "_priority": 454468400 + }, + "1": { + trigger: { + target: "useCardToTargeted" + }, + filter: function (event, player) { + return player.countMark("zioy_hexuchongxiang_mark") > 0.25 * player.maxHp; + }, + direct: true, + priority: 45411284, + content: function () { + target = trigger.player; + c = target.getCards("hej"); + for (let i = 0; i < c.length; ++i) { + if (c[i].name == trigger.card.name) { + target.discard(c[i]); + break; + } + } + }, + sub: true, + "_priority": 4541128400 + }, + "6": { + trigger: { + source: "damageEnd" + }, + filter: function (event, player) { + return event.num > 1 && player.countMark("zioy_hexuchongxiang_mark") > 6; + }, + direct: true, + priority: 4584184, + content: function () { + player.loseMaxHp(1); + trigger.player.gainMaxHp(1); + player.storage.yzyw_count1++; + }, + sub: true, + "_priority": 458418400 + }, + "501": { + trigger: { + global: ["shenqi", "roundStart"] + }, + filter: function (event, player) { + return true; + }, + direct: true, + priority: 44684, + content: function () { + if (player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp) { + if (!player.storage._disableJudge) player.disableJudge(); + for (let i in lib.buffMiao) { + if (i != "shuimian") player.addBuffImmune(i, Infinity); + } + } else { + if (player.storage._disableJudge) player.enableJudge(); + for (let i in lib.buffMiao) { + if (i != "shuimian") player.removeBuffImmune(i, Infinity); + } + } + }, + sub: true, + "_priority": 4468400 + }, + "502": { + trigger: { + player: "turnOverBefore" + }, + priority: 21220, + direct: true, + filter: function (event, player) { + return !player.isTurnedOver() && player.countMark("zioy_hexuchongxiang_mark") <= 0.5 * player.maxHp; + }, + content: function () { + trigger.cancel(); + game.log(player, "取消了翻面"); + }, + sub: true, + "_priority": 2122000 + }, + eq: { + trigger: { + player: "useCardToTargeted" + }, + filter: function (event, player) { + return player.countMark("zioy_hexuchongxiang_mark") == player.maxHp && player.storage.yzyw_eq_flag == true; + }, + direct: true, + priority: 4521284, + content: function () { + target = trigger.target; + var num = Math.abs(player.maxHp - target.maxHp); + var limit = player.storage.hxcx_count2; + if (num > limit) num = limit; + if (num != 0) { + if (player.maxHp < target.maxHp) { + player.gainMaxHp(num); + target.loseMaxHp(num); + } else if (player.maxHp > target.maxHp) { + player.loseMaxHp(num); + target.gainMaxHp(num); + } + } + num = Math.abs(player.hp - target.hp); + if (num > limit) num = limit; + if (num != 0) { + if (player.hp < target.hp) { + player.recover(num); + target.loseHp(num); + } else if (player.hp > target.hp) { + player.loseHp(num); + target.recover(num); + } + } + player.storage.yzyw_eq_flag = false; + }, + sub: true, + "_priority": 452128400 + } + }, + "_priority": 0 + }, + "zioy_pianhongxiusao": { + "_priority": 0 + }, + "zioy_hanbosuliu": { + "_priority": 0 + }, + "zioy_zhumingxiangan": { + "_priority": 0 + }, + "zioy_yujin": { + mark: false, + marktext: "烬", + intro: { + name: "烬" + }, + init: function (player) { + player.addMark("zioy_yujin", 5); + player.addDamageLimiter(1, "zioy_yujin"); + player.storage.zioy_yujin_gainhujia = 0; + player.storage.zioy_yujin_hujia = player.hujia > 0; + }, + trigger: { + player: "damageLimit" + }, + forced: true, + filter: function (event, player) { + return player.countMark("zioy_yujin") > 0; + }, + content: function () { + player.removeMark("zioy_yujin", 2); + player.storage.zioy_yujin_gainhujia++; + if (player.countMark("zioy_yujin") <= 0) { + player.removeDamageLimiter("zioy_yujin"); + } + }, + group: ["zioy_yujin_gainHujia", "zioy_yujin_hujiaBroken", "zioy_yujin_damageEnd", "zioy_yujin_loseHp"], + subSkill: { + loseHp: { + trigger: { + player: "loseHpBegin" + }, + forced: true, + filter: function (event, player) { + return player.countMark("zioy_yujin") > 0; + }, + content: function () { + trigger.num = 0; + player.removeMark("zioy_yujin", 2); + player.storage.zioy_yujin_gainhujia++; + if (player.countMark("zioy_yujin") <= 0) { + player.removeDamageLimiter("zioy_yujin"); + } + }, + sub: true, + "_priority": 0 + }, + gainHujia: { + trigger: { + player: "changeHujiaEnd" + }, + filter: function (event, player) { + return player.hujia > 0; + }, + direct: true, + content: function () { + player.storage.zioy_yujin_hujia = true; + }, + sub: true, + "_priority": 0 + }, + hujiaBroken: { + trigger: { + player: "damageEnd" + }, + forced: true, + filter: function (event, player) { + return player.storage.zioy_yujin_hujia && player.hujia == 0; + }, + priority: 212241231350, + content: function () { + player.storage.zioy_yujin_hujia = false; + player.recover(); + if (trigger.source != null) { + player.discardPlayerCard(trigger.source, "hej", false, "visible", [1, 2]); + trigger.source.damage(1, "fire"); + } + }, + sub: true, + "_priority": 21224123135000 + }, + damageEnd: { + trigger: { + player: "damageEnd" + }, + forced: true, + priority: -212240, + filter: function (event, player) { + return player.storage.zioy_yujin_gainhujia && player.storage.zioy_yujin_gainhujia > 0; + }, + content: function () { + player.changeHujia(1); + player.storage.zioy_yujin_gainhujia--; + }, + sub: true, + "_priority": -21224000 + } + }, + "_priority": 0 + }, + "zioy_xumie": { + trigger: { + source: "damageEnd" + }, + forced: true, + filter: function (event, player) { + // return event.getParent(2).name!='zioy_xumie'; + return player.storage.zioy_xumie_flag; + }, + init: function (player) { + player.storage.zioy_xumie_flag = true; + }, + content: function () { + "step 0" + player.storage.zioy_xumie_flag = false; + "step 1" + if (!trigger.player.storage.zioy_xumie) { + trigger.player.storage.zioy_xumie = 0; + } + trigger.player.storage.zioy_xumie++; + if (trigger.player.storage.zioy_xumie > 1) { + player.discardPlayerCard(trigger.player, "hej", false, "visible", [1, 2]); + } + if (trigger.player.storage.zioy_xumie > 2) { + trigger.player.addSkill("zioy_xumie_1"); + } + if (trigger.player.storage.zioy_xumie > 3) { + trigger.player.damage(1); + } + if (trigger.player.storage.zioy_xumie > 4) { + player.addMark("zioy_yujin", 1); + player.addDamageLimiter(1, "zioy_yujin"); + } + "step 2" + player.storage.zioy_xumie_flag = true; + }, + mod: { + inRange: function (from, to) { + if (to.storage.zioy_xumie && to.storage.zioy_xumie > 0) return true; + } + }, + group: ["zioy_xumie_0"], + subSkill: { + "0": { + trigger: { + player: "useCard" + }, + direct: true, + filter: function (event, player) { + return ( + event.card.name == "sha" && + game.hasPlayer(current => { + return current != player && current.storage.zioy_xumie && current.storage.zioy_xumie > 0; + }) + ); + }, + content: function () { + trigger.directHit.addArray( + game.filterPlayer(current => { + return current != player && current.storage.zioy_xumie && current.storage.zioy_xumie > 0; + }) + ); + }, + sub: true, + "_priority": 0 + }, + "1": { + trigger: { + source: "damageBegin1" + }, + forced: true, + filter: function (event, player) { + return true; + }, + priority: 32.01, + content: function () { + trigger.num -= 1; + player.removeSkill("zioy_xumie_1"); + }, + sub: true, + "_priority": 3201 + } + }, + "_priority": 0 + }, + "zioy_v07yuxie": { + trigger: { + global: "phaseBefore", + player: "enterGame" + }, + forced: true, + filter: function (event, player) { + return event.name != "phase" || game.phaseNumber == 0; + }, + mark: true, + marktext: "驭械", + intro: { + name: "驭械", + mark: function (dialog, storage, player) { + if (player.countCards("h") < player.hp) return "当前处于冷却状态"; + return "当前处于暴走状态"; + } + }, + init: function (player) { + player.unmarkSkill("zioy_v07yuxie"); + }, + content: function () { + player.changeHujia(4); + player.addSkill("zioy_v07yuxie_yuxie"); + }, + group: ["zioy_v07yuxie_exitYuxie"], + subSkill: { + exitYuxie: { + trigger: { + player: ["damageEnd", "changeHujiaEnd"] + }, + direct: true, + filter: function (event, player) { + return player.hasSkill("zioy_v07yuxie_yuxie") && player.hujia == 0; + }, + priority: 22, + content: function () { + player.removeSkill("zioy_v07yuxie_yuxie"); + }, + sub: true, + "_priority": 2200 + }, + yuxie: { + init: function (player) { + player.markSkill("zioy_v07yuxie"); + player.removeDamageLimiter(1, "zioy_v07yuxie_yuxie"); + c = ["strike", "attack", "defend", "miss", "hit"]; + for (var i = 0; i < c.length; ++i) { + player.changeEnhancement(c[i], -1 * player.storage.enhancementArray[c[i]]); + } + player.removeBuff("all"); + var cards = player.getCards("j"); + if (cards.length) { + player.gain(cards); + } + game.log(player, "已进入驭械状态"); + }, + onremove: function (player) { + player.unmarkSkill("zioy_v07yuxie"); + player.addDamageLimiter(1, "zioy_v07yuxie_yuxie"); + c = ["strike", "attack", "defend", "miss", "hit"]; + for (var i = 0; i < c.length; ++i) { + player.changeEnhancement(c[i], -1 * player.storage.enhancementArray[c[i]]); + } + player.removeBuff("all"); + var cards = player.getCards("j"); + if (cards.length) { + player.gain(cards); + } + game.log(player, "已退出驭械状态"); + }, + mod: { + globalFrom: function (from, to, current) { + if (from.hp <= from.countCards("h")) return current - 2; + }, + cardUsable: function (card, player) { + if (player.hp <= player.countCards("h")) return true; + }, + maxHandcard: function (player, num) { + return num + player.hujia; + } + }, + group: [ + "zioy_v07yuxie_yuxie1", + "zioy_v07yuxie_yuxie2", + "zioy_v07yuxie_yuxie3", + "zioy_v07yuxie_yuxie4", + "zioy_v07yuxie_yuxie5", + "zioy_v07yuxie_yuxie6", + "zioy_v07yuxie_yuxie7" + ], + sub: true, + "_priority": 0 + }, + "yuxie1": { + trigger: { + player: "useCard" + }, + direct: true, + filter: function (event, player) { + if (player.countCards("h") < player.hp) return false; + return ( + event.card.name == "sha" && + game.hasPlayer(current => { + return current != player; + }) + ); + }, + content: function () { + trigger.directHit.addArray( + game.filterPlayer(current => { + return current != player; + }) + ); + }, + sub: true, + "_priority": 0 + }, + "yuxie2": { + trigger: { + player: "useCardToPlayer" + }, + forced: true, + filter: function (event, player) { + if (player.countCards("h") >= player.hp) return false; + if (get.type2(event.card) != "trick") return false; + return player != event.target; //event.targets.some(i=>i!=player); + }, + content: function () { + player.discardPlayerCard(trigger.target, "hej", false, [1, 2]); + }, + sub: true, + "_priority": 0 + }, + "yuxie3": { + trigger: { + player: "damageBegin1" + }, + direct: true, + filter: function (event, player) { + if (player.countCards("h") >= player.hp) return false; + return event.num > 1; + }, + priority: 0.4547, + content: function () { + trigger.num--; + player.recover(); + }, + sub: true, + "_priority": 45.47 + }, + "yuxie4": { + trigger: { + player: "useCard" + }, + forced: true, + priority: 0.4457, + filter: function (event, player) { + if (player.countCards("he") == 0) return false; + if (player.countCards("h") < player.hp) return false; + // if(event.card.name=='sha') return true; + return true; + }, + autodelay: true, + content: function () { + player.chooseToDiscard(true, "hej"); + }, + sub: true, + "_priority": 44.57 + }, + "yuxie5": { + trigger: { + player: "useCardEnd" + }, + forced: true, + filter: function (event, player) { + if (player.countCards("h") >= player.hp) return false; + for (var i = 0; i < player.storage.zioy_yuxie5_cards.length; i++) { + for (var c of event.cards) { + if (player.storage.zioy_yuxie5_cards[i] == c) { + return false; + } + } + } + return event.cards && player.storage.zioy_yuxie5_flag && get.type(event.card) != "equip"; + }, + init: function (player) { + player.storage.zioy_yuxie5_flag = true; + player.storage.zioy_yuxie5_cards = []; + }, + content: function () { + player.gain(trigger.cards); + for (var c of trigger.cards) { + player.storage.zioy_yuxie5_cards.push(c); + } + player.storage.zioy_yuxie5_flag = false; + }, + sub: true, + "_priority": 0 + }, + "yuxie6": { + trigger: { + global: "phaseEnd" + }, + direct: true, + filter: function (event, player) { + return true; + }, + priority: 0.6854, + autodelay: true, + content: function () { + player.storage.zioy_yuxie5_flag = true; + player.storage.zioy_yuxie5_cards = []; + }, + sub: true, + "_priority": 68.54 + }, + "yuxie7": { + trigger: { + player: "gainEnd" + }, + direct: true, + filter: function (event, player) { + return player.countCards("h") > player.hp; + }, + autodelay: true, + content: function () { + player.storage.zioy_yuxie5_flag = true; + }, + sub: true, + "_priority": 0 + } + }, + "_priority": 0 + }, + "zioy_f42chongzai": { + enable: "phaseUse", + usable: 1, + filter: function (event, player) { + return player.hasSkill("zioy_v07yuxie_yuxie"); + }, + check: function (event, player) { + return player.countCards("h") < player.hp; + }, + init: function (player) { + player.storage.zioy_f42chongzai_hp = 0; + player.storage.zioy_f42chongzai_hujia = 0; + }, + content: function () { + "step 0" + event.i = 0; + "step 1" + game.players[event.i].damage(1, "nosource", "nocard"); + player.line(game.players[event.i]); + event.i++; + "step 2" + if (event.i < game.players.length) { + event.goto(1); + } else { + player.draw(3); + if (player.hp == player.maxHp) { + player.hp -= 1; + player.storage.zioy_f42chongzai_hp += 1; + } + if (player.hujia && player.hujia > 0) { + player.changeHujia(-1); + player.storage.zioy_f42chongzai_hujia += 1; + } + } + }, + ai: { + order: 1, + result: { + player: 2.5 + } + }, + group: ["zioy_f42chongzai_1"], + subSkill: { + "1": { + enable: "phaseUse", + usable: 1, + filter: function (event, player) { + // return true; + return !player.hasSkill("zioy_v07yuxie_yuxie"); + }, + filterCard: function (card) { + var suit = get.suit(card); + for (var i = 0; i < ui.selected.cards.length; i++) { + if (get.suit(ui.selected.cards[i]) == suit) return false; + } + return true; + }, + complexCard: true, + selectCard: [2, 4], + check: function (card, player) { + return true; + }, + mark: false, + marktext: "能量", + intro: { + name: "能量" + }, + content: function () { + "step 0" + var num = cards.length; + if (num < 4) { + player.addMark("zioy_f42chongzai_1", num - 1); + } else { + player.addMark("zioy_f42chongzai_1", num); + } + if (player.hp > 1) { + player.addMark("zioy_f42chongzai_1", player.hp - 1); + player.hp = 1; + } + player.addSkill("zioy_f42chongzai_2"); + "step 1" + if (player.storage.zioy_f42chongzai_hp > 0) { + player.recover(player.storage.zioy_f42chongzai_hp); + player.storage.zioy_f42chongzai_hp = 0; + } + }, + ai: { + order: 1, + result: { + player: 1 + } + }, + sub: true, + "_priority": 0 + }, + "2": { + trigger: { + global: "phaseEnd" + }, + direct: true, + priority: 3254, + filter: function (event, player) { + return player.countMark("zioy_f42chongzai_1") < player.maxHp; + }, + content: function () { + player.addMark("zioy_f42chongzai_1", 1); + }, + group: ["zioy_f42chongzai_3"], + sub: true, + "_priority": 325400 + }, + "3": { + trigger: { + global: "phaseEnd" + }, + forced: true, + skillAnimation: true, + animationColor: "thunder", + unique: true, + priority: 3278, + filter: function (event, player) { + return player.countMark("zioy_f42chongzai_1") >= player.maxHp; + }, + autodelay: true, + content: function () { + num = player.countMark("zioy_f42chongzai_1"); + player.removeMark("zioy_f42chongzai_1", num); + num += player.storage.zioy_f42chongzai_hujia; + player.changeHujia(num); + player.storage.zioy_f42chongzai_hujia = 0; + if (num > player.maxHp) { + player.gainMaxHp(1); + } + player.removeSkill("zioy_f42chongzai_2"); + player.addSkill("zioy_v07yuxie_yuxie"); + }, + sub: true, + "_priority": 327800 + } + }, + "_priority": 0 + }, + "zioy_yuemai": { + trigger: { + source: "damageEnd" + }, + locked: true, + forced: true, + filter: function (event, player) { + return get.status(game.globalStatus.name).type != "environment"; + }, + content: function () { + "step 0" + game.changeGlobalStatus("mizhang", 8); + "step 1" + if (game.globalStatus.name == "mizhang") { + player.changeHujia(2); + } + }, + mod: { + globalFrom: function (from, to, distance) { + if (game.globalStatus.name == "mizhang") return distance - 1; + } + }, + group: ["zioy_yuemai_jianshang"], + subSkill: { + jianshang: { + trigger: { + global: "changeGlobalStatus_End" + }, + direct: true, + filter: function () { + return true; + }, + content: function () { + if (game.globalStatus.name == "mizhang") { + player.addDamageMitigationer(0.5, "zioy_yuemai_jianshang"); + } else { + player.removeDamageMitigationer("zioy_yuemai_jianshang"); + } + }, + sub: true, + "_priority": 0 + } + }, + "_priority": 0 + }, + "zioy_liechenyuyou_water": { + init: function (player) { + player.storage.kami_protect = "water"; + }, + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + player: "phaseDrawBegin" + }, + content: function () { + trigger.num += 2; + }, + group: ["zioy_liechenyuyou_water_draw1", "zioy_liechenyuyou_water_damage"], + subSkill: { + "draw1": { + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + player: ["phaseEnd", "roundStart"] + }, + content: function () { + player.draw(1); + }, + sub: true, + "_priority": 5234500 + }, + damage: { + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + source: "damageBegin1" + }, + filter: function (event, player) { + if (event.player.group == "shen") return false; + return !event.player.storage.kami_protect || event.player.storage.kami_protect == "fire"; + }, + content: function () { + trigger.num += 1; + }, + sub: true, + "_priority": 5234500 + } + }, + "_priority": 5234500 + }, + "zioy_pinghuqiuyue": { + init: function (player) { + player.addDamageLimiter(2, "zioy_pinghuqiuyue"); + player.storage.pinghuqiuyue_targetHasHujia = false; + }, + onremove: function (player) { + player.removeDamageLimiter("zioy_pinghuqiuyue"); + }, + trigger: { + player: "loseHpEnd" + }, + mod: { + maxHandcardBase: function (player, num) { + num -= 4; + if (num < 3) num = 3; + return num; + } + }, + forced: true, + direct: true, + priority: 52345, + mark: true, + marktext: "怒气", + intro: { + name: "怒气" + }, + content: function () { + player.addTempSkill("zioy_pinghuqiuyue_noLoseHp", "roundStart"); + player.zioy_get_nuqi = function () { + return this.countMark("zioy_pinghuqiuyue"); + }; + }, + group: [ + "zioy_pinghuqiuyue_damage2hujia", + "zioy_pinghuqiuyue_damageEndS", + "zioy_pinghuqiuyue_damageEndP", + "zioy_pinghuqiuyue_damageLimit", + "zioy_pinghuqiuyue_phaseEnd", + "zioy_pinghuqiuyue_dyingBegin" + ], + subSkill: { + noLoseHp: { + trigger: { + player: "loseHpBegin" + }, + forced: true, + direct: true, + priority: 52345, + content: function () { + trigger.cancel(); + }, + sub: true, + "_priority": 5234500 + }, + "damage2hujia": { + trigger: { + source: "damageBegin1" + }, + forced: true, + priority: 523245, + filter: function (event, player) { + return event.player && event.player.hujia > 0; + }, + content: function () { + trigger.num += 1; + player.storage.pinghuqiuyue_targetHasHujia = true; + }, + sub: true, + "_priority": 52324500 + }, + damageEndS: { + trigger: { + source: "damageEnd" + }, + forced: true, + priority: 52345, + filter: function (event, player) { + return true; + }, + content: function () { + if (player.storage.pinghuqiuyue_targetHasHujia) { + player.storage.pinghuqiuyue_targetHasHujia = false; + if (trigger.player.hujia == 0) { + player.addMark("zioy_pinghuqiuyue", 7); + } + } + player.addMark("zioy_pinghuqiuyue", trigger.num); + }, + sub: true, + "_priority": 5234500 + }, + damageEndP: { + trigger: { + player: "damageEnd" + }, + forced: true, + priority: 524345, + filter: function (event, player) { + return true; + }, + content: function () { + player.addMark("zioy_pinghuqiuyue", trigger.num); + }, + sub: true, + "_priority": 52434500 + }, + dyingBegin: { + trigger: { + source: "dyingBegin" + }, + forced: true, + priority: 524545, + filter: function (event, player) { + return true; + }, + content: function () { + player.addMark("zioy_pinghuqiuyue", 7); + }, + sub: true, + "_priority": 52454500 + }, + phaseEnd: { + trigger: { + player: "phaseEnd" + }, + forced: true, + priority: 523415, + filter: function (event, player) { + return player.countMark("zioy_pinghuqiuyue") > 0; + }, + content: function () { + player.removeMark("zioy_pinghuqiuyue", 1); + }, + sub: true, + "_priority": 52341500 + }, + damageLimit: { + trigger: { + player: "damageLimit" + }, + forced: true, + priority: 5415, + content: function () { + player.addMark("zioy_pinghuqiuyue", 7); + }, + sub: true, + "_priority": 541500 + } + }, + "_priority": 5234500 + }, + "zioy_yurangzhijian": { + enable: "phaseUse", + usable: 1, + unique: true, + init: function (player) { + player.storage.yurangzhijian_nuqi = 0.0; + player.storage.yurangzhijian_count = 0; + }, + content: function () { + nuqi = player.countMark("zioy_pinghuqiuyue"); + player.removeMark("zioy_pinghuqiuyue", nuqi); + m = 0; + if (player.hasSkill("zioy_yurangzhijian_chengsheng")) { + m = player.countMark("zioy_yurangzhijian_chengsheng"); + if (m < 4) { + m = m - 1; + } else { + m = 3; + } + player.removeMark("zioy_yurangzhijian_chengsheng", m); + } + game.changeGlobalStatus("xiyu", 5, "round"); + player.addBuffImmune("all", 5, "round"); + x = player.storage.yurangzhijian_count; + y = parseInt(0 - x + parseInt(nuqi / 3) + m); + if (y > 0) { + player.recover(y); + } else if (y < 0) { + if (player.hasSkill("zioy_yurangzhijian_chengsheng")) { + player.chooseToDiscard("h", Math.min(player.countCards("h"), -y), true); + } else { + player.chooseToDiscard("he", Math.min(player.countCards("he"), -y), true); + } + } + if (player.hasSkill("zioy_yurangzhijian_chengsheng")) { + player.addSkill("zioy_yurangzhijian_damage"); + } + if (player.storage.yurangzhijian_nuqi + nuqi >= 10 && !player.hasSkill("zioy_yurangzhijian_chengsheng")) { + player.addSkill("zioy_yurangzhijian_chengsheng"); + player.addMark("zioy_yurangzhijian_chengsheng", 1); + } + player.storage.yurangzhijian_nuqi += nuqi / 3; + player.storage.yurangzhijian_count += 1.5; + }, + ai: { + order: 1, + result: { + player: function (player) { + x = player.storage.yurangzhijian_count; + n = player.countMark("zioy_pinghuqiuyue"); + m = player.countMark("zioy_yurangzhijian_chengsheng"); + y = parseInt(0 - x + n / 3 + m); + if (player.storage.yurangzhijian_nuqi + n >= 10 && !player.hasSkill("zioy_yurangzhijian_chengsheng")) { + return 100; + } + if (player.hp < 3 && y > 0) { + return 100; + } + return Math.min(y, player.maxHp - player.hp) - 1; + } + } + }, + subSkill: { + damage: { + trigger: { + player: "damageBegin" + }, + forced: true, + priority: 54145, + content: function () { + trigger.num = 0; + player.removeSkill("zioy_yurangzhijian_damage"); + }, + sub: true, + "_priority": 5414500 + }, + chengsheng: { + mark: true, + marktext: "盛怒", + charlotte: true, + unique: true, + direct: true, + intro: { + name: "盛怒" + }, + init: function (player) { + game.log(player, "已进入盛怒"); + }, + trigger: { + player: "useCard" + }, + filter: function (event, player) { + return event.card && get.tag(event.card, "damage"); + }, + content: function () { + if (player.countMark("zioy_yurangzhijian_chengsheng") < 7) { + player.addMark("zioy_yurangzhijian_chengsheng", 1); + } + }, + mod: { + cardUsable: function (card, player, num) { + if (card.name == "sha") return num + parseInt(player.countMark("zioy_yurangzhijian_chengsheng") * 0.43); + }, + canBeDiscarded: function (card) { + if (get.position(card) == "e") return false; + } + }, + group: ["zioy_yurangzhijian_wushuang", "zioy_yurangzhijian_damageEnd", "zioy_yurangzhijian_damageBegin"], + sub: true, + "_priority": 0 + }, + wushuang: { + trigger: { + player: "useCardToPlayered" + }, + forced: true, + filter: function (event, player) { + return event.card.name == "sha" && !event.getParent().directHit.contains(event.target); + }, + logTarget: "target", + content: function () { + var id = trigger.target.playerid; + var map = trigger.getParent().customArgs; + if (!map[id]) map[id] = {}; + if (typeof map[id].shanRequired == "number") { + n = parseInt(player.countMark("zioy_yurangzhijian_chengsheng") / 2.3); + if (n == 0) { + n = 1; + } + map[id].shanRequired += n; + } else { + map[id].shanRequired = 2; + } + }, + ai: { + "directHit_ai": true, + skillTagFilter: function (player, tag, arg) { + if (arg.card.name != "sha" || arg.target.countCards("h", "shan") > parseInt(player.countMark("zioy_yurangzhijian_chengsheng") / 2.3)) + return false; + } + }, + sub: true, + "_priority": 0 + }, + damageEnd: { + trigger: { + source: "damageEnd" + }, + forced: true, + priority: 5243145, + filter: function (event, player) { + return true; + }, + content: function () { + player.recover(parseInt(trigger.num * 0.05 * player.countMark("zioy_yurangzhijian_chengsheng"))); + if (parseInt(trigger.num * 0.15 * player.countMark("zioy_yurangzhijian_chengsheng")) > 0) + player.discardPlayerCard( + trigger.player, + "hej", + true, + Math.min(trigger.player.countCards("hej"), parseInt(trigger.num * 0.15 * player.countMark("zioy_yurangzhijian_chengsheng"))) + ); + }, + sub: true, + "_priority": 524314500 + }, + damageBegin: { + trigger: { + source: "damageBegin1" + }, + direct: true, + priority: 5045, + filter: function (event, player) { + return true; + }, + content: function () { + trigger.num += parseInt(0.58 * player.countMark("zioy_yurangzhijian_chengsheng")); + }, + sub: true, + "_priority": 504500 + } + }, + "_priority": 0 + }, + "zioy_liechenyuyou_fire": { + init: function (player) { + player.storage.kami_protect = "fire"; + }, + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + player: "phaseDrawBegin" + }, + content: function () { + trigger.num += 2; + }, + group: ["zioy_liechenyuyou_fire_draw1", "zioy_liechenyuyou_fire_damage"], + subSkill: { + "draw1": { + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + player: ["phaseEnd", "roundStart"] + }, + content: function () { + player.draw(1); + }, + sub: true, + "_priority": 5234500 + }, + damage: { + forced: true, + unique: true, + charlotte: true, + locked: true, + priority: 52345, + trigger: { + source: "damageBegin1" + }, + filter: function (event, player) { + if (event.player.group == "shen") return false; + return !event.player.storage.kami_protect || event.player.storage.kami_protect == "wood"; + }, + content: function () { + trigger.num += 1; + }, + sub: true, + "_priority": 5234500 + } + }, + "_priority": 5234500 + }, + "zioy_zhuxingwuchang": { + filter: function (event, player) { + return player.countMark("zioy_yongyeqingxiao") == 0; + }, + direct: true, + locked: true, + trigger: { + source: "damageEnd" + }, + content: function () { + "step 0" + player.loseHp(1); + "step 1" + if (game.globalStatus.name != "huoshan") { + player.recover(2); + } else { + player.recover(4); + } + "step 2" + if (game.roundNumber % 2 == 1) { + game.changeGlobalStatus("rerang", 2); + } else { + game.changeGlobalStatus("huoshan", 2); + } + }, + group: ["zioy_zhuxingwuchang_damageBegin", "zioy_zhuxingwuchang_damageEnd", "zioy_zhuxingwuchang_useCard"], + subSkill: { + damageBegin: { + filter: function (event, player) { + return get.status(game.globalStatus.name).type == "weather"; + }, + direct: true, + locked: true, + trigger: { + player: ["useCardToBefore"] + }, + content: function () { + trigger.card.nature = "fire"; + }, + "_priority": 165463463456, + sub: true + }, + useCard: { + trigger: { + player: "useCard" + }, + direct: true, + locked: true, + filter: function (event, player) { + return get.status(game.globalStatus.name).type == "environment"; + }, + content: function () { + trigger.directHit.addArray(game.filterPlayer()); + }, + sub: true, + "_priority": 0 + }, + damageEnd: { + filter: function (event, player) { + return get.status(game.globalStatus.name).type == "weather"; + }, + direct: true, + locked: true, + trigger: { + source: "damageEnd" + }, + content: function () { + "step 0" + if (trigger.player.countCards("hej") > 0) player.discardPlayerCard(trigger.player, "hej", true, 1); + }, + sub: true, + "_priority": 0 + } + }, + "_priority": 16 + }, + "zioy_zhufashengmie": { + trigger: { + player: "dieBefore" + }, + forced: true, + unique: true, + forceunique: true, + skillAnimation: true, + animationColor: "thunder", + filter: function (event, player) { + return true; + }, + content: function () { + "step 0" + player.awakenSkill("zioy_zhufashengmie"); + trigger.cancel(); + "step 1" + player.hp = player.maxHp; + "step 2" + player.addTempSkill("zioy_lockHp", { player: "phaseUseEnd" }); + "step 3" + player.update(); + }, + "_priority": 0 + }, + "zioy_yongyeqingxiao": { + init: function (player) { + player.addMark("zioy_yongyeqingxiao", 5); + // player.storage.huoshan_no = true; + }, + usable: null, + mark: false, + marktext: "无瞋", + intro: { + name: "无瞋", + mark: function () { + return "复有三法,谓三善根:一者不贪,二者不恚,三者不痴。"; + } + }, + enable: "phaseUse", + filter: function (event, player) { + return player.countMark("zioy_yongyeqingxiao") > 0 && player.countMark("zioy_yongyeqingxiao") != 5; + }, + content: function () { + var n = player.countMark("zioy_yongyeqingxiao"); + n = 5 - n; + player.addMark("zioy_yongyeqingxiao", n); + player.draw(parseInt(n * 1.25 + 0.01)); + if (parseInt(n / 1.5 + 0.01) > 0 && !player.hasSkill("zioy_yongyeqingxiao_recoverMark")) { + player.recover(parseInt(n / 2 + 0.01)); + player.addTempSkill("zioy_yongyeqingxiao_recoverMark"); + } + player.addBuffImmune("all", n); + if (game.roundNumber % 2 == 1) { + game.changeGlobalStatus("rerang", n); + } else { + game.changeGlobalStatus("huoshan", n); + } + }, + mod: { + globalFrom: function (from, to, distance) { + if (from.countMark("zioy_yongyeqingxiao") == 0) return distance - 1; + }, + cardUsable: function (card, player, num) { + // if(player.countMark("zioy_yongyeqingxiao") == 0) + // if(card.name=='sha') return num+1; + } + }, + ai: { + order: 1, + result: { + player: function (player) { + var n = player.countMark("zioy_yongyeqingxiao"); + n = 5 - n; + return 5 * (n - 2); + } + } + }, + group: ["zioy_yongyeqingxiao_useCard"], + subSkill: { + useCard: { + trigger: { + player: "useCardEnd" + }, + filter: function (event, player) { + return player.countMark("zioy_yongyeqingxiao") > 0; + }, + direct: true, + content: function () { + "step 0" + player.removeMark("zioy_yongyeqingxiao"); + if (player.countCards("he") > 0) { + player.chooseToDiscard("he", 1, true); + } + "step 1" + if (player.countMark("zioy_yongyeqingxiao") == 0) { + player.disableJudge(); + player.addBuffImmune("all", Infinity); + } + }, + sub: true, + "_priority": 0 + }, + recoverMark: { + sub: true, + "_priority": 0 + } + }, + "_priority": 0 + }, + "zioy_nongying": { + trigger: { + player: ["chooseToRespondBegin", "chooseToUseBegin"] + }, + filter: function (event, player) { + if (event.responded) return false; + if (!event.filterCard({ name: "shan" }, player, event)) return false; + return true; + }, + content: function () { + trigger.untrigger(); + // game.log(trigger) + trigger.responded = true; + trigger.result = { bool: true, card: { name: "shan" } }; + if (player.hp < player.maxHp) { + player.recover(); + player.loseMaxHp(); + } else { + player.loseHp(); + player.gainMaxHp(); + } + }, + mod: { + cardname: function (card) { + if (card.name == "shan") return "sha"; + } + }, + group: ["zioy_nongying_2"], + subSkill: { + "2": { + trigger: { + player: ["useCard", "respond"] + }, + filter: function (event, player) { + if (event.card.name != "sha") return false; + for (var c of event.cards) { + if (c.name == "shan") return true; + } + return false; + }, + forced: true, + content: function () { + if (player.hp < player.maxHp) { + player.recover(); + player.loseMaxHp(); + } else { + player.loseHp(); + player.gainMaxHp(); + } + }, + sub: true, + "_priority": 0 + } + }, + "_priority": 0 + }, + "zioy_chanjuan": { + trigger: { + player: "recoverEnd" + }, + filter: function (event, player) { + return event && event.num > 0; + }, + direct: true, + content: function () { + "step 0" + player + .chooseTarget( + "令任意名其他角色恢复" + trigger.num + "点体力", + function (card, player, target) { + return target.hp < target.maxHp && target != player; + }, + [ + 1, + game.countPlayer(function (target) { + return target.hp < target.maxHp; + }) + ], + false + ) + .set("ai", function (target) { + var att = get.attitude(_status.event.player, target); + return att; + }); + "step 1" + if (result.bool) { + for (var p of result.targets) { + p.recover(trigger.num); + } + } + }, + "_priority": 0 + }, + "zioy_lanzhiyuane": { + "_priority": 0 + }, + "zioy_liuzhenxiongxiang": { + "_priority": 0 + }, + "zioy_yinhuxiaowu": { + "_priority": 0 + }, + "zioy_noname1": { + "_priority": 0 + } + }, + translate: { + "zioy_xixue": "汲血", + "zioy_xixue_info": "出牌阶段,你可以弃置一张牌并选择一名非上一回合以此法选择角色,你偷取其一点体力值。", + "zioy_shiyi": "石翼", + "zioy_shiyi_info": "锁定技
①:当你造成伤害时,你获得一点护甲。
②:你的与其他角色的距离-X,其他角色与你的距离+X,你的手牌上限+X(X为你的护甲值)", + "zioy_jinjia": "晶甲", + "zioy_jinjia_info": "锁定技,一轮游戏开始时,若你没有护甲,你获得两点护甲。", + "zioy_jinsui": "晶髓", + "zioy_jinsui_info": "出牌阶段,你可以消耗你所有的护甲并选择一名角色,直到你的回合结束,若该角色受到伤害,该角色翻面。", + "zioy_jinsui2": "晶髓", + "zioy_jinsui2_info": "若你受到伤害,你翻面。", + "zioy_chenmeng": "尘梦", + "zioy_chenmeng_info": + "锁定技,其他角色造成伤害时,你令其失去一点体力上限并获得〖尘〗标记,然后你获得一点体力上限。你对拥有〖尘〗标记的角色造成伤害时,你移除其〖尘〗标记,恢复其以此法失去的体力上限,然后其失去一点体力,你获得其一张手牌,回复1点体力并失去以此法获得的体力上限。", + "zioy_chenmeng1": "尘梦", + "zioy_chenmeng1_info": "当你受到由〖长野原神乐〗造成的伤害时,你回复一点体力上限并失去一点体力,其失去一点体力上限,回复一点体力并获得你一张牌。", + "zioy_eye": "厄夜", + "zioy_eye_info": "锁定技,你即将对其他角色造成的伤害改为抹除体力。", + "zioy_damie": "大灭", + "zioy_damie_info": "一轮游戏开始时,若场上已有角色死亡,则你可以抹除一名角色的所有体力,你以此法无法使该角色死亡。", + "zioy_heiyi": "黑疫", + "zioy_heiyi_info": "锁定技,当你成为【杀】的目标时,此【杀】的来源获得技能〖黑死〗。", + "zioy_duyi": "黑死", + "zioy_duyi_info": "锁定技,回合开始时,你失去一点体力,若你体力值为1,则改为失去一点体力上限。", + "zioy_eji": "恶剂", + "zioy_eji_info": "限定技,出牌阶段,你可以获得3点体力与体力上限,摸3张牌,接下来的每个回合开始阶段,你失去一点体力上限直到你的体力上限等于1。", + "zioy_huashou": "花狩", + "zioy_huashou_info": + "锁定技,你的回合开始阶段,你随机标记一名敌人并将其区域内随机2/3数量的牌(向上取整)置于其武将牌上。若你回合内对被标记者造成伤害,你移除其标记,对其造成X点伤害,回复X/2(向下取整)点体力,若X/2大于你已损失体力则将你的护甲置为1,然后获得其以此法置于武将牌上的所有牌。若回合结束时其未受到伤害,其获得其武将牌上的所有牌。(X为受伤角色已损失体力)", + "zioy_huashou2": "花狩", + "zioy_huashou2_info": "若你本回合未受到伤害,回合结束时获得被〖花狩〗置于武将牌上的牌。", + "zioy_huashou3": "花狩", + "zioy_huashou3_info": "", + "zioy_longyue": "胧月", + "zioy_longyue_info": + "游戏开始时,你摸一张牌并创建一张【月光】,你的出牌阶段开始时,你装备你游戏开始时创建的【月光】。你对被〖花狩〗标记的角色造成伤害会提升你的基础属性: 第一次造成伤害时:你装备的【月光】提供的攻击范围+1,每2次造成伤害:你的手牌上限+1,每3次造成伤害:你的摸牌阶段摸牌数+1,每4次造成伤害:你的体力上限+1。", + "zioy_longyue2": "胧月", + "zioy_longyue2_info": "", + "zioy_jike": "棘壳", + "zioy_jike_info": "锁定技,当你受到伤害时,若伤害来源不为你,你对其造成等额的伤害。", + "zioy_longyue3": "胧月", + "zioy_longyue3_info": "摸牌", + "zioy_happyNewYear": "逡游", + "zioy_happyNewYear_info": + '锁定技,当你失去牌时,你获得一个"春"标记。当你的"春"标记数量发生变化时,若标记数量为偶数,你摸一张牌。当你于你的回合内使用【杀】指定目标时,若你的"春"标记数量大于等于X,你需弃置X个"春"标记,并使你此次使用的【杀】不计入出牌阶段使用次数(X在你的出牌阶段第一次使用牌时被赋值为4,且每次使用此技能令【杀】不计入次数时+2)。', + "zioy_qunyou2": "逡游", + "zioy_qunyou2_info": "春节快乐,于2023.1.21,8:37。", + "zioy_qianlong": "潜龙", + "zioy_qianlong_info": "当你使用或打出一张【杀】或【闪】时,若你区域内有牌,你可以弃置一张牌,然后你摸一张牌并获得一点护甲", + "zioy_jianlong": "见龙", + "zioy_jianlong_info": + "出牌阶段,若你护甲值大于0,你可以摸一张牌并移去一点护甲。若此做,你的下一张【杀】无视距离且若此【杀】造成伤害,你将此技能替换为〖飞龙〗。", + "zioy_feilong": "飞龙", + "zioy_feilong_info": + "锁定技,除非该角色死亡,你的【杀】只能对你上一次使用【杀】造成伤害的角色使用。你的下一张【杀】无距离限制且无法被响应。若你使用【杀】对一名角色造成伤害,你失去【飞龙】并获得【亢龙】,【见龙】,然后你摸一张牌。", + "zioy_kanglong": "亢龙", + "zioy_kanglong_info": + "限定技,出牌阶段,你可以选择一名角色,你摸一张牌,并对该角色造成X点伤害,若该角色因〖亢龙〗死亡,则你的〖亢龙〗视为未使用(X为你当前体力值与该角色当前体力值的差值且至少为1)", + "zioy_jianlong2": "见龙", + "zioy_jianlong2_info": "你的杀无视距离", + "zioy_jianlong4": "见龙", + "zioy_jianlong4_info": "你的下一张【杀】无视距离。", + "zioy_kanglong2": "亢龙", + "zioy_kanglong2_info": "", + "zioy_yixiang": "燚祥", + "zioy_yixiang_info": "你造成的伤害均视为火属性,你受到的火属性伤害-1。", + "zioy_yixiang2": "燚祥", + "zioy_yixiang2_info": "", + "zioy_yuyan": "驭煙", + "zioy_yuyan_info": "锁定技,你废除你的坐骑栏,你与其他角色的距离-1,其他角色与你的距离+1。", + "zioy_chuixing": "吹星", + "zioy_chuixing_info": "你每使用两张【杀】,就可以视为使用一张无实体牌且无视距离的【火杀】,你初始视为使用过一张【杀】。", + "zioy_zhijin": "掷金", + "zioy_zhijin_info": "当你不因〖掷金〗而获得牌时,你随机摸一定数量的牌,该数量与你本次摸牌数成正相关且可能等于零。", + "zioy_xuanzhuan": "璇转", + "zioy_xuanzhuan_info": + "出牌阶段限一次,你可以令场上所有有手牌的角色将一张手牌置于你的武将牌上,然后对于你武将牌上的每张牌,你令随机一名刚才有将牌置入你的武将牌上的角色获得之,你有更大的概率获得。", + "zioy_leiye1": "累业", + "zioy_leiye1_info": '当你造成伤害时,你获得一个"墨"标记,当你受到伤害或回复体力时,你获得一个"霜"标记。', + "zioy_leiye2": "累业", + "zioy_leiye2_info": "霜", + "zioy_mosha": "霜杀墨染雪", + "zioy_mosha_info": '觉醒技,与〖墨残霜伴樱〗共用次数。出牌阶段,若你的"墨"标记达到3,你可以选择一名角色,然后你失去一点体力上限并对其造成3点伤害。', + "zioy_shuangsha": "墨残霜伴樱", + "zioy_shuangsha_info": + '觉醒技,与〖霜杀墨染雪〗共用次数。出牌阶段,若你的"霜"标记达到3,你可以获得一点体力上限,回复2点体力并选择一名角色,你对其造成一点伤害。', + "zioy_lieying": "裂影", + "zioy_lieying_info": + "当你造成伤害时,你可以摸一张牌。若你使用过〖霜杀墨染雪〗,你的【杀】不可被响应且你造成的伤害+1。若你使用过〖墨残霜伴樱〗,你的【杀】可以额外指定一个目标,当你造成伤害时,你回复X点体力值(X为你已损失体力值/2,向下取整)", + "zioy_lieying1": "裂影", + "zioy_lieying1_info": "", + "zioy_wrjzc": "无人机侦查", + "zioy_wrjzc_info": "回合开始阶段,你观看随机一名角色的手牌。", + "zioy_zsyhj": "自适应护甲", + "zioy_zsyhj_info": + "锁定技,你的手牌上限等于你的护甲,每个回合开始阶段,你大于1的体力上限会被转化为护甲。当你受到一次属性伤害,你免疫下一次属性伤害。当你受到一次无属性伤害,你免疫下一次无属性伤害。两种免疫效果不能同时存在。", + "zioy_weixiang": "伪像", + "zioy_weixiang_info": "游戏开始时,你选择一名角色,然后你将你的武将牌替换成你选择角色的武将牌,同时修改自己的体力,体力上限,护甲与其一致。", + "zioy_zsyhjn": "护甲", + "zioy_zsyhjn_info": "抵消下一次受到的属性伤害", + "zioy_fansheng": "反生", + "zioy_fansheng_info": + "锁定技,你死亡时,杀死你的角色获得〖年种〗标记并将体力上限减少至1,然后你废除其防具栏,+1马栏,宝物栏。若拥有你给予的〖年种〗标记的角色死亡,你复活并令你回复X点体力,增加X点体力上限,摸X张牌,然后你与其交换座位并进行一个额外的回合(X为〖年种〗标记的角色原有的体力上限)", + "zioy_nianzhong": "年种", + "zioy_nianzhong_info": "锁定技,你死亡时,'年'复活并与你交换座位并额外进行一个回合。", + "zioy_jifou": "祭否", + "zioy_jifou_info": "一轮游戏开始时,你可以选择一名角色,你使该角色摸牌阶段摸牌数+2,体力上限+3,回复体力至体力上限,并摸5张牌。然后你死亡。", + "zioy_jifou2": "祭否", + "zioy_jifou2_info": "你已获得赐福", + "zioy_liubo": "流波", + "zioy_liubo_info": "你记录最后一张因弃置进入弃牌堆的牌。当你使用牌指定一名角色为目标时,你可以为此牌额外指定一名目标,并获得〖流波〗记录的牌。", + "zioy_liubo2": "流波", + "zioy_liubo2_info": "使用牌", + "zioy_shuiyue": "水月", + "zioy_shuiyue_info": "回合结束阶段,你可以摸X张牌,然后将X/1.5且向下取整(X为你本局游戏中发动〖流波〗的次数)", + "zioy_moying": "末影", + "zioy_moying_info": + '出牌阶段限一次,你可以将一张黑色牌置于一名角色的武将牌上,称为"末影",当你使用牌指定一名其他角色为唯一目标时,拥有"末影"且不为目标的角色视为对目标使用一张与你使用牌相同的牌。场上至多同时存在2个由你产生的"末影",当"末影"超出限制时,你获得已存在最早产生的"末影"。', + "zioy_yingdun": "影遁", + "zioy_yingdun_info": + '当你成为一名角色使用牌的目标时,你可以选择一名不为此牌目标且拥有"末影"的角色,你将此牌目标转移为该角色并与其交换座位,每个"末影"限一次,重新赋予"末影"可刷新限制。', + "zioy_moying2": "末影", + "zioy_moying2_info": "当该影使用牌指定一名其他角色为唯一目标时,若该目标是你的合法目标,你视为对其使用一张与该影使用牌相同的牌。", + "zioy_jianying": "渐影", + "zioy_jianying_info": '隐匿技,当你亮出武将牌时,你可以将一张无限点数的黑桃【杀】加入游戏并当作"末影"置于一名其他角色的武将牌上。', + "zioy_moying3": "末影", + "zioy_moying3_info": "死", + "zioy_yuexiang": "月相", + "zioy_yuexiang_info": "获得此技能时,你随机获得一个月相,每轮开始时月相会按规律进行变化,摸牌阶段,你的摸牌数根据月相增加0~2张。", + "zioy_yuexiang2": "月相", + "zioy_yuexiang2_info": "一轮开始时", + "zioy_douzhuan": "斗转", + "zioy_douzhuan_info": + "游戏开始时,你随机指定一名角色并将7张牌置于其武将牌上,称为“星斗”。每轮游戏开始时,星斗将转移至拥有者下家。当“星斗”拥有者死亡或一轮游戏开始时你为满月且与“星斗”拥有者的座位相邻时,你获得“星斗”中的所有牌,使你月相的额外摸牌效果翻倍并使你的手牌上限+7。", + "zioy_xingdou": "星斗", + "zioy_xingdou_info": "闲云潭影日悠悠,物转星移几度秋", + "zioy_shengyue": "神月", + "zioy_shengyue_info": '限定技,出牌阶段,若"星斗"不位于你的区域内,你可以与你的下家交换座位并重复此流程直到你的上家区域内拥有"星斗"。', + "zioy_xiaoxiang": "消香", + "zioy_xiaoxiang_info": "限定技,一轮游戏开始时,对每个拥有〖尘〗的角色,你移去其的〖尘〗,令其翻面并令你回复一点体力。", + "zioy_douzhuan2": "斗转", + "zioy_douzhuan2_info": "死了", + "zioy_nianxi": "年袭", + "zioy_nianxi_info": + "出牌阶段,你可以弃置一张非红色牌,视为打出一张【杀】,若此杀未造成伤害,你受到由目标角色对你造成的X点伤害(X为你因此技能受到伤害的次数+1)", + "zioy_nianxi2": "年袭", + "zioy_nianxi2_info": "", + "zioy_xiantong": "显瞳", + "zioy_xiantong_info": + "一轮游戏开始或你的摸牌阶段结束时,你可以将一张非装备牌置于你的武将牌上,称为“瞳”。你拥有的“瞳”的数量不能超过你的体力上限。你的回合结束阶段,对于你的每张“瞳”,你视为对随机一名其他角色使用一张虚拟的同名牌。", + "zioy_xiane": "显厄", + "zioy_xiane_info": "回合结束阶段,若你的“瞳”达到3张,你可以依次获得你的所有“瞳”,你每以此法获得一张“瞳”,随机一名其他角色受到由你造成的2点雷电伤害。", + "zioy_xiantong2": "显瞳", + "zioy_xiantong2_info": "结束阶段", + "zioy_wuya": "雾鸦", + "zioy_wuya_info": + "出牌阶段,你可以失去一点体力上限并选择一名角色,你令其获得“鸦”标记。拥有“鸦”标记的角色所有技能失效。拥有“鸦”标记的角色即将受到伤害时,防止此伤害并移去“鸦”标记。拥有“鸦”标记的角色的回合开始阶段,你需将此标记转移给一名未拥有“鸦”的角色。你以此法转移“鸦”标记时,原被标记者失去一点体力。若你以此法将“鸦”标记转移到自己区域内,你失去“鸦”标记,回复X点体力,并获得X点“黑血”标记(X为此“鸦”标记转移的次数+1)", + "zioy_sheji": "摄脊", + "zioy_sheji_info": "当你使用【杀】指定一名角色为目标时,你可以失去一点“黑血”,然后令【杀】失效,你偷取目标角色一点体力值。", + "zioy_puai": "瀑霭", + "zioy_puai_info": + "限定技,回合结束阶段,你可以移去任意点“黑血”并失去等量体力上限,然后从下轮游戏开始,持续X轮,获得以下效果:
①.“鸦”不被强制要求抵挡伤害
②.“鸦”不被强制要求移动
③.发动〖雾鸦〗时失去体力上限改为获得体力上限。
④.你与其他角色的距离为负无穷大,其他角色与你的距离为无穷大,防止你成为伤害类卡牌的目标。", + "zioy_wuya2": "雾鸦", + "zioy_wuya2_info": "", + "zioy_wuya3": "雾鸦", + "zioy_wuya3_info": "", + "zioy_wuya4": "雾鸦", + "zioy_wuya4_info": "", + "zioy_puai2": "瀑霭", + "zioy_puai2_info": "", + "zioy_puai3": "瀑霭", + "zioy_puai3_info": "", + "zioy_xingchi": "行持", + "zioy_xingchi_info": "锁定技,当你使用或打出一张【杀】或【闪】时,你获得1点“正觉”。
当你即将造成/受到伤害时,你移去3点“正觉”并令此伤害+1/-1。", + "zioy_xingchi2": "行持", + "zioy_xingchi2_info": "", + "zioy_xingchi3": "行持", + "zioy_xingchi3_info": "", + "zioy_cangzhen": "沧震", + "zioy_cangzhen_info": "锁定技,每名角色限一次,你对一名角色造成伤害前,你令其翻面且此伤害+1。", + "zioy_cangzhen2": "沧震", + "zioy_cangzhen2_info": "", + "zioy_shangqin": "上觐", + "zioy_shangqin_info": + "锁定技,①当有其他非“虚空虫”角色死亡后,你可令其复活并将武将牌替换为“虚空虫”,其体力上限与体力值为2,身份与你同阵营,操控者为你。然后你获得一点体力上限并回复一半已损失体力(向上取整)
②“虚空虫”死亡后,你获得其所有牌。", + "zioy_hanshou": "颔首", + "zioy_hanshou_info": + "限定技,一轮游戏开始时,你可以令所有已死亡的“虚空虫”满体力复活,然后你失去X点体力上限并令所有“虚空虫”摸X张牌(X为以此法复活的“虚空虫”数量)", + "zioy_shangqin2": "上觐", + "zioy_shangqin2_info": "", + "zioy_shangqin3": "上觐", + "zioy_shangqin3_info": "", + "zioy_longzi": "溶紫", + "zioy_longzi_info": "", + "zioy_yingyuan": "隐渊", + "zioy_yingyuan_info": + "①其他角色的回合结束阶段开始时,若你的武将牌为正面朝上,你可以将你的武将牌翻面。
②每轮游戏限一次,已受伤角色的回合结束阶段,若你武将牌翻面,你可以重复和你的下家交换位置直到你成为此受伤角色的上家,然后你将武将牌翻面并立即执行一个额外的回合
③若你武将牌背面向上,你即将受到的伤害-1。", + "zioy_hey": "嘿!", + "zioy_hey_info": + "每名角色每轮限一次,回合开始与结束阶段,你选择一种颜色并观看一名角色的手牌,若其手牌中你选择颜色数量占优/不占优,你与其各摸/弃置一张牌并令其/你“光芒”标记拥有状态取反。获得此技能时你获得“光芒”。", + "zioy_ya": "呀!", + "zioy_ya_info": "你即将受到伤害时,若你没有“光芒”,你可以将一枚“光芒”移动至你的区域内并防止此次伤害。", + "zioy_ha": "哈!", + "zioy_ha_info": "你造成伤害后,你可以移动一枚“光芒”标记。", + "zioy_guangmang": "光芒", + "zioy_guangmang_info": + "锁定技,①受到伤害结算后,若场上存在其他拥有“光芒”的角色,你移去“光芒”并对其中随机一名角色造成等于本次伤害值的伤害。
②无“光芒”角色与你的距离为无穷大。", + "zioy_shihong": "拾虹", + "zioy_shihong_info": + "锁定技,摸牌阶段,未觉醒状态下你可以额外摸0~Y张牌,并弃置一名角色X张牌,觉醒状态下召唤曙光天气N回合(N为当前存活角色数,Y为N/2且向上取整,X为Y-本回合以此法额外摸牌的数量)", + "zioy_cuiyi": "皠翊", + "zioy_cuiyi_info": + "回合开始阶段,未觉醒状态下令一名角色“皠翊”标记拥有状态取反,然后根据游戏轮数强化拥有“皠翊”标记的角色2项属性1级。觉醒状态下锁定所有拥有“皠翊”标记的角色强化N回合(N为当前存活角色数)", + "zioy_shulin": "倏翷", + "zioy_shulin_info": + "觉醒技,每局游戏限2次。出牌阶段开始时,你可以回复所有已损失体力并进入觉醒状态。再次使用此技能时回复X点体力并将多出的回复值转化为摸牌数,然后你退出觉醒状态(X为觉醒状态持续时间)", + "zioy_huangyi": "煌熠", + "zioy_huangyi_info": + "锁定技,你即将造成伤害时,未觉醒状态下你令伤害-1并回复1点体力,觉醒状态下若目标角色强化锁定则解除锁定,然后倒置目标角色强化,令伤害+X(X为你以此法倒置的强化项数之和)", + "zioy_t": "测试", + "zioy_t_info": "测试技能", + "zioy_t1": "测试", + "zioy_t1_info": "sadadwadwaedaw", + "zioy_shuohui": "朔回", + "zioy_shuohui_info": + "锁定技
①防止你在已损失体力时死亡,你在未损失体力时进入濒死状态。
②你不以此法失去体力与受到伤害均改为回复体力,不以此法回复体力均改为失去体力。
③除开始阶段与结束阶段,你的回合阶段执行顺序与正常顺序相反。
④你的手牌上限等于你已损失体力。", + "zioy_hexuchongxiang": "鹤墟重香", + "zioy_hexuchongxiang_info": + "清香更何用,犹发去年枝。
①将你即将受到伤害/流失体力时伤害/流失值超过X点的部分转化为“蜃气”,触发此效果超过X+1次后令X翻倍(若X=0则令X加1)并重置计数(获得此技能时令X=0)
②当你死亡时,若你体力值不小于0则改为失去所有体力,否则:若你体力上限不为场上唯一最多,你复活,获得N+1点体力上限,回复所有体力,移去所有“蜃气”并获得等量护盾,摸等量的牌,令X等于N-1,重置①效果计数,令你本局游戏摸牌阶段摸牌数,造成/受到伤害,失去体力的数值永久增加80%(向下取整)(N为〖鹤墟重香②〗发动的次数)
③你的“蜃气”数量不会超过你体力上限,获得“蜃气”时根据你是否受伤将多余的“蜃气”转换为体力值或“海市蜃楼”天气回合数。", + "zioy_hexuchongxiang_mark": "鹤墟重香③", + "zioy_hexuchongxiang_revive": "鹤墟重香②", + "zioy_yuezhuiyunwei": "月坠云微", + "zioy_yuezhuiyunwei_info": + "梦回芳草思依依,天远雁声稀。
①根据当前“蜃气”的数量执行下列效果:
不大于50%体力上限:一名角色的回合开始阶段你失去1级防御,攻击强化,你的判定区视为被废除,你免疫任何异常状态,你的武将牌始终正面向上。
大于25%体力上限:当你成为其他角色使用牌的目标时,其弃置一张与此牌同名的手牌(没有则不弃)
大于6:当你造成超过1点伤害后,你失去1点体力上限并令其获得1点体力上限,令你本局游戏摸牌阶段摸牌数,造成/受到伤害,失去体力的数值永久增加20%(与〖鹤墟重香〗同乘区)。
等于体力上限:每局游戏限一次,发动〖鹤墟重香②〗或〖月坠云微②〗时重置计数。当你使用牌对指定一名角色为唯一目标时,你与其交换体力与体力上限。以此法交换的体力和体力上限不超过X点(X为你发动〖鹤墟重香③〗的次数)
②每回合限1次,出牌阶段,若你有“蜃气”,你可以主动发动此技能:你失去所有“蜃气”,倒置负面强化并清除所有异常状态,召唤等量回合的“海市蜃楼”天气,令一名角色获得等量护盾,令一名角色回复等量体力(X=你的体力上限/2且向下取整)
③你永久免疫“睡眠”异常,永久免疫“海市蜃楼”的任何效果。", + "zioy_zhumingxiangan": "烛明香暗", + "zioy_zhumingxiangan_info": "凭阑半日独无言,依旧竹声新月似当年。
①。", + "zioy_hanbosuliu": "寒波泝流", + "zioy_hanbosuliu_info": "琼窗春断双蛾皱,回首边头。", + "zioy_pianhongxiusao": "片红休埽", + "zioy_pianhongxiusao_info": "啼莺散,馀花乱,寂寞画堂深院。", + "zioy_yujin": "余烬", + "zioy_yujin_info": + "①获得此技能时你获得5点“烬”,若你有“烬”,限制你受到的伤害不超过1点且防止你失去体力。每次触发限伤或防止失去体力时你失去2点“烬”并在下次受到伤害后获得1点护甲。
②你的护甲被击破时,你恢复1点体力,弃置伤害来源至多2张牌并令其受到由你造成的1点火属性伤害。", + "zioy_xumie": "虚灭", + "zioy_xumie_info": + "当你造成伤害时,根据你对该受伤角色造成伤害的次数追加以下效果:
大于0次:其始终在你攻击范围内且不能响应你使用的【杀】。
大于1次:你弃置其至多2张牌。
大于2次:其下一次造成的伤害-1。
大于3次:你对其追加1点伤害,此伤害无法触发〖虚灭〗。
大于4次:你获得1点“烬”", + "zioy_v07yuxie": "V07-驭械", + "zioy_v07yuxie_info": + "①游戏开始时你获得4点护甲并进入“驭械”状态,当你的护甲被击破时你退出“驭械”状态。
②“驭械”状态为你提供以下增益:
1.你的手牌上限+X(X为你的护甲值)。

·>当你手牌数不小于体力值时,你为暴走状态,获得以下增益:
1.你的进攻距离+2。
2.你的【杀】无法被响应。
3.你使用牌没有次数限制。
4.你使用牌时需额外弃置1张牌。

·>当你手牌数小于体力值时,你为冷却状态,获得以下增益:
1.你使用锦囊牌指定角色为目标时,你可以弃置目标角色至多2张牌。
2.你使用非装备牌结算完成后,你收回此牌。每回合限1次,获得手牌时若手牌数大于体力值则重置此计数。每张牌每回合限1次。
3.你即将受到超过1点的伤害时令此伤害值-1并恢复你1点体力。

③非“驭械”状态下限制你受到的伤害不超过1点。
④进入或退出“驭械”状态时清除自身任何强化与异常状态并获得判定区内的所有牌。", + "zioy_f42chongzai": "F42-重载", + "zioy_f42chongzai_info": + "出牌阶段各限1次:
①若你为“驭械”状态,你令所有角色受到1点无来源伤害,然后你摸3张牌,然后若你未损失体力则储存1点体力,若你拥有护甲则储存1点护甲。
②若你不为“驭械”状态,你可以弃置至少2张花色各不同的手牌,根据你弃置的手牌数执行以下效果:
不为4张:你获得等同于弃置手牌数-1枚“能量”标记。
4张:你获得4枚“能量”标记。
然后将当前体力值超过1的部分转化为等量“能量”标记,之后释放你储存的体力值。使用此技能后的每个的回合结束阶段,根据你的“能量”标记数量,执行以下效果:
小于体力上限:你获得1枚“能量”标记。
不小于体力上限:你弃置所有“能量”标记,获得等量护甲并释放储存的护甲,进入“驭械”状态,若你以此法获得的护甲值大于你的体力上限,你获得1点体力上限。", + "zioy_yuemai": "岳衇", + "zioy_yuemai_info": + "锁定技,①你造成伤害后,若场上没有环境,则尝试召唤“迷嶂”环境8轮,召唤成功则获得2点护甲。
②“迷嶂”环境中你进攻距离+1,“迷嶂”环境下你获得50%免伤。", + "zioy_liechenyuyou_water": "列辰御佑", + "zioy_liechenyuyou_water_info": + "血脉技,免疫失效。
①令你获得“泷之神佑”。
②你的摸牌阶段摸牌数+2,结束阶段与一轮游戏开始时你摸1张牌.
③你使用【杀】对非神势力非拥有“神佑”或拥有“燚之神佑”的角色造成的伤害+1。", + "zioy_pinghuqiuyue": "平湖秋月", + "zioy_pinghuqiuyue_info": + "①限制你受到的伤害最大为2点。
②当你流失体力后,防止你于本轮游戏流失体力。
③你的手牌上限-4且不小于3。
④你对拥有护甲的角色造成的伤害+1。
⑤触发限伤效果/击破一名角色护甲/令一名角色进入濒死状态时获得7点怒气,受到/造成伤害时获得等额怒气。
⑥你的回合结束阶段,你失去1点怒气。", + "zioy_yurangzhijian": "与浪之间", + "zioy_yurangzhijian_info": + "出牌阶段限一次,依次结算以下效果:
①消耗你所有“怒气”,减少你至多3层“盛怒”层数(最多减少至1层)。
②召唤5轮“细雨”天气,获得5回合全异常免疫。
③令Y=M-1.5X+N/3(向下取整),若Y大于零则回复Y点体力,否则弃置-Y张牌(X为本局游戏〖与浪之间〗累计使用次数,N为本次消耗怒气值,M为本次消耗“盛怒”层数)。
④若累计记录消耗怒气数+N达到10点则进入盛怒状态并获得1点“盛怒”层数,此效果一局游戏限1次。
⑤盛怒状态下使你下一次受到的伤害基础值等于0。
⑥记录N/3点消耗怒气数。
盛怒状态:盛怒状态最多达到7层,盛怒状态中每次使用伤害类型牌时获得1层“盛怒”层数,盛怒状态为你提供以下增益:
>①你出牌阶段可以多使用X*0.43(向下取整)张【杀】
>②你使用【杀】时对方需多使用X*0.43(向下取整且至少为1)张【闪】
>③你的【杀】造成的伤害+X*0.58(向下取整)
>④造成伤害时你回复0.05*X*伤害值(向下取整)点伤害值并弃置受伤角色0.15*X*伤害值(向下取整)张牌。
>⑤你装备区的牌无法被弃置。", + "zioy_liechenyuyou_fire": "列辰御佑", + "zioy_liechenyuyou_fire_info": + "血脉技,免疫失效。
①令你获得“燚之神佑”。
②你的摸牌阶段摸牌数+2,结束阶段与一轮游戏开始时你摸1张牌.
③你使用【杀】对非神势力非拥有“神佑”或拥有“苏之神佑”的角色造成的伤害+1。", + "zioy_zhuxingwuchang": "诸行无常", + "zioy_zhuxingwuchang_info": + "锁定技,若场上为天气,你使用的牌视为火属性且造成伤害后弃置受伤角色1张牌;若场上为环境,你的牌不可被响应;若你没有“无瞋”:造成伤害后你失去1点体力然后恢复2点体力,“风林火山”环境下提升至4点,若当前为奇数轮则召唤2轮“热浪”天气,否则召唤2轮“风林火山”环境。。", + "zioy_zhufashengmie": "诸法生灭", + "zioy_zhufashengmie_info": "一局游戏限一次,你死亡时,取消之,然后你令你的体力值等于体力上限并锁定体力直到你的下个出牌阶段结束。", + "zioy_yongyeqingxiao": "永夜清宵", + "zioy_yongyeqingxiao_info": + "①获得此技能时你获得5个“无瞋”标记。若你有“无瞋”,你使用牌结算后需弃置1张牌(没有则不弃)并失去1个“无瞋”。
②出牌阶段,若你有“无瞋”标记且不为5个,你可以将“无瞋”补至5个,记补充数量为X,你摸X*1.25(向下取整)张牌,回复X/2(向下取整)点体力(回复体力效果每回合限1次),获得X轮异常免疫,若当前为奇数轮则召唤X轮“热浪”天气,否则召唤X轮“风林火山”环境。
③若你没有“无瞋”,你废弃你的判定区,永久获得全异常免疫,攻击距离+1。", + "zioy_nongying": "弄影", + "zioy_nongying_info": + "起舞弄清影,何似在人间。
①你手牌中的【闪】均视为【杀】,当你需要使用或打出【闪】时,你可以视为打出一张【闪】。
②每当你发动〖弄影①〗或将【闪】视为【杀】使用或打出时,若你已受伤,你失去1点体力上限并恢复1点体力,否则你获得1点体力上限并失去1点体力。", + "zioy_chanjuan": "婵娟", + "zioy_chanjuan_info": "但愿人长久,千里共婵娟。
你回复体力后,可令任意名已受伤的其他角色回复等量体力。", + "zioy_lanzhiyuane": "滥蛭垣厄", + "zioy_lanzhiyuane_info": + "锁定技,你的【杀】造成的伤害+X(X为log2(目标角色当前体力)且向下取整),若造成伤害后目标角色体力值不小于最大体力值*0.5则弃置其2张牌,否则倒置其下次回复体力效果并令此技能无法再对其发动。", + "zioy_liuzhenxiongxiang": "流鸩汹飨", + "zioy_liuzhenxiongxiang_info": "", + "zioy_yinhuxiaowu": "饮蛊销污", + "zioy_yinhuxiaowu_info": "", + "zioy_noname1": "占位", + "zioy_noname1_info": + '①记你的体力上限为你的"尾数",若你的"尾数"不为9,你每次使用进攻类型的牌或即将受到伤害时你获得1点体力上限并回复1点体力值。
②你即将受到的伤害不超过尾数/2(向下取整),你受到的伤害减少尾数*0.05(向上取整),你的摸牌阶段摸牌数+X(X为你的尾数)。
③当你尾数为9时,你造成的任何伤害+1并且附带1点不触发此技能的雷属性伤害。
④每个回合开始阶段将你超过9的体力上限部分与全部护甲转换为体力。' + } + }, + intro: "??????????????????????????
拒绝规范描述", + author: "喵喵", + diskURL: "", + forumURL: "", + version: "23.08.13.01.39" + }, + files: { "character": ["zioy_xuanhu.jpg"], "card": ["zioy_yueguang.jpg"], "skill": [], "audio": [] } + }; +});