Beispiel #1
0
    protected IEnumerator _OnCallback(Enemy enemy, EnemyLoader.OnCompleteLoad callback)
    {
        yield return((object)null);

        if (enemy.isStoke)
        {
            enemy.get_gameObject().SetActive(true);
            enemy.isStoke = false;
        }
        callback(enemy);
    }
Beispiel #2
0
    private EnemyLoader.OnCompleteLoad CreateWrappedEnemyLoadCompletedDelegate(EnemyLoader.OnCompleteLoad callback)
    {
        return(delegate(Enemy e)
        {
            if (QuestManager.IsValidInGame() && MonoBehaviourSingleton <QuestManager> .I.IsExploreBossMap() && e.isBoss)
            {
                ExploreBossStatus exploreBossStatus = MonoBehaviourSingleton <QuestManager> .I.GetExploreBossStatus();

                if (exploreBossStatus != null)
                {
                    e.ApplyExploreBossStatus(exploreBossStatus);
                }
                else
                {
                    MonoBehaviourSingleton <QuestManager> .I.UpdateExploreBossStatus(e);
                }
            }
            if (callback != null)
            {
                callback(e);
            }
        });
    }
Beispiel #3
0
    public Enemy CreateEnemyWithAI(int id, Vector3 pos, float dir, int enemyId, int enemyLv, bool isBoss, EnemyLoader.OnCompleteLoad callback = null)
    {
        //IL_007e: Unknown result type (might be due to invalid IL or missing references)
        //IL_00e9: Unknown result type (might be due to invalid IL or missing references)
        //IL_0100: Unknown result type (might be due to invalid IL or missing references)
        //IL_013f: Unknown result type (might be due to invalid IL or missing references)
        //IL_014b: Unknown result type (might be due to invalid IL or missing references)
        //IL_017b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0180: Expected O, but got Unknown
        //IL_026f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0286: Unknown result type (might be due to invalid IL or missing references)
        Enemy enemy = null;

        for (int i = 0; i < enemyStokeList.Count; i++)
        {
            if (enemyStokeList[i].enemyID == enemyId)
            {
                if (QuestManager.IsValidInGameWaveMatch())
                {
                    if (enemyStokeList[i].isWaveMatchBoss != isBoss)
                    {
                        continue;
                    }
                }
                else if (enemyStokeList[i].isBoss != isBoss)
                {
                    continue;
                }
                enemy = enemyStokeList[i];
                enemy.ClearDead();
                enemy.get_gameObject().set_name("Enemy:" + id);
                enemyStokeList.Remove(enemy);
                break;
            }
        }
        if (enemy != null)
        {
            enemy.id = id;
            enemy._transform.set_parent(base._transform);
            enemy._transform.set_position(pos);
            enemy._transform.set_eulerAngles(new Vector3(0f, dir, 0f));
            if (QuestManager.IsValidInGame())
            {
                enemy.enemyReward = MonoBehaviourSingleton <QuestManager> .I.GetCurrentQuestEnemyReward();
            }
            callback = CreateWrappedEnemyLoadCompletedDelegate(callback);
            if (callback != null)
            {
                this.StartCoroutine(_OnCallback(enemy, callback));
            }
            else
            {
                enemy.get_gameObject().SetActive(true);
            }
            return(enemy);
        }
        EnemyTable.EnemyData enemyData = Singleton <EnemyTable> .I.GetEnemyData((uint)enemyId);

        uint growId = enemyData.growId;

        GrowEnemyTable.GrowEnemyData growEnemyData = Singleton <GrowEnemyTable> .I.GetGrowEnemyData(growId, enemyLv);

        GameObject val = new GameObject();

        val.set_name("Enemy:" + id);
        val.SetActive(false);
        enemy                 = val.AddComponent <Enemy>();
        enemy.id              = id;
        enemy.enemyID         = (int)enemyData.id;
        enemy.isBoss          = (!QuestManager.IsValidInGameWaveMatch() && isBoss);
        enemy.isWaveMatchBoss = isBoss;
        enemy.enemyTableData  = enemyData;
        enemy.growTableData   = growEnemyData;
        enemy.charaName       = enemyData.name;
        enemy.enemyLevel      = ((growEnemyData == null) ? ((int)enemyData.level) : ((int)growEnemyData.level));
        enemy.moveStopRange  *= enemyData.modelScale;
        enemy.AddController <EnemyController>();
        if (QuestManager.IsValidInGame())
        {
            enemy.enemyReward = MonoBehaviourSingleton <QuestManager> .I.GetCurrentQuestEnemyReward();
        }
        enemy._transform.set_parent(base._transform);
        enemy._transform.set_position(pos);
        enemy._transform.set_eulerAngles(new Vector3(0f, dir, 0f));
        callback = CreateWrappedEnemyLoadCompletedDelegate(callback);
        enemy.loader.StartLoad(enemyData.modelId, enemyData.animId, enemyData.modelScale, enemyData.baseEffectName, enemyData.baseEffectNode, true, true, true, ShaderGlobal.GetCharacterShaderType(), -1, null, false, false, callback);
        return(enemy);
    }