コード例 #1
0
    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;
        }
    }
コード例 #2
0
    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++;
        }
    }
コード例 #3
0
    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);
            }
        }
    }
コード例 #4
0
    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;
        }
    }
コード例 #5
0
 public bool CanBuySpaceship(SpaceshipType.Types spaceshipType)
 {
     if (buildQueues.Count >= queueSizeLimit)
     {
         if (buildQueues[buildQueues.Count - 1].spaceshipType == spaceshipType)
         {
             return(true);
         }
         return(false);
     }
     return(true);
 }
コード例 #6
0
    private int GetLastQueue(SpaceshipType.Types spaceshipType)
    {
        int lastIndex = buildQueues.Count;

        if (lastIndex == 0 || buildQueues[lastIndex - 1].spaceshipType != spaceshipType)
        {
            return(-1);
        }
        else
        {
            return(lastIndex - 1);
        }
    }
コード例 #7
0
    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>());
        }
    }