public void SetSelectedIndex(int index) { m_selectedIndex = index; TowerSegment segment = m_towerSegments[m_selectedIndex]; Sprite sprite = segment.GetComponent <SpriteRenderer>().sprite; m_selectedSprite.GetComponent <SpriteRenderer>().sprite = sprite; }
public TowerSegment AddTowerSegment(TowerSegment towerSegmentPrefab) { TowerSegment newSegment = (TowerSegment)Instantiate(towerSegmentPrefab); newSegment.OwningTower = this; newSegment.transform.parent = transform; newSegment.transform.localPosition = Vector3.up * (float)segments.Count * TowerSegment.HEIGHT; newSegment.TowerSegmentPrefab = towerSegmentPrefab; segments.Add(newSegment); return(newSegment); }
public override void OnCompleteAction() { TowerSegment opponentTowerSegment = m_owningTower.GetOpponentTowerSegmentPrefab(1); if (opponentTowerSegment != null && opponentTowerSegment.CanBeStolen()) { AudioSource.PlayClipAtPoint(wizardTowerClip, Vector3.zero); m_owningTower.DestroyOpponentsSegment(1); m_owningTower.SwapSegment(this, opponentTowerSegment); } this.Reset(); }
public TowerSegment SwapSegment(TowerSegment oldSegment, TowerSegment prefab) { int index = segments.IndexOf(oldSegment); TowerSegment newSegment = (TowerSegment)Instantiate(prefab); newSegment.OwningTower = this; newSegment.transform.parent = oldSegment.transform.parent; newSegment.transform.localPosition = oldSegment.transform.localPosition; newSegment.TowerSegmentPrefab = prefab; segments[index] = newSegment; Destroy(oldSegment.gameObject); return(newSegment); }
public void Update() { TowerSegment segment = m_towerSegments[m_selectedIndex]; int size = segment.OnGetMinimumTribeSize(); if (size == 0) { buildingCost.text = ""; } else { buildingCost.text = size.ToString() + " workers from each tribe needed"; } }
public void UpdateBuildingCost() { TowerSegment segment = segments[m_cursorPosition].GetComponent <TowerSegment>() as TowerSegment; string label; int cost = segment.OnGetTribeCost(); if (segment.OnIsActionable() && cost > 0) { label = cost.ToString() + " workers to activate"; } else { label = ""; } m_selector.GetComponent <Selector>().buildingCostLabel = label; }
public void DestroyPlayersSegment(int segmentIndex) { if (segmentIndex >= segments.Count || (segments[segmentIndex] as EmptyTowerSegment) != null) { /* TODO: Add sound effect. */ return; } TowerSegment segment = segments[segmentIndex]; AudioSource.PlayClipAtPoint(demolitionClip, Vector3.zero); Destroy(segment.gameObject); segments.RemoveAt(segmentIndex); for (int i = segmentIndex; i < (segments.Count); i++) { segments[i].transform.position += new Vector3(0.0f, -2.0f, 0.0f); } MoveDown(); }
public void PerformAction(Tribe tribe) { TowerSegment segment = segments[m_cursorPosition].GetComponent <TowerSegment>(); if (!segment.IsActionable() || tribe.IsBusy || tribe.Count < segment.OnGetTribeCost()) { AudioSource.PlayClipAtPoint(wrongClip, Vector3.zero); return; } EmptyTowerSegment emptySegment = segment as EmptyTowerSegment; if (emptySegment != null) { TowerSegment segmentToConstruct = m_constructableTowerSegments[m_selectedPrefabIndex]; int minimumPerTribeSize = segmentToConstruct.OnGetMinimumTribeSize(); bool enoughTribes = true; for (int i = 0; i < 4; ++i) { if (m_owningPlayer.tribes[i].Count < minimumPerTribeSize) { enoughTribes = false; } } if (enoughTribes) { for (int i = 0; i < 4; ++i) { m_owningPlayer.tribes[i].Count -= minimumPerTribeSize; } emptySegment.PerformAction(tribe, segmentToConstruct); } else { AudioSource.PlayClipAtPoint(wrongClip, Vector3.zero); } } else { segment.PerformAction(tribe); } }
public void DestroyOpponentsSegment(TowerSegment segment) { int segmentIndex = segments.IndexOf(segment); m_owningPlayer.DestroyOpponentsSegment(segmentIndex); }
public void OnCancelAction(TowerSegment segment) { }
public void OnCompleteAction(TowerSegment segment) { }
public void OnProgressAction(TowerSegment segment, float progress, float secondsRemaining) { }
public void OnBeginAction(TowerSegment segment) { }
public void OnProgressAction(TowerSegment segment, float progress, float secondsRemaining) { busyFraction = progress; busyRemaining = secondsRemaining; }
public void OnCompleteAction(TowerSegment segment) { busy = false; }
public void OnCancelAction(TowerSegment segment) { busy = false; }
public void AddSelection(TowerSegment segment) { m_towerSegments.Add(segment); }
public void PerformAction(Tribe tribe, TowerSegment prefab) { m_towerSegmentToBeConstructed = prefab; PerformAction(tribe); }
public TowerSegment GetOpponentTowerSegmentPrefab(TowerSegment segment) { int segmentIndex = segments.IndexOf(segment); return(m_owningPlayer.GetOpponentTowerSegmentPrefab(segmentIndex)); }
public void SetTowerSegmentToBeConstructed(TowerSegment prefab) { m_towerSegmentToBeConstructed = prefab; }
public void OnBeginAction(TowerSegment segment) { busy = true; }