Example #1
0
 // Token: 0x060022F3 RID: 8947 RVA: 0x0040C3F8 File Offset: 0x0040A5F8
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if ((parent.OnceFlag & 1u) != 0u)
     {
         sam.PlayAnim(ESheetMeshAnim.attack, SAWrapMode.Default, false, false, false);
     }
 }
Example #2
0
    // Token: 0x060022CD RID: 8909 RVA: 0x0040B248 File Offset: 0x00409448
    public static Soldier ReallocTarget(Soldier self, ArmyGroup targetAry)
    {
        if (self.Target != null)
        {
            return(self.Target);
        }
        if (self.IsHeroSoldier && targetAry.heroSoldier != null)
        {
            return(targetAry.heroSoldier);
        }
        if (targetAry.bNpcMode)
        {
            return(targetAry.heroSoldier);
        }
        int rowCount = self.Parent.RowCount;
        int num      = (int)self.Index / rowCount;
        int num2     = rowCount * (num + 1) - (int)(self.Index + 1);
        int num3     = rowCount * num + num2;

        num3 = ((num3 < targetAry.CurrentSoldierCount) ? num3 : UnityEngine.Random.Range(0, targetAry.CurrentSoldierCount));
        num3 = Mathf.Max(num3, 0);
        Soldier soldier = targetAry.soldiers[num3];

        if (soldier.CurFSM == EStateName.DIE)
        {
            soldier = targetAry.soldiers[0];
        }
        return(soldier);
    }
Example #3
0
    // Token: 0x0600230B RID: 8971 RVA: 0x0040CFA0 File Offset: 0x0040B1A0
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        if (sam.Flag != 0)
        {
            sam.Timer -= deltaTime;
            if (sam.Timer > 0f)
            {
                return;
            }
            sam.Flag  = 0;
            sam.Timer = 0f;
            sam.SampleAnimation(ESheetMeshAnim.victory, 0.36f);
        }
        Vector3 center = sam.SpreadPos + FSMUnit.JUMP_FROM_WALL_CENTER_OFFSET;

        sam.transform.position = GameConstants.QuadraticBezierCurves(sam.SpreadPos, center, sam.LastTargetPos, 1.25f, sam.Timer);
        sam.Timer += deltaTime;
        if (sam.Timer >= 0.8f)
        {
            sam.EnableShadow = true;
            sam.SpreadPos    = Vector3.zero;
            if (FSMManager.Instance.bIsBattleOver && DataManager.Instance.War_LordCapture != 0)
            {
                sam.FSMController = FSMManager.Instance.getState(EStateName.GO_CAPTIVING);
            }
            else
            {
                sam.FSMController = FSMManager.Instance.getState(EStateName.IDLE_FASTRUN);
            }
        }
    }
Example #4
0
 // Token: 0x060022FF RID: 8959 RVA: 0x0040CAF4 File Offset: 0x0040ACF4
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.DyingValue > -0.1f)
     {
         sam.DyingValue += deltaTime;
     }
     if (sam.DyingValue >= 20f)
     {
         sam.DyingValue = -10f;
     }
     else if (sam.DyingValue < 0f)
     {
         Transform transform = sam.transform;
         Vector3   position  = transform.position;
         position.y        -= 1f * deltaTime;
         transform.position = position;
         if (position.y <= -2f)
         {
             parent.SoldierCount--;
             parent.soldiers[parent.SoldierCount].transform.gameObject.SetActive(false);
             if (parent.SoldierCount <= 0)
             {
                 parent.BeforeDeadDisable();
             }
         }
     }
 }
Example #5
0
    public void RecruitUnit()
    {
        foreach (GameObject province in provinces)
        {
            if (province.transform.position.x == mainCamera.position.x && province.transform.position.y == mainCamera.position.y)
            {
                Province selectedProvince = province.GetComponent <Province>();
                if (isLeader)
                {
                    ArmyGroup[] temp = new ArmyGroup[armies.Length + 1];
                    armies.CopyTo(temp, 0);
                    temp[armies.Length].leader = leader;
                    armies = temp;

                    provinceController.money -= leader.costMoney;
                    provinceResources        -= leader.costResources;
                }
                else
                {
                    Unit[] units = armies[armies.Length - 1].units;
                    Unit[] temp  = new Unit[units.Length + 1];
                    units.CopyTo(temp, 0);
                    temp[units.Length] = unit;
                    armies[armies.Length - 1].units = temp;

                    provinceController.money -= unit.costMoney;
                    provinceResources        -= unit.costResources;
                }
            }
        }
    }
Example #6
0
 // Token: 0x060022D2 RID: 8914 RVA: 0x0040B49C File Offset: 0x0040969C
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.ActionMode == EActionMode.Personal)
     {
         Transform transform      = sam.transform;
         Vector3   transformPoint = parent.getTransformPoint((int)sam.Index);
         Vector3   vector         = transformPoint - transform.position;
         if (vector != Vector3.zero)
         {
             Quaternion to = Quaternion.LookRotation(vector);
             transform.rotation = Quaternion.Slerp(transform.rotation, to, 5f * deltaTime);
         }
         FSMUnit.MoveSoldier(sam, transformPoint, parent.MoveSpeed * 1.3f * deltaTime);
         if (GameConstants.DistanceSquare(transform.position, transformPoint) <= 0.0001f)
         {
             sam.ActionMode = EActionMode.Team;
             sam.PlayAnim(ESheetMeshAnim.idle, SAWrapMode.Loop, true, false, false);
             sam.NotifyingParent(0);
         }
     }
     else if (sam.transform.rotation != parent.groupRoot.rotation)
     {
         sam.transform.rotation = Quaternion.Slerp(sam.transform.rotation, parent.groupRoot.rotation, 5f * deltaTime);
     }
 }
Example #7
0
    // Token: 0x060022F6 RID: 8950 RVA: 0x0040C444 File Offset: 0x0040A644
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        Transform transform = sam.transform;
        Vector3   vector    = sam.SpreadPos - transform.position;

        if (vector != Vector3.zero)
        {
            Quaternion quaternion = Quaternion.LookRotation(vector);
            if (transform.rotation != quaternion)
            {
                transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
            }
        }
        FSMUnit.MoveSoldier(sam, sam.SpreadPos, parent.MoveSpeed * 1.3f * deltaTime);
        if (GameConstants.DistanceSquare(transform.position, sam.SpreadPos) <= 0.0001f)
        {
            sam.SpreadPos  = Vector3.zero;
            sam.SpreadMode = ESpreadMode.NotSpread;
            if (sam.Parent.Target.GroupKind == EGroupKind.CastleGate)
            {
                sam.FSMController = FSMManager.Instance.getState(EStateName.RANGE_FIGHT_WALL);
            }
            else
            {
                sam.FSMController = FSMManager.Instance.getState(EStateName.RANGE_FIGHT);
            }
        }
    }
Example #8
0
    // Token: 0x060022E7 RID: 8935 RVA: 0x0040BF48 File Offset: 0x0040A148
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        if (parent.Target != null && parent.Target.GroupKind == EGroupKind.CastleGate)
        {
            return;
        }
        if (sam.Target == null)
        {
            sam.FSMController = FSMManager.Instance.getState(EStateName.LOSETARGET);
        }
        if (sam.fightTimer > 0f)
        {
            sam.fightTimer -= deltaTime;
            if (sam.fightTimer <= 0f)
            {
                sam.PlayAnim(ESheetMeshAnim.attack, SAWrapMode.Default, true, false, false);
                sam.fightTimer = ((!sam.IsHeroSoldier) ? 1.5f : 3f);
            }
        }
        Transform transform  = sam.Target.transform;
        Transform transform2 = sam.transform;

        if (parent.Target.CurHP <= 0)
        {
            sam.FSMController = FSMManager.Instance.getState(EStateName.IDLE);
        }
        else if (sam.Target.CurFSM == EStateName.DIE)
        {
            sam.ResetTarget(false);
            sam.FSMController = FSMManager.Instance.getState(EStateName.TRYFIGHT);
        }
        else if (GameConstants.DistanceSquare(sam.LastTargetPos, transform.position) <= 0.0001f)
        {
            FSMUnit.CheckDirectionToTarget(sam, deltaTime);
            if (sam.CurAnim == ESheetMeshAnim.attack && sam.LastAnimTime() < 0.1f && sam.CurAnimTime() >= 0.1f)
            {
                ushort num = 1;
                if (parent.GroupKind == EGroupKind.Catapults)
                {
                    num = 2006;
                }
                if (parent.GroupKind == EGroupKind.Archer && parent.Tier == 4)
                {
                    num = 2005;
                }
                sam.Target.ParticleFlag = ((num <= sam.Target.ParticleFlag) ? sam.Target.ParticleFlag : num);
            }
        }
        else
        {
            float num2 = sam.AttackRadius + sam.Target.Radius;
            if (GameConstants.DistanceSquare(transform2.position, transform.position) > num2 * num2)
            {
                sam.FSMController = FSMManager.Instance.getState(EStateName.TRYFIGHT);
            }
        }
    }
Example #9
0
 // Token: 0x060022FC RID: 8956 RVA: 0x0040CA80 File Offset: 0x0040AC80
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (!sam.IsLord)
     {
         Lord lord = sam as Lord;
         if (lord != null && !lord.getAnimComponent().IsPlaying("die"))
         {
             sam.FSMController = FSMManager.Instance.getState(EStateName.LORD_DIE);
         }
     }
 }
Example #10
0
 // Token: 0x0600239E RID: 9118 RVA: 0x00412C9C File Offset: 0x00410E9C
 public override void Attack(ArmyGroup target, bool bForceRetarget = false, byte param = 0)
 {
     if (param == 5 && this.suprsBehavior != null)
     {
         this.suprsBehavior.setState(ETrapState.START);
     }
     if (param == 6 && this.woodBehavior != null)
     {
         this.woodBehavior.setState(ETrapState.START);
     }
 }
Example #11
0
 // Token: 0x06002317 RID: 8983 RVA: 0x0040D554 File Offset: 0x0040B754
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.Flag == 0)
     {
         sam.Timer -= deltaTime;
         if (sam.Timer <= 0f)
         {
             sam.PlayAnim(ESheetMeshAnim.victory, SAWrapMode.Loop, true, false, false);
             sam.Flag = 1;
         }
     }
 }
Example #12
0
 // Token: 0x06002305 RID: 8965 RVA: 0x0040CD08 File Offset: 0x0040AF08
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.SpreadPos != Vector3.zero)
     {
         Transform  transform  = sam.transform;
         Quaternion quaternion = Quaternion.LookRotation(sam.SpreadPos);
         if (transform.rotation != quaternion)
         {
             transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
         }
     }
 }
Example #13
0
    // Token: 0x06002308 RID: 8968 RVA: 0x0040CDB4 File Offset: 0x0040AFB4
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        if (sam.Flag == 0)
        {
            sam.Timer -= deltaTime;
            if (sam.Timer > 0f)
            {
                return;
            }
            sam.Flag = 1;
            sam.PlayAnim(ESheetMeshAnim.moving, SAWrapMode.Loop, false, false, false);
        }
        Vector3   vector    = Vector3.zero;
        Transform transform = sam.transform;

        if (sam.Flag == 1)
        {
            vector = FSMUnit.WALL_BACK;
        }
        else
        {
            if (sam.Flag != 2)
            {
                sam.Flag = 0;
                if (FSMManager.Instance.bIsBattleOver && DataManager.Instance.War_LordCapture != 0)
                {
                    sam.FSMController = FSMManager.Instance.getState(EStateName.GO_CAPTIVING);
                }
                else
                {
                    sam.FSMController = FSMManager.Instance.getState(EStateName.IDLE_FASTRUN);
                }
                return;
            }
            vector = FSMUnit.WALL_FRONT;
        }
        Vector3 vector2 = vector - transform.position;

        if (vector2 != Vector3.zero)
        {
            Quaternion quaternion = Quaternion.LookRotation(vector2);
            if (transform.rotation != quaternion)
            {
                transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
            }
        }
        FSMUnit.MoveSoldier(sam, vector, parent.MoveSpeed * deltaTime * 2.5f);
        if (GameConstants.DistanceSquare(transform.position, vector) <= 0.0001f)
        {
            sam.Flag += 1;
        }
    }
Example #14
0
 // Token: 0x060022AF RID: 8879 RVA: 0x0040A154 File Offset: 0x00408354
 public void PlaySkill(ushort skillID, ArmyGroup target)
 {
     this.Target  = target;
     this.m_State = ArmyGroup.EGROUPSTATE.FIGHT;
     if (this.heroSoldier != null)
     {
         Lord lord = (Lord)this.heroSoldier;
         lord.PlaySkillAnim(skillID);
         this.particleMgr.Spawn(2009, lord.GetHitPointTrans(), Vector3.zero, 1f, true, true);
         AudioManager.Instance.PlaySFX(40039, 0f, PitchKind.NoPitch, lord.modelTrans, null);
         this.bInsideSkill = true;
     }
 }
Example #15
0
 // 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);
         }
     }
 }
Example #16
0
    // 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);
        }
    }
Example #17
0
 // Token: 0x060022F9 RID: 8953 RVA: 0x0040C830 File Offset: 0x0040AA30
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.Index == 255)
     {
         Transform transform = sam.transform;
         Vector3   vector    = sam.SpreadPos - transform.position;
         if (vector != Vector3.zero)
         {
             transform.rotation = Quaternion.LookRotation(vector);
         }
         FSMUnit.MoveSoldier(sam, sam.SpreadPos, sam.DyingValue * deltaTime);
         if (sam.DieState == 1 && (sam.SpreadPos == Vector3.zero || GameConstants.DistanceSquare(transform.position, sam.SpreadPos) <= 0.0001f))
         {
             sam.FSMController = FSMManager.Instance.getState(EStateName.DIE);
         }
     }
     else if (sam.Flag != 0)
     {
         float   fightTimer    = sam.fightTimer;
         float   inverseLength = 1f / fightTimer;
         Vector3 center        = (sam.SpreadPos + sam.LastTargetPos) * 0.5f;
         center.y = sam.DyingValue;
         sam.transform.position = GameConstants.QuadraticBezierCurves(sam.LastTargetPos, center, sam.SpreadPos, inverseLength, sam.Timer);
         sam.Timer += deltaTime;
         if (sam.Timer >= fightTimer)
         {
             sam.transform.position = sam.SpreadPos;
             sam.SpreadPos          = Vector3.zero;
             sam.FSMController      = FSMManager.Instance.getState(EStateName.DIE);
             sam.PlayAnim(ESheetMeshAnim.die, SAWrapMode.Once, true, false, false);
             sam.Flag = 0;
         }
     }
     else
     {
         Transform transform2 = sam.transform;
         Vector3   vector2    = sam.SpreadPos - transform2.position;
         if (vector2 != Vector3.zero)
         {
             transform2.rotation = Quaternion.LookRotation(vector2);
             FSMUnit.MoveSoldier(sam, sam.SpreadPos, sam.DyingValue * deltaTime);
         }
         if (sam.DieState == 1 && (sam.SpreadPos == Vector3.zero || GameConstants.DistanceSquare(transform2.position, sam.SpreadPos) <= 0.0001f))
         {
             sam.FSMController = FSMManager.Instance.getState(EStateName.DIE);
         }
     }
 }
Example #18
0
    // Token: 0x0600239F RID: 9119 RVA: 0x00412CE8 File Offset: 0x00410EE8
    public void cacheTrapHitPos(byte trapKind, ArmyGroup ag)
    {
        TrapBehavior trapBehavior = (trapKind != 0) ? this.woodBehavior : this.suprsBehavior;

        if (trapBehavior != null)
        {
            int     currentSoldierCount = ag.CurrentSoldierCount;
            Vector3 vector = Vector3.zero;
            for (int i = 0; i < currentSoldierCount; i++)
            {
                vector += ag.soldiers[i].transform.position;
            }
            vector /= (float)currentSoldierCount;
            trapBehavior.targetPosCache.Add(vector);
        }
    }
Example #19
0
 // Token: 0x060022AE RID: 8878 RVA: 0x00409F94 File Offset: 0x00408194
 public virtual void Attack(ArmyGroup target, bool bForceRetarget = false, byte param = 0)
 {
     if (this.Target != target)
     {
         bForceRetarget = true;
     }
     if (this.lastState == ArmyGroup.EGROUPSTATE.FIGHT && !bForceRetarget && param == 0)
     {
         this.OnceFlag |= 1u;
         if (this.Target == null)
         {
             this.Target = target;
         }
         return;
     }
     this.OnceFlag |= 1u;
     this.Target    = target;
     this.m_State   = ((param == 0) ? ArmyGroup.EGROUPSTATE.FIGHT : ArmyGroup.EGROUPSTATE.FIGHT_IMMEDIATE);
     if (target.GroupKind == EGroupKind.Infantry || target.GroupKind == EGroupKind.Cavalry)
     {
         this.CenterWithTarget = this.groupRoot.position + (target.groupRoot.position - this.groupRoot.position) / 2f;
     }
     else if (target.GroupKind == EGroupKind.CastleGate)
     {
         float   x = 52f - this.soldiers[0].AttackRadius;
         Vector3 a = new Vector3(x, 0f, this.groupRoot.position.z);
         this.CenterWithTarget = this.groupRoot.position + (a - this.groupRoot.position) / 2f;
     }
     else
     {
         this.CenterWithTarget = target.groupRoot.position;
     }
     if (bForceRetarget)
     {
         this.lastState = ArmyGroup.EGROUPSTATE.IDLE;
         for (int i = 0; i < this.CurrentSoldierCount; i++)
         {
             this.soldiers[i].ActionMode = EActionMode.Personal;
             this.soldiers[i].ResetTarget(true);
         }
         if (this.heroSoldier != null)
         {
             this.heroSoldier.ActionMode = EActionMode.Personal;
             this.heroSoldier.ResetTarget(false);
         }
     }
 }
Example #20
0
 // Token: 0x060022F0 RID: 8944 RVA: 0x0040C2E8 File Offset: 0x0040A4E8
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (!FSMUnit.CheckTargetActiving(sam))
     {
         sam.Target = FSMUnit.ReallocTarget(sam, parent.Target);
     }
     FSMUnit.CheckDirectionToTarget(sam, deltaTime);
     if ((parent.OnceFlag & 1u) != 0u)
     {
         if (sam.Target.CurFSM == EStateName.DYING || sam.Target.CurFSM == EStateName.DIE)
         {
             sam.Target = null;
             sam.Target = FSMUnit.ReallocTarget(sam, parent.Target);
         }
         sam.PlayAnim(ESheetMeshAnim.attack, SAWrapMode.Default, false, false, false);
     }
 }
Example #21
0
 // Token: 0x060022EA RID: 8938 RVA: 0x0040C1D8 File Offset: 0x0040A3D8
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.fightTimer > 0f)
     {
         sam.fightTimer -= deltaTime;
         if (sam.fightTimer <= 0f)
         {
             sam.PlayAnim(ESheetMeshAnim.attack, SAWrapMode.Default, true, false, false);
             sam.fightTimer = 1.5f;
         }
     }
     if (sam.CurAnim == ESheetMeshAnim.attack && sam.LastAnimTime() < 0.1f && sam.CurAnimTime() >= 0.1f)
     {
         Vector3 position = new Vector3(51f, 2f, sam.transform.position.z);
         parent.particleManager.Spawn(2001, null, position, 1f, true, false);
     }
 }
Example #22
0
    // Token: 0x0600231A RID: 8986 RVA: 0x0040D5FC File Offset: 0x0040B7FC
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        Transform transform = sam.transform;
        Vector3   vector    = sam.SpreadPos - transform.position;

        if (vector != Vector3.zero)
        {
            Quaternion quaternion = Quaternion.LookRotation(vector);
            if (quaternion != transform.rotation)
            {
                transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
            }
        }
        float num = (parent != null) ? parent.MoveSpeed : 4.5f;

        FSMUnit.MoveSoldier(sam, sam.SpreadPos, num * 2.5f * deltaTime * 1.5f);
    }
Example #23
0
 // Token: 0x0600231D RID: 8989 RVA: 0x0040D734 File Offset: 0x0040B934
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.Flag == 1)
     {
         return;
     }
     if (sam.Flag == 2)
     {
         Transform transform = sam.transform;
         Vector3   vector    = Camera.main.transform.position - transform.position;
         vector.y = 0f;
         if (vector != Vector3.zero)
         {
             Quaternion quaternion = Quaternion.LookRotation(vector);
             if (quaternion != transform.rotation)
             {
                 transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
             }
             else
             {
                 sam.Flag = 1;
             }
         }
     }
     else
     {
         Transform transform2 = sam.transform;
         Vector3   vector2    = sam.SpreadPos - transform2.position;
         if (vector2 != Vector3.zero)
         {
             Quaternion quaternion2 = Quaternion.LookRotation(vector2);
             if (quaternion2 != transform2.rotation)
             {
                 transform2.rotation = Quaternion.Slerp(transform2.rotation, quaternion2, 5f * deltaTime);
             }
         }
         float num = (parent != null) ? parent.MoveSpeed : 4.5f;
         FSMUnit.MoveSoldier(sam, sam.SpreadPos, num * 2.5f * deltaTime * 1.5f);
         if (GameConstants.DistanceSquare(transform2.position, sam.SpreadPos) <= 0.0001f)
         {
             sam.Flag = 2;
             sam.PlayAnim(ESheetMeshAnim.victory, SAWrapMode.Loop, true, false, false);
         }
     }
 }
Example #24
0
    // Token: 0x060022E4 RID: 8932 RVA: 0x0040BDD4 File Offset: 0x00409FD4
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        if (sam.Target == null || sam.Target.FSMController == null || sam.Target.CurFSM == EStateName.DIE || sam.Target.CurFSM == EStateName.DYING)
        {
            sam.FSMController = FSMManager.Instance.getState(EStateName.LOSETARGET);
        }
        Transform transform  = sam.Target.transform;
        Transform transform2 = sam.transform;

        FSMUnit.CheckDirectionToTarget(sam, deltaTime);
        FSMUnit.MoveSoldier(sam, transform.position, parent.MoveSpeed * 1.3f * deltaTime);
        float num = sam.AttackRadius + sam.Target.Radius;

        if (GameConstants.DistanceSquare(transform2.position, transform.position) < num * num)
        {
            sam.FSMController = FSMManager.Instance.getState(EStateName.MELEE_FIGHT);
        }
    }
Example #25
0
    // Token: 0x060022DB RID: 8923 RVA: 0x0040B780 File Offset: 0x00409980
    public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
    {
        if (sam.Flag != 0)
        {
            sam.Timer -= deltaTime;
            if (sam.Timer > 0f)
            {
                return;
            }
            sam.Flag = 0;
            sam.PlayAnim(ESheetMeshAnim.moving, SAWrapMode.Loop, false, false, false);
        }
        Vector3   transformPoint = parent.getTransformPoint((int)sam.Index);
        Transform transform      = sam.transform;

        if (sam.ActionMode == EActionMode.Team)
        {
            transform.position = transformPoint;
            if (transform.rotation != parent.m_Direction)
            {
                transform.rotation = Quaternion.Slerp(transform.rotation, parent.m_Direction, 5f * deltaTime);
            }
        }
        else
        {
            Vector3 vector = transformPoint - transform.position;
            if (vector != Vector3.zero)
            {
                Quaternion quaternion = Quaternion.LookRotation(vector);
                if (transform.rotation != quaternion)
                {
                    transform.rotation = Quaternion.Slerp(transform.rotation, quaternion, 5f * deltaTime);
                }
            }
            FSMUnit.MoveSoldier(sam, transformPoint, parent.MoveSpeed * deltaTime);
            if (GameConstants.DistanceSquare(transform.position, transformPoint) <= 0.0001f)
            {
                sam.ActionMode = EActionMode.Team;
            }
        }
    }
Example #26
0
 // Token: 0x06002311 RID: 8977 RVA: 0x0040D2A4 File Offset: 0x0040B4A4
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.CaptiveFlag == 0)
     {
         return;
     }
     if (sam.CaptiveFlag == 1)
     {
         Transform transform = sam.transform;
         Vector3   vector    = sam.CaptivePos - transform.position;
         if (vector != Vector3.zero)
         {
             Quaternion to = Quaternion.LookRotation(vector);
             transform.rotation = Quaternion.Slerp(transform.rotation, to, 5f * deltaTime);
         }
         FSMUnit.MoveSoldier(sam, sam.CaptivePos, parent.MoveSpeed * 2.5f * deltaTime);
         if (GameConstants.DistanceSquare(transform.position, sam.CaptivePos) <= 0.0001f)
         {
             sam.CaptiveFlag = 2;
             sam.PlayAnim(ESheetMeshAnim.victory, SAWrapMode.Loop, true, false, false);
             FSMManager.Instance.CaptivingCount++;
             sam.CaptivePos = sam.Parent.SoldierTarget.transform.position - transform.position;
         }
     }
     else if (sam.CaptiveFlag == 2)
     {
         Transform transform2 = sam.transform;
         if (sam.CaptivePos != Vector3.zero)
         {
             Quaternion quaternion = Quaternion.LookRotation(sam.CaptivePos);
             if (quaternion != transform2.rotation)
             {
                 transform2.rotation = Quaternion.Slerp(transform2.rotation, quaternion, 5f * deltaTime);
             }
             else
             {
                 sam.CaptiveFlag = 0;
             }
         }
     }
 }
Example #27
0
 // Token: 0x06002302 RID: 8962 RVA: 0x0040CBF0 File Offset: 0x0040ADF0
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.DyingValue > -0.1f)
     {
         sam.DyingValue += deltaTime;
     }
     if (sam.DyingValue >= 20f)
     {
         sam.DyingValue = -10f;
     }
     else if (sam.DyingValue < 0f)
     {
         Transform transform = sam.transform;
         Vector3   position  = transform.position;
         position.y        -= 1f * deltaTime;
         transform.position = position;
         if (position.y <= -2f)
         {
             parent.heroSoldier.gameObject.SetActive(false);
         }
     }
 }
Example #28
0
 // Token: 0x06002323 RID: 8995 RVA: 0x0040D9BC File Offset: 0x0040BBBC
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
     if (sam.Timer > 0f)
     {
         sam.Timer -= deltaTime;
         if (sam.Timer <= 0f)
         {
             sam.PlayAnim(ESheetMeshAnim.victory, SAWrapMode.Default, true, false, false);
         }
     }
     else
     {
         Animation animComponent = sam.getAnimComponent();
         if (animComponent != null)
         {
             float time = animComponent["victory"].time;
             if (time <= 0f)
             {
                 sam.Timer = (float)UnityEngine.Random.Range(2, 6);
             }
         }
     }
 }
Example #29
0
 // Token: 0x060022B5 RID: 8885 RVA: 0x0040A7AC File Offset: 0x004089AC
 public void Move(ArmyGroup target)
 {
     this.Target = target;
     if (this.Target != null)
     {
         Vector3 position;
         if (target.GroupKind == EGroupKind.CastleGate)
         {
             position = new Vector3(52f, 0f, this.groupRoot.position.z);
         }
         else
         {
             position = this.Target.groupRoot.position;
         }
         this.targetPosition = position;
         Quaternion quaternion = Quaternion.LookRotation(this.targetPosition - this.groupRoot.position);
         if (this.m_Direction != quaternion)
         {
             this.m_Direction = quaternion;
         }
         this.groupRoot.rotation = this.m_Direction;
         for (int i = 0; i < this.SoldierCount; i++)
         {
             if (this.soldiers[i].CurFSM != EStateName.DYING)
             {
                 this.soldiers[i].ActionMode = EActionMode.Personal;
                 this.soldiers[i].ResetTarget(true);
             }
         }
         if (this.heroSoldier != null)
         {
             this.heroSoldier.ActionMode = EActionMode.Personal;
             this.heroSoldier.ResetTarget(false);
         }
         this.m_State = ArmyGroup.EGROUPSTATE.MOVING;
     }
 }
Example #30
0
 // Token: 0x0600230E RID: 8974 RVA: 0x0040D184 File Offset: 0x0040B384
 public override void Update(Soldier sam, ArmyGroup parent, float deltaTime)
 {
 }