using System.Collections.Generic; using Cielonos.Core; using Cielonos.MainGame.Characters.Inventory; using DamageNumbersPro; using Sirenix.OdinInspector; using UnityEngine; namespace Cielonos.MainGame { [CreateAssetMenu(fileName = "BasePrefabsCollection", menuName = "Cielonos/BaseCollections/MainGameBaseCollection")] public partial class MainGameBaseCollection : BaseCollection { } public partial class MainGameBaseCollection { public Dictionary outlineColorCollection = new Dictionary(); public Dictionary itemRarityColorCollection = new Dictionary(); } public partial class MainGameBaseCollection { public Dictionary meshEffectCollection = new Dictionary(); } public partial class MainGameBaseCollection { public Dictionary enemiesCollection = new Dictionary(); } public partial class MainGameBaseCollection { public Dictionary hudTextCollection = new Dictionary(); public DamageNumber DamageNumber(Attack.AttackType attackType, bool isCritical) { if (attackType == Attack.AttackType.Blank) { return hudTextCollection["DN_Blank"]; } string prefix = "DN"; string typeStr = attackType.ToString(); string criticalStr = isCritical ? "Critical" : "Normal"; string dnKey = $"{prefix}_{typeStr}_{criticalStr}"; if (hudTextCollection.TryGetValue(dnKey, out var hudTextPrefab)) { return hudTextPrefab; } throw new KeyNotFoundException($"HUD Text Prefab with key '{dnKey}' not found in BasePrefabsCollection."); } public DamageNumber InfoText() { return hudTextCollection.GetValueOrDefault("Info_Normal"); } } public partial class MainGameBaseCollection { public Dictionary feedbackCollection; } }