The Pyre Objective is Largely Code driven, though there is some Kismet Setup. It is one of the less flexible objectives to work with. For the sake of this example, I will be using the example map AOCTO-3_Pyre. Functionality covered:
Actors and Properties
All of these can be found in the Content Browser and Actor Classes. Aside from AOCHillsideSignalFire, they can be drag and dropped into the map from the content browser, or right click + add.
For this example:
Particle Emitter- ParticleSystem'CHV_PartiPack.Particles.P_fire_blazing1'
Static Mesh- StaticMesh'CHV_Viking_Model_Pack.Meshes.SM_Firepit'
A few minor setup notes on these actors. In the settings for the Signal Fire, you can control how long it takes to light or extinguish it. Under TBS Hud, the progress bar settings are set to match the desired time.
As a general rule. Remove Collision from meshes that are overlapping others. The Cylinder collision of the Pyre will block players from entering the Static Mesh base. So go ahead and set it to Collide_BlockWeapons in the actor properties (F4). This will make it so weapons will clash with it, but not players.
An AOCAmmoBox is also needed.
Faction Restrict it to EFAC_Agatha, and set the Ammo Type to EAMMO_Torch.
The Skeletal Mesh is: SkeletalMesh'CHV_torchpit.Meshes.Sk_Torchpit'
Make sure that under the Skeletal Mesh Component, you assign it a Physics Asset: PhysicsAsset'CHV_torchpit.Meshes.Torchpit_Physics'
The initial setup is similar to previous examples.
The main thing being done here, aside from initialization, is the hiding and disabling of the Torch Pit. This is one way of preventing players from activating the Pyre prior to round start. The objective and it's particle are also disabled, though this is more precautionary.
Here is the main Kismet driving the event. It is mostly comprised of Remote Events, controlled through code.
Here are the objective settings. The target is an object variable created from the Actor. Select the mesh in the editor, then in Kismet right click > New Object Var using AOCHillsideSignalFire to creat that variable.
Next, we enable the torch pit collision and objective actors when the round begins.
All the functionality is in these remote events. All of these events are created similar to how the object variable was created. Simply select the actor in the level, then in Kismet Right Click > Create Event using AOCHillsideSignalFire. The only properties to worry about are highlighted in the AOCHillsideSignalFire Take Damage Event. The Take Damage Event is looking for only the damage type AOCDmgType_Torch. There is a (5) Second Re Trigger delay to prevent re-activation. The Take Damage Event enters a Gate, which closes after activation. The Gate goes into a Toggle which enables the Fire Particle and Burning Sound. Once this event is fired, it will progress the objective unless the Extinguish Event is fired before completion.
The Extinguish Event occurs when the opposing team has successfully stomped out the fire for the needed time. This time was setting in the actor properties earlier in this tutorial. If that is the case, It turns off the Fire Particle and stops the Burning Sound. It then re opens the gate, allowing the Event to be triggered again.
If the Defending team fails to Extinguish in time, the Objective Complete will be fired, ending the Objective/Game. It will also disable the Particle and Sound for the sake of performance.