Mimics Multiplayer Modmod

mimic

Magic Box
Joined
May 18, 2005
Messages
460
Location
United Kingdom
FfH2 Multiplayer Modmod [Vers 1.2 Out of beta! Yay:D]

This modmod "rebalances" FfH2 for a PvP experience, it makes using spells more tactical and adds more roleplaying options, also has many minor tweaks to improve MP games.

Major Features:

1. Create a Leader (CAL) this is basically a custom leader for every civilization that can choose two traits upon game startup and choose a starting alignment, this is especially good for RP games.

2. Casting time for spells, powerful spells take a certain amount of turn to cast (max 2 turns) spells that have this include Tsunami and Pillar of Fire etc (Maelstorm and fireball do not have a casting time)

3. Multiplayer Scenarios, I allowed certain scenarios to be played in multiplayer, although they need some fine tuning yet. (The Momus and The Splintered Court etc)

4. [OPTIONAL] Regicide, once you start a game you will spawn with your chosen leader as a unit, this includes CaL leaders who can be customized in many ways, the CaL kings abilities are based upon what traits you chose and what unit class it is. So for example if you chose the centaur king (unique king for kuriotates) and took Arcane as a trait the Centaur King would be able to use magic.

Regicide is out of date and doesnt include many of the latest features.

5. Modder resources for map making such as the sand worm
Also new lairs like Red Wyrm and Werewolf Lairs.
NOTE: These things can only be accessed through world builder.

Current bonuses gained from traits (all these are king only, they get the normal bonuses from traits also)
Spoiler :


Aggressive: Gives +1 attack and defence, gives +50% city attack and more exp from combat

Arcane: Can learn magic no matter what class it is

Charismatic: Can use Morale ability

Defender: Get +2 defence and +50% city defence

Philosophical: has a higher view range and can see invisible

Raider: can recruit mercenary and gets +1 first strike

I still need to do the other traits, ideas?


Regicide can only be used if you download the regicide version of the mod

List of changes:
  • Reduced techcost of certain techs to elimate stagnation that occurs in MP games.
  • Made Vampires build cost higher, they can now take death, mind and shadow but they require the mana and tech.
  • Made certain units never obsolete (moroi, bloodpet, goblin and soldier of kilmorph)
  • Reduced cost of Illian rituals Ascending and The Draw
  • Made Horse Archers able to upgrade to Immortal (at level 6)
  • Rangers can now upgrade into Immortal (at level 6)
  • Replaced Chalids +2 affinity to sun mana with +2 fire damage
  • Defensive trait now gives 25% str in borders (and 10% withdraw)
  • Made formation (40% vs mounted) easier to obtain.
  • Gave spiritual to both Einon and Ethne, removed tolererant from them and gave it to Cassiel
  • Added new building "Circle of Warding" (available at arcane lore) that gives +25% magic resistance to units in city, Arcane trait gives 100% production to building it.
  • There is a max limit of 6 on all priest units (unlimited disciples, still max 4 of high priests)
  • Dragons can now move over all terrain
  • Create a Leader implemented
  • Illians can now complete stir from slumber without having to kill another player
  • Host of the Einherjar starts with guardsmen promotion
  • Powerful spells now have a delay
  • Priests of Winter can now be rebuilt if killed (requires temple of the hand and priesthood)
  • Gold can now be traded at cartography
  • Gave +1 commerce on snow rivers
  • New building "Mushroom Cave" for Khazad that gives +2 food and +1 healthyness
  • Hidden is no longer removed by combat (it is still removed by casting)
  • Allowed certain scenrarios to be played in MP
  • Made more game options available
  • Sidar palace hides units in borders
  • Stoneskin ogres get stoneskin after combat
  • Shadows require Council of Esus as a state religion to be built
  • Treants can bombard (-10%)
  • Removed +2 unholy combat from Aeron's Chosen promotion and removed ignore first strikes, but now it allows Body1 and Body2 spells
  • Paramander start with magic resistance and get a 25% bonus vs arcane units
  • Doviello beastmen can build camps without hunting (can build roads also)
  • Added new traits to cals list of pickable traits (Defensive, Magic Resistant, Summoner, Igenuity)
  • Gave cal new trait "special" that allows barbarian or agnostic or none (ai wont use these)
  • New diplo music for CaL
  • Added 2 more levels to bounty hunter promo
  • CaL Kings will get promotions based of their traits, so with arcane a king can use magic
  • Removed weapon promos from firebows and but let them gain fire damage from "fire arrow" promotion path, this also lets them summon a "Fire Arrow" which is half the strength of a fireball and does not cause collateral damage or bombard

Known Bugs:
1. If you upgrade the king unit before choosing your traits the king unit will not get its special abilities
2.If the game music is not playing, save and reload the game to get it working

Special thanks to:
  • EmporerFool
  • Deliverator
  • Cyther
  • Honor
  • Rystic
  • Sephi
  • Tasunke


This mod requires FfH 41 d, read the readme file for installation instructions.
If you have an older version do a clean install, it will not overwrite your standard ffh directory.
 

Attachments

  • FfH2 Regicide.rar
    3.1 MB · Views: 79
  • FFH2 Multiplayer Modmod.rar
    4.2 MB · Views: 86
1. Where can you find the traits for leaders? I am looking for creating a new trait (2 actually) but cant find them anywhere , I assume they aren't in the XML.

The traits leaders have are in the LeaderHeadInfos.xml, their effects are in the TraitInfos.xml. Both are in CivilizationInfos folder.
 
Yeah but I want to create a new Adaptive trait, there doesn't seem to be as much data as there should be in there to say the least, so the core mechanics behind it are elsewhere but I don't know where.
 
Well, I had suggested giving them the free March promo as well. Death just makes them a buildable mage, which is kinda themebreaking I think

Maybe on 6th level they could take a promotion called "caster" that grants them the arcane unit class (or upgrade into a "caster" vampire), give them channeling I (they already have channeling II) and maybe some random first level spells.

A good way to do it would be to make a unit identical to the vampire, only strength 5 and no march, make it arcane unitclass, and enable it to start with a level 1 spell for each mana type in the kingdom, and give it a free promotion.

That way if you wanted to use spells go for it, but if You still want spectres you will need to find some death mana, and its better cause you even get more spells, you just cant spam buildable spectre mages.

I wonder if it would be too much to simply replace their death with mind.


If one were to use the Arcane unitcombat for a "caster" vampire, with the spell bonuses, ect, it would be unfair if they could upgrade into anything other than an Archmage. Alternatively, having vampires to be able to mages "might" work. Although I would rather this Caster upgrade to be another, weaker type of arcane vampire, available at Sorcery (although Upgraded from a Vampire at lv6 only) and able to upgrade into an Archmage (and only an archmage) at level 12 and above.

Basically, the conclusion is that Vampires should not have summon abilities.
 
I've thought about the Calabim change a little more. Messing with the Vampires makes them less interesting and I'm convinced its a bad change. The balance issue with the Calabim is the Governor's Manor, not their Champion replacement. If the Governor's manor was changed to +2 hammers/angry citizen or +0.5 hammers per angry face, it would be more fair.

Because if you mess with Vampires, all that will happen is they'll spam Moroi instead with a few Vampires for spell support/Gifting Vampirism.

The problem is GM. If you mess with Vampires the army will change but the problem remain the same.
 
Yeah but I want to create a new Adaptive trait, there doesn't seem to be as much data as there should be in there to say the least, so the core mechanics behind it are elsewhere but I don't know where.

I found some references to the adaptive trait in Assets\python\CvEventManager.py, around line 551. It references a certain EVENTTRIGGER_TRAIT_ADAPTIVE, which is defined in Assets\XML\Events\CIV4EventTriggerInfos.xml. The Event Trigger Schema has the below tags you can use in the XML to modify the Adaptive trait event trigger. If you want to add more tags, you'll probably need to delve into the DLL. There may be a python-only way to achieve this as well though. I'd ask some other modder (Sephi, MC, xienwolf, Valkrionn come to mind).

Spoiler EventTriggerInfo Schema :
<ElementType name="EventTriggerInfo" content="eltOnly">
<element type="Type"/>
<element type="WorldNewsTexts"/>
<element type="TriggerTexts"/>
<element type="bSinglePlayer"/>
<element type="iPercentGamesActive"/>
<element type="iWeight"/>
<element type="bProbabilityUnitMultiply"/>
<element type="bProbabilityBuildingMultiply"/>
<element type="Civic"/>
<element type="iMinTreasury"/>
<element type="iMinPopulation"/>
<element type="iMaxPopulation"/>
<element type="iMinMapLandmass"/>
<element type="iMinOurLandmass"/>
<element type="iMaxOurLandmass"/>
<element type="MinDifficulty"/>
<element type="iAngry"/>
<element type="iUnhealthy"/>
<element type="UnitsRequired"/>
<element type="iNumUnits"/>
<element type="iNumUnitsGlobal"/>
<element type="iUnitDamagedWeight"/>
<element type="iUnitDistanceWeight"/>
<element type="iUnitExperienceWeight"/>
<element type="bUnitsOnPlot"/>
<element type="BuildingsRequired"/>
<element type="iNumBuildings"/>
<element type="iNumBuildingsGlobal"/>
<element type="iNumPlotsRequired"/>
<element type="bOwnPlot"/>
<element type="iPlotType"/>
<element type="FeaturesRequired"/>
<element type="TerrainsRequired"/>
<element type="ImprovementsRequired"/>
<element type="BonusesRequired"/>
<element type="RoutesRequired"/>
<element type="ReligionsRequired"/>
<element type="iNumReligions"/>
<element type="CorporationsRequired"/>
<element type="iNumCorporations"/>
<element type="bPickReligion"/>
<element type="bStateReligion"/>
<element type="bHolyCity"/>
<element type="bPickCorporation"/>
<element type="bHeadquarters"/>
<element type="Events"/>
<element type="PrereqEvents"/>
<element type="bPrereqEventPlot"/>
<element type="OrPreReqs"/>
<element type="AndPreReqs"/>
<element type="ObsoleteTechs"/>
<element type="bRecurring"/>
<element type="bTeam"/>
<element type="bGlobal"/>
<element type="bPickPlayer"/>
<element type="bOtherPlayerWar"/>
<element type="bOtherPlayerHasReligion"/>
<element type="bOtherPlayerHasOtherReligion"/>
<element type="bOtherPlayerAI"/>
<element type="iOtherPlayerShareBorders"/>
<element type="OtherPlayerHasTech"/>
<element type="bPickCity"/>
<element type="bPickOtherPlayerCity"/>
<element type="bShowPlot"/>
<element type="iCityFoodWeight"/>
<element type="PythonCanDo"/>
<element type="PythonCanDoCity"/>
<element type="PythonCanDoUnit"/>
<element type="PythonCallback"/>
<element type="iPrereqCrime"/>
<element type="iPrereqGlobalCounter"/>
<element type="PrereqAlignment"/>
<element type="PrereqCivilizationPleased"/>
<element type="PrereqLeader"/>
<element type="PrereqTrait"/>
</ElementType>


The above tags modify under what conditions the adaptive trait change event is triggered. As for modifying what the trait does, you need to edit Assets\XML\Civilizations\CIV4TraitInfos.xml as Lone Wolf said. Below is the Schema for the trait tags. In order to add more tags to use for the adaptive trait (if these are not enough for you) or change how the existing tags work, you'll need to define new ones or alter the existing ones in the DLL as well.

Spoiler TraitInfo Schema :
<ElementType name="TraitInfo" content="eltOnly">
<element type="Type"/>
<element type="Description"/>
<element type="ShortDescription"/>
<element type="Help" minOccurs="0"/>
<element type="iHealth"/>
<element type="iHappiness"/>
<element type="iMaxAnarchy"/>
<element type="iUpkeepModifier"/>
<element type="iLevelExperienceModifier"/>
<element type="iGreatPeopleRateModifier"/>
<element type="iGreatGeneralRateModifier"/>
<element type="iDomesticGreatGeneralRateModifier"/>
<element type="iMaxGlobalBuildingProductionModifier"/>
<element type="iMaxTeamBuildingProductionModifier"/>
<element type="iMaxPlayerBuildingProductionModifier"/>
<element type="bAdaptive"/>
<element type="bAgnostic"/>
<element type="bAssimilation"/>
<element type="bBarbarianAlly"/>
<element type="bIgnoreFood"/>
<element type="bInsane"/>
<element type="bSelectable"/>
<element type="bSprawling"/>
<element type="iFreeXPFromCombat"/>
<element type="iMaxCities"/>
<element type="iPillagingGold"/>
<element type="iStartingGold"/>
<element type="iSummonDuration"/>
<element type="iUpgradeCostModifier"/>
<element type="ExtraYieldThresholds"/>
<element type="TradeYieldModifiers"/>
<element type="CommerceChanges"/>
<element type="CommerceModifiers"/>
<element type="FreePromotions"/>
<element type="FreePromotionUnitCombats"/>
</ElementType>
 
The Core of Adaptive is located in the cvEventManager in python. Just search adaptive and you will find it. It triggers the adaptive event every number of turns but you could set it to occur once like Decius' alignment change does.
 
Wouldn't he need to modify the way <bAdaptive> tag works in order to allow the player to pick 2 traits instead of 1?

Or maybe he could achieve this effect by defining 2 new traits called "Custom Trait 1" and "Custom Trait 2" that will work exactly like the Adaptive trait, but will only trigger once per game, at the start of the game.

So I guess something like this could work:

Code:
if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_CUSTOM_TRAIT_1')):
				if iGameTurn == 1:
					iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_TRAIT_ADAPTIVE')
					triggerData = pPlayer.initTriggeredData(iEvent, true, -1, -1, -1, iPlayer, -1, -1, -1, -1, -1)

if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_CUSTOM_TRAIT_2')):
				if iGameTurn == 1:
					iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_TRAIT_ADAPTIVE')
					triggerData = pPlayer.initTriggeredData(iEvent, true, -1, -1, -1, iPlayer, -1, -1, -1, -1, -1)
 
You would have to make a seperate Adaptive event as well as eventinfos in the CvEventManager because adaptive blanks out the previously gained trait.
 
Honestly, I am perfectly fine with Vampires spamming Moroi. Its an actual investment. Summoning should be something only available with units that take effort, especially high movment, midpower summons that can attack the same turn they are summoned.

Vampires are supposed to be a couple high level vampires governing over hordes of moroi ... not an empire with buildable mages.(cause thats all Shiam mages ever should do in a competitive MP game... with debatably a couple fire mages as well)

You are however correct that Governors Manor is broken, that needs to be changed.


As to the Adaptive Trait, or rather the Create a Leader, I think what he plans to do is to have everyone start out as Neutral, Financial, Spiritual. Then on turn 1 you pick alignment, on turn 2 you pick trait1 (to replace Financial) and on turn2 you pick trait2 (to replace Religious)

That at least seems, to me, to be the simplest one to code
 
Thanks for the help Honor and Cyther! I think you answered my question (and more!) so I think I'll give them custom 1 and custom 2 that replace the first and second traits (financial and spiritual, as tasunke said) and I can just use the same code for decius in regards for changing alignment. Thanks again! :D

Vampires are supposed to be a couple high level vampires governing over hordes of moroi ... not an empire with buildable mages.
I have to agree with you I imagine vamps would let the moroi do the bulk of the fighting and now since they dont obsolete it should be ok, vamps are as strong as champions now and death mana has nothing to do with their lore anyway. I like the idea of vampires being able to 'upgrade' into a more arcane type but the vampire lord pretty much already does that..hm I'm not sure what do with the governors manor..suggestions?

EDIT: oh yeah insane and adaptive are broken in patch B...damn.
 
In my version, I removed all the spell spheres from Vampires, but let units with the Vampire promotion purchase Body I, Death I, Mind I, or Shadow I, if you have the right mana. The level 1 spell spheres were made availible to all unitcombats, all non-unitcombat_adept units lost channeling 1, and Vampire became an alternate prerew for those spheres. Extension 1 was also made availible to other unitcombats, but requires channeling 2.

I've considered making Vampires have a level prereq of 4, as Moroi need that level to get it anyway. It seems unfair for the Calabim to have level prereqs without giving the same to other civs though, so normal Champions might need a level prereq too.

I've also considered removing the Vampire UU all together (keeping its art for Champions wiht the Vampire promotion, f not all Calabim Champions), and adding a spell (with a very high AI weight) that lets level 6+ units/4+ Moroi gain Vampirism and Channeling 2 in cities with Governor's Manors.
 
That sounds pretty cool, hehe I really hope you release it someday :)
I'm trying not to do too much myself, I really only want to change things that affect multiplayer games so I may yet retcon some of the changes I've made, after all this is a multiplayer mod so people have to like it :lol: (in other words I'm doing this for other people not myself) anyway looks like I have to wait till the next patch is out and the adaptive trait is working again until I can finish my work on the CAL thingy, Currently I need more feedback on what people would like changing to make things better for MP, like I've made it easier to get Auric Ascended now as I've never seen him in a MP game. ever. so ideas on stuff like that would be much appreciated :)

EDIT: Updated first post to try and explain this mod better
 
Vers 0.02 out if anyone cares :p
So, vampires I have 3 ideas in mind for them:

1. Leave them as they are now (in this mod) with 6 str and body mana but no death (losha valas and vamp lords still have death mana)

2. Reduce their str by 1 again but allow them to take death, shadow and mind for promotions (they start off with body 1 as normal) but building one reduces pop of city by 1

3. Make them a national unit (4 max) but make them more powerful - give them 7 str, they start off with mind 1, shadow 1, body 1 and death 1. Also make losha, brujah and vamp lords more powerful.

4. Leave them as they are in standard FfH

Whats peoples opinions on this?
 
1. Leave them as they are now (in this mod) with 6 str and body mana but no death (losha valas and vamp lords still have death mana)


I vote for that
 
oops, double post
 
Well I could reduce the hammers from the unhappy pop to 0.5 or something? what exactly is unbalancing about it? I need to know to see what else I could change. oh yeah there's an option to disable inflation should I use it?
 
Decius and Flauros build the GM for 60 hammers and will get it before turn 100. They'll get about +8 hammers per turn per city ever after that. If they use Aristofarms (which they should) and Ashen Veil (which is likely enough) then it can be +25 hammers per city by turn 200.

Its pretty sickening.
 
Top Bottom