Exemplo n.º 1
0
        private void setUnlockedMinionsAndTowers(bool[] unlockedScienceNodes)
        {
            unlockedTowers  = new bool[TypeIdGenerator.getTowerTypeCount()];
            unlockedMinions = new bool[TypeIdGenerator.getMinionTypeCount()];

            for (int i = 0; i < unlockedScienceNodes.Length; ++i)
            {
                if (unlockedScienceNodes[i])
                {
                    ScienceNode tmpNode = null;
                    if (ScienceNode.scienceNodeInst.TryGetValue(TypeIdGenerator.getScienceNodeTypes(i), out tmpNode))
                    {
                        if (tmpNode != null)
                        {
                            tmpNode.unlock(this);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void checkRandomMinionTime()
        {
            if (currentlySpawning)
            {
                nextRandomMinionTime -= Chronos.deltaTime;

                if (nextRandomMinionTime <= 0)
                {
                    nextRandomMinionTime = RANDOM_MINION_TIME_BETWEEN_EACH_MINION;
                    remainingRandomMinionCount--;

                    // ne tur minionlar spawnlayabilecegine karar vermek lazim. suanda random, kullanicilarin yapmasi mumkun olmayanlar bile cikabiliyor.
                    // mesela frankenscienist dev minion da cikabilir.
                    Type   nextType = TypeIdGenerator.getMinionType(RandomNumberProvider.random.Next(TypeIdGenerator.getMinionTypeCount()));
                    Minion newSpawn;

                    foreach (var player in  players)
                    {
                        if (player.playerState == Player.PlayerState.ALIVE)
                        {
                            newSpawn = (Minion)Activator.CreateInstance(nextType, this, null);
                            player.board.AddMinion(newSpawn);
                            Messages.OutgoingMessages.Game.GCreateMinionResult.sendMessage(players, newSpawn);
                        }
                    }
                    if (remainingRandomMinionCount == 0)
                    {
                        currentlySpawning    = false;
                        nextRandomMinionTime = RANDOM_MINION_TIME_DEFAULT;
                        Messages.OutgoingMessages.Game.GRandomMinionTimeInfo.sendMessage(players);
                    }
                }
            }
            else if (nextRandomMinionTime <= 0)
            {
                remainingRandomMinionCount = RandomNumberProvider.random.Next(3, 4);
                currentlySpawning          = true;
            }
        }