feat: 实现战斗效果逻辑和接口重构
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed

This commit is contained in:
xinian
2026-03-28 21:57:22 +08:00
committed by cnb
parent 0780eae582
commit 875ad668aa
332 changed files with 2062 additions and 1442 deletions

View File

@@ -0,0 +1,363 @@
package effect
// effectInfoByID 来源: public/config/effectInfo.json
// 仅收录当前 effect 包中已注册的技能效果ID。
var effectInfoByID = map[int]string{
1: "给予对方损伤的一半会回复自己的体力",
3: "解除自身的能力下降状态",
4: "技能使用成功时,{1}%改变自身{0}等级{2}",
5: "技能使用成功时,{1}%改变对手{0}等级{2}",
6: "对方所受伤害的1/{0}会反弹给自己",
7: "对方体力高于自己时才能命中,将对方体力减到和自己相同",
8: "伤害大于对方体力时对方会余下1体力",
9: "连续使用每次威力增加{0},最高威力{1}",
13: "{0}回合吸取对方最大体力的1/8(对草系无效)",
20: "{0}%令本方疲惫,{1}回合无法攻击",
21: "",
28: "降低对方1/{0}的hp",
29: "额外附加{0}点固定伤害",
31: "",
32: "使用后{0}回合攻击击中对象要害概率增加1/16",
33: "消除对手能力提升状态",
34: "将所受的伤害{0}倍反馈给对手",
35: "惩罚,对方能力等级越高,此技能威力越大",
36: "命中时{0}%的概率秒杀对方",
37: "自身HP小于1/{0}时威力为{1}倍",
39: "{0}%降低对手所有技能{1}点PP值然后若对手所选择的技能PP值为0则当回合对手无法行动",
41: "",
42: "",
43: "恢复自身最大体力的1/{0}",
44: "{0}回合自己受到特殊攻击伤害减半",
46: "抵挡下{0}次对手的攻击",
47: "{0}回合内免疫能力下降状态",
48: "{0}回合内免疫所有受到的异常状态",
49: "可以抵挡{0}点伤害",
50: "{0}回合自身受到物理攻击伤害减半",
52: "{0}回合若本方先手攻击,使得对方的技能失效",
53: "{0}回合攻击伤害是正常状态下的{1}倍",
54: "{0}回合使对方攻击伤害是正常状态下的1/{1}倍",
57: "{0}回合内每回合使用技能恢复自身最大体力的1/{1}",
58: "下{0}回合自身攻击技能必定打出致命一击",
59: "消耗自身全部体力(体力降到0),使下一只出战精灵的{0}和{1}能力提升1个等级",
60: "{0}回合内每回合都能附加{1}点固定伤害",
62: "{0}回合后若对方没有将自己击败,则对方死亡",
63: "将能力下降状态反馈给对手",
65: "{0}回合内{1}系技能威力为{2}倍",
68: "{0}回合内受到致死攻击时则余下1点体力",
69: "下{0}回合对手使用体力药剂时效果变成减少相应的体力",
71: "消耗自身全部体力己方下2次攻击技能必定打出致命一击",
72: "若没有命中对手则自己失去全部体力",
73: "若先手攻击则将所受伤害2倍反击给对手",
74: "命中时有30%概率令对手中毒、烧伤或冻伤",
75: "命中时有30%概率令对手麻痹、睡眠或害怕",
76: "{0}%概率令对手在{1}回合内每回合受到{2}点固定伤害",
77: "{0}回合内若使用技能则恢复{1}点体力值",
79: "损失1/2的体力提升自身的能力",
80: "损失1/2的体力给予对手同等的伤害",
81: "下{0}回合自身攻击技能必定命中",
82: "目标为雄性伤害为200%目标为雌性伤害为50%",
83: " 自身雄性,下两回合必定先手;自身雌性,下两回合必定致命一击",
85: "使对手的能力提升效果转化到自己身上",
87: "恢复自身所有PP值",
88: "{0}%概率伤害为{1}倍",
89: "{0}回合内每次造成伤害的1/{1}会恢复自己的HP",
90: "{0}回合内自身造成的伤害为{1}倍 ",
91: "{0}回合内对手的状态变化会同时作用在自己身上",
93: "{0}%概率额外附加{1}点固定伤害",
95: "对手处于睡眠状态时,致命一击率提升{0}%",
98: "{0}回合内对雄性精灵的伤害为{1}倍",
100: "自身体力越少则威力越大",
101: "给对手造成伤害时,伤害数值的{0}%恢复自身体力",
105: "给予对象损伤的1/{0}会回复自己的HP",
107: "若本次攻击造成的伤害小于{0},则自身{1}提升1个等级",
110: "{0}回合内每次躲避攻击都有{1}%概率使自身{2}提升1个等级",
111: "附加额外伤害,自身等级越高,附加的伤害越高",
112: "牺牲全部体力给对手造成250~300点伤害造成致命伤害时对手剩下1点体力",
113: "个体越高,威力越大",
115: "{0}%概率附加速度的1/{1}伤害",
116: "3回合内如果先出手伤害的20%恢复体力",
117: "5回合内如果先出手50%概率对手害怕1到3回合",
119: "若伤害为奇数30%对手疲惫1回合若为偶数30%速度+1",
120: "50%概率对方减血1/{0}50%概率自己减血1/{0}",
121: "属性相同时,{0}%概率让对方麻痹",
122: "先出手时,{1}%改变对方{0}等级{2}",
123: "{0}回合内受到任何伤害,自身{1}提高{2}个等级",
124: "命中后,{0}%概率随机对方一个属性{1}个等级",
125: "{0}回合内每回合被攻击所受到的伤害不超过{1}",
126: "{0}回合内每回合自身攻击和速度提高{1}个等级",
127: "{0}%的概率,{1}回合内受到的伤害减半",
128: "{0}回合内将受到的攻击伤害转化为自身体力",
129: "对方为{0}则技能威力翻倍",
130: "对方为{0}则附加{1}点伤害",
131: "对方为{0}则免疫当前回合伤害",
134: "若造成的伤害低于{0}则所有技能的PP值恢复{1}点",
135: "造成的伤害不会低于{0}",
136: "若Miss则自己恢复1/{0}体力",
137: "损失一半当前体力值自身攻击和速度提升2个等级",
138: "先出手时,{0}回合自己不会受到对手攻击性技能伤害并反弹对手造成伤害的1/{1}",
140: "随机降低对手1/{0}至1/{1}的当前体力值",
142: "损失1/{0}的体力值,下回合能较快出手",
143: "使对手的能力提升效果反转成能力下降效果",
144: "消耗自己所有体力,使下一个出战的精灵{0}回合免疫异常状态",
145: "攻击中毒的对手时自身回复1/{0}最大体力值",
146: "{0}回合内受到物理攻击时有{1}%概率使对方中毒",
147: "后出手时,{0}%概率使对方{1}",
148: "后出手时,{1}%改变对方{0}等级{2}",
149: "命中后,{0}%令对方{1}{2}%令对方{3}",
150: "{0}回合内对手每回合防御和特防等级{1}",
151: "对手烧伤时,{0}%对方疲惫1回合对手未烧伤时{1}%对方疲惫1回合",
152: "{0}回合内若对方使用属性技能,则{1}%使对方{2}",
153: "{0}回合内每回合对对方造成伤害的1/{1}恢复自身体力",
154: "若对手{0}则对对方造成伤害的1/{1}恢复自身体力",
155: "恢复全部体力,消除所有能力下降,使自己进入睡眠{0}回合",
156: "{0}回合内使得对手所有能力增强效果失效",
157: "{0}回合内若受到攻击,对手防御等级-1、特防等级-1、命中等级-1",
159: "自身体力小于最大值的1/{0}时,{1}%概率令对方{2}",
160: "{0}回合内若对手MISS则下回合自身必定致命一击",
161: "{0}%降低自身当前体力值的1/{1}",
163: "{0}回合内若对手使用属性技能则对手随机进入烧伤、冻伤、中毒、麻痹、害怕、睡眠中的一种异常状态",
164: "{0}回合内若受到攻击则有{1}%概率令对手{2}",
165: "{0}回合内每回合防御和特防等级+{1}",
166: "{0}回合内若对手使用属性攻击则{2}%对手{1}等级{3}",
169: "{0}回合内每回合额外附加{1}%概率令对手{2}",
170: "若先出手则免疫当回合伤害并回复1/{0}的最大体力值",
171: "{0}回合内自身使用属性技能时能较快出手",
172: "若后出手则给予对方损伤的1/{0}会回复自己的体力",
173: "先出手时,{0}%概率令对方{1}",
174: "",
175: "若对手处于异常状态,则{1}%自身{0}等级{2}",
176: "{0}%概率令对手随机进入烧伤、冻伤、中毒、麻痹、害怕、睡眠中的一种异常状态",
177: "{0}回合内若对手MISS则自身恢复1/{1}的最大体力值",
178: "造成伤害的1/{0}回复自身体力若属性相同则造成伤害的1/{1}回复自身体力",
179: "若属性相同则技能威力提升{0}",
180: "消除对手回合类效果",
181: "{0}%概率令对手{1},连续攻击每次提高{2}%概率,最多提高{3}%",
182: "若对手处于{0}状态,{2}%自身{1}等级+{3}",
183: "{0}回合内免疫并反弹{1}伤害",
184: "若对手处于能力提升状态,则{1}%自身{0}等级+{2}",
186: "后出手时,{1}%使自身{0}提升{2}个等级",
187: "{0}回合内若对手使用属性技能则自身恢复1/{1}最大体力值",
188: "若对手处于异常状态,则威力翻倍并消除对手相应的防御能力提升效果",
189: "{0}回合内若受到攻击,对手攻击等级-1、特攻等级-1",
190: "{0}回合内若受到攻击,消除对手能力提升状态",
191: "{0}回合内免疫并反弹所有受到的异常状态",
192: "附加{0}%当前体力值的伤害",
193: "若对手{0},则必定造成双倍伤害",
194: "造成伤害的1/{0}回复自身体力,若对手{1}则造成伤害的1/{2}回复自身体力",
195: "无视对手双防能力提升状态",
196: "{1}%令对方{0}等级{2};若先出手,则{4}%使对方{3}等级{5}",
197: "{0}回合内若被对方击败,则对手所有能力加强状态消失",
198: "随机使对手{0}种能力等级-{1}",
199: "下次被击败后,下一个出场的精灵{0}等级+{1}",
200: "若对手处于能力提升状态,{0}%概率令对手{1}",
201: "对选中对象或本方全体恢复1/{1}的体力",
402: "后出手时,额外附加{0}点固定伤害",
403: "技能使用成功时,{0}%令自身特攻和速度等级+{1}。若和对手属性相同,则技能效果翻倍",
404: "恢复双方所有体力",
405: "先出手时,额外附加{0}点固定伤害",
406: "{0}回合内受到攻击{1}%概率回复{2}点体力",
407: "下回合起,每回合{0}等级+{1},持续{2}回合",
408: "{0}回合内每回合所受的伤害减少{1}",
409: "{0}回合内对手每回合速度和命中等级{1}",
410: "{0}%回复自身1/{1}体力值",
411: "附加对手当前体力值{0}%的百分比伤害,连续使用每次增加{1}%,最高{2}%",
412: "若自身体力小于1/{0}则每次攻击不消耗PP值",
413: "若对手处于能力提升状态则附加{0}点固定伤害",
414: "对手{0}等级{1},若对手处于{2}状态,则弱化效果翻倍",
415: "若造成的伤害大于{0}点,则自身恢复{1}点生命值",
416: "{0}回合内受到任何伤害,对手{1}降低{2}个等级",
417: "{0}回合内自身攻击技能造成伤害的{1}%会恢复自身体力",
418: "若对手处于能力提升状态则对方{0}等级{1}",
419: "{0}回合内若对手处于能力提升状态,则每回合都会受到{1}点固定伤害",
420: "使用了该技能后,若受到消除强化类技能攻击,则对方攻击和特攻等级{0}",
422: "附加所造成伤害值{0}%的固定伤害",
423: "直接造成等同于对手防御值的固定伤害",
424: "{0}回合内对手每回合速度等级{1}",
425: "随机吸取对手{0}项属性{1},并将该属性附加给自己",
426: "{0}回合内每回合{1}%闪避对手攻击",
427: "{0}回合内每次直接攻击都会使对手防御和特防{1}",
428: "遇到天敌时附加{0}点固定伤害",
429: "附加{0}点固定伤害,连续使用每次增加{1}点固定伤害,最高附加{2}点固定伤害",
430: "消除对手能力提升状态,若消除状态成功,则自身{0}等级+{1}",
432: "{0}回合内对手所有攻击必定MISS必中技能有效",
433: "{0}回合内每回合{1}",
434: "若自身处于能力提升状态则{0}%概率令对手{1}",
435: "牺牲自己,使下回合出场的精灵首次攻击必定命中,必定先手",
436: "附加已损失体力值{0}%的百分比伤害",
437: "若对手处于能力提升状态,则对手{0}等级{1}",
438: "{0}%的概率恢复自身体力的1/{1}",
439: "{0}回合内若自身处于能力下降或异常状态,则对手每回合受到{1}点固定伤害",
440: "{0}回合内对手使用技能消耗的PP值变为{1}倍",
441: "每次攻击提升{0}%的致命概率,最高提升{1}%",
442: "{0}%另对手{1},每次造成的伤害值都将恢复自身体力",
443: "{0}回合内若受到的伤害超过{1}则对手疲惫{2}回合",
444: "降低对手所有PP一点并恢复自身所有PP一点",
445: "使用后在战斗结束时可以获得500赛尔豆每日上限5000",
446: "随机自身3项属性+1",
447: "造成的伤害不少于{0}",
448: "{0}回合内每回合对手{1}",
449: "若对手处于能力下降状态则{0}%概率{1}",
450: "随机恢复{0}到{1}点生命值",
451: "命中后{0}%随机令对手进入烧伤,冻伤,中毒中的{1}种",
452: "{0}合内自身所有攻击造成的伤害都将为自己恢复体力",
453: "消除对手能力提升状态,若消除成功,则对手{0}",
454: "当自身血量少于1/{0}时先制+{1}",
455: "每损失{0}点体力则额外附加{1}点固定伤害",
456: "若对手体力不足{0}则直接秒杀",
457: "复制对手释放的技能(组队对战时无效)",
458: "若先出手则造成攻击伤害的{0}%恢复自身体力",
459: "附加对手防御值{0}%的百分比伤害",
460: "{0}%概率令对手害怕,若对手处于能力提升状态则额外附加{1}%概率",
461: "若自身生命值低于1/{0}则从下回合开始必定致命一击",
462: "{0}回合内受攻击时反弹{1}点固定伤害",
463: "{0}回合内每回合所受的伤害减少{1}点",
464: "遇到天敌时{0}%令对手烧伤",
465: "{0}%令对手疲惫{1}回合,每次使用概率提升{2}%,最高{3}%",
466: "恢复{0}点体力",
467: "若对手处于{0}状态则附加{1}点固定伤害 ",
468: "回合开始时,若自身处于能力下降状态,则威力翻倍,同时解除能力下降状态",
469: "{0}回合内若对手使用属性技能则{1}%概率令对手{2}",
470: "{0}回合内若自身攻击技能命中则{1}%令对手{2}",
471: "先出手时{0}回合内免疫异常状态",
472: "若对手处于{0}状态则每次攻击造成的伤害都将恢复自身体力",
473: "若造成的伤害不足{0},则自身{1}等级+{2}",
474: "先出手时{1}%自身{0}等级+{2}",
475: "若造成的伤害不足{0},则下{1}回合的攻击必定致命一击 ",
476: "后出手时恢复{0}点体力",
477: "{0}回合内若受到攻击,则对手{1}",
478: "{0}回合内令对手使用的属性技能无效",
479: "损失自身{0}点体力,给对手造成{1}点固定伤害,若自身体力不足{2}则剩下{3}点体力",
481: "下{0}回合自身攻击先制+{1}",
482: "{0}%概率先制+{1}",
483: "对手{0},后出手时弱化效果翻倍",
484: "连击{0}次,每次命中后连击数+{1},最高连击{2}次 ",
485: "消除对手能力提升状态,消除成功则恢复自身所有体力",
486: "下{0}回合若自身选择使用技能则无视对手能力提升状态",
487: "若对手的体力大于{0},则每次使用自身攻击+{1}",
488: "若对手的HP小于{0},则造成的伤害增加{1}%",
489: "若自身处于能力提升状态则每次攻击恢复自身体力的1/{0}",
490: "造成的伤害大于{0},则对自身{1}+{2}",
491: "{0}回合内对手造成的伤害降低{1}%",
492: "{0}回合内对方使用属性技能则自身立刻恢复1/{1}生命值且{2}+{3}{4}+{5}",
493: "{0}回合内若对方使用攻击技能则自身下{1}回合必定暴击 ",
494: "无视对手能力提升状态",
495: "若对手处于{0}状态,则{1}%概率秒杀对手",
496: "若打出致命一击则恢复自身所有体力",
497: "附加{0}点固定伤害,每次使用额外附加{1}点,最高{2}点,遇到天敌时效果翻倍",
498: "{0}回合内致命一击概率上升1/{1}",
499: "后出手时下回合所有技能先制+{0}",
500: "若对手处于害怕状态则伤害翻倍",
501: "若造成的伤害不足{0},则对手{1}等级-{2}",
502: "{0}回合内所有直接攻击都将降低对手1/{1}的HP",
503: "若造成的伤害不足{0},则回合结束时对手损失{1}点固定体力",
504: "{0}%令对手害怕,若没有触发害怕效果,则对手{1}",
505: "若打出致命一击,则造成伤害值的{0}%恢复自身体力 ",
506: "下回合受到致命伤害时残留{0}点体力 ",
507: "下回合若受到的伤害大于{0},则恢复自身所有体力 ",
508: "减少{0}点下回合所受的伤害 ",
509: "恢复自身已损失体力值的1/{0}",
510: "当对手处于防御能力提升时,恢复{0}点体力值 ",
511: "{0}%概率威力翻倍 体力低于1/{1}时概率增加{2}%",
512: "自身{0},40%概率强化翻倍",
513: "处在烧伤、中毒、冻伤状态时威力翻倍,命中后解除这些异常状态 ",
514: "附加对手已损失生命值{0}%的百分比伤害 ",
515: "自身处于能力下降状态时附加{0}点固定伤害,并解除这些能力下降状态",
516: "{0},体力值低于1/{6}时强化效果翻倍",
517: "{0}%概率使对手害怕,每损失{1}%体力,害怕概率提升{2}%",
518: "若伤害高于{0},则自身{1}+{2}",
519: "{0}回合内自身每处于一种能力提升或下降状态时都会回复{1}点体力",
520: "有{0}%的概率使自己害怕",
521: "反转自身能力下降状态",
522: "{0}回合内若自身处于异常状态则受到伤害减少{1}点",
523: "攻击结束时自身{0}",
524: "{0}回合内若被对手击败则对手疲惫{1}回合 ",
525: "{0}回合内有{1}%概率免疫对手的攻击伤害",
526: "{0}回合内若对手成功使用属性技能则受到{1}点固定伤害",
527: "使用技能时体力低于1/{0},则{1}回合内免疫异常状态",
528: "先出手时{0}回合内不受能力下降技能影响",
529: "使自身体力百分比与对手体力百分比对调",
530: "使用时若自身体力低于1/{0}则恢复所有体力值",
531: "造成的伤害低于280时每相差2点有1%的概率使对手害怕",
532: "{0}回合内每回合使用技能恢复自身最大体力的1/{1}并造成等量百分比伤害",
533: "消除双方能力提升、下降状态",
534: "附加防御、特防总和10%的百分比伤害",
535: "{0}回合内若受到攻击则自身防御+1 特防+1",
536: "若当次攻击击败对手恢复对手体力上限1/{0}的体力 ",
537: "自身攻击{0},若对手处于能力提升状态则强化效果翻倍",
538: "消除对手能力提升状态,若消除成功则自身{0}",
539: "对手处于能力提升状态时先制额外+1且威力翻倍",
540: "若后出手则下{0}回合攻击必定致命一击",
541: "造成的攻击伤害若低于{0}则恢复自身{1}点体力",
542: "对手每处于一种能力下降状态时附加{0}点固定伤害",
544: "解除自身的烧伤、冻伤、中毒状态",
545: "{0}回合内若受到伤害高于{1}则对手{2}",
546: "若对手处于{0}状态则对手{1}",
547: "使敌我双方同时{0}{1}回合",
548: "消除对手能力提升状态,消除成功后恢复{0}点体力",
549: "使对手随机进入烧伤、冻伤、中毒、害怕、疲惫、麻痹其中{0}种异常状态",
550: "若自身处于异常状态则恢复所有体力",
551: "使对手下回合受到其他技能的伤害翻倍 ",
552: "若对手处于异常状态,则{0}%概率附加{1}点伤害",
553: "若打出致命一击则对手{0}%概率{1}",
555: "若打出致命一击则自身{0}回合内免疫异常状态",
556: "命中后使自身体力降为1",
557: "{0}回合内对手使用正先制的技能时{1}%令对手{2}",
558: "若自身不处于能力提升或下降状态时则恢复{0}点体力",
559: "{0}回合内若对手使用攻击技能则随机进入烧伤、冻伤、中毒、麻痹、害怕、睡眠中的一种异常状态",
560: "下回合其他攻击技能附加{0}点固定伤害",
561: "先出手时当回合对手使用技能后若自身体力为0则令自身体力等于最大体力",
562: "自身{0},对手{6}时强化效果翻倍",
563: "命中后{0}回合内若对手受到特攻伤害则100%烧伤",
564: "命中后{0}回合内若对手受到攻击伤害则100%烧伤",
565: "先出手时恢复1/{0}体力",
566: "攻击时忽略对手{0}%的防御值",
567: "对手为自身天敌时造成的伤害翻倍",
568: "解除自身能力下降状态,若解除成功则{0}回合内躲避所有攻击 ",
570: "免疫下{0}次受到的攻击",
571: "{0}回合后对对手造成{1}点固定伤害 重复使用无法叠加",
572: "攻击对手时若对手处于{0}状态,则{1}%使对手{2}",
574: "消耗自身全部体力,令己方下次使用的技能必定先手、必定命中,下次命中的攻击技能必定打出致命一击",
575: "对手处于任意异常状态时造成的伤害将全额恢复体力",
576: "{0}回合内免疫低于{1}的攻击伤害",
577: "自身处于能力提升状态时,使对手{0}能力{1}",
578: "{0}回合内对手所有属性技能命中率减少{1}%",
579: "若当回合未击败对手则恢复自身最大体力的1/{0}",
580: "{0}回合内自身受到直接攻击伤害的{1}%反馈给对手",
588: "先出手时,{0}%概率使自己{1}+{2}",
400: "若和对手属性相同,则技能威力翻倍",
480: "{0}回合内自身所有攻击威力为两倍",
586: "{0}回合内自己的属性攻击必中",
599: "{0}回合内受到{1}伤害减少{2}%",
610: "遇到天敌时先制+{0}",
611: "下{0}回合自身使用攻击技能则附加{1}点固定伤害",
613: "{0}回合内自身令对手使用的{1}系攻击技能无效",
609: "若对手{0},技能威力翻倍",
620: "{0}回合内致命一击率上升{1}/16",
626: "随机使自己{0}项能力+{1}",
680: "先出手时{0}%使对手{1}{2}回合",
681: "下{0}回合自身攻击技能必定致命、必定命中",
682: "受到的伤害超过{0},自身{1}",
683: "随机附加{0}~{1}点固定伤害",
684: "双方任意一方处于能力下降状态均会附加{0}点固定伤害,同时解除自身能力下降状态",
685: "若自身处于能力提升状态,附加{0}点固定伤害",
686: "若对手{0}则使对手下{1}回合攻击必定MISS",
687: "若对手{0},则对对方造成伤害的{1}%恢复自身体力",
688: "{0}回合内抵挡受到的攻击",
689: "若造成的伤害高于{0}则恢复自身1/{1}最大体力",
690: "下{0}回合,能力提升状态消失则对手使用属性技能失效",
776: "下{0}回合自身造成的攻击伤害翻倍",
1044: "吸取对手能力提升状态,吸取成功则下{0}回合造成的伤害翻倍",
1146: "双方每处于{0}种能力提升状态则附加{1}点固定伤害",
1605: "{0}%令对手{1}",
}
func EffectInfo(id int) string {
return effectInfoByID[id]
}
func EffectInfoOrDefault(id int) string {
if info, ok := effectInfoByID[id]; ok && info != "" {
return info
}
return "未配置效果说明"
}