}    //IL_0001: Unknown result type (might be due to invalid IL or missing references)

    //IL_0006: Unknown result type (might be due to invalid IL or missing references)


    public void Init(EnemyLoader _loader, Camera render_camrea, bool is_field_quest = false)
    {
        //IL_0038: Unknown result type (might be due to invalid IL or missing references)
        //IL_0056: Unknown result type (might be due to invalid IL or missing references)
        //IL_0088: Unknown result type (might be due to invalid IL or missing references)
        loader       = _loader;
        renderCamera = render_camrea;
        isFieldQuest = is_field_quest;
        animEvent    = new AnimEventProcessor(_loader.animEventData, _loader.animator, this);
        EnemyAnimCtrlProxy enemyAnimCtrlProxy = loader.body.get_gameObject().AddComponent <EnemyAnimCtrlProxy>();

        enemyAnimCtrlProxy.enemyAnimCtrl = this;
        if (isFieldQuest)
        {
            EnemyParam componentInChildren = this.get_gameObject().GetComponentInChildren <EnemyParam>();
            if (componentInChildren != null)
            {
                if (componentInChildren.stampInfos != null && componentInChildren.stampInfos.Length > 0)
                {
                    stepCtrl = this.get_gameObject().AddComponent <CharacterStampCtrl>();
                    stepCtrl.Init(componentInChildren.stampInfos, null, true);
                    stepCtrl.stampDistance = 999f;
                    stepCtrl.effectLayer   = 18;
                }
                Object.DestroyImmediate(componentInChildren);
                componentInChildren = null;
            }
        }
    }
Esempio n. 2
0
        private void FrmEnemy_Load(object sender, EventArgs e)
        {
            this.DataGridViewEnemy.DataSource          = list;
            this.DataGridViewEnemy.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            var connection = Conection.ConnectDB();
            var cmd        = new MySqlCommand("select * from enemy;", connection);
            var reader     = cmd.ExecuteReader();

            list.Clear();
            while (reader.Read())
            {
                var enemy = new EnemyParam();
                enemy.Id     = DBNull.Value != reader["Id"] ? Convert.ToInt32(reader.GetString("Id")) : 0;
                enemy.Name   = DBNull.Value != reader["name"] ? reader.GetString("name") : "";
                enemy.IsBoss = DBNull.Value != reader["isBoss"] ? Convert.ToBoolean(reader.GetString("isBoss")) : false;
                enemy.Hp     = DBNull.Value != reader["Hp"] ? Convert.ToInt32(reader.GetString("Hp")) : 0;
                enemy.Mp     = DBNull.Value != reader["Mp"] ? Convert.ToInt32(reader.GetString("Mp")) : 0;
                enemy.Atk    = DBNull.Value != reader["Atk"] ? Convert.ToInt32(reader.GetString("Atk")) : 0;
                enemy.Def    = DBNull.Value != reader["Def"] ? Convert.ToInt32(reader.GetString("Def")) : 0;
                enemy.Int    = DBNull.Value != reader["Int"] ? Convert.ToInt32(reader.GetString("Int")) : 0;
                enemy.Mnd    = DBNull.Value != reader["Mnd"] ? Convert.ToInt32(reader.GetString("Mnd")) : 0;
                enemy.Spd    = DBNull.Value != reader["Spd"] ? Convert.ToInt32(reader.GetString("Spd")) : 0;
                enemy.Lvl    = DBNull.Value != reader["Lvl"] ? Convert.ToInt32(reader.GetString("Lvl")) : 0;
                enemy.Exp    = DBNull.Value != reader["Exp"] ? Convert.ToInt32(reader.GetString("Exp")) : 0;
                list.Add(enemy);
            }
            Conection.DisConnectDB();
        }
Esempio n. 3
0
 public void Start()
 {
     // 出現間隔
     _interval  = EnemyParam.GenerationInterval();
     _tInterval = 0;
     // 出現数
     _number = EnemyParam.GenerationNumber();
 }
            void GenerateBarrage(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data, ref float deltaTime)
            {
                data.CooldownTimeCounter -= deltaTime;
                if (data.CooldownTimeCounter <= 0f)
                {
                    data.CooldownTimeCounter = param.CooldownTime;
                    switch (data.EnemyID)
                    {
                    case EnemyID.Aiming:
                        this.Aiming(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.Circle:
                        this.Circle(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.Spiral:
                        this.Spiral(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.ThreeWay:
                        // 3 way
                        this.NWay(ref jobIndex, ref enemyPosition, ref param, ref data, Constants.ThreeWayBulletCount);
                        break;

                    case EnemyID.FiveWay:
                        // 5 way
                        this.NWay(ref jobIndex, ref enemyPosition, ref param, ref data, Constants.FiveWayBulletCount);
                        break;

                    case EnemyID.SevenWay:
                        // 7 way
                        this.NWay(ref jobIndex, ref enemyPosition, ref param, ref data, Constants.SevenWayBulletCount);
                        break;

                    case EnemyID.SpiralCircle:
                        this.SpiralCircle(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.RandomWay:
                        this.RandomWay(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.WaveCircle:
                        this.WaveCircle(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    case EnemyID.WaveWay:
                        this.WaveWay(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;

                    default:
                        Debug.Log($"Invalid EnemyID : {data.EnemyID}");
                        this.Aiming(ref jobIndex, ref enemyPosition, ref param, ref data);
                        break;
                    }
                }
            }
 // 回転撃ち
 void Spiral(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data)
 {
     CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
     CommandBuffer.SetComponent(jobIndex, enemyPosition);
     CommandBuffer.SetComponent(jobIndex, new BulletData
     {
         Speed    = param.BulletParam.Speed,
         Angle    = data.DeltaTimeCounter * (Mathf.PI * 2f),
         Lifespan = param.BulletParam.Lifespan,
     });
 }
            // ----------------------------------------------------
            #region // Barrage Methods

            // 自機に狙い撃ち
            void Aiming(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data)
            {
                CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
                CommandBuffer.SetComponent(jobIndex, enemyPosition);
                CommandBuffer.SetComponent(jobIndex, new BulletData
                {
                    Speed    = param.BulletParam.Speed,
                    Angle    = MathHelper.Aiming(enemyPosition.Value, this.PlayerPosition),
                    Lifespan = param.BulletParam.Lifespan,
                });
            }
Esempio n. 7
0
    void InAction(EnemyParam param)
    {
        if (param.LevelStatus == EnemyParam.Level.LastBoss)
        {
            LastBossAction(param);
            return;
        }
        param.ActionTimer = 1.0f;
        var pos = param.Obj.transform.position;

        pos += Vector3.down;
        param.Obj.transform.position = pos;
        param.ActionStatus           = EnemyParam.Status.In;
    }
            // 全方位弾
            void Circle(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data)
            {
                int bulletCount = this.BarrageParamPtr->Circle.BulletCount;

                for (int i = 0; i < bulletCount; ++i)
                {
                    CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
                    CommandBuffer.SetComponent(jobIndex, enemyPosition);
                    CommandBuffer.SetComponent(jobIndex, new BulletData
                    {
                        Speed    = param.BulletParam.Speed,
                        Angle    = (i / (float)bulletCount) * (Mathf.PI * 2f),
                        Lifespan = param.BulletParam.Lifespan,
                    });
                }
            }
Esempio n. 9
0
    void OutAction(EnemyParam param)
    {
        if (param.LevelStatus == EnemyParam.Level.LastBoss)
        {
            param.ActionTimer = 10.0f;
        }
        else
        {
            param.ActionTimer = 1.0f;
        }
        var pos = param.Obj.transform.position;

        pos += Vector3.up;
        param.Obj.transform.position = pos;
        param.ActionStatus           = EnemyParam.Status.Out;
    }
Esempio n. 10
0
    public Enemy SpawnEnemy(EnemyParam enemyParam, Vector3 position, Quaternion quaternion)
    {
        Enemy enemy;

        switch (enemyParam.EnemyType)
        {
        case EnemyType.Normal:
            enemy = normal;
            break;

        case EnemyType.Walker:
            enemy = walker;
            break;

        case EnemyType.Climber:
            enemy = climber;
            break;

        case EnemyType.Ghost:
            enemy = ghost;
            break;

        case EnemyType.Jet:
            enemy = jet;
            break;

        case EnemyType.Jumper:
            enemy = jumper;
            break;

        case EnemyType.Armor:
            enemy = armor;
            break;

        case EnemyType.ArmorJet:
            enemy = armorJet;
            break;

        default:
            enemy = normal;
            break;
        }
        enemy = Instantiate(enemy, position, quaternion);
        enemy.Initialize(enemyParam);
        return(enemy);
    }
Esempio n. 11
0
    void UpdateScore(EnemyParam param)
    {
        switch (param.LevelStatus)
        {
        case EnemyParam.Level.Mob:
            StaticDatas.Instance.UIManger.ScoreText.Score += 1;
            break;

        case EnemyParam.Level.Boss:
            StaticDatas.Instance.UIManger.ScoreText.Score += 10;
            break;

        case EnemyParam.Level.LastBoss:
            StaticDatas.Instance.UIManger.ScoreText.Score += 100;
            break;
        }
    }
            // 全方位に波撃ち
            void WaveCircle(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data)
            {
                int   bulletCount = this.BarrageParamPtr->WaveCircle.BulletCount;
                float sinTime     = math.sin(data.DeltaTimeCounter * this.BarrageParamPtr->WaveCircle.AnimationSpeed);

                for (int i = 0; i < bulletCount; ++i)
                {
                    CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
                    CommandBuffer.SetComponent(jobIndex, enemyPosition);
                    CommandBuffer.SetComponent(jobIndex, new BulletData
                    {
                        Speed    = param.BulletParam.Speed,
                        Angle    = sinTime + ((i / (float)bulletCount) * (Mathf.PI * 2f)),
                        Lifespan = param.BulletParam.Lifespan,
                    });
                }
            }
            // 前方に分岐撃ち
            void NWay(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data, int bulletCount)
            {
                float range           = math.radians(this.BarrageParamPtr->CommonWay.Range);
                var   angle           = MathHelper.Aiming(enemyPosition.Value, this.PlayerPosition);
                int   halfBulletCount = (int)(bulletCount / 2);

                for (int i = 0; i < bulletCount; ++i)
                {
                    CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
                    CommandBuffer.SetComponent(jobIndex, enemyPosition);
                    CommandBuffer.SetComponent(jobIndex, new BulletData
                    {
                        Speed    = param.BulletParam.Speed,
                        Angle    = angle + ((i - halfBulletCount) * range),
                        Lifespan = param.BulletParam.Lifespan,
                    });
                }
            }
            bool Movement(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data, ref float deltaTime)
            {
                // 破棄管理
                if (param.Lifespan <= data.DeltaTimeCounter)
                {
                    var destroyable = this.Destroyables[jobIndex];
                    destroyable = Destroyable.Kill;
                    this.Destroyables[jobIndex] = destroyable;
                    return(true);
                }

                // 移動
                float2 dir = new float2(0f);

                switch ((SpawnPoint)data.SpawnPoint)
                {
                case SpawnPoint.LeftTop:
                case SpawnPoint.LeftMiddle:
                case SpawnPoint.LeftBottom:
                    dir = new float2(1f, 0f);
                    break;

                case SpawnPoint.RightTop:
                case SpawnPoint.RightMiddle:
                case SpawnPoint.RightBottom:
                    dir = new float2(-1f, 0f);
                    break;

                case SpawnPoint.TopLeft:
                case SpawnPoint.TopMiddle:
                case SpawnPoint.TopRight:
                    dir = new float2(0f, -1f);
                    break;

                case SpawnPoint.BottomLeft:
                case SpawnPoint.BottomMiddle:
                case SpawnPoint.BottomRight:
                    dir = new float2(0f, 1f);
                    break;
                }

                enemyPosition.Value += (dir * param.Speed * deltaTime);
                return(false);
            }
Esempio n. 15
0
    public void Init(List <Vec2D> path)
    {
        _path    = path;
        _pathIdx = 0;
        _speed   = EnemyParam.Speed();
        _tSpeed  = 0;

        // アニメーションの違和感をなくすため、画面外から出るようにする
        MoveNext();
        _prev.Copy(_next);
        _prev.x -= Field.GetChipSize();
        FixedUpdate();

        // HPを設定する
        _hp = EnemyParam.Hp();

        // 所持金を設定
        _money = EnemyParam.Money();
    }
            // 前方にランダムに分岐撃ち
            void RandomWay(ref int jobIndex, ref Position2D enemyPosition, ref EnemyParam param, ref EnemyData data)
            {
                float range = this.BarrageParamPtr->RandomWay.Range;

                this.RandomPtr->state += 1;
                range = this.RandomPtr->NextFloat(-range, range);
                range = math.radians(range);

                var angle = MathHelper.Aiming(enemyPosition.Value, this.PlayerPosition);

                CommandBuffer.Instantiate(jobIndex, this.EnemyBulletPrefab);
                CommandBuffer.SetComponent(jobIndex, enemyPosition);
                CommandBuffer.SetComponent(jobIndex, new BulletData
                {
                    Speed    = param.BulletParam.Speed,
                    Angle    = angle + range,
                    Lifespan = param.BulletParam.Lifespan,
                });
            }
Esempio n. 17
0
    void UpdateTime(EnemyParam param)
    {
        param.ActionTimer -= Time.deltaTime;

        if (param.ActionTimer <= 0.0f)
        {
            if (param.ActionStatus == EnemyParam.Status.In)
            {
                OutAction(param);
            }
            else if (param.ActionStatus == EnemyParam.Status.Out)
            {
                InAction(param);
            }
        }

        if (!param.IsDamage)
        {
            return;
        }
        var color = param.Renderer.material.color;

        if (!param.IsColorRecovery)
        {
            color.r -= Time.deltaTime * 5;
            if (color.r <= 0.0f)
            {
                param.IsColorRecovery = true;
            }
        }
        else
        {
            color.r += Time.deltaTime * 5;
            if (color.r >= 1.0f)
            {
                param.IsDamage        = false;
                param.IsColorRecovery = false;
            }
        }
        param.Renderer.material.color = color;
    }
Esempio n. 18
0
    Vec2D _next;    //1つ先
    //
    public void Init(List <Vec2D> path)
    {
        //経路をコピー
        _path    = path;
        _pathIdx = 0;
        //移動速度
        _speed  = EnemyParam.Speed();
        _tSpeed = 0;

        //移動先を更新
        MoveNext();
        // _prevに反映する。
        _prev.Copy(_next);
        //1つ左にずらす
        _prev.x -= Field.GetChipSize();
        //一度座標を更新しておく
        FixedUpdate();

        // HPを設定する
        _hp = EnemyParam.Hp();
        //所持金を設定
        _money = EnemyParam.Money();
    }
Esempio n. 19
0
    public void Ini(EnemyParam param, EnemyParam.Level level)
    {
        switch (level)
        {
        case EnemyParam.Level.Mob:
            param.LevelStatus = level;
            param.ActionTimer = Random.Range(1.0f, 3.0f);
            param.HP          = 1;
            break;

        case EnemyParam.Level.Boss:
            param.LevelStatus = level;
            param.ActionTimer = Random.Range(3.0f, 5.0f);
            param.HP          = 5;
            break;

        case EnemyParam.Level.LastBoss:
            param.LevelStatus = level;
            param.ActionTimer = 1;
            param.HP          = 20;
            break;
        }
    }
Esempio n. 20
0
    public void Initialize(EnemyParam enemyParam)
    {
        this.type          = enemyParam.EnemyType;
        this.health        = enemyParam.Health;
        healthBar.maxValue = health;
        healthBar.value    = health;

        groundingTrigger.collidersEvent = () =>
        {
            enemyMove.UpdateMoveState(groundingTrigger.colliders.Count, climbingTrigger.colliders.Count);
            enemyMove.UpdateVelocity(groundingVector, flyingVector, climbingVector);
        };
        climbingTrigger.collidersEvent = () =>
        {
            enemyMove.UpdateMoveState(groundingTrigger.colliders.Count, climbingTrigger.colliders.Count);
            enemyMove.UpdateVelocity(groundingVector, flyingVector, climbingVector);
        };

        enemyMove.UpdateDestination(true, transform.position, ObjectManager.Instance.WaveManager.checkpoints[enemyMove.checkpointIndex + 1]);

        enemyMove.UpdateMoveState(groundingTrigger.colliders.Count, climbingTrigger.colliders.Count);
        enemyMove.UpdateVelocity(groundingVector, flyingVector, climbingVector);
        UpdateAngles();
    }
Esempio n. 21
0
    private IEnumerator DoLoad(int body_id, int anim_id, float scale, string base_effect, string base_effect_node, bool need_shadow, bool enable_light_probes, bool need_anim_event_res_cache, SHADER_TYPE shader_type, int layer, string foundation_name, bool need_stamp_effect, bool will_stock, OnCompleteLoad callback)
    {
        Enemy enemy = this.get_gameObject().GetComponent <Enemy>();

        if (enemy != null)
        {
            int id = enemy.id;
        }
        bodyID    = body_id;
        bodyScale = scale;
        bool is_boss = false;

        if (enemy != null)
        {
            is_boss = enemy.isBoss;
            if (enemy.controller != null)
            {
                enemy.controller.set_enabled(false);
            }
            if (enemy.packetReceiver != null)
            {
                enemy.packetReceiver.SetStopPacketUpdate(true);
            }
            enemy.OnLoadStart();
        }
        string    body_name = ResourceName.GetEnemyBody(body_id);
        string    mate_name = ResourceName.GetEnemyMaterial(body_id);
        string    anim_name = ResourceName.GetEnemyAnim(anim_id);
        Transform _this     = this.get_transform();

        isLoading = true;
        LoadingQueue load_queue = new LoadingQueue(this);
        LoadObject   lo_body    = load_queue.LoadAndInstantiate(RESOURCE_CATEGORY.ENEMY_MODEL, body_name);
        LoadObject   lo_mate    = (mate_name == null) ? null : load_queue.Load(RESOURCE_CATEGORY.ENEMY_MATERIAL, body_name, new string[1]
        {
            mate_name
        }, false);
        LoadObject lo_anim = load_queue.Load(RESOURCE_CATEGORY.ENEMY_ANIM, anim_name, new string[2]
        {
            anim_name + "Ctrl",
            anim_name + "Event"
        }, false);

        if (!string.IsNullOrEmpty(base_effect))
        {
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, base_effect);
        }
        LoadObject lo_foundation = null;

        if (!string.IsNullOrEmpty(foundation_name))
        {
            if (!MonoBehaviourSingleton <GlobalSettingsManager> .I.uiModelRendering.enableEnemyModelFoundationFromQuestStage)
            {
                foundation_name = "FST011";
            }
            lo_foundation = load_queue.LoadAndInstantiate(RESOURCE_CATEGORY.FOUNDATION_MODEL, foundation_name);
        }
        yield return((object)load_queue.Wait());

        body = lo_body.Realizes(_this, (layer != -1) ? layer : 11);
        if (layer == -1)
        {
            this.get_gameObject().set_layer(10);
        }
        body.set_localPosition(Vector3.get_zero());
        body.set_localRotation(Quaternion.get_identity());
        renderersBody = body.get_gameObject().GetComponentsInChildren <Renderer>();
        if (lo_mate != null && lo_mate.loadedObject != null && renderersBody.Length == 1)
        {
            Material mate = lo_mate.loadedObject as Material;
            if (mate != null)
            {
                renderersBody[0].set_sharedMaterial(mate);
            }
        }
        if (enemy != null)
        {
            enemy.body = body;
        }
        body.set_localScale(Vector3.Scale(body.get_localScale(), new Vector3(scale, scale, scale)));
        animator = body.get_gameObject().GetComponent <Animator>();
        if (animator != null && lo_anim.loadedObjects != null)
        {
            animator.set_runtimeAnimatorController(lo_anim.loadedObjects[0].obj);
            if (lo_anim.loadedObjects.Length >= 2 && lo_anim.loadedObjects[1] != null)
            {
                this.animEventData = (lo_anim.loadedObjects[1].obj as AnimEventData);
            }
            if (enemy != null)
            {
                body.get_gameObject().AddComponent <StageObjectProxy>().stageObject = enemy;
                enemy.animEventData = this.animEventData;
            }
        }
        if (!string.IsNullOrEmpty(base_effect))
        {
            string node_name = base_effect_node;
            if (string.IsNullOrEmpty(node_name))
            {
                node_name = "Root";
            }
            Transform node             = Utility.Find(body, node_name);
            Transform effect_transform = EffectManager.GetEffect(base_effect, node);
            if (effect_transform != null)
            {
                baseEffect = effect_transform;
                if (layer != -1)
                {
                    Utility.SetLayerWithChildren(effect_transform, layer);
                }
            }
        }
        if (shader_type == SHADER_TYPE.LIGHTWEIGHT)
        {
            ShaderGlobal.ChangeWantLightweightShader(renderersBody);
        }
        if (is_boss)
        {
            materialParamsList = new List <MaterialParams>();
            Shader.PropertyToID("_RimPower");
            Shader.PropertyToID("_RimWidth");
            Shader.PropertyToID("_Vanish_flag");
            Shader.PropertyToID("_Vanish_rate");
            Utility.MaterialForEach(renderersBody, delegate(Material material)
            {
                if (material != null)
                {
                    MaterialParams materialParams = new MaterialParams
                    {
                        material = material
                    };
                    if (materialParams.hasRimPower = material.HasProperty(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_RIM_POWER_003E__16))
                    {
                        materialParams.defaultRimPower = material.GetFloat(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_RIM_POWER_003E__16);
                    }
                    if (materialParams.hasRimWidth = material.HasProperty(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_RIM_WIDTH_003E__17))
                    {
                        materialParams.defaultRimWidth = material.GetFloat(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_RIM_WIDTH_003E__17);
                    }
                    materialParams.hasVanishFlag = material.HasProperty(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_VANISH_FLAG_003E__18);
                    materialParams.hasVanishRate = material.HasProperty(((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003CID_VANISH_RATE_003E__19);
                    ((_003CDoLoad_003Ec__Iterator228) /*Error near IL_062d: stateMachine*/)._003C_003Ef__this.materialParamsList.Add(materialParams);
                }
            });
        }
        int l = 0;

        for (int k = renderersBody.Length; l < k; l++)
        {
            renderersBody[l].set_useLightProbes(enable_light_probes);
        }
        EnemyParam param = body.get_gameObject().GetComponent <EnemyParam>();

        body.get_gameObject().SetActive(false);
        if (need_anim_event_res_cache && animator != null && lo_anim.loadedObjects != null && lo_anim.loadedObjects[1] != null)
        {
            AnimEventData tmpAnimEventData = lo_anim.loadedObjects[1].obj as AnimEventData;
            if (tmpAnimEventData != null)
            {
                if (enemy == null)
                {
                    load_queue.CacheAnimDataUseResource(tmpAnimEventData, null, null);
                }
                else
                {
                    LoadingQueue  loadingQueue  = load_queue;
                    AnimEventData animEventData = tmpAnimEventData;
                    Enemy         enemy2        = enemy;
                    loadingQueue.CacheAnimDataUseResource(animEventData, ((Character)enemy2).EffectNameAnalyzer, enemy.continusAtkEventDataList);
                }
                PreSetAnimationEventDataParamToEnemy(tmpAnimEventData, enemy);
            }
        }
        AnimEventData.ResidentEffectData[] residentEffectList = null;
        if (this.animEventData != null)
        {
            residentEffectList = this.animEventData.residentEffectDataList;
            if (residentEffectList != null)
            {
                int numEffect3 = residentEffectList.Length;
                for (int ef3 = 0; ef3 < numEffect3; ef3++)
                {
                    if (!string.IsNullOrEmpty(residentEffectList[ef3].effectName))
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, residentEffectList[ef3].effectName);
                    }
                }
            }
        }
        if (param != null)
        {
            if (enemy != null || need_stamp_effect)
            {
                StageObject.StampInfo[] stampInfos = param.stampInfos;
                foreach (StageObject.StampInfo info4 in stampInfos)
                {
                    load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, info4.effectName);
                }
            }
            if (param.isHide)
            {
                FieldMapTable.GatherPointViewTableData viewData = Singleton <FieldMapTable> .I.GetGatherPointViewData(param.gatherPointViewId);

                if (viewData != null)
                {
                    if (!string.IsNullOrEmpty(viewData.targetEffectName))
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, viewData.targetEffectName);
                    }
                    if (!string.IsNullOrEmpty(viewData.gatherEffectName))
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, viewData.gatherEffectName);
                    }
                }
            }
            SystemEffectSetting sysEffectSetting2 = param.residentEffectSetting;
            if (sysEffectSetting2 != null)
            {
                SystemEffectSetting.Data[] effectDataList = sysEffectSetting2.effectDataList;
                if (effectDataList != null)
                {
                    int numEffect2 = effectDataList.Length;
                    for (int ef2 = 0; ef2 < numEffect2; ef2++)
                    {
                        if (!string.IsNullOrEmpty(effectDataList[ef2].effectName))
                        {
                            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, effectDataList[ef2].effectName);
                        }
                    }
                }
            }
        }
        if (load_queue.IsLoading())
        {
            yield return((object)load_queue.Wait());
        }
        if (enemy != null)
        {
            if (param != null)
            {
                EnemyTable.EnemyData data           = enemy.enemyTableData;
                AttackHitInfo[]      attackHitInfos = param.attackHitInfos;
                foreach (AttackHitInfo temp_info in attackHitInfos)
                {
                    AttackHitInfo info = temp_info;
                    if (!string.IsNullOrEmpty(data.convertRegionKey))
                    {
                        string          convert_name          = info.name + "_" + data.convertRegionKey;
                        AttackHitInfo[] convertAttackHitInfos = param.convertAttackHitInfos;
                        foreach (AttackHitInfo convert_info in convertAttackHitInfos)
                        {
                            if (convert_info.name == convert_name)
                            {
                                info = convert_info;
                                break;
                            }
                        }
                    }
                    if (info.hitSEID != 0)
                    {
                        load_queue.CacheSE(info.hitSEID, null);
                    }
                    load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, info.hitEffectName);
                    load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, info.remainEffectName);
                    load_queue.CacheBulletDataUseResource(info.bulletData, null);
                    RestraintInfo restInfo = temp_info.restraintInfo;
                    if (restInfo.enable && !string.IsNullOrEmpty(restInfo.effectName))
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, restInfo.effectName);
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_target_flick");
                        if (temp_info.toPlayer.reactionType != 0)
                        {
                            Log.Error(LOG.INGAME, "Can't use reactionType with RestraintInfo!! " + temp_info.name);
                        }
                    }
                    GrabInfo grabInfo = temp_info.grabInfo;
                    if (grabInfo != null && grabInfo.enable && temp_info.toPlayer.reactionType != 0)
                    {
                        Log.Error(LOG.INGAME, "Can't use reactionType with GrabInfo!! " + temp_info.name);
                    }
                    InkSplashInfo inkSplashInfo = temp_info.inkSplashInfo;
                    if (inkSplashInfo != null && inkSplashInfo.duration > 0f)
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_pl_blind_01");
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_pl_blind_02");
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_target_flick");
                    }
                }
                AttackContinuationInfo[] attackContinuationInfos = param.attackContinuationInfos;
                foreach (AttackContinuationInfo temp_info2 in attackContinuationInfos)
                {
                    AttackContinuationInfo info2 = temp_info2;
                    if (!string.IsNullOrEmpty(data.convertRegionKey))
                    {
                        string convert_name2 = info2.name + "_" + data.convertRegionKey;
                        AttackContinuationInfo[] convertAttackContinuationInfos = param.convertAttackContinuationInfos;
                        foreach (AttackContinuationInfo convert_info2 in convertAttackContinuationInfos)
                        {
                            if (convert_info2.name == convert_name2)
                            {
                                info2 = convert_info2;
                                break;
                            }
                        }
                    }
                    load_queue.CacheBulletDataUseResource(info2.bulletData, null);
                }
                Enemy.RegionInfo[] regionInfos = param.regionInfos;
                foreach (Enemy.RegionInfo temp_info3 in regionInfos)
                {
                    Enemy.RegionInfo info3 = temp_info3;
                    if (!string.IsNullOrEmpty(data.convertRegionKey))
                    {
                        string             convert_name3      = info3.name + "_" + data.convertRegionKey;
                        Enemy.RegionInfo[] convertRegionInfos = param.convertRegionInfos;
                        foreach (Enemy.RegionInfo convert_info3 in convertRegionInfos)
                        {
                            if (convert_info3.name == convert_name3)
                            {
                                info3 = convert_info3;
                                break;
                            }
                        }
                    }
                    load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, info3.breakEffect.effectName);
                }
                if (Singleton <EnemyHitMaterialTable> .IsValid())
                {
                    int j = 0;
                    for (int len2 = param.regionInfos.Length; j < len2 + 1; j++)
                    {
                        string hit_material_name = (j >= len2) ? param.baseHitMaterialName : param.regionInfos[j].hitMaterialName;
                        if (!string.IsNullOrEmpty(hit_material_name))
                        {
                            EnemyHitMaterialTable.MaterialData check_data = Singleton <EnemyHitMaterialTable> .I.GetData(hit_material_name);

                            if (check_data != null)
                            {
                                load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, check_data.addEffectName);
                                int[] typeSEIDs = check_data.typeSEIDs;
                                foreach (int type_se_id in typeSEIDs)
                                {
                                    if (type_se_id != 0)
                                    {
                                        load_queue.CacheSE(type_se_id, null);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (MonoBehaviourSingleton <InGameSettingsManager> .IsValid())
            {
                load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, MonoBehaviourSingleton <GlobalSettingsManager> .I.linkResources.enemyParalyzeHitEffectName);
                load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, MonoBehaviourSingleton <GlobalSettingsManager> .I.linkResources.enemyPoisonHitEffectName);
            }
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_enm_shock_01");
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_enm_fire_01");
            load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, "ef_btl_pl_movedown_01");
            EffectPlayProcessor processor = body.get_gameObject().GetComponent <EffectPlayProcessor>();
            if (processor != null && processor.effectSettings != null)
            {
                enemy.effectPlayProcessor = processor;
                int i = 0;
                for (int len = processor.effectSettings.Length; i < len; i++)
                {
                    if (!string.IsNullOrEmpty(processor.effectSettings[i].effectName))
                    {
                        load_queue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, processor.effectSettings[i].effectName);
                    }
                }
            }
            if (load_queue.IsLoading())
            {
                yield return((object)load_queue.Wait());
            }
        }
        body.get_gameObject().SetActive(true);
        if (residentEffectList != null)
        {
            int numEffect = residentEffectList.Length;
            for (int ef = 0; ef < numEffect; ef++)
            {
                AnimEventData.ResidentEffectData effectData = residentEffectList[ef];
                if (!string.IsNullOrEmpty(effectData.effectName) && !string.IsNullOrEmpty(effectData.linkNodeName))
                {
                    Transform parentTrans = Utility.Find(body.get_transform(), effectData.linkNodeName);
                    if (parentTrans == null)
                    {
                        parentTrans = body.get_transform();
                    }
                    Transform effectTrans = EffectManager.GetEffect(effectData.effectName, parentTrans);
                    if (effectTrans != null)
                    {
                        if (layer != -1)
                        {
                            Utility.SetLayerWithChildren(effectTrans, layer);
                        }
                        Vector3 basisScale = effectTrans.get_localScale();
                        effectTrans.set_localScale(basisScale * effectData.scale);
                        effectTrans.set_localPosition(effectData.offsetPos);
                        effectTrans.set_localRotation(Quaternion.Euler(effectData.offsetRot));
                        ResidentEffectObject residentEffect = effectTrans.get_gameObject().AddComponent <ResidentEffectObject>();
                        residentEffect.Initialize(effectData);
                        if (enemy != null)
                        {
                            enemy.RegisterResidentEffect(residentEffect);
                        }
                    }
                }
            }
        }
        if (param != null)
        {
            SystemEffectSetting sysEffectSetting = param.residentEffectSetting;
            SysEffectCreate(enemy, layer, sysEffectSetting);
        }
        if (need_shadow && param != null && param.shadowSize > 0f)
        {
            shadow = MonoBehaviourSingleton <GlobalSettingsManager> .I.linkResources.CreateShadow(param.shadowSize, param.bodyRadius, bodyScale, true, _this, shader_type == SHADER_TYPE.LIGHTWEIGHT);
        }
        if (enemy != null)
        {
            if (param != null)
            {
                param.SetParam(enemy);
                Object.DestroyImmediate(param);
            }
            if (enemy.controller != null)
            {
                enemy.controller.set_enabled(true);
            }
            enemy.willStock = will_stock;
            enemy.OnLoadComplete();
            if (enemy.packetReceiver != null)
            {
                enemy.packetReceiver.SetStopPacketUpdate(false);
            }
        }
        callback?.Invoke(enemy);
        if (lo_foundation != null)
        {
            foundation = lo_foundation.Realizes(_this, layer);
            foundation.SetParent(_this.get_parent(), true);
        }
        isLoading = false;
    }
Esempio n. 22
0
 public void Update(EnemyParam param)
 {
     UpdateTime(param);
 }
Esempio n. 23
0
 void LastBossAction(EnemyParam param)
 {
     StaticDatas.Instance.EnemyManager.Destroy(param.Obj);
 }