public void BeginQuip(String ID, String Name, QuipType Type, bool Repeatable, bool Restrictive) { OpenQuip = new Quip(); if (!String.IsNullOrEmpty(ID)) { if (Quips.ContainsKey(ID)) Quips[ID] = OpenQuip; else Quips.Add(ID, OpenQuip); } AllQuips.Add(OpenQuip); OpenQuip.Name = Name; OpenQuip.Type = Type; OpenQuip.Repeatable = Repeatable; OpenQuip.Restrictive = Restrictive; OpenQuip.ID = NextGeneratedID; if (BlockStateStack.Count > 0) foreach (var state in BlockStateStack) state.ApplyState(OpenQuip); }
internal override void ApplyState(Quip to) { if (to.Supplies == null) to.Supplies = new List<string>(); to.Supplies.AddRange(supplies); }
internal override void ApplyState(Quip to) { to.Directly = null; //Override any directly-following going on. /*if (to.Follows == null)*/ to.Follows = new List<Quip>(); to.Follows.AddRange(follows); }
internal override void ApplyState(Quip to) { to.Follows = null; //Override any indirectly-following going on. to.Directly = new List<Quip>(); to.Directly.AddRange(directly); }
internal virtual void ApplyState(Quip to) { throw new NotImplementedException(); }
public void EndBlock() { if (BlockStateStack.Count > 0) { OpenQuip = BlockStateStack[BlockStateStack.Count - 1].SavedOpenQuip; BlockStateStack.RemoveAt(BlockStateStack.Count - 1); } }