Tweaks, Streamlining and Unsolicited Suggestions

Shatner

Warlord
Joined
Jan 24, 2008
Messages
114
Location
Austin, Texas
This is a great game. This is also a great big game with a lots of content and a vast diversity of viable tactics. This means there is also lots of room for stuff to be tweaked, streamlined and so on; no game is so great that it can't benefit from unasked-for advice from people who feel entitled to give it. People... like me.

I wish to break this up into three segments: Streamlining of aspects of the game to make playing the game less tedious, Tweaks to the game to develop select components and Suggestions where I blabber about random things I think would be cool. Items are listed in descending order of what I would be the happiest to see implemented.

Now, onto the meat of this post...


Streamlining​

1) When a city is conquered, be able to view what buildings and specialists survived the invasion before having to choose whether to keep the city or raze it. An alternate implementation would be to give units an ability called Sack which destroys a city that was just conquered and incurs the appropriate diplomacy penalty with civilization and raises the AC. This way you can take a peek and see if there are any worthwhile buildings or great people within that'd influence your decision to purge vs integrate. A different trigger for the ability, if it proves easier to implement, is to only be available if the city is rioting. An "Are you sure?" message would be appreciated in case your finger slips.


2) Please, PLEASE reduce the amount of micromanagement involved in having Govannon train other Amurite units. I have two thoughts on this. One is to have a building called "Teachings of Govannon" or whatever that automatically trains units that pass through the city in the same way that units can automatically pick up weapon-promotions from a city with metal. This building can be built by Govannon or simply spawns in whatever city he happens to be in. Alternatively, you could give Govannon a "Teach" skill which trains all units in the stack all the promotions he could normally impart on them (Fire I, Death 1, Chaos 1, etc.) all at once. If you wanted, you could make all units just taught to be rendered immobile for 5 turns to simulate you spending 5 turns doggedly micromanaging. Since Govannon has to first have those promotions himself the "Teach" skill would have to convey only those promotions Govannon already possesses (which may be complicated to implement, I don't know) OR the "Teach" skill would require each of the promotions to use (so he'd have to already have Body I, Shadow I, etc. to use the ability).


3) Make certain spells autocast if the unit hasn't already exhausted their ability to cast spells by the end of your turn. For example, Sanctify, Bless, Heal, Repair, Loyalty, Courage or just about any other buff spell. This way you don't have to meticulously arrange to perform all your actions, attack with all your troops, arrange all your forces for maximum mage coverage and then cycle through all your casters so everyone has regeneration and stoneskin running on them. I would assume some sort of priority list could be created in the code that would resolve which spell to cast when a caster has more than one available. While I don't condone having Life I casters hold back Hell Terrain, it would make the act of doing so much, MUCH less of a hassle for those that do.


4) Does the strength bonus from your forts, castles and the like apply when your units are attacking within their radius? If so, please have that bonus show up in the combat odds break down.



Tweaks​

5) Allow Expansive Leaders to build smokehouses at double speed. Sometimes you are up to your eyeballs in mutton and beef with nary a carbohydrate in sight. It just doesn't seem fair, nor does double speed Granaries AND Smokehouses seem too powerful.


6) Make ancient forests give a commerce penalty to the cottage improvements to reign in the rampant elf + FoL + cottage-spam synergy. Having the first two levels of cottage yield one commerce and the last two levels yield two commerce seems equitable. Your Ancient Forest towns are effectively trading two commerce for one hammer and one food; more than fair, I would say.


7) Allow Doviello wolf packs to pillage and give them a bonus vs melee units (in context, police dogs are pretty effective against people on foot so it's not too far-fetched). Failing that, make Doviello wolves cost no support. As is, the Doviello world spell feels pretty weak. Instead of or in addition to gaining empowered promotions from combining wolves, offer XP to the stack (3 or 4xp) and maybe a chance for the Strong promotion.


8) Make Arete give 25% GPP bonus, instead of 20%. Because GPP has to be an integer, 20% has far less effect than it should. Furthermore, it annoys the Khazak who have +45% GPP with overflowing vaults (+25%) and Arete (+20%).


9) If the Kuriotates build City of a Thousand Slums then they can upgrade one more settlement to city. It's thematic with the wonder and it actually gives the Kuriotates a reason to build it.


10) Make the Earth I promotion somehow increase fort development speed. This can either be by manually casting the spell to shave 5 or so turns off of the improvement's evolution, by having the improvement evolve faster when an Earth I promoted unit is standing in that square or by making all forts and the like improve faster if they are in the radius of a city with the Wall of Stone building.


11) Allow sanctify to clear graveyards, reducing AC and giving some sort of bonus to the civilization. I'm thinking the Bless promotion to the units in the stack or the spirit guide promotion to some of your units, chosen randomly (the spirits repay your services to them by assuming vigilance over some of your forces).



Suggestions and Experimental Stuff​

12) Generic Place Holder Civics that can be modified to be civilization specific. Crusade is a Bannor-only civic and Fall Further has several more like that as well. Imagine that in each civic column (labor, compassion, government, etc.) there was a place holder civic called something like "civ-only". For most civs, those civics would do nothing and would not be available. However, the Calabim could adopt the Compassion civic and for them it would give them something thematic like where their units start with extra XP but their cities suffer from extra unhealth (call it Blood Initiation or something). However, the Elohim can adopt that "same" civic and for them it gives a bonus to their GPP and Health (call it Nurture Body and Soul). Each civ would affect which civics did what (maybe the Calabim palace causes the extra Compassion civic to offer bonus xp and unhealth). I am suggesting this mainly for the mod-mods and such because Kael and co have made it clear that they don't want to make the civilizations too specialized and that is a laudable design decision. However, for the people who want to go crazy with lizardman civs, undead civs, giant civs and so on I think these place-holder civics would really help their modding. For the record, a Thalassocracy is a rule by maritime leaders... perfect for the Lanun. Hint Hint


13) Auto Draft function for undefended cities. When an enemy unit approaches or attacks a city with the Hall of Mirrors building then an illusory duplicate of them spawns to defend the city. What if, when an enemy unit attacks or approaches an undefended city of the Bannor, for example, the city auto-drafts a defender. Thus a warrior/swordsman/champion/whatever spawns, the city's population drops and unhappiness increases just like usual when drafting. This would represent populations of certain civilizations being unwilling to suffer foreign conquest. After all, I could see the Doviello fighting to the last man; being rage-filled, survival-of-the-fittest savages and all. You could take this to the extreme where a city will actually self-destruct once it's population would be reduced below one (truly fighting to the last man, woman and child) or the city stops spawning defenders once it's population drops too low (say, <= size 2). For further granularity, you could make it so the chance of a defender springing up is equal to the percentage of that civilization's culture in the city. This means, a 100% Bannor city would pop defenders every time, a Clan city that was just conquered by the Bannor would NEVER pop defenders (so cities don't resist their own liberation) and a city that is not fully Bannor would have an appropriately scaled chance of acting "Bannorian" and fighting against long odds. I could see this being thematic for civs like the Doviello, Bannor and Clan as well as cities that have Unyielding Order or the Pillar of Chains built within. And for the record, I nicked this idea from someone, somewhere else in the forum, long, long ago. Cred to whoever that was.


14) Allow Khazak to build mines anywhere. The act of building a mine on a flat grassland tile (for example) already contains the opportunity cost of NOT building a farm, cottage, watermill or lumbermill there. This is a minor point, though, which is why it's at the end of the last list in the whole freakin' post.



Feel free to add your own ideas and critique my own. While I may not be out to mod-mod FFH into a new and exciting form, others are and having a big pile of cool ideas might help them out. And if Kael and Co. happen to spot something they'd care to use, well, so much the better.
 
Streamlining​

1) When a city is conquered, be able to view what buildings and specialists survived the invasion before having to choose whether to keep the city or raze it. An alternate implementation would be to give units an ability called Sack which destroys a city that was just conquered and incurs the appropriate diplomacy penalty with civilization and raises the AC. This way you can take a peek and see if there are any worthwhile buildings or great people within that'd influence your decision to purge vs integrate. A different trigger for the ability, if it proves easier to implement, is to only be available if the city is rioting. An "Are you sure?" message would be appreciated in case your finger slips.
I agree Wholeheartedly with this one.

(In my version Feast and Consume Soul would have these additional abilities too. I've already set them up to destroy cities that are too small, but when I tried to add the diplomatic effect it didn't work out so well. I also don't know how to create the warning windows yet.)

2) Please, PLEASE reduce the amount of micromanagement involved in having Govannon train other Amurite units. I have two thoughts on this. One is to have a building called "Teachings of Govannon" or whatever that automatically trains units that pass through the city in the same way that units can automatically pick up weapon-promotions from a city with metal. This building can be built by Govannon or simply spawns in whatever city he happens to be in. Alternatively, you could give Govannon a "Teach" skill which trains all units in the stack all the promotions he could normally impart on them (Fire I, Death 1, Chaos 1, etc.) all at once. If you wanted, you could make all units just taught to be rendered immobile for 5 turns to simulate you spending 5 turns doggedly micromanaging. Since Govannon has to first have those promotions himself the "Teach" skill would have to convey only those promotions Govannon already possesses (which may be complicated to implement, I don't know) OR the "Teach" skill would require each of the promotions to use (so he'd have to already have Body I, Shadow I, etc. to use the ability).


I think it is far better to remove the train spells entirely, replacing them with a PyPerTurn effect. This would mean that he can stick to acting like a normal archmage while units near him randomly learn stuff. Thematically, the Amurite's Mage Guild-Dominated government (represented by the player) would have little to no control over what he teaches to whom. They don't like him teaching anyone, but Valledia won't let them stop him since she recognizes it makes their military stronger, even if she can't get Govannon to focus on training her troops.

I also think he should be able to teach all the spell spheres that he knows, not just those few can can teach now. Thematically she should focus on enchantment and spirit magic, not necromancy.

3) Make certain spells autocast if the unit hasn't already exhausted their ability to cast spells by the end of your turn. For example, Sanctify, Bless, Heal, Repair, Loyalty, Courage or just about any other buff spell. This way you don't have to meticulously arrange to perform all your actions, attack with all your troops, arrange all your forces for maximum mage coverage and then cycle through all your casters so everyone has regeneration and stoneskin running on them. I would assume some sort of priority list could be created in the code that would resolve which spell to cast when a caster has more than one available. While I don't condone having Life I casters hold back Hell Terrain, it would make the act of doing so much, MUCH less of a hassle for those that do.

I think the best way to handle this is to add new "autocast X" spell for each X spell, which would create "autocast X" promotions that use a PyPerTurn to cast the normal spell. It should be set up so that the promotion expires when the unit casts a spell (I don't think that being forced to cast in python counts, as it doesn't stop units with Crown of Brilliance from casting other spells). This would let you pick what spell you want each unit to autocast, and would be simple to implement.

4) Does the strength bonus from your forts, castles and the like apply when your units are attacking within their radius? If so, please have that bonus show up in the combat odds break down.
I don't your forts effect your attacking units, but rival forts do give a ranged bonus to rival defenders, which I believe isn't shown but should be.


Tweaks​

5) Allow Expansive Leaders to build smokehouses at double speed. Sometimes you are up to your eyeballs in mutton and beef with nary a carbohydrate in sight. It just doesn't seem fair, nor does double speed Granaries AND Smokehouses seem too powerful.

I'm fine with this, although I really think that making the Expansive trait give you Settlers for half the normal cost (and maybe also give them the mobility promotion) would be much more appropriate. The trait should actually be about expanding.

6) Make ancient forests give a commerce penalty to the cottage improvements to reign in the rampant elf + FoL + cottage-spam synergy. Having the first two levels of cottage yield one commerce and the last two levels yield two commerce seems equitable. Your Ancient Forest towns are effectively trading two commerce for one hammer and one food; more than fair, I would say.

I disagree. I don't think this should be changed.

I do however think that it could be nice for having Ancient Forests in your territory when you no longer have the religion be a bad thing. Maybe a non-FoL civ triying to attack an FoL civ's units (or just actual FoL units) in their own territory should caused Treants to help defend the enemy and take back the land for the fellowship.

I also think that lumbermills should be able to be built in ancient forests (which would help non-elven civs more), and that there should be events that cause the lumbermills to destroy the forests and cause diplomatic problems with other FoL civs. (Perhaps you could avoid the penalty by executing the lumberjacks, loosing the mill and causing unhappiness in the city.)

7) Allow Doviello wolf packs to pillage and give them a bonus vs melee units (in context, police dogs are pretty effective against people on foot so it's not too far-fetched). Failing that, make Doviello wolves cost no support. As is, the Doviello world spell feels pretty weak. Instead of or in addition to gaining empowered promotions from combining wolves, offer XP to the stack (3 or 4xp) and maybe a chance for the Strong promotion.


I'm fine with this. I personally like wolf packs to act a bit more like Flesh Golems, so the wolf pack should get all the promotions of all the wolves that are added and sometimes have their base strength improved.

8) Make Arete give 25% GPP bonus, instead of 20%. Because GPP has to be an integer, 20% has far less effect than it should. Furthermore, it annoys the Khazak who have +45% GPP with overflowing vaults (+25%) and Arete (+20%).

Ok.

9) If the Kuriotates build City of a Thousand Slums then they can upgrade one more settlement to city. It's thematic with the wonder and it actually gives the Kuriotates a reason to build it.

Its ok, but I think I'd rather give the Kuriotates a UB of the wonder. Maybe something that removes all unhealthiness from the city that builds it? (City of a Thousand Gardens maybe?)

10) Make the Earth I promotion somehow increase fort development speed. This can either be by manually casting the spell to shave 5 or so turns off of the improvement's evolution, by having the improvement evolve faster when an Earth I promoted unit is standing in that square or by making all forts and the like improve faster if they are in the radius of a city with the Wall of Stone building.


I still prefer adding temporary improvements (and also temporary features, which would both work like temporary terrains), and making Wall of Stone instead be a fort-like temporary improvement. (With python, there is no reason why an improvement couldn't be created on the city's tile if you still want greater defense in the city instead of just in the field.)

11) Allow sanctify to clear graveyards, reducing AC and giving some sort of bonus to the civilization. I'm thinking the Bless promotion to the units in the stack or the spirit guide promotion to some of your units, chosen randomly (the spirits repay your services to them by assuming vigilance over some of your forces).

This is already in the game.
When cast on Graveyards it sets the plot counter to 0, reduces the AC by 1 (the real AC, not the percent value that is displayed), and creates an Einherjar (an angelic unit like the Law II summon, but without limited duration)


Suggestions and Experimental Stuff​

12) Generic Place Holder Civics that can be modified to be civilization specific. Crusade is a Bannor-only civic and Fall Further has several more like that as well. Imagine that in each civic column (labor, compassion, government, etc.) there was a place holder civic called something like "civ-only". For most civs, those civics would do nothing and would not be available. However, the Calabim could adopt the Compassion civic and for them it would give them something thematic like where their units start with extra XP but their cities suffer from extra unhealth (call it Blood Initiation or something). However, the Elohim can adopt that "same" civic and for them it gives a bonus to their GPP and Health (call it Nurture Body and Soul). Each civ would affect which civics did what (maybe the Calabim palace causes the extra Compassion civic to offer bonus xp and unhealth). I am suggesting this mainly for the mod-mods and such because Kael and co have made it clear that they don't want to make the civilizations too specialized and that is a laudable design decision. However, for the people who want to go crazy with lizardman civs, undead civs, giant civs and so on I think these place-holder civics would really help their modding. For the record, a Thalassocracy is a rule by maritime leaders... perfect for the Lanun. Hint Hint
There is no reason to create space holder civics. Creating new civics is a very simple thing to mod. If you can't figure it out wihtout placeholders I don't think you could with them.

One thing that could be nice though it to make civ-specific civics not show up on the screen for other civs, to reduce clutter.


13) Auto Draft function for undefended cities. When an enemy unit approaches or attacks a city with the Hall of Mirrors building then an illusory duplicate of them spawns to defend the city. What if, when an enemy unit attacks or approaches an undefended city of the Bannor, for example, the city auto-drafts a defender. Thus a warrior/swordsman/champion/whatever spawns, the city's population drops and unhappiness increases just like usual when drafting. This would represent populations of certain civilizations being unwilling to suffer foreign conquest. After all, I could see the Doviello fighting to the last man; being savage and all. You could take this to the extreme where a city will actually self-destruct once it's population would be reduced below one (truly fighting to the last man, woman and child) or the city stops spawning defenders once it's population drops too low (say, <= size 2). For further granularity, you could make it so the chance of a defender springing up is equal to the percentage of that civilization's culture in the city. This means, a 100% Bannor city would pop defenders every time, a Clan city that was just conquered by the Bannor would NEVER pop defenders (so cities don't resist their own liberation) and a city that is not fully Bannor would have an appropriately scaled chance of acting "Bannorian" and fighting against long odds. I could see this being thematic for civs like the Doviello, Bannor and Clan as well as cities that have Unyielding Order or the Pillar of Chains built within. And for the record, I nicked this idea from someone, somewhere else in the forum, long, long ago. Cred to whoever that was.

This could be quite nice. I believe it would require only a tiny amount of python. I might try adding it to my version when I have less homework.

14) Allow Khazak to build mines anywhere. The act of building a mine on a flat grassland tile (for example) already contains the opportunity cost of NOT building a farm, cottage, watermill or lumbermill there. This is a minor point, though, which is why it's at the end of the last list in the whole freakin' post.

Eh, not really a fan of this. This would not be a simple thing to change, and I doubt it would be worth it.


I'd much rather allow them to mine Peaks. I'm thinking that doing this though an RoK only "Delve" ritual that makes mines in, roads to, and possibly finds resources in or increases the base yields of peaks nearby peaks may be the best way to handle this. I've been planing this in my version for a long time. (I had the code working a year ago, but had it working for a B instead a repeatable ritual which would work much better. My hardrive crashed since then and I lost it, but it shouldn't be hard to ad back. I could never seem to get it to place the roads properly though.)
 
Forts add a defensive bonus to units within a radius and, IIRC, it does show up as part of the Tile Defense bonus.
 
I also think that lumbermills should be able to be built in ancient forests (which would help non-elven civs more), and that there should be events that cause the lumbermills to destroy the forests and cause diplomatic problems with other FoL civs. (Perhaps you could avoid the penalty by executing the lumberjacks, loosing the mill and causing unhappiness in the city.)

Why would I ever lumbermill an ancient forsest if there were the possibility of a bad event stemming from it?
 
3) Make certain spells autocast if the unit hasn't already exhausted their ability to cast spells by the end of your turn. For example, Sanctify, Bless, Heal, Repair, Loyalty, Courage or just about any other buff spell. This way you don't have to meticulously arrange to perform all your actions, attack with all your troops, arrange all your forces for maximum mage coverage and then cycle through all your casters so everyone has regeneration and stoneskin running on them. I would assume some sort of priority list could be created in the code that would resolve which spell to cast when a caster has more than one available. While I don't condone having Life I casters hold back Hell Terrain, it would make the act of doing so much, MUCH less of a hassle for those that do.

I'm not an expert programmer (I barely know any actually), but I think having to go through all your spellcasters to see if they could cast a spell would slow the game down a lot, especially if there are a lot of mages. I'm pretty sure that's why Kael took out Lifesparks, because it interupted every combat before a unit was killed to check if a lifespark was in the stack.

13) Auto Draft function for undefended cities. When an enemy unit approaches or attacks a city with the Hall of Mirrors building then an illusory duplicate of them spawns to defend the city. What if, when an enemy unit attacks or approaches an undefended city of the Bannor, for example, the city auto-drafts a defender. Thus a warrior/swordsman/champion/whatever spawns, the city's population drops and unhappiness increases just like usual when drafting. This would represent populations of certain civilizations being unwilling to suffer foreign conquest. After all, I could see the Doviello fighting to the last man; being rage-filled, survival-of-the-fittest savages and all. You could take this to the extreme where a city will actually self-destruct once it's population would be reduced below one (truly fighting to the last man, woman and child) or the city stops spawning defenders once it's population drops too low (say, <= size 2). For further granularity, you could make it so the chance of a defender springing up is equal to the percentage of that civilization's culture in the city. This means, a 100% Bannor city would pop defenders every time, a Clan city that was just conquered by the Bannor would NEVER pop defenders (so cities don't resist their own liberation) and a city that is not fully Bannor would have an appropriately scaled chance of acting "Bannorian" and fighting against long odds. I could see this being thematic for civs like the Doviello, Bannor and Clan as well as cities that have Unyielding Order or the Pillar of Chains built within. And for the record, I nicked this idea from someone, somewhere else in the forum, long, long ago. Cred to whoever that was.

This one is pretty good, actually. It could be a civic or leader trait requirement. Like Crusade, or Aggressive or Defensive trait. Or all three. Maybe another civic, I don't pay much attention to civics I never use. But it should only happen in cities of 100% your population, or you could move your army out of an occupied city and it would spawn troops to fight against people of their own nationality.

Forts add a defensive bonus to units within a radius and, IIRC, it does show up as part of the Tile Defense bonus.

They didn't in previous versions. But if he's is playing the current version, it shouldn't be a problem.

As for my own ideas, this one just poped into my head. Have Unyeilding Order convert the entire population to your civ. It makes sense logically, especially since it already ends roiting and removes unhappiness.
 
Many good ideas, but I will have to object to this one.

3) Make certain spells autocast if the unit hasn't already exhausted their ability to cast spells by the end of your turn. For example, Sanctify, Bless, Heal, Repair, Loyalty, Courage or just about any other buff spell. This way you don't have to meticulously arrange to perform all your actions, attack with all your troops, arrange all your forces for maximum mage coverage and then cycle through all your casters so everyone has regeneration and stoneskin running on them. I would assume some sort of priority list could be created in the code that would resolve which spell to cast when a caster has more than one available. While I don't condone having Life I casters hold back Hell Terrain, it would make the act of doing so much, MUCH less of a hassle for those that do.

The game has odd ideas on when a unit is finished with its turn, especially when auto-moving and the like. It would be incredibly frustrating to have my mages' ability to cast wasted because the game thought I was done. Given the situation at hand, I may not want haste cast one turn, wanting to cast something more exotic for my own nefarious purposes.
Then there's the matter of who's casting what. There may be any number of casters with any odd combination of spells. Does the game select the lowest level and have that one cast haste? What if he's also my designated enchanted blade caster? What if he's the only one with those spells in the stack and one unit which does not have the enchanted blade promo just entered the stack? The game would have to be programmed to prioritize one spell over the other but, as I mentioned before, it all depends on the situation at hand.
Just leave it in the hands of the player. The extra micro is annoying at times, but it's a trade off I at least am willing to make.
 
I'm not an expert programmer (I barely know any actually), but I think having to go through all your spellcasters to see if they could cast a spell would slow the game down a lot, especially if there are a lot of mages. I'm pretty sure that's why Kael took out Lifesparks, because it interupted every combat before a unit was killed to check if a lifespark was in the stack.

The game has odd ideas on when a unit is finished with its turn, especially when auto-moving and the like. It would be incredibly frustrating to have my mages' ability to cast wasted because the game thought I was done. Given the situation at hand, I may not want haste cast one turn, wanting to cast something more exotic for my own nefarious purposes.
Then there's the matter of who's casting what. There may be any number of casters with any odd combination of spells. Does the game select the lowest level and have that one cast haste? What if he's also my designated enchanted blade caster? What if he's the only one with those spells in the stack and one unit which does not have the enchanted blade promo just entered the stack? The game would have to be programmed to prioritize one spell over the other but, as I mentioned before, it all depends on the situation at hand.
Just leave it in the hands of the player. The extra micro is annoying at times, but it's a trade off I at least am willing to make.

Allow me to clarify on this one. I meant after you, the player, pressed the END OF TURN button that all of your casters who had not yet cast would fire off one of their spells. To determine which spell they would cast, there would be an ordinal list stored somewhere in the code that had at the top something like HEAL, followed by REPAIR and on down until you hit some arbitrary bottom with LOYALTY or something. This operation would only take O(NxM) where N was the number of your casters who have not cast a spell this turn and M was the length of the ordinal list. The operation wouldn't even be analyzed during your "turn" when your units are moving around, nor would it be analyzed during your enemies turns; it would only happen after you had signaled to the game that you had absolutely no intention of doing anything more with your units on your turn. Hence a cheap and side-effect free way of stripping a little MM out of the game.


I think the best way to handle this is to add new "autocast X" spell for each X spell, which would create "autocast X" promotions that use a PyPerTurn to cast the normal spell. It should be set up so that the promotion expires when the unit casts a spell (I don't think that being forced to cast in python counts, as it doesn't stop units with Crown of Brilliance from casting other spells). This would let you pick what spell you want each unit to autocast, and would be simple to implement.

Autocast would work too. Heck, it'd work a little better if it were easy enough to implement. I didn't include that because I was unsure of the timing (when during my turn would my units autocast?) and the implementation. I mean, all the handwaving and pseudo-code I am doing is my way of saying "I have no idea how this would actually be coded but wouldn't it be cool if..."



There is no reason to create space holder civics. Creating new civics is a very simple thing to mod. If you can't figure it out wihtout placeholders I don't think you could with them.

One thing that could be nice though it to make civ-specific civics not show up on the screen for other civs, to reduce clutter.

I mention place-holder civics as a way of preserving space. Again, I have no idea how easy or not it would be to modify the effects of a civic based on what civ you are/what buildings you possess. If you could have any number of civics and just flag the irrelevant ones (like Crusade for Non-Bannor) so they don't show up, that'd work even better. I just assumed that all civics would have to vie for limited space in the civics interface and as such having one civic per column that could be dynamically reused by multiple civs would circumvent the space limitation nicely.



This could be quite nice. I believe it would require only a tiny amount of python. I might try adding it to my version when I have less homework.

This one is pretty good, actually. It could be a civic or leader trait requirement. Like Crusade, or Aggressive or Defensive trait. Or all three. Maybe another civic, I don't pay much attention to civics I never use. But it should only happen in cities of 100% your population, or you could move your army out of an occupied city and it would spawn troops to fight against people of their own nationality.

I'm glad you guys like the idea. Again, I stole it from somewhere else in the forum a long ways back. I really like having the percentage of your culture determine if a defender will pop. That way newly invaded cities will not resist liberation but cities that are at least partially converted to your culture may behave as desired. The three civs I highlighted as candidates for it (Bannor, Clan, Doviello) aren't typically cultural powerhouses meaning 100% culture isn't something they're guaranteed even in cities that have historically been theirs. And let's face it, the border cities are the ones most likely to need this extra line of defense.


As for my own ideas, this one just poped into my head. Have Unyeilding Order convert the entire population to your civ. It makes sense logically, especially since it already ends roiting and removes unhappiness.

I like this... to a point. Having an ancient, wonder-filled city with thousands of points of YOUR culture completely turn heel after being brainwashed by Sphener would suck pretty hard. In other words, having Unyielding Order permanently flip the cities culture ownership to the invading player would indicate permanent brainwashing; you reconquer your city and your people will be "yearning for their motherland" despite the Unyielding Order spell having terminated. However, UO is a pretty hard-core spell and should be able to throw it's weight around so I guess I can get behind this. And really, it's either "all at once" or you have to get a finer granularity by having your culture absorb the rival culture(s) at some fixed rate like 5% or 10% per turn of hard-core, mind controlling reeducation. And that could be complicated to implement (certainly something we want to avoid where ever possible).
 
Autocast would work too. Heck, it'd work a little better if it were easy enough to implement. I didn't include that because I was unsure of the timing (when during my turn would my units autocast?) and the implementation. I mean, all the handwaving and pseudo-code I am doing is my way of saying "I have no idea how this would actually be coded but wouldn't it be cool if..."

It is pretty easy to implement. You basically just copy the Crown of Brillance code, but change the name of the spell that the PyPerTurn effect forces the unit to cast, and set the promotion to be removed by casting like Hidden is. Judging by how Crown of Brillance never seems to go off when there are no enemies nearby I'd guess that the .cast() function already makes sure it is possible in the dll. However, there is the problem that it seems to go off at pretty random times.

When I discussed this with Xienwolf a month or so ago he said said that adding new promotion tags that would cast spells at the beginning of a turn, at the end of a turn, or on move would be better than copying Crown of Brillance. That is beyond my programming skill, but but it would be pretty simple for someone like Xienwolf to implement. I don't think that he is adding those in the next version of FF, but it would be a very pleasant surprise if this xml-only method were included.
 
3) Make certain spells autocast if the unit hasn't already exhausted their ability to cast spells by the end of your turn. For example, Sanctify, Bless, Heal, Repair, Loyalty, Courage or just about any other buff spell. This way you don't have to meticulously arrange to perform all your actions, attack with all your troops, arrange all your forces for maximum mage coverage and then cycle through all your casters so everyone has regeneration and stoneskin running on them. I would assume some sort of priority list could be created in the code that would resolve which spell to cast when a caster has more than one available. While I don't condone having Life I casters hold back Hell Terrain, it would make the act of doing so much, MUCH less of a hassle for those that do.

DEFINATELY second this. in every way.

I think the best way to handle this is to add new "autocast X" spell for each X spell, which would create "autocast X" promotions that use a PyPerTurn to cast the normal spell. It should be set up so that the promotion expires when the unit casts a spell (I don't think that being forced to cast in python counts, as it doesn't stop units with Crown of Brilliance from casting other spells). This would let you pick what spell you want each unit to autocast, and would be simple to implement.

good thinking MC
 
It is pretty easy to implement. You basically just copy the Crown of Brillance code, but change the name of the spell that the PyPerTurn effect forces the unit to cast, and set the promotion to be removed by casting like Hidden is. Judging by how Crown of Brillance never seems to go off when there are no enemies nearby I'd guess that the .cast() function already makes sure it is possible in the dll. However, there is the problem that it seems to go off at pretty random times.

When I discussed this with Xienwolf a month or so ago he said said that adding new promotion tags that would cast spells at the beginning of a turn, at the end of a turn, or on move would be better than copying Crown of Brillance. That is beyond my programming skill, but but it would be pretty simple for someone like Xienwolf to implement. I don't think that he is adding those in the next version of FF, but it would be a very pleasant surprise if this xml-only method were included.

This just made me think of a problem with this: you could have autocast promos for multiple spells using this method. would get very OPed.
 
This just made me think of a problem with this: you could have autocast promos for multiple spells using this method. would get very OPed.

That is why I said to give all the autocast promotions the <bRemovedByCasting>1 tag; setting a unit to cast or autocast anything would cancel all previous autocasts, so there would be no possibility of having multiple autocast promotions (without cheating using worldbuilder). I don't think that it would be removed by the forced casting of the PyPerTurn effect, but I'm not sure. If so, we could add python prereqs or effects so that applying any one of these promotions removes all the others, or so that you must remove the promotions (though a "stop autocasting" spell) before you could gain another one.


Oh, if this is done in FF then it would be easy to make all autocast promotions mutually elusive, so adding one would remove all others without any need for using python.



The python call would also set the unit as having already casted, as it would otherwise allow you to autocast 1 spell plus cast another spell the normal way in the same turn. If the promotions are not removed by casting then we could easily set it to only units that have not yet casted could autocast, if for instance you wanted the unit to cast haste every turn but just happened to think a fireball was more useful for 1 turn.



If we find that forced casting does remove the promotion and thus won't work, then it might be a good idea to add both the "Autocast X" and a general "Autocast" promotion so that there could be 1 single "stop autocasting" spell instead of dozens of them. Having it use python to remove all the autocasting promotions (the xml can only remove 3 promotions, so we'd have to use python if it must remove dozens) isn't a big deal, but having a python prereq that checks for one of dozens of promotions would not be processor friendly.
 
the streamlining ideas are especially awesome, I think kael should have a long look at esp. the autocast and govannon as these two issues have come up as a sore spot time and time again amongst the forum threads.
 
Would it be possible to give adepts a new type of fortify command that would remember the last spell the unit cast and autocast it until unfortified?
 
I'd prefer that workshops got a +1 :food: bonus with some civic and gave more production in general than khazad being able to build mines everywhere. I do think that Khazad should have a mine upgrade that gives + 1 :commerce: though.
 
At the risk of sounding like a broken record, a building tree with pre-reqs would be a great streamline and rather easy to implement.
 
Allow me to clarify on this one. I meant after you, the player, pressed the END OF TURN button that all of your casters who had not yet cast would fire off one of their spells. To determine which spell they would cast, there would be an ordinal list stored somewhere in the code that had at the top something like HEAL, followed by REPAIR and on down until you hit some arbitrary bottom with LOYALTY or something. This operation would only take O(NxM) where N was the number of your casters who have not cast a spell this turn and M was the length of the ordinal list. The operation wouldn't even be analyzed during your "turn" when your units are moving around, nor would it be analyzed during your enemies turns; it would only happen after you had signaled to the game that you had absolutely no intention of doing anything more with your units on your turn. Hence a cheap and side-effect free way of stripping a little MM out of the game.

what I meant by that is that after you hit the end turn button, it would have to go through every unit to see if it could cast a spell. Then after each AI's turn, it would go through all of their units to see if they could cast spells(not too sure about this part, any programmer wanna clear it up?) This would radically increase the time each turn took. just my 2 cents, its a good idea, i just think it would slow the game down too much. plus, for haste to be of any effect, it would have to be cast before auto moving units moved, making it not one that could be used in this sense.
 
I have NO idea if this would even be possible...

But I wonder if instead of Auto cast, buff spells could be set up like city spells except for stacks. ie - How Wall of Stone stays on the city until the caster dies or leaves town, have buffs (once cast) stay up until the caster and the buffed target are no longer in the same stack.
 
Back
Top Bottom