Exemple #1
0
        protected override void Attack()
        {
            GameObject attackTarget = GetAttackTarget();

            if (null != attackTarget)
            {
                CastleUtility.LookAtTarget(transform, attackTarget.transform);

                if (CastleUtility.IsTargetInAttackRange(transform, attackTarget.transform, mAttackDistance))
                {
                    mAttack.AddTarget(attackTarget);
                    mAttack.LaunchSkill();
                    mHeroState = HERO_STATE.AUTO_ATTACK;
                }
                else
                {
                    // change hero state to  move to target
                    mHeroState = HERO_STATE.MOVE_TO_TARGET;
                }
            }
            else
            {
                mAttack.LaunchSkill();
            }
        }
Exemple #2
0
 private void StateAutoAttackWorkInUpdate()
 {
     if (null == GetAttackTarget())
     {
         mHeroState = HERO_STATE.NORMAL;
     }
     else
     {
         OnAttack();
     }
 }
Exemple #3
0
        private void StateMoveToTargetWorkInUpdate()
        {
            GameObject attackTarget = GetAttackTarget();

            if (null != attackTarget)
            {
                SetHeroToRunState();
            }
            else
            {
                mHeroState = HERO_STATE.NORMAL;
                CancelHeroRunState();
            }
        }
Exemple #4
0
        private void AutoMoveToTarget()
        {
            GameObject attackTarget = GetAttackTarget();

            if (null != attackTarget)
            {
                if (CastleUtility.IsTargetInAttackRange(transform, attackTarget.transform, mAttackDistance))
                {
                    mHeroState = HERO_STATE.AUTO_ATTACK;
                }
                else
                {
                    // move to target
                    Vector3 direction        = attackTarget.transform.position - transform.position;
                    Vector2 correctDirection = new Vector2(direction.x, direction.z);
                    Move(correctDirection);
                }
            }
        }
Exemple #5
0
    public void changeHeroState(HERO_STATE newState)
    {
        state = newState;
        switch (newState)
        {
        case HERO_STATE.MOVING:
            break;

        case HERO_STATE.DISABLED:
            rb2d.velocity = Vector2.zero;
            break;

        case HERO_STATE.IDLE:
            break;

        default:
            break;
        }
    }
Exemple #6
0
        private void Start()
        {
            mMaxHP          = Config.HP;
            mHP             = mMaxHP;
            mAttackDistance = Config.DISTANCE_ATTACK;
            mSpeed          = Config.SPEED;
            mSpeedForce     = Config.SPEED_FORCE;

            mHeroAnimator    = transform.GetComponent <Animator>();
            mHeroAudioSource = transform.GetComponent <AudioSource>();
            mHeroRigidbody   = transform.GetComponent <Rigidbody>();
            mHPSlider        = transform.Find(DataConfigure.PATH_HP_SLIDER).GetComponent <Slider>();
            mHPSlider.value  = 1f;

            mIsRunID = DataConfigure.IS_RUN_ID;

            mHeroState = HERO_STATE.NORMAL;

            InitPlayerSkills();
        }
Exemple #7
0
        private void SelectSkill(SKILL skillIndex)
        {
            switch (skillIndex)
            {
            case SKILL.ATTACK: mSelectSkill = mAttack; break;

            case SKILL.ONE:    mSelectSkill = mSkill1; break;

            case SKILL.TWO:    mSelectSkill = mSkill2; break;

            case SKILL.THREE:  mSelectSkill = mSkill3; break;

            default:           mSelectSkill = null;    break;
            }

            if (SKILL.ATTACK != skillIndex)
            {
                mHeroState = HERO_STATE.NORMAL;
            }
        }
Exemple #8
0
 public void OnMove(Vector2 direction)
 {
     mHeroState = HERO_STATE.NORMAL;
     Move(direction);
 }