MrBot.Net/MRBot/Bot/AbilityExporter/ExportableAbility.cs
2023-12-08 15:20:12 -06:00

83 lines
3.8 KiB
C#

using System.Collections.Generic;
using System.Linq;
using MRBot.IsxEq2;
using MRBot.IsxEq2.AbilityEffect;
namespace MRBot.Bot.AbilityExporter
{
internal class ExportableAbility
{
public ExportableAbility(Ability ability)
{
// copy properties from ability to this
Id = ability.Id;
Name = ability.AbilityInfo.Name;
Description = ability.AbilityInfo.Description;
Level = ability.AbilityInfo.Class(Extension.Me.SubClass).Level;
Tier = ability.AbilityInfo.Tier;
HealthCost = ability.AbilityInfo.HealthCost;
PowerCost = ability.AbilityInfo.PowerCost;
DissonanceCost = ability.AbilityInfo.DissonanceCost;
SavageryCost = ability.AbilityInfo.SavageryCost;
ConcentrationCost = ability.AbilityInfo.ConcentrationCost;
MainIconId = ability.AbilityInfo.MainIconID;
HoIconId = ability.AbilityInfo.HOIconID;
CastingTime = ability.AbilityInfo.CastingTime;
RecoveryTime = ability.AbilityInfo.RecoveryTime;
RecastTime = ability.AbilityInfo.RecastTime;
MaxDuration = ability.AbilityInfo.MaxDuration;
Effects = Enumerable
.Range(1, ability.AbilityInfo.NumEffects)
.Select(idx => new ExportableAbilityEffect(ability.AbilityInfo.Effect(idx)))
.ToList();
BackDropIconId = ability.AbilityInfo.BackDropIconID;
HealthCostPerTick = ability.AbilityInfo.HealthCostPerTick;
PowerCostPerTick = ability.AbilityInfo.PowerCostPerTick;
DissonanceCostPerTick = ability.AbilityInfo.DissonanceCostPerTick;
SavageryCostPerTick = ability.AbilityInfo.SavageryCostPerTick;
MaxAoeTargets = ability.AbilityInfo.MaxAOETargets;
DoesNotExpire = ability.AbilityInfo.DoesNotExpire;
GroupRestricted = ability.AbilityInfo.GroupRestricted;
AllowRaid = ability.AbilityInfo.AllowRaid;
IsBeneficial = ability.AbilityInfo.IsBeneficial;
EffectRadius = ability.AbilityInfo.EffectRadius;
TargetType = ability.AbilityInfo.TargetType;
SpellBookType = ability.AbilityInfo.SpellBookType;
MinRange = ability.AbilityInfo.MinRange;
MaxRange = ability.AbilityInfo.MaxRange;
}
public uint Id { get; set; }
public string Name { get; set; }
public int Level { get; set; }
public string Description { get; set; }
public string Tier { get; set; }
public int HealthCost { get; set; }
public int PowerCost { get; set; }
public int DissonanceCost { get; set; }
public int SavageryCost { get; set; }
public int ConcentrationCost { get; set; }
public int MainIconId { get; set; }
public int HoIconId { get; set; }
public float CastingTime { get; set; }
public float RecoveryTime { get; set; }
public float RecastTime { get; set; }
public float MaxDuration { get; set; }
public List<ExportableAbilityEffect> Effects { get; set; }
public int BackDropIconId { get; set; }
public int HealthCostPerTick { get; set; }
public int PowerCostPerTick { get; set; }
public int DissonanceCostPerTick { get; set; }
public int SavageryCostPerTick { get; set; }
public int MaxAoeTargets { get; set; }
public bool DoesNotExpire { get; set; }
public bool GroupRestricted { get; set; }
public bool AllowRaid { get; set; }
public bool IsBeneficial { get; set; }
public float EffectRadius { get; set; }
public int TargetType { get; set; }
public int SpellBookType { get; set; }
public float MinRange { get; set; }
public float MaxRange { get; set; }
}
}