EA27

*Note: The text was directly copied from the Steam update page to serve as a placeholder.*

Hey hey everyone, EA27 is finally here! Holy smokes this took a long time...

So what's new? Basically I have been working on getting story missions to work with the game. On top of creating a story mission I have spent a lot of time refactoring the underlying game tech so that it works with both the original instant action style sandbox gameplay and the new designed style of the story campaign. You can see the results of this in the new story mission available in the instant action menu. This mission is a part of the story campaign I announced a while back, and while it is still a work in progress (this is Ravenfield after all...) it is still playable from start to finish. In this mission, you're tasked with assaulting the Citadel and sabotaging the enemy air capabilities. It even opens with a cutscene featuring shiny new fully-animated characters :O

The idea behind this mission is to bring together parts of both Spec Ops and Battle gameplay, so you will play as both Talon and your standard Eagle grunt in the same mission. All game logic that drives this mission has been designed using the new Trigger System - a set of logic components that can be connected together using signals in the RF Mod Tools for Unity. The point of this system is to make story mission map design much more approachable for modders. One of the primary goals for the Citadel mission was to design the Trigger System itself along with the mission, making sure that similar missions can be created using only Triggers - zero coding required!

This Trigger System is not limited to story missions, however. You can attach Trigger System components to any modded GameObject, meaning it can be used to drive game logic on your modded maps, vehicles, weapons, projectiles, etc. While the Trigger System can be viewed as an alternative to Ravenscript, more complex logic are usually easier to design using Ravenscript, but the choice is left entirely to the modder. The two systems are completely interoperable as you can send and receive Trigger System signals from a Ravenscript ScriptedBehavior component. Along with the Trigger System, there are other mission-related components that can be used to manually set up AI paths, detect player entering triggers, trigger cutscenes and more.

On top of the new game systems, you will probably notice that the AI has been streamlined quite a bit, and that the game plays a lot better than it did in EA26. This is due to the numerous AI changes that had to be made in order to accomodate the new trigger system and custom game mode tech. You should see the AI using their weapons in a more sane way, and utilizing cover better. The game HUD has also received a much-needed makeover, and now has a more modern and clear style. Additionally, the new HUD is modular, so custom HUDs can override specific parts of the official HUD as needed.

Now that this update is out, what's next? Most of the very time-consuming task of redoing the game infrastructure to support story missions and the Trigger System is now done. This means that you can expect much more frequent updates in the future, mainly focused on adding more official story missions and eventually becoming the story campaign. These tools are also being made available to modders right away, so modders will be able to create playable custom game modes or story missions inside level files. Eventually, modders will be able to create fully fledged custom game modes playable on any map, but we are not quite there yet, maybe for EA28 :D!

## Full Change Log

**Game changes**

* Added WIP story mission that takes place on the Citadel map
* New HUD design!
* Added hangar area to the Citadel map
* Navmesh generator now fully support terrain holes
* Forced navmesh generator to use highest detail representation of terrain while generating.
* Optimized the germanic house models used on Citadel map, drastically reducing the drawcalls
* Fixed a bug where alt weapons would not animate correctly after getting up from ragdoll
* Added checks to prevent option menu values like mouse sensitivity and FOV from randomly changing while playing the game.
* Added support for moving platforms such as elevators!
* You can now stand on top of vehicles without being rammed (Basically allowing you to ride on top of tanks and stuff lol). This works up to a speed threshold of 20 m/s
* Added support for custom game modes bundled inside maps
* Fixed a bug where weapons using patched animations (due to them not being EA26+ compatible) would sometimes spam error messages.
* Made soldier animation culling more robust, should fix a rare bug where animations would sometimes be culled when they shouldn't.
* Improvement to player third person lean animation transitions.
* Improvements to soldier animation state machine transitions so animations between different stances flow better and faster.
* The capture state of the flag the player is capturing will now be updated every frame, meaning that the flag capture progress will look smoother.
* The kill cam will now move slightly when the direct path between the player and the killer bot is obscured.
* Fixed a bug where maps with multiple identical flag pairs in the neighbor manager would not start.
* Added slight spread to Rhino MG
* Cassowary missile tracking/lock sounds will now play in bomb sight.
* Fixed a bug where bots could sometimes shoot through walls
* At very short ranges (< 1m) Players cannot deal friendly fire, this mitigates the issue where friendly bots run in front of you just as you fire your weapon.
* Fixed a bug where flag capture volumes sometimes would not initialize correctly at the start of a map
* Added follower invisibility system to the citadel mission (Copying over the functionality from spec-ops where your squadmates will be invisible to enemy detection while following you). This system is now completely modular and is exposed to the trigger system and eventually to RS.
* Added Detection Groups, where multiple AI squads will alert each other whenever one of them spots the enemy. These components can also send trigger signals whenever a group is alerted.
* Doubled suppressed Patriot projectile falloff range so it's more effective at longer ranges.
* Fixed some spawns at the Coastline flag Cliff that were previously under the terrain
* Refactored the vehicle HUD system to be more robust when changing cameras
* Added support to compeltely disable the player's game input, which is useful for cutscenes etc.
* Fixed a bug where the player could sometimes end up on the wrong team in the scoreboard UI
* Improved suspension values on Jeep and Quadbike so they should be a little less bouncy
* Reduced friction on ground vehicle hitbox colliders so they don't get stuck quite as hard when running into stuff
* Refactored the audio system to make it easier to control audio mixing from Ravenscript/Trigger system
* Master AudioMixer is no longer affected by filtering on audio events such as deafening and being inside enclosed vehicles, so you can use this group to play unfiltered audio even when using filters on all other ingame audio.
* Ingame audio will now fade in when starting a match
* Updated lightmaps on Temple and Citadel maps.
* Updated to Unity engine 2020.3.48f1

**Custom Game Modes**

* Added support for custom game modes, at the moment custom game modes can only be bundled inside maps, but eventually it will be possible to also use custom game modes on any level.
* Added lots of new systems that allow for story missions to be played.
* Added support for freezing the game during cutscenes, etc.
* Added support for loading/saving data between level restarts. This is currently limited to checkpoint data, but will be expanded in future updates. It will also be possible to save this data between game sessions for persistent data loading and saving for mutators and custom campaigns.
* Added WIP Citadel story mission that can be played via the instant action menu. This mission is entirely designed using the new Trigger system!

**AI Changes**

* Squadmates following their leader will now try to move in a way so they can always have direct line of sight to the squad leader, meaning squads stick closer together in areas with lots of cover.
* Fixed a bug where the AI sometimes would pick really bad cover points while defending a flag
* The AI will now prefer to spread out more when picking a cover point.
* Fixed a bug where the AI would not fire mortar style weapons correctly
* Improved AI weapon switching, so now they should be way more consistent and not switch out their weapon all the time.
* Fixed AI crouching/leaning while using cover points.
* When using slow fire rate weapons like snipers, bots will now wait a little after taking a shot before crouching when behind cover.
* Bots with skill level veteran or higher will now lean while checking corners in close quarters areas.
* Fixed a bug where bots would sometimes walk through geometry when getting a new path while traversing a pathfinding link.
* Fixed multiple bugs where bots would get corrupted paths when walking to capture points after being ragdolled/strafing a target.
* When walking around a corner, bots that lean will now lean more or less depending on their look direction. This should result in smoother looking leans and prevent weird leaning behaviour when aiming backwards, etc.
* Bots will no longer play emote animations while targeting an enemy or reloading.
* Fixed a bug where bots would sometimes look at the ground when approaching the end of their current walking path.
* Bots now go to walkable navmesh nodes inside of the capture range/volume when attacking a flag, this should prevent edge cases where attacking squads think they are attacking a flag when in reality they are standing outside of the capture zone.
* AI can no longer deal friendly fire while using normal projectiles. They can still deal friendly fire by splash damage, however. Previously, AI could deal friendly fire damage when hitting a target 100 meters or futher away
* After firing their weapon, bots will not be able to look around for one second (unless they spot another target to fire at). This fixes an issue where bots would sometimes fire at an enemy, but then look in a completely other direction and continue holding their fire input for a split second, randomly firing projectiles across the level.
* Lots of other small tweaks and improvements to the AI

**Ingame Map Editor**

* Fixed some map editor props not generating navmesh correctly.
* Fixed skeleton hat missing mesh
* Fixed missing colliders on snowy arch and house stilts

**Modding**

* Added displayName field for weapons, this is the name that shows up in the new UI.
* Dropped support of the legacy animation component. This component will no longer load from mods. Please use the new animator controller component instead!
* Added component for animated vehicles to drive engine audio from their current speed, this is really useful for cutscenes where the vehicle movement is pre-animated such as the breaching APC in the citadel mission.

**Trigger system**

* Added ScriptedPathGroups which can be used to manually design paths for bots to follow.
* Added several dozens of logic components that can be used to contorol game flow

**Ravenscript**

* Added a killCredit property to weapons which is automatically set to whoever equips a weapon, but can be overridden through this value. This value can also be used to set whoever should get the kill from scripted weapons such as automatic turrets, etc.
* Renamed Projectile.source to Projectile.killCredit to match weapon naming convention. Accessing .source will still work, meaning mods using the older name will still work fine.
* Fixed a bug where weapons could not fire projectiles through the Shoot() function unless they were first equipped by an actor. This means that weapons can now be fired via scripts without having to be picked up.
* Exposed functions that can be used to hide individual elements of the new ingame UI. This is great if you're making a custom HUD and only want to replace parts of the vanilla UI.
* Exposed PlayerHud.playerOrderState to RS, which can be used to drive player squad status labels in your custom HUDs
* Added Actor functions to more easily access actor skinned mesh renderers
* Exposed fonts to Ravenscript and DataContainer component
* Various Ravenscript bugfixes

Coming up, I'm goin to finish up the citadel story mission and improve the support for custom game modes for EA28. In the meantime, I hope you'll enjoy this update!

/Johan (SteelRaven7)