feat: 不落红技能调整,miaoTool添加hook功能
This commit is contained in:
1 parent
a228dc94ce
commit
8154291803
2 files changed
+89
-25
No files matched your search
+54
-23
@@ -9942,7 +9942,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
zioy_chiqi: {
|
zioy_chiqi: {
|
||||||
autoTranslate: {
|
autoTranslate: {
|
||||||
name: "赤契",
|
name: "赤契",
|
||||||
info: `①游戏开始时,你获得X点体力上限并获得1枚“契月”(X为场上每名角色体力上限的最大值)<br>②当你拥有“契月”时:你攻击范围+X;你造成的伤害+X;你使用牌无次数限制;当你使用的基本牌结算完成后,你收回此牌;造成伤害后,你移去一枚“契月”标记。<br>③当你不因〖纵万千生灵生灭〗恢复体力时,取消之。`
|
info: `①游戏开始时,你获得X点体力上限并获得1枚“契月”(X为场上每名角色体力上限的最大值)<br>②当你拥有“契月”时:你攻击范围+X;你造成的伤害+X/3(向下取整);你使用牌无次数限制;当你于回合外使用或打出基本牌结算完成后,你收回此牌并移去一枚“契月”标记;造成伤害后,你移去一枚“契月”标记。`
|
||||||
},
|
},
|
||||||
trigger:{
|
trigger:{
|
||||||
global:"phaseBefore",
|
global:"phaseBefore",
|
||||||
@@ -9983,7 +9983,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
trigger.num += player.countMark('zioy_chiqi');
|
trigger.num += Math.floor(player.countMark('zioy_chiqi') / 3);
|
||||||
},
|
},
|
||||||
"_priority": 6354564654,
|
"_priority": 6354564654,
|
||||||
},
|
},
|
||||||
@@ -10002,13 +10002,14 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
},
|
},
|
||||||
useCardAfter: {
|
useCardAfter: {
|
||||||
trigger:{
|
trigger:{
|
||||||
player:["useCardAfter"],
|
player:['useCard', 'respond'],
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
filter:function (event,player){
|
||||||
return player.countMark('zioy_chiqi') > 0 && get.type(event.card) === 'basic';
|
return player.countMark('zioy_chiqi') > 0 && player!=_status.currentPhase && get.type(event.card) === 'basic';
|
||||||
},
|
},
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
player.gain(trigger.cards)
|
player.gain(trigger.cards)
|
||||||
|
player.removeMark('zioy_chiqi', 1)
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
"_priority":485965631,
|
"_priority":485965631,
|
||||||
@@ -10018,8 +10019,9 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
zioy_aici: {
|
zioy_aici: {
|
||||||
autoTranslate: {
|
autoTranslate: {
|
||||||
name: "哀慈",
|
name: "哀慈",
|
||||||
info: `①出牌阶段,你可选择任意名未拥有“契月”且座次连续的角色。你令其依次获得等同于其体力上限枚“契月”标记,摸等量的牌,并使其依次获得〖赤月东升〗。<br>②当拥有“契月”标记的角色即将死亡时,你获得其所有“契月”标记。`
|
info: `①出牌阶段,你可选择任意名未拥有“契月”且座次连续的角色。你令其依次获得等同于其体力上限枚“契月”标记(若其为你则获得3枚标记),摸等量的牌,并使其依次获得〖赤月东升〗。<br>②当拥有“契月”标记的角色即将死亡时,你获得其所有“契月”标记。`
|
||||||
},
|
},
|
||||||
|
derivation: ["zioy_chiyuedongsheng"],
|
||||||
locked: false,
|
locked: false,
|
||||||
mod:{
|
mod:{
|
||||||
maxHandcardBase:function(player,num){
|
maxHandcardBase:function(player,num){
|
||||||
@@ -10033,7 +10035,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
usable:1,
|
usable:1,
|
||||||
forced: true,
|
forced: true,
|
||||||
filter(event, player){
|
filter(event, player){
|
||||||
return game.players.filter(t => t.countMark('zioy_chiqi') > 0).length > 0;
|
return game.players.filter(t => t.countMark('zioy_chiqi') === 0).length > 0;
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
// if(player==target) return false;
|
// if(player==target) return false;
|
||||||
@@ -10050,13 +10052,19 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
async content(event, trigger, player){
|
async content(event, trigger, player){
|
||||||
const num = event.num
|
const num = event.num
|
||||||
const t = event.targets[num]
|
const t = event.targets[num]
|
||||||
const maxHp = t.maxHp
|
const getCardNum = t === player ? 3 : t.maxHp
|
||||||
t.addMark('zioy_chiqi', maxHp)
|
t.addMark('zioy_chiqi', getCardNum)
|
||||||
t.draw(maxHp)
|
t.draw(getCardNum)
|
||||||
t.addSkill('zioy_chiyuedongsheng')
|
t.addSkill('zioy_chiyuedongsheng')
|
||||||
},
|
},
|
||||||
ai: {
|
ai: {
|
||||||
threaten: 1
|
threaten: 1,
|
||||||
|
result:{
|
||||||
|
target: function (player, target) {
|
||||||
|
return get.attitude(player, target)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
order:1,
|
||||||
},
|
},
|
||||||
_priority: -351651,
|
_priority: -351651,
|
||||||
},
|
},
|
||||||
@@ -10086,7 +10094,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
zioy_chiyuedongsheng: {
|
zioy_chiyuedongsheng: {
|
||||||
autoTranslate: {
|
autoTranslate: {
|
||||||
name: "赤月东升",
|
name: "赤月东升",
|
||||||
info: `①当你即将恢复体力时,取消之,然后你移去一枚“契月”标记。<br>②回合开始阶段,你移去一枚“契月”标记。<br>③当你因此技能失去所有“契月”时,你失去此技能并受到1点无来源伤害。`
|
info: `①当你即将恢复体力时,取消之,然后你移去一枚“契月”标记。<br>②回合开始阶段,你移去一枚“契月”标记。<br>③当你失去所有“契月”时,你失去此技能并受到1点由你造成伤害。`
|
||||||
},
|
},
|
||||||
locked: false,
|
locked: false,
|
||||||
mod:{
|
mod:{
|
||||||
@@ -10095,6 +10103,23 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
},
|
},
|
||||||
attackRange:(player,num)=>player.hp,
|
attackRange:(player,num)=>player.hp,
|
||||||
},
|
},
|
||||||
|
init: (player) => {
|
||||||
|
const unhook = _mt.other.hook(player, 'removeMark', {
|
||||||
|
after: () => {
|
||||||
|
if(player.countMark('zioy_chiqi') === 0) {
|
||||||
|
unhook()
|
||||||
|
player.damage()
|
||||||
|
player.removeSkill('zioy_chiyuedongsheng')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
player.storage.zioy_chiyuedongsheng = {
|
||||||
|
unhook
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onremove: (player) => {
|
||||||
|
player.storage.zioy_chiyuedongsheng.unhook()
|
||||||
|
},
|
||||||
autoSubSkill:{
|
autoSubSkill:{
|
||||||
recover: {
|
recover: {
|
||||||
trigger: {
|
trigger: {
|
||||||
@@ -10107,10 +10132,10 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
async content(event, trigger, player){
|
async content(event, trigger, player){
|
||||||
trigger.cancel()
|
trigger.cancel()
|
||||||
player.removeMark('zioy_chiqi', 1)
|
player.removeMark('zioy_chiqi', 1)
|
||||||
if(player.countMark('zioy_chiqi') === 0) {
|
// if(player.countMark('zioy_chiqi') === 0) {
|
||||||
player.damage()
|
// player.damage()
|
||||||
player.removeSkill('zioy_chiyuedongsheng')
|
// player.removeSkill('zioy_chiyuedongsheng')
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
ai: {
|
ai: {
|
||||||
threaten: 1
|
threaten: 1
|
||||||
@@ -10127,10 +10152,10 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
},
|
},
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
player.removeMark('zioy_chiqi', 1)
|
player.removeMark('zioy_chiqi', 1)
|
||||||
if(player.countMark('zioy_chiqi') === 0) {
|
// if(player.countMark('zioy_chiqi') === 0) {
|
||||||
player.damage()
|
// player.damage()
|
||||||
player.removeSkill('zioy_chiyuedongsheng')
|
// player.removeSkill('zioy_chiyuedongsheng')
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
threaten:1.3,
|
threaten:1.3,
|
||||||
@@ -10145,7 +10170,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
zioy_zongwanqianshenglingshengmie: {
|
zioy_zongwanqianshenglingshengmie: {
|
||||||
autoTranslate: {
|
autoTranslate: {
|
||||||
name: "纵万千生灵生灭",
|
name: "纵万千生灵生灭",
|
||||||
info: `限定技。回合开始阶段,你可以弃置你区域内所有牌,然后将其他角色区域内的所有牌移动至你区域内的相应位置,然后你将所有“契月”移动至你的区域内并摸等同于本次移动“契月”数量的牌,然后你移去所有“契月”,恢复等量体力并对所有其他角色造成等同于你当前体力/3的伤害。`
|
info: `限定技。回合开始阶段,你可以弃置你区域内所有牌,然后选择若干名其他角色,依次将其区域内的所有牌移动至你区域内的相应位置,然后你将所有“契月”移动至你的区域内并摸等同于本次移动“契月”数量的牌,然后你移去所有“契月”,恢复等量体力并对所有其他角色造成等同于你当前体力/3(向下取整)的伤害。`
|
||||||
},
|
},
|
||||||
trigger: {
|
trigger: {
|
||||||
player: 'phaseBegin'
|
player: 'phaseBegin'
|
||||||
@@ -10156,7 +10181,13 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
player.awakenSkill('zioy_zongwanqianshenglingshengmie')
|
player.awakenSkill('zioy_zongwanqianshenglingshengmie')
|
||||||
player.discard('hej')
|
player.discard('hej')
|
||||||
for(const target of game.players) {
|
const {result: { targets }} = (await (player.chooseTarget(get.translation('zioy_zongwanqianshenglingshengmie'), [1,game.players.length - 1], true, (_, player, target)=>{
|
||||||
|
return player !== target
|
||||||
|
}).set("ai", target => {
|
||||||
|
var att = get.attitude(player, target);
|
||||||
|
return -att;
|
||||||
|
})));
|
||||||
|
for(const target of targets) {
|
||||||
if(target === player) {
|
if(target === player) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -10177,7 +10208,7 @@ if(get.type(card)=='basic' && get.type(card)=='trick') flag= true;
|
|||||||
const count = player.countMark('zioy_chiqi');
|
const count = player.countMark('zioy_chiqi');
|
||||||
player.removeMark('zioy_chiqi', count)
|
player.removeMark('zioy_chiqi', count)
|
||||||
player.recover(count)
|
player.recover(count)
|
||||||
for(const target of game.players) {
|
for(const target of targets) {
|
||||||
if(target === player) {
|
if(target === player) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
+35
-2
@@ -51,7 +51,7 @@ const CSSS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default (lib, game, ui, get, ai, _status) => {
|
export default (lib, game, ui, get, ai, _status) => {
|
||||||
return {
|
const miaoTool = {
|
||||||
/**
|
/**
|
||||||
* Description 游戏全局相关操作
|
* Description 游戏全局相关操作
|
||||||
*/
|
*/
|
||||||
@@ -166,7 +166,40 @@ export default (lib, game, ui, get, ai, _status) => {
|
|||||||
return func.constructor.name === "AsyncFunction";
|
return func.constructor.name === "AsyncFunction";
|
||||||
},
|
},
|
||||||
|
|
||||||
loadStyleString
|
loadStyleString,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description 让一个obj的某一函数执行前后额外执行一些东西
|
||||||
|
* @param {object} target
|
||||||
|
* @param {string} key
|
||||||
|
* @param {{before: () => void; after: () => void}} config
|
||||||
|
* @returns {() => void} unhook
|
||||||
|
*/
|
||||||
|
hook(target, key, config) {
|
||||||
|
let enable = true;
|
||||||
|
const originFunc = target[key];
|
||||||
|
const _do = (func, args) => {
|
||||||
|
// if(miaoTool.other.isAsyncFunction) {
|
||||||
|
// await func(...args)
|
||||||
|
// } else {
|
||||||
|
func(...args);
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
target[key] = (...args) => {
|
||||||
|
if (enable && config.before) {
|
||||||
|
_do(config.before, args);
|
||||||
|
}
|
||||||
|
const result = originFunc.call(target, ...args);
|
||||||
|
if (enable && config.after) {
|
||||||
|
_do(config.after, args);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
return () => {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
return miaoTool;
|
||||||
};
|
};
|
||||||
Reference in new issue
Block a user