import ui, wndMgr, grp, chat, net class TeleportMap(ui.Bar): def __init__(self): ui.Bar.__init__(self, "TOP_MOST") self.warpButtons = [] self.bgColor = grp.GenerateColor(0.0, 0.0, 0.0, 0.0) self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight()) self.SetColor(self.bgColor) self.mapBG = ui.ExpandedImageBox() self.mapBG.SetParent(self) self.mapBG.LoadImage("interface/mapa_teleportacji/mapa_bg.png") self.mapBG.SetAlpha(0.0) self.mapBG.SetWindowHorizontalAlignCenter() self.mapBG.SetWindowVerticalAlignCenter() self.mapBG.Show() self.ShinsooM1 = WarpButton(self.mapBG, self, 180, 314, "interface/mapa_teleportacji/m1_01.png", "interface/mapa_teleportacji/m1_02.png") self.ShinsooM1.SetEvent(0) self.ShinsooM2 = WarpButton(self.mapBG, self, 211, 307, "interface/mapa_teleportacji/m2_01.png", "interface/mapa_teleportacji/m2_02.png") self.ShinsooM2.SetEvent(1) self.ShinsooM3 = WarpButton(self.mapBG, self, 244, 300, "interface/mapa_teleportacji/m3_01.png", "interface/mapa_teleportacji/m3_02.png") self.ShinsooM3.SetEvent(2) self.JinnoM1 = WarpButton(self.mapBG, self, 548, 113, "interface/mapa_teleportacji/m1_01.png", "interface/mapa_teleportacji/m1_02.png") self.JinnoM1.SetEvent(3) self.JinnoM2 = WarpButton(self.mapBG, self, 579, 106, "interface/mapa_teleportacji/m2_01.png", "interface/mapa_teleportacji/m2_02.png") self.JinnoM2.SetEvent(4) self.JinnoM3 = WarpButton(self.mapBG, self, 610, 99, "interface/mapa_teleportacji/m3_01.png", "interface/mapa_teleportacji/m3_02.png") self.JinnoM3.SetEvent(5) self.PajakiV1 = WarpButton(self.mapBG, self, 339, 143, "interface/mapa_teleportacji/v1_01.png", "interface/mapa_teleportacji/v1_02.png") self.PajakiV1.SetEvent(6) self.PajakiV2 = WarpButton(self.mapBG, self, 370, 136, "interface/mapa_teleportacji/v2_01.png", "interface/mapa_teleportacji/v2_02.png") self.PajakiV2.SetEvent(7) self.LasDuchow = WarpButton(self.mapBG, self, 291, 210, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.LasDuchow.SetEvent(7) self.CzerwonyLas = WarpButton(self.mapBG, self, 377, 234, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.CzerwonyLas.SetEvent(7) self.GoraSohan = WarpButton(self.mapBG, self, 509, 197, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.GoraSohan.SetEvent(7) self.DolinaOrkow = WarpButton(self.mapBG, self, 619, 232, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.DolinaOrkow.SetEvent(7) self.SwiatyniaHwang = WarpButton(self.mapBG, self, 366, 300, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.SwiatyniaHwang.SetEvent(7) self.OgnistaZiemia = WarpButton(self.mapBG, self, 470, 273, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.OgnistaZiemia.SetEvent(7) self.KrainaGigantow = WarpButton(self.mapBG, self, 295, 362, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.KrainaGigantow.SetEvent(7) self.Pustynia = WarpButton(self.mapBG, self, 472, 348, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.Pustynia.SetEvent(7) self.GrotaWyg = WarpButton(self.mapBG, self, 435, 403, "interface/mapa_teleportacji/tp_01.png", "interface/mapa_teleportacji/tp_02.png") self.GrotaWyg.SetEvent(7) self.warpButtons.append(self.ShinsooM1) self.warpButtons.append(self.ShinsooM2) self.warpButtons.append(self.ShinsooM3) self.warpButtons.append(self.JinnoM1) self.warpButtons.append(self.JinnoM2) self.warpButtons.append(self.JinnoM3) self.warpButtons.append(self.PajakiV1) self.warpButtons.append(self.PajakiV2) self.warpButtons.append(self.LasDuchow) self.warpButtons.append(self.CzerwonyLas) self.warpButtons.append(self.GoraSohan) self.warpButtons.append(self.DolinaOrkow) self.warpButtons.append(self.SwiatyniaHwang) self.warpButtons.append(self.OgnistaZiemia) self.warpButtons.append(self.KrainaGigantow) self.warpButtons.append(self.Pustynia) self.warpButtons.append(self.GrotaWyg) def __del__(self): ui.Bar.__del__(self) def Open(self): self.openAnimation = 1 self.Show() def OnUpdate(self): if self.openAnimation: if self.mapBG.GetAlpha() < 1.0: bgAlpha = self.mapBG.GetAlpha() / 1.5 bgColor = grp.GenerateColor(0.0, 0.0, 0.0, bgAlpha) self.mapBG.SetAlpha(self.mapBG.GetAlpha() + 0.04) self.SetColor(bgColor) else: self.openAnimation = 0 for x in xrange(len(self.warpButtons)): self.warpButtons[x].Update() def Close(self): self.bgColor = grp.GenerateColor(0.0, 0.0, 0.0, 0.0) self.mapBG.SetAlpha(0.0) self.Hide() def OnPressEscapeKey(self): self.Close() def Teleportuj(self, arg): net.SendChatPacket("/teleport {}".format(arg)) # chat.AppendChat(chat.CHAT_TYPE_INFO, "Teleportacja do: {}".format(arg)) class WarpButton(ui.ExpandedImageBox): def __init__(self, parent, globalParent, x, y, baseImage, hoverImage): ui.ExpandedImageBox.__init__(self) self.func = globalParent self.animacja = 0 self.baseImage = baseImage self.hoverImage = hoverImage self.mapa = -1 self.SetParent(parent) self.SetPosition(x, y) self.LoadImage(baseImage) self.Show() self.cover = ui.ExpandedImageBox() self.cover.AddFlag("not_pick") self.cover.SetParent(self) self.cover.LoadImage(hoverImage) self.cover.SetAlpha(0.0) self.cover.Show() def __del__(self): ui.ExpandedImageBox.__del__(self) def Update(self): if self.IsIn(): self.animacja = 1 #self.LoadImage(self.hoverImage) else: #self.LoadImage(self.baseImage) self.animacja = 0 alpha = self.cover.GetAlpha() if self.animacja: if alpha < 1.0: self.cover.SetAlpha(alpha+0.1) else: if alpha > 0.0: self.cover.SetAlpha(alpha-0.1) def SetEvent(self, mapa): self.mapa = mapa def OnMouseLeftButtonUp(self): self.func.Teleportuj(self.mapa)