Exemplo n.º 1
0
    private Queue <byte> computeTargets(int spawnZone)
    {
        Dictionary <byte, TowerSpawnInfo> dic = _activeTowers [spawnZone];

        Queue <byte> targets = new Queue <byte> ();

        List <byte> list = new List <byte> ();

        foreach (byte b in dic.Keys)
        {
            TowerSpawnInfo tsi      = dic [b];
            float          aggroExp = tsi._aggro * 10.0f;    // 1 order of precission
            int            num      = Mathf.RoundToInt(aggroExp);

            while (num > 0)
            {
                list.Add(b);
                num--;
            }
        }

        shuffleTargers(list);
        foreach (byte b in list)
        {
            targets.Enqueue(b);
        }

        return(targets);
    }
Exemplo n.º 2
0
    public void initialize(Dictionary <int, PathSolution> computedPaths)
    {
        _activeTowers.Clear();

        foreach (int spawnZone in computedPaths.Keys)
        {
            PathSolution ps = computedPaths [spawnZone];

            Dictionary <byte, TowerSpawnInfo> pathInfo            = new Dictionary <byte, TowerSpawnInfo> ();
            Dictionary <byte, Queue <Vector3> > .KeyCollection kc = ps.getAllTowersInPath();

            TowerSpawnInfo targetInfo = new TowerSpawnInfo();
            targetInfo._active = true;
            targetInfo._aggro  = 1.0f;
            pathInfo.Add(0, targetInfo);

            foreach (byte b in kc)
            {
                pathInfo.Add(b, new TowerSpawnInfo());
            }

            _activeTowers.Add(spawnZone, pathInfo);
        }
    }