refactor: 重构战斗系统为统一动作包结构
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
xinian
2026-04-06 00:58:23 +08:00
committed by cnb
parent 141ba67014
commit f433a26a6d
12 changed files with 683 additions and 158 deletions

View File

@@ -6,20 +6,35 @@ import (
)
// 503. g3. 群体攻击技能可额外增加一个目标(最多不超过5个目标)
// TODO: 需要了解如何修改群体攻击技能的目标数量
type NewSel503 struct {
NewSel0
}
// TurnStart 在拥有者本回合准备出手时触发;若本次技能是群体技能,则把目标数额外加 1。
func (e *NewSel503) TurnStart(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) {
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime {
owner := e.SourceInput()
if owner == nil || !e.IsOwner() {
return
}
// TODO: 检查技能是否是群体攻击技能
// 如果是群体攻击增加一个目标最多不超过5个
// 需要了解技能的目标数量限制机制
for _, act := range []*action.SelectSkillAction{fattack, sattack} {
if act == nil || act.SkillEntity == nil || act.SkillEntity.Pet == nil {
continue
}
if act.SkillEntity.Pet.Info.CatchTime != e.ID().GetCatchTime() {
continue
}
if act.SkillEntity.XML.AtkType != 0 {
return
}
if act.SkillEntity.XML.AtkNum <= 0 {
act.SkillEntity.XML.AtkNum = 1
}
if act.SkillEntity.XML.AtkNum < 5 {
act.SkillEntity.XML.AtkNum++
}
return
}
}
func init() {