Exemplo n.º 1
0
        public static TeamMember generateNewTeamMember()
        {
            WeaponDefinition primary = WeaponUtil.getWeapon("M16A3", RarityObject.Rarity.COMMON);

            WeaponDefinition secondary = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.UNCOMMON);

            //load the name json object
            TextAsset namesJson = Resources.Load <TextAsset>(memberNamesPath);

            //deserialize the name json into an object
            MemberNames memberNames = JsonConvert.DeserializeObject <MemberNames>(namesJson.text);

            string fName;

            if (Random.Range(0, 1) < 0.5)
            {
                fName = memberNames.maleNames[Random.Range(0, memberNames.maleNames.Count)];
            }
            else
            {
                fName = memberNames.femaleNames[Random.Range(0, memberNames.maleNames.Count)];
            }

            string sName = memberNames.surnames[Random.Range(0, memberNames.maleNames.Count)];

            return(new TeamMember(Random.Range(0, 15), fName, sName, primary, secondary, primary, secondary));
        }
        //temporarily returning weapon list. Need to fix when implementing other drop types
        public WeaponDefinition[] generateLoot(string enemyId)
        {
            //check the enemy id matches a key in the enemy definitions
            if (!enemyDefinitions.definitions.ContainsKey(enemyId))
            {
                throw new System.Exception("Missing enemy id.");
            }

            //retrieve the enemy details
            EnemyDefinition definition = enemyDefinitions.definitions[enemyId];

            //create an array to store the loot drops
            WeaponDefinition[] generatedDefinitions = new WeaponDefinition[definition.lootDrops];

            for (int i = 0; i < definition.lootDrops; i++)
            {
                //randomly select the loot drop type such as weapon, armour, resource etc.
                string dropType = ((WeightedString)WeightedValueSelector.selectValue(definition.lootDropTypes)).value;

                switch (dropType)
                {
                case "WEAPON":
                    //using the selected loot drop type, randomly select the inner group of loot items such as assault_rifles
                    WeaponLootDefinition weaponLootDefinition = ((WeaponLootDefinition)WeightedValueSelector.selectValue(definition.weaponWeights));

                    //randomly select the rarity type of the loot drop
                    RarityObject.Rarity rarity = ((WeightedRarityObject)WeightedValueSelector.selectValue(weaponLootDefinition.rarityWeights)).value;

                    //using the randomly selected information retrieve a weapon definition and add to loot list
                    generatedDefinitions[i] = WeaponUtil.getWeapon(weaponLootDefinition.name, rarity);
                    break;

                case "ARMOUR":
                    break;

                case "INTEL":
                    break;

                case "RESOURCE":
                    break;

                case "NONE":
                    break;
                }
            }

            //return the list of awarded loot types
            return(generatedDefinitions);
        }
Exemplo n.º 3
0
        public void addSecondaryWeapon()
        {
            WeaponDefinition weapon;

            int i = (int)Mathf.Round(Random.Range(0, 5));

            switch (i)
            {
            case 0:
                weapon = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.COMMON);
                break;

            case 1:
                weapon = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.UNCOMMON);
                break;

            case 2:
                weapon = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.RARE);
                break;

            case 3:
                weapon = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.VERY_RARE);
                break;

            case 4:
            default:
                weapon = WeaponUtil.getWeapon("M9A1", RarityObject.Rarity.LEGENDARY);
                break;
            }

            secondaryWeaponSubMenu.addPanel(weapon.name, weapon.minimumDamage + " - " + weapon.maximumDamage, ItemUtil.getRarityColour(weapon.rarity));

            this.inventory.secondaryWeaponDefinitions.Add(weapon);

            ItemUtil.saveInventory(inventory);
        }