feat(fight): 重构战斗系统技能逻辑与精灵切换功能
- 优化技能执行流程,统一使用 SelectSkillAction 作为技能载体 - 移除冗余的技能 ID 字段,简化数据结构 - 调整命中判断和技能效果触发机制,提升准确性 - 修改精灵切换与捕获相关方法参数格式 - 更新技能列表结构为动态数组以支持灵活长度 - 完善睡眠等异常状态的处理逻辑 - 修复战斗中技能 PP 扣减及副本还原问题 - 清理无用代码,如多余的 FindWithIndex 函数定义 - 强化验证码缓存键命名规则,增强安全性
This commit is contained in:
@@ -19,11 +19,28 @@ type StatusNotSkill struct {
|
||||
}
|
||||
|
||||
// 不能出手
|
||||
func (e *StatusNotSkill) Skill_Hit_Pre(input.Ctx) bool {
|
||||
func (e *StatusNotSkill) Skill_Hit_Pre(ctx input.Ctx) bool {
|
||||
if e.EffectStatus.Status == info.PetStatus.Sleep {
|
||||
|
||||
ctx.AddEffect(&input.EffectID{ //对对方添加出手解除效果
|
||||
ID: -1,
|
||||
Effect: &StatusSleep{},
|
||||
})
|
||||
|
||||
}
|
||||
return false
|
||||
|
||||
}
|
||||
|
||||
type StatusSleep struct { //睡眠不能出手
|
||||
node.EffectNode
|
||||
}
|
||||
|
||||
func (e *StatusSleep) Skill_Useed(input.Ctx) bool {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 扣血类
|
||||
type DrainHP struct {
|
||||
EffectStatus
|
||||
@@ -65,9 +82,9 @@ func init() {
|
||||
}
|
||||
input.InitEffect(input.EffectType.Status, int(info.PetStatus.DrainHP), &EffectStatus{}) //寄生种子
|
||||
|
||||
tt(info.PetStatus.Paralysis, &StatusNotSkill{})
|
||||
tt(info.PetStatus.Tired, &StatusNotSkill{})
|
||||
tt(info.PetStatus.Fear, &StatusNotSkill{})
|
||||
tt(info.PetStatus.Petrified, &StatusNotSkill{})
|
||||
|
||||
tt(info.PetStatus.Paralysis, &StatusNotSkill{}) //麻痹
|
||||
tt(info.PetStatus.Tired, &StatusNotSkill{}) //疲惫
|
||||
tt(info.PetStatus.Fear, &StatusNotSkill{}) //害怕
|
||||
tt(info.PetStatus.Petrified, &StatusNotSkill{}) //石化
|
||||
input.InitEffect(input.EffectType.Status, 8, &StatusSleep{}) //睡眠
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user