using System.Collections; using System.Collections.Generic; using UnityEngine; // ============================================================================ // 6. USAGE EXAMPLES - How to Use in Your Existing Code // ============================================================================ public class AbilityUsageExamples : MonoBehaviour { [Header("Your Existing Abilities")] public BaseAbility fireballAbility; public BaseAbility healingAbility; // These can now be RuntimeAbilityInstances! private RuntimeAbilityInstance runtimeFireball; private RuntimeAbilityInstance runtimeHealing; private void Start() { // Convert your existing abilities runtimeFireball = fireballAbility.ToRuntime(); runtimeHealing = healingAbility.ToRuntime(); // Example: Add legendary item effect AddLegendaryFireballEffect(); } private void AddLegendaryFireballEffect() { // This is how you'd handle your legendary item! var explosionBehavior = new ExplodeOnHitBehavior { explosionRadius = 5f, explosionDamage = 50f }; runtimeFireball.AddBehavior(explosionBehavior); // Also add a damage boost var damageBoost = AbilityModifier.CreateDamageBoost(1.5f, "Legendary Damage"); runtimeFireball.AddModifier(damageBoost); } // Your existing ability usage code works exactly the same! public void CastFireball() { var user = GetComponent(); // This works exactly like your old BaseAbility.Execute() runtimeFireball.Execute(user); } public void CastFireballAtTarget(Transform target) { var user = GetComponent(); runtimeFireball.Execute(user, target); } }