2026-04-06 02:06:11 +08:00
|
|
|
|
package effect
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"blazing/logic/service/fight/action"
|
2026-04-06 03:47:17 +08:00
|
|
|
|
"blazing/logic/service/fight/info"
|
2026-04-06 02:06:11 +08:00
|
|
|
|
"blazing/logic/service/fight/input"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// 247. 固定增加体力/攻击/防御/特攻/特防/速度;(a1-a6: hp/atk/def/spatk/spdef/spd)
|
|
|
|
|
|
type NewSel247 struct {
|
|
|
|
|
|
NewSel0
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (e *NewSel247) TurnStart(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) {
|
|
|
|
|
|
if !e.IsOwner() {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pet := e.Ctx().Our.CurPet[0]
|
|
|
|
|
|
if pet == nil {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
hpBonus := uint32(e.Args()[0].IntPart())
|
|
|
|
|
|
if hpBonus > 0 {
|
|
|
|
|
|
pet.Info.MaxHp += hpBonus
|
|
|
|
|
|
pet.Info.Hp += hpBonus
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for i, propIdx := range []int{0, 1, 2, 3, 4} {
|
|
|
|
|
|
add := uint32(e.Args()[i+1].IntPart())
|
|
|
|
|
|
if add == 0 {
|
|
|
|
|
|
continue
|
|
|
|
|
|
}
|
|
|
|
|
|
pet.Info.Prop[propIdx] += add
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (e *NewSel247) TurnEnd() {
|
|
|
|
|
|
if !e.IsOwner() {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pet := e.Ctx().Our.CurPet[0]
|
|
|
|
|
|
if pet == nil {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
hpBonus := uint32(e.Args()[0].IntPart())
|
|
|
|
|
|
if hpBonus > 0 {
|
|
|
|
|
|
if pet.Info.MaxHp > hpBonus {
|
|
|
|
|
|
pet.Info.MaxHp -= hpBonus
|
|
|
|
|
|
} else {
|
|
|
|
|
|
pet.Info.MaxHp = 1
|
|
|
|
|
|
}
|
|
|
|
|
|
if pet.Info.Hp > pet.Info.MaxHp {
|
|
|
|
|
|
pet.Info.Hp = pet.Info.MaxHp
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for i, propIdx := range []int{0, 1, 2, 3, 4} {
|
|
|
|
|
|
sub := uint32(e.Args()[i+1].IntPart())
|
|
|
|
|
|
if sub == 0 {
|
|
|
|
|
|
continue
|
|
|
|
|
|
}
|
|
|
|
|
|
if pet.Info.Prop[propIdx] > sub {
|
|
|
|
|
|
pet.Info.Prop[propIdx] -= sub
|
|
|
|
|
|
} else {
|
|
|
|
|
|
pet.Info.Prop[propIdx] = 1
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-06 03:47:17 +08:00
|
|
|
|
type NewSel239 struct {
|
|
|
|
|
|
NewSel0
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (e *NewSel239) ActionStart(a, b *action.SelectSkillAction) bool {
|
|
|
|
|
|
if !e.IsOwner() {
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
if e.Ctx().SkillEntity == nil {
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
if e.Ctx().SkillEntity.Category() == info.Category.STATUS {
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
if len(e.Args()) == 0 {
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
e.Ctx().SkillEntity.XML.Power += int(e.Args()[0].IntPart())
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-06 02:06:11 +08:00
|
|
|
|
func init() {
|
2026-04-06 03:47:17 +08:00
|
|
|
|
input.InitEffect(input.EffectType.NewSel, 239, &NewSel239{})
|
2026-04-06 02:06:11 +08:00
|
|
|
|
input.InitEffect(input.EffectType.NewSel, 247, &NewSel247{})
|
|
|
|
|
|
}
|