Ejemplo n.º 1
0
    /// <summary>
    /// включает и выключает круги выбора таргета под существами, соответствующие условиям используемой способности
    /// </summary>
    public void TurnOnSelectCircles(bool fl)
    {
        List <Creatures> availableTargets = SelectedAbility.GetAvailableTargets(CurrentRoom, CurrentHero);

        foreach (Creatures c in availableTargets)
        {
            c.gameObject.GetComponentInChildren <SpriteRenderer>().enabled = fl;
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// метод использования способности в части GUI
    /// </summary>
    private void UseAbility()
    {
        AnimationLock = true;
        AbilityBar.SetActive(false);
        SelectFrame.SetActive(false);
        SelectedAbility.UseAbility(SelectedTarget, CurrentHero, CurrentRoom);
        Messenger <GameObject> .Broadcast(GameEvent.ENEMY_HIT, SelectedTarget.gameObject);

        CurrentHero.gameObject.GetComponent <Animator>().SetTrigger("StartAttack");
        DisactivateAbility();
    }
Ejemplo n.º 3
0
        public void Draw(SpriteBatch spriteBatch)
        {
            foreach (List <Tile> row in Tiles)
            {
                foreach (Tile tile in row)
                {
                    tile.Draw(spriteBatch, tile.PosX * Tile.diameter, tile.PosY * Tile.diameter);
                }
            }

            EndTurnBox.Draw(spriteBatch);

            if (HighlightedTile != null)
            {
                spriteBatch.Draw(
                    Textures.TileHighlight,
                    new Vector2((HighlightedTile.PosX * Tile.diameter) + HighlightBorderWidth, (HighlightedTile.PosY * Tile.diameter) + HighlightBorderWidth),
                    Color.White);
            }

            int offset = (Tile.diameter / 2) - (Hero.diameter / 2);

            foreach (Hero hero in Heroes)
            {
                hero.Draw(spriteBatch, (hero.PosX * Tile.diameter) + offset, (hero.PosY * Tile.diameter) + offset);
            }

            if (SelectedHero != null)
            {
                spriteBatch.Draw(
                    Textures.SelectedHero,
                    new Vector2((SelectedHero.PosX * Tile.diameter) + offset - HighlightBorderWidth, (SelectedHero.PosY * Tile.diameter) + offset - HighlightBorderWidth),
                    Color.White);
                StatsBox.DrawHeroStats(spriteBatch, SelectedHero, true);
            }

            if (HighlightedHero != null && HighlightedHero != SelectedHero)
            {
                StatsBox.DrawHeroStats(spriteBatch, HighlightedHero, false);
            }

            if (SelectedHero != null)
            {
                Spellbar.Draw(spriteBatch, SelectedHero);
            }

            if (HighlightedAbility != null)
            {
                StatsBox.DrawAbilityStats(spriteBatch, HighlightedAbility);
            }

            if (SelectedAbility != null && HighlightedTile != null)
            {
                Texture2D filter;
                bool      validTarget = SelectedAbility.ValidateTarget(HighlightedTile);

                if (validTarget)
                {
                    filter = Textures.GreenFilter;
                }
                else
                {
                    filter = Textures.RedFilter;
                }

                List <Tile> affectedTiles = SelectedAbility.GetAffectedTiles(HighlightedTile);
                foreach (Tile tile in affectedTiles)
                {
                    int posX = (tile.PosX * Tile.diameter) + HighlightBorderWidth;
                    int posY = (tile.PosY * Tile.diameter) + HighlightBorderWidth;

                    spriteBatch.Draw(filter, new Vector2(posX, posY), new Color(Color.White, 0.1f));
                }
            }

            #endregion
        }
Ejemplo n.º 4
0
 public void OnAbilityTargetChosen(BattleActorBase target)
 {
     CmdUseAbility(target?.gameObject, selectedAbilityIndex);
     SelectedAbility.Use();
     EndAbility();
 }
Ejemplo n.º 5
0
 private void AbilityButtonSelected(IAbilitySelectionButton button, AbilitySelectedEventArgs e)
 {
     SelectedAbility?.Invoke(this, e);
 }