Package com.prineside.tdi2.systems
Class ExperienceSystem
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.GameSystem
com.prineside.tdi2.systems.ExperienceSystem
- All Implemented Interfaces:
Disposable
,KryoSerializable
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.
-
Field Summary
Fields inherited from class com.prineside.tdi2.Registrable
S
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfloat
addExperienceBuffed
(Tower tower, float exp) Добавить опыт + бонусыvoid
addExperienceRaw
(Tower tower, float exp) Дать опыт без учета бонусовboolean
void
notifyTowerLeveledUp
(Tower tower) void
float
removeExperienceRaw
(Tower tower, float exp) void
update
(float deltaTime) void
updateLevelExperience
(Tower tower) void
void
Methods inherited from class com.prineside.tdi2.GameSystem
dispose, getFastStateHash, postSetup, postStateRestore, profileUpdate, setup
Methods inherited from class com.prineside.tdi2.Registrable
isRegistered, setRegistered, setUnregistered
-
Constructor Details
-
ExperienceSystem
public ExperienceSystem()
-
-
Method Details
-
write
- Specified by:
write
in interfaceKryoSerializable
- Overrides:
write
in classRegistrable
-
read
- Specified by:
read
in interfaceKryoSerializable
- Overrides:
read
in classRegistrable
-
addExperienceRaw
Дать опыт без учета бонусов -
addExperienceBuffed
Добавить опыт + бонусы- Parameters:
exp
- опыт без бонусов
-
removeExperienceRaw
- Returns:
- количество опыта, которое было отнято (будет меньше exp, если уменьшение опыта приведет к уменьшению уровня)
-
updateLevelExperience
-
notifyTowerLeveledUp
-
update
public void update(float deltaTime) - Overrides:
update
in classGameSystem
-
updateLevelExperienceOfEveryTower
public void updateLevelExperienceOfEveryTower() -
affectsGameState
public boolean affectsGameState()- Specified by:
affectsGameState
in classGameSystem
-
getSystemName
- Specified by:
getSystemName
in classGameSystem
-