Added QuestObject.cs - defines new abstract QuestObject class to serve as a base for most classes (e.g. Actor, Event, etc.) in TheQuest
Added Actor.cs - defines abstract Actor class (extending QuestObject) to serve as a base class for Monster & Warrior (and perhaps others down the line...)
Added Monster.cs - very basic (i.e. totally empty) implementation of Actor
Trimmed extra newline from the bottom of Actor.cs & Monster.cs
Added IScript.cs - defines IScript interface; a (very) simple interface to allow classes to expose themselves as scripts (for use in the scripting engine)
Added Scripts.cs - defines new Scripts class (which I would make static, only C# won't allow protected static members in a static class for some weird reason...) which is an early & rudimentary implementation of the scripting engine.
It handles iterating script files in the scripts directory, compiling them & creating instances of the IScript classes in a dictionary. The IScript objects can then easily be retrieved with Scripts.Get()
Added Attack.cs - defines new Attack class to be used when processing an attack from one Actor to another. The main point of this class is to facilitate passing data around between scripts etc.
Added Alive & Dead read-only bool properties to Actor - shorthands to check if currentWounds is greater than 0/less than 1
Added CombatEngine.cs - very early draft of possible CombatEngine class
Added Rule.cs which defines Rule class (based on QuestObject) - class for loading and processing special rules (e.g. Dodge, Web Attack, etc, etc, etc...)
Refactored Scripts class to descend (directly) from List<IScript>. Mostly just to make working with lists of scripts a little cleaner, but also to be able to define custom methods such as Run(args) which iterates all of the contained IScript objects & call their Run() method (passing on the args)
Added protected List<Rule> 'rules' member to Actor - dynamic array to store special rules pertinent to the Actor
Added AddRule() method to Actor - takes a Rule object and adds it to the rules 'array'
Added GetScripts(string hook) method to Actor - returns a Scripts object compiled from the Scripts returned by all the Rule objects the Actor has
Refactored ParseInt() method to parse strings as Dice strings (rolling immediately)
Added Buff.cs defining Buff class - extends QuestObject to provide a representation of (de)buffs
Added Rules property to Actor for get-only access to the rules list
Updated Actor to use Rules rather than rules in a couple of places
Added List<Buff> buffs member to Actor to store its Buff objects (and Buffs get-only property to access it)
Added AddBuff() & HasBuff() methods to Actor for adding Buff objects to the buffs array & check if the Actor has a given Buff (by id string)