Beispiel #1
0
    public void StartSpawn()
    {
        if (GameLibrary.dungeonId >= 30000)
        {
            if (spawnID > 99)
            {
                levelID = "" + spawnID;
            }
            else if (spawnID > 9)
            {
                levelID = "0" + spawnID;
            }
            else
            {
                levelID = "00" + spawnID;
            }

            if (!GameLibrary.SceneType(SceneType.TD) && !GameLibrary.SceneType(SceneType.MB1) && !GameLibrary.SceneType(SceneType.Dungeons_MB1))
            {
                levelID = GameLibrary.dungeonId.ToString() + levelID;
                config  = FSDataNodeTable <LevelConfigsNode> .GetSingleton().FindDataByType(Convert.ToUInt32(levelID));
            }

            if (null != config)
            {
                spawnQueue   = config.monsterID;
                monsterLevel = (int)config.monsterlvl;
                lvlRate      = config.monsterlvl;
                monsterScale = config.scale;
            }
        }
        if (spawnQueue == 0)
        {
            return;
        }

        if (transform.parent.GetComponent <EffectBlock>())
        {
            effect_Block = transform.parent.GetComponent <EffectBlock>();
        }

        if (transform.parent.GetComponent <BossChuChangField>())
        {
            effect_Boss = transform.parent.GetComponent <BossChuChangField>();
        }

        if (trigger != null)
        {
            trigger.OnTrigger += CreatMonster;
        }
        else if (distance > 0 && isKM)
        {
            InvokeRepeating("InvokeCheckDistance", 0f, 0.2f);
        }
        else if (spawnTimer > 0)
        {
            if (isTP)
            {
                InvokeRepeating("InvokeMonster", spawnTimer, interval);
            }
            else
            {
                Invoke("CreatMonster", spawnTimer);
            }
        }
        else
        {
            CreatMonster();
        }
    }
Beispiel #2
0
    public override void InitScene()
    {
        instance = this;

        if (GameLibrary.dungeonId != 0 && GameLibrary.dungeonId / 100 == 301)
        {
            sceneType = SceneType.ACT_GOLD;
        }
        else if (GameLibrary.dungeonId != 0 && GameLibrary.dungeonId / 100 == 302)
        {
            sceneType = SceneType.ACT_EXP;
        }
        else
        {
            sceneType = SceneType.KV;
        }

        Globe.isFB = true;

        bullockCarts = transform.Find("BullockCarts").gameObject;
        //autoPoint = bullockCarts.transform.Find(Tag.auto);

        CreateMainHero();

        if (sceneType == SceneType.KV)
        {
            ReadTask();
            CreatBullockCarts(curlevelConfig[0].npcID, curlevelConfig[0].npclvl);
        }
        else
        {
            string           cartid = GameLibrary.dungeonId + "000";
            LevelConfigsNode level  = FSDataNodeTable <LevelConfigsNode> .GetSingleton().FindDataByType(int.Parse(cartid));

            CreatBullockCarts(level.monsterID, level.monsterlvl, level.scale);
        }


        EffectBlock[] eb = GetComponentsInChildren <EffectBlock>();
        for (int i = 0; i < eb.Length; i++)
        {
            eb[i].LoadSpawnMonster();
            eb[i].OnCloseWall += (int num) => OnCloseWall(num);
            effectList.Add(eb[i]);
        }

        SpawnMonster[] sm = GetComponentsInChildren <SpawnMonster>();
        for (int i = 0; i < sm.Length; i++)
        {
            sm[i].isKM = false;
            spwanList.Add(sm[i]);
        }

        for (int i = 0; i < spwanList.Count; i++)
        {
            spwanList[i].enabled = false;
        }

        for (int i = 0; i < effectList.Count; i++)
        {
            effectList[i].OnCanMoveCarts += TriggerOperating;
        }

        //Destroy(player.GetComponent<BasePlayerAI>());
        //player.pm.isAutoMode = true;
        //player.gameObject.AddComponent<Player_CollectAI>();

        escortNPC = cart.GetComponent <CharacterState>();
        player.GetComponent <Player_AutoAI>().protectionCs = escortNPC;
        player.OnDead += (c) => { WinCondition(false); };

        base.InitScene();
    }