Package com.prineside.tdi2.systems
Class GameStateSystem
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.GameSystem
com.prineside.tdi2.systems.StateSystem
com.prineside.tdi2.systems.GameStateSystem
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable,com.esotericsoftware.kryo.KryoSerializable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic enumstatic enumstatic enumstatic interfacestatic classNested classes/interfaces inherited from class com.prineside.tdi2.systems.StateSystem
StateSystem.ActionsArray, StateSystem.ActionUpdatePair -
Field Summary
FieldsModifier and TypeFieldDescriptionBossType[]intbooleanintintbooleanbooleanbyte[]longbooleanintstatic final floatfloatintbooleanstatic final Stringlongstatic final floatbooleanintbooleanintlongFields inherited from class com.prineside.tdi2.systems.StateSystem
duplicateActionsTo, inUpdateStage, replayFrameCount, replayMode, replayRecord, updateNumber, updateRequiredFields inherited from class com.prineside.tdi2.Registrable
S -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddCompletedQuestIssuedPrizes(IssuedItems issuedItems, float stageX, float stageY, int flyFromAlign) За квестыvoidaddHealth(int amount) voidaddLootIssuedPrizes(ItemStack itemStack, float stageX, float stageY, int flyAlign) ЛутintaddMoney(float amount, boolean wasGained) intaddResources(ResourceType type, float amount) voidaddScore(long scorePoints, StatisticsType reason) voidanimateSpeed(float fromCoeff, float duration) intstatic voidvoiddispose()Releases all resources of this object.intХэш примерного состояния (не все поля)com.badlogic.gdx.utils.Array<String>floatfloatintintgetMoney()com.badlogic.gdx.utils.Array<IssuedItems>longgetRandomState(int idx) intgetResources(ResourceType type) longgetScore()longgetSeed()com.esotericsoftware.kryo.io.OutputgetStateStr(boolean withSnapshot) Используется для сохранения игры (в рамках одной версии) и реплеев - можно не париться за обратную совместимость версийstatic voidheadlessValidateGame(ReplayManager.ReplayRecord replayRecord, ObjectRetriever<GameStateSystem.ReplayValidationResult> validationResultHandler) voidbooleanbooleanbooleanbooleanbooleanbooleanisPaused()voidvoidvoidПроизвести окончательную настройку системы.booleanНужно ли учитывать время выполнения update() в DebugfloatintrandomInt(int maxExclusive) intrandomIntIndependent(int maxExclusive, long seed) Doesn't affect the statevoidread(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) voidrealUpdate(float realDeltaTime) voidTell the state system that player is now actively playingvoidremoveHealth(int amount) booleanremoveMoney(int amount) booleanremoveResources(ResourceType type, int amount) voidrestartGame(boolean currentSettings) Создает копию текущего экрана для игры с самого началаvoidstatic booleanvoidsaveGame()voidsetGameSpeed(float speed) voidsetHealth(int amount) voidsetMoney(int amount) voidsetResources(ResourceType type, int amount) voidsetScore(long newScore) voidsetSeed(long seed) voidsetSnapshotSavesEnabled(boolean enabled) Disable snapshot saves.voidsetup()Произвести начальную настройку системы.static voidstartReplay(ReplayManager.ReplayRecord replayRecord) static voidstartReplay(ReplayManager.ReplayRecord replayRecord, boolean realRun) voidvoidvoidvoidupdate(float deltaTime) voidwrite(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) Methods inherited from class com.prineside.tdi2.systems.StateSystem
affectsGameState, canSkipMediaUpdate, checkGameplayUpdateAllowed, getCurrentUpdateActions, getFastForwardUpdateNumber, isFastForwarding, pushAction, pushAction, requireUpdate, startFastForwarding, stopFastForwardingMethods inherited from class com.prineside.tdi2.GameSystem
getFastStateHash, postStateRestoreMethods inherited from class com.prineside.tdi2.Registrable
isRegistered, setRegistered, setUnregistered
-
Field Details
-
NOT_COMPLETED_DAILY_QUEST_PRIZE_MULTIPLIER
public static final float NOT_COMPLETED_DAILY_QUEST_PRIZE_MULTIPLIER- See Also:
-
SAVED_GAME_FILE_PATH
- See Also:
-
SLOW_MOTION_GAME_SPEED
public static final float SLOW_MOTION_GAME_SPEED- See Also:
-
difficultyMode
-
gameMode
-
modeDifficultyMultiplier
public int modeDifficultyMultiplier -
replayId
-
basicLevelName
-
userMapId
-
userMapOriginalSeed
public int userMapOriginalSeed -
allowedBossesForCustomMaps
-
dailyQuestLevel
-
startingAbilitiesConfiguration
-
gameStartTimestamp
public long gameStartTimestamp -
continuedGameApproxStateHash
public int continuedGameApproxStateHash -
gameIsContinued
public boolean gameIsContinued -
snapshotSavesEnabled
public boolean snapshotSavesEnabled -
canLootCases
public boolean canLootCases -
encryptedChestsInInventory
public int encryptedChestsInInventory -
lootBoostEnabled
public boolean lootBoostEnabled -
rarityBoostEnabled
public boolean rarityBoostEnabled -
gameSavesDisabled
public boolean gameSavesDisabled -
scoreWithEndlessTimeLimit
public long scoreWithEndlessTimeLimit -
averageDifficulty
public int averageDifficulty -
playRealTime
public float playRealTime -
lastEnemyReachedTarget
-
gameOverReason
-
gameStartPreferencesSnapshot
public byte[] gameStartPreferencesSnapshot -
pxpExperience
public int pxpExperience -
validationStartTimestamp
public long validationStartTimestamp -
headlessValidatedReplayRecord
-
validationLastUpdateNumber
public int validationLastUpdateNumber -
validationFingerprintMismatchPrinted
public boolean validationFingerprintMismatchPrinted -
validationResultHandler
-
listeners
-
-
Constructor Details
-
GameStateSystem
public GameStateSystem()
-
-
Method Details
-
write
public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) - Specified by:
writein interfacecom.esotericsoftware.kryo.KryoSerializable- Overrides:
writein classStateSystem
-
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
readin interfacecom.esotericsoftware.kryo.KryoSerializable- Overrides:
readin classStateSystem
-
setup
public void setup()Description copied from class:GameSystemПроизвести начальную настройку системы. На момент вызова этого метода, systemProvider содержит объекты всех систем.- Overrides:
setupin classGameSystem
-
postSetup
public void postSetup()Description copied from class:GameSystemПроизвести окончательную настройку системы. Во время вызова, все системы загружены и установлены (setup()), все слушатели добавлены- Overrides:
postSetupin classGameSystem
-
getDoubleSpeedTimeLeft
public float getDoubleSpeedTimeLeft() -
isDoubleSpeedActive
public boolean isDoubleSpeedActive() -
setSeed
public void setSeed(long seed) -
isDailyQuestAndNotCompleted
public boolean isDailyQuestAndNotCompleted() -
getGameLootIssuedItems
-
getSeed
public long getSeed() -
randomInt
public int randomInt(int maxExclusive) -
randomIntIndependent
public int randomIntIndependent(int maxExclusive, long seed) Doesn't affect the state -
randomFloat
public float randomFloat() -
getRandomState
public long getRandomState(int idx) -
calculatePrizeGreenPapers
public int calculatePrizeGreenPapers()- Returns:
- количество зеленых бумажек, которые будут выданы за игру Без Double Gain
-
restartGame
public void restartGame(boolean currentSettings) Создает копию текущего экрана для игры с самого начала- Parameters:
currentSettings- если true, будут использованы abilities, withEnergy текущей игры
-
getApproxStateHash
public int getApproxStateHash()Хэш примерного состояния (не все поля) -
setSnapshotSavesEnabled
public void setSnapshotSavesEnabled(boolean enabled) Disable snapshot saves. Should be called by scripts that may affect game's state in any way. Forces the game to be continued in old way, frame by frame, to preserve all of the changes made by scripts -
getStateBytes
public com.esotericsoftware.kryo.io.Output getStateBytes() -
getStateStr
Используется для сохранения игры (в рамках одной версии) и реплеев - можно не париться за обратную совместимость версий -
saveGame
public void saveGame() -
savedGameExists
public static boolean savedGameExists() -
continueSavedGame
-
startReplay
-
startReplay
-
headlessValidateGame
public static void headlessValidateGame(ReplayManager.ReplayRecord replayRecord, ObjectRetriever<GameStateSystem.ReplayValidationResult> validationResultHandler) -
deleteSavedGame
public static void deleteSavedGame() -
animateSpeed
public void animateSpeed(float fromCoeff, float duration) -
getGameSpeed
public float getGameSpeed() -
setGameSpeed
public void setGameSpeed(float speed) -
higherGameSpeed
public void higherGameSpeed() -
lowerGameSpeed
public void lowerGameSpeed() -
switchGameSpeed
public void switchGameSpeed() -
isGameRealTimePasses
public boolean isGameRealTimePasses()- Returns:
- true, если идет активная игра (не начало игры перед вызовом волн и не EASY режим в ожидании волны)
-
setMoney
public void setMoney(int amount) -
addMoney
public int addMoney(float amount, boolean wasGained) - Parameters:
wasGained- true, если деньги заработаны (убийство врага / бонус), а не просто получены за продажу строения / вначале игры- Returns:
- количество добавленных монет (будет отличаться, если число не целое)
-
removeMoney
public boolean removeMoney(int amount) -
getMoney
public int getMoney() -
addCompletedQuestIssuedPrizes
public void addCompletedQuestIssuedPrizes(IssuedItems issuedItems, float stageX, float stageY, int flyFromAlign) За квесты -
addLootIssuedPrizes
Лут -
getQuestsIssuedPrizes
-
addCompletedQuest
-
getCompletedQuests
-
setResources
-
addResources
- Returns:
- количество добавленных ресурсов (будет отличаться, если число не целое)
-
removeResources
-
getResources
-
setHealth
public void setHealth(int amount) -
addHealth
public void addHealth(int amount) -
removeHealth
public void removeHealth(int amount) -
getHealth
public int getHealth() -
setScore
public void setScore(long newScore) -
addScore
-
getScore
public long getScore() -
pauseGame
public void pauseGame() -
resumeGame
public void resumeGame() -
isPaused
public boolean isPaused() -
togglePauseMenu
public void togglePauseMenu() -
triggerGameOver
-
isGameOver
public boolean isGameOver() -
realUpdate
public void realUpdate(float realDeltaTime) -
registerPlayerActivity
public void registerPlayerActivity()Tell the state system that player is now actively playing -
isMaxEndlessReplayTimeReached
public boolean isMaxEndlessReplayTimeReached()- Returns:
- true if endless and lasts more than ENDLESS_MAX_REPLAY_DURATION
-
update
public void update(float deltaTime) - Overrides:
updatein classGameSystem
-
profileUpdate
public boolean profileUpdate()Description copied from class:GameSystemНужно ли учитывать время выполнения update() в Debug- Overrides:
profileUpdatein classGameSystem
-
dispose
public void dispose()Description copied from interface:com.badlogic.gdx.utils.DisposableReleases all resources of this object.- Specified by:
disposein interfacecom.badlogic.gdx.utils.Disposable- Overrides:
disposein classStateSystem
-
getSystemName
- Overrides:
getSystemNamein classStateSystem
-