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.FireAbilityCooldown
            };
            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);
        }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
    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;
    }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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)
 {
 }