コード例 #1
0
        private static float GetMaxBonus(RarityModifier rarity)
        {
            var levelBonus  = PlayerManager.Instance.PlayerStats.CombatLevel * 3;
            var rarityBonus = (levelBonus + MaximumFlatBonus[rarity]) * PercentageBonus[rarity];

            return(levelBonus + rarityBonus);
        }
コード例 #2
0
ファイル: ItemFactory.cs プロジェクト: LeeOkeefe/3D-Roguelite
        private Equipment GenerateRandomBonuses(EquipmentDefinition definition, RarityModifier rarity)
        {
            if (definition == null)
            {
                return(null);
            }

            switch (definition.EquipmentSlotId)
            {
            case EquipmentSlotId.Torso:
                return(m_ChestplateGenerator.GenerateBonuses(definition, rarity));

            case EquipmentSlotId.Head:
                return(m_HelmetGenerator.GenerateBonuses(definition, rarity));

            case EquipmentSlotId.Legs:
                return(m_PlatelegsGenerator.GenerateBonuses(definition, rarity));

            case EquipmentSlotId.Weapon:
                return(m_WeaponGenerator.GenerateBonuses(definition, rarity));

            default:
                throw new ArgumentException("I don't know what kind of item this is :D");
            }
        }
コード例 #3
0
        public Equipment GenerateBonuses(EquipmentDefinition definition, RarityModifier rarity)
        {
            m_Log.Log($"I am generating a {definition.Name} item with rarity {rarity}", LogLevel.Info);
            m_Log.Log($"Base stats are {string.Join(", ", definition.StatBonuses.Select(m => $"{m.Key}: {m.Value}"))}", LogLevel.Info);

            if (definition.EquipmentSlotId != EquipmentSlotId.Weapon)
            {
                throw new ArgumentException("Equipment must be of type weapon, was " + definition.EquipmentSlotId);
            }

            var minBonus = MinimumFlatBonus[rarity];
            var maxBonus = Mathf.RoundToInt(GetMaxBonus(rarity));

            m_Log.Log($"Min bonus is {minBonus}", LogLevel.Info);
            m_Log.Log($"Max bonus is {maxBonus}", LogLevel.Info);

            return(GenerateEquipmentWithBonuses(definition, minBonus, maxBonus));
        }