Explorable Lairs and other changes I'm trying

Aww, you could tie stats to each of the parts of the name too so that the critter has unique abilities and strengths! (Diablo Weapons anyone?)...

Possible! I am currently adding a check if the unit has "enraged", "crazed", "demon" etc. so that the generator adds more options to the list for those guys. (The explorable lairs have a result where unit is Possessed, so the unit would give itself a nice demonic name) I've not currently set that to obliterate the default/civ name parts though. It could be done, but I want to test it out. Might be nice to have Amurite/Demonic mix, for example.

(Also I need to amend the basic function so that it can work on a city or whatever, instead of just units, I say only to remind myself)

But certainly you could have forced suffixes for certain abilities. So if the unit has "Fire" promotion the "words" section (which I will re-write and make better use of later) could be set to "burning","charred","toasty" etc. and the schemas set to those which use these epithets. "Rhohiska Burningskull" or "Frostblade Diggins" or "Gongrodd Valorius"...

Variants based on promotions would be a nice option anyway. Perhaps units which already have names (heroes) could rename themselves under certain conditions, adding an epithet to their name!
 
I mean do it the other way around.

Code:
	lWords1=["Great", "Mighty", "Strong"]
	lPromo1=['PROMOTION_COMBAT5', 'PROMOTION_HEROIC_STRENGTH', 'PROMOTION_CITY_RAIDER']
	lWords2=["heart", "blood", "blade", "hand"]
	lPromo2=['PROMOTION_MARKSMAN', 'PROMOTION_CANNIBAL', PROMOTION_ENCHANTED_BLADE', 'PROMOTION_HIDDEN']

Then store the Random Numbers as Variables for re-use (can just keep using the same variable over), and along with the random name, you get random promotions, which fit the name!
 
I mean do it the other way around.

Code:
	lWords1=["Great", "Mighty", "Strong"]
	lPromo1=['PROMOTION_COMBAT5', 'PROMOTION_HEROIC_STRENGTH', 'PROMOTION_CITY_RAIDER']
	lWords2=["heart", "blood", "blade", "hand"]
	lPromo2=['PROMOTION_MARKSMAN', 'PROMOTION_CANNIBAL', PROMOTION_ENCHANTED_BLADE', 'PROMOTION_HIDDEN']

Then store the Random Numbers as Variables for re-use (can just keep using the same variable over), and along with the random name, you get random promotions, which fit the name!

Sure, that's do-able. But it is not what I wanted this for - you of course can modify and use how you want, really I just wanted random name generation not random promotion granting. I'd rather randomly promote seperately if I wanted random powered-up units; perhaps a copy of this script for that purpose which only contains the epithet parts of the name, not the syllables.
 
Aww, you could tie stats to each of the parts of the name too so that the critter has unique abilities and strengths! (Diablo Weapons anyone?)...

Diablo Champion monsters perhaps...?

Single-unit art (ala Hero-promotion) + handful of random promotions + potential low-level items + a suitable name = random barbarian characters?

After all - even Orthus gets lonely sometimes...


Gofbad the Blade - Orc Warrior, Combat 1, Combat 2, Enchanted Blade - Combat 1 + 2 generated randomly (upto Combat 3), Enchanted Blade from "the Blade" epithet
Snicker Sandborn - Goblin Warrior, Combat 1, Cover 1, Nomad - Again Combat 1 and Cover 1 are granted randomly, Nomad is granted by the epithet
Korgan Dorstamp - Ogre, Combat 1, Combat 2, Shock 1 - All promotions generated randomly, no special epithet

etc...
 
UPDATE:

replaced the schema-picker and name assembler. I now have schemas for name which are a string.

Code:
	lSchema=["PME","PMESPME","PESPE","PE","PMME","PMDME","PMAME","KPMESUM"]
The schemas can be added to on a civ-by-civ basis just like the syllables.
The letters refer to single actions. The script reads letter-by-letter from chosen schema and performs the appropriate action, adding the results to the name.
P: "Pre" part.
M: "Mid" part.
E: "End" part.
D: a dash -
A: an apostrophe '
S: a space (trust me, I typed one as an example there!)
K: Keep. Allows one syllable to be stored and used again within the same name.
U: Use the stored syllable.
C: Capitalise the first letter of the next syllable or word picked. (At the moment, all Pre-parts are capitalised anyway)

So, if you want a two part name "Bob Bobson" you could do "KPESUME" which would keep whichever Pre part is generated, make a 2-part first name and a 3-part surname using the same first syllable as the first name.
"CME" would just use the mid and end parts from the tables, but would capitalise the first.


Soon I will add " the " and " of ", probably T and O. Then we can have "Rhussan of Flah" and "Bilgo the Ashpawl" and things. At that time I will rework the words/epithets and put those in too. Gives us "Yussun the Red" and "Quickblade Hanzo" and "Obvoskull Shadowlang" and things.

I may also include a way to put an actual word in to the schema (like, anything between colons is just added neat to the result) Then you coult have ":Tor:SPMME" and get "Tor Findanogle", for those Tor related place names! If I do this, I may not need "the" and "of" as keys. We shall see...



Code:
	sSchema = lSchema[CyGame().getSorenRandNum(len(lSchema), "Name Gen")-1]
	sFull = ""
	sKeep = ""
	iUpper = 0
	iKeep = 0

	for iCount in range (0,len(sSchema)):
		iDone = 0
		sAction = sSchema[iCount]
		if sAction == "P":
			sAdd = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
			iDone = 1
		if sAction == "M":
			sAdd = lMid[CyGame().getSorenRandNum(len(lMid), "Name Gen")-1]	
			iDone = 1	
		if sAction == "E":
			sAdd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
			iDone = 1
		if sAction == "S":
			sAdd =  " "
			iDone = 1
		if sAction == "D":
			sAdd =  "-"
			iDone = 1
		if sAction == "A":
			sAdd = "'" 
			iDone = 1
		if sAction == "K":
			iKeep = 1
		if sAction == "C":
			iUpper = 1
		if sAction == "U":
			sAdd = sKeep
			iDone = 1
		# capitalizes phrase. Stops doing this after a new phrase is generated.	
		if iUpper == 1:
			sAdd.Capitalize()
			iUpper = iUpper - iDone
		# stores the next phrase generated.	
		if iKeep == 1:
			sKeep = sAdd
			iKeep = iKeep - iDone
		# only adds the phrase if a new bit was actally created.
		if iDone == 1:
			sFull = sFull + sAdd
 
Diablo Champion monsters perhaps...?

Single-unit art (ala Hero-promotion) + handful of random promotions + potential low-level items + a suitable name = random barbarian characters?

After all - even Orthus gets lonely sometimes...


Gofbad the Blade - Orc Warrior, Combat 1, Combat 2, Enchanted Blade - Combat 1 + 2 generated randomly (upto Combat 3), Enchanted Blade from "the Blade" epithet
Snicker Sandborn - Goblin Warrior, Combat 1, Cover 1, Nomad - Again Combat 1 and Cover 1 are granted randomly, Nomad is granted by the epithet
Korgan Dorstamp - Ogre, Combat 1, Combat 2, Shock 1 - All promotions generated randomly, no special epithet

etc...

Yep, with a coherent "Major Villain Generator" linked to the name/epithet system you have a lot of variety for interesting monsters!
 
OK I have had the "temporarily non-updating unit following the gain of adventurer promo" problem.
Shortly after this, I noticed the city build screen had gone away. When I finish a build I can select a new one from the list, but if I go into the city, the list is not there.

I do not currently know why.

I won't post an update until I either get to the bottom of it, or give up and post the modmod to see if anyone else can spot the problem.
 
Damnit, this happened with the main mod for a little while and I can't remember precisely why or in which version! I do remember that it came down to being a typo... I think it was when JADE_TORC was spelled JADE_TROC in the Hero adventure event...


If it triggers specifically when you upgrade to the Adventurer, look closely at the promotions you are granting to ensure that they all exist. Hopefully it is that easy.
 
Damnit, this happened with the main mod for a little while and I can't remember precisely why or in which version! I do remember that it came down to being a typo... I think it was when JADE_TORC was spelled JADE_TROC in the Hero adventure event...


If it triggers specifically when you upgrade to the Adventurer, look closely at the promotions you are granting to ensure that they all exist. Hopefully it is that easy.

I think I have found it. (testing)
In the promotions xml, I had <!--commented->> out some lines relating to other mods. Seems you can't comment out within an <info> block. Sort of works, but not quite.

Just ironing out a few other little problems. Like, why doesn't the dungeon collapse when I set it to 100, if an item was granted? Might be related, because items go into promotions or unit, I'll check my xml for comments.
 
I think that explorable lairs is an excellent idea.
 
http://www.marnok.com/Civ4/MarnokModMod.rar

The Svartalfar offended a tribal village on your border, stirring up orcs who have pillaged your pastures...
Orthus has held off your army at his city of Brakkah...
Konal clan Karschkin, the dread Wraith, is terrorising Torrolerial...
and Vallus has fallen to a pack of Werewolves.
You never needed a hero so badly.

NEWEST VERSION and new download link.

Names are in
naming system seems pretty much operational. Sometimes serious (named) villains will spawn. Units should get names when they become adventurers.
Goody Huts are Out
now changed to Tribal Villages. They won't pop when you step on them, and they won't give out free techs like candy. You can pay 5 gold as a gift to the village elders to see if they can help you (with free units, or healing, or maps...), or attack the village for gold (but be warned, they will fight back.) If they are within your borders, you can get them to join your civ. (At the moment they become a mine or a town, but this will be expanded in later releases -a chance they will rebel, or reveal a skill at handling horses, or whatever...)
Barbarian Allies should be more balanced
Barballies may now convert lairs within their cultural borders, just as everyone can with villages.
Monsters can occupy lairs
Not a huge change, but if a monster is guarding a lair-type (tribal village, ruins, etc), there is a chance it will spawn a monster similar to itself - or a major villain type! Better make sure those tribal villages are protected.
Monsters can build lairs
... if it's working :) Monsters can gain a lair-building promotion if they are guarding a lair, when they move far enough away they can settle a new lair.
Probably better balanced
Not quite so many of each type of lair, lairs produce monsters at what I think is a reasonable rate. There is always a chance of a horribly unbalanced super-villain appearing, but that's what makes it fun. (the amount of fun is subject to balancing, if these villains turn out to be taking over the game)
Other Stuff
Lich might build a tower, Giant castles seem to be working.




To Do (once balancing is settled on this version, and any problems iron out):
Special global messages relating to named characters (much as we have with heroes and Orthus, when they are created and when they die.
More negotiation options with Tribal Villages.
Change events : the "adventure" event should go, events relating to new lairs should be in.
Some focus on Animals may be in order.
A few new unique lairs (Maybe Orthius should be able to make a tower!)
Idea: Rumour system.
Pregenerate a "good" result for a lair. Store this good result, then whenever a unit gets a good result on a lair exploration, give the "rumoured" result. Example, a rumour event is generated for a Ruins. The message pops up, highlights the ruins, and says "A node of Death Mana is rumoured to lie beneath this lair." When a player sends a unit to explore and lair, and scores a good result, the result table first checks if there is an active rumour for that tile and if there is, supplies that good result and ignores the die roll. (I have no idea if this will work well yet, it is just a thought)

As always, I am looking for feedback on balance, ideas for changes, whether certain options are too powerful or too frequent, anything... also of course, any problems (bugs/oddities). I am finding this fun to play though, in my many tests... the little story at the top there is based on the actual situation just before I seriously messed up the empire (I have to play badly to test the results... yeah, that's it.)
 
updated again for small bugfix.

To try this version out, just backup the ffh files found in this rar, then copy my versions in.

If people test this version and find it is OK, the next thing I will do is tidy up /simplify some of the python and make this a proper modmod.
 
Hi

Really like the direction you are thinking, so much so it got my little mind ticking over :crazyeye:

How about adventurers having a chance of finding 'unknown' items: A gem, scroll, potion etc... They would have to embark on a quest to discover it's true worth/attributes. The quest could take them to any point on the map - a mana node, ruins, any city/town etc...

If the unit needed to enter hostile territory they could 'buy' safe passage based on the attitude of the Civ. Could have a chance of wearing off resulting in expulsion, a ransom demand, the unit being lost or war

Sadly I can come up with untold ideas and backstories but are of no practical help whatsoever

Cheers
 
Revealing the power of an unknown item sounds interesting. I'll think about it. I had in mind a sort of quest where you had to find an item and take it to a place to either avoid a disaster or gain a reward, so that would fit in there.

***

My current changes:
I played a couple of games and found I was getting Balors and things too early, interesting but deadly. So, I am scaling Big Monster spawns from lairs. Each monster will have a good chance of birthing creatures weaker than it, of an appropriate type; a small chance of birthing creatures equal to itself; and a very small chance of birthing a Named creature of the next power level up.
At the moment, even an orc Warrior in a village has a chance to trigger the spawn of a Balor. In the new system, he would mostly have a chance to spawn other warriors, with a smaller chance of a named Ogre or something similar.
So, if a Fire Elemental spawns, he might spawn mist things, or a few other elementals, or rarely a named Azer.

Another change; I am adding a "Named" promotion. Any hero or hero-type will be Named, and certain powerful monsters will be too. This lets me make much simpler checks if I can Name a character with the random generator. The generator will now do the check if the unit has the Named promotion, and if so just return the current name.
"Named" does nothing except set the unit to 1 figure.
This means the promotion can be used not just to prevent an already named character being renamed, but can be used as a check for actions/events/quests/whatever. I had an idea that if a unit defeats another unit which was Named, they should gain some benefit. That way even if your hero is XP-capped for barbarians, if he beats Grr''bulb Bluemoon the Minotaur, he gets something out of it. I have to avoid this becoming a bit too Highlander though...
 
Incredible, I'm at loss of words.

I suggest renaming 'named' promotion into 'renown' or 'famed', just to add a bit more character.
 
I'll be ready with an update just as soon as I figure out how to deal with Dag-Olg, the killer polar bear...
 
Back
Top Bottom