spawner.go
1 package components 2 3 // Spawner holds spawning configuration and runtime timers 4 type Spawner struct { 5 PacketSpawnElapsed float64 6 PacketSpawnRate float64 7 PowerUpSpawnElapsed float64 8 PowerUpSpawnRate float64 9 PacketSpeed float64 10 Level int 11 // DDoS state 12 IsDDoSActive bool 13 DDOSTimer float64 14 DDoSDuration float64 15 DDoSMult float64 16 DDoSCooldown float64 17 } 18 19 func NewSpawner() *Spawner { 20 return &Spawner{ 21 PacketSpawnElapsed: 0, 22 PacketSpawnRate: 1.0, 23 PowerUpSpawnElapsed: 0, 24 PowerUpSpawnRate: 10.0, 25 PacketSpeed: 100.0, 26 Level: 1, 27 IsDDoSActive: false, 28 DDOSTimer: 0, 29 DDoSDuration: 5.0, 30 DDoSMult: 3.0, 31 DDoSCooldown: 10.0, 32 } 33 } 34 35 func (s *Spawner) GetType() string { return "Spawner" } 36 37 func (s *Spawner) IncreasePacketSpeed(percent float64) { 38 s.PacketSpeed *= (1.0 + percent/100.0) 39 } 40 41 func (s *Spawner) SetLevel(level int) { 42 s.Level = level 43 s.PacketSpawnRate = 1.0 / (1.0 + float64(level-1)*0.2) 44 }