/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gamestate.actions; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Array; import com.happydroids.HappyDroidConsts; import com.happydroids.droidtowers.entities.GridObject; import com.happydroids.droidtowers.entities.Player; import com.happydroids.droidtowers.grid.GameGrid; import com.happydroids.platform.Platform; public class BudgetCalculator extends GameGridAction { public static final String TAG = BudgetCalculator.class.getSimpleName(); public BudgetCalculator(GameGrid gameGrid, float frequency) { super(gameGrid, frequency); reset(); } @Override public void run() { int coinsEarnedFromRent = 0; int coinsSpentOnUpkeep = 0; Array<GridObject> objects = gameGrid.getObjects(); for (int i = 0, objectsSize = objects.size; i < objectsSize; i++) { GridObject object = objects.get(i); coinsEarnedFromRent += object.getCoinsEarned(); coinsSpentOnUpkeep += object.getUpkeepCost(); } if (!Platform.getPurchaseManager().hasPurchasedUnlimitedVersion()) { coinsEarnedFromRent *= 0.5f; coinsSpentOnUpkeep *= 0.5f; } if (HappyDroidConsts.DEBUG) { Gdx.app .debug(TAG, String.format("Income report: %d earned, %d spent on upkeep", coinsEarnedFromRent, coinsSpentOnUpkeep)); } Player.instance().addCurrency(coinsEarnedFromRent - coinsSpentOnUpkeep); Player.instance().setCurrentIncome(coinsEarnedFromRent); Player.instance().setCurrentExpenses(coinsSpentOnUpkeep); } }