Ejemplo n.º 1
0
        private string PropertyModifierValueString(PropertyModifier modifier, bool absolute = false)
        {
            modifier.Entity = modifier.Entity ?? CharacterManager.Instance.Character.Entity;
            modifier.ChangeStack(StackCount);

            var property = modifier.Entity.GetComponent <PropertiesComponent>().Get(modifier.Property.Id);
            var contains = property.Modifiers.Contains(modifier);

            if (contains)
            {
                property.Modifiers.Remove(modifier);
            }

            var value = property.Value();
            var delta = modifier.Modify(value) - value;

            delta = absolute ? Mathf.Abs(delta) : delta;

            if (contains)
            {
                property.Modifiers.Add(modifier);
            }

            return(Property.ValueString(modifier.Property.Type, delta));
        }
Ejemplo n.º 2
0
        private string PropertyModifierValueString(PropertyModifier modifier, bool absolute = false)
        {
            modifier.Entity = modifier.Entity ?? CharacterManager.Instance.Character.Entity;

            var value = modifier.Modify(0);

            value = absolute ? Mathf.Abs(value) : value;

            return(Property.ValueString(modifier.Property.Type, value));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Attempts to call each of the given <see cref="PropertyModifier"/> options to modify the target.
        /// </summary>
        /// <param name="source">The source to utilize in the modification.</param>
        /// <param name="target">The target to modify.</param>
        /// <param name="offset">The offset of the target against the source when modifying.</param>
        public virtual void Modify(GameObject source, GameObject target, GameObject offset = null)
        {
            if (!isActiveAndEnabled || !ValidateCache(source, target, offset))
            {
                return;
            }

            Premodified?.Invoke(eventData.Set(source, target, offset));

            positionModifier?.Modify(source, target, offset);
            rotationModifier?.Modify(source, target, offset);
            scaleModifier?.Modify(source, target, offset);

            Modified?.Invoke(eventData.Set(source, target, offset));
        }