Files
OTG_8/Assets/_Scripts/Core/GameEvents.cs
T
2026-06-04 23:22:13 +03:00

45 lines
2.6 KiB
C#

using System;
using OTGIntegrated.Abilities;
using OTGIntegrated.Items;
using OTGIntegrated.Quests;
using OTGIntegrated.Talents;
using OTGIntegrated.Weapons;
namespace OTGIntegrated.Core
{
public static class GameEvents
{
public static event Action<ItemData, int> OnItemAdded;
public static event Action<ItemData, int> OnItemRemoved;
public static event Action<string> OnEnemyKilled;
public static event Action<QuestData> OnQuestStarted;
public static event Action<QuestData> OnQuestProgressChanged;
public static event Action<QuestData> OnQuestReadyToComplete;
public static event Action<QuestData> OnQuestCompleted;
public static event Action<int> OnExperienceGained;
public static event Action<int> OnLevelUp;
public static event Action<int> OnTalentPointChanged;
public static event Action<TalentData> OnTalentLearned;
public static event Action<AbilityData> OnAbilityUsed;
public static event Action<WeaponData> OnWeaponChanged;
public static event Action OnStatsChanged;
public static event Action<string> OnNotificationRequested;
public static void RaiseItemAdded(ItemData item, int amount) => OnItemAdded?.Invoke(item, amount);
public static void RaiseItemRemoved(ItemData item, int amount) => OnItemRemoved?.Invoke(item, amount);
public static void RaiseEnemyKilled(string enemyId) => OnEnemyKilled?.Invoke(enemyId);
public static void RaiseQuestStarted(QuestData quest) => OnQuestStarted?.Invoke(quest);
public static void RaiseQuestProgressChanged(QuestData quest) => OnQuestProgressChanged?.Invoke(quest);
public static void RaiseQuestReadyToComplete(QuestData quest) => OnQuestReadyToComplete?.Invoke(quest);
public static void RaiseQuestCompleted(QuestData quest) => OnQuestCompleted?.Invoke(quest);
public static void RaiseExperienceGained(int amount) => OnExperienceGained?.Invoke(amount);
public static void RaiseLevelUp(int newLevel) => OnLevelUp?.Invoke(newLevel);
public static void RaiseTalentPointChanged(int points) => OnTalentPointChanged?.Invoke(points);
public static void RaiseTalentLearned(TalentData talent) => OnTalentLearned?.Invoke(talent);
public static void RaiseAbilityUsed(AbilityData ability) => OnAbilityUsed?.Invoke(ability);
public static void RaiseWeaponChanged(WeaponData weapon) => OnWeaponChanged?.Invoke(weapon);
public static void RaiseStatsChanged() => OnStatsChanged?.Invoke();
public static void RaiseNotification(string message) => OnNotificationRequested?.Invoke(message);
}
}