Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Node
- #Demo
- var isDemo : bool = false
- var demoDay : bool = false
- #Global Settings
- var vibrationEnabled : bool = true
- #Steam Variables
- var hasSteamLibraries : bool = false
- var checkedForSteam : bool = false
- var purist : bool = true
- var indestructable : bool = true
- #Temporary State Variables
- var dialogBoxActive : bool = false
- var playedDialogIntro : bool = false
- var playedDialogBoss : bool = false
- var bossIsDead : bool = false
- var justGotChefbot : bool = false
- var justGotUsherbot : bool = false
- var justGotMaidbot : bool = false
- var justGotFirebot : bool = false
- var justGotHighwayBoss : bool = false
- var justGotTowerBoss : bool = false
- var justGotBasementBoss : bool = false
- var justGotFinalBoss : bool = false
- #Permanant Variables
- var chefbotEnUpgrade : bool = false
- var usherbotEnUpgrade : bool = false
- var maidbotEnUpgrade : bool = false
- var firebotEnUpgrade : bool = false
- var chefbotBeaten : bool = false
- var usherbotBeaten : bool = false
- var maidbotBeaten : bool = false
- var firebotBeaten : bool = false
- var highwayBossBeaten : bool = false
- var towerBossBeaten : bool = false
- var basementBossBeaten : bool = false
- var finalBossBeaten : bool = false
- var choseDestroyMachine : bool = false
- var choseSacrificeSelf : bool = false
- var shownLevelSelectEvent : bool = false
- var firstBomberIntroDone : bool = false
- func resetData():
- checkedForSteam = false
- purist = true
- indestructable = true
- dialogBoxActive = false
- playedDialogIntro = false
- playedDialogBoss = false
- bossIsDead = false
- justGotChefbot = false
- justGotUsherbot = false
- justGotMaidbot = false
- justGotFirebot = false
- justGotHighwayBoss = false
- justGotTowerBoss = false
- justGotBasementBoss = false
- justGotFinalBoss = false
- chefbotEnUpgrade = false
- usherbotEnUpgrade = false
- maidbotEnUpgrade = false
- firebotEnUpgrade = false
- chefbotBeaten = false
- usherbotBeaten = false
- maidbotBeaten = false
- firebotBeaten = false
- highwayBossBeaten = false
- towerBossBeaten = false
- basementBossBeaten = false
- finalBossBeaten = false
- choseDestroyMachine = false
- choseSacrificeSelf = false
- shownLevelSelectEvent = false
- firstBomberIntroDone = false
- saveGame()
- func _getSaveDictionary():
- var saveDictionary = {
- "chefbotBeaten" : chefbotBeaten,
- "usherbotBeaten" : usherbotBeaten,
- "maidbotBeaten" : maidbotBeaten,
- "firebotBeaten" : firebotBeaten,
- "highwayBossBeaten" : highwayBossBeaten,
- "towerBossBeaten" : towerBossBeaten,
- "basementBossBeaten" : basementBossBeaten,
- "chefbotEnUpgrade" : chefbotEnUpgrade,
- "usherbotEnUpgrade" : usherbotEnUpgrade,
- "maidbotEnUpgrade" : maidbotEnUpgrade,
- "firebotEnUpgrade" : firebotEnUpgrade,
- "shownLevelSelectEvent" : shownLevelSelectEvent,
- "firstBomberIntroDone" : firstBomberIntroDone,
- "indestructable" : indestructable,
- "purist" : purist,
- }
- return saveDictionary
- func saveGame():
- var saveGame = File.new()
- var err = saveGame.open_encrypted_with_pass("user://data.sav", File.WRITE, "41ph4m4n")
- if err:
- print("ERROR: Save file error: ", err)
- else:
- saveGame.store_line(to_json(_getSaveDictionary()))
- saveGame.close()
- func loadGame():
- var saveGame = File.new()
- if not saveGame.file_exists("user://data.sav"):
- print("Error: Save file does not exist!")
- return 1
- var err = saveGame.open_encrypted_with_pass("user://data.sav", File.READ, "41ph4m4n")
- #saveGame.open("user://data.sav", File.READ)
- if err:
- print("ERROR: Save file error: ", err)
- saveGame.close()
- return 2
- else:
- var currentLine = parse_json(saveGame.get_line())
- for i in currentLine.keys():
- self.set(i, currentLine[i])
- saveGame.close()
- var steam_beatOneBoss = false
- var steam_beatFourBosses = false
- var steam_beatBomber1 = false
- var steam_beatBomber2 = false
- var steam_beatBomber3 = false
- var steam_choseSacrifice = false
- var steam_choseDestruction = false
- var steam_indestructable = false
- var steam_purist = false
- var steam_fullyLoaded = false
- var steamAchievementNames = {
- "BEAT_1_BOSS": steam_beatOneBoss,
- "BEAT_4_BOSSES" : steam_beatFourBosses,
- "BEAT_BOMBER_BOSS_1" : steam_beatBomber1,
- "BEAT_BOMBER_BOSS_2" : steam_beatBomber2,
- "BEAT_BOMBER_BOSS_3" : steam_beatBomber3,
- "DESTRUCTION_ENDING" : steam_choseDestruction,
- "SACRIFICE_ENDING" : steam_choseSacrifice,
- "INDESTRUCTABLE" : steam_indestructable,
- "PURIST" : steam_purist,
- "FULLY_LOADED" : steam_fullyLoaded
- }
- func loadAchievementsLocal():
- if Steam.isSteamRunning():
- steam_beatOneBoss = Steam.getAchievement("BEAT_1_BOSS")
- steam_beatFourBosses = Steam.getAchievement("BEAT_4_BOSSES")
- steam_beatBomber1 = Steam.getAchievement("BEAT_BOMBER_BOSS_1")
- steam_beatBomber2 = Steam.getAchievement("BEAT_BOMBER_BOSS_2")
- steam_beatBomber3 = Steam.getAchievement("BEAT_BOMBER_BOSS_3")
- steam_choseDestruction = Steam.getAchievement("DESTRUCTION_ENDING")
- steam_choseSacrifice = Steam.getAchievement("SACRIFICE_ENDING")
- steam_indestructable = Steam.getAchievement("INDESTRUCTABLE")
- steam_purist = Steam.getAchievement("PURIST")
- steam_fullyLoaded = Steam.getAchievement("FULLY_LOADED")
- func setBeatFourBosses():
- if ((chefbotBeaten || justGotChefbot) && (usherbotBeaten || justGotUsherbot) &&
- (maidbotBeaten || justGotMaidbot) && (firebotBeaten || justGotFirebot)):
- setAchievement("BEAT_4_BOSSES")
- func setCollectedAllEnergyUpgrades():
- if chefbotEnUpgrade && usherbotEnUpgrade && maidbotEnUpgrade && firebotEnUpgrade:
- setAchievement("FULLY_LOADED")
- func setAchievement(whichAchievement : String):
- if Steam.isSteamRunning():
- if steamAchievementNames.has(whichAchievement):
- if !steamAchievementNames.get(whichAchievement):
- Steam.setAchievement(whichAchievement)
- Steam.storeStats()
- steamAchievementNames[whichAchievement] = true
- else:
- print("ERROR, Achievement not found: " + whichAchievement)
- func setSteamStat(whichStat : String):
- if Steam.isSteamRunning():
- var currentValue = Steam.getStatInt(whichStat)
- Steam.setStatInt(whichStat, currentValue + 1)
- Steam.storeStats()
Advertisement
Add Comment
Please, Sign In to add comment