52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
// ============================================================================
|
|
// 5. EASY MIGRATION HELPER - Update Your Existing Components
|
|
// ============================================================================
|
|
|
|
/// <summary>
|
|
/// Helper to easily convert your existing ability references
|
|
/// Just change "BaseAbility" to "RuntimeAbilityInstance" in your existing scripts
|
|
/// </summary>
|
|
public static class AbilityMigrationHelper
|
|
{
|
|
/// <summary>
|
|
/// Convert a BaseAbility to RuntimeAbilityInstance
|
|
/// </summary>
|
|
public static RuntimeAbilityInstance ToRuntime(this BaseAbility ability)
|
|
{
|
|
return new RuntimeAbilityInstance(ability);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Create a modified version of an ability
|
|
/// </summary>
|
|
public static RuntimeAbilityInstance CreateModifiedVersion(BaseAbility baseAbility, params AbilityModifier[] modifiers)
|
|
{
|
|
var runtime = new RuntimeAbilityInstance(baseAbility);
|
|
|
|
foreach (var modifier in modifiers)
|
|
{
|
|
runtime.AddModifier(modifier);
|
|
}
|
|
|
|
return runtime;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Create legendary version with special behaviors
|
|
/// </summary>
|
|
public static RuntimeAbilityInstance CreateLegendaryVersion(BaseAbility baseAbility, params RuntimeBehavior[] behaviors)
|
|
{
|
|
var runtime = new RuntimeAbilityInstance(baseAbility);
|
|
|
|
foreach (var behavior in behaviors)
|
|
{
|
|
runtime.AddBehavior(behavior);
|
|
}
|
|
|
|
return runtime;
|
|
}
|
|
} |