v2022.2.0
Release Date: 04/27/2022
Changes
- FIX a bug where the entity model connections to transforms, renderers or animators has a null entry which causes a problem for the indexes that are registered in the inputs that eventually request to access the entity model children objects.
- FIX an error that appears when ground attacker units are not able to find an attack position to engage with an air unit.
- FIX a bug that allowed units to continue moving towards their destination when the game is paused.
- FIX a bug where task panel UI is does not automatically refresh when a unit is created and when a building or unit is destroyed.
- FIX a bug that did not allow the Converter to convert buildings in their construction phase.
- FIX ControlType asset types not being added into the editor cache when a new one instance of the asset type is created or modified until an asset type of any other is created or modified.
- FIX a bug that destroyed a building resource entity instance when it is upgraded or its faction is updated (converted).
- FIX launching movement commands with SetTarget method implementations in the UnitMovement class as they were adding in unnecessary offset values resulting in false path destinations.
- UPDATE flashing selection renderer with a friendly color when targeting a unit carrier. This fixes the issue where units target a carrier that does not belong to any faction where its selection renderer previously flashed with enemy color.
- UPDATE the Border component to allow for the Border Prefabs field to allow for multiple border prefab objects to be defined and spawned when the Border component is activated.
- UPDATE AttackManager to allow launching of attack-move commands when the local player is holding a key defined in the component's inspector as long as the selected entities are allowed to launch attack-move commands.
- UPDATE RTS Engine menu with a section dedicated to resource buildings only.
- ADD Attack Target Position as a field in the UnitHealth and BuildingHealth component inspectors that allows to define a position from a child object of the unit or building to be used as the target position for attack objects targeting the unit or building. If no target position is specified, the position of the child object that has the UnitSelection or BuildingSelection components will be used.
- ADD Forbidden Terrain Areas array field to the Rallypoint component. When populated, the rallypoint can not be placed at a position that covers any of the terrain areas in the array.
- ADD fields to the Rallypoint component that allows it to reposition the rallypoint object when a building is in its placemenet state by sampling positions on the radius of the source building to satisfy the forced and forbidden terrain area conditions. The original position of the building's rallypoint in the prefab is always tested first before sampling positions to test.
- ADD the option to force a resource collector to prioritize searching for a resource of the same type when their last actively target resource is depleted or when the player commands them to collect a certain target resource that is at maximum worker capacity. The search would occur from the target resource position and would have the same radius as the auto-search for the collector.
- ADD a Attack-Move tab to the UnitAttack component's inspector which includes two fields, one allowing to turn on/off attack-move for the entity and another used to define a task UI asset that allows to launch an attack-move command when it is clicked in the task panel.
- ADD new_resource_building prefab as a new prefab template that can be used to create a new resource building type through the RTS Engine menu.
- ADD checking for the entity's faction ID validity when the entity is initialized
API
- UPDATE MovementSource, LaunchAttackData and SetTargetInputData struct types, which are used as arguments for launching movement, attack and target-based commands on entities, to include fields that allow to identify the command as an initiator for a attack-move command which can be passed between the struct types until the movement path destination for the given command is calculated.
- ADD FactionEntityToAmount as a read only dictionary property that holds the active spawned amount of each faction entity code.
- ADD FactionEntityCategoryToAmount as a read only dictionary property that holds the active spawned amount of each faction entity category.
- ADD BuildingPlacementPositionUpdated event to IBuildingPlacer, triggered each time the placement instance of a building has its position changed.
- ADD IsCooldownActive boolean property for IAttackComponent which returns whether an active cooldown is in place for the attack or not.
- ADD IsAttackMoveEnabled boolean property for IAttackComponent which returns whether the attacker entity can perform an attack-move command or not.
- ADD IsAttackMoveActive boolean property for IAttackComponent which returns whether the attacker entity is currently executing a command that involves movement and has attack-move enabled for the duration of that movement.
- ADD IAttackTargetPositionGetter, an interface that can be implemented in a component and attached on a faction entity or its children objects to allow it to override the attack target position of the faction entity. By default the attack target position of a faction entity is the world position of the child object that has the selection component (so eitherUnitSelection or BuildingSelection). An example implementation of this interface is in the FactionEntityAttackTargetGetter component which allows to input a target position as a transform and adds an offset to it which can be chosen through the inspector.
- ADD OnAwaitingTaskTargetSet to IEntityComponent to allow the handling of the actions of awaiting tasks (tasks that the player can launch from the panel and then assigns a target entity or terrain position with the left mouse click to pass to the corresponding entity components) to happen in the IEntityComponent implementations themselves.
Demo
- REMOVE unnecessary models and prefabs in demo folder.
- UPDATE town center demo building prefab's Border component.
- UPDATE demo map scene by baking an air terrain area navigation mesh.
- ADD a terrain area for the air terrain navigation area.
- ADD spacecraft unit prefab as an example for an air unit.
Documentation
- UPDATE manual guides that involve the use of the following components to show the updated inspectors and provide an explanation for the new fields added: Border, UnitHealth, BuildingHealth, UnitAttack, AttackManager, Rallypoint and ResourceCollector.
Modules
- Fog Of War
- FIX a bug where new enemy buildings that have post discovery enabled are completely visible when placed in an area that is not completely hidden by the fog of war.
- FIX a bug where local player unit models are hidden when spawned.
- Minimap
- FIX a bug in the MinimapIconManager where an entity's visibility change can trigger an error with spawning a map icon that already exists.
- ADD enabling attack-move for movement commands launched through the minimap (clicking on minimap with the right mouse button when having entities selected).
- Basic NPC
- ADD event logs for NPCUnitCreator component to log the status of each regulator creation request (for each unit prefab whose creation is requested to be handled by the NPCUntiCreator, it will log the result of the request: regulator created successfully, regulator already exists or unable to find a valid regulator).
- Advanced Selection
- ADD SelectionGroupHandler to allow for creating and assigning selected entities into a selection group, appending or subtracting from that group and selecting that group all by key combinations that can be defined directly through the inspector.
- Save System
- ADD support for saving and loading entity target commands that are launched as attack-move commands.