The Outcast Sons of Pariah

I cannot hope to contribute to python but i will definitely contribute as many mutations as I can.

You might be able to pull it off without python.

Whenever you want to randomly assign a mutation give some promos (they can be invisible "effect" promos) that degrade to other promos and have a a random expiration chance. Whichever one degrades first gives it's mutation, and the mutation over-wrights/deletes the other promos. I think xienwolf added a tag recently to keep their degrades from triggering.

The negative Haunted Lands promos work in a similar fashion.
 
Thanks for the encouragement Tarquelne! Could you provide an example in layman's terms please because I have (no offense intended at all!!!) no idea what that means. I am a complete noob to this, I just want to try to do my best to contribute something beyond random ideas.
 
Could you provide an example

Ok. But first:

1) The Haunted Lands promos now do use python set to trigger when a promotion is removed. I was thinking of an older, and less satisfactory, implementation. XML-only might still work OK for your mutations, and might be compatible with modular loading. Though python would be more straightforward, flexible, and powerful. You could look at "HauntedLandsEffects" in SpellInterface to see how to set up some promotion-selecting python. (The last block is where promotions are being randomly assigned.)

I would recommend python for this unless you want to shoot for making your civ a module. This python should be simple enough even I could help you set it up. (I generally crib from already-existing functions - that'd work here.)

2) I was wrong about there being a "safe removal" XML tag - it's for python.

3) This method will generally have at least a few turns passing between a unit's creation and the mutations appearing.

Anyway, the example:
Using just two promotion lines - Tentacles and Behemoth Size.

Two "base" promotions. (One for each lineage.) These are used to determine which mutation line the unit will actually follow. The significant new-to-FF tags used are "effect," "auto acquired," "no xp", "overwrites", and "excludes".

"effect" means that they won't be seen by the player. They player doesn't need to see them - they'd just clutter things up.

"auto acquired" - units get the promotions automatically when the prereqs are met. Prereq could just be your civ. But you could also have unit age, level, or class. (Or all of the above.)
"no xp" - experience point aren't required to get the promotions.

Contrary to what I wrote in the previous message I think "promotion random apply" with "promotion random apply chance" would work better than "degrades to". "Promotion random apply" is used with Enraged. You'd add a promotion if the random chance is met.

The promotions generated by "promotion random apply" would have:
"overwrites" and "excludes" - these would be used to get rid of the other, now unneeded, effect promos.

So:

"Effect Tentacles" can randomly give "Tentacles 1". Tentacles 1 would overwrite "Effect Behemoth" and "Effect Tentacles." "Effect Behemoth" can randomly give "Huge." Huge would overwrite "Effect Tentacles" and "Effect Behemoth."

So you'd have a unit get a couple of unseen promotions when the conditions you set come to pass. ("Has been in combat" could be a condition.) Some turns go by and suddenly the unit has the first promo in one of the lineages.
 
Oooh I see. So effect promotions are used to grant other promotions (usually sharing the same name from the look of it.) So if I wanted mutant units to be able to try to get more mutations by chilling on a Chaos node, that would start with an effect promotion?
 
Effect Promotions are just used for things you don't want the player to actually see. Since nobody is overly cruel, that typically means "Management issues" like placeholders to run a timer before you apply a promotion or some other such silliness (I think either Frostlings or Sandlions still have one which keeps their duration from ticking down while they are on their native terrain for starters, and also if you want to change a unit's name or artstyle, but not affect the stats, the player doesn't really NEED to know that you used a promotion to accomplish the task)
 
a nice orginal idea - well done. On a side note, units starting with HN are problematic as open border agreements and a powerfall ally can quickly decimate your new arrivals - maybe having HN as a free upgrade would be a better idea so they can "change" out in the wild somewhere safer....
 
So effect promotions are used to grant other promotions (usually sharing the same name from the look of it.)

It's as xienwolf said. It just happens that effect promotions are often used to set up other promotions.

So if I wanted mutant units to be able to try to get more mutations by chilling on a Chaos node, that would start with an effect promotion?

You could have a promotion granted whenever a unit is on a Chaos node - "auto acquire," "noxp," "must maintain", and "prereq Improvement". The Improvement being the Chaos node. "Must maintain" means the promotion is removed when the prereq isn't met. If you use the "effect" tag it'd be invisible to the player. You'd also need at least one other prereq to keep every unit in the game on a Chaos node from mutating like your units.

That promotion could either use per-turn python to see about giving more mutations, or something like the multiple promotion system described in the previous post.
 
oh okay. So effect promotions are always present, just in the background? As Tarquelne mentioned, Enraged is the product of an effect promotion which? So basically what he was saying was:

Okay. Hmm. Let me see if I have this right then.


You guys have convinced me that with a little work I can make this more interesting than simply age related upgrades.

I am going to make a promotion called Protean which would in turn give a small chance after winning a combat for 10 turns of granting the next level of a lineage say from Behemoth 1 to Behemoth 2. I can do most of this in XML?



Or would it be simpler for python using something like the Doviello scavenger mechanic?

Code:
<PythonPostCombatWon>postCombatProtean(pCaster, pOpponent)</PythonPostCombatWon>

Would I need a separate effect promotion to give a chance of granting Behemoth 3?

Thanks for all the information guys!

EDIT: wait wait now I see what Tarquelne was talking about, Protean would actually only be one of several effect promos, I see now. Thats clever. Thank you for the idea!
 
It's as xienwolf said. It just happens that effect promotions are often used to set up other promotions.



You could have a promotion granted whenever a unit is on a Chaos node - "auto acquire," "noxp," "must maintain", and "prereq Improvement". The Improvement being the Chaos node. "Must maintain" means the promotion is removed when the prereq isn't met. If you use the "effect" tag it'd be invisible to the player. You'd also need at least one other prereq to keep every unit in the game on a Chaos node from mutating like your units.

That promotion could either use per-turn python to see about giving more mutations, or something like the multiple promotion system described in the previous post.

Oh okay, so i would not use an effect if I wanted to player to see that the mechanic is working. Kinda like Calcinating for Alcinus, better to see the icon than not. I would use a civprereq for the Chaos node chilling I think

Thank you again!
 
One place we put Effect Promotions to really good use is Loyalty spell. If a unit was enraged when you cast Loyalty, then it slams an EffectPromotion on him to mark the fact that he was enraged. As soon as he loses loyalty, the EffectPromotion will expire and re-apply enraged, sending him back on his wild rampage across the land. For the player, they just know "Loyalty means I can control him, losing it means I lose him again" And we can make the effect promotion also be removed after combat so that the "calming battle" can happen while he is under your control (can't remember if we did set it up that way...)



For your idea of having a small chance to enhance your mutation for 10 turns after a fight, I see it working easiest like this:

1. You have an effect promotion which runs a PythonPerTurn function that checks for a random chance to promote to the next Mutation level. If the python is written in a clever way, you can handle all mutation strains in a single function (link the python to the Promotion's <PromotionNextLevel> field to choose what to upgrade them to)

2. The effect promotion also has a 10 turn duration

3. Use PythonPostCombatWon (based from the Racial Promotion to allow this ability to the entire civilization, or UnitInfos if it only works for a few specific Unique Units) so that at the end of a battle we remove the effect Promotion and re-apply it (to reset the 10 turn counter back to full 10)



This way, with just 2 python functions and a single effect promotion you can run all of your mutation lines to have a certain chance to upgrade per turn for 10 turns after a unit battles something.


For the Chaos Node continually re-mutating a unit, you could use PrereqCivilization & PrereqImprovement to apply an EffectPromotion while the unit is on the Chaos Node which runs a PythonPerTurn that removes Mutated and then applies it. You could also cheat and avoid using Python at all by instead having 2 Effect Promotion which are autoacquired on the same Prereqs, the first one listed in the XML overwrites Mutated & the second promotion and degrades to Mutated, and the second one overwrites the first. Since AutoAcquire happens in the order listed in the XML, this means that we will first slap a promotion on the unit which removes Mutated, then we'll pluck that promotion right back off the unit, causing it to GAIN Mutated. Then on the next turn, Mutated is removed again, as well as the other promotion, and then the other promotion is reapplied and thus so is Mutated. Of course, this would also trigger if the unit just walked back and forth onto and off of the Node. To avoid allowing that (if you don't want it) instead of the first promotion overwriting the second, you just give the second one a 1 turn duration, which means it isn't removed (and thus a second mutation allowed) until the next turn.
 
One thing I think is that maybe at first as a pillaging nation their mutations might be somewhat random and limited to a single lineage, but as they grow as a nation and explore their mutations more fully, you might be able to get units that can mutate in more controlled ways - allowing you to assign new lineages and maybe even get units going with two or three different mutations. (possibly using some sort of parasite unit or something along those lines that sacrifices itself to add the beginning of a lineage, which then grows over time). As to culture for some reason I like the idea of a fairly serious separation between the bandits and the civ, where there is that sort of split. Like you said in the beginning - the bandits guard the farmers and in exchange the farmers provide for the bandits, so something feudal for later development might be a good idea, since that's where a system like that would seem most likely to head.
 
Xienwolf,

Thanks for the explanation. I may look into the python once I have actually posted the lineages and written the xml for them etc.

One thing I think is that maybe at first as a pillaging nation their mutations might be somewhat random and limited to a single lineage, but as they grow as a nation and explore their mutations more fully, you might be able to get units that can mutate in more controlled ways - allowing you to assign new lineages and maybe even get units going with two or three different mutations. (possibly using some sort of parasite unit or something along those lines that sacrifices itself to add the beginning of a lineage, which then grows over time). As to culture for some reason I like the idea of a fairly serious separation between the bandits and the civ, where there is that sort of split. Like you said in the beginning - the bandits guard the farmers and in exchange the farmers provide for the bandits, so something feudal for later development might be a good idea, since that's where a system like that would seem most likely to head.

I am going to have the civ evolve as the techs roll in, beyond just building better units (of course) it will also start to change the look/feel/strategy of the civ (though this will probably happen last). At first the civ will be limited. In fact I may even try to have two paths for each unit to upgrade to. Warriors (bandits) will have a choice of upgrading into axemen (brigands). You hit it right on the head, I want the techs to reflect the society shifting from being barbaric and ghetto to something approaching a more mainstream group. Probably their buildings will be limited in the beginning. Not sure about that yet. Later I will include actual units like crossbow mercs, archer garrisons (longbowmen), some sort of chaos knight. Working on this has increased my respect for ANYONE who has contributed to civ just because of all the work and thought involved. This sure is a project.

Once I get my hands on my friends Realm of Chaos books i will be able to start "rustling".
 
How would I make a unit inflict the Poisoned promotion via a ranged attack? I think this may be a python affair?
 
I think that the poisoned promotion is (well, has a chance to be) given out in the SDK whenever poison damage is dealt. Unfortunately, ranged combat strength cannot yet be given with different damage types (unless Xienwolf changed this very recently). I don't think that the normal python calls run after ranged combat either, although they do run for nukes.

In short, I don't think you can make it pass on poisoned, at least not without SDK changes.
 
I think that the poisoned promotion is (well, has a chance to be) given out in the SDK whenever poison damage is dealt. Unfortunately, ranged combat strength cannot yet be given with different damage types (unless Xienwolf changed this very recently). I don't think that the normal python calls run after ranged combat either, although they do run for nukes.

In short, I don't think you can make it pass on poisoned, at least not without SDK changes.

Don't Blackblood arrows pass their promotion with ranged attacks?

I'm pretty sure I saw that option somewhere.
 
Yeah yer right, didn't realize that was one of the shot types Valkrionn may be including. Thanks for the heads awp!
 
Blackblood Arrows is Tarq's work. :lol: I just made a version for catapults as well as archers.

Any chance you could show me how you guys did it? :confused:
 
Back
Top Bottom