Original Post
So I finally really got to work on this Workshop. I am implementing both classes and races as decorators (I so do like that pattern) of Characters. So a human wizard would be a Human who's component is a Wizard whose component is a Player (though I might rename that class). This makes some things, such as multi-classing, really easy, almost built-in. Progress is going fine, but I have one issue. If the Player needs to access the, say, Con modifier for the *entire* thing, it can't. It can only access it's own con modifier. For example, if the Fortitude Save property is accessed, the class decorators contribute their saves to the total, and the Player contributes the Constitution modifier. But since it's Constitution could be affected by a race decorator, among other things, the Player somehow needs to access the Constitution of the entire chain of Characters. To counter this I thought of letting each Character (Player and the decorators derive from this) have a reference to the starting Character. I can think of two ways to do this; making it a doubly linked list (sorta), or having them each store a reference to the first Character. I'm not sure I like either of them, but they'd work. For the doubly linked list, I'd just give them each a reference to the decorator before it. For the other method, I'd have to have some way of updating the reference if it changes. I don't have any good ideas on how to do that updating. Another possibility would be having a separate object 'outside' of the chain of Characters. Each of the Characters has a reference to it, and it would have a reference to the first character. It would, in essence, own the chain. What would you do?