Files
bl/logic/service/fight/effect/effect_10-16.go

59 lines
1.3 KiB
Go

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
)
type Effect10 struct {
node.EffectNode
Status info.EnumBattleStatus
}
func init() {
//n%令对方麻痹
input.InitEffect(input.EffectType.Skill, 10, &Effect10{
Status: info.BattleStatus.Paralysis,
})
// n%令对方中毒
input.InitEffect(input.EffectType.Skill, 11, &Effect10{
Status: info.BattleStatus.Poisoned,
})
//n%令对方烧伤
input.InitEffect(input.EffectType.Skill, 12, &Effect10{
Status: info.BattleStatus.Burned,
})
//n回合吸取对方最大体力的1/8(草系无效)
//n%令对方冻伤
input.InitEffect(input.EffectType.Skill, 12, &Effect10{
Status: info.BattleStatus.Frozen,
})
//n%令对方害怕
input.InitEffect(input.EffectType.Skill, 12, &Effect10{
Status: info.BattleStatus.Fear,
})
//n%令对手睡眠
input.InitEffect(input.EffectType.Skill, 12, &Effect10{
Status: info.BattleStatus.Sleep,
})
}
func (e *Effect10) OnHit(opp *input.Input, skill *info.SkillEntity) {
if e.Hit() {
t, _, _ := e.Input.Player.Roll(e.EffectNode.SideEffectArgs[0], 100)
if t {
t1 := e.Input.FightC.GetRand().Int31n(3)
eff := input.Geteffect(input.EffectType.Status, int(e.Status))
eff.Effect.Duration(int(t1 + 1))
e.Input.AddEffect(eff)
}
}
}