public void AddToQueue(SpaceshipType.Types spaceshipType, int numberToAdd) { int lastQueue = GetLastQueue(spaceshipType); ShopQueue newQueue; if (lastQueue == -1) { // Add queue in list if last queue is not of same type newQueue.nbrInQueue = numberToAdd; newQueue.spaceshipType = spaceshipType; buildQueues.Insert(buildQueues.Count, newQueue); displayQueues.AddQueue(); // Starts building spaceships with buildTime if not already if (!isBuildCoroutineRunning) { StartCoroutine(BuildCoroutine()); } } else if (lastQueue != -1) { // Add to last queue if of same type newQueue = buildQueues[lastQueue]; newQueue.nbrInQueue += numberToAdd; buildQueues[lastQueue] = newQueue; } }
public void RemoveFromQueue(SpaceshipType.Types spaceshipType, int numberToRemove) { ShopQueue newQueue; int index = 0; foreach (ShopQueue actualQueueValue in buildQueues) { if (actualQueueValue.spaceshipType == spaceshipType) { // If value WILL be 0, remove queue from list if (actualQueueValue.nbrInQueue - numberToRemove <= 0) { buildQueues.Remove(actualQueueValue); displayQueues.DeleteQueue(0, "0"); } else { // If value will NOT be 0, substract value from queue newQueue = actualQueueValue; newQueue.nbrInQueue -= numberToRemove; buildQueues[index] = newQueue; } break; } index++; } }
private void SelectMultipleSpaceshipsType(SpaceshipType.Types type) { var rectBox = new Rect(_startMouse.x, _startMouse.y, _endPos.x - _startMouse.x, _endPos.y - _startMouse.y); UpdateListOfSpaceships(); foreach (var spaceship in _spaceships) { if (_isCameraNotNull && rectBox.Contains(_camera.WorldToScreenPoint(spaceship.gameObject.transform.position), true) && spaceship.type == type) { if (_selectedSpaceships.Contains(spaceship)) { continue; } _selectedSpaceships.Add(spaceship); _selectedSeekers.Add(spaceship.GetComponent <Seeker>()); spaceship.SetIsSelected(true); } else if (_selectedSpaceships.Contains(spaceship)) { _selectedSpaceships.Remove(spaceship); _selectedSeekers.Remove(spaceship.GetComponent <Seeker>()); spaceship.SetIsSelected(false); } } }
public void AddSpaceship(SpaceshipType.Types type) { GameObject spaceship; var center = playerBase.transform.position; var position = RandomCircle(center, spawnRadius); var rotation = Quaternion.identity; switch (type) { case SpaceshipType.Types.Attack: if (PhotonNetwork.IsConnected) { spaceship = PhotonNetwork.Instantiate("AttackSpaceship", position, rotation); spaceship.transform.SetParent(transform); } else { spaceship = Instantiate(attackSpaceship, position, rotation, transform); } _mySpaceships.Add(spaceship); _myAttackSpaceships.Add(spaceship); WinCondition.Instance.myAnalytics.attackBuilt += 1; break; case SpaceshipType.Types.Defence: if (PhotonNetwork.IsConnected) { spaceship = PhotonNetwork.Instantiate("DefenceSpaceship", position, rotation); spaceship.transform.SetParent(transform); } else { spaceship = Instantiate(defenceSpaceship, position, rotation, transform); } _mySpaceships.Add(spaceship); _myDefenceSpaceships.Add(spaceship); WinCondition.Instance.myAnalytics.defenceBuilt += 1; break; case SpaceshipType.Types.Mining: if (PhotonNetwork.IsConnected) { spaceship = PhotonNetwork.Instantiate("MiningSpaceship", position, rotation); spaceship.transform.SetParent(transform); } else { spaceship = Instantiate(miningSpaceship, position, rotation, transform); } _mySpaceships.Add(spaceship); _myMiningSpaceships.Add(spaceship); WinCondition.Instance.myAnalytics.minerBuilt += 1; break; } }
public bool CanBuySpaceship(SpaceshipType.Types spaceshipType) { if (buildQueues.Count >= queueSizeLimit) { if (buildQueues[buildQueues.Count - 1].spaceshipType == spaceshipType) { return(true); } return(false); } return(true); }
private int GetLastQueue(SpaceshipType.Types spaceshipType) { int lastIndex = buildQueues.Count; if (lastIndex == 0 || buildQueues[lastIndex - 1].spaceshipType != spaceshipType) { return(-1); } else { return(lastIndex - 1); } }
public void OnPhotonInstantiate(PhotonMessageInfo info) { Hashtable hashPlayer = info.Sender.CustomProperties; SpriteRenderer renderer = GetComponent <SpriteRenderer>(); renderer.enabled = false; NetworkIdentity identity = GetComponent <NetworkIdentity>(); string color = (string)hashPlayer["Color"]; int currentId = (int)hashPlayer["CurrentId"]; identity._id = info.Sender.UserId + "_" + currentId; SpaceshipType.Types type = GetComponent <Spaceship>().type; switch (type) { case SpaceshipType.Types.Attack: DrawAttackSpaceship(renderer, color); identity.Life = 1; break; case SpaceshipType.Types.Mining: DrawMiningSpaceship(renderer, color); identity.Life = 1; break; case SpaceshipType.Types.Defence: DrawDefenceSpaceship(renderer, color); identity.Life = 3; break; case SpaceshipType.Types.None: break; } foreach (Sprite icon in MiniMapIcons) { if (icon.name == "Spaceship_" + color) { IconRenderer.sprite = icon; break; } } if (info.Sender.IsLocal) { renderer.enabled = true; Hashtable hash = new Hashtable(); hash["CurrentId"] = currentId + 1; info.Sender.SetCustomProperties(hash); gameObject.tag = "Spaceship"; gameObject.layer = 9; identity._isLocal = true; GetComponentInChildren <SpriteMask>().sprite = LightMask; SpriteRenderer[] childs = GetComponentsInChildren <SpriteRenderer>(); foreach (SpriteRenderer child in childs) { if (child.gameObject.CompareTag("MinimapIcon")) { child.enabled = true; break; } } } else { switch (type) { case SpaceshipType.Types.Attack: Destroy(GetComponent <Attacker>()); break; case SpaceshipType.Types.Mining: Destroy(GetComponent <Miner>()); break; case SpaceshipType.Types.Defence: //Destroy(GetComponent<Defender>()); break; case SpaceshipType.Types.None: break; } identity._isLocal = false; gameObject.tag = "EnemySpaceship"; gameObject.layer = 18; Transform[] childs = GetComponentsInChildren <Transform>(); foreach (Transform child in childs) { if (child.gameObject.CompareTag("EnemySpaceship")) { continue; } if (child.gameObject.CompareTag("MinimapIcon")) { continue; } Destroy(child.gameObject); } Destroy(GetComponent <Spaceship>()); Destroy(GetComponent <CharacterController2D>()); } }