View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0024090 | AI War 2 | Bug - Gameplay | Nov 10, 2020 4:54 pm | Nov 11, 2020 4:17 pm | |
Reporter | crawlers | Assigned To | Chris_McElligottPark | ||
Status | resolved | Resolution | fixed | ||
Product Version | 2.629 Ship Cap Hotfix | ||||
Fixed in Version | 2.630 Arbitrary Icon Inclusion And Weapon Exclusion | ||||
Summary | 0024090: Mugger frigate has brawler weapon | ||||
Description | Check the fleet in Trory, there are 2 muggers there with a brawler weapon. In case it matters, this is for the host in a multiplayer game. | ||||
Tags | No tags attached. | ||||
related to | 0024099 | resolved | Chris_McElligottPark | HRS produce Anti-Everyone-Zombies with some of their Ships |
|
|
|
A similar situation has been reported on Steam https://steamcommunity.com/app/573410/discussions/1/2981907749279609020/ |
|
Okay... working through the mugger example with the two on Orford... 11/11/2020 9:37:46 AM Mugger_BallisticCannon from parent Mugger LimitedOuterXml:<system name="BallisticCannon" display_name="Point Defense" category="Weapon" firing_timing="OnlyInRange" damage_per_shot="400" range="Normal2" shot_speed="Normal" rate_of_fire="High" fires_salvos_sequentially="false" shots_per_salvo="8" shot_type_data="ArmorPiercingShell"></system> 11/11/2020 9:37:46 AM Found existing entry!Mugger_FusionBomb for parent Mugger Parent: <entity name="Mugger" copy_from="AssaultFrigate" display_name="Mugger Frigate" description="Durable and slow Frigate that has a zombifying Fusion Bomb weapon." hull_points="262500" shield_points="127500" metal_cost="240000" energy_consumption="25000" speed="BelowAverage1" cost_for_ai_to_purchase="1500"><fleet_membership name="UnusualMix" ship_cap_group="Frigate" weight="100" min="1" max="1" /><fleet_membership name="SturdyOffensiveMix" ship_cap_group="Frigate" weight="100" min="1" max="1" /><fleet_membership name="ZombificationMix" ship_cap_group="Frigate" weight="100" min="1" max="1" /><fleet_membership name="ZombificationAntiCounterMix" ship_cap_group="Frigate" weight="100" min="1" max="1" /><fleet_membership name="AddedToFleet" ship_cap_group="Frigate" weight="10" min="1" max="1" /><ai_ship_group_membership name="MuggerParasiticFusionBomber" weight="25" /><ai_ship_group_membership name="ZombifyingStrikecraftAndFrigates" weight="25" /><system name="FusionBomb" damage_per_shot="1700" added_target_evaluator="ZombifyAsPrimary"><death_effect_damage type="Zombification" tier_name="Mugger" /></system></entity> Child: <system name="FusionBomb" damage_per_shot="1700" added_target_evaluator="ZombifyAsPrimary"><death_effect_damage type="Zombification" tier_name="Mugger" /></system> 11/11/2020 9:37:46 AM Mugger_FusionBomb from parent Mugger LimitedOuterXml:<system name="FusionBomb" damage_per_shot="1700" added_target_evaluator="ZombifyAsPrimary"><death_effect_damage type="Zombification" tier_name="Mugger" /></system> |
|
The attached is what I see. It has the point defense from the parent AssaultFrigate. And then it has had its fusion bombs altered on itself. It has all of the combined stuff from both, which was I thought what it was supposed to do. Were systems previously working differently? This is not a general xml parsing error. It may be that it's a side effect of me correcting a prior error. But Puffin is noting that looks correct. This doesn't seem to be the Brawler weapon. Is someone else seeing something different? |
|
Oh, nevermind, I can verify it now. It's a sometimes-thinig. Same save: |
|
11/11/2020 10:05:40 AM Mugger_BallisticCannon from parent Mugger LimitedOuterXml:<system name="BallisticCannon" display_name="Point Defense" category="Weapon" firing_timing="OnlyInRange" damage_per_shot="400" range="Normal2" shot_speed="Normal" rate_of_fire="High" fires_salvos_sequentially="false" shots_per_salvo="8" shot_type_data="ArmorPiercingShell"></system> 11/11/2020 10:05:40 AM Found existing entry!CloakedMugger_FusionBomb for parent CloakedMugger Parent: <entity name="CloakedMugger" copy_from="AssaultFrigate" display_name="Cloaked Mugger Frigate" description="Durable and slow Frigate that has a zombifying Fusion Bomb weapon and cloaking." hull_points="175000" shield_points="85000" metal_cost="240000" energy_consumption="25000" speed="BelowAverage1" albedo="0.7"><fleet_membership name="CloakedMix" ship_cap_group="Frigate" weight="100" min="1" max="1" /><fleet_membership name="AddedToFleet" ship_cap_group="Frigate" weight="10" min="1" max="1" /><system name="Cloaker" display_name="Cloaking Device" category="Passive" cloaking_points="2000" cloaking_points_added_per_mark="1000" cloaking_percent_loss_from_firing="0.5"></system><system name="FusionBomb" damage_per_shot="1700" added_target_evaluator="ZombifyAsPrimary"><death_effect_damage type="Zombification" tier_name="Mugger" /></system></entity> Child: <system name="FusionBomb" damage_per_shot="1700" added_target_evaluator="ZombifyAsPrimary"><death_effect_damage type="Zombification" tier_name="Mugger" /></system> The imported xml looks correct still. |
|
Okay, I know what this is -- this is a casualty of the multithreaded parsing of GameEntityTypeData, and the fact that it is the one entity that reaches across table types (to EntittSystemTypeData) during that process. I've always hated that design, but it was never really a problem until the multithreading. Frankly I'm a bit shocked that we've not had this sort of error before now. I simply need to decouple how these things are created and discovered and the problem should go away. |
|
Okay, lots of work and this does NOT fix it yet for some reason: * Added a new ArcenNonTableUniqueStringList class, which we can now use for keeping lists of arbitrary string that we want to serialize. ** We're going to be using this for entity systems. * EntitySystemTypeDataTable has been removed, and EntitySystemTypeData no longer inherits from ArcenDynamicTableRow. ** This was really old logic, and is the one instance in the codebase of us really not using dynamic table rows properly. ** The result was slow during startup, in the best of times, and more recently it has been actually scrambling up the data for systems between different ships! That latter part may be new in the last few builds, or it might just be more common. Either way, this has needed a shift for a while. ** The EntitySystemTypeData no longer has an InternalName, but instead has InternalName_Original (which is just the raw xml name like FusionBomb), and then an InternalName_Longer (which is the entity type appended in front of it, like "Mugger_FusionBomb"). ** The new serialization for these by index uses the shorter name, which just makes savegames a bit smaller. But it doesn't really matter what is used in the longer-term effect, because these are no longer stored in one central lookup. They are now properly full sub-entities of the GameEntityType. * With this change, shockingly, we have still NOT solved the issue of things like Mugger frigates sometimes getting Brawler weapons. So that's going to need even more investigation. ** This overall change is still worthwhile, as it shrinks future savegames a bit (not ones from prior versions saved in the new build, though), and it also makes loading the initial game program a bit faster and less prone to potential issues... despite still having this particular issue. |
|
For what it is worth, Automated Sentinel Gunboat Drones are not getting an infinite range weapon like the Base Sentinel does. I'm pretty sure they used to. |
|
Thank you for this report! It was super frustrating, but incredibly useful to have someone find it so fast. :) * Fixed a very peculiar issue that only affected a couple of unit in the prior version (in the main game and DLC, anyhow -- more may have been affected in mods) where if there was a unit that had its systems altered on a child, and there were then other co-children, the other children would sometimes get those altered stats and sometimes not. Normally it should just pass to grandchildren and so forth, not to siblings. ** Essentially, the way that we handle partial records is normally very explicit (is_partial_record="true"). And in fact, when we have a partial record like that, we WANT for it to inject itself into any other descendants later. ** But in the case of entity systems, we have this kind of implicit "child partial record" system going on, where you just name the same system in the child as you had in the parent, and make some changes, and those changes then keep going in that lineage. ** What we do NOT want to have happen is the siblings to also pick up those changes, which is what was sometimes happening here because of the funky way that we handle systems and systems alone in the game. ** From looking at the raw data, without mods in play this mostly just affected muggers and brawlers, and a few spider turrets. Most everything else was already consistent properly. But if you play with mods on, you may have seen a lot of other chaos happening beyond these particular ones. |
|
@TechSY730, regarding the Automated Sentinel Gunboat Drones, I'm not sure what the deal would be there. If those are part of a mod, then anything is possible. With added siblings, which many of the mods have, you get more and more issues. If that's still an issue in the next version, then a savegame with it being wrong would be useful, in a different ticket. It's not a current-xml-parsing problem. At best it's probably a was-broken-before thing that accidentally worked, if it's not working after this fix. |
Date Modified | Username | Field | Change |
---|---|---|---|
Nov 10, 2020 4:54 pm | crawlers | New Issue | |
Nov 10, 2020 4:54 pm | crawlers | File Added: _2_mugger.save | |
Nov 10, 2020 4:54 pm | crawlers | File Added: _2_mugger.savemet | |
Nov 10, 2020 5:30 pm | Chris_McElligottPark | Assigned To | => Chris_McElligottPark |
Nov 10, 2020 5:30 pm | Chris_McElligottPark | Status | new => assigned |
Nov 11, 2020 1:42 am | Ovalcircle | Note Added: 0059547 | |
Nov 11, 2020 9:55 am | Chris_McElligottPark | Note Added: 0059548 | |
Nov 11, 2020 9:56 am | Chris_McElligottPark | File Added: unknown.png | |
Nov 11, 2020 9:56 am | Chris_McElligottPark | Note Added: 0059549 | |
Nov 11, 2020 10:07 am | Chris_McElligottPark | File Added: unknown-2.png | |
Nov 11, 2020 10:07 am | Chris_McElligottPark | Note Added: 0059550 | |
Nov 11, 2020 10:10 am | Chris_McElligottPark | Note Added: 0059551 | |
Nov 11, 2020 10:12 am | Chris_McElligottPark | Note Added: 0059552 | |
Nov 11, 2020 12:58 pm | Chris_McElligottPark | Note Added: 0059555 | |
Nov 11, 2020 1:20 pm | TechSY730 | Note Added: 0059556 | |
Nov 11, 2020 3:38 pm | BadgerBadger | Relationship added | related to 0024099 |
Nov 11, 2020 4:08 pm | Chris_McElligottPark | Status | assigned => resolved |
Nov 11, 2020 4:08 pm | Chris_McElligottPark | Resolution | open => fixed |
Nov 11, 2020 4:08 pm | Chris_McElligottPark | Fixed in Version | => 2.630 Arbitrary Icon Inclusion And Weapon Exclusion |
Nov 11, 2020 4:08 pm | Chris_McElligottPark | Note Added: 0059562 | |
Nov 11, 2020 4:17 pm | Chris_McElligottPark | Note Added: 0059564 |