private void OnExplode(MultiDirectionMissileAction.MissileInfo data, ActorController actor) { if (data != null && data.missile != null) { PoolMgr.spawnPool.Despawn(data.missile.transform, this.MissileDeleteDelay); data.missile = null; } if (this.explodePrefab != null) { Transform instance = PoolMgr.SpawnParticleSystem(this.explodePrefab.transform, actor.transform.position, actor.transform.rotation, 1f); PoolMgr.spawnPool.Despawn(instance, this.explodeLifeTime); } if (actor != null) { base.variables.skillCaster.OnMissileHit(base.variables.skillInfo, actor, base.variables.targetPosition, 0); } }
private void CheckExplode(MultiDirectionMissileAction.MissileInfo data) { ActorController actorController = null; List<ActorController> actors = Globals.Instance.ActorMgr.Actors; float num = 0.1f; for (int i = 0; i < actors.Count; i++) { ActorController actorController2 = actors[i]; if (actorController2 && !actorController2.IsDead && base.variables.skillCaster.IsHostileTo(actorController2)) { float num2 = CombatHelper.DistanceSquared2D(data.missile.transform.position, actorController2.transform.position); if (num2 < num) { num = num2; actorController = actorController2; } } } if (actorController != null) { this.OnExplode(data, actorController); } }