Example #1
0
    void EliteMonsters()
    {
        eliteNode = FSDataNodeTable <TowerDefenceNode> .GetSingleton().FindDataByType(currentelite);

        if (currentelite >= eliteCount)
        {
            CancelInvoke("EliteMonsters");
        }

        List <int> smID = new List <int>(point.Keys);

        for (int i = 0; i < smID.Count; i++)
        {
            if (smID[i] == 1 && null != eliteNode.Monster1 && eliteNode.Monster1.Length > 0)
            {
                point[smID[i]].SetMonsterPoint(eliteNode.Monster1, true);
            }
            else if (smID[i] == 2 && null != eliteNode.Monster2 && eliteNode.Monster2.Length > 0)
            {
                point[smID[i]].SetMonsterPoint(eliteNode.Monster2, true);
            }
            else if (smID[i] == 3 && null != eliteNode.Monster3 && eliteNode.Monster3.Length > 0)
            {
                point[smID[i]].SetMonsterPoint(eliteNode.Monster3, true);
            }
        }

        currentelite++;
    }
Example #2
0
    public override void InitScene()
    {
        sceneType = SceneType.TD;
        ReadTask();
        CreateMainHero();

        currentWellen = Convert.ToInt32(tdIndex + "" + currentWellen);
        currentelite  = Convert.ToInt32(tdIndex + "" + currentelite);

        SetMaxWave(1);
        wellenCount = maxWellen - 1;

        SetMaxWave(1001);
        eliteCount = maxWellen - 1;

        SpawnMonster[] sm = GetComponentsInChildren <SpawnMonster>();
        for (int i = 0; i < sm.Length; i++)
        {
            spwanList.Add(sm[i]);
        }
        for (int i = 0; i < spwanList.Count; i++)
        {
            if (!point.ContainsKey(spwanList[i].spawnID))
            {
                point.Add(spwanList[i].spawnID, spwanList[i]);
            }
        }

        InitTower(Tower1, towerID != 0 ? towerID : 206000300, 1, Modestatus.Tower);
        InitTower(Tower2, towerID != 0 ? towerID : 206000300, 1, Modestatus.Tower);
        InitTower(Camp, campID != 0? campID : 206000700, 1, Modestatus.Tower);

        Camp.gameObject.layer = Tower1.gameObject.layer = Tower2.gameObject.layer = (int)GameLayer.Tower;
        Camp.OnHit           += SceneUIManager.instance.TowerDefence.RefreshCampHP;
        Camp.OnDead          += (CharacterState cCs) => WinCondition(false);
        player.OnDead        += (CharacterState cCs) => WinCondition(false);

        Tower1.OnHit += (CharacterState cs) => { ShowBloodScreen(); };
        Tower2.OnHit += (CharacterState cs) => { ShowBloodScreen(); };
        Camp.OnHit   += (CharacterState cs) => { ShowBloodScreen(false); };

        towerNode = FSDataNodeTable <TowerDefenceNode> .GetSingleton().FindDataByType(currentWellen);

        if (currentWellen <= wellenCount)
        {
            Invoke("BrushSoldiers", towerNode.Interval);
        }

        eliteNode = FSDataNodeTable <TowerDefenceNode> .GetSingleton().FindDataByType(currentelite);

        InvokeRepeating("EliteMonsters", eliteNode.Interval, eliteNode.Interval);

        SceneUIManager.instance.TowerDefence.RefreshWave(towerNode.Interval, currentWellen % tdIndex, wellenCount % tdIndex);

        base.InitScene();
    }
Example #3
0
    void SetMaxWave(int max)
    {
        maxWellen = Convert.ToInt32(tdIndex + "" + max);
        maxNode   = FSDataNodeTable <TowerDefenceNode> .GetSingleton().FindDataByType(maxWellen);

        if (null == maxNode)
        {
            return;
        }
        max++;
        SetMaxWave(max);
    }
Example #4
0
    void NextWave()
    {
        if (currentWellen >= wellenCount)
        {
            CancelInvoke("EliteMonsters");
            DungeonOverHandle(null);
            return;
        }

        currentWellen++;
        towerNode = FSDataNodeTable <TowerDefenceNode> .GetSingleton().FindDataByType(currentWellen);

        SceneUIManager.instance.TowerDefence.RefreshWave(towerNode.Interval, currentWellen % tdIndex, wellenCount % tdIndex);
        Invoke("BrushSoldiers", towerNode.Interval);
    }