66 lines
3.5 KiB
C#
66 lines
3.5 KiB
C#
using System.Globalization;
|
|
using InnerSpaceAPI;
|
|
using LavishScriptAPI;
|
|
using MRBot.IsxEq2.Helpers;
|
|
|
|
namespace MRBot.IsxEq2.AbilityEffect
|
|
{
|
|
public class Ability : LavishScriptObject
|
|
{
|
|
public Ability(LavishScriptObject copy) : base(copy) { }
|
|
|
|
public uint Id => this.GetUIntFromLSO("ID");
|
|
public bool IsReady => this.GetBoolFromLSO("IsReady");
|
|
public float TimeUntilReady => this.GetFloatFromLSO("TimeUntilReady");
|
|
public float IsQueued => this.GetFloatFromLSO("IsQueued");
|
|
public bool IsAbilityInfoAvailable => this.GetBoolFromLSO("IsAbilityInfoAvailable");
|
|
|
|
|
|
public AbilityInfo AbilityInfo => new AbilityInfo(GetMember("ToAbilityInfo"));
|
|
public bool Use() => ExecuteMethod("Use");
|
|
public bool Examine() => ExecuteMethod("Examine");
|
|
|
|
}
|
|
|
|
public class AbilityInfo : LavishScriptObject
|
|
{
|
|
public AbilityInfo(LavishScriptObject copy) : base(copy) { }
|
|
|
|
public string Name => this.GetStringFromLSO("Name");
|
|
public string Description => this.GetStringFromLSO("Description");
|
|
public string Tier => this.GetStringFromLSO("Tier");
|
|
public int HealthCost => this.GetIntFromLSO("HealthCost");
|
|
public int PowerCost => this.GetIntFromLSO("PowerCost");
|
|
public int DissonanceCost => this.GetIntFromLSO("DissonanceCost");
|
|
public int SavageryCost => this.GetIntFromLSO("SavageryCost");
|
|
public int ConcentrationCost => this.GetIntFromLSO("ConcentrationCost");
|
|
public int MainIconID => this.GetIntFromLSO("MainIconID");
|
|
public int HOIconID => this.GetIntFromLSO("HOIconID");
|
|
public float CastingTime => this.GetFloatFromLSO("CastingTime");
|
|
public float RecoveryTime => this.GetFloatFromLSO("RecoveryTime");
|
|
public float RecastTime => this.GetFloatFromLSO("RecastTime");
|
|
public float MaxDuration => this.GetFloatFromLSO("MaxDuration");
|
|
public int NumClasses => this.GetIntFromLSO("NumClasses");
|
|
public int NumEffects => this.GetIntFromLSO("NumEffects");
|
|
public AbilityEffect Effect(int index) => new AbilityEffect(GetMember("Effect", index.ToString(CultureInfo.InvariantCulture)));
|
|
public int BackDropIconID => this.GetIntFromLSO("BackDropIconID");
|
|
public int HealthCostPerTick => this.GetIntFromLSO("HealthCostPerTick");
|
|
public int PowerCostPerTick => this.GetIntFromLSO("PowerCostPerTick");
|
|
public int DissonanceCostPerTick => this.GetIntFromLSO("DissonanceCostPerTick");
|
|
public int SavageryCostPerTick => this.GetIntFromLSO("SavageryCostPerTick");
|
|
public int MaxAOETargets => this.GetIntFromLSO("MaxAOETargets");
|
|
public bool DoesNotExpire => this.GetBoolFromLSO("DoesNotExpire");
|
|
public bool GroupRestricted => this.GetBoolFromLSO("GroupRestricted");
|
|
public bool AllowRaid => this.GetBoolFromLSO("AllowRaid");
|
|
public bool IsBeneficial => this.GetBoolFromLSO("IsBeneficial");
|
|
public float EffectRadius => this.GetFloatFromLSO("EffectRadius");
|
|
public int TargetType => this.GetIntFromLSO("TargetType");
|
|
public int SpellBookType => this.GetIntFromLSO("SpellBookType");
|
|
public float MinRange => this.GetFloatFromLSO("MinRange");
|
|
public float MaxRange => this.GetFloatFromLSO("MaxRange");
|
|
public string ToLink => this.GetStringFromLSO("ToLink");
|
|
public Class Class(int index) => GetMember<Class>("Class", index.ToString(CultureInfo.InvariantCulture));
|
|
public Class Class(string className) => new Class(GetMember("Class", className));
|
|
}
|
|
}
|