<div dir="ltr"><div dir="ltr">I'm currently evaluating how party members and areas work in KotOR games, and this is what it looks like:<div><br></div><div>Area <span style="color:rgb(84,84,84);font-family:arial,sans-serif">– basically, a container of creatures. Creates, destroys and manages interactions with them.</span></div><div><span style="color:rgb(84,84,84);font-family:arial,sans-serif">Module </span><span style="color:rgb(84,84,84);font-family:arial,sans-serif">– owns the area, but also owns the party members and controls the player character.</span></div><div><span style="color:rgb(84,84,84);font-family:arial,sans-serif">Creature </span><span style="color:rgb(84,84,84);font-family:arial,sans-serif">– represents both the physical object within an area and it's characteristics (stats, equipment, etc).</span></div><div><span style="color:rgb(84,84,84);font-family:arial,sans-serif">CharacterGenerationInfo </span><span style="color:rgb(84,84,84);font-family:arial,sans-serif">– a structure describing RP and visual attributes of the player character. I</span><font color="#545454" face="arial, sans-serif">nterestingly, it is buried in the GUI folder and knows how to create both the player creature and the player model.</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">Here is the problem I'm having with this design: party members need to be managed separately. Currently, they are not interactable and cannot execute actions. Also, we have an unnecessary circural dependency between the Creature class and CharacterGenerationInfo.</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">What I propose instead is the following:</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">Creature class should only represent the physical object within an area. All stats and equipment information should be moved to a separate structure (CreatureInfo?).</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">All creatures should be owned by an area. Module should only own the info of the party members and recreate their characters on every area change.</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">Management of the party leader should probably be moved to a separate class (PlayerController?).</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">CharacterGenerationInfo should be moved outside the GUI folder and should not have responsibility of creating a character or a model.</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif">Any thoughts on this, DrMcCoy?</font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><font color="#545454" face="arial, sans-serif"><br></font></div><div><span style="color:rgb(84,84,84);font-family:arial,sans-serif"><br></span></div><div><span style="color:rgb(84,84,84);font-family:arial,sans-serif"><br></span></div></div></div>