示例#1
0
    public static Being generatePlayer(int num, Tile t)
    {
        Being b = new Being(Side.PLAYER);

        Room.moveTo(b, t);
        b.moveCard = new StandardMoveCard();
        b.aWeap    = WeaponFactory.getWeaponByName(PlayerPrefs.GetString(num + "_w1"));
        b.bWeap    = WeaponFactory.getWeaponByName(PlayerPrefs.GetString(num + "_w2"));
        b.head_a   = ArmorFactory.getArmorByName(PlayerPrefs.GetString(num + "_h"));
        b.chest_a  = ArmorFactory.getArmorByName(PlayerPrefs.GetString(num + "_c"));
        b.arm_a    = ArmorFactory.getArmorByName(PlayerPrefs.GetString(num + "_a"));
        b.leg_a    = ArmorFactory.getArmorByName(PlayerPrefs.GetString(num + "_l"));
        b.feet_a   = ArmorFactory.getArmorByName(PlayerPrefs.GetString(num + "_f"));
        b.setSprite(Resources.Load <Sprite>("sprites/space-suit"));
        switch (num)
        {
        case 1: b.name = "Adam"; break;

        case 2: b.name = "Britanny"; break;

        case 3: b.name = "Chris"; break;

        case 4: b.name = "Dylan"; break;
        }
        return(b);
    }
示例#2
0
        static void Main(string[] args)
        {
            World w = new World(100, 100);

            Console.WriteLine("creating weapons and armor----------------------------");
            for (int i = 0; i < 5; i++)
            {
                Weapon wp = WeaponFactory.CreateWithRandPosition("Weapon" + i, w);
                Armor  ar = ArmorFactory.CreateWithRandPosition("Armor" + i, w);
                w.Equipables.Add(ar);
                w.Equipables.Add(wp);
                Console.WriteLine("created armor at (" + ar.Position.X + "," + ar.Position.Y + ")");
                Console.WriteLine("created weapon at (" + wp.Position.X + "," + wp.Position.Y + ")");
            }

            Console.WriteLine("making player and an enemy, and distributing weapons and armor-------------------------");
            Creature player = new Creature(1000, "Player", 1);
            Creature enemy  = new Creature(1000, "Enemy", 0);

            for (int i = 0; i < 5; i++)
            {
                player.Loot(w.Equipables[i]);
                enemy.Loot(w.Equipables[i + 5]);
            }

            Console.WriteLine("enemy and player fight to the death");
            int  c     = 1;
            bool alive = true;

            while (alive)
            {
                if (c % 2 == 0)
                {
                    int atk = player.Attack();
                    enemy.Defend(player.Attack());
                    Console.WriteLine("player attacks dealing: " + atk + " damage");
                    Console.WriteLine("enemy remaining hp: " + enemy.Hitpoints);
                    if (enemy.Hitpoints == 0)
                    {
                        alive = false;
                    }
                }
                else
                {
                    int atk = enemy.Attack();
                    player.Defend(atk);
                    Console.WriteLine("enemy attacks dealing: " + atk + " damage");
                    Console.WriteLine("player remaining hp: " + player.Hitpoints);
                    if (player.Hitpoints == 0)
                    {
                        alive = false;
                    }
                }
                c++;
            }

            //Console.WriteLine("hitpints remaining");
            //Console.WriteLine("enemy hitpoints: "+enemy.Hitpoints);
            //Console.WriteLine("player hitpoints: " + player.Hitpoints);
        }
示例#3
0
        public static List <IArmor> ReadItems()
        {
            using (connection = new SQLiteConnection(ConnectionString))
            {
                connection.Open();
                var armors    = new List <IArmor>();
                var myCommand = new SQLiteCommand("SELECT * FROM Armors", connection);
                var reader    = myCommand.ExecuteReader();
                while (reader.Read())
                {
                    var armor = ArmorFactory.CreateArmor();
                    armor.Id                  = (uint)reader.GetInt32(0);
                    armor.Name                = reader.GetString(1);
                    armor.Type                = (ArmorType)reader.GetInt32(2);
                    armor.Price               = (ulong)reader.GetInt32(3);
                    armor.BaseArmor           = (byte)reader.GetInt32(4);
                    armor.MaxAgility          = (byte)reader.GetInt32(5);
                    armor.StrengthCap         = (byte)reader.GetInt32(6);
                    armor.StealthDisadvantage = reader.GetBoolean(7);
                    armor.Weight              = (byte)reader.GetInt32(8);
                    armors.Add(armor);
                }

                connection.Close();
                return(armors);
            }
        }
示例#4
0
        public static IArmor ReadItem(uint id)
        {
            using (connection = new SQLiteConnection(ConnectionString))
            {
                connection.Open();
                IArmor armor     = null;
                var    query     = $@"
                    SELECT * 
                    FROM Armors 
                    WHERE Id = '{id}'";
                var    myCommand = new SQLiteCommand(query, connection);
                var    reader    = myCommand.ExecuteReader();
                while (reader.Read())
                {
                    armor                     = ArmorFactory.CreateArmor();
                    armor.Id                  = (uint)reader.GetInt32(0);
                    armor.Name                = reader.GetString(1);
                    armor.Type                = (ArmorType)reader.GetInt32(2);
                    armor.Price               = (ulong)reader.GetInt32(3);
                    armor.BaseArmor           = (byte)reader.GetInt32(4);
                    armor.MaxAgility          = (byte)reader.GetInt32(5);
                    armor.StrengthCap         = (byte)reader.GetInt32(6);
                    armor.StealthDisadvantage = reader.GetBoolean(7);
                    armor.Weight              = (byte)reader.GetInt32(8);
                }

                connection.Close();
                return(armor);
            }
        }
示例#5
0
        public void CheckItemPropertyValue()
        {
            ArmorFactory factoryInstance = new ArmorFactory();
            EItemRarity  rarity          = EItemRarity.LEGENDARY;
            Item         armorInstance   = factoryInstance.CreateItemUnitTest(rarity);

            Assert.That(armorInstance.BaseEnchantmentValue, Is.EqualTo(100));
        }
示例#6
0
        public void CheckItemUpgradeProcess()
        {
            ArmorFactory factoryInstance = new ArmorFactory();
            Item         armorInstance   = factoryInstance.CreateItemUnitTest(EItemRarity.COMMON);
            EItemRarity  previousRarity  = armorInstance.ItemRarity;

            armorInstance.UpgradeItem();

            Assert.That(armorInstance.ItemRarity, Is.EqualTo(previousRarity + 1));
        }
        private void prefabA()
        {
            Rooms    = new Room[8];
            Rooms[0] = new Room(RoomCount++, new [] { 1 }, this);
            Rooms[1] = new Room(RoomCount++, new [] { 0, 2, 3 }, this);
            Rooms[2] = new Room(RoomCount++, new [] { 1 }, this);
            Rooms[3] = new Room(RoomCount++, new [] { 1, 4 }, this);
            Rooms[4] = new Room(RoomCount++, new [] { 3, 5 }, this);
            Rooms[5] = new Room(RoomCount++, new [] { 4, 6, 7 }, this);
            Rooms[6] = new Room(RoomCount++, new [] { 5 }, this);
            Rooms[7] = new Room(RoomCount++, new [] { 5 }, this);
            //Add monsters
            Monster miniBoss = MonsterFactory.CreateHobgoblin(Rooms[4]);

            miniBoss.Weapon   = WeaponFactory.CreateAxe();
            miniBoss.Armor    = ArmorFactory.CreateChainmail();
            miniBoss.Behavior = NpcBehavior.ANGRY;
            miniBoss.Inventory.Add(ItemFactory.StrengthPotion());
            Rooms[4].Creatures.Add(miniBoss);
            int     randPos  = _gen.Next(7) + 1;
            Monster wanderer = MonsterFactory.CreateGoblin(Rooms[randPos]); //randomly place the wanderer in the dungeon, barring where the player starts

            wanderer.Inventory.Add(ItemFactory.AgilityPotion());
            wanderer.Behavior = NpcBehavior.ANGRY;
            wanderer.State    = CreatureState.HUNTING;
            wanderer.Weapon   = WeaponFactory.CreateDagger();
            wanderer.Inventory.Add(wanderer.Weapon);
            Rooms[randPos].Creatures.Add(wanderer);
            Monster boss = MonsterFactory.CreateHobgoblin(Rooms[7]);

            boss.Name     = "Grimbo";
            boss.Armor    = ArmorFactory.CreateChainmail();
            boss.Weapon   = WeaponFactory.CreateGreatsword();
            boss.Behavior = NpcBehavior.ANGRY;
            Rooms[7].Creatures.Add(boss);
            Rooms[2].Creatures.Add(MonsterFactory.CreateGoblin(Rooms[2]));
            //Add items
            Rooms[6].Contents.Add(ArmorFactory.CreatePlate());
            MeleeWeapon thunderHammer = new MeleeWeapon(
                DamageType.PIERCING,
                new DamageRoll(4, 6),
                "40mm BOFORS Autocannon",
                "Employed by multiple european militaries, the BOFORS is used as the main implement of destruction for multiple types of Infantry Fighting Vehicles.",
                1,
                100);

            Rooms[6].Contents.Add(thunderHammer);
            Rooms[2].Contents.Add(ItemFactory.CreateHealthPotionsSix());
            Rooms[1].Contents.Add(ArmorFactory.CreateRags());
            Rooms[5].Contents.Add(ItemFactory.CreateHealthPotionsNine());
            Rooms[0].Contents.Add(WeaponFactory.CreateMace());
            Rooms[0].Contents.Add(ItemFactory.CreateHealthPotionsSix());
            Rooms[3].Contents.Add(WeaponFactory.CreateSpear());
        }
示例#8
0
    /// <summary>
    /// Get an armour by name
    /// </summary>
    /// <param name="name">name of armour, include +1, +2 etc if needed</param>
    /// <returns>If no such armour exsist, null will be returned</returns>
    public Armor GetArmor(string name)
    {
        ArmorStats a = null;

        foreach (ArmorStats b in adb)
        {
            if (b.fullName == name)
            {
                a = b;
            }
        }
        if (a == null)
        {
            return(null);
        }

        ArmorFactory af = new ArmorFactory(a.fullName);

        af.Weight     = a.weight;
        af.Level      = a.level;
        af.Resistance = a.resistance;
        // Special attributes
        switch (a.name)
        {
        case "War Paint":
            af.StrenghtBonus();
            af.AgilityBonus();
            break;

        case "Thieves Cape":
            af.AgilityBonus();
            break;

        case "Mithral Ring Mail":
        case "Wyrm Scale":
            af.DexterityBonus();
            break;

        case "Magican Robes":
        case "Dapper Vest":
            af.IntelligenceBonus();
            break;

        case "Brass Cuirass":
        case "Wyrm Plate":
            af.StrenghtBonus();
            break;
        }

        return(af.GetArmour());
    }
示例#9
0
        //Create a factory test object to pass in here and set values then create a constructor which takes that factory as a parameter
        //public Gladiater(List<IAttribute> attributes, Dictionary<BodyPart, IWeapon> weaponSet, Dictionary<BodyPart, IArmor> armor, List<IItems> inventory, GladiatorTypes gladType)
        //{
        //    this.Attributes = attributes;
        //    this.WeaponSet = weaponSet;
        //    this.Armor = armor;
        //    this.Inventory = inventory;
        //    this.Name = gladType.ToString();
        //    this.IsAlive = true;
        //    this.DmgMitigated = 0;
        //    this.Kills = 0;
        //    this.Reputation = Reputation.Hostile;
        //    InteractionTriggered += OnInteractionTriggered;
        //}

        public Gladiator(string name, GladiatorTypes gladType)
        {
            this.Attributes       = AttributeFactory.GetInstance(gladType.ToString());
            this.WeaponSet        = WeaponFactory.GetBaseWeaponInstances(gladType);
            this.Armor            = ArmorFactory.GetBaseArmorInstances(gladType);
            this.AbilityList      = AbilityFactory.GetBaseAbilityList(gladType);
            this.Inventory        = new List <IItems>();
            this.Name             = name.ToUpper();
            this.IsAlive          = true;
            this.DmgMitigated     = 0;
            this.Kills            = 0;
            this.MaxEnergyValue   = this.GetAttribute(AttributeType.Energy).Value;
            this.Reputation       = Reputation.Hostile;
            InteractionTriggered += OnInteractionTriggered;
        }
示例#10
0
    //------------------------------------------------------------------------------------------------------------------------
    //                                                  PopulateList()
    //------------------------------------------------------------------------------------------------------------------------
    private void PopulateList(int pWeaponCount, int pArmorCount, int pPotionCount)
    {
        WeaponFactory weaponFactory = new WeaponFactory();
        ArmorFactory armorFactory = new ArmorFactory();
        PotionFactory potionFactory = new PotionFactory();

        GenerateItems(pWeaponCount, _itemList, weaponFactory);
        GenerateItems(pArmorCount, _itemList, armorFactory);
        GenerateItems(pPotionCount, _itemList, potionFactory);

        //Give each item an unique index.
        int itemIndex = 0;
        foreach (Item item in _itemList)
        {
            item.ItemIndex = itemIndex;
            itemIndex++;
        }
    }
示例#11
0
    private void Awake()
    {
        if (!instance)
        {
            travel    = null;
            mapBounds = new Pair(-11.29f + 0.3f, 9.15f - 0.3f);
            ts        = new Dictionary <int, Pair>(2)
            {
                { 1, new Pair(0, 0) }, { 2, new Pair(0, 2) }
            };
            attackTypeFactory = new AttackTypeFactory();
            weaponFactory     = new WeaponFactory();
            potionFactory     = new PotionFactory();
            armorFactory      = new ArmorFactory();
            skillTypeFactory  = new SkillTypeFactory();
            instance          = this;
        }
        else if (instance != this)
        {
            Destroy(this.gameObject);
        }

        DontDestroyOnLoad(this.gameObject);
    }
示例#12
0
    public void nextPerson()
    {
        if (personId > 0)
        {
            //save fields
            PlayerPrefs.SetString(personId + "_w1", wSel1);
            PlayerPrefs.SetString(personId + "_w2", wSel2);
            PlayerPrefs.SetString(personId + "_h", hSel);
            PlayerPrefs.SetString(personId + "_c", cSel);
            PlayerPrefs.SetString(personId + "_a", aSel);
            PlayerPrefs.SetString(personId + "_l", lSel);
            PlayerPrefs.SetString(personId + "_f", fSel);
            PlayerPrefs.Save();
            //remove stuff from lists
            weapons.Remove(wSel1);
            if (!wSel1.Equals(wSel2))
            {
                weapons.Remove(wSel2);
            }
            headGear.Remove(hSel);
            chestGear.Remove(cSel);
            armGear.Remove(aSel);
            legGear.Remove(lSel);
            feetGear.Remove(fSel);
        }
        switch (personId)
        {
        case 0: namer.text = "Adam"; break;

        case 1: namer.text = "Britteny"; break;

        case 2: namer.text = "Chris"; break;

        case 3: namer.text = "Dylan"; break;
        }
        if (personId == 4)
        {
            SceneManager.LoadSceneAsync("SampleScene");
        }
        else
        {
            Debug.Log("Managing selections.");

            //load stuff into dropdowns
            weaponOne.ClearOptions();
            weaponTwo.ClearOptions();
            headArmor.ClearOptions();
            chestArmor.ClearOptions();
            armArmor.ClearOptions();
            legArmor.ClearOptions();
            feetArmor.ClearOptions();
            List <TMP_Dropdown.OptionData> list = new List <TMP_Dropdown.OptionData>();
            foreach (string s in weapons)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = WeaponFactory.getWeaponByName(s).getImage();
                list.Add(d);
            }
            weaponOne.AddOptions(list);
            weaponTwo.AddOptions(list);
            //
            list.Clear();
            foreach (string s in headGear)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = ArmorFactory.getArmorByName(s).getImage();
                list.Add(d);
            }
            headArmor.AddOptions(list);
            //
            list.Clear();
            foreach (string s in armGear)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = ArmorFactory.getArmorByName(s).getImage();
                list.Add(d);
            }
            armArmor.AddOptions(list);
            //
            list.Clear();
            foreach (string s in chestGear)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = ArmorFactory.getArmorByName(s).getImage();
                list.Add(d);
            }
            chestArmor.AddOptions(list);
            //
            list.Clear();
            foreach (string s in legGear)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = ArmorFactory.getArmorByName(s).getImage();
                list.Add(d);
            }
            legArmor.AddOptions(list);
            //
            list.Clear();
            foreach (string s in feetGear)
            {
                TMP_Dropdown.OptionData d = new TMP_Dropdown.OptionData();
                d.text  = s;
                d.image = ArmorFactory.getArmorByName(s).getImage();
                list.Add(d);
            }
            feetArmor.AddOptions(list);
            //

            //select first thing in each dropdown
            selectWeapon1();
            selectWeapon2();
            selectHead();
            selectChest();
            selectArm();
            selectLeg();
            selectFeet();
            personId++;
        }
    }