Phantasy Calradia - 2024 reboot

Users who are viewing this thread

Patch v160_A8_r2 is released, as an option, to allow slightly less nerf to magic users so that there is less pressure to bounce back and forth between patches. Do NOT skip to before A7 (A7 patching the same savegame twice will blow away 3/4 of the quests, permanently. Just leave it alone until I get back).

patch notes:
Patch Notes v160_A8_r2 Jun.10.24

Probably at patch v160_A7 the 3 new global variables added moved part the savegame so that when reloading older saves than A7/A8
part of the databases are not giving accurate results. I am still looking at this but am out of time before my flight tomorrow. I'll be back in about 10 days. The symptom seen was the spell effects such charm recovery, regeneration, poison damage over time, acid arrow damage over time, haste recovery, and slow recovery all fail to process, at all. But only on savegames made before A7.

Due to patch A7 also moving, compressing, and deleting some quests by slot ID (because actually the game is blind to what is IN the slot), it is critical to never run patch A7 twice on the same savegame. Doing that will chew up quests to where no quest runs except for a very small few, ever again. Anything after A7 will want to run the A7 patch too, if it sees the version is A6 or earlier, so please do not load old
patches thinking you will outsmart the system somehow. You'll just end up rerolling the character if you bounce back and forth.

Having said that, the observation that A8 was a heavy nerf to magic users is correct.
For A7 and forwards, the comparison is made between magic attack, coming from magic ability skill
plus (1/2 of the total magic adjusts from each equipped armor plus staff, with each item added so that if some have minuses and some have pluses they can cross cancel before the result gets divided). For Magic defense, the skill was multiplied by 3/2. Then Magic attack minus magic defense is a number, and if less than 0 the attack does not happen at the magic layer, and if a positive number then that value, whatever it is is multiplied by some value for that spell and damage is given out accordingly.

1) For A8, the equipment worn bonus/minus was divided by 4 if > 1 and divided by 3 if a negative total.
Armors will show a value for magic ability modifier, and this is the value being added to find if the total is positive or negative.
Weapons don't have a place to mark that so it does not show when you examine the magician's staff, but the staves also have a hidden
value adding to this total. At A8_r2, the total is divided by 3 instead of 4, after checking for 0 so no divide by 0 error. this slightly improves the magic attack score. The magic defense is multiplied by 4/3 instead of 3/2, slightly lowering defense core. This slightly wider gap now means more damage gets through, but not a LOT more damage.

2) Acid arrow and Flame arrow have can_penetrate_shields added to the "can_crush_through they had before. Non-magical damage is increased slightly, to 35 from 30, and the speed in flight for flame arrow is increased, making for a faster moving, flatter trajectory when thrown. Accuracy modifier is added to acid arrow, not quite the 100 that flame arrow has (92) but maybe hitting more often than it used to. Acid arrow moves at 65 now instead of the previous 60; this is minor. Lightning continues to move at 110; fireball is 65.

3) Every spell from a magic user goes through the same comparison of attack minus defense, so higher magic defense has value, with A8 and up. Every spell from a magic user has a modification from dynamic resists coming from equipment worn, according to the material the equipment is built from. If I could have somehow gotten down to the last atom I would have. If you believe in atoms, which not everyone did "back then". Whenever that was.

In summary, if you have an old character, you are urged to set it aside 2 weeks. I want to recover it I want to recover MY saved games, which took months to build, let alone yours. You probably have more spare time than I do. Pity me instead of yourself, please.

If you really want to busy yourself while I am away, consider a fresh game, with patch_A8_r2 as the best balance yet, and looks to be working with fresh games.
Otherwise, explore the virtual reality you call "life" [or believe what you want, don't ask me], as a professional courtesy from a much bigger coding team than one dude exercising a hobby then sharing the compiles. Or compile it yourself, and start telling the mod what to do instead of passively waiting for someone else to tell it to do stuff on your behalf. That's why there is source in every download, including THIS patch.
Patch v160_A9 is about to release.
as usual, contains the content of all previous patches, so if starting from the full release just drop this over the mod files and "extract here".

patch log:
v160 A9 Jun.21.24

1) rebalance spell costs:
Magic Missile 8
Darkness 6
Acid Arrow 8
Flame Arrow 7
Vampiric Bolt 10
Charm Person 10
Lightning Bolt 25

2) Set starting movement speed at agent spawn, for encumbrance check to later modify.
Agents were waking up with the initial speed some random value, leading to waking up with only 2 speeds:
too fast or too slow. Few complain about hyper speed but too slow is annoying :wink:

3) M_T timed_mage_spells now also checks to reload low tier mages each 41 seconds, as they likely were running out of spell ammo
and thus unequipping spells and becoming infantry.

4a) Darkness has a better check on radius; before the radius was 1/10th of what was intended.
The intent was 3 meters; the actual amount being applied was 300 mm instead of 300 cm as hoped.

b) somewhat similar cause, both lightning bolt and fireball were checking 2 mm instead of 2 meters when adjusting height of the next vantage point to determine partial cover on the battlements during sieges. The intent was to keep the spell from passing through walls and hitting any agent on the other side but still within x meters of the impact point, ignoring everything in between. I might do that for a cleric spell, maybe, but not for mages.

5) small adjust to removing disguises after sneaking into town.

6)a) adjusted all radius effect cleric spells to waste less bandwidth, using a newer version try_for_agents (should only be a problem to users with old Warband 1.168 or earlier)
slight tweaks in radius of effect as well for paladins; slight increase in lay hands healing.
b) same performance tweak for lich aura, balrog effects, horse trample check, haste/slow/dispel, darkness, Lightning bolt, fireball, ice storm
c) removed cannot use on horseback from item properties of Darkness spell

My commentary:
some pauses are still seen during battles so I will be watching this next week. I lightly tested this as my highest test chars are down at the moment, waiting on B10 next week (?), but I have much research before then. It looks like I can use Lua to do my export/import trickery, but there are many layers to it, and only with WSE or WSE2 installed, both of which are difficult for end users. I might make the WSE layer optional, but without it characters cannot be salvaged once the savegame is jinxed. With LUA, I may be able to resurrect (what a term) older v160 characters, or at least recover the time spent on them while allowing a (full) respec if desired.
It's Friday, and that usually means patch day. Today is no exception.

patch log v160_A10
Patch Notes v160_a10 June.28.24

1) Necromancy changes:
a) necromancy refresh timer no longewr 24 hours, now 11 hours but retaining the check for night-time.
Previously a check for night time each 24 hours could lock the character to never have necromancy ready after first use.
b) added a fail-safe at the "night creatures are more powerful" event at 21:00 daily.
c) removed the outlaw for reaching -100 renown status check.
d) allowed the weekly necromancer effect to now also add undead to garrisons in towns and castles,before it only added to parties outside garrisons.

2) WIP Work in Progress - camp menu actions #2 adds some testing for export of character preview.
Essentially each of these will dump a screen of messages to the Notes: Recent Messages window, which can also be seen by pressing L outside towns.
The concept for export/import is to save all the different time sinks in grinding up a character so that restarts coming from incompatible savegames, a desire to explore a different class/race/faction, or major savegame breaking updates can all be done without having to repeat the grind.
This allows me freedom to add new mounts, troops, changes that would have stomped on the old savegame by first you exporting to a neutral file format your progress and then restart under the new version and import that saved progress, optionally keeping the old face codes while allowing a full re-specification of your character.
As presented the entire process is about 1/3rd completed, so estimating two weeks further to have all the needed layers written.

* means this is captured by script here but not shown in the log messages
#1 Player information: name, face codes*, skin type, experience, honor, renown, inventory management skill, party size, paty size limit, all Rigale crafting/harvest skills*, Rigale guild statuses*,
Companions that have joined the player, their experience, their equipped weapons/armor/mounts with item modifiers, and a test of evaluating the real worth of each item to scale replacement costs.
Spouse if present, experience, items only if a kingdom lady (and thus the player could have added items to her equipment, unlike a kingdom lord).

In order to fit onto one screen of messages the equipment found is filtered to show only fair market value > 1000 dinars items.

#2 Repeating the line for player name, experience, honor, renown.
Checking towns and castles for player ownership, enterprises, and walled centers belonging to player faction but not assigned to player: show enterprise type, cost, show garrison size if belonging to player.
Show mage spells purchased and store as a seperate value as a combined credit, if the importing character is not a mage this can be applied to cash balance.
Show cash on hand, bank balance, bank loans, and net at bank as separate values. Show treasury from chamberlain, debts to party, and net balance at chamberlain.
Simulate selling all prisoners at constable or ransom broker to see what the value of prisoners in the player party adds to finances.
Show secondary household inventory items value for selling at fair market value (which needed some tweaking to get a good number), considering item modifiers for quality and item count for partial stacks of food/ammunition/tools.
Tally the above for secondary inventory and armory, as these inventories will be sold during export to fully empty them.
Display as a final line cash on hand, net treasury, spell credit, ransoms to see the total finances exported.

In order to fit onto one screen of messages secondary and armory inventories are filtered to show only >1000 dinar items EXCEPT where a stack has a maximum item count to test partial stacks of food/tools/etc receiving appropriate reduced value.

#3 Count total troops by type collected from player party and player owned garrisons as lists for speed.
Display player party size, max size, garrison sizes for player owned garrisons, count of player owned towns, count of player owned castles.
Show total count of troops filtered by levels (the intention is to prevent overflow from too large a player party, and to put some mid tier troops to garrisons, possibly displacing low tier troops at that garrison):
Count of Troops level 25+ Highest tier or special faction troops
Count of Troops level 20+
Count of Troops level 15+
Count of Troops level 10+
This helps decide how to auto split off troops from the main party into garrisons at import time, to prevent party overflow.

The intent is to set the importing player's new renown, exp, honor, and inventory management skill before calculating the party size limit at import.
This means the inventory management skill will not take points away from the unspent skills pool at the importing character, once experience applied has levelled up the character.

Troops level 25+ are displayed in order to see the breakdown of highest tier troops by type.

3) set maximum battle size to 250 instead of 225 to better test for lag spikes in large battles after performance tuning at patch A9.
tried 300 and it performed poorly for a 700 vs 800 battle. Consider the module.ini max battle size as valid only when calculated battle advantage shows 1:1.
Also horses (any mounts) will be agents in battle as well, making a battle size 250 battle 250 troops one side + 250 another + perhaps 200 horses + some extra 80 from reinforcements exceeding battle size limit.
This gives around 800 agents during battle, enough to slow try_for_agents loops during area spells, cleric/paladin spells and auras, checks for status and recovery, fear, and so on.
Changes to battle size mainly need tooccur within mission_templates at each mission, search for ":battle_size" and look down.

adjusted reinforcement logic per wave according to slider settings set by player for battle "max slider = 250".
Reinforcement logic green lights sending reinforcements to both sides sooner than before; earlier one side needed to fall below a certain smallish number but now both sides keep
expanding until battle size is reached. Neither side starts at full amount, which reduces initial load time for a battle.

Go to camp menu: change Phantasy 2024 settings: toggle ON "prefer large battles" to have the more aggressive reinforcements.
Recommend slider to be not over 200 until WSE is merged (patch B11?).
The default OFF has a hand brake on reinforcements to keep battles smaller, regardless of the slider setting.

4) moved dodge cooldown from special_mounts_attack to timed_spell_effects, as it already has a try_for_agents at a similar timer.
Changed special_mounts_attack and common_battle_unicorn_regen to use list25 instead of try_for_agents. This gave two fewer try_for_agents loops at each 2.5 and 4 seconds,
every try_for_agents that can be avoided is important as number of agents increases.
WSE, once carefully integrated, can possibly speed up try_for_agents but these are still one of the top sources for lag in any mod.

Adjusted timing of paladin aura refresh to agents within radius from each 3 seconds to be each 5.5 seconds, to cut bandwidth impact from this task roughly to half.
Adjusted timing on special_mounts_attack from every 2.5 seconds to every 4.5 seconds, for the same reason.
Adjusted timing on common_battle_unicorn_regen from every 4 seconds to every 4.7 seconds to spread bandwidth use across a wider time, as seen against all other timings firing during battle.

5) adjust resist type versus Black Bolt spell from magic to cold resist.

6) Cattle stealing: adjust the result from dice rolling from one dice roll evenly spread between 0 and some max number of possilbe cattle to instead roll two dice each half of the maximum number of cattle to have a much better chance of a middle result.
This tends to converge on a center of around half the maximum but at least gives more reliable theft of cattle, while still allowing rare low and high results.

7) Four ways inn adds two new options:
A) Access secondary household inventory. In a three way arrangement between the banker, the mage flight specialist, and your chamberlain, you may now access the secondary inventory normally only seen after you have at least a castle as your property.
This is available even if you do not yet have property, or even a chamberlain. As for whether the banker will begin charging for this "safe deposit box" service, she assures you the first month is free with no obligation. She says.

B) Access what used to be the items cheat, but locked still to provide crafting raws, food, some crafting rares, and a selection of mounts, all at standard price.
You may buy AND sell here, without adjusts by location, meaning flat reliable prices. The merchant does not run out of money, so you may sell your "exquisite" items here as well.
I should probably make this a magnet for bandits if you carry large amounts of cash, but I am feeling generous. For now. The items cheat is removed from cheat access; come here or do without,

8 ) Documentation: merge combined v160 patch logs from A5 and up into "combined_patch_log_v160.txt"

FULL build (A10) (re-packed July 4th 2024) drop into Modules folder and "extract here"
edit: 2nd try for 4th of july. Previous had the old zip inside, doubling size without value.

This "full" build also has my WIP as Lua and WSE folders, current as of a few minutes ago. I am half way through the "import from file" and export is done but not tested. For A10 neither WSE nor Lua are needed.

Patch v160_A10
Last edited:
Top Bottom