Exemple #1
0
        public Mount TryPickup(IOnPickup pickup, ContactEvent contactEvent)
        {
            var vital = contactEvent.triggeringObj as Vital;

            if (ReferenceEquals(vital, null))
            {
                return(null);
            }

            var   vpr          = pickup as IVitalsAffector;
            float value        = vpr.Value;
            var   defaultMount = DefaultMount;

            /// Apply to vital if vital has authority.
            if (IsMine)
            {
                float remainder = vital.ApplyChange(value, vpr.AllowOverload);
                return((!vpr.OnlyPickupIfUsed || value != remainder) ? defaultMount : null);
            }
            /// Vital does not belong to us, but we want to know IF it would have been consumed for prediction purposes.
            else
            {
                if (vpr.OnlyPickupIfUsed)
                {
                    float remainder = vital.TestApplyChange(value, vpr.AllowOverload);
                    return(value != remainder ? defaultMount : null);
                }
                return(defaultMount);
            }
        }
Exemple #2
0
 public virtual Mount TryPickup(IOnPickup trigger, ContactEvent contactEvent)
 {
     return(DefaultMount);
 }