示例#1
0
        private static void GetItemLists(int playerId, Inventory inventory, bool capture)
        {
            var itemDictionary = new Dictionary<int, int>();
            //itemIdList.Clear();
            var linkCmd = connection.CreateCommand();
            linkCmd.CommandText = capture ? $"SELECT * FROM `capturelink` WHERE `playerId` = @X"
                : $"SELECT * FROM `medicinelink` WHERE `playerId` = @X";
            linkCmd.Parameters.AddWithValue("@X", playerId);
            using (var rdr = linkCmd.ExecuteReader()) {
                while (rdr.Read()) {
                    var linkId = rdr.GetInt32(capture ? "captureId" : "medicineId");
                    itemDictionary.Add(linkId, rdr.GetInt32("Amount"));
                }
            }

            foreach (var linkId in itemDictionary) {
                var cmd = connection.CreateCommand();
                cmd.CommandText = capture ? $"SELECT * FROM `capture`" : $"SELECT * FROM `medicine`";
                using (var rdr = cmd.ExecuteReader()) {
                    while (rdr.Read()) {
                        var id = rdr.GetInt32("Id");
                        if (linkId.Key == id) {
                            var cause = false;
                            var cure = Medicine.Cure.None;
                            var healAmount = 0;
                            var captureChance = 0;
                            var name = rdr.GetString("Name");
                            var description = rdr.GetString("Description");
                            if (capture) { captureChance = rdr.GetInt32("CaptureChance"); }
                            else {
                                healAmount = rdr.GetInt32("HealAmount");
                                cure = Medicine.GetCureFromString(rdr.GetString("Cures"));
                                cause = rdr.GetBoolean("Cause");
                            }
                            var worth = rdr.GetInt32("Worth");
                            var maxAmount = rdr.GetInt32("MaxAmount");

                            if (capture) inventory.Add(new Capture(id, name, description, ContentLoader.GetTextureFromCapture(id), captureChance, true, worth, linkId.Value, maxAmount), linkId.Value);
                            else inventory.Add(new Medicine(id, name, description, ContentLoader.GetTextureFromMedicine(id), healAmount, cure, worth, linkId.Value, maxAmount, cause), linkId.Value);
                        }
                    }
                }
            }
        }
示例#2
0
        public static Inventory GetInventory(int playerId)
        {
            Inventory inventory = new Inventory();

            if (connection.State == ConnectionState.Open) {
                GetItemLists(playerId, inventory, true);
                GetItemLists(playerId, inventory, false);
            }
            return inventory;
        }
示例#3
0
文件: Area.cs 项目: DuckDefense/duck
        public static Area Route9(Character player)
        {
            int money = 10000;
            if (Sound != null)
                Sound.Stop();

            Sound = ContentLoader.RouteSong.CreateInstance();
            Sound.IsLooped = true;
            Sound.Play();

            Character tegenstander;
            Inventory inventory = new Inventory();
            inventory.Add(Medicine.MagicStone(), 2);
            List<string> battleLine = new List<string> { "Hah! Almost didn't catch you" };
            List<string> winLine = new List<string> { "That's what you get for getting caught by me" };
            List<string> loseLine = new List<string> { "I wish I didn't catch you", $"{player.Name} got ${money} for winning" };
            tegenstander = new Character("Christguy", money, inventory,
                new List<Monster> {
                    DatabaseConnector.GetMonster(3, 40),
                    DatabaseConnector.GetMonster(6, 40),
                    DatabaseConnector.GetMonster(9, 40),
                    DatabaseConnector.GetMonster(13, 40),
                    DatabaseConnector.GetMonster(15, 40),
                    DatabaseConnector.GetMonster(16, 50)
                },
                battleLine, winLine, loseLine, ContentLoader.MCGirlWorld, new Vector2(352, 254));
            tegenstander.AI = new AI(tegenstander, 4);

            Random random = new Random();
            Point levelrange = new Point(22, 27);
            var map = ContentLoader.Route9;
            Vector2 spawn = Vector2.One;
            spawn = new Vector2(352, 32);

            List<Monster> monsters = new List<Monster>
            {
                DatabaseConnector.GetMonster(12, random.Next(levelrange.X, levelrange.Y - 2)),
                DatabaseConnector.GetMonster(12, random.Next(levelrange.X, levelrange.Y)),
                DatabaseConnector.GetMonster(13, random.Next(levelrange.X, levelrange.Y)),
                DatabaseConnector.GetMonster(17, random.Next(levelrange.X, levelrange.Y - 2)),
                DatabaseConnector.GetMonster(21, random.Next(levelrange.X, levelrange.Y + 1)),
                DatabaseConnector.GetMonster(18, random.Next(levelrange.X, levelrange.Y)),
                DatabaseConnector.GetMonster(23, random.Next(levelrange.X, levelrange.Y - 2))

            };
            List<Character> opponents = new List<Character>
            {
                tegenstander
            };

            return new Area("Route 9", levelrange, monsters, opponents, spawn, map);
        }
示例#4
0
文件: Area.cs 项目: DuckDefense/duck
        public static Area Shop()
        {
            var spawn = new Vector2(288, 256);
            var map = ContentLoader.Shop;
            var inventory = new Inventory();
            inventory.Add(Capture.RottenNet(), 99);
            inventory.Add(Capture.RegularNet(), 99);
            inventory.Add(Capture.GreatNet(), 99);
            inventory.Add(Capture.MasterNet(), 99);

            inventory.Add(Medicine.LeafBandage(), 99);
            inventory.Add(Medicine.MagicStone(), 99);
            inventory.Add(Medicine.NastySpoon(), 99);
            inventory.Add(Medicine.AntiPoison(), 99);
            inventory.Add(Medicine.BucketOfWater(), 99);
            inventory.Add(Medicine.Salt(), 99);
            inventory.Add(Medicine.AirHorn(), 99);
            inventory.Add(Medicine.RoosVicee(), 99);

            var introShopLines = new List<string> { "Hello!\n Do you want to buy something?" };
            var byeShopLines = new List<string> { "Take a look", "Thanks for stopping by" };
            var ShopLady = new Character("HealLady", 0, inventory, introShopLines, byeShopLines, NPCKind.Shop, ContentLoader.HealLady, new Vector2(288, 64));

            ShopLady.AI = new AI(ShopLady, 2);
            ShopLady.Direction = Direction.Down;
            ShopLady.SetLineOfSight(2);

            var introLines = new List<string> { "Hello!\n Do you want to restore your monsters?" };
            var byeLines = new List<string> { "Here you go", "Thanks for stopping by" };
            var healLady = new Character("HealLady", 0, null, introLines, byeLines, NPCKind.Healer, ContentLoader.HealLady, new Vector2(224, 64));

            healLady.AI = new AI(healLady, 2);
            healLady.Direction = Direction.Down;
            healLady.SetLineOfSight(2);

            List<Character> opponents = new List<Character>();
            opponents.Add(healLady);
            opponents.Add(ShopLady);

            return new Area("Shop", Point.Zero, new List<Monster>(), opponents, spawn, map);
        }
示例#5
0
文件: Area.cs 项目: DuckDefense/duck
        public static Area Route1(Character player)
        {
            int money = 500;
            if (Sound != null)
                Sound.Stop();

            Sound = ContentLoader.RouteSong.CreateInstance();
            Sound.IsLooped = true;
            Sound.Play();

            Character tegenstander;
            Inventory inventory = new Inventory();
            inventory.Add(Medicine.MagicStone(), 2);
            List<string> battleLine = new List<string> { "Hah! Almost didn't catch you" };
            List<string> winLine = new List<string> { "That's what you get for getting caught by me" };
            List<string> loseLine = new List<string> { "I wish I didn't catch you", $"{player.Name} got ${money} for winning" };
            tegenstander = new Character("Christguy", money, inventory,
                new List<Monster> {
                    DatabaseConnector.GetMonster(1, 5),
                    DatabaseConnector.GetMonster(4, 7)
                },
                battleLine, winLine, loseLine, ContentLoader.ChristmanWorld, new Vector2(192, 192));
            tegenstander.AI = new AI(tegenstander, 3);

            Random random = new Random();
            Point levelrange = new Point(2, 8);
            var map = ContentLoader.Route1;
            Vector2 spawn = Vector2.One;
            if (player.PreviousArea != null)
                if (player.PreviousArea.Name == "City") {
                    spawn = new Vector2(384, 32);
                }
                else if (player.PreviousArea.Name == "EasterCity") {
                    spawn = new Vector2(384, 32);
                }
                else {
                    spawn = new Vector2(192, 416);
                }
            List<Monster> monsters = new List<Monster>
            {
                DatabaseConnector.GetMonster(10, random.Next(levelrange.X, levelrange.Y -2)),
                DatabaseConnector.GetMonster(10, random.Next(levelrange.X, levelrange.Y - 1)),
                DatabaseConnector.GetMonster(10, random.Next(levelrange.X, levelrange.Y)),
                DatabaseConnector.GetMonster(12, random.Next(levelrange.X, levelrange.Y - 1)),
                DatabaseConnector.GetMonster(12, random.Next(levelrange.X, levelrange.Y - 2)),
                DatabaseConnector.GetMonster(14, random.Next(levelrange.X, levelrange.Y))
            };
            List<Character> opponents = new List<Character>
            {
                tegenstander
            };

            return new Area("Route 1", levelrange, monsters, opponents, spawn, map);
        }