Thunderbrd
C2C War Dog
Part One: Affliction Promotion Dynamics
Introductory Discourse:
As I've mentioned in the second Introduction to the Combat Mod, the Advanced Disease system the Combat Mod offers us will be an ingame option once I've established a Combat Mod Bug Options page.
In the meantime, since we're already beginning to design diseases, I feel the team should have a full explanation of what we're able to do here and we should have a serious discussion on what changes or adjustments you might like to make to the structure of this system before we get much further into those endeavors.
So its time to get into detail on this system and the tags involved.
The Origin of this System:
I figured I should take a moment to explain the design philosophy so you might understand how this came about since I've been hearing the call of 'not necessary' echoing about the halls regarding this segment of the Combat Mod.
As we all know by now, AIAndy's original intention for diseases utilizing the generic properties system was to have each disease be its own independent property. By doing so, we'd have been able to create some rather intricate mechanisms to control its spread.
However, we've gravitated towards a generic Disease Property to control the majority of factors involved in emerging diseases. I don't think this was a bad idea though because otherwise there's a disharmony with other Generic Properties such as Crime, Flammability, Air and Water Pollutions, that have a very wide angle on a variety of effects. There are many crimes all controlled and guided by the crime property for example. So it is quite natural to take the same approach with diseases.
But the problem with this is that it undermines a lot of the functionality built into the Generic Properties system that could've allowed us to define each disease's emerge, spread, resistance, and recovery mechanics to a highly refined detail. I'm ever impressed, however, with our modders and how amazingly well they think things through to come up with innovative solutions to make things work even with less than perfect options at hand. So I'm not downing any decisions made along any lines here.
However, on the flip side, I personally did not feel that an absolute emergence and recovery levels embodied by the iMinimum and iMaximum settings did not leave enough room for the degree of chance that I feel real world disease operates on. Yes, that could've been addressed with a simple adjustment in the mechanism of the generic property system. And I still think we might want to do so for crime so that its not such a static absolute appear/disappear condition.
So why did I feel the need to take things a number of steps further and branch off of a generic system into a specific structure designed only for disease interactions?
Because it naturally evolved from one step to the next.
I was working on poisoning. Inspired by FFH2, I wanted to allow us to define a unit or allow a promotion on a unit to have the ability to INFLICT a poison (an ANTI-promotion I later termed Affliction) on its enemy when it attacked. Generally, if the attacked unit survived then it usually meant the attacker would've died but in tandem with Withdrawal and Early Withdrawal I began to see that we could develop our Criminal types to strike and retreat, leaving their victim poisoned in their wake, a strategy any MMORPG player is rather familiar with (DOTamage over Time).
So following the theory presented in FFH2 while allowing us to define numerous various Poisons, I generated two tags to give a unit the ability to inflict a poison on an injured foe.
Poisoning Tags
These are:
AfflictOnAttackTypes (on units. Simply list the promotions the unit will pass to an injured enemy within the tag lines <AfflictOnAttackType>. No need for a boolean value to support those definitions thanks to Koshling and AIAndy guiding me to a better vector mechanism design.)
and
AfflictOnAttackChangeTypes (Goes on a promotion to empower a unit to Afflict the listed Affliction Promotion(s) when it attacks another unit and injures it.)
There was no need to create a tag on promos that would remove an ability to afflict a given promotion onto an enemy since the promos that would bring the ability would get overridden or obsoleted as better presented itself.
Diseases As Promotions
Once this was done, I immediately realized that the tags I'd designed to flesh out these negative promos (Afflictions) would be just as useful for diseases as well.
Another feature in FFH2 that I much enjoyed was that 'diseased' units would pass their disease onto the units they fought, the disease promotion itself adding the afflicting ability to spread itself to another unit on combat.
But I didn't feel that our design philosophy in C2C really supported a single generic poison promotion, nor did it support a single generic disease promotion. We were wanting to design diseases from a perspective of research and knowledge on how those diseases operate in the real world.
So it wasn't a sufficient answer to say that if a unit with a disease managed to harm another unit it would automatically pass that disease to the other (as poisoning worked.) Instead, the disease should have a CHANCE to pass. And since all diseases work differently and each would have a varying chance of such transmission, it was necessary to define a tag for the chance of a disease passing from one unit to another in combat.
This tag became:
iCommunicability, a tag for a disease Affliction to define its % chance of passing from one unit to another.
Therefore, to some extent a disease is differentiated from a poison, despite both being considered Afflictions, by whether or not the Affliction has an iCommunicability value. If a unit with an Affliction that has an iCommunicability rating above 0 damages another unit, the iCommunicability becomes the base chance for that same Affliction promotion to be inflicted upon the damaged unit.
However, a disease CAN have no Communicability, in which case its been transferred to the victim most likely as a result of being attacked by a unit with an AfflictOnAttack ability designating that Affliction to be afflicted automatically upon injury, like a poison. OR it has been handed to the victim unit by the Generic Disease property mechanism where the unit's generic disease level has exceeded the iMinimum threshold established and the unit qualified to receive the disease according to all the filters setup there.
Sometimes it is appropriate for a disease to include an AfflictOnAttackChange tag to represent it passing from one form to another. For example: Rabies. Rabies would be a Disease Affliction promotion that only non-Human Mammals can possess (feel free to get more specific in defining this beyond this basic example.) It can pass between animals from one to another via proximity (more on proximity below.) But the definition of the Affliction Promotion that represents animal based Rabies would include an AfflictOnAttackChange of something like PROMOTION_HUMAN_RABIES which means if such a diseased animal attacks and injures a human unit, the disease passes to the human unit as a poison would - now the human unit has its own form of Rabies. And perhaps that form of disease has no iCommunicability, indicating it will not pass beyond that unit via combat, proximity or any other means as it would also NOT include any AfflictOnAttackChange designations.
Note: how such animals would initially contract such a disease is still going to involve further programming at the moment...
Proximity
It is also possible for a unit to contract a disease by proximity to other units, including neutral, hidden enemy units, and friendly units alike that exist on the same plot. Every turn, each unit in proximity to another unit with an affliction that bears a Communicability value, checks to see if it has contracted that disease much the same as if it had entered combat with such a diseased unit.
There are two tags that can deny these forms of contraction in a given disease too. Obviously, some diseases should be able to pass between units in proximity while not being able to pass during combat and others able to pass between units in battle while not being able to pass as a result of proximity. So the following tags allow us to establish these limitations:
bNoSpreadonBattle
bNoSpreadUnitProximity
I believe these are fairly self explanatory.
Resistance and Recovery
Then I realized that it could be a neat ability to allow our units to develop a general hardiness and resistance to diseases and that tag could directly counter the chance to pick up a disease whenever it needed to make such a check.
This tag became:
iFortitude (on units as a base ability definition) and
iFortitudeChange (on promos for the intention of developing a promotion line or two that would help a unit develop its Fortitude value and thus resistance to disease.)
Then I realized that the general hardiness of Fortitude could be useful in helping a unit overcome any given Affliction, be it Disease or Poison and would make Fortitude more desirable despite the fact that it would add little to the unit in terms of combat value.
So when designing recovery on Afflictions, I established that every turn, a unit should check to see if it had recovered from the Affliction. But the ability for a unit to overcome an affliction should not be based on the affliction's Communicability for a few reasons. Poison didn't have a Communicability definition and the ability for one to overcome a disease really had little to do with how easily they could catch it.
So I needed a new tag for all affliction definitions:
iOvercomeProbability (to go on any affliction promotion representing the affliction's difficulty to overcome. Higher is weaker as this % is the base percent chance of successfully overcoming the affliction every turn.) Note, a unit that acts in a turn does not have an opportunity to overcome an affliction so if you have an afflicted unit its best to let it rest so it can recover.
The chance, then, for overcoming an Affliction is the Affliction's Overcome Probability plus the unit's total Fortitude.
But usually, a sickness or poison is either made easier to overcome with time, or for particularly dangerous diseases and poisons, made more difficult to overcome with time. So that factor needed to be expressed.
iOvercomeAdjperTurn embodies this. The # you inject here, be it positive or negative, will add or subtract to the chance to overcome the Affliction (for the given afflicted unit) cumulatively for each turn the affliction has been possessed.
REMEMBER that positive means more likely to overcome! That might be a bit counter-intuitive at times.
Note: For now, putting this value on a poison will cause a unit that's been struck again and re-poisoned to re-set this value back to 0, starting the count over. Most poisons should be easier to overcome over time and this will be one benefit of attacking a poisoned unit repeatedly with the same poisoning unit, continuously refreshing the poison in the victim's system. A pending change may cause this to be rethought a bit though.
Assistance in Recovery
Then I got to thinking about how healer units could help other units overcome their afflictions. I figured they'd have two ways to go about this that would help us to flesh out healer unit promotion lines in an amazing display of variety, unlike anything we see on those simplistic units today.
The first method they could use would be to assist units to health with generic medicinal practices. This REACTIVE medicine would be embodied by a new ability that operated much like a parallel of -Generic Disease influence and Healing but where -Generic Disease influence would be proactive efforts to keep disease at bay among the populace of the local region, and Healing would represent first aid efforts to keep soldiers alive and recovering after all kinds of combat wounds, this tag would represent herbal cures and medicinally targeted treatments to all known Afflictions.
I call this generic ability to help local units to recover from afflictions:
iAid (as the base ability on a unit) and iAidChange (for a promotion to add or subtract the value of this ability on a unit that possesses the promo.)
Aid only helps local units and works much like healing in that only the strongest Aid value that exists among units in the stack will be counted.
So now we have Aid helping a unit to recover from diseases and poisons, adding its value in direct support of units in the same stack on their Overcome Checks. Therefore, to overcome a disease or poison, a unit gets a random result from 1-100 every turn it hasn't moved and if that number comes up underneath the iOvercome + totalFortitude + best local Aid value + total tallied up modifier of the # of turns the unit has had the affliction times the iOvercomeAdjperTurn value of the affliction, then the unit will overcome the affliction (meaning the negative promotion is removed.)
Additionally, I figured certain buildings would assist in recovery if a unit were in a city, like Hospitals, Healer's Huts etc...
So cities themselves can offer a sum total of Aid that adds to any best Aid value on units present to further influence recovery.
Buildings thus have the tag:
iAidRate Just like with units, only the strongest iAidRate building in a given city will add its value to the plot Aid total.
Furthermore, Hydro suggested that we allow access to certain resources, natural or manufactured, like herbs or pharmaceuticals, to influence the city's Aid rate. So now we also have the tag:
BonusAidModifiers to indicate the adjustment to Aid that access to a given Resource provides. Use the tag to list the resource and the associated adjustment to the aid rate in the city. These are cumulative so make sure not to overdo it here.
Note that this too can be negative so some Resources could actually be programmed to impede general recovery (like perhaps Tobacco. I'd say Alcohol except that its long been useful as a crude medicine actually.) But keep in mind whenever you're making a general bonus or penalty to aid, its not to a specific affliction but to ALL afflictions and represents the general care available.
Again, the difference between Healing and Aid here is the difference between bandaging, stitching, prioritizing emergency surgeries on injured patients, first aid and such VS Aiding and abetting a patient in his recovery from a disease, poison, or long term critical injury such as broken bones, torn muscles - physical therapy efforts really. Basically short term treatment of minor cuts, bumps, bruises, gunshot wounds etc vs long term treatment where prognosis is highly variable.
As a result of cities being able to offer this extra Aid strength to its local units, it gives our armies a serious homefield advantage against poisonings, diseases and criticals (if you play with that option.)
Outright Curing
The second way a healer could interact with and assist other units in recovering would be to have an outright specialists level of skill in healing a specific form of Affliction. What I've done here hasn't been well tested so could be buggy but I'm really hoping it works as planned. I followed the tutorials to the letter on setting up a 'mission' definition here.
The tags:
CureAfflictionTypes (as a base definition for a unit) and
CureAfflictionChangeTypes (to give a unit the ability when the promotion with this tag is possessed)
allow us to define the specific afflictions a unit has the skill to cure outright as a turn based action. When a unit possesses any of these it should get a mission option for each Affliction it can cure where that Affliction is possessed by one or more units in the same plot the healer is on. Selecting this mission will heal one (the first listed in the stack) unit that has the indicated Affliction (without fail) and end the Healer's turn.
This is the fast way for us to heal our units of afflictions. A clever player who realizes the enemy he's planning to invade is beset by a particularly communicable disease might bring with him a healer or two specialized in the elimination of said disease so as to keep it under control when his own units begin to suffer the effects of contracting the disease from combat with the enemy.
On a design note, whenever we create an Affliction, we should also define how and when healer units could gain access to outright healing of that affliction in this manner. It could be given to a certain upgrade along the healer unit lines, and/or be included on a promotion that's only accessible to healers at the technology level necessary to represent when our technology gives us the power to directly heal such an affliction.
This, more than anything, is a design feature that will allow us to greatly diversify our healer units, both the upgrade chains and the specialized function of a given healer unit in play. It will pay to know thy enemy in what you are prepared to heal.
Technology
Now then, as medicine advances, anti-venom, inoculation and medical nano-tech technologies emerge offering direct resistances to particular diseases and poisons. Thus we have a few tags to represent resistances and immunities:
TechCommunicabilityModifiers
Goes on the specific Affliction promotion definition to represent how much more difficult (or more easy it has become in some rare cases) for an Affliction to spread among units that belong to a civilization that has discovered the specified tech(s). List the tech, then the modifier to the Communicability of the Affliction.
TechOvercomeModifiers
Goes on the specific Affliction promotion definition to represent how much easier (or difficult) it has become to overcome that Affliction by units belonging to a civilization that has discovered the specified tech.
List the tech, then the modifier to the Overcome rating of the Affliction.
AfflictionFortitudeModifiers (for units) and
AfflictionFortitudeChangeModifiers (for promotions to offer the modifier to the unit possessing the promotion)
Defines the resistances mentioned above. Some units themselves may have a specific base resistance or weakness to a particular affliction that would be represented by listing the affliction and the adjustment to the unit's fortitude vs that affliction under the AfflictionFortitudeModifiers tag. Some promotions can provide units with specific resistances against the scourges of their day, thus can utilize the AfflictionFortitudeChangeModifiers tag to reflect this.
IF, however, the promotion simply provides a general overall ability to resist and recover from any affliction, a straight modifier to the unit's Fortitude value is better used. If we find ourselves listing off too many specific AfflictionFortitudeModifiers, we should probably reconsider and go with an overall Fortitude modifier instead. This is intended to represent various inoculations as equipments (even modern soldiers undergo a number of inoculations as a part of their basic training requirements.) but I'm sure we'll find more uses as we go for these tags.
Combat Classes and SubCombat interactions
We also have, to represent various Unit Combat interactions such as weaknesses or resistances to a disease or poison as a particular species or the ability to avoid being infected as a result of being in an armored vehicle or even encased in heavy plate armor (remember how many layers of SubCombat definitions we can employ now!):
UnitCombatCommunicabilityModifiers
UnitCombatOvercomeModifiers
These modifiers go on the Affliction definitions themselves to allow us to influence the ability to pass between and be overcome by various unit combat types.
Generally its a good idea to zero out our base Communicability and Overcome values on the presumption that we are considering a Human on foot.
When Cultural UnitCombats get defined and a method developed to pass such cultural designations onto units, this could get even more interesting, indicating some cultures as more or less vulnerable to various diseases (lots of research to draw on here.)
The Aftermath
Now when a Disease or Poison is overcome, often the Previously Afflicted will have been left with a newfound tolerance to that specific Affliction. When a Critical is suffered, it might be all the harder to overcome it the next time (my thrown out shoulder that I fully threw out three more times over the next five years and would repeatedly fall out of socket at the slightest tug until it had proper time to heal long term was a good example.)
These effects are embodied by the following tags that go on the Affliction Promotion definition:
iToleranceBuildup
The amount of additional Fortitude that the unit gains (or if negative, loses) against this specific form of Affliction when this Affliction has been overcome.
and:
bToleranceDiminishes
If set to true (or '1') it means the tolerance value attached to any given unit towards this particular affliction decreases (or increases if negative) by one every turn after the tolerance has been added (or subtracted) until it zeroes out.
Thus, if I overcome a Common Cold, I gain the Tolerance indicated in the Common Cold's Affliction Promo definition and that makes it that much less likely that I will catch it again and that much more likely that if I do I'll overcome it. But I'm only protected for a time and after a while that effect will diminish, thus the Common Cold would have bToleranceDiminishes set to 1 to allow this degradation of my Tolerance until I have lost all tolerance whatsoever.
If Tolerance is earned towards a particular affliction more than once it should stack.
That's enough for now to open discussions. Feedback, requests for tweaks, optionalization lines, clarifications, please let me know what you think so far and if you're confused by anything or have any curiosities for me to clear up.
I'm reserving the next few for further information on this system and to help summarize these tags for quick reference during any design process.
Introductory Discourse:
As I've mentioned in the second Introduction to the Combat Mod, the Advanced Disease system the Combat Mod offers us will be an ingame option once I've established a Combat Mod Bug Options page.
In the meantime, since we're already beginning to design diseases, I feel the team should have a full explanation of what we're able to do here and we should have a serious discussion on what changes or adjustments you might like to make to the structure of this system before we get much further into those endeavors.
So its time to get into detail on this system and the tags involved.
The Origin of this System:
I figured I should take a moment to explain the design philosophy so you might understand how this came about since I've been hearing the call of 'not necessary' echoing about the halls regarding this segment of the Combat Mod.
As we all know by now, AIAndy's original intention for diseases utilizing the generic properties system was to have each disease be its own independent property. By doing so, we'd have been able to create some rather intricate mechanisms to control its spread.
However, we've gravitated towards a generic Disease Property to control the majority of factors involved in emerging diseases. I don't think this was a bad idea though because otherwise there's a disharmony with other Generic Properties such as Crime, Flammability, Air and Water Pollutions, that have a very wide angle on a variety of effects. There are many crimes all controlled and guided by the crime property for example. So it is quite natural to take the same approach with diseases.
But the problem with this is that it undermines a lot of the functionality built into the Generic Properties system that could've allowed us to define each disease's emerge, spread, resistance, and recovery mechanics to a highly refined detail. I'm ever impressed, however, with our modders and how amazingly well they think things through to come up with innovative solutions to make things work even with less than perfect options at hand. So I'm not downing any decisions made along any lines here.
However, on the flip side, I personally did not feel that an absolute emergence and recovery levels embodied by the iMinimum and iMaximum settings did not leave enough room for the degree of chance that I feel real world disease operates on. Yes, that could've been addressed with a simple adjustment in the mechanism of the generic property system. And I still think we might want to do so for crime so that its not such a static absolute appear/disappear condition.
So why did I feel the need to take things a number of steps further and branch off of a generic system into a specific structure designed only for disease interactions?
Because it naturally evolved from one step to the next.
I was working on poisoning. Inspired by FFH2, I wanted to allow us to define a unit or allow a promotion on a unit to have the ability to INFLICT a poison (an ANTI-promotion I later termed Affliction) on its enemy when it attacked. Generally, if the attacked unit survived then it usually meant the attacker would've died but in tandem with Withdrawal and Early Withdrawal I began to see that we could develop our Criminal types to strike and retreat, leaving their victim poisoned in their wake, a strategy any MMORPG player is rather familiar with (DOTamage over Time).
So following the theory presented in FFH2 while allowing us to define numerous various Poisons, I generated two tags to give a unit the ability to inflict a poison on an injured foe.
Poisoning Tags
These are:
AfflictOnAttackTypes (on units. Simply list the promotions the unit will pass to an injured enemy within the tag lines <AfflictOnAttackType>. No need for a boolean value to support those definitions thanks to Koshling and AIAndy guiding me to a better vector mechanism design.)
and
AfflictOnAttackChangeTypes (Goes on a promotion to empower a unit to Afflict the listed Affliction Promotion(s) when it attacks another unit and injures it.)
There was no need to create a tag on promos that would remove an ability to afflict a given promotion onto an enemy since the promos that would bring the ability would get overridden or obsoleted as better presented itself.
Diseases As Promotions
Once this was done, I immediately realized that the tags I'd designed to flesh out these negative promos (Afflictions) would be just as useful for diseases as well.
Another feature in FFH2 that I much enjoyed was that 'diseased' units would pass their disease onto the units they fought, the disease promotion itself adding the afflicting ability to spread itself to another unit on combat.
But I didn't feel that our design philosophy in C2C really supported a single generic poison promotion, nor did it support a single generic disease promotion. We were wanting to design diseases from a perspective of research and knowledge on how those diseases operate in the real world.
So it wasn't a sufficient answer to say that if a unit with a disease managed to harm another unit it would automatically pass that disease to the other (as poisoning worked.) Instead, the disease should have a CHANCE to pass. And since all diseases work differently and each would have a varying chance of such transmission, it was necessary to define a tag for the chance of a disease passing from one unit to another in combat.
This tag became:
iCommunicability, a tag for a disease Affliction to define its % chance of passing from one unit to another.
Therefore, to some extent a disease is differentiated from a poison, despite both being considered Afflictions, by whether or not the Affliction has an iCommunicability value. If a unit with an Affliction that has an iCommunicability rating above 0 damages another unit, the iCommunicability becomes the base chance for that same Affliction promotion to be inflicted upon the damaged unit.
However, a disease CAN have no Communicability, in which case its been transferred to the victim most likely as a result of being attacked by a unit with an AfflictOnAttack ability designating that Affliction to be afflicted automatically upon injury, like a poison. OR it has been handed to the victim unit by the Generic Disease property mechanism where the unit's generic disease level has exceeded the iMinimum threshold established and the unit qualified to receive the disease according to all the filters setup there.
Sometimes it is appropriate for a disease to include an AfflictOnAttackChange tag to represent it passing from one form to another. For example: Rabies. Rabies would be a Disease Affliction promotion that only non-Human Mammals can possess (feel free to get more specific in defining this beyond this basic example.) It can pass between animals from one to another via proximity (more on proximity below.) But the definition of the Affliction Promotion that represents animal based Rabies would include an AfflictOnAttackChange of something like PROMOTION_HUMAN_RABIES which means if such a diseased animal attacks and injures a human unit, the disease passes to the human unit as a poison would - now the human unit has its own form of Rabies. And perhaps that form of disease has no iCommunicability, indicating it will not pass beyond that unit via combat, proximity or any other means as it would also NOT include any AfflictOnAttackChange designations.
Note: how such animals would initially contract such a disease is still going to involve further programming at the moment...
Proximity
It is also possible for a unit to contract a disease by proximity to other units, including neutral, hidden enemy units, and friendly units alike that exist on the same plot. Every turn, each unit in proximity to another unit with an affliction that bears a Communicability value, checks to see if it has contracted that disease much the same as if it had entered combat with such a diseased unit.
There are two tags that can deny these forms of contraction in a given disease too. Obviously, some diseases should be able to pass between units in proximity while not being able to pass during combat and others able to pass between units in battle while not being able to pass as a result of proximity. So the following tags allow us to establish these limitations:
bNoSpreadonBattle
bNoSpreadUnitProximity
I believe these are fairly self explanatory.
Resistance and Recovery
Then I realized that it could be a neat ability to allow our units to develop a general hardiness and resistance to diseases and that tag could directly counter the chance to pick up a disease whenever it needed to make such a check.
This tag became:
iFortitude (on units as a base ability definition) and
iFortitudeChange (on promos for the intention of developing a promotion line or two that would help a unit develop its Fortitude value and thus resistance to disease.)
Then I realized that the general hardiness of Fortitude could be useful in helping a unit overcome any given Affliction, be it Disease or Poison and would make Fortitude more desirable despite the fact that it would add little to the unit in terms of combat value.
So when designing recovery on Afflictions, I established that every turn, a unit should check to see if it had recovered from the Affliction. But the ability for a unit to overcome an affliction should not be based on the affliction's Communicability for a few reasons. Poison didn't have a Communicability definition and the ability for one to overcome a disease really had little to do with how easily they could catch it.
So I needed a new tag for all affliction definitions:
iOvercomeProbability (to go on any affliction promotion representing the affliction's difficulty to overcome. Higher is weaker as this % is the base percent chance of successfully overcoming the affliction every turn.) Note, a unit that acts in a turn does not have an opportunity to overcome an affliction so if you have an afflicted unit its best to let it rest so it can recover.
The chance, then, for overcoming an Affliction is the Affliction's Overcome Probability plus the unit's total Fortitude.
But usually, a sickness or poison is either made easier to overcome with time, or for particularly dangerous diseases and poisons, made more difficult to overcome with time. So that factor needed to be expressed.
iOvercomeAdjperTurn embodies this. The # you inject here, be it positive or negative, will add or subtract to the chance to overcome the Affliction (for the given afflicted unit) cumulatively for each turn the affliction has been possessed.
REMEMBER that positive means more likely to overcome! That might be a bit counter-intuitive at times.
Note: For now, putting this value on a poison will cause a unit that's been struck again and re-poisoned to re-set this value back to 0, starting the count over. Most poisons should be easier to overcome over time and this will be one benefit of attacking a poisoned unit repeatedly with the same poisoning unit, continuously refreshing the poison in the victim's system. A pending change may cause this to be rethought a bit though.
Assistance in Recovery
Then I got to thinking about how healer units could help other units overcome their afflictions. I figured they'd have two ways to go about this that would help us to flesh out healer unit promotion lines in an amazing display of variety, unlike anything we see on those simplistic units today.
The first method they could use would be to assist units to health with generic medicinal practices. This REACTIVE medicine would be embodied by a new ability that operated much like a parallel of -Generic Disease influence and Healing but where -Generic Disease influence would be proactive efforts to keep disease at bay among the populace of the local region, and Healing would represent first aid efforts to keep soldiers alive and recovering after all kinds of combat wounds, this tag would represent herbal cures and medicinally targeted treatments to all known Afflictions.
I call this generic ability to help local units to recover from afflictions:
iAid (as the base ability on a unit) and iAidChange (for a promotion to add or subtract the value of this ability on a unit that possesses the promo.)
Aid only helps local units and works much like healing in that only the strongest Aid value that exists among units in the stack will be counted.
So now we have Aid helping a unit to recover from diseases and poisons, adding its value in direct support of units in the same stack on their Overcome Checks. Therefore, to overcome a disease or poison, a unit gets a random result from 1-100 every turn it hasn't moved and if that number comes up underneath the iOvercome + totalFortitude + best local Aid value + total tallied up modifier of the # of turns the unit has had the affliction times the iOvercomeAdjperTurn value of the affliction, then the unit will overcome the affliction (meaning the negative promotion is removed.)
Additionally, I figured certain buildings would assist in recovery if a unit were in a city, like Hospitals, Healer's Huts etc...
So cities themselves can offer a sum total of Aid that adds to any best Aid value on units present to further influence recovery.
Buildings thus have the tag:
iAidRate Just like with units, only the strongest iAidRate building in a given city will add its value to the plot Aid total.
Furthermore, Hydro suggested that we allow access to certain resources, natural or manufactured, like herbs or pharmaceuticals, to influence the city's Aid rate. So now we also have the tag:
BonusAidModifiers to indicate the adjustment to Aid that access to a given Resource provides. Use the tag to list the resource and the associated adjustment to the aid rate in the city. These are cumulative so make sure not to overdo it here.
Note that this too can be negative so some Resources could actually be programmed to impede general recovery (like perhaps Tobacco. I'd say Alcohol except that its long been useful as a crude medicine actually.) But keep in mind whenever you're making a general bonus or penalty to aid, its not to a specific affliction but to ALL afflictions and represents the general care available.
Again, the difference between Healing and Aid here is the difference between bandaging, stitching, prioritizing emergency surgeries on injured patients, first aid and such VS Aiding and abetting a patient in his recovery from a disease, poison, or long term critical injury such as broken bones, torn muscles - physical therapy efforts really. Basically short term treatment of minor cuts, bumps, bruises, gunshot wounds etc vs long term treatment where prognosis is highly variable.
As a result of cities being able to offer this extra Aid strength to its local units, it gives our armies a serious homefield advantage against poisonings, diseases and criticals (if you play with that option.)
Outright Curing
The second way a healer could interact with and assist other units in recovering would be to have an outright specialists level of skill in healing a specific form of Affliction. What I've done here hasn't been well tested so could be buggy but I'm really hoping it works as planned. I followed the tutorials to the letter on setting up a 'mission' definition here.
The tags:
CureAfflictionTypes (as a base definition for a unit) and
CureAfflictionChangeTypes (to give a unit the ability when the promotion with this tag is possessed)
allow us to define the specific afflictions a unit has the skill to cure outright as a turn based action. When a unit possesses any of these it should get a mission option for each Affliction it can cure where that Affliction is possessed by one or more units in the same plot the healer is on. Selecting this mission will heal one (the first listed in the stack) unit that has the indicated Affliction (without fail) and end the Healer's turn.
This is the fast way for us to heal our units of afflictions. A clever player who realizes the enemy he's planning to invade is beset by a particularly communicable disease might bring with him a healer or two specialized in the elimination of said disease so as to keep it under control when his own units begin to suffer the effects of contracting the disease from combat with the enemy.
On a design note, whenever we create an Affliction, we should also define how and when healer units could gain access to outright healing of that affliction in this manner. It could be given to a certain upgrade along the healer unit lines, and/or be included on a promotion that's only accessible to healers at the technology level necessary to represent when our technology gives us the power to directly heal such an affliction.
This, more than anything, is a design feature that will allow us to greatly diversify our healer units, both the upgrade chains and the specialized function of a given healer unit in play. It will pay to know thy enemy in what you are prepared to heal.
Technology
Now then, as medicine advances, anti-venom, inoculation and medical nano-tech technologies emerge offering direct resistances to particular diseases and poisons. Thus we have a few tags to represent resistances and immunities:
TechCommunicabilityModifiers
Goes on the specific Affliction promotion definition to represent how much more difficult (or more easy it has become in some rare cases) for an Affliction to spread among units that belong to a civilization that has discovered the specified tech(s). List the tech, then the modifier to the Communicability of the Affliction.
TechOvercomeModifiers
Goes on the specific Affliction promotion definition to represent how much easier (or difficult) it has become to overcome that Affliction by units belonging to a civilization that has discovered the specified tech.
List the tech, then the modifier to the Overcome rating of the Affliction.
AfflictionFortitudeModifiers (for units) and
AfflictionFortitudeChangeModifiers (for promotions to offer the modifier to the unit possessing the promotion)
Defines the resistances mentioned above. Some units themselves may have a specific base resistance or weakness to a particular affliction that would be represented by listing the affliction and the adjustment to the unit's fortitude vs that affliction under the AfflictionFortitudeModifiers tag. Some promotions can provide units with specific resistances against the scourges of their day, thus can utilize the AfflictionFortitudeChangeModifiers tag to reflect this.
IF, however, the promotion simply provides a general overall ability to resist and recover from any affliction, a straight modifier to the unit's Fortitude value is better used. If we find ourselves listing off too many specific AfflictionFortitudeModifiers, we should probably reconsider and go with an overall Fortitude modifier instead. This is intended to represent various inoculations as equipments (even modern soldiers undergo a number of inoculations as a part of their basic training requirements.) but I'm sure we'll find more uses as we go for these tags.
Combat Classes and SubCombat interactions
We also have, to represent various Unit Combat interactions such as weaknesses or resistances to a disease or poison as a particular species or the ability to avoid being infected as a result of being in an armored vehicle or even encased in heavy plate armor (remember how many layers of SubCombat definitions we can employ now!):
UnitCombatCommunicabilityModifiers
UnitCombatOvercomeModifiers
These modifiers go on the Affliction definitions themselves to allow us to influence the ability to pass between and be overcome by various unit combat types.
Generally its a good idea to zero out our base Communicability and Overcome values on the presumption that we are considering a Human on foot.
When Cultural UnitCombats get defined and a method developed to pass such cultural designations onto units, this could get even more interesting, indicating some cultures as more or less vulnerable to various diseases (lots of research to draw on here.)
The Aftermath
Now when a Disease or Poison is overcome, often the Previously Afflicted will have been left with a newfound tolerance to that specific Affliction. When a Critical is suffered, it might be all the harder to overcome it the next time (my thrown out shoulder that I fully threw out three more times over the next five years and would repeatedly fall out of socket at the slightest tug until it had proper time to heal long term was a good example.)
These effects are embodied by the following tags that go on the Affliction Promotion definition:
iToleranceBuildup
The amount of additional Fortitude that the unit gains (or if negative, loses) against this specific form of Affliction when this Affliction has been overcome.
and:
bToleranceDiminishes
If set to true (or '1') it means the tolerance value attached to any given unit towards this particular affliction decreases (or increases if negative) by one every turn after the tolerance has been added (or subtracted) until it zeroes out.
Thus, if I overcome a Common Cold, I gain the Tolerance indicated in the Common Cold's Affliction Promo definition and that makes it that much less likely that I will catch it again and that much more likely that if I do I'll overcome it. But I'm only protected for a time and after a while that effect will diminish, thus the Common Cold would have bToleranceDiminishes set to 1 to allow this degradation of my Tolerance until I have lost all tolerance whatsoever.
If Tolerance is earned towards a particular affliction more than once it should stack.
That's enough for now to open discussions. Feedback, requests for tweaks, optionalization lines, clarifications, please let me know what you think so far and if you're confused by anything or have any curiosities for me to clear up.
I'm reserving the next few for further information on this system and to help summarize these tags for quick reference during any design process.