Class ExperienceSystem

All Implemented Interfaces:
Disposable, KryoSerializable

public final class ExperienceSystem extends GameSystem
Manages XP received / lost by entities. Keeps track of XP changes and triggers TowerExperienceChange event once per frame per tower instead of doing so immediately, which reduces the amount of event triggers by up to 80% in the late game.
  • Constructor Details

    • ExperienceSystem

      public ExperienceSystem()
  • Method Details

    • write

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

      public void read(Kryo kryo, Input input)
      Specified by:
      read in interface KryoSerializable
      Overrides:
      read in class Registrable
    • 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, если уменьшение опыта приведет к уменьшению уровня)
    • updateLevelExperience

      public void updateLevelExperience(Tower tower)
    • notifyTowerLeveledUp

      public void notifyTowerLeveledUp(Tower tower)
    • update

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

      public void updateLevelExperienceOfEveryTower()
    • affectsGameState

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

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