forked from whztt07/UnityGameplayAbilitySystem
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathManaAttributeModificationSystem.cs
More file actions
22 lines (19 loc) · 1017 Bytes
/
Copy pathManaAttributeModificationSystem.cs
File metadata and controls
22 lines (19 loc) · 1017 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using Unity.Burst;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Entities;
public struct ManaAttributeModifier : IComponentData, AttributeModifier {
public void PermanentAttributeModification(ref AttributeModificationComponent attrMod, ref AttributesComponent attrs) {
var attr = attrs.Mana;
attrMod.Change = attrMod.Add + (attr.BaseValue * attrMod.Multiply) + (attrMod.Divide != 0 ? attr.BaseValue / attrMod.Divide : 0);
attr.BaseValue += attrMod.Change;
attrs.Mana = attr;
}
public void TemporaryAttributeModification(ref AttributeModificationComponent attrMod, ref AttributesComponent attrs) {
var attr = attrs.Mana;
attrMod.Change = attrMod.Add + (attr.BaseValue * attrMod.Multiply) + (attrMod.Divide != 0 ? attr.BaseValue / attrMod.Divide : 0);
attr.TempDelta += attrMod.Change;
attrs.Mana = attr;
}
}
public class ManaModificationSystem : AttributeModificationSystem<ManaAttributeModifier> { }