Class TowerSystem

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

public final class TowerSystem extends GameSystem
  • Field Details

    • canTowerAttackEnemy

      public boolean[][] canTowerAttackEnemy
    • towerEnemyDamageMultiplier

      public float[][] towerEnemyDamageMultiplier
    • towers

      public com.badlogic.gdx.utils.DelayedRemovalArray<Tower> towers
    • listeners

  • Constructor Details

    • TowerSystem

      public TowerSystem()
  • 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
    • postSetup

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

      public void postStateRestore()
      Overrides:
      postStateRestore in class GameSystem
    • isRegistered

      public boolean isRegistered(Tower tower)
    • getMaxPossibleStat

      public float getMaxPossibleStat(TowerStatType statType)
    • getDefaultAimStrategy

      public Tower.AimStrategy getDefaultAimStrategy()
    • setDefaultAimStrategy

      public void setDefaultAimStrategy(Tower.AimStrategy strategy)
    • selectTowerAbilityAction

      public void selectTowerAbilityAction(Tower tower, int abilityIdx)
    • selectGlobalTowerAbilityAction

      public void selectGlobalTowerAbilityAction(Tower tower, int abilityIdx)
    • customTowerButtonAction

      public void customTowerButtonAction(Tower tower, int mapX, int mapY)
    • customTowerButtonAction

      public void customTowerButtonAction(int x, int y, int mapX, int mapY)
    • selectTowerAbilityAction

      public void selectTowerAbilityAction(int x, int y, int abilityIdx)
    • selectGlobalTowerAbilityAction

      public void selectGlobalTowerAbilityAction(int x, int y, int abilityIdx)
    • setAbilityInstalled

      public void setAbilityInstalled(Tower tower, int abilityIdx, boolean installed)
    • buildTowerAction

      public void buildTowerAction(TowerType towerType)
    • buildTowerAction

      public void buildTowerAction(TowerType towerType, Tower.AimStrategy aimStrategy)
    • buildTowerAction

      public void buildTowerAction(TowerType towerType, Tower.AimStrategy aimStrategy, int x, int y)
    • buildTower

      public Tower buildTower(TowerType towerType, Tower.AimStrategy aimStrategy, int x, int y)
    • buildTower

      public Tower buildTower(TowerType towerType, Tower.AimStrategy aimStrategy, int x, int y, boolean ignorePrice)
      Строит башню сразу. Чтобы не угробить синхронизацию, этот метод не должен вызываться от времени / действий игрока.
    • upgradeTowerAction

      public void upgradeTowerAction(Tower tower)
    • upgradeTowerAction

      public void upgradeTowerAction(int x, int y)
    • globalUpgradeTowerAction

      public void globalUpgradeTowerAction(TowerType type)
    • upgradeTower

      public boolean upgradeTower(Tower tower)
      Мгновенно улучшить башню, если это возможно. Будут отняты монеты.
    • sellTowerAction

      public void sellTowerAction(Tower tower)
    • sellTower

      public boolean sellTower(Tower tower)
    • setTowerAimStrategyAction

      public void setTowerAimStrategyAction(Tower tower, Tower.AimStrategy toStrategy)
    • setTowerAimStrategy

      public void setTowerAimStrategy(Tower tower, Tower.AimStrategy toStrategy)
    • getUpgradePrice

      public int getUpgradePrice(Tower tower)
    • getBaseUpgradePrice

      public int getBaseUpgradePrice(Tower tower, int toLevel)
    • getGlobalUpgradePrice

      public int getGlobalUpgradePrice(TowerType towerType)
    • update

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

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

      public void drawBatch(com.badlogic.gdx.graphics.g2d.Batch batch, float deltaTime)
    • drawBatchAdditive

      public void drawBatchAdditive(com.badlogic.gdx.graphics.g2d.Batch batch, float deltaTime)
    • applyDrawInterpolation

      public void applyDrawInterpolation(float interpolatedTime)
    • drawWeapons

      public void drawWeapons(com.badlogic.gdx.graphics.g2d.Batch batch, float deltaTime)
    • addExperienceRaw

      public void addExperienceRaw(Tower tower, float exp)
      Дать опыт без учета бонусов
    • addExperienceBuffed

      public float addExperienceBuffed(Tower tower, float exp)
      Добавить опыт + бонусы
      Parameters:
      exp - опыт без бонусов
    • removeExperienceRaw

      public float removeExperienceRaw(Tower tower, float exp)
      Returns:
      количество опыта, которое было отнято (будет меньше exp, если уменьшение опыта приведет к уменьшению уровня)
    • addExperienceToMatchLevel

      public float addExperienceToMatchLevel(Tower tower, int level)
      Добавить столько опыта, чтобы у башни был уровень минимум level
      Parameters:
      tower - башня, которой нужно добавить опыт
      level - уровень
      Returns:
      кол-во добавленного опыта
    • notifyTowerExperienceChanged

      public void notifyTowerExperienceChanged(Tower tower, float delta)
    • notifyTowerLeveledUp

      public void notifyTowerLeveledUp(Tower tower)
    • 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