Beispiel #1
0
        public override void UnEquip()
        {
            switch (ArmorLocation)
            {
            case ArmorLocation.Chest:
                SingleTon.GetPlayerController().Inventory.ChestArmor = null;
                break;

            case ArmorLocation.Feet:
                SingleTon.GetPlayerController().Inventory.ShoesArmor = null;
                break;

            case ArmorLocation.Offhand:
                SingleTon.GetPlayerController().Inventory.OffHand = null;
                break;

            case ArmorLocation.Legs:
                SingleTon.GetPlayerController().Inventory.PantsArmor = null;
                break;

            case ArmorLocation.Head:
                SingleTon.GetPlayerController().Inventory.HeadArmor = null;
                break;
            }
            SingleTon.GetPlayerController().Armor -= AC;
        }
Beispiel #2
0
        private string CalculateLevelProgress()
        {
            string ProgressionString = "";
            float  Percentage;

            try
            {
                Percentage = ((float)SingleTon.GetPlayerController().Xp / (float)SingleTon.GetPlayerController().NextLevelXP) * 100f;
            }
            catch
            {
                Percentage = 0;
            }

            for (int i = 0; i < ((int)Percentage / 5); i++)
            {
                ProgressionString += "=";
            }
            int lenght = ProgressionString.Length;

            for (int x = 0; x < 20 - lenght; x++)
            {
                ProgressionString += "-";
            }

            return(ProgressionString);
        }
Beispiel #3
0
 public void ApplyBonus()
 {
     SingleTon.GetPlayerController().Skills.Power.AddPoint(PowBonus);
     SingleTon.GetPlayerController().Skills.Vitallity.AddPoint(VitBonus);
     SingleTon.GetPlayerController().Skills.Magic.AddPoint(MagBonus);
     SingleTon.GetPlayerController().Skills.Luck.AddPoint(LuckBonus);
 }
Beispiel #4
0
        public void ReDrawStats()
        {
            LineHeightPos = 0;
            string        BigestText = "";
            List <string> StatTexts  = new List <string>();

            StatTexts.Add(" Health: " + SingleTon.GetPlayerController().Skills.Vitallity.HealthCurrent + "/" + SingleTon.GetPlayerController().Skills.Vitallity.Health + "  ");
            StatTexts.Add(" Mana: " + SingleTon.GetPlayerController().Skills.Magic.ManaCurrent + "/" + SingleTon.GetPlayerController().Skills.Magic.Mana + "  ");
            StatTexts.Add(" Damage: " + SingleTon.GetPlayerController().Skills.Power.ExtraAttack + " + " + SingleTon.GetPlayerController().Skills.Power.Buff + "  ");
            StatTexts.Add(" Armor: " + SingleTon.GetPlayerController().Armor + " ");
            foreach (string element in StatTexts)
            {
                if (element.Length > BigestText.Length)
                {
                    BigestText = element + " ";
                }
            }

            CW.FillOutStringBorder(BigestText, true, StatsPosStart.X, StatsPosStart.Y + LineHeightPos);
            LineHeightPos++;
            foreach (string element in StatTexts)
            {
                CW.Write(Side, StatsPosStart.X, StatsPosStart.Y + LineHeightPos);
                CW.Write(element, StatsPosStart.X + 1, StatsPosStart.Y + LineHeightPos);
                CW.Write(Side, StatsPosStart.X + (BigestText.Length - 1), StatsPosStart.Y + LineHeightPos);
                LineHeightPos++;
            }
            CW.FillOutStringBorder(BigestText, false, StatsPosStart.X, StatsPosStart.Y + LineHeightPos);

            //enemy

            LineHeightPos = 0;
            BigestText    = "";
            StatTexts.Clear();
            StatTexts.Add(" Health: " + SingleTon.GetPlayerController().CBM.enemyFighting.Health + "/" + SingleTon.GetPlayerController().CBM.enemyFighting.MaxHp + "  ");
            StatTexts.Add(" Damage: " + SingleTon.GetPlayerController().CBM.enemyFighting.Damage + "  ");
            StatTexts.Add(" ");
            StatTexts.Add(" ");
            foreach (string element in StatTexts)
            {
                if (element.Length > BigestText.Length)
                {
                    BigestText = element + " ";
                }
            }
            int Lenght = StatsPosStart.X + (Console.WindowWidth - (StatsPosStart.X + 1 + BigestText.Length));

            CW.FillOutStringBorder(BigestText, true, Lenght, StatsPosStart.Y + LineHeightPos);
            LineHeightPos++;
            foreach (string element in StatTexts)
            {
                CW.Write(Side, Lenght, StatsPosStart.Y + LineHeightPos);
                CW.Write(element, Lenght + 1, StatsPosStart.Y + LineHeightPos);
                CW.Write(Side, Lenght + (BigestText.Length - 1), StatsPosStart.Y + LineHeightPos);
                LineHeightPos++;
            }
            CW.FillOutStringBorder(BigestText, false, Lenght, StatsPosStart.Y + LineHeightPos);
        }
Beispiel #5
0
 public override void Equip()
 {
     if (SingleTon.GetPlayerController().Inventory.MainHand != null)
     {
         SingleTon.GetPlayerController().Inventory.MainHand.UnEquip();
     }
     SingleTon.GetPlayerController().Inventory.MainHand = this;
     SingleTon.GetPlayerController().Skills.Power.AddWeaponDamage(Damage);
 }
Beispiel #6
0
        public void DrawGold()
        {
            lineheight = 0;
            string GoldText = "║ Gold: " + SingleTon.GetPlayerController().Inventory.Gold + " ║";

            CW.FillOutStringBorder(GoldText, true, GoldHeight.X, GoldHeight.Y + lineheight);
            lineheight++;
            CW.Write(GoldText, GoldHeight.X, GoldHeight.Y + lineheight);
            lineheight++;
            CW.FillOutStringBorder(GoldText, false, GoldHeight.X, GoldHeight.Y + lineheight);
        }
Beispiel #7
0
        public void Draw(Cord _Pos)
        {
            CW.Clear();
            Pos           = _Pos;
            LineHeightPos = 0;
            string BigLine = Side + " Round: " + SingleTon.GetPlayerController().CBM.Rounds + " " + Side;

            CW.FillOutStringBorder(BigLine, true, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.Write(BigLine, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.FillOutStringBorder(BigLine, false, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            BigLine = Side + " Name: " + SingleTon.GetPlayerController().PlayerName + " " + Side;
            CW.Write("", Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.FillOutStringBorder(BigLine, true, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.Write(BigLine, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.FillOutStringBorder(BigLine, false, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos += 2;
            StatsPosStart  = new Cord {
                X = Pos.X, Y = Pos.Y + LineHeightPos
            };
            ReDrawStats();
            LineHeightPos  += 9;
            ActionMenuStart = new Cord {
                X = Pos.X, Y = Pos.Y + LineHeightPos
            };
            RedrawAcionMenu();
            LineHeightPos = 10 + ActionMenuStart.Y;
            LogPosStart   = new Cord {
                X = Pos.X, Y = Pos.Y + LineHeightPos
            };
            ReDrawLog();

            //Other Side
            BigLine = Side + " Name: " + SingleTon.GetPlayerController().CBM.enemyFighting.Name + " " + Side;
            Pos     = new Cord()
            {
                X = Console.WindowWidth - (BigLine.Length + 1), Y = Pos.Y + 4
            };
            LineHeightPos = 0;
            CW.FillOutStringBorder(BigLine, true, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.Write(BigLine, Pos.X, Pos.Y + LineHeightPos);
            LineHeightPos++;
            CW.FillOutStringBorder(BigLine, false, Pos.X, Pos.Y + LineHeightPos);
        }
Beispiel #8
0
        public override void Equip()
        {
            switch (ArmorLocation)
            {
            case ArmorLocation.Chest:
                if (SingleTon.GetPlayerController().Inventory.ChestArmor != null)
                {
                    SingleTon.GetPlayerController().Inventory.ChestArmor.UnEquip();
                }
                SingleTon.GetPlayerController().Inventory.ChestArmor = this;
                break;

            case ArmorLocation.Feet:
                if (SingleTon.GetPlayerController().Inventory.ShoesArmor != null)
                {
                    SingleTon.GetPlayerController().Inventory.ShoesArmor.UnEquip();
                }
                SingleTon.GetPlayerController().Inventory.ShoesArmor = this;
                break;

            case ArmorLocation.Head:
                if (SingleTon.GetPlayerController().Inventory.HeadArmor != null)
                {
                    SingleTon.GetPlayerController().Inventory.HeadArmor.UnEquip();
                }
                SingleTon.GetPlayerController().Inventory.HeadArmor = this;
                break;

            case ArmorLocation.Offhand:
                if (SingleTon.GetPlayerController().Inventory.OffHand != null)
                {
                    SingleTon.GetPlayerController().Inventory.OffHand.UnEquip();
                }
                SingleTon.GetPlayerController().Inventory.OffHand = this;
                break;

            case ArmorLocation.Legs:
                if (SingleTon.GetPlayerController().Inventory.PantsArmor != null)
                {
                    SingleTon.GetPlayerController().Inventory.PantsArmor.UnEquip();
                }
                SingleTon.GetPlayerController().Inventory.PantsArmor = this;

                break;
            }
            SingleTon.GetPlayerController().Armor += AC;
        }
Beispiel #9
0
        public void RedrawAcionMenu()
        {
            string Filler = "oooo oooo oooo oooo oooo oooo";

            LineHeightPos = 0;
            switch (MenuState)
            {
            case ActionMenus.Ablilites:
                ActiveMenuList = SingleTon.GetPlayerController().AquiredAbilites.Select(x => x.Name).ToList();
                break;


            case ActionMenus.Items:
                ActiveMenuList = SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x.UseInCombat == true).Select(x => x.name).ToList();
                break;

            case ActionMenus.Main:
                ActiveMenuList = MenuTextOptions;
                CW.FillOutStringBorder(Filler, true, ActionMenuStart.X, ActionMenuStart.Y + LineHeightPos);
                LineHeightPos++;
                int CurrentHeight = LineHeightPos;
                for (int i = 0; i < MenuTextOptions.Count; i++)
                {
                    if (IndexMenu == i)
                    {
                        CW.Write(" [" + MenuTextOptions[i] + "] ", ActionMenuStart.X + 1, ActionMenuStart.Y + LineHeightPos);
                        LineHeightPos++;
                    }

                    else
                    {
                        CW.Write("  " + MenuTextOptions[i] + " ", ActionMenuStart.X + 1, ActionMenuStart.Y + LineHeightPos);
                        LineHeightPos++;
                    }
                }
                for (int x = CurrentHeight; x < 11; x++)
                {
                    CW.Write(Side, ActionMenuStart.X, ActionMenuStart.Y + CurrentHeight);
                    CW.Write(Side, ActionMenuStart.X + 28, ActionMenuStart.Y + CurrentHeight);
                    CurrentHeight++;
                }
                CW.FillOutStringBorder(Filler, false, ActionMenuStart.X, ActionMenuStart.Y + 11);
                break;
            }
        }
Beispiel #10
0
 public bool CheckForMonster()
 {
     if (SingleTon.PercentChance(SingleTon.GetCursorInstance().CurrentTile.ChanceAtMonsters))
     {
         SingleTon.GetPlayerController().CBM.CheckForEnemy(SingleTon.GetCursorInstance().CurrentTile);
         if (SingleTon.GetPlayerController().CBM.enemyFighting != null)
         {
             PlayManager.State = PlayerState.Combat;
             DrawInfoBox.AddToBox("You have encountered a " + SingleTon.GetPlayerController().CBM.enemyFighting.Name);
             new CombatDraw().Draw(new Cord {
                 X = 2, Y = 2
             });
             return(false);
         }
         return(true);
     }
     else
     {
         return(true);
     }
 }
Beispiel #11
0
        public InventoryMenuReturn InventoryNavigation()
        {
            switch (Console.ReadKey().Key)
            {
            case ConsoleKey.UpArrow:

                if (InventoryDraw.InventoryIndex <= 1)
                {
                    InventoryDraw.InventoryIndex = SingleTon.GetPlayerController().Inventory.Inventory.Count;
                }
                else
                {
                    InventoryDraw.InventoryIndex--;
                }
                return(InventoryMenuReturn.DrawInventoryContainer);

            case ConsoleKey.DownArrow:
                if (SingleTon.GetPlayerController().Inventory.Inventory.Count == InventoryDraw.InventoryIndex)
                {
                    InventoryDraw.InventoryIndex = 1;
                }
                else
                {
                    InventoryDraw.InventoryIndex++;
                }
                return(InventoryMenuReturn.DrawInventoryContainer);

            case ConsoleKey.LeftArrow:    //minus
                if (InventoryDraw.state == InventoryDrawMenuState.All)
                {
                    InventoryDraw.state = InventoryDrawMenuState.Misc;
                }
                else
                {
                    InventoryDraw.state--;
                }
                return(InventoryMenuReturn.Everything);

            case ConsoleKey.RightArrow:    //plus
                if (InventoryDraw.state == InventoryDrawMenuState.Misc)
                {
                    InventoryDraw.state = InventoryDrawMenuState.All;
                }
                else
                {
                    InventoryDraw.state++;
                }
                return(InventoryMenuReturn.Everything);

            case ConsoleKey.Enter:
                List <BaseItem> SortedItems = new List <BaseItem>();
                switch (InventoryDraw.state)
                {
                case InventoryDrawMenuState.All:
                    if (SingleTon.GetPlayerController().Inventory.Inventory[InventoryDraw.InventoryIndex - 1] is EquippableItem item)
                    {
                        if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(item))
                        {
                            item.UnEquip();
                        }
                        else
                        {
                            item.Equip();
                        }
                        return(InventoryMenuReturn.Everything);
                    }
                    break;

                case InventoryDrawMenuState.Armor:
                    foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ArmorItem).ToList()))
                    {
                        SortedItems.Add(element);
                    }
                    if (SortedItems[InventoryDraw.InventoryIndex - 1] is EquippableItem armor)
                    {
                        if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(armor))
                        {
                            armor.UnEquip();
                        }
                        else
                        {
                            armor.Equip();
                        }
                        return(InventoryMenuReturn.Everything);
                    }
                    break;

                case InventoryDrawMenuState.Consumeable:
                    foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ConsumableItem).ToList()))
                    {
                        SortedItems.Add(element);
                    }
                    if (SortedItems.Count != 0)
                    {
                        ConsumableItem CI = (ConsumableItem)SortedItems[InventoryDraw.InventoryIndex - 1];
                        CI.Apply();
                    }
                    break;

                case InventoryDrawMenuState.Weapon:
                    foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is WeaponItem).ToList()))
                    {
                        SortedItems.Add(element);
                    }
                    if (SortedItems[InventoryDraw.InventoryIndex - 1] is EquippableItem weapon)
                    {
                        if (SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(weapon))
                        {
                        }
                    }

                    break;
                }
                break;

            case ConsoleKey.Escape:
                Console.Clear();
                new MapDraw().DrawMap();
                PlayManager.State = PlayManager.PreviousState;
                return(InventoryMenuReturn.None);
            }
            return(InventoryMenuReturn.None);
        }
Beispiel #12
0
 public override void UnEquip()
 {
     SingleTon.GetPlayerController().Skills.Power.RemoveDamage(Damage);
     SingleTon.GetPlayerController().Inventory.MainHand = null;
 }
Beispiel #13
0
        public bool CheckForEnemy(BaseTile Tile)
        {
            List <Enemy> enemiesToPick = SingleTon.GetEnemies().enemies.Where(x => x.SpawnableTiles.Any(y => y.TileName == Tile.TileName)).Where(x => x.MinLevel <SingleTon.GetPlayerController().Level&& x.MaxLevel> SingleTon.GetPlayerController().Level).ToList();

            if (enemiesToPick.Count != 0)
            {
                enemyFighting = new Enemy().Copy(enemiesToPick[SingleTon.GetRandomNum(0, enemiesToPick.Count)]);
            }
            return(true);
        }
Beispiel #14
0
 public static void ReGainMana(int strenght)
 {
     SingleTon.GetPlayerController().Skills.Magic.DrainMana((int)((strenght * 10) * Math.Pow((double)strenght, (double)SingleTon.GetPlayerController().Level)));
 }
Beispiel #15
0
        public bool MovementInDungeon()
        {
            Input = CW.ReadKey();
            switch (Input.Key)
            {
            case ConsoleKey.UpArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y - 1))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y - 1];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.DownArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y + 1))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y + 1];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.LeftArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X - 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X - 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.RightArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X + 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X + 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.S:
                DrawStats = !DrawStats;
                if (DrawStats)
                {
                    statsD.Draw(CW.GetPos().X + (MapDraw.ViewSize.X * 2) + 6, 2);
                    return(false);
                }
                else
                {
                    CW.Clear();
                    return(true);
                }

            case ConsoleKey.Escape:
                Dungeon DG = (Dungeon)SingleTon.GetMapManagerInstance().CurrentMap.MyTile;
                if (DG != null && DG.ParrentMap != null)
                {
                    SingleTon.GetCursorInstance().CurrentTile    = DG.DungeonMap.MyTile;
                    SingleTon.GetMapManagerInstance().CurrentMap = DG.ParrentMap;
                    PlayManager.State = PlayerState.WorldMap;
                }
                return(true);

            default:
                return(false);
            }
        }
Beispiel #16
0
        public void DrawInventoryContainer()
        {
            lineheight = 0;
            List <string> ItemLine = new List <string>();

            ItemLine.Add(SizeAble("Name", "Description", "Stats", "Value", "Type", ItemLine.Count, false, true));
            switch (state)
            {
            case InventoryDrawMenuState.All:
                foreach (BaseItem element in SingleTon.GetPlayerController().Inventory.Inventory)
                {
                    if (element is EquippableItem item)
                    {
                        ItemLine.Add(SizeAble(element.name, element.describtion, element.Effect, element.Value.ToString(), element.itemType.ToString(), ItemLine.Count, SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped(item)));
                    }
                    else
                    {
                        ItemLine.Add(SizeAble(element.name, element.describtion, element.Effect, element.Value.ToString(), element.itemType.ToString(), ItemLine.Count));
                    }
                }
                break;

            case InventoryDrawMenuState.Armor:
                foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ArmorItem).ToList()))
                {
                    ItemLine.Add(SizeAble(element.name, element.describtion, element.Effect, element.Value.ToString(), element.itemType.ToString(), ItemLine.Count, SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped((EquippableItem)element)));
                }
                break;

            case InventoryDrawMenuState.Weapon:
                foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is WeaponItem).ToList()))
                {
                    ItemLine.Add(SizeAble(element.name, element.describtion, element.Effect, element.Value.ToString(), element.itemType.ToString(), ItemLine.Count, SingleTon.GetPlayerController().Inventory.CheckIfItemsIsEquipped((EquippableItem)element)));
                }
                break;

            case InventoryDrawMenuState.Consumeable:
                foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is ConsumableItem)))
                {
                    ItemLine.Add(SizeAble(element.name, element.describtion, element.Effect, element.Value.ToString(), element.itemType.ToString(), ItemLine.Count));
                }
                break;

            case InventoryDrawMenuState.Misc:
                foreach (BaseItem element in (SingleTon.GetPlayerController().Inventory.Inventory.Where(x => x is MiscItem)))
                {
                    ItemLine.Add(SizeAble(element.name, element.describtion, "", element.Value.ToString(), element.itemType.ToString(), ItemLine.Count));
                }
                break;
            }
            CW.FillOutStringBorder(ItemLine[0], true, InventoryContainerHeight.X, InventoryContainerHeight.Y + lineheight);
            lineheight++;
            CW.Write(ItemLine[0], InventoryContainerHeight.X, InventoryContainerHeight.Y + lineheight);
            lineheight++;
            CW.FillOutStringSplitter(ItemLine[0], InventoryContainerHeight.X, InventoryContainerHeight.Y + lineheight);
            lineheight++;
            for (int i = 1; i < ItemLine.Count; i++)
            {
                CW.Write(ItemLine[i], InventoryContainerHeight.X, InventoryContainerHeight.Y + lineheight);
                lineheight++;
            }
            CW.FillOutStringBorder(ItemLine[0], false, InventoryContainerHeight.X, InventoryContainerHeight.Y + lineheight);
        }
Beispiel #17
0
        public bool CheckMoveMent()
        {
            Input = CW.ReadKey();
            switch (Input.Key)
            {
            case ConsoleKey.UpArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y - 1))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y - 1];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.DownArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y + 1))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X, SingleTon.GetCursorInstance().CurrentTile.Pos.Y + 1];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.LeftArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X - 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X - 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.RightArrow:
                if (SingleTon.GetMapManagerInstance().CurrentMap.CheckLocation(SingleTon.GetCursorInstance().CurrentTile.Pos.X + 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y))
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.Tiles[SingleTon.GetCursorInstance().CurrentTile.Pos.X + 1, SingleTon.GetCursorInstance().CurrentTile.Pos.Y];
                    SingleTon.GetPlayerController().Steps++;
                    return(CheckForMonster());
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.S:
                DrawStats = !DrawStats;
                if (DrawStats)
                {
                    statsD.Draw(CW.GetPos().X + (MapDraw.ViewSize.X * 2) + 6, 2);
                    return(false);
                }
                else
                {
                    CW.Clear();
                    return(true);
                }

            case ConsoleKey.Enter:
                if (SingleTon.GetCursorInstance().CurrentTile is CityTile)
                {
                    CityTile CT = (CityTile)SingleTon.GetCursorInstance().CurrentTile;
                    DrawInfoBox.AddToBox("You have entered " + CT.CityName);
                    CT.LoadMap().MapTile = SingleTon.GetCursorInstance().CurrentTile;
                    SingleTon.GetCursorInstance().CurrentTile    = CT.CityMap.SpawnPoint;
                    SingleTon.GetMapManagerInstance().CurrentMap = CT.LoadMap();
                    CW.Clear();
                    return(true);
                }
                else if (SingleTon.GetCursorInstance().CurrentTile is Dungeon)
                {
                    Dungeon DG = (Dungeon)SingleTon.GetCursorInstance().CurrentTile;
                    DrawInfoBox.AddToBox("You have entered a dungeon");
                    DG.ParrentMap = SingleTon.GetMapManagerInstance().CurrentMap;
                    SingleTon.GetMapManagerInstance().CurrentMap = DG.LoadMap();
                    DG.DungeonMap.MyTile = SingleTon.GetCursorInstance().CurrentTile;
                    SingleTon.GetCursorInstance().CurrentTile = DG.LoadMap().SpawnPoint;
                    PlayManager.State = PlayerState.Dungeon;
                    return(true);
                }
                else
                {
                    return(false);
                }

            case ConsoleKey.Escape:
                CityTile cityTile = (CityTile)SingleTon.GetMapManagerInstance().CurrentMap.MapTile;
                if (cityTile != null && cityTile.ParrentMap != null)
                {
                    SingleTon.GetCursorInstance().CurrentTile = SingleTon.GetMapManagerInstance().CurrentMap.MapTile;
                    cityTile = (CityTile)SingleTon.GetMapManagerInstance().CurrentMap.MapTile;
                    SingleTon.GetMapManagerInstance().CurrentMap = cityTile.ParrentMap;
                }
                return(true);

            case ConsoleKey.O:
                if (IntroMenu.test)
                {
                    PlayManager.State = PlayerState.Combat;
                    new CombatDraw().Draw(new Cord {
                        X = 2, Y = 2
                    });
                    CW.ReadKey();
                }
                return(false);

            case ConsoleKey.I:
                PlayManager.State = PlayerState.Inventory;
                CW.Clear();
                new InventoryDraw().Draw();
                return(false);

            default:
                return(false);
            }
        }
Beispiel #18
0
        public void Draw()
        {
            int line;

            line = 0;
            Cord   Pos        = CW.GetPos();
            string FillerLine = "│";
            string Firsslot   = "│ Name: " + SingleTon.GetPlayerController().PlayerName + " │ Level: " + SingleTon.GetPlayerController().Level + " │ Job: " + SingleTon.GetPlayerController().PlayerClass.Name + " ";
            string SecSlot    = "│ Race: " + SingleTon.GetPlayerController().PlayerRace.Name + " │ Health: " + SingleTon.GetPlayerController().Skills.Vitallity.HealthCurrent + "/" + SingleTon.GetPlayerController().Skills.Vitallity.Health + " │ Mana: " + SingleTon.GetPlayerController().Skills.Magic.ManaCurrent + "/" + SingleTon.GetPlayerController().Skills.Magic.Mana + " ";

            if (Firsslot.Length > SecSlot.Length)
            {
                Lenght = Firsslot.Length;
                for (int i = 1; i < Firsslot.Length; i++)
                {
                    FillerLine += "─";
                }
            }
            else
            {
                Lenght = SecSlot.Length;
                for (int i = 1; i < SecSlot.Length; i++)
                {
                    FillerLine += "─";
                }
            }
            FillerLine += "│";
            CW.Write(FillerLine, Pos.X, Pos.Y + line);
            line++;
            if (Firsslot.Length > SecSlot.Length)
            {
                CW.Write(Firsslot + "│", Pos.X, Pos.Y + line);
                line++;
                CW.Write(SecSlot, Pos.X, Pos.Y + line);
                CW.WriteLine("│", Pos.X + (Lenght), Pos.Y + line);
                line++;
            }
            else
            {
                CW.Write(Firsslot, Pos.X, Pos.Y + line);
                CW.WriteLine("│", Pos.X + (Lenght), Pos.Y + line);
                line++;
                CW.Write(SecSlot + "│", Pos.X, Pos.Y + line);
                line++;
            }
            CW.Write(FillerLine, Pos.X, Pos.Y + line);
            line++;
            CW.Write("│ Skil: " + "Base" + " │ " + "Buff" + " │ " + "Skil", Pos.X, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.Write("│ Powe: " + SingleTon.GetPlayerController().Skills.Power._lvl, Pos.X, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Power.Buff, Pos.X + 12, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Power.ExtraAttack, Pos.X + 19, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.Write("│ Vita: " + SingleTon.GetPlayerController().Skills.Vitallity._lvl, Pos.X, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Vitallity.Buff, Pos.X + 12, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Vitallity.Health, Pos.X + 19, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.Write("│ Magi: " + SingleTon.GetPlayerController().Skills.Magic._lvl, Pos.X, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Magic.Buff, Pos.X + 12, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Magic.Mana, Pos.X + 19, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.Write("│ Luck: " + SingleTon.GetPlayerController().Skills.Luck._lvl, Pos.X, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Luck.Buff, Pos.X + 12, Pos.Y + line);
            CW.Write(" │ " + SingleTon.GetPlayerController().Skills.Luck.critChanceInPercentage, Pos.X + 19, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.WriteLine(FillerLine, Pos.X, Pos.Y + line);
            line++;
            CW.Write("│ XP: " + SingleTon.GetPlayerController().Xp + "/" + SingleTon.GetPlayerController().NextLevelXP, Pos.X, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.Write("│ |" + CalculateLevelProgress() + "|", Pos.X, Pos.Y + line);
            CW.Write("│", Pos.X + (Lenght), Pos.Y + line);
            line++;
            CW.WriteLine(FillerLine, Pos.X, Pos.Y + line);
        }
Beispiel #19
0
        public CombatMenuReturn CombatMenuNavigation()
        {
            switch (CW.ReadKey().Key)
            {
            case ConsoleKey.UpArrow:
                if (CombatDraw.IndexMenu > 0)
                {
                    CombatDraw.IndexMenu--;
                }
                return(CombatMenuReturn.Menu);

            case ConsoleKey.DownArrow:
                if (CombatDraw.ActiveMenuList.Count - 1 > CombatDraw.IndexMenu && CombatDraw.IndexMenu < 10)
                {
                    CombatDraw.IndexMenu++;
                }
                return(CombatMenuReturn.Menu);

            case ConsoleKey.Enter:
                switch (CombatDraw.MenuState)
                {
                case CombatDraw.ActionMenus.Ablilites:
                    throw new NotImplementedException();
                    break;

                case CombatDraw.ActionMenus.Items:
                    throw new NotImplementedException();
                    break;

                case CombatDraw.ActionMenus.Main:
                    switch (CombatDraw.IndexMenu)
                    {
                    case 0:
                        SingleTon.GetPlayerController().CBM.enemyFighting.SetDamage();
                        DrawInfoBox.AddToBox("You attacked " + SingleTon.GetPlayerController().CBM.enemyFighting.Name + " and dealt " + SingleTon.GetPlayerController().Skills.Vitallity.TakeDamage(SingleTon.GetPlayerController().CBM.enemyFighting.Damage) + ", " + SingleTon.GetPlayerController().CBM.enemyFighting.Name + " hits back and damages you " + SingleTon.GetPlayerController().CBM.enemyFighting.TakeDamage(SingleTon.GetPlayerController().Skills.Power.Buff + SingleTon.GetPlayerController().Skills.Power.ExtraAttack));
                        if (SingleTon.GetPlayerController().Skills.Vitallity.HealthCurrent == 0)
                        {
                        }
                        else if (SingleTon.GetPlayerController().CBM.enemyFighting.Health == 0)
                        {
                            if (SingleTon.GetCursorInstance().CurrentTile.MyType == TileType.Dungeon)
                            {
                                PlayManager.State = PlayerState.Dungeon;
                            }
                            else if (SingleTon.GetCursorInstance().CurrentTile.MyType == TileType.Normal)
                            {
                                PlayManager.State = PlayerState.WorldMap;
                            }
                            SingleTon.GetPlayerController().AddXP(SingleTon.GetPlayerController().CBM.enemyFighting.Xp);
                            SingleTon.GetPlayerController().Inventory.AddGold(SingleTon.GetPlayerController().CBM.enemyFighting.GetGold());
                            SingleTon.GetPlayerController().CBM.enemyFighting.EndCombat();
                            CW.Clear();
                            MapD.DrawMap();
                            return(CombatMenuReturn.None);
                        }
                        break;

                    case 1:
                        CombatDraw.MenuState = CombatDraw.ActionMenus.Items;
                        break;

                    case 2:
                        CombatDraw.MenuState = CombatDraw.ActionMenus.Ablilites;
                        break;

                    case 3:
                        DrawInfoBox.AddToBox("You tried to flee from " + SingleTon.GetPlayerController().CBM.enemyFighting.Name);
                        if (SingleTon.PercentChance(SingleTon.GetPlayerController().CBM.enemyFighting.FleeChance))
                        {
                            DrawInfoBox.AddToBox("You succeded and escaped " + SingleTon.GetPlayerController().CBM.enemyFighting.Name);
                            if (SingleTon.GetCursorInstance().CurrentTile.MyType == TileType.Dungeon)
                            {
                                PlayManager.State = PlayerState.Dungeon;
                            }
                            else if (SingleTon.GetCursorInstance().CurrentTile.MyType == TileType.Normal)
                            {
                                PlayManager.State = PlayerState.WorldMap;
                            }
                            CW.Clear();
                            MapD.DrawMap();
                            return(CombatMenuReturn.None);
                        }
                        else
                        {
                            DrawInfoBox.AddToBox("You failed and didn't escape " + SingleTon.GetPlayerController().CBM.enemyFighting.Name);
                        }
                        break;
                    }
                    break;
                }
                return(CombatMenuReturn.All);

            default:
                return(CombatMenuReturn.None);
            }
        }
Beispiel #20
0
 public DrawInfoBox()
 {
     Inputs = new List <string> {
         "Welcome to the world of AngleBorn", "Level survive and become someone new slay monsters and beasts", "best of luck " + SingleTon.GetPlayerController().PlayerName
     };
 }
Beispiel #21
0
 public static void Healing(int strenght)
 {
     SingleTon.GetPlayerController().Skills.Vitallity.Heal((int)((strenght * 10) * Math.Pow((double)strenght, (double)SingleTon.GetPlayerController().Level)));
 }