Esempio n. 1
0
        public override void process(BossSM fsm)
        {
            if (fsm.unit.HorizonSpeed == 0)
            {
                fsm.anim.SetSpeed(1);
                fsm.anim.ChangeAnim(BossAnim.Idle);
            }
            else
            {
                fsm.anim.SetSpeed(fsm.unit.HorizonSpeed / fsm.unit.stat.moveSpeed);
                fsm.anim.ChangeAnim(BossAnim.Walk);
            }

            if (fsm.CheckAttackable())
            {
                fsm.ChangeState(_attackList[fsm.CurPhase][_curAttackOrder]);
                _curAttackOrder++;
                return;
            }

            fsm.SetDirection(fsm.unit.Target.transform.position.x > fsm.unit.transform.position.x);

            if (fsm.doesLookRight())
            {
                fsm.unit.Move(1);
            }
            else
            {
                fsm.unit.Move(-1);
            }
        }
Esempio n. 2
0
        public override void process(BossSM fsm)
        {
            if (fsm.IsAttacked)
            {
                float   deltaX;
                Vector3 pos = fsm.unit.transform.position;
                if (fsm.doesLookRight())
                {
                    deltaX = 0.5f;
                }
                else
                {
                    deltaX = -0.5f;
                }
                fsm.unit.transform.position = new Vector3(pos.x + deltaX, pos.y, pos.z);
                fsm.unit.Attack();
            }
            if (fsm.IsAttackEnd)
            {
                switch (fsm.CurPhase)
                {
                case 0:
                    fsm.ChangeState(fsm.chaseState);
                    break;

                case 1:
                    break;

                case 2:
                    break;
                }
            }
        }
Esempio n. 3
0
 public override void process(BossSM fsm)
 {
     // about transition
     if (fsm.CheckView())
     {
         fsm.ChangeState(fsm.chaseState);
     }
 }
Esempio n. 4
0
 public override void enter(BossSM fsm)
 {
     if (!_isInit)
     {
         Init();
     }
     if (_lastPhase != fsm.CurPhase)
     {
         _lastPhase      = fsm.CurPhase;
         _curAttackOrder = 0;
     }
     _curAttackOrder = _curAttackOrder % _attackList[fsm.CurPhase].Count;
 }
 private void Awake()
 {
     _bossSM = GetComponentInParent <BossSM>();
 }
Esempio n. 6
0
 public override void exit(BossSM fsm)
 {
 }
Esempio n. 7
0
 public override void process(BossSM fsm)
 {
 }
Esempio n. 8
0
 public override void enter(BossSM fsm)
 {
     fsm.anim.ChangeAnim(BossAnim.Die);
     fsm.unit.Idle();
 }
Esempio n. 9
0
 public override void enter(BossSM fsm)
 {
     fsm.anim.ChangeAnim(BossAnim.DownPunch);
     fsm.unit.Idle();
     fsm.unit.SetAttackBox(4);
 }
Esempio n. 10
0
 public override void enter(BossSM fsm)
 {
     fsm.anim.ChangeAnim(BossAnim.Tornado);
     fsm.unit.Idle();
     fsm.unit.SetAttackBox(3);
 }
Esempio n. 11
0
 public override void enter(BossSM fsm)
 {
     fsm.anim.ChangeAnim(BossAnim.Uppercut);
     fsm.unit.Idle();
     fsm.unit.SetAttackBox(2);
 }
Esempio n. 12
0
 public override void exit(BossSM fsm)
 {
     fsm.unit.Idle();
     fsm.anim.SetSpeed(1);
     fsm.anim.ChangeAnim(BossAnim.Idle);
 }
Esempio n. 13
0
 public abstract void exit(BossSM fsm);
Esempio n. 14
0
 public abstract void process(BossSM fsm);
Esempio n. 15
0
 public abstract void enter(BossSM fsm);