Crash: Revoke condition on GrantConditionOnDamageState
dnqbob opened this issue · 4 comments
dnqbob commented
log:
OpenRA engine version 13bc7dc
Shattered Paradise mod version {DEV_VERSION}
on map 76424132e5b28f98c4b38918144ebc3e8828c2a7 (Way to Uganda by Morton).
Date: 2021-08-20 09:53:51Z
Operating System: Windows (Microsoft Windows NT 10.0.19043.0)
Runtime Version: .NET CLR 5.0.7
Exception of type `System.InvalidOperationException`: Attempting to revoke condition with invalid token 1 for sonic 1031.
at OpenRA.Actor.RevokeCondition(Int32 token) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Actor.cs:line 595
at OpenRA.Mods.Common.Traits.GrantConditionOnDamageState.OpenRA.Mods.Common.Traits.INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Traits\Conditions\GrantConditionOnDamageState.cs:line 83
at OpenRA.Mods.Common.Traits.Health.InflictDamage(Actor self, Actor attacker, Damage damage, Boolean ignoreModifiers) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Traits\Health.cs:line 208
at OpenRA.Mods.Common.Warheads.SpreadDamageWarhead.DoImpact(WPos pos, Actor firedBy, WarheadArgs args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Warheads\SpreadDamageWarhead.cs:line 107
at OpenRA.Mods.Common.Warheads.DamageWarhead.DoImpact(Target& target, WarheadArgs args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Warheads\DamageWarhead.cs:line 64
at OpenRA.GameRules.WeaponInfo.Impact(Target& target, WarheadArgs args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\GameRules\WeaponInfo.cs:line 241
at OpenRA.Mods.AS.Projectiles.BulletAS.Explode(World world) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.AS\Duplicates\Projectiles\BulletAS.cs:line 332
at OpenRA.WorldUtils.DoTimed[T](IEnumerable`1 e, Action`1 a, String text) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\WorldUtils.cs:line 75
at OpenRA.World.Tick() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\World.cs:line 437
at OpenRA.Game.InnerLogicTick(OrderManager orderManager) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 624
at OpenRA.Game.LogicTick() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 639
at OpenRA.Game.Loop() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 806
at OpenRA.Game.Run() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 859
at OpenRA.Game.InitializeAndRun(String[] args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 277
at OpenRA.Launcher.Program.Main(String[] args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Launcher\Program.cs:line 32
dnqbob commented
Maybe this comes from two condition control trait with the same condition
GraionDilach commented
Judging from the condition index, this probably was the FullHealth condition which prevents repair autotargeting. Do you have the replay? I feel you need to actively monitor the actor status to figure out what happened here. I don't have ORA installed atm but my guess would be that there was an outside effect already damaging the actor and this is a timing error.
dnqbob commented
GraionDilach commented
Or that. Funstuff. Glad I dropped the ball and I'm not affected.