View Issue Details
|ID||Project||Category||Date Submitted||Last Update|
|0021186||AI War 2||[All Projects] Bug - Gameplay||May 5, 2019 10:15 pm||May 18, 2019 8:14 pm|
|Product Version||BETA 0.856 Clever Girl|
|Fixed in Version||BETA 0.861 Strength Of Remains|
|Summary||0021186: Hydra Head Ships Function Oddly|
|Description||The hydra head version of ships function oddly in that they can't be put into roaming defender mode at all. The icon flashes red and white until an order is given, then it just stays white.|
I think it could be fixed if they just get put into the zombie fleet when created. It should be fine since zombies now attrition.
|Tags||No tags attached.|
||They are also meant to attrition without their parent, but don't.|
I understand the issue now, but I don't know a good way to fix at the moment.
The main issue is in DoEntitySecondLogic for GameEntity_Squad, there are several things that build up to this wonkiness:
1. Ships that spawn from spawns_on_death get added to the fleet of the dying ship.
This causes a minor annoyance that they pop up under the fleet centerpiece as ships they can rebuild, when they can't. Very minor, goes away when the ship dies.
2. Attrition damage functions off of being on the same planet as the fleet centerpiece, rather than the "parent" ship
Fine for drones, since they are only created by fleet centerpieces. Not fine for zombies and hydra heads since they are not directly created by fleet centerpieces.
3. The attrition damage logic attempts to force ships into drone behaviors when on the same planet as the fleet centerpiece
Fine for drones, but when a ship doesn't have drone orders set, things don't work as intended
4. If the fleet centerpiece is null, none of this logic functions at all (including attrition damage)
This is why zombies are no longer attritioning, and why the solution to above problems is not as simple as removing the fleet membership from ships created by spawns_on_death
I'm tired so I'm not going to make these changes now, but I do have somewhat of a plan.
Ships spawned from spawns_on_death don't inherit fleet membership, set fleet to null.
Break up the attrition check
First check if the ship attritions
If the ship has a fleet membership, use the current logic
Else check ( this.TypeData.SpecialType != SpecialEntityType.DroneGeneral && this.TypeData.SpecialType != SpecialEntityType.DroneFrigate )
From there, force the unit into full attacker behavior and make it attrition.
Attrition logic is going to get ugly pretty quickly though, as after this change is made there's going to be yet another edge case of drones with non-centerpiece parents, tethidula and shredder drones (also marauders).
Maybe having centerpiece checking in the attrition code is too ugly, and things should revert back to checking if a specific primaryIDKey is on the same planet...
||I would run a potential solution past Chris to see if he has any recommendations.|
||Weapon Master, you fixed this one, right?|
||I never got a save to test the fix, but in theory its fixed with the addition of always_self_attritions|
|May 5, 2019 10:15 pm||wm46||New Issue|
|May 6, 2019 5:34 am||RocketAssistedPuffin||Note Added: 0051526|
|May 11, 2019 1:35 am||wm46||Note Added: 0051582|
|May 11, 2019 1:45 am||wm46||Note Added: 0051583|
|May 11, 2019 1:53 am||wm46||Note Added: 0051584|
|May 11, 2019 11:22 am||BadgerBadger||Note Added: 0051585|
|May 17, 2019 8:30 pm||BadgerBadger||Note Added: 0051672|
|May 18, 2019 9:03 am||wm46||Note Added: 0051697|
|May 18, 2019 8:14 pm||BadgerBadger||Assigned To||=> BadgerBadger|
|May 18, 2019 8:14 pm||BadgerBadger||Status||new => resolved|
|May 18, 2019 8:14 pm||BadgerBadger||Resolution||open => fixed|
|May 18, 2019 8:14 pm||BadgerBadger||Fixed in Version||=> BETA 0.861 Strength Of Remains|