public void PlayIdle(Instance smi) { KAnimControllerBase component = smi.GetComponent <KAnimControllerBase>(); Navigator component2 = smi.GetComponent <Navigator>(); NavType nav_type = component2.CurrentNavType; Facing component3 = smi.GetComponent <Facing>(); if (component3.GetFacing()) { nav_type = NavGrid.MirrorNavType(nav_type); } if (smi.def.customIdleAnim != null) { HashedString pre_anim = HashedString.Invalid; HashedString hashedString = smi.def.customIdleAnim(smi, ref pre_anim); if (hashedString != HashedString.Invalid) { if (pre_anim != HashedString.Invalid) { component.Play(pre_anim, KAnim.PlayMode.Once, 1f, 0f); } component.Queue(hashedString, KAnim.PlayMode.Loop, 1f, 0f); return; } } HashedString idleAnim = component2.NavGrid.GetIdleAnim(nav_type); component.Play(idleAnim, KAnim.PlayMode.Loop, 1f, 0f); }
public void Update() { _facing = _facingComponent.GetFacing(); if (!isStationary) { Monitor(); } }
public void Sim200ms(float dt) { if (!base.gameObject.HasTag(GameTags.Dead)) { float num = airConsumptionRate.GetTotalValue() * dt; bool flag = gasProvider.ConsumeGas(this, num); if (flag) { if (gasProvider.ShouldEmitCO2()) { float num2 = num * O2toCO2conversion; Game.Instance.accumulators.Accumulate(co2Accumulator, num2); accumulatedCO2 += num2; if (accumulatedCO2 >= minCO2ToEmit) { accumulatedCO2 -= minCO2ToEmit; Vector3 position = base.transform.GetPosition(); position.x += ((!facing.GetFacing()) ? mouthOffset.x : (0f - mouthOffset.x)); position.y += mouthOffset.y; position.z -= 0.5f; CO2Manager.instance.SpawnBreath(position, minCO2ToEmit, temperature.value); } } else if (gasProvider.ShouldStoreCO2()) { Equippable equippable = GetComponent <SuitEquipper>().IsWearingAirtightSuit(); if ((UnityEngine.Object)equippable != (UnityEngine.Object)null) { float num3 = num * O2toCO2conversion; Game.Instance.accumulators.Accumulate(co2Accumulator, num3); accumulatedCO2 += num3; if (accumulatedCO2 >= minCO2ToEmit) { accumulatedCO2 -= minCO2ToEmit; equippable.GetComponent <Storage>().AddGasChunk(SimHashes.CarbonDioxide, minCO2ToEmit, temperature.value, byte.MaxValue, 0, false, true); } } } } if (flag != hasAir) { hasAirTimer.Start(); if (hasAirTimer.TryStop(2f)) { hasAir = flag; } } else { hasAirTimer.Stop(); } } }
private int GetOffsetCell(MinionIdentity minion, int offset) { Facing component = minion.GetComponent <Facing>(); return((!component.GetFacing()) ? Grid.OffsetCell(Grid.PosToCell(minion), offset, 0) : Grid.OffsetCell(Grid.PosToCell(minion), -offset, 0)); }
private bool ValidOppositionalMinion(MinionIdentity reference_minion, MinionIdentity minion) { if ((UnityEngine.Object)reference_minion == (UnityEngine.Object)null) { return(false); } if ((UnityEngine.Object)minion == (UnityEngine.Object)null) { return(false); } Facing component = minion.GetComponent <Facing>(); Facing component2 = reference_minion.GetComponent <Facing>(); return(ValidNavigatingMinion(minion) && (UnityEngine.Object)component != (UnityEngine.Object)null && (UnityEngine.Object)component2 != (UnityEngine.Object)null && component.GetFacing() != component2.GetFacing()); }