/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.happydroids.HappyDroidConsts; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.TowerConsts; import com.happydroids.droidtowers.achievements.AchievementEngine; import com.happydroids.droidtowers.achievements.TutorialEngine; import com.happydroids.droidtowers.entities.Player; import com.happydroids.droidtowers.gamestate.server.TowerGameService; import com.happydroids.droidtowers.platform.Display; import com.happydroids.droidtowers.scenes.TowerScene; import com.happydroids.droidtowers.scenes.components.SceneManager; import com.happydroids.droidtowers.utils.Screenshot; import com.happydroids.platform.Platform; import com.happydroids.platform.PlatformPurchaseManger; import com.happydroids.platform.purchase.DroidTowerVersions; public class DebugWindow extends ScrollableTowerWindow { public DebugWindow(Stage stage) { super("Debug", stage); //noinspection PointlessBooleanExpression if (!TowerConsts.DEBUG) { throw new RuntimeException("ZOMG WUT?"); } defaults().pad(Display.devicePixel(10)).left().expandX().fillX(); if (SceneManager.activeScene() instanceof TowerScene) { row(); add(makeResetAchievementsButton()); row(); add(makeCompleteAllAchievementsButton()); row(); add(makeGiveMoneyButton()); row(); add(makeTakeAllMoneyButton()); } row(); add(makeInvalidateTexturesButton()); row(); add(makeRestartActiveSceneButton()); row(); add(makeDisconnectHappyDroidsButton()); row(); add(makeGenerateNewDeviceIdButton()); row(); add(makeTakeScreenshotButton()); row(); add(makeToggleDebugInfoButton()); row(); add(makeTogglePurchaseUnlimitedButton()); shoveContentUp(); } private Actor makeTakeAllMoneyButton() { TextButton button = FontManager.Roboto24.makeTextButton("Take ALL Money"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { Player.instance().subtractCurrency(Player.instance().getCoins()); } }); return button; } private Actor makeTogglePurchaseUnlimitedButton() { final PlatformPurchaseManger purchaseManger = Platform.getPurchaseManager(); final TextButton button = FontManager.Roboto24 .makeTextButton(purchaseManger.hasPurchasedUnlimitedVersion() ? "Refund" : "Purchase" + " Unlimited Version"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { if (purchaseManger.hasPurchasedUnlimitedVersion()) { purchaseManger.revokeItem(purchaseManger.getSkuForVersion(DroidTowerVersions.UNLIMITED_299)); } else { purchaseManger.purchaseItem(purchaseManger.getSkuForVersion(DroidTowerVersions.UNLIMITED_299), "DEBUG WINDOW LOL"); } dismiss(); } }); return button; } private TextButton makeToggleDebugInfoButton() { TextButton button = FontManager.Roboto24.makeTextButton("Toggle Debug Info"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { HappyDroidConsts.DISPLAY_DEBUG_INFO = !HappyDroidConsts.DISPLAY_DEBUG_INFO; } }); return button; } private Actor makeTakeScreenshotButton() { TextButton button = FontManager.Roboto24.makeTextButton("Take Screenshot"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { dismiss(); Gdx.app.postRunnable(new Runnable() { @Override public void run() { Screenshot.capture(); } }); } }); return button; } private Actor makeGenerateNewDeviceIdButton() { TextButton button = FontManager.Roboto24.makeTextButton("Generate new Device ID"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { TowerGameService.instance().setDeviceId(null); } }); return button; } private Actor makeDisconnectHappyDroidsButton() { TextButton button = FontManager.Roboto24.makeTextButton("Disconnect from happydroids"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { TowerGameService.instance().setSessionToken(null); } }); return button; } private TextButton makeRestartActiveSceneButton() { TextButton button = FontManager.Roboto24.makeTextButton("Restart Active Scene"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { SceneManager.restartActiveScene(); } }); return button; } private TextButton makeInvalidateTexturesButton() { TextButton button = FontManager.Roboto24.makeTextButton("Invalidate Textures"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { TowerAssetManager.assetManager().invalidateAllTextures(); } }); return button; } private Actor makeCompleteAllAchievementsButton() { TextButton button = FontManager.Roboto24.makeTextButton("Complete all achievements"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { AchievementEngine.instance().completeAll(); TutorialEngine.instance().completeAll(); } }); return button; } private TextButton makeGiveMoneyButton() { TextButton button = FontManager.Roboto24.makeTextButton("Give $100K"); button.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { Player.instance().addCurrency(100000); } }); return button; } private TextButton makeResetAchievementsButton() { TextButton resetAchievements = FontManager.Roboto24.makeTextButton("Reset all achievements"); resetAchievements.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { AchievementEngine.instance().resetState(); TutorialEngine.instance().resetState(); } }); return resetAchievements; } }