示例#1
0
        public Weakling(string name) : base(name)
        {
            ActionList.Add("null1", NullAction.GetActionBuilder());
            ActionList.Add("null2", NullAction.GetActionBuilder());
            ActionList.Add("attack", AttackAction.GetActionBuilder());
            ItemBuilderFactory factory = ItemBuilderFactory.GetInstance();

            LootTable.Add(new LootTableElement(999, factory.GetBuilder("rusty-spoon")));
            LootTable.Add(new LootTableElement(999, factory.GetBuilder("loincloth")));
            LootTable.Add(new LootTableElement(100, factory.GetBuilder("healing-potion")));
        }
示例#2
0
        public PlayerCharacter GetPlayer(string name)
        {
            string           realName;
            string           playerClass;
            int              level;
            int              experience;
            string           weapon;
            string           armor;
            string           itemname;
            int              itemCount;
            PlayerCharacter  player;
            NpgsqlDataReader reader;
            Inventory        inventory = new Inventory();

            lock (lockObject)
            {
                PlayerCharacterFactory f = new PlayerCharacterFactory();
                reader = Command(string.Format("SELECT name, class, level, experience, weapon, armor FROM GalaMUD.players WHERE lowerName='{0}';", name.ToLower()));
                reader.Read();
                realName    = reader.GetString(0);
                playerClass = reader.GetString(1);
                level       = reader.GetInt32(2);
                experience  = reader.GetInt32(3);
                weapon      = reader.GetString(4);
                armor       = reader.GetString(5);
                reader.Close();
                player = f.GetInstanceByClass(playerClass, realName, level, experience);
                reader = Command(string.Format("SELECT item, count FROM GalaMUD.inventory WHERE lowerName='{0}';", name.ToLower()));
                while (reader.Read())
                {
                    //reader.Read();
                    itemname  = reader.GetString(0);
                    itemCount = reader.GetInt32(1);
                    ItemBuilderFactory factory = ItemBuilderFactory.GetInstance();
                    for (int x = 0; x < itemCount; x++)
                    {
                        inventory.AddItem(factory.GetBuilder(itemname.ToLower()).Invoke());
                    }
                }
                reader.Close();
                player.SetInventory(inventory);
                player.Equip(weapon);
                player.Equip(armor);
                return(player);
            }
        }
示例#3
0
        public BasicMob(string name, int level) : base(name)
        {
            MaxHitPoints = (int)(level * 1.8);
            Level        = level;
            Damage       = level;
            Armor        = level;
            Power        = level;
            HitPoints    = MaxHitPoints;
            ItemBuilderFactory factory = ItemBuilderFactory.GetInstance();

            ActionList.Add("attack", AttackAction.GetActionBuilder());
            LootTable.Add(new LootTableElement(100, factory.GetBuilder("healing-potion")));
            if (level == 2)
            {
                LootTable.Add(new Mud.Items.LootTableElement(500, factory.GetBuilder("rusty-dagger")));
            }
            if (level == 3)
            {
                LootTable.Add(new LootTableElement(500, factory.GetBuilder("quilted-armor")));
            }
        }