Ejemplo n.º 1
0
 // Update is called once per frame
 void FixedUpdate()
 {
     if (baseAttacked)
     {
         if (Vector3.Distance(transform.position, OrcTownCenter.transform.position) < 2.0f)
         {
             baseAttacked = false;
         }
     }
     else
     {
         Collider2D[] hits             = Physics2D.OverlapCircleAll(transform.position, 6.0f, 1 << LayerMask.NameToLayer("Building") | 1 << LayerMask.NameToLayer("Unit"));
         float        distanceToTarget = Mathf.Infinity;
         GameObject   closestTarget    = null;
         foreach (Collider2D hit in hits)
         {
             if (hit && (hit.tag == "Player" || hit.tag == "PlayerBuilding"))
             {
                 if (Vector3.Distance(hit.transform.position, this.transform.position) < distanceToTarget)
                 {
                     distanceToTarget = Vector3.Distance(hit.transform.position, transform.position);
                     closestTarget    = hit.gameObject;
                 }
             }
         }
         if ((currentTarget == null && closestTarget != null) || (closestTarget && closestTarget != currentTarget))
         {
             currentTarget = closestTarget;
             controller.Attack(closestTarget);
         }
     }
 }
Ejemplo n.º 2
0
 public void OnEnter(CharacterController character)
 {
     this.character = character;
     character.Attack(direction);
     animator = character.GetComponent<Animator>();
     idleHash = Animator.StringToHash("Idle");
 }
Ejemplo n.º 3
0
 public void Action()
 {
     if (!CanAction())
     {
         return;
     }
     AbilityTriggerd();
     cc.Attack();
 }
        public void CanAttack()
        {
            //assemble
            var controller = new CharacterController();

            //act
            var result = controller.Attack(Guid.NewGuid(), 1, DamageType.Acid);

            //assert
            Assert.IsTrue(result);
        }
Ejemplo n.º 5
0
 void TriggerUpdate()
 {
     if (_stateLooking)
     {
         CharacterController.LookForPlayer();
     }
     else if (_stateWalkingTowardsPlayer)
     {
         CharacterController.WalkTowardsPlayer();
     }
     else if (_stateAttacking)
     {
         CharacterController.Attack();
     }
 }
Ejemplo n.º 6
0
    // Update is called once per frame
    void OnGUI()
    {
        GUI.skin = skin;
        if (GUI.Button(buttonAttack, "Attack"))
        {
            StartCoroutine(character.Attack());
        }
        if (GUI.Button(buttonShield, "Shield"))
        {
            character.UseShield();
        }
        if (playerLost)
        {
            GUI.Label(new Rect(Screen.width / 2, Screen.height / 2, 200, 200), "Perdu..");
        }
        GUI.Label(labelHP, player.hp.ToString());

        DebugLog();
    }
Ejemplo n.º 7
0
    private void CheckInputs()
    {
        currentMove = Vector2.zero;

        float moveY = 0;
        float moveX = 0;

        if (PlayerCharacteristics.GetValue(PowerShape.Type.PRIM_MOVEMENT))
        {
            moveY = Input.GetAxisRaw("Vertical");
            moveX = Input.GetAxisRaw("Horizontal");
        }

        if (Input.GetMouseButton(0))
        {
            controller.Attack();
        }

        if (moveY > 0)
        {
            currentMove.y = 1;
        }
        else if (moveY < 0)
        {
            currentMove.y = -1;
        }

        if (moveX > 0)
        {
            currentMove.x = 1;
        }
        else if (moveX < 0)
        {
            currentMove.x = -1;
        }

        if (currentMove.y != 0 && currentMove.x != 0)
        {
            currentMove.y /= Mathf.Sqrt(2);
            currentMove.x /= Mathf.Sqrt(2);
        }
    }