예제 #1
0
    // returns a tiles within range of landing tiles
    private void GetTilesAffectByEarthSpecialAttack(Hex a_targetTile)
    {
        foreach (Hex tile in tilesAffectByAction)
        {
            tile.MouseExit();
        }

        tilesAffectByAction.Clear();

        foreach (Unit unit in enemiesAffectByAction)
        {
            unit.PreviewDamage(0);
        }

        enemiesAffectByAction.Clear();

        tilesAffectByAction.Add(a_targetTile);

        List <Hex> tilesInRange = grid.GetTilesWithinDistance(a_targetTile, earthUnit.SpecialDamageArea, false);

        for (int i = 0; i < tilesInRange.Count; i++)
        {
            tilesAffectByAction.Add(tilesInRange[i]);
        }

        foreach (Hex tile in tilesAffectByAction)
        {
            if (tile.CurrentUnit != null && tile.CurrentUnit.CompareTag("Enemy"))
            {
                enemiesAffectByAction.Add(tile.CurrentUnit);
            }

            tile.MouseEnter(currentRuleset.HighlightColour);
        }

        foreach (Unit unit in enemiesAffectByAction)
        {
            int damageIndex = HexUtility.Distance(a_targetTile, unit.CurrentTile) - 1;
            unit.PreviewDamage(earthUnit.GetSpecialDamage(damageIndex));
        }
    }
예제 #2
0
    private void ChangeText()
    {
        if (earthUnit.IsSelected)
        {
            if (buttonType == ActionType.movement)
            {
                title.text       = earthUnit.GetAction(0).name;
                flavourText.text = earthUnit.GetAction(0).flavourText;

                range.text  = "RNG: " + earthUnit.MoveRange.ToString();
                damage.text = "";
            }
            else if (buttonType == ActionType.attack)
            {
                title.text       = earthUnit.GetAction(1).name;
                flavourText.text = earthUnit.GetAction(1).flavourText;

                range.text  = "RNG: " + earthUnit.AttackRange.ToString();
                damage.text = "DMG " + earthUnit.BasicAttackDamage.ToString();
            }
            else if (buttonType == ActionType.specialAttack)
            {
                title.text       = earthUnit.GetAction(2).name;
                flavourText.text = earthUnit.GetAction(2).flavourText;

                range.text  = "RNG: " + earthUnit.AttackRange.ToString();
                damage.text = "DMG: " + earthUnit.MinSpecialDamage.ToString() + " - " + earthUnit.GetSpecialDamage(0).ToString();
            }
        }
        else
        {
            if (buttonType == ActionType.movement)
            {
                title.text       = lightningUnit.GetAction(0).name;
                flavourText.text = lightningUnit.GetAction(0).flavourText;

                range.text  = "RNG: " + lightningUnit.MoveRange.ToString();
                damage.text = "";
            }
            else if (buttonType == ActionType.attack)
            {
                title.text       = lightningUnit.GetAction(1).name;
                flavourText.text = lightningUnit.GetAction(1).flavourText;

                range.text  = "RNG: " + lightningUnit.AttackRange.ToString();
                damage.text = "DMG: " + lightningUnit.MinBasicDamage.ToString();
            }
            else if (buttonType == ActionType.specialAttack)
            {
                title.text       = lightningUnit.GetAction(2).name;
                flavourText.text = lightningUnit.GetAction(2).flavourText;

                range.text  = "RNG: " + lightningUnit.AttackRange.ToString();
                damage.text = "DMG: " + lightningUnit.SpecialAttackDamage.ToString();
            }
        }
    }