Inheritance: MonoBehaviour
 void Update()
 {
     //tähän joku timeri
     if (doorTriggerActive)
     {
         dooropener = FindObjectOfType <DoorOpener>();
         dooropener.OpenDoor();
     }
 }
Exemplo n.º 2
0
 void Start()
 {
     DoorOpener[] doors = GameObject.FindObjectsOfType<DoorOpener>();
     for (int i = 0; i < doors.Length; i++)
     {
         if (doors[i].Channel == Channel)
         {
             door = doors[i];
             break;
         }
     }
 }
Exemplo n.º 3
0
    void Start()
    {
        this.doorOpener       = GetComponent <DoorOpener>();
        this.roomsDeactivator = GetComponentInParent <RoomsDeactivator>();
        this.roomMask         = GetComponent <SpriteMask>();
        this.roomMask.enabled = false;
        this.insideRoom       = false;
        this.numEnemies       = 0;

        //Activate enemies
        foreach (GameObject i in this.enemies)
        {
            i.gameObject.SetActive(false);
            this.numEnemies++;
        }
    }
Exemplo n.º 4
0
    //Handles door open prompt display and interaction
    void DoorCheck()
    {
        //TODO reduce complexity
        if (lookingAtDoorButton && Input.GetKeyDown(KeyCode.E))
        {
            doorOpener.Open();
            playerMove.inRangeOfDoor = false;
            lookingAtDoorButton      = false;
            interactText.enabled     = false;
        }
        else if (playerMove.inRangeOfDoor)
        {
            // only RayCast if near a door for performance
            lookRay.origin    = playerCamera.transform.position;
            lookRay.direction = playerCamera.transform.forward;

            if (Physics.Raycast(lookRay, out lookHit))
            {
                if (lookHit.collider.CompareTag("Open Button"))
                {
                    lookingAtDoorButton  = true;
                    interactText.enabled = true;
                    interactText.text    = "Press 'E' To Open";
                    doorOpener           = lookHit.collider.GetComponentInParent <DoorOpener>();
                }
                else
                {
                    lookingAtDoorButton  = false;
                    interactText.enabled = false;
                }
            }
        }
        else if (interactText.enabled)
        {
            interactText.enabled = false;
        }
    }
        public static bool OpenDoor(int x, int y, int direction, bool state = false, DoorOpener opener = DoorOpener.SERVER, ISender sender = null)
        {
            if (sender == null)
            {
                sender = new ConsoleSender();
            }

            if (Program.properties.NPCDoorOpenCancel && opener == DoorOpener.NPC)
                return false;

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.X = x;
            doorEvent.Y = y;
            doorEvent.Direction = direction;
            doorEvent.Opener = opener;
            doorEvent.isOpened = state;
            Program.server.PluginManager.processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                NetMessage.SendData(19, -1, -1, "", 1, (float)x, (float)y, 0); //Inform the client of the update
                return false;
            }

            int num = 0;
            if (Main.tile.At(x, y - 1).FrameY == 0 && Main.tile.At(x, y - 1).Type == Main.tile.At(x, y).Type)
            {
                num = y - 1;
            }
            else if (Main.tile.At(x, y - 2).FrameY == 0 && Main.tile.At(x, y - 2).Type == Main.tile.At(x, y).Type)
            {
                num = y - 2;
            }
            else if (Main.tile.At(x, y + 1).FrameY == 0 && Main.tile.At(x, y + 1).Type == Main.tile.At(x, y).Type)
            {
                num = y + 1;
            }
            else
            {
                num = y;
            }
            int num2 = x;
            short num3 = 0;
            int num4;
            if (direction == -1)
            {
                num2 = x - 1;
                num3 = 36;
                num4 = x - 1;
            }
            else
            {
                num2 = x;
                num4 = x + 1;
            }
            bool flag = true;
            for (int k = num; k < num + 3; k++)
            {
                if (Main.tile.At(num4, k).Active)
                {
                    if (Main.tile.At(num4, k).Type != 3 && Main.tile.At(num4, k).Type != 24 && Main.tile.At(num4, k).Type != 52 && Main.tile.At(num4, k).Type != 61 && Main.tile.At(num4, k).Type != 62 && Main.tile.At(num4, k).Type != 69 && Main.tile.At(num4, k).Type != 71 && Main.tile.At(num4, k).Type != 73 && Main.tile.At(num4, k).Type != 74)
                    {
                        flag = false;
                        break;
                    }
                    WorldModify.KillTile(num4, k, false, false, false);
                }
            }
            if (flag)
            {
                Main.tile.At(num2, num).SetActive (true);
                Main.tile.At(num2, num).SetType (11);
                Main.tile.At(num2, num).SetFrameY (0);
                Main.tile.At(num2, num).SetFrameX (num3);
                Main.tile.At(num2 + 1, num).SetActive (true);
                Main.tile.At(num2 + 1, num).SetType (11);
                Main.tile.At(num2 + 1, num).SetFrameY (0);
                Main.tile.At(num2 + 1, num).SetFrameX ((short)(num3 + 18));
                Main.tile.At(num2, num + 1).SetActive (true);
                Main.tile.At(num2, num + 1).SetType (11);
                Main.tile.At(num2, num + 1).SetFrameY (18);
                Main.tile.At(num2, num + 1).SetFrameX (num3);
                Main.tile.At(num2 + 1, num + 1).SetActive (true);
                Main.tile.At(num2 + 1, num + 1).SetType (11);
                Main.tile.At(num2 + 1, num + 1).SetFrameY (18);
                Main.tile.At(num2 + 1, num + 1).SetFrameX ((short)(num3 + 18));
                Main.tile.At(num2, num + 2).SetActive (true);
                Main.tile.At(num2, num + 2).SetType (11);
                Main.tile.At(num2, num + 2).SetFrameY (36);
                Main.tile.At(num2, num + 2).SetFrameX (num3);
                Main.tile.At(num2 + 1, num + 2).SetActive (true);
                Main.tile.At(num2 + 1, num + 2).SetType (11);
                Main.tile.At(num2 + 1, num + 2).SetFrameY (36);
                Main.tile.At(num2 + 1, num + 2).SetFrameX ((short)(num3 + 18));
                for (int l = num2 - 1; l <= num2 + 2; l++)
                {
                    for (int m = num - 1; m <= num + 2; m++)
                    {
                        WorldModify.TileFrame(l, m, false, false);
                    }
                }
            }
            return flag;
        }
        public static bool CloseDoor(int x, int y, bool forced = false, DoorOpener opener = DoorOpener.SERVER, ISender sender = null)
        {
            if (sender == null)
            {
                sender = new ConsoleSender ();
            }

            if (Program.properties.NPCDoorOpenCancel && opener == DoorOpener.NPC)
                return false;

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.X = x;
            doorEvent.Y = y;
            doorEvent.Direction = 1;
            doorEvent.Opener = opener;
            doorEvent.isOpened = forced;
            Program.server.PluginManager.processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                NetMessage.SendData(19, -1, -1, "", 0, (float)x, (float)y, 0); //Inform the client of the update
                return false;
            }

            int num = 0;
            int num2 = x;
            int num3 = y;

            int frameX = (int)Main.tile.At(x, y).FrameX;
            int frameY = (int)Main.tile.At(x, y).FrameY;
            if (frameX == 0)
            {
                num2 = x;
                num = 1;
            }
            else if (frameX == 18)
            {
                num2 = x - 1;
                num = 1;
            }
            else if (frameX == 36)
            {
                num2 = x + 1;
                num = -1;
            }
            else if (frameX == 54)
            {
                num2 = x;
                num = -1;
            }
            if (frameY == 0)
            {
                num3 = y;
            }
            else if (frameY == 18)
            {
                num3 = y - 1;
            }
            else if (frameY == 36)
            {
                num3 = y - 2;
            }
            int num4 = num2;
            if (num == -1)
            {
                num4 = num2 - 1;
            }
            if (!forced)
            {
                for (int k = num3; k < num3 + 3; k++)
                {
                    if (!Collision.EmptyTile(num2, k, true))
                    {
                        return false;
                    }
                }
            }
            for (int l = num4; l < num4 + 2; l++)
            {
                for (int m = num3; m < num3 + 3; m++)
                {
                    if (l == num2)
                    {
                        Main.tile.At(l, m).SetType (10);
                        Main.tile.At(l, m).SetFrameX ((short)(WorldModify.genRand.Next(3) * 18));
                    }
                    else
                    {
                        Main.tile.At(l, m).SetActive (false);
                    }
                }
            }
            for (int n = num2 - 1; n <= num2 + 1; n++)
            {
                for (int num5 = num3 - 1; num5 <= num3 + 2; num5++)
                {
                    WorldModify.TileFrame(n, num5, false, false);
                }
            }
            return true;
        }
 public void setOpener(DoorOpener Opener)
 {
     opener = Opener;
 }
        public static bool OpenDoor(int x, int y, int direction, bool state = false, DoorOpener opener = DoorOpener.SERVER, ISender sender = null)
        {
            if (sender == null)
            {
                ConsoleSender cSender = new ConsoleSender(Program.server);
                cSender.ConsoleCommand.Sender = new Sender();
                sender = cSender;
            }

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.X = x;
            doorEvent.Y = y;
            doorEvent.Direction = direction;
            doorEvent.Opener = opener;
            doorEvent.isOpened = state;
            Program.server.PluginManager.processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                return true;
            }

            int num = 0;
            if (Main.tile.At(x, y - 1).FrameY == 0 && Main.tile.At(x, y - 1).Type == Main.tile.At(x, y).Type)
            {
                num = y - 1;
            }
            else
            {
                if (Main.tile.At(x, y - 2).FrameY == 0 && Main.tile.At(x, y - 2).Type == Main.tile.At(x, y).Type)
                {
                    num = y - 2;
                }
                else
                {
                    if (Main.tile.At(x, y + 1).FrameY == 0 && Main.tile.At(x, y + 1).Type == Main.tile.At(x, y).Type)
                    {
                        num = y + 1;
                    }
                    else
                    {
                        num = y;
                    }
                }
            }
            int num2 = x;
            short num3 = 0;
            int num4;
            if (direction == -1)
            {
                num2 = x - 1;
                num3 = 36;
                num4 = x - 1;
            }
            else
            {
                num2 = x;
                num4 = x + 1;
            }
            bool flag = true;
            for (int k = num; k < num + 3; k++)
            {
                if (Main.tile.At(num4, k).Active)
                {
                    if (Main.tile.At(num4, k).Type != 3 && Main.tile.At(num4, k).Type != 24 && Main.tile.At(num4, k).Type != 52 && Main.tile.At(num4, k).Type != 61 && Main.tile.At(num4, k).Type != 62 && Main.tile.At(num4, k).Type != 69 && Main.tile.At(num4, k).Type != 71 && Main.tile.At(num4, k).Type != 73 && Main.tile.At(num4, k).Type != 74)
                    {
                        flag = false;
                        break;
                    }
                    WorldGen.KillTile(num4, k, false, false, false);
                }
            }
            if (flag)
            {
                Main.tile.At(num2, num).SetActive (true);
                Main.tile.At(num2, num).SetType (11);
                Main.tile.At(num2, num).SetFrameY (0);
                Main.tile.At(num2, num).SetFrameX (num3);
                Main.tile.At(num2 + 1, num).SetActive (true);
                Main.tile.At(num2 + 1, num).SetType (11);
                Main.tile.At(num2 + 1, num).SetFrameY (0);
                Main.tile.At(num2 + 1, num).SetFrameX ((short)(num3 + 18));
                Main.tile.At(num2, num + 1).SetActive (true);
                Main.tile.At(num2, num + 1).SetType (11);
                Main.tile.At(num2, num + 1).SetFrameY (18);
                Main.tile.At(num2, num + 1).SetFrameX (num3);
                Main.tile.At(num2 + 1, num + 1).SetActive (true);
                Main.tile.At(num2 + 1, num + 1).SetType (11);
                Main.tile.At(num2 + 1, num + 1).SetFrameY (18);
                Main.tile.At(num2 + 1, num + 1).SetFrameX ((short)(num3 + 18));
                Main.tile.At(num2, num + 2).SetActive (true);
                Main.tile.At(num2, num + 2).SetType (11);
                Main.tile.At(num2, num + 2).SetFrameY (36);
                Main.tile.At(num2, num + 2).SetFrameX (num3);
                Main.tile.At(num2 + 1, num + 2).SetActive (true);
                Main.tile.At(num2 + 1, num + 2).SetType (11);
                Main.tile.At(num2 + 1, num + 2).SetFrameY (36);
                Main.tile.At(num2 + 1, num + 2).SetFrameX ((short)(num3 + 18));
                for (int l = num2 - 1; l <= num2 + 2; l++)
                {
                    for (int m = num - 1; m <= num + 2; m++)
                    {
                        WorldGen.TileFrame(l, m, false, false);
                    }
                }
            }
            return flag;
        }
        public static bool CloseDoor(int i, int j, bool forced = false, DoorOpener opener = DoorOpener.SERVER, ISender sender = null)
        {
            if (sender == null)
            {
                ConsoleSender cSender = new ConsoleSender(Program.server);
                cSender.ConsoleCommand.Sender = new Sender();
                sender = cSender;
            }

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.X = i;
            doorEvent.Y = j;
            doorEvent.Direction = 1;
            doorEvent.Opener = opener;
            doorEvent.isOpened = forced;
            Program.server.PluginManager.processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                return true;
            }

            int num = 0;
            int num2 = i;
            int num3 = j;

            int frameX = (int)Main.tile.At(i, j).FrameX;
            int frameY = (int)Main.tile.At(i, j).FrameY;
            if (frameX == 0)
            {
                num2 = i;
                num = 1;
            }
            else
            {
                if (frameX == 18)
                {
                    num2 = i - 1;
                    num = 1;
                }
                else
                {
                    if (frameX == 36)
                    {
                        num2 = i + 1;
                        num = -1;
                    }
                    else
                    {
                        if (frameX == 54)
                        {
                            num2 = i;
                            num = -1;
                        }
                    }
                }
            }
            if (frameY == 0)
            {
                num3 = j;
            }
            else
            {
                if (frameY == 18)
                {
                    num3 = j - 1;
                }
                else
                {
                    if (frameY == 36)
                    {
                        num3 = j - 2;
                    }
                }
            }
            int num4 = num2;
            if (num == -1)
            {
                num4 = num2 - 1;
            }
            if (!forced)
            {
                for (int k = num3; k < num3 + 3; k++)
                {
                    if (!Collision.EmptyTile(num2, k, true))
                    {
                        return false;
                    }
                }
            }
            for (int l = num4; l < num4 + 2; l++)
            {
                for (int m = num3; m < num3 + 3; m++)
                {
                    if (l == num2)
                    {
                        Main.tile.At(l, m).SetType (10);
                        Main.tile.At(l, m).SetFrameX ((short)(WorldGen.genRand.Next(3) * 18));
                    }
                    else
                    {
                        Main.tile.At(l, m).SetActive (false);
                    }
                }
            }
            for (int n = num2 - 1; n <= num2 + 1; n++)
            {
                for (int num5 = num3 - 1; num5 <= num3 + 2; num5++)
                {
                    WorldGen.TileFrame(n, num5, false, false);
                }
            }
            return true;
        }
Exemplo n.º 10
0
 static void Main(string[] args)
 {
     DoorOpener.Inject("Foo;APILast.Adapters.Sample");
 }
Exemplo n.º 11
0
 private void Awake()
 {
     mover  = GetComponent <CharacterMover>();
     opener = GetComponent <DoorOpener>();
     camera = Camera.main;
 }
        public static bool CloseDoor(int i, int j, bool forced = false, DoorOpener opener = DoorOpener.SERVER, Sender sender = null)
        {
            if (sender == null)
            {
                ConsoleSender cSender = new ConsoleSender(Program.server);
                cSender.ConsoleCommand.Sender = new Sender();
                sender = cSender;
            }

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.setVector(new Vector2(i, j));
            doorEvent.setDirection(1);
            doorEvent.setOpener(opener);
            doorEvent.setOpened(forced);
            Program.server.getPluginManager().processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                return true;
            }
            int num = 0;
            int num2 = i;
            int num3 = j;
            if (Main.tile[i, j] == null)
            {
                Main.tile[i, j] = new Tile();
            }
            int frameX = (int)Main.tile[i, j].frameX;
            int frameY = (int)Main.tile[i, j].frameY;
            if (frameX == 0)
            {
                num2 = i;
                num = 1;
            }
            else
            {
                if (frameX == 18)
                {
                    num2 = i - 1;
                    num = 1;
                }
                else
                {
                    if (frameX == 36)
                    {
                        num2 = i + 1;
                        num = -1;
                    }
                    else
                    {
                        if (frameX == 54)
                        {
                            num2 = i;
                            num = -1;
                        }
                    }
                }
            }
            if (frameY == 0)
            {
                num3 = j;
            }
            else
            {
                if (frameY == 18)
                {
                    num3 = j - 1;
                }
                else
                {
                    if (frameY == 36)
                    {
                        num3 = j - 2;
                    }
                }
            }
            int num4 = num2;
            if (num == -1)
            {
                num4 = num2 - 1;
            }
            if (!forced)
            {
                for (int k = num3; k < num3 + 3; k++)
                {
                    if (!Collision.EmptyTile(num2, k, true))
                    {
                        return false;
                    }
                }
            }
            for (int l = num4; l < num4 + 2; l++)
            {
                for (int m = num3; m < num3 + 3; m++)
                {
                    if (l == num2)
                    {
                        if (Main.tile[l, m] == null)
                        {
                            Main.tile[l, m] = new Tile();
                        }
                        Main.tile[l, m].type = 10;
                        Main.tile[l, m].frameX = (short)(WorldGen.genRand.Next(3) * 18);
                    }
                    else
                    {
                        if (Main.tile[l, m] == null)
                        {
                            Main.tile[l, m] = new Tile();
                        }
                        Main.tile[l, m].Active = false;
                    }
                }
            }
            for (int n = num2 - 1; n <= num2 + 1; n++)
            {
                for (int num5 = num3 - 1; num5 <= num3 + 2; num5++)
                {
                    WorldGen.TileFrame(n, num5, false, false);
                }
            }
            return true;
        }
        public static bool OpenDoor(int i, int j, int direction, bool state = false, DoorOpener opender = DoorOpener.SERVER, Sender sender = null)
        {
            if (sender == null)
            {
                ConsoleSender cSender = new ConsoleSender(Program.server);
                cSender.ConsoleCommand.Sender = new Sender();
                sender = cSender;
            }

            DoorStateChangeEvent doorEvent = new DoorStateChangeEvent();
            doorEvent.Sender = sender;
            doorEvent.setVector(new Vector2(i, j));
            doorEvent.setDirection(direction);
            doorEvent.setOpener(opender);
            doorEvent.setOpened(state);
            Program.server.getPluginManager().processHook(Hooks.DOOR_STATECHANGE, doorEvent);
            if (doorEvent.Cancelled)
            {
                return true;
            }

            int num = 0;
            if (Main.tile[i, j - 1] == null)
            {
                Main.tile[i, j - 1] = new Tile();
            }
            if (Main.tile[i, j - 2] == null)
            {
                Main.tile[i, j - 2] = new Tile();
            }
            if (Main.tile[i, j + 1] == null)
            {
                Main.tile[i, j + 1] = new Tile();
            }
            if (Main.tile[i, j] == null)
            {
                Main.tile[i, j] = new Tile();
            }
            if (Main.tile[i, j - 1].frameY == 0 && Main.tile[i, j - 1].type == Main.tile[i, j].type)
            {
                num = j - 1;
            }
            else
            {
                if (Main.tile[i, j - 2].frameY == 0 && Main.tile[i, j - 2].type == Main.tile[i, j].type)
                {
                    num = j - 2;
                }
                else
                {
                    if (Main.tile[i, j + 1].frameY == 0 && Main.tile[i, j + 1].type == Main.tile[i, j].type)
                    {
                        num = j + 1;
                    }
                    else
                    {
                        num = j;
                    }
                }
            }
            int num2 = i;
            short num3 = 0;
            int num4;
            if (direction == -1)
            {
                num2 = i - 1;
                num3 = 36;
                num4 = i - 1;
            }
            else
            {
                num2 = i;
                num4 = i + 1;
            }
            bool flag = true;
            for (int k = num; k < num + 3; k++)
            {
                if (Main.tile[num4, k] == null)
                {
                    Main.tile[num4, k] = new Tile();
                }
                if (Main.tile[num4, k].Active)
                {
                    if (Main.tile[num4, k].type != 3 && Main.tile[num4, k].type != 24 && Main.tile[num4, k].type != 52 && Main.tile[num4, k].type != 61 && Main.tile[num4, k].type != 62 && Main.tile[num4, k].type != 69 && Main.tile[num4, k].type != 71 && Main.tile[num4, k].type != 73 && Main.tile[num4, k].type != 74)
                    {
                        flag = false;
                        break;
                    }
                    WorldGen.KillTile(num4, k, false, false, false);
                }
            }
            if (flag)
            {
                Main.tile[num2, num].Active = true;
                Main.tile[num2, num].type = 11;
                Main.tile[num2, num].frameY = 0;
                Main.tile[num2, num].frameX = num3;
                if (Main.tile[num2 + 1, num] == null)
                {
                    Main.tile[num2 + 1, num] = new Tile();
                }
                Main.tile[num2 + 1, num].Active = true;
                Main.tile[num2 + 1, num].type = 11;
                Main.tile[num2 + 1, num].frameY = 0;
                Main.tile[num2 + 1, num].frameX = (short)(num3 + 18);
                if (Main.tile[num2, num + 1] == null)
                {
                    Main.tile[num2, num + 1] = new Tile();
                }
                Main.tile[num2, num + 1].Active = true;
                Main.tile[num2, num + 1].type = 11;
                Main.tile[num2, num + 1].frameY = 18;
                Main.tile[num2, num + 1].frameX = num3;
                if (Main.tile[num2 + 1, num + 1] == null)
                {
                    Main.tile[num2 + 1, num + 1] = new Tile();
                }
                Main.tile[num2 + 1, num + 1].Active = true;
                Main.tile[num2 + 1, num + 1].type = 11;
                Main.tile[num2 + 1, num + 1].frameY = 18;
                Main.tile[num2 + 1, num + 1].frameX = (short)(num3 + 18);
                if (Main.tile[num2, num + 2] == null)
                {
                    Main.tile[num2, num + 2] = new Tile();
                }
                Main.tile[num2, num + 2].Active = true;
                Main.tile[num2, num + 2].type = 11;
                Main.tile[num2, num + 2].frameY = 36;
                Main.tile[num2, num + 2].frameX = num3;
                if (Main.tile[num2 + 1, num + 2] == null)
                {
                    Main.tile[num2 + 1, num + 2] = new Tile();
                }
                Main.tile[num2 + 1, num + 2].Active = true;
                Main.tile[num2 + 1, num + 2].type = 11;
                Main.tile[num2 + 1, num + 2].frameY = 36;
                Main.tile[num2 + 1, num + 2].frameX = (short)(num3 + 18);
                for (int l = num2 - 1; l <= num2 + 2; l++)
                {
                    for (int m = num - 1; m <= num + 2; m++)
                    {
                        WorldGen.TileFrame(l, m, false, false);
                    }
                }
            }
            return flag;
        }
Exemplo n.º 14
0
 // Use this for initialization
 void Start()
 {
     doorOpener = GetComponentInParent <DoorOpener>();
 }
Exemplo n.º 15
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "Reset")
        {
            other.GetComponent <Renderer>().material.color = Color.black;
            appliedCode.Clear();
            //testing2.text = "";
            Fabric.EventManager.Instance.PostEvent(buttonAudioEvent);
            print("applied sounds reset");
        }
        else if (other.gameObject.name == "PlayAgain")
        {
            if (Color.grey == buttons[0].GetComponent <Renderer>().material.color)
            {
                print("color changed");
                for (int i = 0; i < animalSprites.Length; i++)
                {
                    animalSprites[i].GetComponent <Renderer>().material.color = Color.white;
                    buttons[i].GetComponent <Renderer>().material.color       = Color.cyan;
                }
            }
            Fabric.EventManager.Instance.PostEvent(buttonAudioEvent);
            other.GetComponent <Renderer>().material.color = Color.yellow;
            PlaySounds();
        }
        else if (other.gameObject.tag == "Button")
        {
            //buttons.indexOf(other.gameObject)
            for (int i = 0; i < buttons.Length; i++)
            {
                if (other.gameObject == buttons[i])
                {
                    animalAudio[i].Play();
                    buttons[i].GetComponent <Renderer>().material.color = Color.red;
                    print("button " + buttons[i] + " hit");
                    appliedCode.Add(i);
                    //testing2.text += " " + i;
                    print("number " + (i) + " added");
                }
            }
        }
        if (appliedCode.Count == rightCode.Count)
        {
            foreach (int number in appliedCode)
            {
                if (rightCode.Contains(number))
                {
                    print(number);
                    print("applied number is right");
                    correctApplied++;
                }
                if (correctApplied == rightCode.Count)
                {
                    Fabric.EventManager.Instance.PostEvent(successAudioEvent);
                    mtm.doorTriggerActive = true;
                    dop = FindObjectOfType <DoorOpener>();
                    print("jee");
                    //dosomething
                }
            }
        }


        //foreach (int f in appliedCode) {
        //    for (int i = 0; i < rightCode.Count; i++) {
        //        if (appliedCode[i] == rightCode[i]) {
        //            appliedCode.Contains()
        //        }
        //    }
        //}

        //if (appliedNumbers.Contains(codeNumbers[0]) && appliedNumbers.Contains(codeNumbers[1])
        //    && appliedNumbers.Contains(codeNumbers[2]) && appliedNumbers.Contains(codeNumbers[3])) {
        //    light.intensity = 25f;
        //}
    }