• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Not a Bug Soldier Reinforcements are push-overs compared to Town Guards

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
Town guards are generated through the AddGameCharacter function in PROGRAM\Characters\characters_init.c .
Soldier reinforcements and many other characters are generated through the LAi_CreateFantomCharacterEx function in PROGRAM\Loc_ai\LAi_utils.c .

That first function contains this:
Code:
  if (isSoldier(chr) != UNKNOWN_NATION) {
     chr.model.uniform = chr.model;
     iNation = sti(chr.nation);
     model = "m" + sti(chr.model);
     if (iNation >= 0 && iNation < NATIONS_QUANTITY) model = Nations[iNation].fantomModel.(model);
     if (iNation == PERSONAL_NATION) model = characters[GetMainCharacterIndex()].Soldier.(model);
     SetModel(chr, model, chr.sex, chr.sex, 0.0, false);
     GiveSoldierWeapon(chr, iNation);   // ARF: Update Soldier Weapons
     // Baste: Strong Soldiers -->
     chr.rank = 11+GetDifficulty()*3+rand(6*GetDifficulty());   // Apprentice: between 14 and 20 - Swashbuckler: between 23 and 47
     //chr.skill.Fencing = 4+rand(GetDifficulty());       // Apprentice: between 4 and 5 - Swashbuckler: between 4  and 8
                     chr.perks.list.BasicDefence = true;
                     chr.perks.list.AdvancedDefence = true;
                     chr.perks.list.CriticalHit = true;
                     chr.perks.list.SwordplayProfessional = true;
                     chr.perks.list.Gunman = true;
                     chr.perks.list.GunProfessional = true;
     if(rand(10) > GetDifficulty())   chr.perks.list.Rush = true;
     if(rand(20) > GetDifficulty())   chr.perks.list.Toughness = true;
     // Baste: Strong Soldiers <--
   }
And makes the soldiers a force to be reckoned with.
However, that second function apparently does not so it creates characters who are substantially weaker than those normal soldiers.

This might admittedly be because my player character is rank 1 at that time,
but I don't remember the "soldier reinforcements" being such push-overs before? Is this new?
 
Hmm... In general, this problem I think has persisted from some patches ago, like two or three... but I'm not sure...

And as you say, those "new soldiers" are stronger than town guards, so yeah... not so cool for balancing.
 
The reinforcements are STRONGER than the town guards?
That's the exact opposite from what I noticed.
I suspect the difference comes from player level then.
 
Based on @HellSailor's post and my own observations, I think this is "Not a Bug".

Town guards at the beginning of the game are generated at a high level, depending on difficulty. So they'll be strong at game start, but won't get much stronger.
Soldiers generated during the game are created based on player level and difficulty. So these become tougher as the game progresses.
Also, the former type get fixed soldier weapons, but apparently the latter type does not.

So technically no bug here. Thread marked accordingly.

Though I do wonder if anything could and should be done to get this to make a bit more sense.
 
Back
Top