first commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
namespace ClassicAssist.Data.Skills
|
||||
{
|
||||
public struct Skill
|
||||
{
|
||||
public int ID { get; set; }
|
||||
public string Name { get; set; }
|
||||
public bool Invokable { get; set; }
|
||||
|
||||
public override bool Equals( object obj )
|
||||
{
|
||||
Skill? skill = obj as Skill?;
|
||||
return ID == skill?.ID;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hashCode = 1458105184;
|
||||
hashCode = hashCode * -1521134295 + ID.GetHashCode();
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
|
||||
public static bool operator ==( Skill left, Skill right )
|
||||
{
|
||||
return left.Equals( right );
|
||||
}
|
||||
|
||||
public static bool operator !=( Skill left, Skill right )
|
||||
{
|
||||
return !( left == right );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using ClassicAssist.Annotations;
|
||||
using ClassicAssist.UO.Data;
|
||||
|
||||
namespace ClassicAssist.Data.Skills
|
||||
{
|
||||
public class SkillEntry : INotifyPropertyChanged
|
||||
{
|
||||
private float _base;
|
||||
private float _cap;
|
||||
private double _delta;
|
||||
private LockStatus _lockStatus;
|
||||
private Skill _skill;
|
||||
private float _value;
|
||||
|
||||
public float Base
|
||||
{
|
||||
get => _base;
|
||||
set
|
||||
{
|
||||
_base = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float Cap
|
||||
{
|
||||
get => _cap;
|
||||
set
|
||||
{
|
||||
_cap = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public double Delta
|
||||
{
|
||||
get => _delta;
|
||||
set
|
||||
{
|
||||
_delta = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public LockStatus LockStatus
|
||||
{
|
||||
get => _lockStatus;
|
||||
set
|
||||
{
|
||||
_lockStatus = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public Skill Skill
|
||||
{
|
||||
get => _skill;
|
||||
set
|
||||
{
|
||||
_skill = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float Value
|
||||
{
|
||||
get => _value;
|
||||
set
|
||||
{
|
||||
_value = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected virtual void OnPropertyChanged( [CallerMemberName] string propertyName = null )
|
||||
{
|
||||
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using ClassicAssist.UO.Data;
|
||||
|
||||
namespace ClassicAssist.Data.Skills
|
||||
{
|
||||
public sealed class SkillInfo
|
||||
{
|
||||
public float BaseValue { get; internal set; }
|
||||
public int ID { get; internal set; }
|
||||
public LockStatus LockStatus { get; internal set; }
|
||||
public float SkillCap { get; internal set; }
|
||||
public float Value { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using ClassicAssist.Annotations;
|
||||
using ClassicAssist.UI.Misc;
|
||||
|
||||
namespace ClassicAssist.Data.Skills
|
||||
{
|
||||
public class SkillManager : INotifyPropertyChanged
|
||||
{
|
||||
private static readonly object _lock = new object();
|
||||
private static SkillManager _instance;
|
||||
private ObservableCollectionEx<SkillEntry> _items = new ObservableCollectionEx<SkillEntry>();
|
||||
|
||||
private SkillManager()
|
||||
{
|
||||
}
|
||||
|
||||
public ObservableCollectionEx<SkillEntry> Items
|
||||
{
|
||||
get => _items;
|
||||
set => SetProperty( ref _items, value );
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public static SkillManager GetInstance()
|
||||
{
|
||||
// ReSharper disable once InvertIf
|
||||
if ( _instance == null )
|
||||
{
|
||||
lock ( _lock )
|
||||
{
|
||||
if ( _instance != null )
|
||||
{
|
||||
return _instance;
|
||||
}
|
||||
|
||||
_instance = new SkillManager();
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
return _instance;
|
||||
}
|
||||
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected virtual void OnPropertyChanged( [CallerMemberName] string propertyName = null )
|
||||
{
|
||||
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
|
||||
}
|
||||
|
||||
public void SetProperty<T>( ref T obj, T value, [CallerMemberName] string propertyName = "" )
|
||||
{
|
||||
obj = value;
|
||||
OnPropertyChanged( propertyName );
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user