// Token: 0x060024ED RID: 9453 RVA: 0x0023D6E0 File Offset: 0x0023B8E0
 public KeyBoardInstruction(Overseer overseer, OverseerHologram.Message message, Creature communicateWith, float importance) : base(overseer, message, communicateWith, importance)
 {
     this.keys = new OverseerDroughtTutorialBehavior.KeyBoardKey[7];
     for (int i = 0; i < this.keys.Length; i++)
     {
         this.keys[i] = new OverseerDroughtTutorialBehavior.KeyBoardKey(this, this.totalSprites);
         base.AddPart(this.keys[i]);
     }
     this.Down.offset   = new Vector2(35f, 0f);
     this.Right.offset  = new Vector2(70f, 0f);
     this.Up.offset     = new Vector2(35f, 35f);
     this.Throw.offset  = new Vector2(-45f, 0f);
     this.Jump.offset   = new Vector2(-80f, 0f);
     this.PickUp.offset = new Vector2(-125f, 0f);
     this.PickUp.MakeWider(10f);
     this.Down.symbol          = "Arrow";
     this.Right.symbol         = "Arrow";
     this.Up.symbol            = "Arrow";
     this.Left.symbol          = "Arrow";
     this.Left.symbolRotation  = -90f;
     this.Right.symbolRotation = 90f;
     this.Down.symbolRotation  = 180f;
     this.PickUp.symbol        = "Shift";
     this.Jump.symbol          = "Z";
     this.Throw.symbol         = "X";
 }
 // Token: 0x060024C1 RID: 9409 RVA: 0x0023ACE8 File Offset: 0x00238EE8
 public InputInstruction(Overseer overseer, OverseerHologram.Message message, Creature communicateWith, float importance) : base(overseer, message, communicateWith, importance)
 {
     if (overseer.AI.tutorialBehavior == null && message != OverseerHologram.Message.InWorldSuperJump && message != OverseerHologram.Message.PickupObject && message != OverseerHologram.Message.ScavengerTrade)
     {
         this.stillRelevant = false;
     }
     else
     {
         switch (message)
         {
         case OverseerHologram.Message.SuperJump:
             this.controller = new OverseerDroughtTutorialBehavior.SuperJump(this, (overseer.AI as patch_OverseerAI).droughtTutorialBehavior, true);
             break;
         }
     }
 }
 // Token: 0x060024F7 RID: 9463 RVA: 0x0023DA8C File Offset: 0x0023BC8C
 public GamePadInstruction(Overseer overseer, OverseerHologram.Message message, Creature communicateWith, float importance) : base(overseer, message, communicateWith, importance)
 {
     this.socket = new OverseerDroughtTutorialBehavior.GamePadStickSocket(this, this.totalSprites);
     base.AddPart(this.socket);
     base.AddPart(new OverseerDroughtTutorialBehavior.GamePadStick(this, this.totalSprites, this.socket));
     this.silhouette = new OverseerDroughtTutorialBehavior.GamePadSilhouette(this, this.totalSprites);
     base.AddPart(this.silhouette);
     this.buttons = new OverseerDroughtTutorialBehavior.GamePadButton[3];
     for (int i = 0; i < this.buttons.Length; i++)
     {
         this.buttons[i] = new OverseerDroughtTutorialBehavior.GamePadButton(this, this.totalSprites);
         base.AddPart(this.buttons[i]);
     }
     if (overseer.abstractCreature.world.game.rainWorld.options.controls[0].preset == Options.ControlSetup.Preset.XBox)
     {
         this.PickUp.symbol      = "X";
         this.Jump.symbol        = "A";
         this.Throw.symbol       = "B";
         this.PickUp.buttonColor = new Color(0.2f, 0.6f, 1f);
         this.Jump.buttonColor   = new Color(0.4f, 1f, 0.2f);
         this.Throw.buttonColor  = new Color(1f, 0.2f, 0.2f);
     }
     else
     {
         this.PickUp.symbol      = "Square";
         this.Jump.symbol        = "Cross";
         this.Throw.symbol       = "Circle";
         this.PickUp.buttonColor = new Color(0.9f, 0.3f, 1f);
         this.Jump.buttonColor   = new Color(0.5f, 0.5f, 1f);
         this.Throw.buttonColor  = new Color(1f, 0.3f, 0.3f);
     }
     this.parts = new OverseerHologram.HologramPart[4];
     this.partsRemainVisible = new int[this.parts.Length];
     this.parts[0]           = this.socket;
     this.parts[1]           = this.buttons[0];
     this.parts[2]           = this.buttons[1];
     this.parts[3]           = this.buttons[2];
 }
    public void TryAddHologram(OverseerHologram.Message message, Creature communicateWith, float importance)
    {
        if (base.dead)
        {
            return;
        }
        if (this.hologram != null)
        {
            if (this.hologram.message == message)
            {
                return;
            }
            if (this.hologram.importance >= importance && importance != 3.40282347E+38f)
            {
                return;
            }
            this.hologram.stillRelevant = false;
            this.hologram = null;
        }
        switch (message)
        {
        case OverseerHologram.Message.Bats:
        case OverseerHologram.Message.TutorialFood:
            this.hologram = new OverseerHologram.BatPointer(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.DangerousCreature:
            this.hologram = new OverseerHologram.CreaturePointer(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.FoodObject:
            this.hologram = new OverseerHologram.FoodPointer(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.Shelter:
            this.hologram = new OverseerHologram.ShelterPointer(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.ProgressionDirection:
            this.hologram = new OverseerHologram.DirectionPointer(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.GateScene:
            this.hologram = new OverseerImage(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.InWorldSuperJump:
        case OverseerHologram.Message.PickupObject:
        case OverseerHologram.Message.ScavengerTrade:
        case OverseerHologram.Message.GetUpOnFirstBox:
        case OverseerHologram.Message.ClimbPole:
        case OverseerHologram.Message.EatInstruction:
        case OverseerHologram.Message.SuperJump:
            if (this.room.abstractRoom.name.Equals("FS_A01"))
            {
                Debug.Log("Trying to add tutorial hologram!");
                if (this.room.game.rainWorld.options.controls[0].gamePad)
                {
                    this.hologram = new OverseerDroughtTutorialBehavior.GamePadInstruction(this, message, communicateWith, importance);
                }
                else
                {
                    this.hologram = new OverseerDroughtTutorialBehavior.KeyBoardInstruction(this, message, communicateWith, importance);
                }
            }
            else
            {
                if (this.room.game.rainWorld.options.controls[0].gamePad)
                {
                    this.hologram = new OverseerTutorialBehavior.GamePadInstruction(this, message, communicateWith, importance);
                }
                else
                {
                    this.hologram = new OverseerTutorialBehavior.KeyBoardInstruction(this, message, communicateWith, importance);
                }
            }
            break;

        case OverseerHologram.Message.Angry:
            this.hologram = new AngryHologram(this, message, communicateWith, importance);
            break;

        case OverseerHologram.Message.ForcedDirection:
            this.hologram = new OverseerHologram.ForcedDirectionPointer(this, message, communicateWith, importance);
            break;
        }
        this.room.AddObject(this.hologram);
    }