예제 #1
0
 void CheckForCleanup()
 {
     if (LifeState != null && !LifeState.Alive)
     {
         if (SlimeBehaviour.GetSudCount(transform.position, 3.0f) > 0)
         {
             SlimeState.Update.TriggerCleanSlimeEvent().FinishAndSend();
         }
     }
 }
예제 #2
0
    void CheckForCleanup()
    {
        if (Vector3.Distance(transform.position, lastPosition) < 0.1f && !initiallyLeaked)
        {
            initiallyLeaked = true;
            var slimePosition = new Vector3(transform.position.x, -1.0f, transform.position.z);
            SlimeState.Update.TriggerSpreadSlimeEvent(slimePosition.RemapUnityVectorToGlobalCoordinates()).FinishAndSend();
        }

        if (SlimeBehaviour.GetSudCount(transform.position, 3.0f) > 0)
        {
            SlimeState.Update.TriggerCleanSlimeEvent().FinishAndSend();
        }
    }
 void DoInfectIfNearby()
 {
     if (!InfectionState.Infected && Random.value > 0.5 && GetInfectionCount(transform.position, 1.0f) > 0)
     {
         InfectionState.Update.Infected(true).FinishAndSend();
     }
     if (!InfectionState.Infected && GetSlimeCount(transform.position, 5.0f) > 0)
     {
         InfectionState.Update.Infected(true).FinishAndSend();
     }
     if (InfectionState.Infected && SlimeBehaviour.GetSudCount(transform.position, 4.0f) > 0)
     {
         InfectionState.Update.Infected(false).FinishAndSend();
     }
 }