SMAC's social enginering model wasn't failtfully copied in Civ4, the "Civics" options have direct effects on the players empire rather then working through "Meters" aka Growth, Economy, Probe ect ect.
I think the best means to implement SMAC style SE is to split the Civics into two seperate entities each of which can be defined in XML for easy Moding.
The Civics object already has a bunch of hooks for game effects most of which we will want to use. So we can create a large number of such objects to represent each level on a Meter. We would add an int value to represent the meter location for example "Growth-3" position would have its own Civic which defines what it dose. The int value is used to pick which effect is applied to the player. All the Civics that belong to a Meter get a grouping either by making them child objects of a Meter object (prefered) or a tag.
Now we take away the players ability to choose their "Civics/Meters" directly and replace it with "Psudo-Civics" aka "Police State" "Planned Economics" and all the other choices we love. These objects have "Meter Modifiers" which specify a Meter and an Int. The player is limited to choosing from among these and we simply sum up and apply one of the underlying Civics. These Psudo-Civics can likley be derived from the base Civ4 Civic objects as well, we mearly strip out the game play effect and add in the Meter Modifiers.
Lastly we would ofcorse need a whole new Screen for displaying this info, we would ofcorse go with a close aproimation of the SMAC SE screen. The AI will then need to be modified to act on the Psudo-Civics and evaluate them in a rational manor. This will ofcorse be the tricky part.
I think the best means to implement SMAC style SE is to split the Civics into two seperate entities each of which can be defined in XML for easy Moding.
The Civics object already has a bunch of hooks for game effects most of which we will want to use. So we can create a large number of such objects to represent each level on a Meter. We would add an int value to represent the meter location for example "Growth-3" position would have its own Civic which defines what it dose. The int value is used to pick which effect is applied to the player. All the Civics that belong to a Meter get a grouping either by making them child objects of a Meter object (prefered) or a tag.
Now we take away the players ability to choose their "Civics/Meters" directly and replace it with "Psudo-Civics" aka "Police State" "Planned Economics" and all the other choices we love. These objects have "Meter Modifiers" which specify a Meter and an Int. The player is limited to choosing from among these and we simply sum up and apply one of the underlying Civics. These Psudo-Civics can likley be derived from the base Civ4 Civic objects as well, we mearly strip out the game play effect and add in the Meter Modifiers.
Lastly we would ofcorse need a whole new Screen for displaying this info, we would ofcorse go with a close aproimation of the SMAC SE screen. The AI will then need to be modified to act on the Psudo-Civics and evaluate them in a rational manor. This will ofcorse be the tricky part.
Comment