Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        switch (FighterState)
        {
        case FighterStates.Idle:
            Idle();
            break;

        case FighterStates.Walk:

            Walk();
            break;

        case FighterStates.Attack:
            Attack();
            break;

        case FighterStates.GetHit:
            GetHit();
            break;

        case FighterStates.Die:
            _animator.SetTrigger("Die");
            break;

        case FighterStates.Dead:
            break;

        case FighterStates.Thrown:
            Thrown();
            break;

        case FighterStates.Win:
            Win();
            break;

        case FighterStates.Block:
            Block();
            break;
        }
        if (Power <= 0f)
        {
            FighterState       = FighterStates.Die;
            Enemy.FighterState = FighterStates.Win;
        }
        if (!IsPlayer)
        {
            if (FighterState == FighterStates.Walk && InRange())
            {
                _animator.SetFloat("Speed", 0);

                FighterState = FighterStates.Attack;
            }
            else if (FighterState == FighterStates.Attack)
            {
                FighterState = FighterStates.Walk;
            }
        }
    }
Exemplo n.º 2
0
 public void GetThrown()
 {
     FighterState = FighterStates.Thrown;
     Debug.Log("thrown");
     _timer = 0f;
     _animator.SetTrigger("Thrown");
     _rigid.isKinematic = true;
 }
Exemplo n.º 3
0
 private void CancelActionsIfSetToIdle()
 {
     if (task == FighterTasks.Idle && state != FighterStates.Idle)
     {
         Target = null;
         state  = FighterStates.Idle;
     }
 }
Exemplo n.º 4
0
 private void SetAnimator(FighterStates newState)
 {
     if (newState != fighterstate)
     {
         animator.ResetTrigger("" + fighterstate);
         fighterstate = newState;
         animator.SetTrigger("" + fighterstate);
     }
 }
Exemplo n.º 5
0
 public void Hit()
 {
     if (InRange())
     {
         Damage();
         _timer       = 0f;
         FighterState = FighterStates.GetHit;
         _animator.SetTrigger("GetHit");
     }
 }
Exemplo n.º 6
0
    protected override void SetupAttributes()
    {
        UnitActive    = true;
        Name          = "Fighter";
        elevation     = 0.5f;
        baseSpeed     = 10f;
        baseTurnSpeed = 15f;
        UnitActive    = true;

        task  = FighterTasks.SeekAndDestroy;
        state = FighterStates.Idle;
    }
Exemplo n.º 7
0
    void GetHit()
    {
        _timer             += Time.deltaTime;
        transform.position -= transform.right * speed * Time.deltaTime * Enemy.HitForce;



        if (_timer > 0.5f)
        {
            _timer       = 0f;
            FighterState = FighterStates.Walk;
        }
    }
Exemplo n.º 8
0
 private void CheckTargetInRange()
 {
     if (Target != null && Vector3.Distance(Target.position, transform.position) < shootRange)
     {
         state = FighterStates.Attacking;
         pathfinder.ForceTargetReached();
     }
     else
     {
         if (task == FighterTasks.SeekAndDestroy && state == FighterStates.Attacking)
         {
             state = FighterStates.Searching;
             pathfinder.FindPath();
         }
         else if (task == FighterTasks.Defend)
         {
             state = FighterStates.Idle;
         }
     }
 }
Exemplo n.º 9
0
    private void LocateDrone()
    {
        Transform unitParent = GameObject.FindGameObjectWithTag("Units").transform;

        if (unitParent == null)
        {
            return;
        }

        foreach (Transform tf in unitParent)
        {
            if (tf.GetComponent <Drone>() != null)
            {
                Target = tf;
                state  = FighterStates.Searching;
                pathfinder.FindPath();
                return;
            }
        }
    }
Exemplo n.º 10
0
    void Start()
    {
        if (hitInformationCollection == null)
        {
            hitInformationCollection = new HitInformationCollection();
        }

        animator     = this.GetComponent <Animator>();
        fighterstate = FighterStates.Idle;



        var colliders = this.GetComponents <BoxCollider2D>();


        walkingvelocity.y = 0;
        walkingvelocity.z = 0;

        kickGO = this.transform.GetChild(1);
        kickGO.gameObject.SetActive(false);
        pubchGO = this.transform.GetChild(2);
        pubchGO.gameObject.SetActive(false);
    }
Exemplo n.º 11
0
 public static FighterHits GetFighterHit(this FighterStates fighterStates)
 {
     return((FighterHits)System.Enum.Parse(typeof(FighterHits), fighterStates.ToString()));
 }
Exemplo n.º 12
0
    // Update is called once per frame
    void Update()
    {
        FighterStates currentstate = fighterstate;

        switch (currentstate)
        {
        case FighterStates.Idle:

            checkEnemyPosition();
            if (Input.GetKeyDown(KeyCode.A))
            {
                transformchecking = pubchGO;

                currentstate = FighterStates.Lpunch;
                currentHit   = hitInformationCollection.GetHit(currentstate.GetFighterHit());
            }

            else if (Input.GetKeyDown(KeyCode.S))
            {
                transformchecking = kickGO;

                currentstate = FighterStates.Lmkick;
                currentHit   = hitInformationCollection.GetHit(currentstate.GetFighterHit());
            }
            else if (Input.GetKey(KeyCode.RightArrow))
            {
                currentstate = FighterStates.Walking;
                cooldown     = Time.time + cooldowngap;
            }
            else if (Input.GetKey(KeyCode.LeftArrow))
            {
                currentstate = FighterStates.Walking;
                cooldown     = Time.time + cooldowngap;
            }



            break;

        case FighterStates.Lpunch:
            if (currentHit.HitStatus >= (int)HitsStates.Finished)
            {
                currentstate = FighterStates.Idle;
            }
            break;

        case FighterStates.Lmkick:
            if (currentHit.HitStatus >= (int)HitsStates.Finished)
            {
                currentstate = FighterStates.Idle;
            }
            break;

        case FighterStates.Walking:

            //this.transform.LookAt(Enemy.transform);
            checkEnemyPosition();
            direction = 0;
            if (cooldown <= Time.time)
            {
                cooldown = Time.time + cooldowngap;

                if (Input.GetKey(KeyCode.RightArrow))
                {
                    direction = 1;
                }
                else if (Input.GetKey(KeyCode.LeftArrow))
                {
                    direction = -1;
                }

                if (direction != 0)
                {
                    this.transform.position = this.transform.position + walkingvelocity * direction;
                }
                else
                {
                    currentstate = FighterStates.Idle;
                }
            }
            else
            {
                if (!Input.GetKey(KeyCode.LeftArrow) && !Input.GetKey(KeyCode.RightArrow))
                {
                    currentstate = FighterStates.Idle;
                }
            }

            if (Input.GetKeyDown(KeyCode.A))
            {
                transformchecking = pubchGO;

                currentstate = FighterStates.Lpunch;
                currentHit   = hitInformationCollection.GetHit(currentstate.GetFighterHit());
            }
            else if (Input.GetKeyDown(KeyCode.S))
            {
                transformchecking = kickGO;

                currentstate = FighterStates.Lmkick;
                currentHit   = hitInformationCollection.GetHit(currentstate.GetFighterHit());
            }


            break;
        }

        SetAnimator(currentstate);
    }
Exemplo n.º 13
0
 public void RemoveState(FighterStates f)
 {
     //Remove the state from the states set
     //ie: X is no longer confused
     states.Remove(f);
 }
Exemplo n.º 14
0
 public void AddState(FighterStates f)
 {
     //add the state to the states set
     //ie: X is now confused
     states.Add(f);
 }
Exemplo n.º 15
0
 public override void FindAnotherPath()
 {
     Target = null;
     state  = FighterStates.Idle;
 }
Exemplo n.º 16
0
 public void setHitInfoData(RaycastHit[] hits, FighterStates playerstate, FighterStates enemystate)
 {
     this.hits        = hits;
     this.playerstate = playerstate;
     this.enemystate  = enemystate;
 }
Exemplo n.º 17
0
 public void setHitInfoDataNone()
 {
     this.hits        = def;
     this.playerstate = FighterStates._None;
     this.enemystate  = FighterStates._None;
 }
Exemplo n.º 18
0
    void PlayerControl()
    {
        if (Input.GetAxis(hor) < 0)
        {
            //_globalControl.flip = true;
            _animator.SetFloat("Speed", 1);
            transform.localScale       = new Vector3(1, 1, -1);
            transform.localEulerAngles = new Vector3(0, 180, 0);
            transform.position        += transform.right * speed * Time.deltaTime;
        }
        else if (Input.GetAxis(hor) > 0)
        {
            _animator.SetFloat("Speed", 1);
            // _globalControl.flip = false;
            transform.localScale       = new Vector3(1, 1, 1);
            transform.localEulerAngles = new Vector3(0, 0, 0);

            transform.position += transform.right * speed * Time.deltaTime;
        }
        else
        {
            _animator.SetFloat("Speed", 0);
        }

        if (Input.GetAxis(vert) < 0)
        {
            _animator.SetBool("Crouch", true);
        }
        else
        {
            _animator.SetBool("Crouch", false);
        }

        if (Input.GetButtonDown("Fire1"))
        {
//			if (Input.GetAxis (vert) < 0)
//				_animator.SetTrigger("AttackLow");
//			else
            _animator.SetTrigger("Attack");
            Enemy.Hit();
        }
        if (Input.GetButtonDown("Fire3"))
        {
            _animator.SetBool("Block", true);
            FighterState = FighterStates.Block;
        }
        if (Input.GetButtonUp("Fire3"))
        {
            _animator.SetBool("Block", false);
            FighterState = FighterStates.Idle;
        }

        if (Input.GetButtonDown("Fire2"))
        {
            _animator.SetTrigger("Throw");
            if (InRange())
            {
                Enemy.GetThrown();
                Enemy.FighterState = FighterStates.Thrown;
            }
        }
    }