Esempio n. 1
0
    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());
    }
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)
 {
 }