Heroic Engine
  • Welcome
  • Getting Started
    • Quickstart
    • Example Games
      • Tic Tac Toe
      • Turn based duel
  • Basics
    • Injection Manager
    • Engine Systems
      • Core Systems
        • Events Manager
        • Input Manager
        • Localization Manager
          • LangText component
        • Music Player
        • Sounds Manager
        • Time Manager
        • Scenes Loader
        • Day Time Controller
        • Weather Controller
      • Gameplay Systems
        • Currencies Manager
        • Player Progression Manager
        • Quest Manager
        • Random Events Manager
        • Hittables Manager
        • Dungeon Generator
      • UI Systems
        • UI Controller
        • Countdown Controller
    • Editor Tools
      • Clear Saves
      • Mobile Build Optimizer
      • Create System
      • Icon from Prefab Generator
    • Engine Utilities
      • PoolSystem
      • DataSaver
      • ComponentExtensions
      • MaterialExtensions
      • SpriteUtils
      • SlowUpdate
      • StringUtils
      • TypeUtility
      • MathHelper
      • VectorUtils
      • TransformUtils
      • MeshUtils
    • Useful Components
      • Floating Item
      • Fly Up Text
      • Label Scaler
      • Ragdoll
      • Rotate To Camera
      • Orbital Camera
      • Rotator
      • Texture Mover
      • Hittable
      • Projectile
      • Projectile2D
      • LifetimeObject
      • Spawner
      • Colorized Particles
      • Draggable2D
      • SaveableTransform
    • Useful Attributes
Powered by GitBook
On this page
  • Parameters in inspector
  • Available methods
  1. Basics
  2. Engine Systems
  3. Gameplay Systems

Random Events Manager

Presented by IRandomEventsManager interface, this system works with random events and provides such mechanisms like Bad Luck Protection and Good Luck Protection for them.

To use this system, inject IRandomEventsManager interface into your class, as shown below:

[Inject] private IRandomEventsManager randomEventsManager;

Parameters in inspector

possibleEvents – reference to scriptable object which contains a collection of possible random events.

Available methods

bool DoEventAttempt(string eventType)

This method attempts to fire random event with certain eventType. Returns true if attempt was successful and event has occurred.

Example:

if (randomEventsManager.DoEventAttempt("SuperRareItemDrop"))
{
    Debug.Log("Super rare item dropped!");
}

bool DoEventAttempt(RandomEventInfo eventInfo)

This method attempts to fire random event described in eventInfo. Returns true if attempt was successful and event has occurred.

Example:

if (randomEventsManager.DoEventAttempt(superRareEventInfo))
{
    Debug.Log("Super rare item dropped!");
}

void ResetEventChance(string eventType)

This method resets random event chance (cancels all modifiers applied by Bad Luck Protection and Good Luck Protection logics).

Example:

public void StartNewGame()
{
    randomEventsManager.ResetEventChance("SuperRareItemDrop");
}

float GetEventChance(string eventType)

This method returns current chance of eventType event occurance.

Example:

float eventChance = randomEventsManager.GetEventChance("SuperRareItemDrop");

Debug.Log($"Super rare drop chance: {eventChance}");
PreviousQuest ManagerNextHittables Manager

Last updated 5 months ago