public void ApplyGameplayEffect(int index, EntityCommandBuffer.Concurrent Ecb, AttributesComponent attributesComponent, float WorldTime) { var attributeModData = new AttributeModificationComponent() { Add = 0, Multiply = 0, Divide = 0, Change = 0, Source = Source, Target = Target }; var attributeModEntity = Ecb.CreateEntity(index); var gameplayEffectData = new GameplayEffectDurationComponent() { WorldStartTime = WorldTime, Duration = Duration, Effect = EGameplayEffect.GlobalCooldown }; var cooldownEffectComponent = new CooldownEffectComponent() { Caster = Source }; Ecb.AddComponent(index, attributeModEntity, new NullAttributeModifier()); Ecb.AddComponent(index, attributeModEntity, new TemporaryAttributeModification()); Ecb.AddComponent(index, attributeModEntity, gameplayEffectData); Ecb.AddComponent(index, attributeModEntity, attributeModData); Ecb.AddComponent(index, attributeModEntity, cooldownEffectComponent); Ecb.AddComponent(index, attributeModEntity, new GlobalCooldownTagComponent()); }
public void PermanentAttributeModification(ref AttributeModificationComponent attrMod, ref AttributesComponent attrs) { var attr = attrs.Health; attrMod.Change = attrMod.Add + (attr.BaseValue * attrMod.Multiply) + (attrMod.Divide != 0 ? attr.BaseValue / attrMod.Divide : 0); attr.BaseValue += attrMod.Change; attrs.Health = 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 void ApplyGameplayEffect(int index, EntityCommandBuffer.Concurrent Ecb, AttributesComponent attributesComponent, float WorldTime) { var attributeModData = new AttributeModificationComponent() { Add = -ManaCost, Multiply = 0, Divide = 0, Change = 0, Source = Source, Target = Target }; var attributeModEntity = Ecb.CreateEntity(index); Ecb.AddComponent(index, attributeModEntity, new ManaAttributeModifier()); Ecb.AddComponent(index, attributeModEntity, new PermanentAttributeModification()); Ecb.AddComponent(index, attributeModEntity, attributeModData); }
public void ApplyGameplayEffect(EntityManager EntityManager, AttributesComponent attributesComponent, float WorldTime) { var attributeModData = new AttributeModificationComponent() { Add = -ManaCost, Multiply = 0, Divide = 0, Change = 0, Source = Source, Target = Target }; var attributeModEntity = EntityManager.CreateEntity( typeof(ManaAttributeModifier), typeof(PermanentAttributeModification), typeof(AttributeModificationComponent) ); EntityManager.SetComponentData(attributeModEntity, attributeModData); }
public void PermanentAttributeModification(ref AttributeModificationComponent attrMod, ref AttributesComponent attrs) { }
public void TemporaryAttributeModification(ref AttributeModificationComponent attrMod, ref AttributesComponent attrs) { }