diff --git a/extension.js b/extension.js
index fb57eec..5a9f02b 100644
--- a/extension.js
+++ b/extension.js
@@ -42,22 +42,21 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
//event.trigger("changeRoundNumberEnd");
};
-
// 重写废除判定区相关
lib.element.content.enableJudge = function () {
"step 0"
- if (!player.storage._disableJudge || player.storage._disableJudge == false) event.finish()
+ if (!player.storage._disableJudge || player.storage._disableJudge == false) event.finish();
// 多次废除恢复判断
- if (!player.storage._disableJudge_layer){
- player.storage._disableJudge_layer = 0
+ if (!player.storage._disableJudge_layer) {
+ player.storage._disableJudge_layer = 0;
}
- player.storage._disableJudge_layer--
- if (player.storage._disableJudge_layer < 0){
- player.storage._disableJudge_layer = 0
- event.finish()
+ player.storage._disableJudge_layer--;
+ if (player.storage._disableJudge_layer < 0) {
+ player.storage._disableJudge_layer = 0;
+ event.finish();
}
- if(player.storage._disableJudge_layer > 0)event.finish()
- 'step 1'
+ if (player.storage._disableJudge_layer > 0) event.finish();
+ "step 1"
game.log(player, "恢复了判定区");
player.storage._disableJudge = false;
// player.markSkill('_disableJudge');
@@ -71,12 +70,12 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
"step 0"
// if (player.storage._disableJudge == true) return;
// 多次废除恢复判断
- if (!player.storage._disableJudge_layer){
- player.storage._disableJudge_layer = 0
+ if (!player.storage._disableJudge_layer) {
+ player.storage._disableJudge_layer = 0;
}
- player.storage._disableJudge_layer++
- if(player.storage._disableJudge_layer > 1){
- event.finish()
+ player.storage._disableJudge_layer++;
+ if (player.storage._disableJudge_layer > 1) {
+ event.finish();
}
"step 1"
game.log(player, "废除了判定区");
@@ -1012,15 +1011,15 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
onremove: function (player) {},
content: function () {
var r = function () {
- return [true,false].randomGet();
+ return [true, false].randomGet();
};
if (r()) {
player.loseHp();
}
if (r()) {
- var n = player.countCards() - player.hp
- if(player.countCards() > 0 && n <= 0)n = 1
- player.chooseToDiscard(true,n);
+ var n = player.countCards() - player.hp;
+ if (player.countCards() > 0 && n <= 0) n = 1;
+ player.chooseToDiscard(true, n);
}
if (r()) {
player.addBuff("shuimian", null);
@@ -1757,15 +1756,16 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
};
//并不是很好的写法
- game.addPlayer=(position,character,character2)=>{
- if(position<0||position>game.players.length+game.dead.length||position==undefined) position=Math.ceil(Math.random()*(game.players.length+game.dead.length));
- const players=game.players.concat(game.dead);
- ui.arena.setNumber(players.length+1);
- players.forEach(value=>{
- if(parseInt(value.dataset.position)>=position) value.dataset.position=parseInt(value.dataset.position)+1;
+ (game.addPlayer = (position, character, character2) => {
+ if (position < 0 || position > game.players.length + game.dead.length || position == undefined)
+ position = Math.ceil(Math.random() * (game.players.length + game.dead.length));
+ const players = game.players.concat(game.dead);
+ ui.arena.setNumber(players.length + 1);
+ players.forEach(value => {
+ if (parseInt(value.dataset.position) >= position) value.dataset.position = parseInt(value.dataset.position) + 1;
});
- const player=ui.create.player(ui.arena).animate('start');
- if(character) player.init(character,character2);
+ const player = ui.create.player(ui.arena).animate("start");
+ if (character) player.init(character, character2);
player.storage.enhancementArray = {
attack: 0, //攻击力
defend: 0, //防御力
@@ -1778,47 +1778,46 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
locked_type: null
};
game.players.push(player);
- player.playerid = get.id()
- game.playerMap[player.playerid] = player
+ player.playerid = get.id();
+ game.playerMap[player.playerid] = player;
// game.log(game.playerMap)
// for(var i in game.playerMap){
// game.log(i)
// }
// game.playerMap.push(player);
- player.dataset.position=position;
+ player.dataset.position = position;
game.arrangePlayers();
return player;
- },
-
- lib.skill._miao_enhancement_init = {
- /*游戏开始时设置player.storage.enhancementArray */
- // addplayer时会出错,需要注意
- unique: true,
- trigger: {
- global: "phaseBefore",
- player: ["enterGame", "showCharacterAfter"]
- },
- priority: 70582140,
- forced: true,
- locked: true,
- direct: true,
- filter: function (event, player) {
- return event.name != "phase" || game.phaseNumber == 0 || !player.storage.enhancementArray;
- },
- content: function () {
- player.storage.enhancementArray = {
- attack: 0, //攻击力
- defend: 0, //防御力
- miss: 0, //闪避率
- hit: 0, //命中率
- strike: 0, //暴击率,目前没用
- draw: 0, //摸牌,目前没用
- locked: false,
- locked_end: -1,
- locked_type: null
- };
- }
- };
+ }),
+ (lib.skill._miao_enhancement_init = {
+ /*游戏开始时设置player.storage.enhancementArray */
+ // addplayer时会出错,需要注意
+ unique: true,
+ trigger: {
+ global: "phaseBefore",
+ player: ["enterGame", "showCharacterAfter"]
+ },
+ priority: 70582140,
+ forced: true,
+ locked: true,
+ direct: true,
+ filter: function (event, player) {
+ return event.name != "phase" || game.phaseNumber == 0 || !player.storage.enhancementArray;
+ },
+ content: function () {
+ player.storage.enhancementArray = {
+ attack: 0, //攻击力
+ defend: 0, //防御力
+ miss: 0, //闪避率
+ hit: 0, //命中率
+ strike: 0, //暴击率,目前没用
+ draw: 0, //摸牌,目前没用
+ locked: false,
+ locked_end: -1,
+ locked_type: null
+ };
+ }
+ });
lib.skill._miao_enhancement_attack = {
/*根据攻击与防御强化进行伤害修正 */
trigger: {
@@ -2220,7 +2219,8 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
"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_leimingqiangu", "zioy_zhoumingchuanxuan"], []]
+ "zioy_xuanhu": ["male", "wei", 1, ["zioy_leimingqiangu", "zioy_zhoumingchuanxuan"], []],
+ "zioy_xiyueying": ["male", "shen", 4, [], []]
},
translate: {
"zioy_xixuegui": "弗拉基米尔",
@@ -2261,7 +2261,8 @@ game.import("extension", function (lib, game, ui, get, ai, _status) {
"zioy_osiris": "奥曦里斯",
"zioy_morana": "莫洛娜",
"zioy_guanghan": "广寒",
- "zioy_xuanhu": "翾狐"
+ "zioy_xuanhu": "翾狐",
+ "zioy_xiyueying": "曦月吟"
}
},
card: {
@@ -5747,14 +5748,14 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
},
filter: function (event, player) {
//防止一个时机重复触发
- if(player.storage.hxcx_x1 < player.storage.hxcx_x && player.storage.hxcx_x1_flag){
+ if (player.storage.hxcx_x1 < player.storage.hxcx_x && player.storage.hxcx_x1_flag) {
player.storage.hxcx_x1++;
player.storage.hxcx_x1_flag = false;
}
// game.log(player.storage.hxcx_x1, player.storage.hxcx_x,event.getParent().name)
- if(event.num > player.storage.hxcx_x){
- return true
- }else{
+ if (event.num > player.storage.hxcx_x) {
+ return true;
+ } else {
return false;
}
},
@@ -5765,14 +5766,14 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
init: function (player) {
var p = player;
p.storage.hxcx_x = 0;
- p.storage.hxcx_x1 = -1;// 回合内满足1时机次数
- p.storage.hxcx_x1_flag = true;// 修时机重复触发的bug
- p.storage.hxcx_count1 = 0;// 效果1触发次数
- p.storage.hxcx_count2 = 0;// 复活次数
- p.storage.yzyw_count1 = 0;// 月坠计数
+ p.storage.hxcx_x1 = -1; // 回合内满足1时机次数
+ p.storage.hxcx_x1_flag = true; // 修时机重复触发的bug
+ p.storage.hxcx_count1 = 0; // 效果1触发次数
+ p.storage.hxcx_count2 = 0; // 复活次数
+ p.storage.yzyw_count1 = 0; // 月坠计数
p.gainShenqi = function (num) {
if (num > 999) num = 999;
- if(num < 0)return;
+ if (num < 0) return;
var p = this;
var mark = "zioy_hexuchongxiang_mark";
var mark_count = p.countMark(mark);
@@ -5823,7 +5824,13 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
player.storage.hxcx_count1 = 0;
}
},
- group: ["zioy_hexuchongxiang_revive", "zioy_hexuchongxiang_damage", "zioy_hexuchongxiang_loseMaxHpEnd", "zioy_hexuchongxiang_phaseEnd", "zioy_hexuchongxiang_useCardAfter"],
+ group: [
+ "zioy_hexuchongxiang_revive",
+ "zioy_hexuchongxiang_damage",
+ "zioy_hexuchongxiang_loseMaxHpEnd",
+ "zioy_hexuchongxiang_phaseEnd",
+ "zioy_hexuchongxiang_useCardAfter"
+ ],
subSkill: {
mark: {
mark: false,
@@ -5853,8 +5860,8 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
}
p = p.next;
}
- if(player.storage.hxcx_count2 < 2){
- flag = true
+ if (player.storage.hxcx_count2 < 2) {
+ flag = true;
}
// if(flag == false && player.hp <= 0 && game.globalStatus.name == "shenlou"){
@@ -5888,16 +5895,14 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
"step 2"
player.recover(player.maxHp - player.hp);
"step 3"
- if(player.hp < 0){
+ if (player.hp < 0) {
player.hp = player.maxHp;
- player.update()
+ player.update();
}
},
sub: true,
"_priority": 0
},
-
- // 增伤
damage: {
trigger: {
player: ["loseHpBegin", "damageBegin2", "phaseDrawBegin2"],
@@ -5935,8 +5940,6 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
sub: true,
"_priority": -30172700
},
-
- // 重置回合内触发效果1的计数
phaseEnd: {
trigger: {
player: ["phaseEnd"]
@@ -5945,28 +5948,25 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
return true;
},
priority: -30174563,
- // forced: true,
charlotte: true,
unique: true,
direct: true,
content: function () {
player.storage.hxcx_x1_flag = true;
- player.storage.hxcx_x1=-1;
+ player.storage.hxcx_x1 = -1;
},
sub: true,
"_priority": -301712300
},
-
- useCardAfter:{
+ useCardAfter: {
trigger: {
- global: ["useCardAfter","damageEnd"],
+ global: ["useCardAfter", "damageEnd"],
player: ["loseHpBegin", "damageBegin3"]
},
filter: function (event, player) {
return true;
},
priority: -301754154563,
- // forced: true,
charlotte: true,
unique: true,
direct: true,
@@ -6065,9 +6065,9 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
order: 1,
result: {
player: function (player) {
- if(player.countMark("zioy_hexuchongxiang_mark") == player.maxHp)return 999
- x = player.storage.enhancementArray["attack"]
- if(x > -1){
+ if (player.countMark("zioy_hexuchongxiang_mark") == player.maxHp) return 999;
+ x = player.storage.enhancementArray["attack"];
+ if (x > -1) {
return -10;
}
return 120;
@@ -7567,14 +7567,16 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
return true;
},
init: function (player) {
- player.getTailCount = function(){
- return this.maxHp + this.countMark('zioy_zhoumingchuanxuan')
- }
+ player.getTailCount = function () {
+ return this.maxHp + this.countMark("zioy_zhoumingchuanxuan");
+ };
player.addDamageLimiter(parseInt(player.getTailCount() / 3), "zioy_leimingqiangu");
},
mark: true,
marktext: "鸣雷",
- intro: {name:"鸣雷"},
+ intro: {
+ name: "鸣雷"
+ },
forced: true,
content: function () {
"step 0"
@@ -7674,7 +7676,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
sub: true,
"_priority": 0
},
- loseMaxHpEnd:{
+ loseMaxHpEnd: {
trigger: {
player: ["addMark_zioy_leimingqiangu"]
},
@@ -7692,64 +7694,63 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
"_priority": 0
},
"zioy_zhoumingchuanxuan": {
- mod:{
- selectTarget:function(card,player,range){
- if(player.hasSkill("zioy_leimingqiangu") && !(['delay'].contains(get.type(card))) && range[1]!=-1) range[1] += parseInt(player.getTailCount()/3);
- },
- attackFrom:function(from,to,distance){
- if(from.hasSkill("zioy_leimingqiangu")) return distance-parseInt(from.getTailCount()/3);
+ mod: {
+ selectTarget: function (card, player, range) {
+ if (player.hasSkill("zioy_leimingqiangu") && !["delay"].contains(get.type(card)) && range[1] != -1)
+ range[1] += parseInt(player.getTailCount() / 3);
},
+ attackFrom: function (from, to, distance) {
+ if (from.hasSkill("zioy_leimingqiangu")) return distance - parseInt(from.getTailCount() / 3);
+ }
},
- trigger:{
- player:"useCardToTarget",
+ trigger: {
+ player: "useCardToTarget"
},
- forced:true,
+ forced: true,
mark: true,
marktext: "雷殊",
- intro: {name:'雷殊'},
- logTarget:"target",
- filter:function(event,player){
- return event.target&&event.target!=player&&event.targets.length==1&&player.maxHp > 1;
+ intro: {
+ name: "雷殊"
},
- content:function(){
- player.loseMaxHp(1)
- player.addMark('zioy_zhoumingchuanxuan')
+ logTarget: "target",
+ filter: function (event, player) {
+ return event.target && event.target != player && event.targets.length == 1 && player.maxHp > 1;
},
- group:['zioy_zhoumingchuanxuan_phaseUse'],
- subSkill:{
- phaseUse:{
- enable:"phaseUse",
- usable:1,
+ content: function () {
+ player.loseMaxHp(1);
+ player.addMark("zioy_zhoumingchuanxuan");
+ },
+ group: ["zioy_zhoumingchuanxuan_phaseUse"],
+ subSkill: {
+ phaseUse: {
+ enable: "phaseUse",
+ usable: 1,
skillAnimation: true,
animationColor: "thunder",
- filter:function(event,player){
- return player.countMark('zioy_zhoumingchuanxuan')>1;
+ filter: function (event, player) {
+ return player.countMark("zioy_zhoumingchuanxuan") > 1;
},
- // filterTarget:function(card,player,target){
- // return player!=target;
- // },
- content:function(){
- 'step 0'
- event.num = parseInt(player.countMark('zioy_zhoumingchuanxuan')/1.5)
- player.removeMark('zioy_zhoumingchuanxuan',player.countMark('zioy_zhoumingchuanxuan'))
- player.chooseTarget(
- "对至多"+event.num+"名其他角色造成" + event.num + "点伤害",
- function (card, player, target) {
- return target != player;
- },
- [
- 1,event.num
- ],
- true
- )
- .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.damage(event.num,'thunder')
+ content: function () {
+ "step 0"
+ event.num = parseInt(player.countMark("zioy_zhoumingchuanxuan") / 1.5);
+ player.removeMark("zioy_zhoumingchuanxuan", player.countMark("zioy_zhoumingchuanxuan"));
+ player
+ .chooseTarget(
+ "对至多" + event.num + "名其他角色造成" + event.num + "点伤害",
+ function (card, player, target) {
+ return target != player;
+ },
+ [1, event.num],
+ true
+ )
+ .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.damage(event.num, "thunder");
}
}
},
@@ -7757,16 +7758,16 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
order: 1,
result: {
player: function (player) {
- var n = player.countMark('zioy_zhoumingchuanxuan');
+ var n = player.countMark("zioy_zhoumingchuanxuan");
return 3;
- },
- // target:function(player,target){
- // return -3
- // }
+ }
}
},
+ sub: true,
+ "_priority": 0
}
- }
+ },
+ "_priority": 0
}
},
translate: {
@@ -8060,7 +8061,8 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
"zioy_leimingqiangu_info":
'①记你的体力上限+你拥有的“雷殊”数量为你的"尾数",若你的"尾数"小于9,每次使用进攻类型的牌或即将受到伤害时你获得1点体力上限并回复1点体力值。
②你即将受到的伤害不超过尾数/3(向下取整),你受到时伤害获得尾数*5枚“鸣雷”标记,当“鸣雷”标记数量达到200枚时你移去200枚“鸣雷”标记并回复1点体力值,若尾数达到9则使你下一次造成伤害后对受伤角色造成1点不会触发此技能③效果的雷属性伤害。
③当你尾数达到9时,你造成的任何伤害后获得伤害值*尾数*3点“鸣雷”标记。
④每个回合开始阶段将你超过9的体力上限部分与全部护甲转换为体力。
⑤你的摸牌阶段摸牌数基数为你的尾数/1.5(向下取整)。',
"zioy_zhoumingchuanxuan": "骤明穿玄",
- "zioy_zhoumingchuanxuan_info": "①你的攻击距离+X,使用牌(延时锦囊除外)可多指定X名角色为目标(X为你的尾数/3且向下取整)
②若你使用牌指定唯一其他角色为目标且你的体力上限大于1,你失去1点体力上限并获得1枚“雷殊”标记,然后清除场上非天气的全局状态
③若你有至少2枚“雷殊”,你可以主动发动此技能并移去所有“雷殊”并选择X名其他角色,你对其造成X点雷属性伤害(X为你移去“雷殊”的数量/1.5且向下取整)"
+ "zioy_zhoumingchuanxuan_info":
+ "①你的攻击距离+X,使用牌(延时锦囊除外)可多指定X名角色为目标(X为你的尾数/3且向下取整)
②若你使用牌指定唯一其他角色为目标且你的体力上限大于1,你失去1点体力上限并获得1枚“雷殊”标记,然后清除场上非天气的全局状态
③若你有至少2枚“雷殊”,你可以主动发动此技能并移去所有“雷殊”并选择X名其他角色,你对其造成X点雷属性伤害(X为你移去“雷殊”的数量/1.5且向下取整)"
}
},
intro: "??????????????????????????
拒绝规范描述",
@@ -8074,28 +8076,28 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
"zioy_gaiying.jpg",
"test.jpg",
"zioy_xuanhu.jpg",
+ "zioy_xixuegui.jpg",
+ "zioy_shuijinxiezi.jpg",
"zioy_zhigaotian.jpg",
"zioy_renturtle.jpg",
"zioy_yinlong.jpg",
"zioy_heibai.jpg",
- "zioy_xixuegui.jpg",
- "zioy_shuijinxiezi.jpg",
"zioy_senjianmeng.jpg",
+ "zioy_guanghan.jpg",
+ "zioy_yilong.jpg",
+ "zioy_dreamaker.jpg",
"zioy_drugdoctor.jpg",
"zioy_huajian.jpg",
"zioy_shenxianxiang.jpg",
+ "zioy_xielingyun.jpg",
"zioy_peiki.jpg",
"zioy_sose.jpg",
+ "zioy_pqsj.jpg",
"zioy_nianshou.jpg",
"zioy_jinu.jpg",
- "zioy_dreamaker.jpg",
- "zioy_yilong.jpg",
- "zioy_xielingyun.jpg",
- "zioy_pqsj.jpg",
- "zioy_guanghan.jpg",
"zioy_diana.jpg",
- "zioy_lanchesite.jpg",
"zioy_xiaozhenhe.jpg",
+ "zioy_lanchesite.jpg",
"zioy_badun.jpg",
"zioy_xingjun.jpg",
"zioy_osiris.jpg",
@@ -8106,13 +8108,15 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
"zioy_bailu.jpg",
"zioy_xukongchong.jpg",
"zioy_nike.jpg",
- "zioy_morana.jpg",
"zioy_muxi.jpg",
"zioy_b7chuhaoji.jpg",
- "zioy_kailuer.jpg"
+ "zioy_morana.jpg",
+ "zioy_kailuer.jpg",
+ "zioy_xiyueying.jpg"
],
"card": ["zioy_yueguang.jpg"],
- "skill": []
+ "skill": [],
+ "audio": []
}
};
});
diff --git a/zioy_guanghan.jpg b/zioy_guanghan.jpg
index 535a59c..e0393e4 100644
Binary files a/zioy_guanghan.jpg and b/zioy_guanghan.jpg differ
diff --git a/zioy_xiyueying.jpg b/zioy_xiyueying.jpg
new file mode 100644
index 0000000..4072ae9
Binary files /dev/null and b/zioy_xiyueying.jpg differ
diff --git a/zioy_xuanhu.jpg b/zioy_xuanhu.jpg
index d05d6fb..417e825 100644
Binary files a/zioy_xuanhu.jpg and b/zioy_xuanhu.jpg differ