Documentation
¶
Index ¶
- Constants
- func EvaluateCombat(formulaJSON string, attacker *Resolver, attackerCtx *Context, ...) (float64, error)
- func EvaluateCombatEx(formulaJSON string, attacker *Resolver, attackerCtx *Context, ...) (value float64, isHit bool, isCrit bool, err error)
- func LoadLibrary(libPath string) error
- type Context
- type Resolver
- func (r *Resolver) Free()
- func (r *Resolver) Invalidate(statID string)
- func (r *Resolver) InvalidateAll()
- func (r *Resolver) RegisterAdditiveTransform(statID string, phase byte, rule byte, value float64)
- func (r *Resolver) RegisterClampTransform(statID string, phase byte, rule byte, hasMin bool, minVal float64, hasMax bool, ...)
- func (r *Resolver) RegisterConditionalAdditiveTransform(statID string, phase byte, rule byte, condition func(ctx *Context) bool, ...)
- func (r *Resolver) RegisterConditionalMultiplicativeTransform(statID string, phase byte, rule byte, condition func(ctx *Context) bool, ...)
- func (r *Resolver) RegisterConstantSource(statID string, value float64)
- func (r *Resolver) RegisterMapSource(source map[string]float64)
- func (r *Resolver) RegisterMultiplicativeTransform(statID string, phase byte, rule byte, value float64)
- func (r *Resolver) RegisterScalingTransform(statID string, phase byte, rule byte, dependency string, scaleFactor float64)
- func (r *Resolver) Resolve(statID string, ctx *Context) (float64, error)
Constants ¶
View Source
const ( PhaseAdditive = 0 PhaseMultiplicative = 1 PhaseFinal = 2 )
Phases and rules mapping
View Source
const ( RuleOverride = 0 RuleAdditive = 1 RuleMultiplicative = 2 RuleMin = 3 RuleMax = 4 RuleMinMax = 5 )
Variables ¶
This section is empty.
Functions ¶
func EvaluateCombat ¶
func EvaluateCombatEx ¶
func EvaluateCombatEx(formulaJSON string, attacker *Resolver, attackerCtx *Context, defender *Resolver, defenderCtx *Context, rng func() float64) (value float64, isHit bool, isCrit bool, err error)
EvaluateCombatEx evaluates a combat formula and also returns the "hit" and "crit" flags set by Flag nodes in the formula. rng supplies the random draws (0..1) the formula consumes, in evaluation order.
func LoadLibrary ¶
LoadLibrary allows manually specifying the library path.
Types ¶
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context wrapper
func NewContext ¶
func NewContext() *Context
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver wrapper
func NewResolver ¶
func NewResolver() *Resolver
func (*Resolver) Invalidate ¶
func (*Resolver) InvalidateAll ¶
func (r *Resolver) InvalidateAll()
func (*Resolver) RegisterAdditiveTransform ¶
func (*Resolver) RegisterClampTransform ¶
func (*Resolver) RegisterConditionalAdditiveTransform ¶
func (*Resolver) RegisterConditionalMultiplicativeTransform ¶
func (*Resolver) RegisterConstantSource ¶
func (*Resolver) RegisterMapSource ¶
func (*Resolver) RegisterMultiplicativeTransform ¶
func (*Resolver) RegisterScalingTransform ¶
Click to show internal directories.
Click to hide internal directories.