1
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed

This commit is contained in:
昔念
2026-04-17 00:35:17 +08:00
parent 3d77e146e9
commit 0c79fee8af
2 changed files with 74 additions and 26 deletions

View File

@@ -140,7 +140,7 @@ func (e *Effect1181) OnSkill() bool {
type Effect1182 struct{ node.EffectNode } type Effect1182 struct{ node.EffectNode }
func (e *Effect1182) Skill_Use() bool { func (e *Effect1182) Skill_Use() bool {
if len(e.Args()) < 2 || e.Ctx().Our == nil || e.Ctx().Our.CurPet[0] == nil || e.Ctx().Opp == nil || e.Ctx().Opp.CurPet[0] == nil { if len(e.Args()) < 2 || e.Ctx().Our == nil || e.Ctx().Our.CurPet[0] == nil {
return true return true
} }
@@ -153,9 +153,15 @@ func (e *Effect1182) Skill_Use() bool {
if targetHP.Cmp(alpacadecimal.Zero) < 0 { if targetHP.Cmp(alpacadecimal.Zero) < 0 {
targetHP = alpacadecimal.Zero targetHP = alpacadecimal.Zero
} }
if e.Ctx().Opp.CurPet[0].GetHP().Cmp(targetHP) > 0 { forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
e.Ctx().Opp.CurPet[0].Info.Hp = uint32(targetHP.IntPart()) if target == nil || target.CurrentPet() == nil {
return true
} }
if target.CurrentPet().GetHP().Cmp(targetHP) > 0 {
target.CurrentPet().Info.Hp = uint32(targetHP.IntPart())
}
return true
})
sub := e.Ctx().Our.InitEffect(input.EffectType.Sub, 1182, int(e.Args()[1].IntPart())) sub := e.Ctx().Our.InitEffect(input.EffectType.Sub, 1182, int(e.Args()[1].IntPart()))
if sub != nil { if sub != nil {

View File

@@ -207,11 +207,17 @@ func registerSelfDamageOnSkillEffects() {
}) })
} }
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
if target == nil || target.CurrentPet() == nil {
return true
}
target.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: opponentDamage, Damage: opponentDamage,
}) })
return true return true
})
return true
}, },
556: func(e *onSkillRegistrarEffect) bool { 556: func(e *onSkillRegistrarEffect) bool {
currentHP := e.Ctx().Our.CurPet[0].Info.Hp currentHP := e.Ctx().Our.CurPet[0].Info.Hp
@@ -241,11 +247,17 @@ func registerSelfDamageSkillUseEffects() {
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: damage, Damage: damage,
}) })
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
if target == nil || target.CurrentPet() == nil {
return true
}
target.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: damage, Damage: damage,
}) })
return true return true
})
return true
}, },
112: func(e *skillUseRegistrarEffect) bool { 112: func(e *skillUseRegistrarEffect) bool {
e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{
@@ -253,9 +265,23 @@ func registerSelfDamageSkillUseEffects() {
Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurPet[0].Info.MaxHp)), Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurPet[0].Info.MaxHp)),
}) })
damage := int64(grand.N(250, 300)) damage := int64(grand.N(250, 300))
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
if target == nil {
return true
}
targetPet := target.CurrentPet()
if targetPet == nil {
return true
}
remainHP := targetPet.GetHP().Sub(alpacadecimal.NewFromInt(1))
if remainHP.Cmp(alpacadecimal.Zero) <= 0 {
return true
}
target.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: alpacadecimal.Min(alpacadecimal.NewFromInt(damage), e.Ctx().Opp.CurPet[0].GetHP().Sub(alpacadecimal.NewFromInt(1))), Damage: alpacadecimal.Min(alpacadecimal.NewFromInt(damage), remainHP),
})
return true
}) })
return true return true
}, },
@@ -280,28 +306,44 @@ func registerSelfDamageSkillUseEffects() {
randomDamage = grand.N(minDamage, maxDamage) randomDamage = grand.N(minDamage, maxDamage)
} }
remainHP := e.Ctx().Opp.CurPet[0].GetHP().Sub(alpacadecimal.NewFromInt(1)) forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
if target == nil {
return true
}
targetPet := target.CurrentPet()
if targetPet == nil {
return true
}
remainHP := targetPet.GetHP().Sub(alpacadecimal.NewFromInt(1))
if remainHP.Cmp(alpacadecimal.Zero) <= 0 { if remainHP.Cmp(alpacadecimal.Zero) <= 0 {
return true return true
} }
damage := alpacadecimal.Min(alpacadecimal.NewFromInt(int64(randomDamage)), remainHP) damage := alpacadecimal.Min(alpacadecimal.NewFromInt(int64(randomDamage)), remainHP)
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ target.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: damage, Damage: damage,
}) })
return true return true
})
return true
}, },
1380: func(e *skillUseRegistrarEffect) bool { 1380: func(e *skillUseRegistrarEffect) bool {
if len(e.Args()) < 3 { if len(e.Args()) < 3 {
return true return true
} }
applyAllPropDown(e.Ctx().Our, e.Ctx().Opp, int8(e.Args()[0].IntPart())) forEachEnemyTargetBySkill(e.Ctx().Our, e.Ctx().Opp, e.Ctx().SkillEntity, func(target *input.Input) bool {
if target == nil || target.CurrentPet() == nil {
return true
}
applyAllPropDown(e.Ctx().Our, target, int8(e.Args()[0].IntPart()))
sub := e.Ctx().Our.InitEffect(input.EffectType.Sub, 1380, int(e.Args()[1].IntPart()), int(e.Args()[2].IntPart())) sub := e.Ctx().Our.InitEffect(input.EffectType.Sub, 1380, int(e.Args()[1].IntPart()), int(e.Args()[2].IntPart()))
if sub != nil { if sub != nil {
e.Ctx().Opp.AddEffect(e.Ctx().Our, sub) target.AddEffect(e.Ctx().Our, sub)
} }
return true
})
e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed, Type: info.DamageType.Fixed,
Damage: e.Ctx().Our.CurPet[0].GetHP(), Damage: e.Ctx().Our.CurPet[0].GetHP(),