Class WaveSystem

All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable, com.esotericsoftware.kryo.KryoSerializable

public final class WaveSystem extends GameSystem
  • Field Details

  • Constructor Details

    • WaveSystem

      public WaveSystem()
  • Method Details

    • write

      public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output)
      Specified by:
      write in interface com.esotericsoftware.kryo.KryoSerializable
      Overrides:
      write in class Registrable
    • read

      public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input)
      Specified by:
      read in interface com.esotericsoftware.kryo.KryoSerializable
      Overrides:
      read in class Registrable
    • affectsGameState

      public boolean affectsGameState()
      Specified by:
      affectsGameState in class GameSystem
    • setup

      public void setup()
      Description copied from class: GameSystem
      Произвести начальную настройку системы. На момент вызова этого метода, systemProvider содержит объекты всех систем.
      Overrides:
      setup in class GameSystem
    • getWaveStartInterval

      public float getWaveStartInterval()
    • setWaveGenerator

      public void setWaveGenerator(WaveSystem.WaveGenerator generator)
    • getWaveGenerator

      public WaveSystem.WaveGenerator getWaveGenerator()
    • postSetup

      public void postSetup()
      Description copied from class: GameSystem
      Произвести окончательную настройку системы. Во время вызова, все системы загружены и установлены (setup()), все слушатели добавлены
      Overrides:
      postSetup in class GameSystem
    • setForcedTemplate

      public void setForcedTemplate(String templateName)
    • setBossWaves

      public void setBossWaves(com.badlogic.gdx.utils.IntMap<BossType> bossWaves)
    • resetNextWavesCache

      public void resetNextWavesCache()
    • getForceWaveBonus

      public int getForceWaveBonus()
    • getCompletedWavesCount

      public int getCompletedWavesCount()
      Returns:
      номер последней волны, в которой не осталось заспавненных врагов
    • isForceWaveAvailable

      public boolean isForceWaveAvailable()
    • forceNextWaveAction

      public void forceNextWaveAction()
      Добавляет Action для вызова волны на следующем update()
    • freezeTimeToNextWave

      public void freezeTimeToNextWave(float duration)
      Время до следующей волны не будет считаться. Если меньше 0, заморозка отключается
    • setStatus

      public void setStatus(WaveSystem.Status status)
    • setDifficultyGrowWaves

      public void setDifficultyGrowWaves(int low, int medium, int high)
    • getDifficultyGrowWaves

      public int[] getDifficultyGrowWaves()
    • getImpossibleWaveNumber

      public int getImpossibleWaveNumber()
    • getDifficultWavesMultiplier

      public static float getDifficultWavesMultiplier(int waveNumber, int[] difficultyGrowWaves)
      Старый алгоритм
    • main

      public static void main(String[] args)
    • generateEnemyGroups

      public static com.badlogic.gdx.utils.Array<EnemyGroup> generateEnemyGroups(int waveNumber, WaveSystem.Mode mode, int[] difficultyGrowWaves, int averageDifficulty, com.badlogic.gdx.utils.IntMap<BossType> bossWaves, Map map, long seed, WaveTemplates.PredefinedWaveTemplate[] predefinedWaveTemplates)
      Должен работать так же, как generateWave()
    • allWavesSpawned

      public boolean allWavesSpawned()
    • startNextWave

      public void startNextWave()
    • getTimeToNextWave

      public float getTimeToNextWave()
    • getEnemiesToSpawn

      public static com.badlogic.gdx.utils.Array<Enemy> getEnemiesToSpawn(float timeSinceStart, com.badlogic.gdx.utils.Array<EnemyGroup.SpawnEnemyGroup> enemyGroups)
      Создает объекты врагов по конфигурации группы. Изменяет EnemyGroup.spawnedCount
    • stopSpawningCurrentWave

      public void stopSpawningCurrentWave(Tower killer, DamageType damageType)
      Остановить спавн врагов текущей волны. Будет считаться, что врагов вообще никогда не было.
    • update

      public void update(float deltaTime)
      Overrides:
      update in class GameSystem
    • getSystemName

      public String getSystemName()
      Specified by:
      getSystemName in class GameSystem
    • isAutoForceWaveEnabled

      public boolean isAutoForceWaveEnabled()
    • setAutoForceWaveEnabled

      public void setAutoForceWaveEnabled(boolean enabled)
    • dispose

      public void dispose()
      Description copied from interface: com.badlogic.gdx.utils.Disposable
      Releases all resources of this object.
      Specified by:
      dispose in interface com.badlogic.gdx.utils.Disposable
      Overrides:
      dispose in class GameSystem