/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.happydroids.droidtowers.DroidTowersGame; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.gamestate.server.TowerGameService; import com.happydroids.droidtowers.platform.Display; import com.happydroids.droidtowers.types.RoomTypeFactory; import com.happydroids.platform.Platform; import com.happydroids.security.SecurePreferences; public class PurchaseDroidTowersUnlimitedPrompt extends ScrollableTowerWindow { public PurchaseDroidTowersUnlimitedPrompt() { super("Purchase Droid Towers: Unlimited", DroidTowersGame.getRootUiStage()); TowerAssetManager.assetManager().finishLoading(); defaults().top().left().pad(Display.devicePixel(4)); addLabel("All these features will be enabled:", FontManager.RobotoBold18).expandX().padTop(Display.devicePixel(8)); int indentPixels = Display.devicePixel(64); addLabel("* Towers taller up to 250 floors", FontManager.RobotoBold18).padLeft(indentPixels); addLabel("* Unlock the Sky Lobby:", FontManager.RobotoBold18).padLeft(indentPixels); row(); add(new Image(RoomTypeFactory.findTypeById("SKY-LOBBY").getTextureRegion(0))).center(); addLabel("* Unlock Land expansions", FontManager.RobotoBold18).padLeft(indentPixels); addLabel("* Earn income 50% faster", FontManager.RobotoBold18).padLeft(indentPixels); addLabel("* Feeds the developers for less than $0.01 USD per day!", FontManager.RobotoBold18).padLeft(indentPixels); addLabel("* FREE content updates!", FontManager.Roboto24, Color.CYAN).padLeft(indentPixels); shoveContentUp(); TextButton purchaseButton = FontManager.Roboto32.makeTextButton("Purchase for: $0.99", Color.GREEN); purchaseButton.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { dismiss(); Platform.getPurchaseManager().requestPurchaseForUnlimitedVersion(); } }); TextButton dismissButton = FontManager.Roboto18.makeTextButton("No Thanks"); dismissButton.addListener(new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { // determineIfSpecialOfferIsAvailable(); dismiss(); } }); Table buttons = new Table(); buttons.row().pad(Display.devicePixel(12)).fill(); buttons.add(purchaseButton).expandX(); buttons.add(dismissButton); setStaticFooter(buttons); } private void determineIfSpecialOfferIsAvailable() { SecurePreferences preferences = TowerGameService.instance().getPreferences(); if (!preferences.contains("SHOWN_ONE_TIME_OFFER")) { preferences.putBoolean("SHOWN_ONE_TIME_OFFER", true); displaySpecialOfferDialog(); } } private void displaySpecialOfferDialog() { new Dialog() .setTitle("One Time Offer!") .setMessage("SPECIAL ONE TIME OFFER!\n\nIf you are unsure about purchasing Droid Towers,\nhow about a special discount to sweeten the deal?\n\n* YOU WILL NEVER SEE THIS OFFER AGAIN *") .addButton("Purchase for $1.99", new OnClickCallback() { @Override public void onClick(Dialog dialog) { dialog.dismiss(); Platform.getPurchaseManager().requestPurchaseForDiscountedOffer(); } }) .addButton("Never ask again", new OnClickCallback() { @Override public void onClick(Dialog dialog) { dialog.dismiss(); } }) .show(); } }