feat: 实现大量技能效果及战斗逻辑修复
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
This commit is contained in:
@@ -321,3 +321,130 @@ JSON 中存在但代码未注册(示例前 60 项):
|
||||
### 10.4 本轮同步更新
|
||||
- `logic/service/fight/effect/effect_info_map.go`
|
||||
- `docs/effect-unimplemented-tasks/task-009-effects-642-646.md` 已完成,可从任务目录移除
|
||||
|
||||
---
|
||||
|
||||
## 11. 2026-03-29 增量记录(四)
|
||||
|
||||
### 11.1 本轮补齐的 effect
|
||||
- `769` 若对手不处于异常状态则造成的攻击伤害额外提升`{0}%`
|
||||
- `770` 若对手处于异常状态,则恢复自身全部体力
|
||||
- `771` `{0}`回合内每次使用攻击技能都有`{1}%`概率使对手进入任意一种异常状态
|
||||
- `772` `{0}`回合内若对手使用攻击技能则有`{1}%`概率随机进入烧伤、冻伤、中毒、麻痹、害怕、睡眠中的一种异常状态
|
||||
- `773` 若自身体力低于对手则与对手互换体力
|
||||
|
||||
### 11.2 实现口径
|
||||
- `769` 复用 `1103` 的条件增伤写法,在 `SkillHit()` 中仅对攻击技能生效,并在对手不存在任意异常状态时追加威力百分比。
|
||||
- `770` 按技能结算后触发处理,落在 `Skill_Use()`,满足“对手处于异常状态”时直接回复自身满体力。
|
||||
- `771` 作为回合类自身增益实现,持续期间在 `OnSkill()` 针对每次攻击技能按概率给对手附加一项随机异常状态。
|
||||
- `772` 参照 `559` 的 defender 侧监听时机,落在 `Skill_Use_ex()`;对手使用攻击技能时按概率附加六选一异常状态。
|
||||
- `773` 复用 `529` 的直接改写当前体力思路,在满足“自身体力低于对手”时交换双方当前体力,并分别按各自最大体力上限截断。
|
||||
|
||||
### 11.3 本轮新增文件
|
||||
- `logic/service/fight/effect/769_773.go`
|
||||
|
||||
### 11.4 本轮同步更新
|
||||
- `logic/service/fight/effect/effect_info_map.go`
|
||||
- `docs/effect-unimplemented-tasks/task-032-effects-769-773.md` 已完成,可从任务目录移除
|
||||
|
||||
---
|
||||
|
||||
## 12. 2026-03-29 增量记录(五)
|
||||
|
||||
### 12.1 本轮补齐的 effect
|
||||
- `1498` 随机附加烧伤、冻伤、失明、失神中的 `{0}` 种异常状态,未触发则自身下 `{1}` 回合造成的伤害提升 `{2}%`
|
||||
- `1499` 体力低于最大体力的 `1/3` 时先制 `+3`
|
||||
- `1500` 1 回合做 `{0}-{1}` 次攻击,自身处于护盾状态下连击上限为 `{2}`
|
||||
- `1501` 命中后为对手种下一颗黑暗之种
|
||||
- `1502` 对手身上存在黑暗之种时先制 `+1`
|
||||
|
||||
### 12.2 实现口径
|
||||
- `1498` 复用 `1111` 的“未触发则挂自身增伤子效果”模式;随机状态池按任务文案落为烧伤、冻伤、失明、失神,若本次一个状态都未成功挂上,则给自身添加持续 `{1}` 回合的增伤子效果。
|
||||
- `1499` 复用现有条件先制写法,在 `ComparePre()` 中按当前体力是否低于最大体力 `1/3` 直接修改当前技能优先级。
|
||||
- `1500` 参照仓库现有多段技能处理口径,不做逐段攻击,而是在 `Damage_Mul()` 中按随机连击次数折算红伤倍率;若自身当前存在护盾,则用 `{2}` 约束连击上限。
|
||||
- `1501` 作为挂在 defender 身上的持久子效果实现:命中后附加“黑暗之种”,前 4 次 `TurnEnd()` 随机扣 1 个技能 PP,成熟后每回合所有技能 PP `-1`;下场后清除。
|
||||
- `1502` 在 `ComparePre()` 中检查对手是否持有 `1501` 的子效果,存在时当前技能先制 `+1`。
|
||||
|
||||
### 12.3 模型假设
|
||||
- 仓库当前未注册“失神”状态,本轮按状态 ID `29` 追加了一个最小可用实现,行为复用 `StatusCannotAct`。
|
||||
- `1500` 仍受当前战斗模型限制,只能按总连击数折算伤害,不能表现逐段命中、逐段触发的细粒度行为。
|
||||
|
||||
### 12.4 本轮新增文件
|
||||
- `logic/service/fight/effect/1498_1502.go`
|
||||
|
||||
### 12.5 本轮同步更新
|
||||
- `logic/service/fight/effect/effect_info_map.go`
|
||||
- `docs/effect-unimplemented-tasks/README.md`
|
||||
- `docs/effect-unimplemented-tasks/task-177-effects-1498-1502.md` 已完成,可从任务目录移除
|
||||
|
||||
### 12.6 本轮验证
|
||||
- `cd /workspace/logic && go test ./service/fight/effect`
|
||||
- `cd /workspace/logic && go build ./...`
|
||||
|
||||
---
|
||||
|
||||
## 13. 2026-03-29 增量记录(六)
|
||||
|
||||
### 13.1 本轮补齐的 effect
|
||||
- `1503` 清除对手身上的黑暗之种,清除成功则令对手随机受到 `1-500` 点固定伤害
|
||||
- `1504` `40%` 令对手诅咒,若对手身上存在黑暗之种则概率翻倍
|
||||
- `1505` 黑暗之种成长期时附加 `200` 点固定伤害,黑暗之种长大后固定伤害翻倍
|
||||
- `1506` 若对手不是龙系精灵则恢复自身 `{0}` 点体力
|
||||
- `1507` `{0}` 回合内自身受到攻击则令对手随机进入 `{1}` 种异常状态,未触发则消除对手回合类效果
|
||||
|
||||
### 13.2 实现口径
|
||||
- `1503` 复用本轮新增的黑暗之种清理 helper,在 `Skill_Use()` 中清除对手持有的 `1501` 子效果;仅当成功清除时追加一次 `1-500` 的随机固定伤害。
|
||||
- `1504` 按任务文案直接实现为基础 `40%` 概率,若对手当前仍持有黑暗之种则翻倍到 `80%`;仓库尚无诅咒状态注册,本轮补了一个最小可用的状态壳以承接后续联动。
|
||||
- `1505` 读取 `1501` 子效果当前成长阶段:成长期附加 `200` 固定伤害,成熟后附加 `400` 固定伤害;若对手不存在黑暗之种则不触发。
|
||||
- `1506` 使用宠物当前系别组合判断是否包含龙系;仅在对手主属性、副属性均不为龙系时恢复自身体力。
|
||||
- `1507` 复用 `1228` 的 defender 侧监听模式,落在 `Skill_Use_ex()`:对手使用攻击技能命中本体时,随机附加若干异常状态;若整段持续时间内一次都未成功触发,则在最后一回合结束时清除对手回合类效果。
|
||||
|
||||
### 13.3 模型假设
|
||||
- 仓库当前缺少“诅咒”状态实现,本轮按状态 ID `23` 注册了一个最小 `BaseStatus` 版本,只提供状态存在性与常规下场清理,不额外附带持续结算逻辑。
|
||||
- `1505` 的“黑暗之种成长期/长大后”判断直接复用 `1501` 子效果内部阶段计数:前 4 次回合结束视为成长期,第 5 次起视为成熟。
|
||||
|
||||
### 13.4 本轮新增文件
|
||||
- `logic/service/fight/effect/1503_1507.go`
|
||||
|
||||
### 13.5 本轮同步更新
|
||||
- `logic/service/fight/effect/effect_info_map.go`
|
||||
- `docs/effect-unimplemented-tasks/README.md`
|
||||
- `docs/effect-unimplemented-tasks/task-178-effects-1503-1507.md` 已完成,可从任务目录移除
|
||||
|
||||
### 13.6 本轮验证
|
||||
- `cd /workspace/logic && go test ./service/fight/effect`
|
||||
- `cd /workspace/logic && go build ./...`
|
||||
|
||||
---
|
||||
|
||||
## 14. 2026-03-30 增量记录(一)
|
||||
|
||||
### 14.1 本轮补齐的 effect
|
||||
- `1508` 先出手时无视攻击免疫效果
|
||||
- `1509` 令对手全属性-`{0}` 且随机 `{1}` 个技能 PP 值归零,技能无效时消耗自身全部体力并令对手全属性-1,然后对手下 3 次使用技能消耗的 PP 值为 3 倍
|
||||
- `1510` `{0}` 回合内对手主动切换精灵则登场精灵 `{1}%` 随机进入 `{2}` 种异常状态
|
||||
- `1511` 先出手时免疫当回合受到的攻击伤害,若对手为自身天敌则免疫并反弹给对手造成伤害值 `{0}%` 的百分比伤害
|
||||
- `1512` 集结天幕四龙之神力,使自身下 2 回合先制+3且攻击必定命中、必定致命
|
||||
|
||||
### 14.2 实现口径
|
||||
- `1508` 采用仓库现有模型下的局部支持方案:若自身本次先出手且使用攻击技能,则在伤害结算前临时屏蔽若干常见“攻击伤害清零类” immunity effect,并在技能结算结束后恢复。
|
||||
- `1509` 正常命中时直接令对手全属性下降并随机清空若干技能 PP;若本次技能实体存在但 `AttackTime == 0`,则按“技能无效”分支处理:自损全部体力、令对手全属性-1,并给对手挂 3 次 PP 三倍消耗子效果。
|
||||
- `1510` 复用 `1562` 的“主动切换后对登场精灵生效”模式:效果挂在对手侧,仅在对手主动切换下场时置 pending,登场后按概率随机附加若干异常状态。
|
||||
- `1511` 复用 `170/1011` 的免疫伤害写法,落在 `DamageLockEx()`;若自身先出手则直接免疫本回合受到的红伤,若对手同时为自身天敌,则按原伤害值 `{0}%` 追加一次百分比伤害反弹。
|
||||
- `1512` 作为持续 2 回合的自身子效果实现,在 `ComparePre()` 中固定追加先制 `+3`,并在 `ActionStart()` 中对攻击技能同时赋予必中与必定致命。
|
||||
|
||||
### 14.3 模型假设
|
||||
- `1508` 当前没有通用“无视攻击免疫”标记位,本轮仅覆盖仓库内已识别的常见攻击免疫 effect:`170/525/570/850/1011/1511`。对其他未来新增或语义不同的 defender 侧免疫实现,不保证自动生效。
|
||||
- `1509` 的“技能无效时”按仓库现有口径解释为“技能实体存在,但本次结算后 `AttackTime == 0`”,不把被控未出手、无 PP 无法释放这类情况算作技能无效。
|
||||
|
||||
### 14.4 本轮新增文件
|
||||
- `logic/service/fight/effect/1508_1512.go`
|
||||
|
||||
### 14.5 本轮同步更新
|
||||
- `logic/service/fight/effect/effect_info_map.go`
|
||||
- `docs/effect-unimplemented-tasks/README.md`
|
||||
- `docs/effect-unimplemented-tasks/task-179-effects-1508-1512.md` 已完成,可从任务目录移除
|
||||
|
||||
### 14.6 本轮验证
|
||||
- `cd /workspace/logic && go test ./service/fight/effect`
|
||||
- `cd /workspace/logic && go build ./...`
|
||||
|
||||
Reference in New Issue
Block a user