Exemple #1
0
        public LeverPuzzleController() : base(0x1822)
        {
            Movable   = false;
            Hue       = 0x4c;
            installed = true;
            int i = 0;

            m_Levers = new List <Item>();    /* codes are 0x1 shifted left x # of bits, easily handled here */
            for (; i < 4; i++)
            {
                m_Levers.Add(AddLeverPuzzlePart(TA[i], new LeverPuzzleLever((ushort)(1 << i), this)));
            }

            m_Tiles = new List <LeverPuzzleRegion>();
            for (; i < 9; i++)
            {
                m_Tiles.Add(new LeverPuzzleRegion(this, TA[i]));
            }

            m_Teles = new List <Item>();
            for (; i < 15; i++)
            {
                m_Teles.Add(AddLeverPuzzlePart(TA[i], new LampRoomTeleporter(TA[++i])));
            }

            m_Statues = new List <Item>();
            for (; i < 19; i++)
            {
                m_Statues.Add(AddLeverPuzzlePart(TA[i], new LeverPuzzleStatue(TA[++i], this)));
            }

            if (!installed)
            {
                Delete();
            }
            else
            {
                Enabled = true;
            }

            m_Box      = (LampRoomBox)AddLeverPuzzlePart(TA[i], new LampRoomBox(this));
            m_LampRoom = new LampRoomRegion(this);
            GenKey();
        }
Exemple #2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Levers  = reader.ReadStrongItemList();
            m_Statues = reader.ReadStrongItemList();
            m_Teles   = reader.ReadStrongItemList();

            m_Box = reader.ReadItem() as LampRoomBox;

            m_Tiles = new List <LeverPuzzleRegion>();
            for (int i = 4; i < 9; i++)
            {
                m_Tiles.Add(new LeverPuzzleRegion(this, TA[i]));
            }

            m_LampRoom = new LampRoomRegion(this);
            m_Enabled  = true;
            m_TheirKey = 0;
            m_MyKey    = 0;
            GenKey();
        }