Release Date: 03/29/2022
- FIX triggering an attack damage's effect object to be done before applying the damage to the target entity since the damage can lead to the death of the target entity, its object to be destroyed and the trigger object to subsequently be spawned on a destroyed and invalid entity.
- FIX a bug in the UnitAttack logic where the attacker unit's current position is suitable to launch an attack (no further movement required) and the attacker unit then enters in a loop of stopping the movement which sets the whole unit to idle and therefore cancels the attack target assignment.
- FIX making use of the advanced faction entity target picker options (targeting all units, stored units, external units, buildings) for the Converter and Healer components.
- ADD LeaveGame() method to the IGameManager interface which allows to safely leave a map scene back to a previous menu scene.
- ADD IsNPCFaction helper method which allows to take an IEnumerable of IEntity instances and returns true only if the whole set of entities belong to a NPC faction.
- ADD Gizmos that show the size of a Border component when the game object with the Border component is selected in the hierarchy.
- UPDATE generating path destinations for unit attack positions to test for both whether the attack position is in the defined attack range of the attacker unit and that it passes the LOS constraints. If any of the former is not satisfied and the attack command is flagged as a playerCommand then a movement command to the closest generated attack position will instead be passed.
- UPDATE IAttackComponent to introduce the SetSearchRangeCenterAction which allows to enable a target finder (alongside the default one) that scans the whole territory defined by an input IBorder component to find attack targets.
- UPDATE InputManager to allow for input commands flagged with playerCommand to be authorized from NPC factions on the master instance running the game.
- UPDATE the AttackManager to not only pick the closest generated path destination to the source attacker unit as the attack position but the closest one that is inside the allowed attack range in regards to the target entity. In case of a player issue attack command and where all generated path destinations fail to be a valid attack position, the closest path destination is chosen to be passed to the attack command which will then be interpreted as a movement command only.
- UPDATE GameManager to not allow the game to start if there is more than one instance that implements the IGameBuilder interface.
- ADD PlayerCommand boolean property to the TargetEntityFinder class which allows to launch the target assignment command flagged as a playerCommand. By default this is set to false and must be set independently outside of the constructor.
Changes in individual modules can be found in the individual module guides.