public static void OnChangeAuthority(IVitalsSystem ivc, bool isMine, bool asServer) { if (isMine) { if (!ownedVitalComponents.Contains(ivc)) { ownedVitalComponents.Add(ivc); for (int i = 0; i < iOnChangeOwnedVitals.Count; ++i) { iOnChangeOwnedVitals[i].OnChangeOwnedVitals(ivc, null); } } } else { if (ownedVitalComponents.Contains(ivc)) { ownedVitalComponents.Remove(ivc); for (int i = 0; i < iOnChangeOwnedVitals.Count; ++i) { iOnChangeOwnedVitals[i].OnChangeOwnedVitals(null, ivc); } } } }
private static IVitalsSystem FindIVitalComponentOnGameObj(GameObject go) { /// May be null because vitalsSource is a gameoject, need to turn that into a vitalcomp if (go) { IVitalsSystem ivitalcomp = go.GetComponentInParent <IVitalsSystem>(); if (ivitalcomp == null) { ivitalcomp = go.GetComponentInChildren <IVitalsSystem>(); } return(ivitalcomp); } return(null); }
public override void OnChangeOwnedVitals(IVitalsSystem added, IVitalsSystem removed) { if (added != null) { vitalsSource = added as Component; Vitals = added.Vitals; } else if (ReferenceEquals(removed.Vitals, vitals)) { var lastitem = OwnedIVitals.LastItem; if (!ReferenceEquals(lastitem, null)) { Vitals = lastitem.Vitals; } } }
public abstract void OnChangeOwnedVitals(IVitalsSystem added, IVitalsSystem removed);