From b0c635aaf51fac61a43be57b784a8d28859be770 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Thu, 25 Sep 2025 17:03:11 +0100 Subject: [PATCH] stat & equipment type definitions (WIP) --- .../Graphics/cfxr ember blur hdr ab.mat | 10 +- .../cfxr fire circle plain hdr ab.mat | 15 +- .../Graphics/cfxr smoke cloud x4 ab.mat | 10 +- Assets/Character Stats/Equipment.meta | 8 + .../Equipment/EquipmentTypeRegistry.cs | 148 ++++++++++++ .../Equipment/EquipmentTypeRegistry.cs.meta | 2 + .../Equipment/EquippableItemTypeDefinition.cs | 221 ++++++++++++++++++ .../EquippableItemTypeDefinition.cs.meta | 2 + .../Prefabs/Persistent Objects.prefab | 108 +++++---- ...eath_ChanneledAbilityPrefab Variant.prefab | 57 ++++- .../EquippableItemTypeDefinitions.meta | 8 + .../Resources.meta | 8 + .../Resources/EquipmentDefinitions.meta | 8 + .../EquipmentDefinitions/Helmet.asset | 58 +++++ .../EquipmentDefinitions/Helmet.asset.meta} | 2 +- .../EquipmentDefinitions/Shoulder.asset | 33 +++ .../EquipmentDefinitions/Shoulder.asset.meta | 8 + .../StatDefinitions/AreaEffectiveness.asset | 31 +++ .../AreaEffectiveness.asset.meta | 8 + .../Resources/StatDefinitions/Armor.asset | 31 +++ .../StatDefinitions/Armor.asset.meta | 8 + .../StatDefinitions/AttackDamage.asset | 31 +++ .../StatDefinitions/AttackDamage.asset.meta | 8 + .../StatDefinitions/AttackSpeed.asset | 31 +++ .../StatDefinitions/AttackSpeed.asset.meta | 8 + .../Resources/StatDefinitions/AuraPower.asset | 31 +++ .../StatDefinitions/AuraPower.asset.meta | 8 + .../StatDefinitions/BlockChance.asset | 31 +++ .../StatDefinitions/BlockChance.asset.meta | 8 + .../StatDefinitions/BlockEffectiveness.asset | 31 +++ .../BlockEffectiveness.asset.meta | 8 + .../StatDefinitions/CooldownReduction.asset | 31 +++ .../CooldownReduction.asset.meta | 8 + .../StatDefinitions/CritChance.asset | 31 +++ .../StatDefinitions/CritChance.asset.meta | 8 + .../StatDefinitions/CritDamage.asset | 31 +++ .../StatDefinitions/CritDamage.asset.meta | 8 + .../Resources/StatDefinitions/Cunning.asset | 2 +- .../StatDefinitions/DodgeChance.asset | 31 +++ .../StatDefinitions/DodgeChance.asset.meta | 8 + .../Resources/StatDefinitions/Flow.asset | 2 +- .../StatDefinitions/GoldCostReduction.asset | 31 +++ .../GoldCostReduction.asset.meta | 8 + .../StatDefinitions/HealthRegen.asset | 31 +++ .../StatDefinitions/HealthRegen.asset.meta | 8 + .../StatDefinitions/MagicResistance.asset | 31 +++ .../MagicResistance.asset.meta | 8 + .../Resources/StatDefinitions/ManaRegen.asset | 31 +++ .../StatDefinitions/ManaRegen.asset.meta | 8 + .../Resources/StatDefinitions/MaxHealth.asset | 31 +++ .../StatDefinitions/MaxHealth.asset.meta | 8 + .../Resources/StatDefinitions/MaxMana.asset | 31 +++ .../StatDefinitions/MaxMana.asset.meta | 8 + .../StatDefinitions/MovementSpeed.asset | 31 +++ .../StatDefinitions/MovementSpeed.asset.meta | 8 + .../Resources/StatDefinitions/Presence.asset | 2 +- .../ReputationGainIncrease.asset | 31 +++ .../ReputationGainIncrease.asset.meta | 8 + .../StatDefinitions/SpellDamage.asset | 31 +++ .../StatDefinitions/SpellDamage.asset.meta | 8 + .../Generator/EquippableItemGenerator.cs | 45 +--- .../Items/Generator/New Stat Rule Set.asset | 60 ----- Assets/Scripts/Items/Generator/StatRuleSet.cs | 4 +- 63 files changed, 1439 insertions(+), 162 deletions(-) create mode 100644 Assets/Character Stats/Equipment.meta create mode 100644 Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs create mode 100644 Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs.meta create mode 100644 Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs create mode 100644 Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs.meta create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions.meta create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources.meta create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions.meta create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset rename Assets/{Scripts/Items/Generator/New Stat Rule Set.asset.meta => Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset.meta} (79%) create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset create mode 100644 Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset.meta create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset create mode 100644 Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset.meta delete mode 100644 Assets/Scripts/Items/Generator/New Stat Rule Set.asset diff --git a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr ember blur hdr ab.mat b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr ember blur hdr ab.mat index 67fa9fd1..d104536a 100644 --- a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr ember blur hdr ab.mat +++ b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr ember blur hdr ab.mat @@ -8,12 +8,12 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: cfxr ember blur hdr ab - m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, - type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHABLEND_ON - _CFXR_DITHERED_SHADOWS_ON - - _FADING_ON m_InvalidKeywords: - _ - _CFXR_HDR_BOOST @@ -28,6 +28,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -148,7 +149,7 @@ Material: - _UseLighting: 0 - _UseLightingWorldPosOffset: 0 - _UseNormalMap: 0 - - _UseSP: 1 + - _UseSP: 0 - _UseSecondColor: 0 - _UseUV2Distortion: 0 - _UseUVDistortion: 0 @@ -161,3 +162,4 @@ Material: - _OverlayTex_Scroll: {r: 0.1, g: 0.1, b: 1, a: 1} - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr fire circle plain hdr ab.mat b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr fire circle plain hdr ab.mat index 076c373e..1591e884 100644 --- a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr fire circle plain hdr ab.mat +++ b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr fire circle plain hdr ab.mat @@ -8,27 +8,29 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: cfxr fire circle plain hdr ab - m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, - type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHABLEND_ON - _ALPHATEST_ON - _CFXR_EDGE_FADING - - _CFXR_HDR_BOOST - - _CFXR_SINGLE_CHANNEL - _CFXR_UV_DISTORTION - - _FADING_ON m_InvalidKeywords: - _ - _CFXR_DITHERED_SHADOWS_OFF + - _CFXR_HDR_BOOST - _CFXR_OVERLAYBLEND_RGBA - _CFXR_OVERLAYTEX_OFF + - _CFXR_SINGLE_CHANNEL + - _SINGLECHANNEL_ON m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -108,7 +110,7 @@ Material: - _UseLighting: 0 - _UseLightingWorldPosOffset: 0 - _UseNormalMap: 0 - - _UseSP: 1 + - _UseSP: 0 - _UseSecondColor: 0 - _UseUV2Distortion: 0 - _UseUVDistortion: 1 @@ -120,3 +122,4 @@ Material: - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr smoke cloud x4 ab.mat b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr smoke cloud x4 ab.mat index c4980919..377d9ffc 100644 --- a/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr smoke cloud x4 ab.mat +++ b/Assets/1-Packs/Effects/JMO Assets/Cartoon FX Remaster_Older/CFXR Assets/Graphics/cfxr smoke cloud x4 ab.mat @@ -8,13 +8,13 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: cfxr smoke cloud x4 ab - m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, - type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 1a29b4d27eb8b04479ef89c00dea533d, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _ALPHABLEND_ON - _CFXR_DISSOLVE - _CFXR_DITHERED_SHADOWS_ON - - _FADING_ON m_InvalidKeywords: - _ - _CFXR_OVERLAYBLEND_RGBA @@ -25,6 +25,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -105,7 +106,7 @@ Material: - _UseLighting: 0 - _UseLightingWorldPosOffset: 0 - _UseNormalMap: 0 - - _UseSP: 1 + - _UseSP: 0 - _UseSecondColor: 0 - _UseUV2Distortion: 0 - _UseUVDistortion: 0 @@ -118,3 +119,4 @@ Material: - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticlesFadeDistance: {r: 0, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Character Stats/Equipment.meta b/Assets/Character Stats/Equipment.meta new file mode 100644 index 00000000..ef2dd46c --- /dev/null +++ b/Assets/Character Stats/Equipment.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 006bd5a5d00289441ae14ebacb625f1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs b/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs new file mode 100644 index 00000000..face3381 --- /dev/null +++ b/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs @@ -0,0 +1,148 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +public class EquipmentTypeRegistry : MonoBehaviour +{ + [Header("Auto-Discovery Settings")] + [SerializeField] private string equipmentDefinitionsResourcesPath = "EquipmentDefinitions"; + [SerializeField] private bool autoRefreshInEditor = true; + + [Header("Loaded Equipment (Read-Only)")] + [SerializeField] private EquippableItemTypeDefinition[] allEquipment = new EquippableItemTypeDefinition[0]; + + // Singleton instance + private static EquipmentTypeRegistry _instance; + public static EquipmentTypeRegistry Instance + { + get + { + if (_instance == null) + { + _instance = FindObjectOfType(); + if (_instance == null) + { + GameObject registryGO = new GameObject("EquipmentTypeRegistry"); + _instance = registryGO.AddComponent(); + DontDestroyOnLoad(registryGO); + } + } + return _instance; + } + } + + // Dictionary for fast lookups + private Dictionary equipmentLookup; + private bool isInitialized = false; + + private void Awake() + { + // Singleton enforcement + if (_instance != null && _instance != this) + { + Destroy(gameObject); + return; + } + + _instance = this; + DontDestroyOnLoad(gameObject); + + Initialize(); + } + + [ContextMenu("Refresh Equipment Definitions")] + public void RefreshEquipmentDefinitions() + { + LoadAllEquipmentDefinitions(); + BuildLookupDictionary(); + + Debug.Log($"EquipmentTypeRegistry: Loaded {allEquipment.Length} equipment definitions from Resources/{equipmentDefinitionsResourcesPath}"); + } + + private void Initialize() + { + if (isInitialized) return; + + RefreshEquipmentDefinitions(); + isInitialized = true; + } + + private void LoadAllEquipmentDefinitions() + { + // Load all EquippableItemTypeDefinition assets from the specified Resources folder + EquippableItemTypeDefinition[] loadedEquipment = Resources.LoadAll(equipmentDefinitionsResourcesPath); + + // Validate for duplicate keys + var duplicateKeys = loadedEquipment + .GroupBy(equipment => equipment.EquipmentKey) + .Where(g => g.Count() > 1) + .Select(g => g.Key); + + if (duplicateKeys.Any()) + { + Debug.LogError($"EquipmentTypeRegistry: Duplicate equipment keys found: {string.Join(", ", duplicateKeys)}"); + } + + // Filter out any with empty keys + allEquipment = loadedEquipment + .Where(equipment => !string.IsNullOrEmpty(equipment.EquipmentKey)) + .ToArray(); + + // Sort alphabetically for consistent ordering + System.Array.Sort(allEquipment, (a, b) => string.Compare(a.EquipmentKey, b.EquipmentKey, System.StringComparison.OrdinalIgnoreCase)); + } + + private void BuildLookupDictionary() + { + equipmentLookup = new Dictionary(); + + foreach (var equipment in allEquipment) + { + if (!equipmentLookup.ContainsKey(equipment.EquipmentKey)) + { + equipmentLookup[equipment.EquipmentKey] = equipment; + } + else + { + Debug.LogWarning($"EquipmentTypeRegistry: Duplicate equipment key '{equipment.EquipmentKey}' ignored for asset '{equipment.name}'"); + } + } + } + + // Public API methods + public EquippableItemTypeDefinition GetEquipment(string equipmentKey) + { + if (!isInitialized) Initialize(); + + return equipmentLookup.TryGetValue(equipmentKey, out EquippableItemTypeDefinition equipment) ? equipment : null; + } + + public EquippableItemTypeDefinition[] GetAllEquipment() + { + if (!isInitialized) Initialize(); + return allEquipment; + } + + public bool HasEquipment(string equipmentKey) + { + if (!isInitialized) Initialize(); + return equipmentLookup.ContainsKey(equipmentKey); + } + + public int GetEquipmentCount() + { + if (!isInitialized) Initialize(); + return allEquipment.Length; + } + +#if UNITY_EDITOR + private void OnValidate() + { + // Auto-refresh in editor when settings change + if (autoRefreshInEditor && Application.isPlaying) + { + RefreshEquipmentDefinitions(); + } + } +#endif +} \ No newline at end of file diff --git a/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs.meta b/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs.meta new file mode 100644 index 00000000..3dc10cdf --- /dev/null +++ b/Assets/Character Stats/Equipment/EquipmentTypeRegistry.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3b090d12504ad234382cb912b91d2aed \ No newline at end of file diff --git a/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs b/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs new file mode 100644 index 00000000..11c16b66 --- /dev/null +++ b/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs @@ -0,0 +1,221 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using Kryz.CharacterStats.Examples; + +[CreateAssetMenu(fileName = "New Equipment Type Definition", menuName = "RiftMayhem/Equipment Type Definition")] +public class EquippableItemTypeDefinition : ScriptableObject +{ + [Header("Identity & Display")] + [SerializeField] private string equipmentKey = ""; + [SerializeField] private string displayName = ""; + [SerializeField] private string shortName = ""; + [TextArea(2, 4)] + [SerializeField] private string description = ""; + [SerializeField] private Sprite uiIcon = null; // Icon used in equipment slots/UI + + [Header("Equipment Classification")] + [SerializeField] private EquipmentType equipmentType = EquipmentType.Helmet; + [SerializeField] private WeaponType weaponType = WeaponType.Sword; // Only relevant if equipmentType is Weapon1/Weapon2 + [SerializeField] private bool showInUI = true; + + [Header("Visual Assets")] + [SerializeField] private Sprite[] availableIcons = new Sprite[0]; // Pool of icons for random generation + [SerializeField] private bool useResourcesFolder = true; + [SerializeField] private string resourcesPath = ""; // e.g., "Armor/Helmets" + + [Header("Stat Rules")] + [SerializeField] private StatDefinition[] allowedStats = new StatDefinition[0]; + [SerializeField] private StatDefinition[] forbiddenStats = new StatDefinition[0]; + [SerializeField] private StatDefinition[] mandatoryStats = new StatDefinition[0]; + [SerializeField] private StatWeightModifier[] statWeightModifiers = new StatWeightModifier[0]; + + [Header("Generation Settings")] + [SerializeField] private bool canBeGenerated = true; + [SerializeField] private float baseGenerationWeight = 1f; + [SerializeField] private int minStatRolls = 1; + [SerializeField] private int maxStatRolls = 3; + + // Public read-only properties + public string EquipmentKey => equipmentKey; + public string DisplayName => displayName; + public string ShortName => shortName; + public string Description => description; + public Sprite UIIcon => uiIcon; + public EquipmentType EquipmentType => equipmentType; + public WeaponType WeaponType => weaponType; + public bool ShowInUI => showInUI; + public Sprite[] AvailableIcons => availableIcons; + public bool UseResourcesFolder => useResourcesFolder; + public string ResourcesPath => resourcesPath; + public StatDefinition[] AllowedStats => allowedStats; + public StatDefinition[] ForbiddenStats => forbiddenStats; + public StatDefinition[] MandatoryStats => mandatoryStats; + public StatWeightModifier[] StatWeightModifiers => statWeightModifiers; + public bool CanBeGenerated => canBeGenerated; + public float BaseGenerationWeight => baseGenerationWeight; + public int MinStatRolls => minStatRolls; + public int MaxStatRolls => maxStatRolls; + + // Cached icons from resources + private Sprite[] resourceIcons; + private bool resourceIconsLoaded = false; + + // Derived properties using your existing enums and extensions + public bool IsWeapon => equipmentType == EquipmentType.Weapon1 || equipmentType == EquipmentType.Weapon2; + public bool IsTwoHanded => IsWeapon && weaponType.IsTwoHanded(); + + // Validation in the editor + private void OnValidate() + { + // Ensure equipmentKey is not empty and follows naming conventions + if (string.IsNullOrEmpty(equipmentKey)) + { + equipmentKey = name.Replace(" ", "").Replace("(", "").Replace(")", ""); + } + + // Ensure displayName defaults to a readable version of equipmentKey if empty + if (string.IsNullOrEmpty(displayName) && !string.IsNullOrEmpty(equipmentKey)) + { + displayName = System.Text.RegularExpressions.Regex.Replace(equipmentKey, "([a-z])([A-Z])", "$1 $2"); + } + + // Ensure shortName defaults to displayName if empty + if (string.IsNullOrEmpty(shortName) && !string.IsNullOrEmpty(displayName)) + { + shortName = displayName.Length > 8 ? displayName.Substring(0, 8) : displayName; + } + + // Ensure min/max stat rolls make sense + if (minStatRolls > maxStatRolls) + { + maxStatRolls = minStatRolls; + } + + if (minStatRolls < 0) + { + minStatRolls = 0; + } + + // Ensure base generation weight is positive + if (baseGenerationWeight < 0f) + { + baseGenerationWeight = 0f; + } + + // If using resources folder, warn if manual icons are also set + if (useResourcesFolder && !string.IsNullOrEmpty(resourcesPath) && availableIcons.Length > 0) + { + Debug.LogWarning($"EquipmentTypeDefinition '{name}': Using resources folder, manual icon array will be ignored."); + } + } + + // Utility methods + public bool HasUIIcon => uiIcon != null; + + public string GetDisplayName(bool useShort = false) + { + if (useShort && !string.IsNullOrEmpty(shortName)) + return shortName; + + return !string.IsNullOrEmpty(displayName) ? displayName : equipmentKey; + } + + public Sprite[] GetAllAvailableIcons() + { + if (useResourcesFolder && !string.IsNullOrEmpty(resourcesPath)) + { + if (!resourceIconsLoaded) + { + LoadIconsFromResources(); + } + return resourceIcons ?? new Sprite[0]; + } + + return availableIcons; + } + + public Sprite GetRandomIcon() + { + var icons = GetAllAvailableIcons(); + return icons.Length > 0 ? icons[Random.Range(0, icons.Length)] : null; + } + + public string GetIconPath(Sprite icon) + { + if (useResourcesFolder && !string.IsNullOrEmpty(resourcesPath)) + { + return $"{resourcesPath}/{icon.name}"; + } + return null; // Manual icons don't have paths + } + + public bool IsStatAllowed(StatDefinition stat) + { + // Check if explicitly forbidden + if (forbiddenStats.Contains(stat)) + return false; + + // If allowedStats is specified, stat must be in it + if (allowedStats.Length > 0) + return allowedStats.Contains(stat); + + // If no explicit allowed list, allow by default (unless forbidden) + return true; + } + + public bool IsStatMandatory(StatDefinition stat) + { + return mandatoryStats.Contains(stat); + } + + public float GetStatWeightMultiplier(StatDefinition stat) + { + var modifier = statWeightModifiers.FirstOrDefault(m => m.stat == stat); + return modifier != null ? modifier.weightMultiplier : 1f; + } + + public int GetRandomStatRollCount() + { + return Random.Range(minStatRolls, maxStatRolls + 1); + } + + private void LoadIconsFromResources() + { + if (string.IsNullOrEmpty(resourcesPath)) + { + resourceIcons = new Sprite[0]; + } + else + { + resourceIcons = Resources.LoadAll(resourcesPath); + } + + resourceIconsLoaded = true; + } + + // Context menu for testing + [ContextMenu("Test Get Random Icon")] + private void TestGetRandomIcon() + { + var icon = GetRandomIcon(); + Debug.Log($"{name}: Random icon = {(icon != null ? icon.name : "None")}"); + } +} + +[System.Serializable] +public class StatWeightModifier +{ + public StatDefinition stat; + public float weightMultiplier = 1f; +} +[System.Serializable] +public class StatAvailabilityWeightAndRolls +{ + public StatDefinition stat; + public bool isAllowed; + public bool isMandatory; + public float weightMultiplier; + public float minStatRoll; + public float maxStatRoll; +} \ No newline at end of file diff --git a/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs.meta b/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs.meta new file mode 100644 index 00000000..131ffdb6 --- /dev/null +++ b/Assets/Character Stats/Equipment/EquippableItemTypeDefinition.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 97c2864d727cc3f4485dcd520d9b2793 \ No newline at end of file diff --git a/Assets/Developer/Prefabs/Persistent Objects.prefab b/Assets/Developer/Prefabs/Persistent Objects.prefab index 6c7ca4ac..62582cfd 100644 --- a/Assets/Developer/Prefabs/Persistent Objects.prefab +++ b/Assets/Developer/Prefabs/Persistent Objects.prefab @@ -3751,46 +3751,6 @@ MonoBehaviour: baseStatValue: 1 statVariance: 0.3 percentStatBaseValue: 0.01 - armorWeights: - attackDamage: 1 - spellDamage: 1 - critChance: 0.8 - critDamage: 0.8 - maxHealth: 1 - armor: 1 - magicResistance: 1 - dodgeChance: 0.6 - blockChance: 0.4 - blockEffectiveness: 0.4 - healthRegen: 0.7 - maxMana: 0.8 - manaRegen: 0.7 - attackSpeed: 0.8 - areaEffectiveness: 0.5 - cooldownReduction: 0.6 - movementSpeed: 0.4 - reputationGain: 0.3 - goldCostReduction: 0.3 - weaponWeights: - attackDamage: 1 - spellDamage: 1 - critChance: 0.8 - critDamage: 0.8 - maxHealth: 1 - armor: 1 - magicResistance: 1 - dodgeChance: 0.6 - blockChance: 0.4 - blockEffectiveness: 0.4 - healthRegen: 0.7 - maxMana: 0.8 - manaRegen: 0.7 - attackSpeed: 0.8 - areaEffectiveness: 0.5 - cooldownReduction: 0.6 - movementSpeed: 0.4 - reputationGain: 0.3 - goldCostReduction: 0.3 HelmetIcons: - {fileID: 21300000, guid: 23c2c3b0ab47a5b41863fa972ade911b, type: 3} - {fileID: 21300000, guid: c4aed0e5ce4222242905ebeedd509289, type: 3} @@ -8376,6 +8336,53 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d9815cca592bf9d44a1813123eedecaf, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &4351842483040640408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 682979993416613079} + - component: {fileID: 7051690238217302413} + m_Layer: 0 + m_Name: EquipmentTypeRegistry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &682979993416613079 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4351842483040640408} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7475116342638198534} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7051690238217302413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4351842483040640408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3b090d12504ad234382cb912b91d2aed, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::EquipmentTypeRegistry + equipmentDefinitionsResourcesPath: EquipmentDefinitions + autoRefreshInEditor: 0 + allEquipment: [] --- !u!1 &4646726119636579143 GameObject: m_ObjectHideFlags: 0 @@ -15390,6 +15397,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 565157831923484480} + - {fileID: 682979993416613079} - {fileID: 7475116341162077651} - {fileID: 7624448236951792051} - {fileID: 2491171992559046387} @@ -15950,9 +15958,29 @@ MonoBehaviour: statDefinitionsResourcesPath: StatDefinitions autoRefreshInEditor: 0 allStats: + - {fileID: 11400000, guid: d9561a8f85fc81f43961fa58de0cd088, type: 2} + - {fileID: 11400000, guid: 8a59fbc0a19857b48a0789d4b4115ea4, type: 2} + - {fileID: 11400000, guid: de18f1cd5c7345243a127dbf50a1c714, type: 2} + - {fileID: 11400000, guid: 0886a83f3dd15114487850e54518829d, type: 2} + - {fileID: 11400000, guid: 332d0dbee9590e24e9ad5166dd75ef69, type: 2} + - {fileID: 11400000, guid: 8dcb92f2ee1026241a3bc051a42f91f5, type: 2} + - {fileID: 11400000, guid: 4e90e0c058763a143b3ec657351fcace, type: 2} + - {fileID: 11400000, guid: ec3548202e941294da429cd3083937c0, type: 2} + - {fileID: 11400000, guid: d318a3662a3ccf04f9f193a818cc3361, type: 2} + - {fileID: 11400000, guid: a19f2ac40579e5d4aa0713f43fcfa276, type: 2} - {fileID: 11400000, guid: d52b20e3f02ba8946bf37a7470beafd0, type: 2} + - {fileID: 11400000, guid: aa214c2ad3c962447b486ecf16c9c950, type: 2} - {fileID: 11400000, guid: 63eee8f1286035f4a80356bcfad289b6, type: 2} + - {fileID: 11400000, guid: 1e63fcf4ac1c02c4e9b9bd62f0243f05, type: 2} + - {fileID: 11400000, guid: 79006f60ae538ad4ca179ee739f39232, type: 2} + - {fileID: 11400000, guid: 6093187f425cccc43b5fa829db293893, type: 2} + - {fileID: 11400000, guid: a50126674c634ef49b4986605ee42baa, type: 2} + - {fileID: 11400000, guid: e6da017ba613adf4d82d9b6a214c6c7c, type: 2} + - {fileID: 11400000, guid: f1c964d3ea9c1d349bb5111b11accade, type: 2} + - {fileID: 11400000, guid: 1407df369cf076445a1619597e085e1c, type: 2} - {fileID: 11400000, guid: 599541ff1aaa6c848a732f9a97e5f1c4, type: 2} + - {fileID: 11400000, guid: 7895ba1f0b9a732488642046ee62c8a6, type: 2} + - {fileID: 11400000, guid: 88595dcd80f9c614b8bd7d8218fb5951, type: 2} --- !u!1 &7508304584244435363 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Abilities/DragonBreath_ChanneledAbilityPrefab Variant.prefab b/Assets/Resources/Abilities/DragonBreath_ChanneledAbilityPrefab Variant.prefab index 97b9dbf0..9134391f 100644 --- a/Assets/Resources/Abilities/DragonBreath_ChanneledAbilityPrefab Variant.prefab +++ b/Assets/Resources/Abilities/DragonBreath_ChanneledAbilityPrefab Variant.prefab @@ -109,16 +109,65 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8890274778108708459, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8890567755997494583, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8892177129927377689, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7684677543225702287, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} + insertIndex: -1 + addedObject: {fileID: 2141321868871885368} m_SourcePrefab: {fileID: 100100000, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} --- !u!4 &5204171253078388714 stripped Transform: m_CorrespondingSourceObject: {fileID: 8767152486562788127, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} m_PrefabInstance: {fileID: 3572410667015642357} m_PrefabAsset: {fileID: 0} +--- !u!1 &6572639787963591546 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7684677543225702287, guid: c4ed38c72957f2241ad144a1614956d9, type: 3} + m_PrefabInstance: {fileID: 3572410667015642357} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2141321868871885368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6572639787963591546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1001 &3920771718891186100 PrefabInstance: m_ObjectHideFlags: 0 @@ -148,15 +197,15 @@ PrefabInstance: value: 1 objectReference: {fileID: 0} - target: {fileID: 3050080491739039912, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3} - propertyPath: clips.Array.data[0] + propertyPath: 'clips.Array.data[0]' value: objectReference: {fileID: 8300000, guid: 4588673e0bee19640b1d69ab4034ecf8, type: 3} - target: {fileID: 3050080491739039912, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3} - propertyPath: clips.Array.data[1] + propertyPath: 'clips.Array.data[1]' value: objectReference: {fileID: 8300000, guid: c988ab92e63bd8945b16dc81acfee9da, type: 3} - target: {fileID: 3050080491739039912, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3} - propertyPath: clips.Array.data[2] + propertyPath: 'clips.Array.data[2]' value: objectReference: {fileID: 8300000, guid: c988ab92e63bd8945b16dc81acfee9da, type: 3} - target: {fileID: 6444664609889423327, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3} diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions.meta new file mode 100644 index 00000000..1333c429 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a52088751bc17a741b6bebf46fc6655c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources.meta new file mode 100644 index 00000000..80872607 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4cb72ed2afe42fc46a86d7cbfef93429 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions.meta new file mode 100644 index 00000000..0b52d439 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fdc0de34d8f00ba40b26a7c2b06803b5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset new file mode 100644 index 00000000..4c952e58 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c2864d727cc3f4485dcd520d9b2793, type: 3} + m_Name: Helmet + m_EditorClassIdentifier: Assembly-CSharp::EquippableItemTypeDefinition + equipmentKey: Helmet + displayName: Helmet + shortName: Helmet + description: + uiIcon: {fileID: 0} + equipmentType: 0 + weaponType: 7 + showInUI: 1 + availableIcons: [] + useResourcesFolder: 1 + resourcesPath: Armor/Helmets + allowedStats: + - {fileID: 11400000, guid: 8a59fbc0a19857b48a0789d4b4115ea4, type: 2} + - {fileID: 11400000, guid: 6093187f425cccc43b5fa829db293893, type: 2} + - {fileID: 11400000, guid: e6da017ba613adf4d82d9b6a214c6c7c, type: 2} + - {fileID: 11400000, guid: 79006f60ae538ad4ca179ee739f39232, type: 2} + - {fileID: 11400000, guid: f1c964d3ea9c1d349bb5111b11accade, type: 2} + - {fileID: 11400000, guid: a50126674c634ef49b4986605ee42baa, type: 2} + - {fileID: 11400000, guid: ec3548202e941294da429cd3083937c0, type: 2} + forbiddenStats: + - {fileID: 11400000, guid: de18f1cd5c7345243a127dbf50a1c714, type: 2} + - {fileID: 11400000, guid: 88595dcd80f9c614b8bd7d8218fb5951, type: 2} + - {fileID: 11400000, guid: 0886a83f3dd15114487850e54518829d, type: 2} + - {fileID: 11400000, guid: d318a3662a3ccf04f9f193a818cc3361, type: 2} + - {fileID: 11400000, guid: a19f2ac40579e5d4aa0713f43fcfa276, type: 2} + - {fileID: 11400000, guid: 332d0dbee9590e24e9ad5166dd75ef69, type: 2} + - {fileID: 11400000, guid: aa214c2ad3c962447b486ecf16c9c950, type: 2} + - {fileID: 11400000, guid: 8dcb92f2ee1026241a3bc051a42f91f5, type: 2} + - {fileID: 11400000, guid: 4e90e0c058763a143b3ec657351fcace, type: 2} + - {fileID: 11400000, guid: d9561a8f85fc81f43961fa58de0cd088, type: 2} + - {fileID: 11400000, guid: 1407df369cf076445a1619597e085e1c, type: 2} + mandatoryStats: + - {fileID: 11400000, guid: 8a59fbc0a19857b48a0789d4b4115ea4, type: 2} + statWeightModifiers: + - stat: {fileID: 11400000, guid: 8a59fbc0a19857b48a0789d4b4115ea4, type: 2} + weightMultiplier: 2 + - stat: {fileID: 11400000, guid: 6093187f425cccc43b5fa829db293893, type: 2} + weightMultiplier: 1.5 + - stat: {fileID: 11400000, guid: ec3548202e941294da429cd3083937c0, type: 2} + weightMultiplier: 0.25 + canBeGenerated: 1 + baseGenerationWeight: 1 + minStatRolls: 1 + maxStatRolls: 3 diff --git a/Assets/Scripts/Items/Generator/New Stat Rule Set.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset.meta similarity index 79% rename from Assets/Scripts/Items/Generator/New Stat Rule Set.asset.meta rename to Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset.meta index 6e8cada4..59973d43 100644 --- a/Assets/Scripts/Items/Generator/New Stat Rule Set.asset.meta +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Helmet.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0e0fedd18e1c7d84bbcb311bc1744ae6 +guid: a8b9c44760450794299fcb8e3cd443b3 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset new file mode 100644 index 00000000..5df35f19 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c2864d727cc3f4485dcd520d9b2793, type: 3} + m_Name: Shoulder + m_EditorClassIdentifier: Assembly-CSharp::EquippableItemTypeDefinition + equipmentKey: Shoulder + displayName: Shoulder + shortName: Shoulder + description: + uiIcon: {fileID: 0} + equipmentType: 1 + weaponType: 7 + showInUI: 1 + availableIcons: [] + useResourcesFolder: 1 + resourcesPath: Armor/Shoulders + allowedStats: [] + forbiddenStats: [] + mandatoryStats: [] + statWeightModifiers: [] + canBeGenerated: 1 + baseGenerationWeight: 1 + minStatRolls: 1 + maxStatRolls: 3 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset.meta new file mode 100644 index 00000000..ad183509 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/EquippableItemTypeDefinitions/Resources/EquipmentDefinitions/Shoulder.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7d57fbc93b54ee4cb5a2dc567254d6a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset new file mode 100644 index 00000000..a23a637c --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: AreaEffectiveness + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: AreaEffectiveness + displayName: Area Effectiveness + shortName: Area Eff + description: + icon: {fileID: 0} + category: 5 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset.meta new file mode 100644 index 00000000..eb270992 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AreaEffectiveness.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d9561a8f85fc81f43961fa58de0cd088 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset new file mode 100644 index 00000000..d7657253 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: Armor + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: Armor + displayName: Armor + shortName: Armor + description: + icon: {fileID: 0} + category: 4 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset.meta new file mode 100644 index 00000000..701eec09 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Armor.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a59fbc0a19857b48a0789d4b4115ea4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset new file mode 100644 index 00000000..3cf186db --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: AttackDamage + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: AttackDamage + displayName: Attack Damage + shortName: Atk Dmg + description: + icon: {fileID: 0} + category: 1 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset.meta new file mode 100644 index 00000000..ee362ba4 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackDamage.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de18f1cd5c7345243a127dbf50a1c714 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset new file mode 100644 index 00000000..4ec41e5d --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: AttackSpeed + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: AttackSpeed + displayName: Attack Speed + shortName: Atk Spd + description: + icon: {fileID: 0} + category: 2 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset.meta new file mode 100644 index 00000000..b31a9e24 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AttackSpeed.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0886a83f3dd15114487850e54518829d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset new file mode 100644 index 00000000..ddd43311 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: AuraPower + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: AuraPower + displayName: Aura Power + shortName: Aura Pow + description: + icon: {fileID: 0} + category: 2 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 0 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset.meta new file mode 100644 index 00000000..6f0d43cb --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/AuraPower.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 332d0dbee9590e24e9ad5166dd75ef69 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset new file mode 100644 index 00000000..6d9ec262 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: BlockChance + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: BlockChance + displayName: Block Chance + shortName: Block C + description: + icon: {fileID: 0} + category: 4 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 1 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset.meta new file mode 100644 index 00000000..6cf819cc --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockChance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8dcb92f2ee1026241a3bc051a42f91f5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset new file mode 100644 index 00000000..db80c927 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: BlockEffectiveness + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: BlockEffectiveness + displayName: Block Effectiveness + shortName: Block E + description: + icon: {fileID: 0} + category: 4 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 0.75 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset.meta new file mode 100644 index 00000000..d3c09bb4 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/BlockEffectiveness.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e90e0c058763a143b3ec657351fcace +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset new file mode 100644 index 00000000..f7afdb40 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: CooldownReduction + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: CooldownReduction + displayName: Cooldown Reduction + shortName: CDR + description: + icon: {fileID: 0} + category: 5 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 0.9 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset.meta new file mode 100644 index 00000000..90dde512 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CooldownReduction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec3548202e941294da429cd3083937c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset new file mode 100644 index 00000000..ac42dcf7 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: CritChance + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: CritChance + displayName: Crit Chance + shortName: Crit C + description: + icon: {fileID: 0} + category: 2 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset.meta new file mode 100644 index 00000000..cbdde23a --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritChance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d318a3662a3ccf04f9f193a818cc3361 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset new file mode 100644 index 00000000..538e3333 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: CritDamage + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: CritDamage + displayName: Crit Damage + shortName: Crit Dmg + description: + icon: {fileID: 0} + category: 2 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset.meta new file mode 100644 index 00000000..e02d74fe --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/CritDamage.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a19f2ac40579e5d4aa0713f43fcfa276 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Cunning.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Cunning.asset index 7b3ae4ce..8515bee9 100644 --- a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Cunning.asset +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Cunning.asset @@ -27,5 +27,5 @@ MonoBehaviour: canBePercent: 0 defaultBaseValue: 0 minValue: 0 - maxValue: 3.4028235e+38 + maxValue: 9999999 roundToInteger: 1 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset new file mode 100644 index 00000000..86ee5530 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: DodgeChance + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: DodgeChance + displayName: Dodge Chance + shortName: Dodge + description: + icon: {fileID: 0} + category: 4 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0.02 + minValue: 0 + maxValue: 1 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset.meta new file mode 100644 index 00000000..59efbc06 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/DodgeChance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa214c2ad3c962447b486ecf16c9c950 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Flow.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Flow.asset index 0a6c208b..dadc00ad 100644 --- a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Flow.asset +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Flow.asset @@ -27,5 +27,5 @@ MonoBehaviour: canBePercent: 0 defaultBaseValue: 0 minValue: 0 - maxValue: 3.4028235e+38 + maxValue: 9999999 roundToInteger: 1 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset new file mode 100644 index 00000000..d6f6ab65 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: GoldCostReduction + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: GoldCostReduction + displayName: Gold Cost Reduction + shortName: Gold Cost + description: + icon: {fileID: 0} + category: 6 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 0 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset.meta new file mode 100644 index 00000000..edb7ee7c --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/GoldCostReduction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e63fcf4ac1c02c4e9b9bd62f0243f05 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset new file mode 100644 index 00000000..3c05c025 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: HealthRegen + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: HealthRegen + displayName: Health Regen + shortName: HP Regen + description: + icon: {fileID: 0} + category: 3 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset.meta new file mode 100644 index 00000000..c9e963ad --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/HealthRegen.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79006f60ae538ad4ca179ee739f39232 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset new file mode 100644 index 00000000..8b94e09b --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: MagicResistance + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: MagicResistance + displayName: Magic Resistance + shortName: Magic Res + description: + icon: {fileID: 0} + category: 4 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset.meta new file mode 100644 index 00000000..66712e78 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MagicResistance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6093187f425cccc43b5fa829db293893 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset new file mode 100644 index 00000000..31120aee --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: ManaRegen + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: ManaRegen + displayName: Mana Regen + shortName: Mana Rgn + description: + icon: {fileID: 0} + category: 3 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 1 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset.meta new file mode 100644 index 00000000..c81d903a --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ManaRegen.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a50126674c634ef49b4986605ee42baa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset new file mode 100644 index 00000000..0e6d23bc --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: MaxHealth + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: MaxHealth + displayName: Max Health + shortName: Max HP + description: + icon: {fileID: 0} + category: 3 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 100 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset.meta new file mode 100644 index 00000000..89c1384f --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxHealth.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6da017ba613adf4d82d9b6a214c6c7c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset new file mode 100644 index 00000000..7a60e922 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: MaxMana + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: MaxMana + displayName: Max Mana + shortName: Max Mana + description: + icon: {fileID: 0} + category: 3 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 50 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset.meta new file mode 100644 index 00000000..37c752f6 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MaxMana.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1c964d3ea9c1d349bb5111b11accade +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset new file mode 100644 index 00000000..df989cd1 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: MovementSpeed + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: MovementSpeed + displayName: Movement Speed + shortName: Movement + description: + icon: {fileID: 0} + category: 5 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 1 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset.meta new file mode 100644 index 00000000..ef998771 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/MovementSpeed.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1407df369cf076445a1619597e085e1c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Presence.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Presence.asset index 1080d803..74883c25 100644 --- a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Presence.asset +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/Presence.asset @@ -27,5 +27,5 @@ MonoBehaviour: canBePercent: 0 defaultBaseValue: 0 minValue: 0 - maxValue: 3.4028235e+38 + maxValue: 9999999 roundToInteger: 1 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset new file mode 100644 index 00000000..bc50b8d7 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: ReputationGainIncrease + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: ReputationGainIncrease + displayName: Reputation Gain Increase + shortName: Rep Gain + description: + icon: {fileID: 0} + category: 6 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 0 + defaultWeight: 1 + canBeFlat: 0 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset.meta new file mode 100644 index 00000000..138d0537 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/ReputationGainIncrease.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7895ba1f0b9a732488642046ee62c8a6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset new file mode 100644 index 00000000..c3240209 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c1f476e72435e044b602534d90d6ed1, type: 3} + m_Name: SpellDamage + m_EditorClassIdentifier: Assembly-CSharp::StatDefinition + statKey: SpellDamage + displayName: Spell Damage + shortName: Sp Dmg + description: + icon: {fileID: 0} + category: 1 + isPrimary: 0 + showInUI: 1 + showInTooltips: 1 + canRollOnItems: 1 + defaultWeight: 1 + canBeFlat: 1 + canBePercent: 1 + defaultBaseValue: 0 + minValue: 0 + maxValue: 9999999 + roundToInteger: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset.meta new file mode 100644 index 00000000..2f06f928 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/StatDefinition/Resources/StatDefinitions/SpellDamage.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 88595dcd80f9c614b8bd7d8218fb5951 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Items/Generator/EquippableItemGenerator.cs b/Assets/Scripts/Items/Generator/EquippableItemGenerator.cs index 9bf338a4..00b225b6 100644 --- a/Assets/Scripts/Items/Generator/EquippableItemGenerator.cs +++ b/Assets/Scripts/Items/Generator/EquippableItemGenerator.cs @@ -16,8 +16,8 @@ public class EquippableItemGenerator : MonoBehaviour private Dictionary spritePathMap = new Dictionary(); [Header("Stat Roll Weights by Equipment Type")] - [SerializeField] private StatWeights armorWeights = new StatWeights(); - [SerializeField] private StatWeights weaponWeights = new StatWeights(); + //[SerializeField] private StatWeights armorWeights = new StatWeights(); + //[SerializeField] private StatWeights weaponWeights = new StatWeights(); public List HelmetIcons = new List(); public List ShoulderIcons = new List(); @@ -39,37 +39,6 @@ public class EquippableItemGenerator : MonoBehaviour public List DaggerIcons = new List(); public List BookIcons = new List(); - [System.Serializable] - public class StatWeights - { - [Header("Damage Stats")] - public float attackDamage = 1f; - public float spellDamage = 1f; - public float critChance = 0.8f; - public float critDamage = 0.8f; - - [Header("Defensive Stats")] - public float maxHealth = 1f; - public float armor = 1f; - public float magicResistance = 1f; - public float dodgeChance = 0.6f; - public float blockChance = 0.4f; - public float blockEffectiveness = 0.4f; - - [Header("Resource Stats")] - public float healthRegen = 0.7f; - public float maxMana = 0.8f; - public float manaRegen = 0.7f; - - [Header("Utility Stats")] - public float attackSpeed = 0.8f; - public float areaEffectiveness = 0.5f; - public float cooldownReduction = 0.6f; - public float movementSpeed = 0.4f; - public float reputationGain = 0.3f; - public float goldCostReduction = 0.3f; - } - public enum ItemTier { Common, @@ -359,13 +328,13 @@ public class EquippableItemGenerator : MonoBehaviour float tierMultiplier = GetTierMultiplier(tier); // Get appropriate stat weights - StatWeights weights = item.IsWeapon ? weaponWeights : armorWeights; + //StatWeights weights = item.IsWeapon ? weaponWeights : armorWeights; // Roll stats HashSet rolledStats = new HashSet(); for (int i = 0; i < statCount; i++) { - RollRandomStat(item, weights, rolledStats, levelMultiplier * tierMultiplier); + //RollRandomStat(item, weights, rolledStats, levelMultiplier * tierMultiplier); } } @@ -395,12 +364,12 @@ public class EquippableItemGenerator : MonoBehaviour }; } - private void RollRandomStat(EquippableItemInstance item, StatWeights weights, HashSet rolledStats, float multiplier) + private void RollRandomStat(EquippableItemInstance item, /*StatWeights weights*/ HashSet rolledStats, float multiplier) { // Create weighted list of available stats List<(string stat, float weight)> availableStats = new List<(string, float)>(); - // Add damage stats if not already rolled + /* // Add damage stats if not already rolled if (!rolledStats.Contains("AttackDamage")) availableStats.Add(("AttackDamage", weights.attackDamage)); if (!rolledStats.Contains("SpellDamage")) @@ -444,7 +413,7 @@ public class EquippableItemGenerator : MonoBehaviour if (!rolledStats.Contains("ReputationGain")) availableStats.Add(("ReputationGain", weights.reputationGain)); if (!rolledStats.Contains("GoldCostReduction")) - availableStats.Add(("GoldCostReduction", weights.goldCostReduction)); + availableStats.Add(("GoldCostReduction", weights.goldCostReduction));*/ if (availableStats.Count == 0) return; diff --git a/Assets/Scripts/Items/Generator/New Stat Rule Set.asset b/Assets/Scripts/Items/Generator/New Stat Rule Set.asset deleted file mode 100644 index 8912c2bb..00000000 --- a/Assets/Scripts/Items/Generator/New Stat Rule Set.asset +++ /dev/null @@ -1,60 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b261a15482e5e154c9f86c6cd8b401b5, type: 3} - m_Name: New Stat Rule Set - m_EditorClassIdentifier: Assembly-CSharp::StatRuleSet - ruleSetName: Default Rules - description: Describe what this rule set does - equipmentRules: - - equipmentType: 0 - ruleName: Helmet Stat Rules - statModifiers: - - statType: 3 - modificationType: 0 - value: 0 - useCondition: 0 - conditionDescription: - - statType: 4 - modificationType: 0 - value: 0 - useCondition: 0 - conditionDescription: - - statType: 16 - modificationType: 0 - value: 0 - useCondition: 0 - conditionDescription: - - statType: 17 - modificationType: 0 - value: 0 - useCondition: 0 - conditionDescription: - - statType: 13 - modificationType: 1 - value: 2 - useCondition: 0 - conditionDescription: - - statType: 14 - modificationType: 1 - value: 1.5 - useCondition: 0 - conditionDescription: - - statType: 9 - modificationType: 1 - value: 1.5 - useCondition: 0 - conditionDescription: - mandatoryStats: 0d000000 - forbiddenStats: 03000000040000001000000011000000 - weaponRules: [] - relationshipRules: [] - tierRules: [] diff --git a/Assets/Scripts/Items/Generator/StatRuleSet.cs b/Assets/Scripts/Items/Generator/StatRuleSet.cs index faa9bb59..54e10475 100644 --- a/Assets/Scripts/Items/Generator/StatRuleSet.cs +++ b/Assets/Scripts/Items/Generator/StatRuleSet.cs @@ -1,7 +1,7 @@ using Kryz.CharacterStats.Examples; using System.Collections.Generic; using UnityEngine; - +/* [CreateAssetMenu(fileName = "New Stat Rule Set", menuName = "RiftMayhem/Stat Rule Set")] public class StatRuleSet : ScriptableObject { @@ -258,4 +258,4 @@ public enum ModificationType Set, // Set weight to exact value Multiply, // Multiply current weight Add // Add to current weight -} \ No newline at end of file +}*/ \ No newline at end of file