83 lines
3.8 KiB
C#
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; }
|
|
}
|
|
} |