Blood System
Some survival games make use of more than the standard trio of hunger/thirst/stamina. Some have more advanced systems such as a player blood level. When you get hurt, there’s a chance to bleed. As you reach a state of hypotension (ie. no blood) you then start to lose health rapidly. The MSGT comes with a versatile blood system that allows for the player to receive multiple ‘wounds’. In order to stop bleeding, players need to use an item that stops bleeding, as an item that just gives the player health or blood will only prolong the amount of time they have to live.
Setup
Requirements
The player blood system requires the player controller to have a C_Manager-Health component attached to it to function properly. Optionally, it can also interact with the C_Manager-Stamina component, C_Manager-HUD component and C_Manager-VisualFeedback component.
Initial Setup
After adding the C_Manager-Blood component to your player controller, the component merely needs to be initialized properly. By default, this is all handled automatically in the included SurvivalController blueprint by the Initialize function, which is run on Event BeginPlay.
If attempting to implement the blood manager in your own controller, you will be required to run the components function called Event Initialize on startup, parsing a reference to the player controller.
If feedback is desired on the HUD UI or via the visual feedback system, then those respective components must also be attached tot he controller and references must be set within the blood manager. This is also true for the stamina manager if a stamina limitation impact is desired upon player’s entering a state of hypotension. This is all automatically done via the Initialize function within the blood manager, assuming the required components are attached to it’s parent controller.
Settings
Setting | Details | Default Value |
---|---|---|
Disable System | This checkbox will disable the blood system and is useful in testing/debugging scenarios. | False |
Max Player Blood | This value determines what the maximum player blood value can be. In most cases this should not need to be changed for survival game mechanics. | 100 |
Bleed Chance | This value, represented as a decimal percentage, sets the likelihood that a player will start to bleed if they receive damage that exceeds the Minimum Damage value. | 0.5 |
Max Multiplier | This value limits the number of times a player can be wounded. Each extra wound makes the player bleed faster. | 3 |
Minimum Damage | This is the minimum damage the player must receive to have a chance to start bleeding. | 10.0 |
Drain Rate | This value determines how much blood the player will lose each second when they are bleeding. | 2.0 |
Update Frequency | This value determines how many times, per second, this system updates. Higher values will result in smoother mechanics and nicer visual feedback results, but may impact performance (both locally and networked). | 20 |
Limit Stamina | If enabled, when the player enters hypotension mode (ie. zero blood remaining), they will suffer a stamina penalty which will lower their maximum stamina value. | True |
Stamina Reduction | The size of the penalty applied whilst in hypotension mode. | 50.0 |
Hypotension Damage | This value determines how much damage, per second, the player will receive whilst in hypotension mode. | 10.0 |
Low Blood Visual Effect | The visual effect (if any) used to indicate to the player low health values. Will come into effect when the player's blood crosses the Visual Effect Threshold. | Low Visibility |
Visual Effect Threshold | Once the player's blood level drops below this level, the Low Blood Visual Effect (if any is set) will kick in. | 20.0 |
Considerations
Being that player Blood level can decay quite rapidly when players have multiple wounds, and that it requires a specific item, it is recommended to have this system as one of the systems with a higher update frequency as lower rates may result in slower feedback to your players and a less visually cohesive experience.
Comments
So empty here ... leave a comment!