Пример #1
0
    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);
    }
Пример #2
0
    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());
    }