package lucifer3 import ( "git.aiterp.net/lucifer3/server/device" "time" ) type Effect interface { // State uses three values: // index: The position of this ID; // len: The total length of the effect's IDs; // round: Increases by one for each run of the effect if Frequency > 0; State(index, len, round int) device.State Frequency() time.Duration EffectDescription() string } type VariableEffect interface { Effect VariableName() string VariableState(index, len int, value float64) device.State }