View EasingFunctions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
namespace Kryz.Tweening | |
{ | |
// Made with the help of this great post: https://joshondesign.com/2013/03/01/improvedEasingEquations | |
// --------------------------------- Other Related Links -------------------------------------------------------------------- | |
// Original equations, bad formulation: https://github.com/danro/jquery-easing/blob/master/jquery.easing.js | |
// A few equations, very simplified: https://gist.github.com/gre/1650294 | |
// Easings.net equations, simplified: https://github.com/ai/easings.net/blob/master/src/easings/easingsFunctions.ts |
View CharacterStat_Namespace.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace Kryz.CharacterStats | |
{ | |
[Serializable] | |
public class CharacterStat | |
{ | |
//... | |
} | |
} |
View CharacterStat.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public CharacterStat() | |
{ | |
statModifiers = new List<StatModifier>(); | |
StatModifiers = statModifiers.AsReadOnly(); | |
} | |
public CharacterStat(float baseValue) : this() | |
{ | |
BaseValue = baseValue; | |
} |
View Serializable.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Serializable] | |
public class CharacterStat |
View CharacterStat_Extendable.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protected bool isDirty = true; | |
protected float lastBaseValue; | |
protected float _value; | |
public virtual float Value {} | |
protected readonly List<StatModifier> statModifiers; | |
public virtual void AddModifier(StatModifier mod); | |
public virtual bool RemoveModifier(StatModifier mod); | |
public virtual bool RemoveAllModifiersFromSource(object source); |
View StatModType.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public enum StatModType | |
{ | |
Flat = 100, | |
PercentAdd = 200, | |
PercentMult = 300, | |
} |
View LastBaseValue.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add this variable | |
private float lastBaseValue = float.MinValue; | |
// Change Value | |
public float Value { | |
get { | |
if(isDirty || lastBaseValue != BaseValue) { | |
lastBaseValue = BaseValue; | |
_value = CalculateFinalValue(); | |
isDirty = false; |
View ReadOnlyStatModifiers.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public readonly ReadOnlyCollection<StatModifier> StatModifiers; // Add this variable | |
public CharacterStat(float baseValue) | |
{ | |
BaseValue = baseValue; | |
statModifiers = new List<StatModifier>(); | |
StatModifiers = statModifiers.AsReadOnly(); // Add this line to the constructor | |
} |
View RemoveModifier.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public bool RemoveModifier(StatModifier mod) | |
{ | |
if (statModifiers.Remove(mod)) | |
{ | |
isDirty = true; | |
return true; | |
} | |
return false; | |
} |
View Item.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Item | |
{ | |
public void Equip(Character c) | |
{ | |
// Create the modifiers and set the Source to "this" | |
// Note that we don't need to store the modifiers in variables anymore | |
c.Strength.AddModifier(new StatModifier(10, StatModType.Flat, this)); | |
c.Strength.AddModifier(new StatModifier(0.1, StatModType.Percent, this)); | |
} |
NewerOlder