/** * Finish active building for gold, or speed up activity if its already built. * * Returns true if successful. */ virtual public bool SpeedUp() { if (ActiveBuilding == null) { Debug.LogError("Active Building was NULL"); return(false); } if (ActiveBuilding.CurrentActivity == null) { Debug.LogError("Current activity was NULL"); return(false); } int cost = ((int)Mathf.Max(1, (float)(ActiveBuilding.CurrentActivity.RemainingTime.TotalSeconds + 1) / (float)BuildingManager.GOLD_TO_SECONDS_RATIO)); if (ResourceManager.Instance.Gold >= cost) { ResourceManager.Instance.RemoveGold(cost); if (ActiveBuilding.CurrentActivity.Type == ActivityType.BUILD) { ActiveBuilding.CompleteBuild(); AcknowledgeBuilding(ActiveBuilding); } else { ActiveBuilding.SpeedUp(); } } else { return(false); } return(true); }
/** * Move active building on the grid. * * Returns true if successful. */ virtual public bool MoveBuilding() { BuildingModeGrid.GetInstance().RemoveObject(ActiveBuilding); ActiveBuilding.Position = ActiveBuilding.MovePosition; BuildingModeGrid.GetInstance().AddObjectAtPosition(ActiveBuilding, ActiveBuilding.Position); ActiveBuilding.FinishMoving(); if ((int)saveMode < (int)SaveMode.SAVE_NEVER) { PersistenceManager.GetInstance().Save(); } return(true); }
/** * Place active building on the grid. * * Returns true if successful. */ virtual public bool PlaceBuilding() { if (CanBuildBuilding(ActiveBuilding)) { ActiveBuilding.Place(); buildingsInProgress.Add(ActiveBuilding); BuildingModeGrid.GetInstance().AddObjectAtPosition(ActiveBuilding, ActiveBuilding.Position); ActiveBuilding = null; if ((int)saveMode < (int)SaveMode.SAVE_NEVER) { PersistenceManager.GetInstance().Save(); } return(true); } return(false); }
public AB_State_ProductionCycle(ActiveBuilding activeBuilding) { Building = activeBuilding; }
public void Initialize(ActiveBuilding building) { currentBuilding = building; }