2023-12-08 15:20:12 -06:00

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));
}
}