/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.money; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.MathUtils; import com.happydroids.droidtowers.entities.Player; import com.happydroids.droidtowers.grid.GameGrid; import com.happydroids.droidtowers.gui.HeadsUpDisplay; import com.happydroids.droidtowers.input.GestureTool; import com.happydroids.droidtowers.input.InputSystem; import com.happydroids.droidtowers.types.GridObjectType; public class GridObjectPurchaseChecker { public static final String LOG_TAG = GridObjectPurchaseChecker.class.getSimpleName(); private final GameGrid gameGrid; private GridObjectType gridObjectType; private int numPurchases; public GridObjectPurchaseChecker(GameGrid gameGrid, GridObjectType gridObjectType) { this.gameGrid = gameGrid; this.gridObjectType = gridObjectType; } public boolean canPurchase() { Gdx.app.log(LOG_TAG, "Checking purchase: " + gridObjectType.getName()); if (gridObjectType.getCoins() != 0 && Player.instance().getCoins() < gridObjectType.getCoins()) { displayCurrencyDialog(); return false; } Gdx.app.log(LOG_TAG, "Allowing purchase: " + gridObjectType.getName()); return true; } private void displayCurrencyDialog() { Gdx.app.log(LOG_TAG, "Out of money for purchase: " + gridObjectType.getName()); if (MathUtils.random(10) % 5 == 0) { new CousinVinnieLoanDialog(gameGrid).show(); } else { HeadsUpDisplay.showToast("You do not have enough money for this purchase."); } } public void makePurchase() { Gdx.app.log(LOG_TAG, "Made purchase: " + gridObjectType.getName()); Player player = Player.instance(); player.subtractCurrency(gridObjectType.getCoins()); player.addExperience(gridObjectType.getExperienceAward()); numPurchases += 1; if (!gridObjectType.allowContinuousPurchase()) { InputSystem.instance().switchTool(GestureTool.PICKER, null); } } }