Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Now i know what was that strange feeling about, after she showed up!
I've stepped further into this bug.
Just editing abilities/effects in config files seemed not to lead to a solution...
So the bug must be in business logic.
I've decompiled 'app.game-saga1.air.swf' and I think the bug can be found in class 'engine.battle.ability.effect.op.model.Op_Aura'.
In function 'checkOther(param1:IBattleEntity) : void'
the stat bonus of an self attached ability(_loc4_) is not removed by guarantee.
Unfornately the game threw errors if tried to change other classes like 'engine.battle.ability.model.BattleAbility', 'engine.battle.ability.effect.model.Effect' or 'engine.stat.model.Stat'.
I'm not that handy with Flash and ActionScript, so i only could test a workarround...
If the armor bonus of shieldwall_self ability was not removed, i removed the StatType.ARMOR by 1.
I played arround 70 turns in Meadhouse and it looked quite fine.
Will test more tomorrow...
Hope this information help to find the cause of the bug and can lead into a hotfix.
Edit: Can also occur on stat bonus from other units(_loc3_). Lowering StatType.ARMOR by 1, if not applied by removing the effect looks fine.
Edit2: This just refers to armor gained shieldwall_bonus.
The bug that your armor breaking attacks will make no more armor damage, even if the target has enough armor, is unaffected.
Yeah, thats the tool I use.
The bug also occurs when killing an enemy. The stat bonus from 'abl_shieldwall_bonus' given by the killed enemy is not removed by guarantee.
Technically the same behaviour as mentioned above.
My current workarround is to check all units active effects and remove all effects given by the actual killed enemy. But thats quite ugly and i really want to shower when I think on it.
I guess the problem has something to do with incorrect processing of EffectPhases and EventListeners.
How can I get access to older branches?
I have a feeling, since I didn't remember it happening during theday survival beta/release branch, it could be something introduced with the latest saga2 localization update and then ported to saga1 too. If you look at the changelog, the main culprit could be the change to runic gale and other statmods behaviours.
Op_IntStatMod got my attention. This is the op which grants the adjacentarmorbonus from shieldwall.
If function 'removed' from Op_IntStatMod is called, it tries to remove all StatModifiers from the affected Stat.
There are some encapsulated function calls in Stat/StadMod to handle this correctly, but to say it short...
Inappropiate handling of vectors (I think this is the ActionScript equivalent of an array)!
The program functions Stat.annotateMods/StatMod.annotateMod will modify the first StatModificator that suits. The problem is that shieldwall can grant two statmodfiers 'abl_shieldwall_bonus' and 'abl_shieldwall_bonus_self'.
So.. if the program wants to modify 'abl_shieldwall_bonus' but the first StatModifier in that Vector is propably be 'abl_shieldwall_bonus_self'.
Then the wrong StadModifier is processed and if later 'abl_shieldwall_bonus_self' is to be next the StatModifier is already consumed.
So there should exist some further checks to guarantee consuming the correct StadModifier.
Edit: Typos
The raider has two friendly neighbours and got 2 'abl_shieldwall_bonus_self' effects.
One with Id 21 and another with Id 19.
So when the effect with Id 21 should be removed, the game processes mistakenly effect with Id 19.
Later when effect with Id 19 should be removed, nothing happens cause it was already consumed earlier...
Because of the complex call hierarchy, I think it's not possible to fix it in class StatMod.
StatMod.annotateMod is called from Stat.annotateMods.
A integrity check should be added to the while-loop in Stat.annotateMods.
Is there anyone with the same issue or that dealt with the same issue?