Character Secondary stats (WIP)
This commit is contained in:
parent
4a7430533a
commit
bd1659de93
@ -63,19 +63,55 @@ namespace Kryz.CharacterStats.Examples
|
|||||||
|
|
||||||
public void UpdateSecondaryStatsBasedOnPrimaryStats()
|
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.StrengthSource);
|
||||||
|
AttackDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource);
|
||||||
|
|
||||||
Strength.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource);
|
||||||
Agility.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource);
|
||||||
Intelligence.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
|
||||||
Spirit.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource);
|
||||||
Vitality.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource);
|
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 CritChanceIncreaseFromAgility = 0.005f; //0.5% agi => critChance (30% +/- tops)
|
||||||
public const float CritChanceIncreaseFromIntelligence = 0.002f; //0.2% int => critChance (12% +/- 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 CritDamageIncreaseFromAgility = 0.002f; //0.2% agi => critDmg
|
||||||
public const float CritDamageIncreaseFromIntelligence = 0.001f; //0.1% int => 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 AttackDamageIncreaseFromStrength = 1f; //100% str => AttkDmg
|
||||||
public const float AttackDamageIncreaseFromAgility = 0.45f; // 45% agi => 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 SpellDamageIncreaseFromIntelligence = 1f; //100% int => SpDmg
|
||||||
public const float SpellDamageIncreaseFromSpirit = 0.45f; // 45% spi => 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 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 ArmorIncreaseFromStrength = 0.1f; //10% str => Armor
|
||||||
public const float ArmorIncreaseFromVitality = 0.2f; //20% vit => 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 MagicResistanceIncreaseFromSpirit = 1f; //100% spi => MagicRes
|
||||||
public const float MagicResistanceIncreaseFromVitality = 0.2f; //20% vit => 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;
|
public const float BaseMaxHealthGrowthPerLevel = 0.2f;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user