stat & equipment type definitions (WIP)

This commit is contained in:
Pedro Gomes 2025-09-25 17:03:11 +01:00
parent 00ae50e0da
commit b0c635aaf5
63 changed files with 1439 additions and 162 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 006bd5a5d00289441ae14ebacb625f1c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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<EquipmentTypeRegistry>();
if (_instance == null)
{
GameObject registryGO = new GameObject("EquipmentTypeRegistry");
_instance = registryGO.AddComponent<EquipmentTypeRegistry>();
DontDestroyOnLoad(registryGO);
}
}
return _instance;
}
}
// Dictionary for fast lookups
private Dictionary<string, EquippableItemTypeDefinition> 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<EquippableItemTypeDefinition>(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<string, EquippableItemTypeDefinition>();
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
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3b090d12504ad234382cb912b91d2aed

View File

@ -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<Sprite>(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;
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 97c2864d727cc3f4485dcd520d9b2793

View File

@ -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

View File

@ -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}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a52088751bc17a741b6bebf46fc6655c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4cb72ed2afe42fc46a86d7cbfef93429
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fdc0de34d8f00ba40b26a7c2b06803b5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0e0fedd18e1c7d84bbcb311bc1744ae6
guid: a8b9c44760450794299fcb8e3cd443b3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b7d57fbc93b54ee4cb5a2dc567254d6a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d9561a8f85fc81f43961fa58de0cd088
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8a59fbc0a19857b48a0789d4b4115ea4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: de18f1cd5c7345243a127dbf50a1c714
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0886a83f3dd15114487850e54518829d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 332d0dbee9590e24e9ad5166dd75ef69
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8dcb92f2ee1026241a3bc051a42f91f5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4e90e0c058763a143b3ec657351fcace
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ec3548202e941294da429cd3083937c0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d318a3662a3ccf04f9f193a818cc3361
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a19f2ac40579e5d4aa0713f43fcfa276
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -27,5 +27,5 @@ MonoBehaviour:
canBePercent: 0
defaultBaseValue: 0
minValue: 0
maxValue: 3.4028235e+38
maxValue: 9999999
roundToInteger: 1

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa214c2ad3c962447b486ecf16c9c950
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -27,5 +27,5 @@ MonoBehaviour:
canBePercent: 0
defaultBaseValue: 0
minValue: 0
maxValue: 3.4028235e+38
maxValue: 9999999
roundToInteger: 1

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1e63fcf4ac1c02c4e9b9bd62f0243f05
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 79006f60ae538ad4ca179ee739f39232
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6093187f425cccc43b5fa829db293893
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a50126674c634ef49b4986605ee42baa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e6da017ba613adf4d82d9b6a214c6c7c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f1c964d3ea9c1d349bb5111b11accade
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1407df369cf076445a1619597e085e1c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -27,5 +27,5 @@ MonoBehaviour:
canBePercent: 0
defaultBaseValue: 0
minValue: 0
maxValue: 3.4028235e+38
maxValue: 9999999
roundToInteger: 1

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7895ba1f0b9a732488642046ee62c8a6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 88595dcd80f9c614b8bd7d8218fb5951
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -16,8 +16,8 @@ public class EquippableItemGenerator : MonoBehaviour
private Dictionary<Sprite, string> spritePathMap = new Dictionary<Sprite, string>();
[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<Sprite> HelmetIcons = new List<Sprite>();
public List<Sprite> ShoulderIcons = new List<Sprite>();
@ -39,37 +39,6 @@ public class EquippableItemGenerator : MonoBehaviour
public List<Sprite> DaggerIcons = new List<Sprite>();
public List<Sprite> BookIcons = new List<Sprite>();
[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<string> rolledStats = new HashSet<string>();
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<string> rolledStats, float multiplier)
private void RollRandomStat(EquippableItemInstance item, /*StatWeights weights*/ HashSet<string> 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;

View File

@ -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: []

View File

@ -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
}
}*/