public UltimaMoongate_Frame(UltimaMoongate gate, MoongateFrame frame = MoongateFrame.Frame8, bool reverse = false, int itemid = 0x0F6C) : base(itemid) { m_baseGate = gate; m_Frame = frame; m_baseGate.currentGate = this; m_reverse = reverse; Movable = false; Visible = true; Light = LightType.Circle300; if (m_Frame == MoongateFrame.Frame8) { m_baseGate.gateOpened = true; if (gate.OpenTime > 0) { GateTimer = new TransitionTimer(gate, this, true, gate.OpenTime); GateTimer.Start(); } } else { GateTimer = new TransitionTimer(gate, this, reverse); GateTimer.Start(); } }
// Returns the ItemID of an animation frame for a moongate colour. Frame 8 is the pulsating 'open gate'. public static int GetMoongateFrameID(MoongateColour colour, MoongateFrame frame) { if (colour == MoongateColour.Blue) { switch (frame) { case MoongateFrame.Frame0: return(0x1AF4); case MoongateFrame.Frame1: return(0x1AF5); case MoongateFrame.Frame2: return(0x1AF6); case MoongateFrame.Frame3: return(0x1AF7); case MoongateFrame.Frame4: return(0x1AF8); case MoongateFrame.Frame5: return(0x1AF9); case MoongateFrame.Frame6: return(0x1AFA); case MoongateFrame.Frame7: return(0x1AFB); case MoongateFrame.Frame8: return(0x0F6C); } } else if (colour == MoongateColour.Red) { switch (frame) { case MoongateFrame.Frame0: return(0x1AE6); case MoongateFrame.Frame1: return(0x1AE7); case MoongateFrame.Frame2: return(0x1AE8); case MoongateFrame.Frame3: return(0x1AE9); case MoongateFrame.Frame4: return(0x1AEA); case MoongateFrame.Frame5: return(0x1AEB); case MoongateFrame.Frame6: return(0x1AEC); case MoongateFrame.Frame7: return(0x1AED); case MoongateFrame.Frame8: return(0x0DDA); } } else if (colour == MoongateColour.Black) { switch (frame) { case MoongateFrame.Frame0: return(0x1FCC); case MoongateFrame.Frame1: return(0x1FCD); case MoongateFrame.Frame2: return(0x1FCE); case MoongateFrame.Frame3: return(0x1FCF); case MoongateFrame.Frame4: return(0x1FD0); case MoongateFrame.Frame5: return(0x1FD1); case MoongateFrame.Frame6: return(0x1FD2); case MoongateFrame.Frame7: return(0x1FD3); case MoongateFrame.Frame8: return(0x1FD4); } } else if (colour == MoongateColour.Silver) { switch (frame) { case MoongateFrame.Frame0: return(0x1FDF); case MoongateFrame.Frame1: return(0x1FE0); case MoongateFrame.Frame2: return(0x1FE1); case MoongateFrame.Frame3: return(0x1FE2); case MoongateFrame.Frame4: return(0x1FE3); case MoongateFrame.Frame5: return(0x1FE4); case MoongateFrame.Frame6: return(0x1FE5); case MoongateFrame.Frame7: return(0x1FE6); case MoongateFrame.Frame8: return(0x1FE7); } } return(0); }