com.iron-mountain.conditions

1.5.9 • Public • Published

Scriptable Conditions

Version: 1.5.9

Description:

Scriptable-object conditions that make it easy to reuse gameplay logic.

SOME CODING REQUIRED

When implementing abstract systems that require conditional logic (i.e. quests, dialogue, story events), it is helpful to separate conditional logic from the systems themselves. For example, each of my Dialogue Interaction objects references a Condition that determines if the interaction should play or not.

This separation of responsibilities makes it easy to reuse conditional logic and conditional objects across multiple systems.

Use Cases:

  • Abstract systems that require conditional logic.
  • Determining what dialogue to play.
  • Determining when quests or missions should activate.
  • Determining when quest/mission requirements have been satisfied.
  • Anytime anything needs to be decided ¯_(ツ)_/¯

Dependencies:

  • com.iron-mountain.save-system (1.0.4)

Package Mirrors:

Key Scripts & Components:

  1. public enum BooleanComparisonType : Enum
  2. public abstract class Condition : ScriptableObject
    • Actions:
      • public event Action OnConditionStateChanged
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public abstract Boolean Evaluate()
      • public abstract Boolean HasErrors()
  3. public class ConditionFalse : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  4. public class ConditionTrue : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  5. public enum ConditionalOperatorType : Enum
  6. public static class EvaluationUtilities
  7. public interface ICondition
    • Actions:
      • public event Action OnConditionStateChanged
    • Methods:
      • public abstract Boolean Evaluate()
  8. public enum NullComparisonType : Enum
  9. public enum NumericalComparisonType : Enum

Groups

  1. public class ConditionChecklist : Condition
    • Properties:
      • public Boolean AllRequired { get; }
      • public Int32 AmountRequired { get; }
      • public List Conditions { get; }
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  2. public class ConditionEquation : Condition
    • Properties:
      • public List Conditions { get; }
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()

Scripted Values

  1. public class ConditionScriptedBool : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  2. public class ConditionScriptedFloat : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  3. public class ConditionScriptedInt : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()
  4. public class ConditionScriptedString : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()

/com.iron-mountain.conditions/

    Package Sidebar

    Install

    npm i com.iron-mountain.conditions

    Weekly Downloads

    6

    Version

    1.5.9

    License

    MIT

    Unpacked Size

    90.9 kB

    Total Files

    78

    Last publish

    Collaborators

    • ludachrismonte