v2023.0.2
Release Date 09/25/2023
Changes
- FIX Rallypoint script to allow it to be placed on any of the children object of a faction entity prefab instead of it being forced to be at the parent object level.
- FIX property drawers for entity code and category defining and selection as well as unify and refactor the logic behind the custom string property drawers in the inspector.
- FIX a bug in entity component progress target components (such as the Builder and ResourceCollector components) where the position of the child object that the component itself is attached to is sometimes used instead of the actual position of the entity (parent object of the entity) to determine whether the entity can enter or must stop its progress task.
- FIX a bug in DropOffTarget where the requirement of a drop off position (instead of moving the unit to the range of the drop off target entity) now requires using the movement stopping distance instead of the whole drop off target entity radius.
- FIX a bug with healers attempting to target units that are carried by entities other than the source healer.
- FIX a bug that resets the custom mouse cursor based on faulty conditions.
- FIX a bug where placing a building in a position where units were just destroyed keeps attempting to move the destroyed units outside the building's borders.
- UPDATE the TargetEntityFinder to not be instantiated at all when it is disabled by default through an entity component and to be disabled when it is only enabled with entity in the idle state only while the entity is not idle.
- UPDATE TimerModifier to not allow to trigger the global timer through callback when the timer is removed from an external component.
- UPDATE FactionSlotStatsUIHandler component to allow for multiple resource types that can be displayed with each faction slot's stats text.
- UPDATE BuildingPlacer to fetch components implementing the GetComponentsInChildren interface that define additional conditions for the placement from the same object the BuildingPlacer is attached to as well as its children objects.
- ADD a Debug tab for entity components that show properties of the components during runtime that range from general properties (is component active, is component idle, etc..), properties about the source entity itself, properties regarding the target of the entity component if it can have one, properties regarding the target entity search (including live timer value) as well as component specific properties and information such as currently collected resources for the DropOffSource component, fields about the current attack iteration and what is blocking the next iteration from starting (LOS, cooldown, position..) for the UnitAttack and BuildingAttack components, field on the current state of the carrier component as well as the stored units for the UnitCarrier component, and more.
- ADD gizmos that can be inspected in the scene tab when an entity component is selected and which can be enabled/disabled from the debug tab of each entity component. They include gizmos for the entity component target and radius, progress centers and ranges, progress lines that show where the source entity need to be so that it can start its progress, gizmos for path destination and movement next corner in the path for the UnitMovement component, gizmos displaying the minimum and maximum attack ranges as well as the expected attack position of the attacker unit, and more. The Debug tab alongside the gizmos allow to debug the runtime behavior of entity components allowing you to find and fix the configurations that are causing a problem in the expected behavior of these components.
API
- ADD FactionResourceHandlerToString overridable method to GameUITextDisplayManager that formats the current amount (and capacity if valid) of a faction resource into a string.
Demo
- ADD Ping Resource field which takes a resource type asset whose amount is updated with each faction slot's ping value during a multiplayer game. This resource type can then be used and fetched by other components during the game.
Modules
- Mirror Multiplayer
- UPDATE the MultiplayerServerGameManager script to share the RTT (ping) of each client with all clients during each lockstep of the game.
- UPDATE some non game breaking logged errors in the MultiplayerServerGameManager component to simple warnings, since they are not, by their nature, game/simulation breaking but important enough to be logged as warnings.
- ADD "Max Awaiting Receipt Turns" field to the MultiplayerServerGameManager component where you can specify how many consecutive turns have to pass while the server is waiting for all clients to confirm that they received the last relayed inputs before the server freezes the game. The minimum is 1.
- ADD player and logger messages that track the progress of having individual clients/factions being validated when the game is starting and is being frozen until all clients connect and the game is unfrozen and ready to start.
- Mobile Controls
- UPDATE UI elements in the mobile controls demo game so that they work with different mobile and tablet screen sizes and aspect ratios.
- Basic NPC
- FIX NPC faction logic to only consider launching tasks from UnitCreator, UpgradeLauncher and Builder components if the underlying components are in fact active.
- FIX a bug in the NPCUnitRegulator component where it does not unsubscribe from events successfully when it gets destroyed (when the associated NPC faction is defeated).
- FIX NPCDefenseManager custom editor script field "Cancel Territory Defense Reload Range" not showing up.
- Fog Of War
- FIX a bug with the Animator controllers of units being deactivated when the units are hidden by fog which translates to the UnitMovement component not being able to complete an active movement, making the units stuck.
- FIX setting the initial visibility of entities in the fog of war.
- FIX an issue where an entity is hidden by fog and the player is able to right click it and target it with its currently selected entities.
- ADD a new demo scene with the same core demo game elements with FoW enabled.