// Token: 0x0600239D RID: 9117 RVA: 0x00412BE0 File Offset: 0x00410DE0 public override void FireRange(ArmyGroup targetGroup, FlyingObjectManager mgr, FOKind kind, float ms, ushort skillID, byte param = 0) { if (this.Target.GroupKind != EGroupKind.CastleGate && param > 0 && param <= 4) { int currentSoldierCount = this.Target.CurrentSoldierCount; for (int i = 0; i < 5; i++) { Vector3 begin = this.towerFirePoint[(int)(param - 1)] + this.towerFireOffset[i]; int num = (i < currentSoldierCount) ? i : (currentSoldierCount - 1); mgr.addFlyingObject(kind, begin, this.Target.soldiers[num].transform, ms, new Vector3(0f, 1f, 0f), null, ChaseType.Straight, null); } } }
// Token: 0x060022B3 RID: 8883 RVA: 0x0040A27C File Offset: 0x0040847C public virtual void FireRange(ArmyGroup targetGroup, FlyingObjectManager mgr, FOKind kind, float ms, ushort skillID, byte param = 0) { ushort num = this.heroSoldierFO; if (skillID <= 7 && this.soldiers != null && !this.bNpcMode) { for (int i = 0; i < this.CurrentSoldierCount; i++) { Soldier soldier = this.soldiers[i]; if (targetGroup.GroupKind != EGroupKind.CastleGate) { Transform end = (soldier.Target == null) ? targetGroup.groupRoot : soldier.Target.transform; mgr.addFlyingObject(kind, soldier.RangeFirePoint, end, ms, new Vector3(0f, 1f, 0f), null, ChaseType.CurveA, null); } else { float y = UnityEngine.Random.Range(5f, 10f); Vector3 vector = new Vector3(-3f, y, soldier.transform.position.z - 15f) + this.GetRandVector3(2f); mgr.addFlyingObject(kind, soldier.RangeFirePoint, this.Target.groupRoot, ms, vector, null, ChaseType.CurveA, null); if (soldier.hitParticleCount < 2) { soldier.hitParticlePos[(int)soldier.hitParticleCount] = this.Target.groupRoot.position + vector; Soldier soldier2 = soldier; soldier2.hitParticleCount += 1; } } } } if (this.heroSoldier != null) { Soldier soldier3 = this.heroSoldier; Transform modelTrans = ((Lord)this.heroSoldier).modelTrans; bool flag = !this.bAttackMode && this.hasLord; if (targetGroup.GroupKind != EGroupKind.CastleGate) { if (skillID <= 7 && this.heroSoldierFO != 0 && this.GroupKind != EGroupKind.Catapults && !flag) { Transform end2 = (soldier3.Target == null) ? targetGroup.groupRoot : soldier3.Target.transform; mgr.addFlyingObject((FOKind)(this.heroSoldierFO - 1), soldier3.RangeFirePoint, end2, ms, new Vector3(0f, 1f, 0f), modelTrans, ChaseType.CurveA, null); } else if (skillID > 7 && this.heroSoldierSkillFO != 0) { Transform end3 = (soldier3.Target == null) ? targetGroup.groupRoot : soldier3.Target.transform; Skill recordByKey = DataManager.Instance.SkillTable.GetRecordByKey(skillID); GameObject gameObject = this.particleManager.Spawn(this.heroSoldierSkillFO, null, Vector3.zero, 1f, true, false); if (gameObject != null) { ChaseType curveType = (recordByKey.FlyType != 1) ? ChaseType.Straight : ChaseType.CurveA; mgr.addFlyingObject(FOKind.FreeParticle, soldier3.RangeFirePoint, end3, ms, new Vector3(0f, 1f, 0f), modelTrans, curveType, gameObject); } } } else if (skillID <= 7 && this.heroSoldierFO != 0) { float y2 = UnityEngine.Random.Range(5f, 10f); Vector3 vector2 = new Vector3(-3f, y2, soldier3.transform.position.z - 15f); mgr.addFlyingObject((FOKind)(this.heroSoldierFO - 1), soldier3.RangeFirePoint, this.Target.groupRoot, ms, vector2, modelTrans, ChaseType.CurveA, null); if (soldier3.hitParticleCount < 2) { soldier3.hitParticlePos[(int)soldier3.hitParticleCount] = this.Target.groupRoot.position + vector2; Soldier soldier4 = soldier3; soldier4.hitParticleCount += 1; } } else if (skillID > 7 && this.heroSoldierSkillFO != 0) { float y3 = UnityEngine.Random.Range(5f, 10f); Vector3 b = new Vector3(-3f, y3, soldier3.transform.position.z - 15f); Skill recordByKey2 = DataManager.Instance.SkillTable.GetRecordByKey(skillID); GameObject gameObject2 = this.particleManager.Spawn(this.heroSoldierSkillFO, null, Vector3.zero, 1f, true, false); if (gameObject2 != null) { ChaseType curveType2 = (recordByKey2.FlyType != 1) ? ChaseType.Straight : ChaseType.CurveA; mgr.addFlyingObject(FOKind.FreeParticle, soldier3.RangeFirePoint, this.Target.groupRoot, ms, new Vector3(0f, 1f, 0f), modelTrans, curveType2, gameObject2); } if (soldier3.hitParticleCount < 2) { soldier3.hitParticlePos[(int)soldier3.hitParticleCount] = this.Target.groupRoot.position + b; Soldier soldier5 = soldier3; soldier5.hitParticleCount += 1; } } } }