/// <summary> /// Constructor /// </summary> /// <param name="value">The value of this modifier</param> /// <param name="method">How the modifier is applied</param> /// <param name="target">What stat/mechanic the modifier applies to</param> /// <param name="condition">Optional, what conditions are required for the modifier to apply</param> public Modifier(int value, ModifierMethod method, ModifierTarget target, params ModifierCondition[] condition) { this.value = value; this.method = method; this.target = target; this.conditions = new List <ModifierCondition>(condition); }
/// <summary> /// verifies if ModifierMethod has SyntaxKind /// </summary> /// <param name="modifier"></param> /// <param name="sn"></param> /// <returns></returns> public static bool IsOnEnum(this ModifierMethod modifier, SyntaxKind sn) { var mm = ModifierMethod.None; switch (sn) { case SyntaxKind.PublicKeyword: mm = ModifierMethod.PublicKeyword; break; case SyntaxKind.PrivateKeyword: mm = ModifierMethod.PrivateKeyword; break; case SyntaxKind.InternalKeyword: mm = ModifierMethod.InternalKeyword; break; case SyntaxKind.ProtectedKeyword: mm = ModifierMethod.ProtectedKeyword; break; case SyntaxKind.StaticKeyword: mm = ModifierMethod.StaticKeyword; break; case SyntaxKind.ReadOnlyKeyword: mm = ModifierMethod.ReadOnlyKeyword; break; case SyntaxKind.SealedKeyword: mm = ModifierMethod.SealedKeyword; break; case SyntaxKind.NewKeyword: mm = ModifierMethod.NewKeyword; break; case SyntaxKind.OverrideKeyword: mm = ModifierMethod.OverrideKeyword; break; case SyntaxKind.AbstractKeyword: mm = ModifierMethod.AbstractKeyword; break; case SyntaxKind.VirtualKeyword: mm = ModifierMethod.VirtualKeyword; break; } return((modifier & mm) == mm); }
public Modifier(JObject obj) { this.value = (int)obj["Value"]; this.method = (ModifierMethod)(int)obj["Method"]; this.target = (ModifierTarget)(int)obj["Target"]; JArray conditionArray = (JArray)obj["Conditions"]; foreach (JToken c in conditionArray) { JValue cval = (JValue)c; conditions.Add((ModifierCondition)(int)cval); } }
/// <summary> /// Constructor /// </summary> /// <param name="value"></param> /// <param name="method"></param> /// <param name="target"></param> /// <param name="duration"></param> /// <param name="condition"></param> public ModifierTemporary(int value, ModifierMethod method, ModifierTarget target, int duration, params ModifierCondition[] condition) : base(value, method, target, condition) { this.duration = duration; this.turnsLeft = duration; }