v2022.1.0
Release Date: 03/11/2022
Changes
- FIX an error that occurs when the NPC faction is attempting to read the amount and capacity of the assigned population resource type in the NPCUnitCreator component without checking whether that resource type has been defined in the map scene or not.
- FIX grid search cells subscriptions to movement events when a unit is moving and its movement component gets upgraded.
- FIX fetching entity components when they are upgraded and disabling the upgraded instance correctly.
- FIX a bug in the NPCBuildingConstructor that forces it to ask for a builder's unit active regulator when a building is placed and there are no active unit regulators registered as builders.
- FIX a bug where resource collectors get stuck when they reach maximum capacity while there is no available drop off point to drop resources at and they remain stuck even when there is a drop off added. They now no longer attempt to collect the same resource that made them reach their maximum capacity and can automatically set targets on other components other than the ResourceCollector and as soon as a drop off point is added to their faction, they are able to drop off the collected resources and resume with finding a target with the ResourceCollector component.
- FIX adding units to unit carriers belonging to free entities (when the unit carrier free faction behavior allows for it) when they arrive at the addable position of carrier.
- FIX disabling components when an entity's faction is updated.
- FIX allowing invalid or duplicate elements in the initial resource selector in a singleplayer or multiplayer lobby.
- ADD a field to the CarriableUnit to enable/disable ejecting the unit from its current carrier when the local player moves it outside the carrier.
- ADD option to the Game Audio Manager to stop playing music on game end (when local player loses or wins a game).
- ADD options to pick spawnable prefabs in each map scene in the InputManager inspector. You can now choose to fetch all entity prefabs in the project to be spawnable, manually input a list of spawnable prefabs or use a code/category target picker to include/exclude entity prefabs.
- ADD Toggable Objects field to the Attack Weapon tab of the UnitAttack and BuildingAttack components allowing to input a list of objects that are enabled when the corresponding attack component is enabled and disabled otherwise.
- ADD a debug field for BuildingPlacer component that prints a debug statement when a building owned by the local player is getting placed and shows whether the conditions required to place are fulfilled or not when the placement instance position is updated.
- ADD camera boundaries to base terrain gizmos to appear when the game object holding the TerrainManager component object is seelcted.
- ADD original fire particle effect to demo files to be used for manual guides.
- ADD checks for the index of a model cache aware child object input field when checking for its validity.
- ADD validity checks for health states assigned objects when they are initialized.
- ADD validity checks for colored renderer assigned renderer components when they are initialized.
- ADD Tasks Queues. A tasks queue allows the local player to hold down a key, launch commands on an entity without them taking effect directly but instead having them added to a queue and then executed by the entity in order of launch. The tasks queue can be enabled through the TaskManager component in a map scene and can be enabled individually for each entity by attaching the EntityTasksQueueHandler component to it. In order to interrupt and clear the tasks queue, you only need to launch a command on the entity without having the tasks queue key held down. The tasks queue works with all components that can have a target assigned to them, meaning the ones that implement the IEntityTargetComponent interface.
- UPDATE ResourceCollector to check whether it is required to drop off its collected resources (if they hit maximum capacity) when its target resource is depleted instead of always going to a drop off target when it is depleted.
- UPDATE new map configurations and new entity base prefabs to have an empty model base objects for entities with EntityModelConnections component attached to it and with the model object (one that includes the MeshRenderer) being a child object of it.
- UPDATE base terrain's camera boundaries settings to allow to set separate margins for the upper boundaries and the lower boundaries. Depending on the camera rotation, different margin values might need to be applied in order to avoid issues occurring when the model cache manager is enabled.
- UPDATE DropOffSource to keep the last collected resource type in a property to be used when there is a drop off task launched without an active resource collection. This fixes a couple of Null Object Reference errors that are encountered in some reported issues with the drop off behavior.
- UPDATE InputManager to place prefabs of entities that can be spawned during a game under one parent object under the name of PrefabsParent, child of the GameManager object.
- UPDATE EntityModelConnections component to hide its read only fields in the inspector since they were only there for debug purposes.
- UPDATE model cache aware object input inspector drawer to only allow to assign children objects of an entity model to the field in prefab mode (where entity model connections can be properly setup).
API
- FIX ObjectPool base class to activate pooled objects when they are retrieved. This fixes some reported bugs such as the pooled minimap icons not being visible at a later stage of the game.
- FIX re-assigning the index of entity model children objects in the model cache aware input fields when the entity model is updated to a parent of the previous entity model.
- ADD EntityComponentUpgraded event to IEntity, which is called when an entity component on an entity is upgraded and provides arguments of the upgrade source and target entity components.
- ADD TargetStop event to IEntityTargetComponent, which is called on entity components that can have an active target whenever that target is reset.
- ADD SetTargetInputData struct which can be used to a set a target for a IEntityTargetComponent instance which offers more options and flexibility than the TargetData struct. The latter can still be used to set targets for entity components so your custom scripts using it will not break.
- ADD the option to cache the activity status of an entity model child object. When caching is enabled, the activity of the model child object will be stored in memory but not reflected in the actual active status of the child game object itself.
- ADD a field attribute for model cache aware input fields that allows to impose limitations on what object can be assigned to the field: allowing entity model parent, allowing entity model children and allowing non children as options.
- ADD the option to activate/deactivate selection of an entity using the IsActive property of IEntitySelection.
- UPDATE LaunchAction and LaunchActionLocal to only use SetTargetInputData struct instead of just the TargetData struct as a parameter. If you have custom components calling LaunchAction methods then these should be updated. It is worthy to note that your components should not natively access those two methods but instead use other provided methods that inherently call these.
- UPDATE ResourceEventArgs to have an optional ResourceTypeInfo parameter which can be directly assigned or inferred from the required Resource parameter.
- MOVE essential UI scripts to the RTS Engine Core folder so that the Basic UI module folder can be removed without causing any dependencies errors
Demo
- ADD Tasks Queue for villager units only where the local player can launch tasks into their queue while holding the shift key.
- UPDATE the volume of the sword wing demo audio clip by reducing it.
- UPDATE initial resource options in the singleplayer and muliplayer lobby menus to include all collectable and generatable resources.
Documentation
- ADD FAQ guide.
- ADD a guide that goes through the process of enabling and setting up tasks queues for entities.
- ADD a guide that goes through the process of fetching the right spawnable entity prefabs for a map scene.
- UPDATE instructions on setting up FogOfWarUnit component for entities the new version of the integration module.
- UPDATE guides on setting up the terrain and model caching best practices to reflect new changes in choosing the right margin values for the camera boundaries.
- UPDATE guides that touch on UnitMovement, ResourceCollector, DropOffSource, UnitAttack and BuildingAttack components with updated screenshots of inspectors and details regarding updated and new fields.
Modules
Changes in individual modules can be found in the individual module guides.