} //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; } } }
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(); }
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, }); }
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, }); } }
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; }
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); }
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); }
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, }); }
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; }
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(); }
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; } }
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(); }
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; }
public void Update(EnemyParam param) { UpdateTime(param); }
void LastBossAction(EnemyParam param) { StaticDatas.Instance.EnemyManager.Destroy(param.Obj); }