private void BeginReacting(GameObject minionGO) { MinionIdentity component = minionGO.GetComponent <MinionIdentity>(); Vector3 vector = Vector3.zero; foreach (GreetingSetup activeSetup in activeSetups) { if ((UnityEngine.Object)activeSetup.A.minion == (UnityEngine.Object)component) { vector = activeSetup.B.minion.transform.GetPosition(); break; } if ((UnityEngine.Object)activeSetup.B.minion == (UnityEngine.Object)component) { vector = activeSetup.A.minion.transform.GetPosition(); break; } } Facing component2 = minionGO.GetComponent <Facing>(); Facing facing = component2; float x = vector.x; Vector3 position = minionGO.transform.GetPosition(); facing.SetFacing(x < position.x); Effects component3 = minionGO.GetComponent <Effects>(); component3.Add("Greeting", true); cooldowns[component] = GameClock.Instance.GetTime(); }
public override void InitializeStates(out BaseState default_state) { default_state = goingtopoop; goingtopoop.MoveTo((Instance smi) => smi.GetPoopPosition(), pooping, failedtonest, false); failedtonest.Enter(delegate(Instance smi) { smi.SetLastPoopCell(); }).GoTo(pooping); pooping.Enter(delegate(Instance smi) { Facing component = smi.master.GetComponent <Facing>(); component.SetFacing(Grid.PosToCell(smi.master.gameObject) > smi.targetPoopCell); }).ToggleStatusItem(CREATURES.STATUSITEMS.EXPELLING_SOLID.NAME, CREATURES.STATUSITEMS.EXPELLING_SOLID.TOOLTIP, category: Db.Get().StatusItemCategories.Main, icon: string.Empty, icon_type: StatusItem.IconType.Info, notification_type: NotificationType.Neutral, allow_multiples: false, render_overlay: default(HashedString), status_overlays: 129022, resolve_string_callback: null, resolve_tooltip_callback: null).PlayAnim("poop") .OnAnimQueueComplete(behaviourcomplete); behaviourcomplete.Enter(delegate(Instance smi) { smi.SetLastPoopCell(); }).PlayAnim("idle_loop", KAnim.PlayMode.Loop).BehaviourComplete(GameTags.Creatures.Poop, false); }
private void Flip() { _facingComponent.SetFacing(Math.Abs(_facing - 1)); }