Sorry for the delay in posting, I was away for the weekend.
JBG said:
EDIT: WARNING: long post here!
I've thought long and hard about great people. Ideally, I'd like to add the number of great people varieties currently available, to:
Great Artist (as normal)
Great Engineer (as normal)
Great Merchant (as normal - possibly can be changed)
Great Scientist (as normal)
PLUS:
Great General (created randomly when an experienced unit enters combat)
Great AI (sort-of great prophet, but more powerful (and rarer)
Great Statesman (? tentative - only add if possible to add new great people)
So that means we need to add one type of great person or at least replace the Great Merchant (which will be hard and difficult). At the moment, we can replace Great Prophet with Great AI.
No problems so far.
JBG said:
Great Generals are spawned from experienced units winning battles. They ought to do some of the following ideas:
That's easily done.
JBG said:
*give a complete promotion line (say, all garrison promotions, or all city raider promotions) to a unit,
*give one promotion to each unit in a stack,
*lead a unit to certain victory
*upgrade all instances of a certain unit for free
*fortify a colony granting a massive defensive bonus plus an experience bonus for units garrisoned in the city
*set up a military academy that incurs a smaller defensive bonus and a massive experience bonus for any unit built in the city
*combine with another great person to give a golden age.
Most of these are pretty straightforward to code, albeit quite powerful 8), but... Teaching the AI to use them... Ok, each one in turn...
JBG said:
*give a complete promotion line (say, all garrison promotions, or all city raider promotions) to a unit,
"Easy", popup to pick the unit, popup to pick the promotion. You'll have to hard code the list of promotion options, and any criteria you want for each line being available (techs, experience, etc.). Which means you have to explicitly spell them out to me.
As with most of these options, teaching the AI to use them is not possible. Instead, we'll ahve to write code to make these decisions for the AI by doing unit sweeps on PlayerBeginTurn() for each AI and using his Great Generals for him as we think is appropriate.
JBG said:
*give one promotion to each unit in a stack,
Yeah, "easy". Same as above, basically
JBG said:
*lead a unit to certain victory
Ok, this is not so easy. My first question would be what sort of interface did you envision for this ability? We can't interrupt combat before it takes place. So our options for implementing something like this look like... Granting a promotion with some arbitrarily huge bonuses which we then remove after their next battle. Automatically full healing the unit after it's next battle. Respawning the unit if it dies in its next battle. (Any or all of these above). Note that even if we respawn it, we are only post-fixing the combat result. So, for instance, if your invulnerable unit was the last unit in a city, if it lost, it would still cause the city to be captured, and then we'd ahve to spawn the unit in a neighboring plot (like it withdrew, basically). Also, I'm pretty sure we can't override getBestDefender() for a Plot, so without a super promotion, we can't gaurantee that this unit will be chosen to defend the stack by the next attacker.
JBG said:
*upgrade all instances of a certain unit for free
*fortify a colony granting a massive defensive bonus plus an experience bonus for units garrisoned in the city
*set up a military academy that incurs a smaller defensive bonus and a massive experience bonus for any unit built in the city
All three are straightforward, but the xp bonus for units built in the city and the def bonus would need to be implemented as buildings created by the unit. Similar issues with the AI as the others, btw...
JBG said:
Great AIs are supposed to be very rare crosses between engineers and scientists. Their spawning ought to be limited by some kind of criterion - religion/civic/technology or something. They appear rarely and convey great bonuses.
Hmm.. not sure about using a civic to modify GP %age appearance chances. You can, of course, make them rare by simply not adding much chance of them to each wonder or building (or specialist). I'll have to look into the civic aspect.
JBG said:
*do the complete remit of both great scientists AND great engineers
Don't understand what you mean?
JBG said:
*enter a city's networks as a super specialist, providing massive commerce and science benefits
Straightforward super specialist.
JBG said:
*enter a city's networks as a permanent resident, helping protect against spies and viruses, incurring a defensive bonus, reducing corruption/maintenance and increasing the science of the city
Hmm.. well, spawn an unmovable unit to spy for you, add a super specialist, a building (for the defensive bonus and maintenance)... Yeah.. doable, but ugly 8). I'll have to check when I go to implement it if I can condense this at all.
JBG said:
*research a powerful technology
Straightforward.
JBG said:
*Enter another civ's networks as a secret agent for only a few turns, granting access to that civ's LOS and cities
Hrmm... offhand, I don't know if this is possible. I'll have to go look at the espionage functions.
JBG said:
Great Statesmen are supposed to be influential politicians. They can enact any one civic the player chooses, ensure success in a trade/negotiation with another civ (think Margaret Thatcher and the EU rebate here), etcetera, etcetera.
Hmmm... not sure about any of these. Activating a civic I *think* can be done by override CanDoCivic. Ensure trade/negotation with another civ should be doable by override the diplomacy ai, but may be arbitrarily difficult to get working :/ (i.e. a lot of work). Can't say about the etc., etc. 8).