init
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.Utilities;
|
||||
using VOID.Generic.Dict;
|
||||
using VOID.Generic.Objects.Abstract.Events;
|
||||
using VOID.Generic.Status.Effect;
|
||||
|
||||
namespace VOID.Generic.Objects.Unit.DataCalculator
|
||||
{
|
||||
public class BasicResourceCalcGroup : ICalcGroup
|
||||
{
|
||||
public string GetMarkerGroup()
|
||||
{
|
||||
return "BasicResource";
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetMarkerItems()
|
||||
{
|
||||
return GetEnums().Select(@enum => @enum.ToString());
|
||||
}
|
||||
|
||||
public Type GetEnumType()
|
||||
{
|
||||
return typeof(BasicResourceType);
|
||||
}
|
||||
|
||||
public IEnumerable<Enum> GetEnums()
|
||||
{
|
||||
return Enum.GetValues(GetEnumType()).OfType<Enum>();
|
||||
}
|
||||
|
||||
public Enum GetEnum(string markerItem)
|
||||
{
|
||||
return Enum.Parse<BasicResourceType>(markerItem, true);
|
||||
}
|
||||
|
||||
public float GetEffectValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
var @enum = Enum.Parse<BasicResourceType>(markerItem, true);
|
||||
return unit.statusManager.GetStatuses()
|
||||
.SelectMany(status => status.effects)
|
||||
.FilterCast<PointChangeBasicResourceEffect>()
|
||||
.Where(effect => effect.basicResourceType == @enum)
|
||||
.Select(effect => effect.pointModificator)
|
||||
.Sum();
|
||||
}
|
||||
|
||||
public float GetBaseValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.basicData.baseMaxResources.Get(Enum.Parse<BasicResourceType>(markerItem, true));
|
||||
}
|
||||
|
||||
public float GetValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.basicData.maxResources.Get(Enum.Parse<BasicResourceType>(markerItem, true));
|
||||
}
|
||||
|
||||
public void UpdateWithValue(UnitObject unit, string markerItem, float formulaValue)
|
||||
{
|
||||
var @enum = Enum.Parse<BasicResourceType>(markerItem, true);
|
||||
var baseValue = GetBaseValue(unit, markerItem);
|
||||
var effectValue = GetEffectValue(unit, markerItem);
|
||||
var previousValue = GetValue(unit, markerItem);
|
||||
var newValue = baseValue + effectValue + formulaValue;
|
||||
var diffValue = newValue - previousValue;
|
||||
unit.basicData.maxResources.Set(@enum, newValue);
|
||||
|
||||
unit.basicEvents.onMaxResourceChange.Invoke(
|
||||
new BasicResourceChangeEvent()
|
||||
{
|
||||
obj = unit,
|
||||
type = @enum,
|
||||
changedValue = diffValue,
|
||||
newValue = newValue,
|
||||
oldValue = previousValue
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a750f18ecb744591a6a96b27370d8332
|
||||
timeCreated: 1698434766
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace VOID.Generic.Objects.Unit.DataCalculator
|
||||
{
|
||||
public interface ICalcGroup
|
||||
{
|
||||
public string GetMarkerGroup();
|
||||
public IEnumerable<string> GetMarkerItems();
|
||||
public Type GetEnumType();
|
||||
public IEnumerable<Enum> GetEnums();
|
||||
public Enum GetEnum(string markerItem);
|
||||
|
||||
public bool CheckMarker(string markerGroup, string markerItem)
|
||||
{
|
||||
return GetMarkerGroup().Equals(markerGroup, StringComparison.OrdinalIgnoreCase)
|
||||
&& GetMarkerItems().Contains(markerItem, StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
public bool CheckEnum(Enum @enum)
|
||||
{
|
||||
return GetEnums().Contains(@enum);
|
||||
}
|
||||
|
||||
public float GetEffectValue(UnitObject unit, string markerItem);
|
||||
public float GetBaseValue(UnitObject unit, string markerItem);
|
||||
public float GetValue(UnitObject unit, string markerItem);
|
||||
|
||||
public void UpdateWithValue(UnitObject unit, string markerItem, float formulaValue);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b1d48d0400f443e9ff037e00b079a9f
|
||||
timeCreated: 1698421311
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.Utilities;
|
||||
using VOID.Generic.Dict;
|
||||
using VOID.Generic.Objects.Unit.Events;
|
||||
using VOID.Generic.Status.Effect;
|
||||
|
||||
namespace VOID.Generic.Objects.Unit.DataCalculator
|
||||
{
|
||||
public class MainAttributeCalcGroup : ICalcGroup
|
||||
{
|
||||
public string GetMarkerGroup()
|
||||
{
|
||||
return "MainAttribute";
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetMarkerItems()
|
||||
{
|
||||
return GetEnums().Select(@enum => @enum.ToString());
|
||||
}
|
||||
|
||||
public Type GetEnumType()
|
||||
{
|
||||
return typeof(MainAttributeType);
|
||||
}
|
||||
|
||||
public IEnumerable<Enum> GetEnums()
|
||||
{
|
||||
return Enum.GetValues(GetEnumType()).OfType<Enum>();
|
||||
}
|
||||
|
||||
public Enum GetEnum(string markerItem)
|
||||
{
|
||||
return Enum.Parse<MainAttributeType>(markerItem, true);
|
||||
}
|
||||
|
||||
public float GetEffectValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
var @enum = Enum.Parse<MainAttributeType>(markerItem, true);
|
||||
return unit.statusManager.GetStatuses()
|
||||
.SelectMany(status => status.effects)
|
||||
.FilterCast<PointChangeMainAttributeEffect>()
|
||||
.Where(effect => effect.mainAttributeType == @enum)
|
||||
.Select(effect => effect.pointModificator)
|
||||
.Sum();
|
||||
}
|
||||
|
||||
public float GetBaseValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.baseMainAttributes.Get(Enum.Parse<MainAttributeType>(markerItem, true));
|
||||
}
|
||||
|
||||
public float GetValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.mainAttributes.Get(Enum.Parse<MainAttributeType>(markerItem, true));
|
||||
}
|
||||
|
||||
public void UpdateWithValue(UnitObject unit, string markerItem, float formulaValue)
|
||||
{
|
||||
var @enum = Enum.Parse<MainAttributeType>(markerItem, true);
|
||||
var baseValue = GetBaseValue(unit, markerItem);
|
||||
var effectValue = GetEffectValue(unit, markerItem);
|
||||
var previousValue = GetValue(unit, markerItem);
|
||||
var newValue = baseValue + effectValue + formulaValue;
|
||||
var diffValue = newValue - previousValue;
|
||||
unit.unitData.mainAttributes.Set(@enum, (int)newValue);
|
||||
|
||||
unit.unitEvents.onMainAttributeChange.Invoke(
|
||||
new MainAttributeChangeEvent
|
||||
{
|
||||
unit = unit,
|
||||
type = @enum,
|
||||
changedValue = (int)diffValue,
|
||||
newValue = (int)newValue,
|
||||
oldValue = (int)previousValue
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aedbb192285347d585225188cdb9b0e8
|
||||
timeCreated: 1698424887
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.Utilities;
|
||||
using VOID.Generic.Dict;
|
||||
using VOID.Generic.Objects.Unit.Events;
|
||||
using VOID.Generic.Status.Effect;
|
||||
|
||||
namespace VOID.Generic.Objects.Unit.DataCalculator
|
||||
{
|
||||
public class SubAttributeCalcGroup : ICalcGroup
|
||||
{
|
||||
public string GetMarkerGroup()
|
||||
{
|
||||
return "SubAttribute";
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetMarkerItems()
|
||||
{
|
||||
return GetEnums().Select(@enum => @enum.ToString());
|
||||
}
|
||||
|
||||
public Type GetEnumType()
|
||||
{
|
||||
return typeof(SubAttributeType);
|
||||
}
|
||||
|
||||
public IEnumerable<Enum> GetEnums()
|
||||
{
|
||||
return Enum.GetValues(GetEnumType()).OfType<Enum>();
|
||||
}
|
||||
|
||||
public Enum GetEnum(string markerItem)
|
||||
{
|
||||
return Enum.Parse<SubAttributeType>(markerItem, true);
|
||||
}
|
||||
|
||||
public float GetEffectValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
var @enum = Enum.Parse<SubAttributeType>(markerItem, true);
|
||||
return unit.statusManager.GetStatuses()
|
||||
.SelectMany(status => status.effects)
|
||||
.FilterCast<PointChangeSubAttributeEffect>()
|
||||
.Where(effect => effect.subAttributeType == @enum)
|
||||
.Select(effect => effect.pointModificator)
|
||||
.Sum();
|
||||
}
|
||||
|
||||
public float GetBaseValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.baseSubAttributes.Get(Enum.Parse<SubAttributeType>(markerItem, true));
|
||||
}
|
||||
|
||||
public float GetValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.subAttributes.Get(Enum.Parse<SubAttributeType>(markerItem, true));
|
||||
}
|
||||
|
||||
public void UpdateWithValue(UnitObject unit, string markerItem, float formulaValue)
|
||||
{
|
||||
var @enum = Enum.Parse<SubAttributeType>(markerItem, true);
|
||||
var baseValue = GetBaseValue(unit, markerItem);
|
||||
var effectValue = GetEffectValue(unit, markerItem);
|
||||
var previousValue = GetValue(unit, markerItem);
|
||||
var newValue = baseValue + effectValue + formulaValue;
|
||||
var diffValue = newValue - previousValue;
|
||||
unit.unitData.subAttributes.Set(@enum, newValue);
|
||||
|
||||
unit.unitEvents.onSubAttributeChange.Invoke(
|
||||
new SubAttributeChangeEvent
|
||||
{
|
||||
unit = unit,
|
||||
type = @enum,
|
||||
changedValue = diffValue,
|
||||
newValue = newValue,
|
||||
oldValue = previousValue
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43bd4dac8bba4adda9b5d264fdf10e6e
|
||||
timeCreated: 1698434043
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.Utilities;
|
||||
using VOID.Generic.Dict;
|
||||
using VOID.Generic.Objects.Unit.Events;
|
||||
using VOID.Generic.Status.Effect;
|
||||
|
||||
namespace VOID.Generic.Objects.Unit.DataCalculator
|
||||
{
|
||||
public class UnitResourceCalcGroup : ICalcGroup
|
||||
{
|
||||
public string GetMarkerGroup()
|
||||
{
|
||||
return "UnitResource";
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetMarkerItems()
|
||||
{
|
||||
return GetEnums().Select(@enum => @enum.ToString());
|
||||
}
|
||||
|
||||
public Type GetEnumType()
|
||||
{
|
||||
return typeof(UnitResourceType);
|
||||
}
|
||||
|
||||
public IEnumerable<Enum> GetEnums()
|
||||
{
|
||||
return Enum.GetValues(GetEnumType()).OfType<Enum>();
|
||||
}
|
||||
|
||||
public Enum GetEnum(string markerItem)
|
||||
{
|
||||
return Enum.Parse<UnitResourceType>(markerItem);
|
||||
}
|
||||
|
||||
public float GetEffectValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
var @enum = Enum.Parse<UnitResourceType>(markerItem, true);
|
||||
return unit.statusManager.GetStatuses()
|
||||
.SelectMany(status => status.effects)
|
||||
.FilterCast<PointChangeUnitResourceEffect>()
|
||||
.Where(effect => effect.unitResourceType == @enum)
|
||||
.Select(effect => effect.pointModificator)
|
||||
.Sum();
|
||||
}
|
||||
|
||||
public float GetBaseValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.baseMaxResources.Get(Enum.Parse<UnitResourceType>(markerItem, true));
|
||||
}
|
||||
|
||||
public float GetValue(UnitObject unit, string markerItem)
|
||||
{
|
||||
return unit.unitData.baseMaxResources.Get(Enum.Parse<UnitResourceType>(markerItem, true));
|
||||
}
|
||||
|
||||
public void UpdateWithValue(UnitObject unit, string markerItem, float formulaValue)
|
||||
{
|
||||
var @enum = Enum.Parse<UnitResourceType>(markerItem, true);
|
||||
var baseValue = GetBaseValue(unit, markerItem);
|
||||
var effectValue = GetEffectValue(unit, markerItem);
|
||||
var previousValue = GetValue(unit, markerItem);
|
||||
var newValue = baseValue + effectValue + formulaValue;
|
||||
var diffValue = newValue - previousValue;
|
||||
unit.unitData.maxResources.Set(@enum, newValue);
|
||||
|
||||
unit.unitEvents.onMaxResourceChange.Invoke(
|
||||
new UnitResourceChangeEvent()
|
||||
{
|
||||
unit = unit,
|
||||
type = @enum,
|
||||
changedValue = diffValue,
|
||||
newValue = newValue,
|
||||
oldValue = previousValue
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 936b8fbe25c9456fb1982c4224628439
|
||||
timeCreated: 1698435779
|
||||
Reference in New Issue
Block a user