Documentation
¶
Index ¶
- type ActorCooldown
- type CooldownTimer
- func (ct *CooldownTimer) CanPerformAction(actorId int, actorType combat.SourceTarget) bool
- func (ct *CooldownTimer) ClearActorCooldown(actorId int, actorType combat.SourceTarget)
- func (ct *CooldownTimer) GetNextActionTime(actorId int, actorType combat.SourceTarget) time.Time
- func (ct *CooldownTimer) GetRemainingCooldown(actorId int, actorType combat.SourceTarget) time.Duration
- func (ct *CooldownTimer) RegisterActor(actorId int, actorType combat.SourceTarget)
- func (ct *CooldownTimer) SetActorCallback(actorId int, actorType combat.SourceTarget, duration time.Duration, ...)
- func (ct *CooldownTimer) SetActorCooldown(actorId int, actorType combat.SourceTarget, duration time.Duration)
- func (ct *CooldownTimer) Start() error
- func (ct *CooldownTimer) Stop() error
- type TwitchCalculator
- func (calc *TwitchCalculator) CalculateAttackCount(attacker, defender *characters.Character) int
- func (calc *TwitchCalculator) CalculateCriticalChance(attacker, defender *characters.Character) bool
- func (calc *TwitchCalculator) CalculateDamage(attacker, defender *characters.Character, weapon *items.Item) int
- func (calc *TwitchCalculator) CalculateDefense(defender *characters.Character) int
- func (calc *TwitchCalculator) CalculateHitChance(attacker, defender *characters.Character) bool
- func (calc *TwitchCalculator) CalculateInitiative(actor *characters.Character) int
- func (calc *TwitchCalculator) PowerRanking(attacker, defender *characters.Character) float64
- type TwitchCombat
- func (tc *TwitchCombat) GetCalculator() combat.ICombatCalculator
- func (tc *TwitchCombat) GetName() string
- func (tc *TwitchCombat) GetTimer() combat.ICombatTimer
- func (tc *TwitchCombat) Initialize() error
- func (tc *TwitchCombat) ProcessCombatRound()
- func (tc *TwitchCombat) SendBalanceNotification(actorId int, actorType combat.SourceTarget)
- func (tc *TwitchCombat) SendGMCPBalanceUpdate(userId int, remainingSeconds float64, maxSeconds float64)
- func (tc *TwitchCombat) Shutdown() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActorCooldown ¶
type ActorCooldown struct {
NextAction time.Time
Callback func()
OffBalance bool
ActorId int
ActorType combat.SourceTarget
MaxDuration time.Duration // Total cooldown duration
}
ActorCooldown tracks cooldown state for an actor
type CooldownTimer ¶
CooldownTimer implements a timer system for twitch-based combat
func NewCooldownTimer ¶
func NewCooldownTimer(c *TwitchCombat) *CooldownTimer
NewCooldownTimer creates a new cooldown timer
func (*CooldownTimer) CanPerformAction ¶
func (ct *CooldownTimer) CanPerformAction(actorId int, actorType combat.SourceTarget) bool
CanPerformAction checks if an actor can perform an action
func (*CooldownTimer) ClearActorCooldown ¶
func (ct *CooldownTimer) ClearActorCooldown(actorId int, actorType combat.SourceTarget)
ClearActorCooldown removes an actor's cooldown
func (*CooldownTimer) GetNextActionTime ¶
func (ct *CooldownTimer) GetNextActionTime(actorId int, actorType combat.SourceTarget) time.Time
GetNextActionTime returns when an actor can next act
func (*CooldownTimer) GetRemainingCooldown ¶
func (ct *CooldownTimer) GetRemainingCooldown(actorId int, actorType combat.SourceTarget) time.Duration
GetRemainingCooldown returns remaining cooldown time
func (*CooldownTimer) RegisterActor ¶
func (ct *CooldownTimer) RegisterActor(actorId int, actorType combat.SourceTarget)
RegisterActor ensures an actor is tracked (no-op for cooldown timer)
func (*CooldownTimer) SetActorCallback ¶
func (ct *CooldownTimer) SetActorCallback(actorId int, actorType combat.SourceTarget, duration time.Duration, callback func())
SetActorCallback sets a callback to execute when cooldown expires
func (*CooldownTimer) SetActorCooldown ¶
func (ct *CooldownTimer) SetActorCooldown(actorId int, actorType combat.SourceTarget, duration time.Duration)
SetActorCooldown sets a cooldown for an actor
type TwitchCalculator ¶
type TwitchCalculator struct{}
TwitchCalculator implements combat calculations for twitch-based combat
func NewTwitchCalculator ¶
func NewTwitchCalculator() *TwitchCalculator
NewTwitchCalculator creates a new calculator instance
func (*TwitchCalculator) CalculateAttackCount ¶
func (calc *TwitchCalculator) CalculateAttackCount(attacker, defender *characters.Character) int
CalculateAttackCount determines number of attacks (not used in twitch combat)
func (*TwitchCalculator) CalculateCriticalChance ¶
func (calc *TwitchCalculator) CalculateCriticalChance(attacker, defender *characters.Character) bool
CalculateCriticalChance determines if an attack is critical
func (*TwitchCalculator) CalculateDamage ¶
func (calc *TwitchCalculator) CalculateDamage(attacker, defender *characters.Character, weapon *items.Item) int
CalculateDamage computes damage for an attack
func (*TwitchCalculator) CalculateDefense ¶
func (calc *TwitchCalculator) CalculateDefense(defender *characters.Character) int
CalculateDefense computes defensive value
func (*TwitchCalculator) CalculateHitChance ¶
func (calc *TwitchCalculator) CalculateHitChance(attacker, defender *characters.Character) bool
CalculateHitChance determines if an attack hits
func (*TwitchCalculator) CalculateInitiative ¶
func (calc *TwitchCalculator) CalculateInitiative(actor *characters.Character) int
CalculateInitiative determines action order (not used in twitch combat)
func (*TwitchCalculator) PowerRanking ¶
func (calc *TwitchCalculator) PowerRanking(attacker, defender *characters.Character) float64
PowerRanking calculates relative power between actors
type TwitchCombat ¶
type TwitchCombat struct {
// contains filtered or unexported fields
}
TwitchCombat implements a cooldown-based combat system
func NewTwitchCombat ¶
func NewTwitchCombat(plug *plugins.Plugin) *TwitchCombat
NewTwitchCombat creates a new twitch-based combat system
func (*TwitchCombat) GetCalculator ¶
func (tc *TwitchCombat) GetCalculator() combat.ICombatCalculator
GetCalculator returns the combat calculator
func (*TwitchCombat) GetName ¶
func (tc *TwitchCombat) GetName() string
GetName returns the name of this combat system
func (*TwitchCombat) GetTimer ¶
func (tc *TwitchCombat) GetTimer() combat.ICombatTimer
GetTimer returns the combat timer
func (*TwitchCombat) Initialize ¶
func (tc *TwitchCombat) Initialize() error
Initialize sets up the combat system
func (*TwitchCombat) ProcessCombatRound ¶
func (tc *TwitchCombat) ProcessCombatRound()
ProcessCombatRound is called each round but twitch combat doesn't use rounds
func (*TwitchCombat) SendBalanceNotification ¶
func (tc *TwitchCombat) SendBalanceNotification(actorId int, actorType combat.SourceTarget)
SendBalanceNotification sends a balance regained message to a user
func (*TwitchCombat) SendGMCPBalanceUpdate ¶
func (tc *TwitchCombat) SendGMCPBalanceUpdate(userId int, remainingSeconds float64, maxSeconds float64)
SendGMCPBalanceUpdate sends GMCP balance information
func (*TwitchCombat) Shutdown ¶
func (tc *TwitchCombat) Shutdown() error
Shutdown cleanly shuts down the combat system