Add natural disasters system
Introduce a natural-disasters feature: add DisasterManager, an abstract NaturalDisaster base class, and four concrete implementations (Earthquake, Meteor, Thunder, Tornado). Integrate the manager into SpeedHG (property, initialization/start) so disasters run on a timed cycle with guards for game state, grace period and per-disaster validation. Implementations: Meteor spawns a non-destructive LargeFireball impact, Earthquake applies nausea/impulses and particles, Thunder triggers multiple lightning strikes with fire chance, Tornado creates a particle vortex and pulls nearby players (uses a coroutine for precomputation). Add localization keys for disaster warnings in en_US.yml. Safety/cancel logic and flight/timeout cutoffs included to avoid leaks or invalid triggers.
This commit is contained in:
@@ -10,6 +10,7 @@ import club.mcscrims.speedhg.config.CustomGameSettings
|
||||
import club.mcscrims.speedhg.config.LanguageManager
|
||||
import club.mcscrims.speedhg.database.DatabaseManager
|
||||
import club.mcscrims.speedhg.database.StatsManager
|
||||
import club.mcscrims.speedhg.disaster.DisasterManager
|
||||
import club.mcscrims.speedhg.game.GameManager
|
||||
import club.mcscrims.speedhg.game.PodiumManager
|
||||
import club.mcscrims.speedhg.game.modules.AntiRunningManager
|
||||
@@ -83,6 +84,9 @@ class SpeedHG : JavaPlugin() {
|
||||
lateinit var podiumManager: PodiumManager
|
||||
private set
|
||||
|
||||
lateinit var disasterManager: DisasterManager
|
||||
private set
|
||||
|
||||
override fun onLoad()
|
||||
{
|
||||
instance = this
|
||||
@@ -124,6 +128,9 @@ class SpeedHG : JavaPlugin() {
|
||||
perkManager = PerkManager( this )
|
||||
perkManager.initialize()
|
||||
|
||||
disasterManager = DisasterManager( this )
|
||||
disasterManager.start()
|
||||
|
||||
registerKits()
|
||||
registerPerks()
|
||||
registerCommands()
|
||||
|
||||
Reference in New Issue
Block a user