void ChooseActionState(RaycastHit2D hit2D)
    {
        if (hit2D.collider != null)
        {
            string hit2DTag = hit2D.transform.tag;

            if (hit2DTag.Equals("Hex"))
            {
                if (Input.GetMouseButtonDown(0))
                {
                    HexCell clickedHex = hit2D.collider.transform.parent.gameObject.GetComponent <HexCell> ();
                    if (clickedHex.active)
                    {
                        //BattlefieldSM.CharactersByInitiative[0].MoveCharacter (clickedHex);
                        StartCoroutine(BattlefieldSM.CharactersByInitiative[0].MoveCharacter(clickedHex));
                        //BattlefieldSM.CharactersByInitiative[0].characterState = Character.CharacterStateMachine.AFTERACTION;
                        BattlefieldSM.CharactersByInitiative[0].characterState = Character.CharacterStateMachine.MOVING;
                        currentMouseState = MouseStateMachine.IDLE;
                    }
                }
            }
            else if (hit2DTag.Equals("Character"))
            {
                lookAtCharacterStats(hit2D);
            }
        }
    }
    void ChooseTargetState(RaycastHit2D hit2D)
    {
        Character attacker = BattlefieldSM.CharactersByInitiative[0];

        if (hit2D.collider != null)
        {
            string hit2DTag = hit2D.transform.tag;

            if (hit2DTag.Equals("Character"))
            {
                lookAtCharacterStats(hit2D);

                if (Input.GetMouseButtonDown(0) && hit2D.transform.parent.gameObject.GetComponent <Character>().hexCell.active)
                {
                    attacker.DeActivateNeighboringTiles();
                    attacker.DeactivateAvailableTilesForRange();

                    Character attacked = hit2D.transform.parent.gameObject.GetComponent <Character> ();
                    clickedAbility.dealDamage(attacker, attacked);
                    //clickedAbility.currentCooldown = clickedAbility.cooldown;
                    clickedAbilityBorder.color = Color.white;

                    if (attacker.currentHP > 0)
                    {
                        clickedAbility = null;
                        BattlefieldSM.CharactersByInitiative[0].ActivateMovableTiles();
                        currentMouseState = MouseStateMachine.IDLE;
                        BattlefieldSM.CharactersByInitiative[0].characterState = Character.CharacterStateMachine.AFTERACTION;
                    }
                    else
                    {
                        currentMouseState = MouseStateMachine.IDLE;
                        BattlefieldSM.CharactersByInitiative[0].characterState = Character.CharacterStateMachine.ENDTURN;
                    }
                }
            }
        }

        if (Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Escape))
        {
            Debug.Log("Ability Cancelled");
            attacker.DeActivateNeighboringTiles();
            attacker.DeactivateAvailableTilesForRange();

            clickedAbility = null;
            BattlefieldSM.CharactersByInitiative[0].ActivateMovableTiles();
            UIM.AbilityBarBorders[clickedAbilityIndex].color = Color.white;
            currentMouseState = MouseStateMachine.CHOOSEACTION;
        }
    }
Ejemplo n.º 3
0
 private void UserControl1_MouseUp(object sender, MouseEventArgs e)
 {
     TheMouseStateMachine = MouseStateMachine.None;
 }