public override void Assign(IAssignableIdentity new_assignee) { if (new_assignee != assignee) { if (base.slot != null && new_assignee is MinionIdentity) { new_assignee = (new_assignee as MinionIdentity).assignableProxy.Get(); } if (base.slot != null && new_assignee is StoredMinionIdentity) { new_assignee = (new_assignee as StoredMinionIdentity).assignableProxy.Get(); } if (new_assignee is MinionAssignablesProxy) { Ownables soleOwner = new_assignee.GetSoleOwner(); Ownables component = soleOwner.GetComponent <Ownables>(); AssignableSlotInstance slot = component.GetSlot(base.slot); if (slot != null) { Assignable assignable = slot.assignable; if ((Object)assignable != (Object)null) { assignable.Unassign(); } } } base.Assign(new_assignee); } }
public virtual void Unassign() { if (assignee != null) { GetComponent <KPrefabID>().RemoveTag(GameTags.Assigned); if (slot != null) { Ownables soleOwner = assignee.GetSoleOwner(); if ((bool)soleOwner) { soleOwner.GetSlot(slot)?.Unassign(true); Equipment component = soleOwner.GetComponent <Equipment>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { component.GetSlot(slot)?.Unassign(true); } } } assignee = null; if (canBePublic) { Assign(Game.Instance.assignmentManager.assignment_groups["public"]); } assignee_identityRef.Set(null); assignee_groupID = string.Empty; if (this.OnAssign != null) { this.OnAssign(null); } Trigger(684616645, null); } }
private void RefreshChore(IAssignableIdentity target) { if (chore != null) { chore.Cancel("Equipment Reassigned"); chore = null; } if (target != null) { Ownables soleOwner = target.GetSoleOwner(); Equipment component = soleOwner.GetComponent <Equipment>(); if (!component.IsEquipped(equippable)) { CreateChore(); } } }
public bool IsAssignedTo(IAssignableIdentity identity) { Debug.Assert(identity != null, "IsAssignedTo identity is null"); Ownables soleOwner = identity.GetSoleOwner(); Debug.Assert((UnityEngine.Object)soleOwner != (UnityEngine.Object)null, "IsAssignedTo identity sole owner is null"); if (assignee != null) { foreach (Ownables owner in assignee.GetOwners()) { Debug.Assert(owner, "Assignable owners list contained null"); if ((UnityEngine.Object)owner.gameObject == (UnityEngine.Object)soleOwner.gameObject) { return(true); } } } return(false); }
public virtual void Assign(IAssignableIdentity new_assignee) { if (new_assignee != assignee) { if (new_assignee is KMonoBehaviour) { if (!CanAssignTo(new_assignee)) { return; } assignee_identityRef.Set((KMonoBehaviour)new_assignee); assignee_groupID = string.Empty; } else if (new_assignee is AssignmentGroup) { assignee_identityRef.Set(null); assignee_groupID = ((AssignmentGroup)new_assignee).id; } GetComponent <KPrefabID>().AddTag(GameTags.Assigned, false); assignee = new_assignee; if (slot != null && (new_assignee is MinionIdentity || new_assignee is StoredMinionIdentity || new_assignee is MinionAssignablesProxy)) { Ownables soleOwner = new_assignee.GetSoleOwner(); if ((UnityEngine.Object)soleOwner != (UnityEngine.Object)null) { soleOwner.GetSlot(slot)?.Assign(this); } Equipment component = soleOwner.GetComponent <Equipment>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { component.GetSlot(slot)?.Assign(this); } } if (this.OnAssign != null) { this.OnAssign(new_assignee); } Trigger(684616645, new_assignee); } }