Files

34 lines
943 B
Go
Raw Permalink Normal View History

2026-07-09 08:33:57 +08:00
package effect
import (
"github.com/df-mc/dragonfly/server/world"
"image/color"
)
// InstantHealth is an instant effect that causes the player that it is applied
// to immediately regain some health. The amount of health regained depends on
// the effect level and potency.
var InstantHealth instantHealth
type instantHealth struct{}
// Apply instantly heals the world.Entity passed for a bit of health, depending on the effect level and
// potency.
func (i instantHealth) Apply(e world.Entity, eff Effect) {
base := 2 << eff.Level()
if l, ok := e.(living); ok {
l.Heal(float64(base)*eff.potency, InstantHealingSource{})
}
}
// RGBA ...
func (instantHealth) RGBA() color.RGBA {
return color.RGBA{R: 0xf8, G: 0x24, B: 0x23, A: 0xff}
}
// InstantHealingSource is a healing source used when an entity regains
// health from an effect.instantHealth.
type InstantHealingSource struct{}
func (InstantHealingSource) HealingSource() {}