// Token: 0x06002320 RID: 8992 RVA: 0x0040D8DC File Offset: 0x0040BADC public override void Update(Soldier sam, ArmyGroup parent, float deltaTime) { Vector3 center = (sam.LastTargetPos + sam.SpreadPos) * 0.5f; center.y = 10f; sam.transform.position = GameConstants.QuadraticBezierCurves(sam.LastTargetPos, center, sam.SpreadPos, 2f, sam.Timer); sam.Timer += deltaTime; if (sam.Timer >= 0.5f) { sam.Flag = 0; EStateName name = ArmyGroup.m_FSMMap[sam.Parent.State]; sam.FSMController = FSMManager.Instance.getState(name); } }
// Token: 0x060022AB RID: 8875 RVA: 0x00409820 File Offset: 0x00407A20 public virtual void Update(float deltaTime, float moveDeltaTime) { if (this.SoldierCount == 0) { if (this.heroSoldier != null) { this.heroSoldier.FSMController.Update(this.heroSoldier, this, deltaTime); } return; } this.checkMove(moveDeltaTime); FSMUnit fsmunit = null; if (this.ForceEnterFSM || this.lastState != this.m_State) { EStateName name = ArmyGroup.m_FSMMap[this.m_State]; fsmunit = ArmyGroup.FSMMgr.getState(name); if (this.m_State == ArmyGroup.EGROUPSTATE.MOVE_OUTOF_TOWN || this.m_State == ArmyGroup.EGROUPSTATE.JUMP_FROM_WALL) { this.bAttackMode = true; } else if (((WarManager.IsNpcModeEnable && this.Side != 0) || !this.hasLord) && (this.m_State == ArmyGroup.EGROUPSTATE.ATTACKER_RUN_AWAY || this.m_State == ArmyGroup.EGROUPSTATE.DEFENSER_RUN_AWAY)) { this.LordRunAway(this.m_State == ArmyGroup.EGROUPSTATE.ATTACKER_RUN_AWAY); } this.ForceEnterFSM = false; } int num = this.SoldierCountDefault - this.CurrentSoldierCount; if (num != this.DeadCount) { int num2 = num - this.DeadCount; if (num2 > 5) { } this.DeadCount = num; } for (int i = 0; i < this.SoldierCount; i++) { if (i >= this.CurrentSoldierCount) { EStateName curFSM = this.soldiers[i].CurFSM; if (curFSM != EStateName.DIE && curFSM != EStateName.DYING) { this.soldiers[i].Flag = 2; if (this.AttackBy != null) { this.soldiers[i].Target = ((this.AttackBy.heroSoldier == null) ? this.AttackBy.soldiers[0] : this.AttackBy.heroSoldier); } else { this.soldiers[i].Target = null; } this.soldiers[i].FSMController = ArmyGroup.FSMMgr.getState(EStateName.DYING); } } else if (fsmunit != null) { this.soldiers[i].FSMController = fsmunit; } this.soldiers[i].FSMController.Update(this.soldiers[i], this, deltaTime); this.soldiers[i].Update(deltaTime); } if (this.heroSoldier != null) { if (!this.bAttackMode && this.hasLord) { this.SiegeModeDefenserLordRun(deltaTime); } else { if (this.CurrentSoldierCount != 0 && fsmunit != null && this.m_State != ArmyGroup.EGROUPSTATE.ATTACKER_RUN_AWAY && this.m_State != ArmyGroup.EGROUPSTATE.DEFENSER_RUN_AWAY) { if (this.heroSoldier.IsLord && this.m_State == ArmyGroup.EGROUPSTATE.MOVE_OUTOF_TOWN) { this.heroSoldier.FSMController = FSMManager.Instance.getState(EStateName.JUMP_FROM_WALL); } else { this.heroSoldier.FSMController = fsmunit; } } this.heroSoldier.FSMController.Update(this.heroSoldier, this, deltaTime); this.heroSoldier.Update(deltaTime); } } if (this.bInsideSkill) { if (this.heroSoldier != null) { ((Lord)this.heroSoldier).bExtraScaleWork = false; } this.bInsideSkill = false; } this.OnceFlag = 0u; this.AttackBy = null; this.lastState = this.m_State; }
// Token: 0x06002327 RID: 8999 RVA: 0x0040DC14 File Offset: 0x0040BE14 public FSMUnit getState(EStateName name) { return(this.m_FSMUnit[(int)name]); }