Skip to content

Commit ae6f668

Browse files
authored
feat: (Day) Add proper stat ranges to items (AscensionGameDev#2116)
* feat: (Day) Add proper stat ranges to items * chore: (Day) Code review * chore: code reivew
1 parent c13ba02 commit ae6f668

File tree

6 files changed

+2558
-2521
lines changed

6 files changed

+2558
-2521
lines changed

Intersect (Core)/GameObjects/ItemBase.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,49 @@ public bool TryGetRangeFor(Stat stat, out ItemRange range)
350350
return range != default;
351351
}
352352

353+
public void ModifyStatRangeHigh(Stat stat, int val)
354+
{
355+
EquipmentProperties ??= new();
356+
357+
if (EquipmentProperties.StatRanges.TryGetValue(stat, out var range))
358+
{
359+
range.HighRange = val;
360+
}
361+
else
362+
{
363+
var newRange = new ItemRange(0, val);
364+
EquipmentProperties.StatRanges[stat] = newRange;
365+
}
366+
}
367+
368+
public void ModifyStatRangeLow(Stat stat, int val)
369+
{
370+
EquipmentProperties ??= new();
371+
372+
if (EquipmentProperties.StatRanges.TryGetValue(stat, out var range))
373+
{
374+
range.LowRange = val;
375+
}
376+
else
377+
{
378+
var newRange = new ItemRange(val, 0);
379+
EquipmentProperties.StatRanges[stat] = newRange;
380+
}
381+
}
382+
383+
public void ValidateStatRanges()
384+
{
385+
if (StatRanges == default)
386+
{
387+
return;
388+
}
389+
390+
foreach (var range in StatRanges)
391+
{
392+
range.Validate();
393+
}
394+
}
395+
353396
public int GetEffectPercentage(ItemEffect type)
354397
{
355398
return Effects.Find(effect => effect.Type == type)?.Percentage ?? 0;

Intersect (Core)/GameObjects/Ranges/ItemRange.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,12 @@ public int Roll(int? seed = default)
2929
public int LowRange { get; set; }
3030

3131
public int HighRange { get; set; }
32+
33+
public void Validate()
34+
{
35+
if (LowRange > HighRange)
36+
{
37+
(LowRange, HighRange) = (HighRange, LowRange);
38+
}
39+
}
3240
}

0 commit comments

Comments
 (0)