예제 #1
0
    private void MisbehaveCheck()
    {
        if (myStats.timeUntilMisbehave <= 0f)
        {
            // stopping old behaviour
            if (myStats.myState != AstroStats.AIStates.Idle)
            {
                myStats.myBehaveStation.Leave(this);
            }

            // finding new behaviour
            myStats.myMisbehaveStation = AstroForeman.Single.AssignMisbehavior(myStats.myBehaveStation);
            myStats.myState            = AstroStats.AIStates.MoveToMisbehaving;

            // new target for movement
            myBody.SetTarget(myStats.myMisbehaveStation.PositionAngle + Random.Range(-5, 5));
            // the random float is added so that the astronauts form a group rather than a queue in front of the misbehave station

            // what do you think about that?
            myBody.ChangeThought(Thought.Mischief);

            // send a message about boredom
            // StationLogger.Alert(StationAlertType.Astronaut_Bored, Alert.SeverityLevel.Warning, this);
            // N: I commented out the message about boredom because it happens too often and takes away from the importance of warnings.
        }
    }