private void sell() { PlayerStats.I.Worth += Mathf.CeilToInt(courseOfAction.GetValue() * Constants.SELL_PERCENTAGE); placementArea.Clear(areaGridPosition, areaSizeOffset); HelperObjects.SelectedInfoBar.Deselect(); // Spawn effect GameObject effect = UnityHelper.Instantiate(BuildManager.I.SellEffect, transform.position); Destroy(effect, 5f); Destroy(gameObject); }
public void ImplementMitigation(IPlacementArea area, IntVector2 gridPosition, IntVector2 sizeOffset) { if (currentCourseOfAction != null) { // Withdraw cost PlayerStats.I.Worth -= currentCourseOfAction.GetValue(); // Occupy area in grid area.Occupy(gridPosition, sizeOffset, PlacementTileState.Filled); // Initialize the mitigation var mitigation = UnityHelper .Instantiate(CourseOfActionPrefab, area.GridToWorld(gridPosition, sizeOffset)) .GetComponent <MitigationBehaviour>(); mitigation.Initialize(area, gridPosition, sizeOffset, currentCourseOfAction); ExitBuildMode(); } }
public void Initialize(CourseOfAction courseOfAction) { Value = courseOfAction.GetValue(); Label.text = courseOfAction.custom.category; ClickableBehaviour.Title = courseOfAction.custom.category; ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(courseOfAction); ClickableBehaviour.ActionText = "implement"; ClickableBehaviour.PrimaryAction = () => { // Destroy the old ghost if it's already in the game var oldGhost = FindObjectOfType <GhostMitigationBehaviour>(); if (oldGhost != null) { oldGhost.DestroyGhost(); } BuildManager.I.EnterBuildMode(courseOfAction); UnityHelper.Instantiate(HelperObjects.GhostMitigationPrefab); }; ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(courseOfAction, ClickableBehaviour); }