Updated the document from my notes, and a few use cases.
The main break throughs and choices are below
All the prop data will be created from an XML file and parsed into a dictionary which is indexed by Prop Code. All new props must be created from either Cloning or using a Prop Code to create an instance
This means only one instance of any prop using this tag exist. This solves a lot of problems with upgrade items and tools and such. Not to mention the main building
Timers & Buttons
Possible the biggest break through was the throwing away of a production prop sub class and moving to a timer and button system. Basically when the button is pushed by Frank or the Timer expires a delegate is called which is assigned via data.
Using this system, and the concept of morphing into a new object we can model tree’s growing, ovens and a few other things. The other attraction is Frank can examine objects based on Timers and Buttons. Which lays nicely into some AI reactions I have planned.
Loads of small things I realised and a few things I’ve made note of edge cases and the like. For instance containers ValidInput, and IsFull solves quite a few problems.
I have more to say but I’m going to leave it there.