Esempio n. 1
0
        private void EnemyTurn()
        {
            Random rand     = new Random();
            var    enemy    = App.charactersLists.CharacterOrder.First();
            var    enemyRow = App.charactersLists.GetEnemyRow((EnemyCharacter)enemy);
            var    player   = App.charactersLists.GetPlayerTarget(rand);

            damageInfo = new DamageInfoVisibility(player);

            var enemyCanvas = (Canvas)MonsterField.Children[enemyRow];
            var behavior    = enemy.BehaviorList[0];

            var damage = behavior.Action(enemy, player);

            enemy.SwitchAnimation(enemyCanvas, 1, App.resourcePaths.GetEnemyPath(enemy.CharacterID), damageInfo.DamageTimer, 4);

            if (player.CharacterStatus.CheckDying(player))
            {
                SetIdleLastCharacter(player);
            }

            player.CharacterStatus.AddSP(player.CharacterStats.SP, damage);

            setOnField.SetPlayerStatus(App.charactersLists.GetPlayerRow(player), player, PlayerMenu);

            ShowPlayerDamage(damage.ToString(), player);
            ResetTurn();
        }
Esempio n. 2
0
        private void PlayerAction(ACharacter activePlayer)
        {
            var    player      = (PlayerCharacter)activePlayer;
            string enemyCursor = Grid.GetRow(EnemyMenuCursor).ToString() + Grid.GetColumn(EnemyMenuCursor).ToString();

            if (lastAction is BattlePageMenuAction)
            {
                var playerRow = App.charactersLists.GetPlayerRow(player);
                var enemy     = App.charactersLists.EnemyList[TargetTranslate(enemyCursor)];
                damageInfo = new DamageInfoVisibility(enemy);
                var playerCanvas = (Canvas)PlayerField.Children[playerRow];
                Grid.SetRow(playerCanvas, Grid.GetRow(EnemyMenuCursor));
                Grid.SetColumn(playerCanvas, 0);

                int damage = -1;

                if (lastAction.CurrentIndex == 0)
                {
                    var behavior = player.BehaviorList[0];

                    damage = behavior.Action(player, enemy);
                    player.SwitchAnimation(playerCanvas, 2, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 0, false);
                    ShowEnemyDamage(damage.ToString(), enemy);
                }
                else if (lastAction.CurrentIndex == 2)
                {
                    Grid.SetRow(playerCanvas, App.charactersLists.GetPlayerRow(player));
                    Grid.SetColumn(playerCanvas, 1);
                    player.CharacterBuffsDebuff.SetDefense(player.CharacterStats);
                    player.SwitchAnimation(playerCanvas, 7, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 0, false);
                    ShowSkillName("Defense Up", true);
                    ShowPlayerDamage("", player);
                }
                else if (lastAction.CurrentIndex == 4)
                {
                    var behavior = player.BehaviorList[1];

                    damage = behavior.Action(player, enemy);
                    ShowSkillName(behavior.Name, true);
                    player.SwitchAnimation(playerCanvas, 4, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 0, false);
                    player.CharacterStatus.ResetSP();
                    setOnField.SetPlayerStatus(App.charactersLists.GetPlayerRow(player), player, PlayerMenu);
                    ShowEnemyDamage(damage.ToString(), enemy);
                }

                ResetTurn();
            }
            else if (lastAction is BattlePageSubMenuAction)
            {
                var playerRow    = App.charactersLists.GetPlayerRow(player);
                var behaviorList = player.BehaviorList.GetRange(2, player.BehaviorList.Count - 2);
                var playerCanvas = (Canvas)PlayerField.Children[playerRow];
                var behavior     = behaviorList[lastAction.CurrentIndex];
                ShowSkillName(behavior.Name, true);
                var damage = 0;
                if (menuAction is BattlePageTargetMenuAction)
                {
                    var enemy = App.charactersLists.EnemyList[TargetTranslate(enemyCursor)];
                    damageInfo = new DamageInfoVisibility(enemy);
                    Grid.SetRow(playerCanvas, Grid.GetRow(EnemyMenuCursor));
                    Grid.SetColumn(playerCanvas, 0);

                    damage = behavior.Action(player, enemy);

                    if (behavior is SkillAttackBehavior)
                    {
                        player.SwitchAnimation(playerCanvas, 2, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 0, false);
                    }
                    else
                    {
                        player.SwitchAnimation(playerCanvas, 3, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 4);
                    }

                    setOnField.SetPlayerStatus(App.charactersLists.GetPlayerRow(player), player, PlayerMenu);

                    ShowEnemyDamage(damage.ToString(), enemy);
                }
                else if (menuAction is BattlePagePlayerMenuAction)
                {
                    var target = App.charactersLists.PlayerList[menuAction.CurrentIndex];
                    damageInfo = new DamageInfoVisibility(target);

                    damage = behavior.Action(player, target);

                    player.SwitchAnimation(playerCanvas, 3, App.resourcePaths.GetPlayerPath(player.CharacterID), damageInfo.DamageTimer, 4);

                    setOnField.SetPlayerStatus(App.charactersLists.GetPlayerRow(target), target, PlayerMenu);

                    ShowPlayerDamage(damage.ToString(), target);
                }
                ResetTurn();
            }
        }