Character Secondary stats (WIP)
This commit is contained in:
parent
4a7430533a
commit
bd1659de93
@ -63,19 +63,55 @@ namespace Kryz.CharacterStats.Examples
|
||||
|
||||
public void UpdateSecondaryStatsBasedOnPrimaryStats()
|
||||
{
|
||||
//Remove previous
|
||||
CritChance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource);
|
||||
CritChance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource);
|
||||
|
||||
CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource);
|
||||
CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource);
|
||||
CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource);
|
||||
|
||||
AttackDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource);
|
||||
AttackDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource);
|
||||
|
||||
Strength.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
||||
Agility.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
||||
Intelligence.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
||||
Spirit.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
||||
Vitality.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
||||
SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource);
|
||||
SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource);
|
||||
|
||||
MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource);
|
||||
MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource);
|
||||
|
||||
Armor.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource);
|
||||
Armor.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource);
|
||||
|
||||
MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource);
|
||||
MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource);
|
||||
MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource);
|
||||
|
||||
|
||||
//Add new values
|
||||
CritChance.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.CritChanceIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource));
|
||||
CritChance.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.CritChanceIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource));
|
||||
|
||||
CritDamage.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource));
|
||||
CritDamage.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource));
|
||||
CritDamage.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource));
|
||||
|
||||
AttackDamage.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.AttackDamageIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource));
|
||||
AttackDamage.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.AttackDamageIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource));
|
||||
|
||||
SpellDamage.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.SpellDamageIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource));
|
||||
SpellDamage.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.SpellDamageIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource));
|
||||
|
||||
MaxHealth.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.MaxHealthIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource));
|
||||
MaxHealth.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.MaxHealthIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource));
|
||||
|
||||
Armor.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.ArmorIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource));
|
||||
Armor.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.ArmorIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource));
|
||||
|
||||
MagicResistance.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource));
|
||||
MagicResistance.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource));
|
||||
MagicResistance.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource));
|
||||
|
||||
//Strength.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource));
|
||||
//Agility.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource));
|
||||
//Intelligence.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource));
|
||||
//Spirit.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource));
|
||||
//Vitality.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource));
|
||||
}
|
||||
|
||||
}
|
||||
|
8
Assets/Scriptables/Data/Tags/StatTags/Secondary.meta
Normal file
8
Assets/Scriptables/Data/Tags/StatTags/Secondary.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0c3bef5efbccc2845a1c643abd163b3a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
14
Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset
Normal file
14
Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset
Normal file
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: Armor
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ffd1c81aeea68b4eb6b0f054f0d989f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: AttackDamage
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 09eb68d1a036a1643b74420197b999bd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: CritChance
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 831eab0f4c8fb69459a620afd95f698f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: CritDamage
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad5c133149d9aa641be97f85e426a01f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: MagicResistance
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ff891a32306c504f8f6159f69a1866e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: MaxHealth
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4242916f0b1bf6e4e8a04bce7028b3f4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,14 @@
|
||||
%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: 4cc5b60241d710942888d37734f848d6, type: 3}
|
||||
m_Name: SpellDamage
|
||||
m_EditorClassIdentifier:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 918ee6f8846e6a9449166ac16b6330ae
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -66,9 +66,9 @@ public static class GameConstants
|
||||
public const float CritChanceIncreaseFromAgility = 0.005f; //0.5% agi => critChance (30% +/- tops)
|
||||
public const float CritChanceIncreaseFromIntelligence = 0.002f; //0.2% int => critChance (12% +/- tops)
|
||||
|
||||
public const float CritDamageIncreaseFromStrength = 0.002f; //0.2% str => critDmg
|
||||
public const float CritDamageIncreaseFromAgility = 0.002f; //0.2% agi => critDmg
|
||||
public const float CritDamageIncreaseFromIntelligence = 0.001f; //0.1% int => critDmg
|
||||
public const float CritDamageIncreaseFromStrength = 0.002f; //0.2% str => critDmg
|
||||
|
||||
public const float AttackDamageIncreaseFromStrength = 1f; //100% str => AttkDmg
|
||||
public const float AttackDamageIncreaseFromAgility = 0.45f; // 45% agi => AttkDmg
|
||||
@ -76,15 +76,15 @@ public static class GameConstants
|
||||
public const float SpellDamageIncreaseFromIntelligence = 1f; //100% int => SpDmg
|
||||
public const float SpellDamageIncreaseFromSpirit = 0.45f; // 45% spi => SpDmg
|
||||
|
||||
public const float MaxHealthIncreaseFromVitality = 1f; //100% vit => MaxHP
|
||||
public const float MaxHealthIncreaseFromSpirit = 0.1f; // 10% spi => MaxHP
|
||||
public const float MaxHealthIncreaseFromVitality = 1f; //100% vit => MaxHP
|
||||
|
||||
public const float ArmorIncreaseFromStrength = 0.1f; //10% str => Armor
|
||||
public const float ArmorIncreaseFromVitality = 0.2f; //20% vit => Armor
|
||||
|
||||
public const float MagicResistanceIncreaseFromIntelligence = 0.1f; // 10% int => MagicRess
|
||||
public const float MagicResistanceIncreaseFromSpirit = 1f; //100% spi => MagicRes
|
||||
public const float MagicResistanceIncreaseFromVitality = 0.2f; //20% vit => MagicRes
|
||||
public const float MagicResistanceIncreaseFromIntelligence = 0.1f; // 10% int => MagicRes
|
||||
|
||||
public const float BaseMaxHealthGrowthPerLevel = 0.2f;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user