View Full Version : D'Tesh and Fort Commanders
Moosh Aug 14, 2009, 01:55 AM So I went through the original Legion of D'Tesh thread, didn't see anything and I wasn't sure if I should post there since, well, the last date on the thread was back in May. I'm posting here since I'm playing a FF+ mod and figured perhaps this might be the right location. Basically the gist of it is, I'm play a game with D'Tesh and I realize how important my Obsidian Spire is so I built a circle of forts around it. Problem is that the fort commander is a living breathing human! Also the civilopedia for the Legion of D'Tesh is broken and only displaying TXT_KEY_CIV_DTESH_PEDIA. Don't usually post much on the civilization fanatics boards so I don't really know the proper edict for posting bugs and such so if I need to post this elsewhere just let me know!
Thanks,
-Moosh
Valkrionn Aug 14, 2009, 03:03 AM That's not good... Did he have the undead promotion at least? If it's just the graphic, I can fix that quite easily.
As for their pedia being broken... Mailbox never actually wrote it, so it's just a blank txtkey.
Moosh Aug 14, 2009, 04:43 AM No he doesn't even have the promotion. As far as the blank text file goes, I kinda figured it was never written, I wanted a little lore flavor so I went looking, hence finding the original thread, but no luck. :(
-Moosh
Brokenbone Aug 14, 2009, 08:41 AM I wonder whether D'Tesh fort commanders would act like most other races' commanders, in terms of free XP and their main tactic being bombarding nearby squares. Mightn't they be like most other "wretched" no XP troops with a huge reliance on death mana? How would their ranged attacks be envisioned, are they "straight" irresistible damage types like a catapult or other siege engine, or are they "deathy" like a Mary Morbus power, or Scion Necromancer Balefire, or something else scary to most races, but less so to other undead etc.?
Valkrionn Aug 14, 2009, 03:45 PM Well, they have to get free xp in some way for the fort's culture to expand....
Maybe make it require sacrificing a unit? The amount of xp could depend on the tier of the unit... 1 for a warrior, 2 for an axeman, so on.
I could see them having a Death spell that does direct damage, rather than a ranged attack...
I already have to make a UU for them apparently, for them to get the Undead promotion, so might as well go all the way. :lol:
odalrick Aug 14, 2009, 03:50 PM Maybe an arcane unit instead of siege. Takes care of most things, free xp, ranged damage...
Valkrionn Aug 14, 2009, 04:03 PM The problem with that is I don't want it to be able to cast any spell. :lol:
I could make it arcane, but block access to the spell spheres...
odalrick Aug 14, 2009, 04:28 PM The problem with that is I don't want it to be able to cast any spell. :lol:
I could make it arcane, but block access to the spell spheres...
Then why make them arcane?
My thought was that they would cast spells instead of ranged damage, Spectres and... Well, spectres mostly.
Valkrionn Aug 14, 2009, 04:44 PM D'teshi Commander
Stats
2 :strength:
1 death :strength:
1 death affinity
0 range
0 Air :strength:
No Free Experience
Does not gain experience from combat
Spells
Gift Essence
Allows you to sacrifice a unit to grant the Commander a set amount of xp, equal to the unit's level. This is the ONLY way a Commander can gain xp.
Only castable by units on the same tile as a D'teshi Commander.
Flay Flesh
AoE Death damage spell.
Does 15% damage.
NO damage limit. It will deal damage slightly slower than the normal commanders, but will eventually be able to outright kill the enemy.
This sounds strong, but remember, units killed in this manner cannot become slaves... Which the D'tesh need for pop growth.
MrUnderhill Aug 14, 2009, 06:45 PM Looks good, but if you're adding another Fort Commander UU, you might want to de-hardcode the claim fort spell. I looked at it while I was trying to add Tower Mages to the Amurites, and right now it seems to only give UU's to the Jotnar and the Khazad, rather than to all civs.
Here's my fix, mostly borrowed from the Recruit Mercenary spell:
def spellClaimFort(caster):
pPlayer = gc.getPlayer(caster.getOwner())
iUnit = gc.getInfoTypeForString('UNITCLASS_FORT_COMMANDER' )
infoCiv = gc.getCivilizationInfo(pPlayer.getCivilizationType ())
iUnit = infoCiv.getCivilizationUnits(iUnit)
newUnit = pPlayer.initUnit(iUnit, caster.getX(), caster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
Just make sure that the Jotnar and Khazad commanders are listed as UU's in the CivilizationInfos file, and this should work just like the old code.
Valkrionn Aug 14, 2009, 10:49 PM I knew that was possible, but hadn't checked for the code... Thank you! :goodjob:
Moosh Aug 15, 2009, 02:12 AM I'm sorry but when I read the spell's description all I could think of was Warcraft's Death Knights and their infamous spell "Death and Decay" but that may just be me, heh. I personally like what you came up with for the commander.
Edit: I have another question for you. When you are attacking another civilization and capture one of their workers instead of a slave it gives you an undead worker but you cannot add them to a city for a population point. Was this intended or a programming oversight?
-Moosh
Valkrionn Aug 15, 2009, 03:38 AM I'm sorry but when I read the spell's description all I could think of was Warcraft's Death Knights and their infamous spell "Death and Decay" but that may just be me, heh. I personally like what you came up with for the commander.
Edit: I have another question for you. When you are attacking another civilization and capture one of their workers instead of a slave it gives you an undead worker but you cannot add them to a city for a population point. Was this intended or a programming oversight?
-Moosh
To be honest, I was picturing more one of the warlock spells... Can't of the name sadly, as I generally played a pally or Mage.... Actually, if you go to the armory and look up Valkrionn or Lilpwner, on Daggerspine, you'd see my old characters. Once upon a time I had a full Judgement set... Damn expansions. Don't play the game anymore. :lol: And yes, the dwarf pally is indeed where I got the name Valkrionn. ;)
Anyway, workers... Not really either. When you capture a worker, it's not replaced with a UU. I could probably work something out though...
KillerClowns Aug 15, 2009, 10:28 AM To be honest, I was picturing more one of the warlock spells... Can't of the name sadly, as I generally played a pally or Mage.... Actually, if you go to the armory and look up Valkrionn or Lilpwner, on Daggerspine, you'd see my old characters. Once upon a time I had a full Judgement set... Damn expansions. Don't play the game anymore. :lol: And yes, the dwarf pally is indeed where I got the name Valkrionn. ;)
Anyway, workers... Not really either. When you capture a worker, it's not replaced with a UU. I could probably work something out though...
Convert worker spell, only castable by workers and other civs' worker UUs, requires player be Legion of D'tesh to cast. May cost gold and/or time, upgrades worker to the D'teshi worker UU. I think this can be done.
Valkrionn Aug 15, 2009, 04:58 PM I already do that for Malakim Bedouins. ;)
I'd rather allow captured workers access to the add to city spell... Less clicking for the player. Could always give them an effect promo, and then write a new req for the spell that checks for slave unitclass, or worker unitclass... If worker, check for promo. That way there is no conversion necessary, and doesn't allow D'teshi workers to add to pop.
Moosh Aug 15, 2009, 11:16 PM To be honest, I was picturing more one of the warlock spells... Can't of the name sadly, as I generally played a pally or Mage.... Actually, if you go to the armory and look up Valkrionn or Lilpwner, on Daggerspine, you'd see my old characters. Once upon a time I had a full Judgement set... Damn expansions. Don't play the game anymore. :lol: And yes, the dwarf pally is indeed where I got the name Valkrionn. ;)
Anyway, workers... Not really either. When you capture a worker, it's not replaced with a UU. I could probably work something out though...
You thinking of shadowbolt?
As an aside, I came across Foxford in my latest game. Thought it would be really interesting to run around with some Undead Werewolves. Ran into some interesting issues and I wasn't sure what was supposed to be the deal. I initially infected two units with my werewolf hunter, a Scorpion Clan Wolf Rider and a Lizardman.
The Scorpion Clan Wolf Rider is a mounted unit and had the promotions Crazed, Werewolf, and Wretched. Didn't get the undead, figured it made sense. The Lizardman is a recon unit and had Crazed, Werewolf, and Silence of Death. I believe he got the Silence of Death cause he's a recon unit and in my faction but he's not undead either, so should he get the Silence of Death? When I later upgraded the Lizardman to a Ranger he then took the Undead trait. My Scorpion Clan Wolf Rider died when you took on a Grigori stack when I declared war because he went crazed, my Lizardman is now an Undead Lizard Werewolf.
Just wanted to let you know, not sure what's intended and what's not, so feel free to tell me, heh.
-Moosh
Valkrionn Aug 16, 2009, 12:25 PM It's not intended, but not really an issue... An invisible, undead, lizardman, werewolf sounds rather interesting. :lol:
And yes, Shadowbolt is what I was thinking of. :lol:
Valkrionn Aug 18, 2009, 05:45 PM Just wanted to say that I started work on this...
What unitart should it use? Can't decide. :lol:
The unit stats are exactly as I outlined above... He also has a 15% chance to take slaves, like all D'tesh units.
Absorb Essence is available to any unit on the same tile as the commander, grants xp to the commander equal to the caster's level. Should probably rename it to Gift Essence, if just because of who has to cast it. :lol:
Flay Flesh, for now, is an AoE. So Death and Decay it is. :p Does 15% damage, to a limit of 100%.. can kill. Seems strong, but remember... The whole point of combat for the D'tesh is slave generation. Killing units in this way will NOT generate slaves.
Brokenbone Aug 19, 2009, 07:49 AM Sounds cool, the AoE, weaken invaders to the point when some of your troops can swoop in and get slaving! Don't wander too close to D'Tesh's perimeter, you'll end up part of their empire...
Valkrionn Aug 19, 2009, 10:48 AM I'm actually thinking of giving it a level requirement... So unless you sacrifice enough units (or a strong enough unit) to the Commander, he won't have the spell.
Valkrionn Aug 19, 2009, 12:48 PM The D'teshi Commander is done. It may have to be tweaked, of course, but that needs playtesting...
It DOES contain some python, but it does not reference anything in the module itself... All it does is allow Commanders to gain appropriate races, and allows the addition of new Commanders without hardcoding in the python. No commander modules should have python in the future, unless the Race code needs to change.
D'teshiCommander.zip (http://forums.civfanatics.com/attachment.php?attachmentid=225045&d=1250703333)
Adds the D'teshi Commander, a Fort Commander UU.
For full details, go to this post (http://forums.civfanatics.com/showpost.php?p=8363736&postcount=9).
Installation:
Quote:
Originally Posted by Installation Directions
To install, copy the 'Dteshi Commander Module' into your FFPlus/Assets/Modules/NormalModules directory.
Then, copy the CvSpellInterface.py file into your FFPlus/Assets/Python/entrypoints directory, and overwrite.
A copy of these instructions is included with the download.
D'teshi Commander
Stats
2 :strength:
1 death :strength:
1 death affinity
0 range
0 Air :strength:
No Free Experience
Does not gain experience from combat
Spells
Gift Essence
Allows you to sacrifice a unit to grant the Commander a set amount of xp, equal to the unit's level. This is the ONLY way a Commander can gain xp.
Only castable by units on the same tile as a D'teshi Commander.
Flay Flesh
AoE Death damage spell.
Does 15% damage.
NO damage limit. It will deal damage slightly slower than the normal commanders, but will eventually be able to outright kill the enemy.
This sounds strong, but remember, units killed in this manner cannot become slaves... Which the D'tesh need for pop growth.
Moosh Aug 20, 2009, 12:08 AM Just downloaded the new fort commanders for The Legion, gonna give it a test run.
-Moosh
Valkrionn Aug 20, 2009, 12:24 AM Ha. I JUST updated it. :lol: Fixed the way racial promotions were given out... Rather than checking the unit who claims the fort, it checks the civ. Prevents interesting things like Elven commanders thinking they're dwarven just because a Soldier of Kilmorph claimed the fort. :mischief:
Moosh Aug 20, 2009, 12:45 AM Well you might wanna check your script, cause right now you can't claim it at all. Doesn't give the option. Will install your newer update and test that to see if the problem basically fixed itself.
-Moosh
Valkrionn Aug 20, 2009, 12:56 AM What? The python req was not touched. All it checks is if the fort is unclaimed, and that it exists in either your own territory, unowned territory, or hostile territory.
Moosh Aug 20, 2009, 01:26 AM It works now, I can claim the forts just fine with the lastest update. I think when I tried to download all 4 of your optional updates it might have gotten screwed up that way. One thing I did notice when I sacrificed a level 1 warrior, it gave the commander 0.01 xp, so he was literally 0.01/2 xp. Gonna be a while before he gets upgrades that way. Flay Flesh works just fine. It doesn't show you the range it works in (no stripped yellow box) but I assume cause its an AoE its working in every box, though the plague spell with Mary gives you the yellow box to show how far her AoE goes. Pretty much all I noticed. Oh an um... isn't the "t" in D'Tesh supposed to be capitalized? =P
-Moosh
Valkrionn Aug 20, 2009, 01:50 AM Well, that's good to hear... I suppose it could have been an issue in the order you installed the Vitalize tweak and the Commander in. They both have to modify the same python file... The vitalize python is included with the commander module though, so the two are compatible so long as the Commander is installed last. Should mention that in the instructions... You DO need to install the Vitalize tweak first, in order to get the XML for it's companion spell.
I know what's causing the xp issue, easy fix to make in the morning. Forgot to account for the way the 'decimal' xp works... Need (level*100) rather than just level.
I don't think any purely XML AoE spells show the range. That takes python effects.
Technically yes... I tend to forget though. :lol:
Moosh Aug 20, 2009, 02:40 AM Well, that's good to hear... I suppose it could have been an issue in the order you installed the Vitalize tweak and the Commander in. They both have to modify the same python file... The vitalize python is included with the commander module though, so the two are compatible so long as the Commander is installed last. Should mention that in the instructions... You DO need to install the Vitalize tweak first, in order to get the XML for it's companion spell.
I know what's causing the xp issue, easy fix to make in the morning. Forgot to account for the way the 'decimal' xp works... Need (level*100) rather than just level.
I don't think any purely XML AoE spells show the range. That takes python effects.
Technically yes... I tend to forget though. :lol:
If I come across as nit-picking I apologize. I just happen to really like the way you have moded this particular mod and I just keep playing and posting stuff I noticed. I'll probably play a few other Civs once I actually finish a game with D'Tesh. Any suggestions?
-Moosh
Valkrionn Aug 20, 2009, 02:51 AM Not nitpicking at all, bug reports are always useful. :goodjob:
As for a civ after the D'tesh... We've completely changed the Malakim, Doviello, and Jotnar, added a tweaked version of Ahwaric's Mechanos, and added some very nice improvements to the Khazad.
To be perfectly honest, my favorite civ is the Khazad, under Veinhunter. I just love the Dwarven Forts, and all those wonderful hammers. :lol:
If you want to play a new civ though, I'd say Jotnar, Malakim, or Mechanos. Two of those aren't really new, but have had so much added to them they might as well be.
darkarrow56 Aug 29, 2009, 01:35 PM im just wondering but why not make the d'tesh come into the middle of the game when people have a chance to get a running start i think that would be better because as far as power lvl goes on them there quite powerful starting them like infernal or mercurians would be nice and you can make it go on the Armageddon counter at around 50 so they will be like an actual plague on erebus...just a suggestion since this is a d'tesh thread
Valkrionn Aug 30, 2009, 12:31 AM Mostly because I don't care for that mechanic too much. :lol: If necessary I can nerd their early game a bit, but I'm satisfied with them ATM. Also... They don't really have any ties to the AC. D'tesh doesn't want Armageddon any more than most people.
Ornedan Feb 01, 2010, 05:01 AM Note that the Field Fortification spell also needs changing, as in the current release, it spawned normal fort commanders for D'Tesh. Found a Dullahan from Bradeline's Well that was right next to my starting location (, whee) and noticed that while claimed forts do spawn the correct commander, the Field Fortification-spawned ones don't.
Fixed Python (probably, what's the difference between UNIT_FORT_COMMANDER and UNITCLASS_FORT_COMMANDER?):
def spellPioneer(caster):
pPlot = caster.plot()
iPlayer = caster.getOwner()
iPlayer2 = pPlot.getOwner()
iImprovement = pPlot.getImprovementType()
pPlayer = gc.getPlayer(iPlayer)
iUnit = gc.getInfoTypeForString('UNITCLASS_FORT_COMMANDER' )
infoCiv = gc.getCivilizationInfo(pPlayer.getCivilizationType ())
iUnit = infoCiv.getCivilizationUnits(iUnit)
newUnit = pPlayer.initUnit(iUnit, caster.getX(), caster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
if (pPlayer.getCivilizationType() != gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR') and pPlayer.getCivilizationType() != gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR') ):
pPlot.setFeatureType(FeatureTypes.NO_FEATURE, -1)
pPlot.clearCultureControl(iPlayer2, iImprovement, 1)
pPlot.setImprovementOwner(iPlayer)
pPlot.addCultureControl(iPlayer, iImprovement, 1)
Nadrak Feb 01, 2010, 06:18 AM that is known issue it can be worked around until fixed. Just disband the fort commander and claim the fort next turn again. This will spawn the proper fort commander.
Valkrionn Feb 01, 2010, 08:43 AM It's already been fixed in the unreleased version. ;)
Ornedan Feb 01, 2010, 01:12 PM that is known issue it can be worked around until fixed. Just disband the fort commander and claim the fort next turn again. This will spawn the proper fort commander.Or I could just fix it myself, removing the need for stupid workarounds. Oh, hey, I did and posted my fix, even.
It's already been fixed in the unreleased version. ;)Cheers :)
How far off was I from a fully correct fix (I hadn't looked at Civ coding before)?
Valkrionn Feb 01, 2010, 03:27 PM Cheers :)
How far off was I from a fully correct fix (I hadn't looked at Civ coding before)?
That would work, looks like you cloned the 'ClaimFort' code. Our version (rather, Odalrick's version) allows elves to preserve forest, allows lizards/clan to preserve jungle, etc, and rather than duplicating ClaimFort just calls that function so it runs.;)
def spellPioneer(caster):
pPlot = caster.plot()
iFeature = pPlot.getFeatureType()
iCivType = gc.getPlayer(caster.getOwner()).getCivilizationTyp e()
if iFeature in ( gc.getInfoTypeForString(forest) for forest in ('FEATURE_FOREST', 'FEATURE_FOREST_BURNT', 'FEATURE_FOREST_NEW', 'FEATURE_FOREST_ANCIENT', ) ):
if iCivType not in ( gc.getInfoTypeForString(elf) for elf in ('CIVILIZATION_LJOSALFAR', 'CIVILIZATION_SVARTALFAR', ) ):
pPlot.setFeatureType(FeatureTypes.NO_FEATURE, -1)
if iFeature in ( gc.getInfoTypeForString(jungle) for jungle in ('FEATURE_JUNGLE', ) ):
if iCivType not in ( gc.getInfoTypeForString(lizard) for lizard in ('CIVILIZATION_CUALLI', 'CIVILIZATION_MAZATL', 'CIVILIZATION_CLAN_OF_EMBERS', ) ):
pPlot.setFeatureType(FeatureTypes.NO_FEATURE, -1)
if reqClaimFort(caster):
spellClaimFort(caster)
|
|