def OnSetReelResult(self, slotPos): # Try to get network itemVnum. try: itemVnum = SLOT_MACHINE_REELS[self.reelResult[slotPos]] except IndexError: itemVnum = 63017 # Select item information. item.SelectItem(itemVnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() # Set item icon on reel slot. self.reelIconSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) self.reelIconSlot.SetSlotCount(slotPos, 0) self.reelIconSlot.ShowSlotBaseImage(slotPos) self.reelIconSlot.RefreshSlot() # Check if reel slot is unique. if self.reelResult[slotPos] <= SLOT_MACHINE_MAX_JACKPOTS: if ENABLE_SOUND: # Play jackpot reel icon sound. snd.PlaySound("sound/ui/quest_receive.wav") if ENABLE_EFFECT: # Show reel boom effect. if self.reelIconEffectList and not self.isInformationPage: self.reelIconEffectList[slotPos].ResetFrame() self.reelIconEffectList[slotPos].Show()
def OnChangeReelResult(self, slotPos): # Get random itemVnum. itemVnum = SLOT_MACHINE_REELS[app.GetRandom(1, len(SLOT_MACHINE_REELS))] # Select item information. item.SelectItem(itemVnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() # Set item icon on reel slot. self.reelIconSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) self.reelIconSlot.SetSlotCount(slotPos, 0) self.reelIconSlot.ShowSlotBaseImage(slotPos) self.reelIconSlot.RefreshSlot()
def SetBaseLayout(self): self.itemCount = 0 for i in xrange(self.slotCount): if i < self.biologistLevel: self.itemSlot.EnableCoverButton(i) item.SelectItem(self.biologistItemVnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() self.itemSlot.SetSlot(i, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) self.itemSlot.SetSlotCount(i, 0) else: self.itemSlot.DisableCoverButton(i) self.itemSlot.RefreshSlot()
def __RefreshRefineItemSlot(self): try: for slotPos in xrange(self.wndRefineSlot.GetSlotCount()): self.wndRefineSlot.ClearSlot(slotPos) if slotPos < self.refineSlotLockStartIndex: # self.refineItemInfo[slotPos]의 정보확인 # (실제로 아이템이 존재하는지 확인) # 존재 -> 아이템 아이콘을 슬롯에 셋팅. # 비존재 -> 아이템이 없으므로 강화창에서 삭제. if slotPos in self.refineItemInfo: invenType, invenPos, itemCount = self.refineItemInfo[slotPos] itemVnum = player.GetItemIndex(invenType, invenPos) # if itemVnum: if itemVnum: self.wndRefineSlot.SetItemSlot(slotPos, player.GetItemIndex(invenType, invenPos), itemCount) else: del self.refineItemInfo[slotPos] # 빈 슬롯에 reference 아이콘을 alpha 0.5로 셋팅. if not slotPos in self.refineItemInfo: try: reference_vnum = 0 # strength 강화일 때는, # 0번 슬롯에 강화석을, 1번 슬롯에 용혼석을 놓는다. if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType: if DragonSoulRefineWindow.REFINE_STONE_SLOT == slotPos: reference_vnum = 100300 else: reference_vnum = self.__MakeDragonSoulVnum(*self.currentRecipe["ds_info"]) if 0 != reference_vnum: item.SelectItem(reference_vnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() self.wndRefineSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) # slot 우측 하단에 숫자 뜨면 안 예쁨... self.wndRefineSlot.SetSlotCount(slotPos, 0) except: pass # refineSlotLockStartIndex 보다 작은 슬롯은 닫힌 이미지를 보여주면 안됨. self.wndRefineSlot.HideSlotBaseImage(slotPos) # slotPos >= self.refineSlotLockStartIndex: else: # 정상적인 경우라면 이 if문에 들어갈 일은 없겠지만, # (애초에 인덱스가 refineSlotLockStartIndex 이상인 슬롯에는 아이템을 넣지 못하게 했기 때문) # 혹시 모를 에러에 대비함. if slotPos in self.refineItemInfo: invenType, invenPos, itemCount = self.refineItemInfo[slotPos] remainCount = player.GetItemCount(invenType, invenPos) player.SetItemCount(invenType, invenPos, remainCount + itemCount) del self.refineItemInfo[selectedSlotPos] # refineSlotLockStartIndex 이상인 슬롯은 닫힌 이미지를 보여줘야함. self.wndRefineSlot.ShowSlotBaseImage(slotPos) # 강화창에 아무런 아이템이 없다면, 초기화해줌. # 위에서 중간 중간에 "del self.refineItemInfo[slotPos]"를 했기 때문에, # 여기서 한번 체크해줘야함. if not self.refineItemInfo: self.__Initialize() self.wndRefineSlot.RefreshSlot() except Exception, e: import dbg dbg.TraceError("Exception : __RefreshRefineItemSlot, %s" % e)
def __BindEvent(self): # Title Bar if self.titleBar: self.titleBar.SetCloseEvent(ui.__mem_func__(self.__OnClickCloseTitleBar)) # Bet Button if self.betButton: self.betButton.SetEvent(ui.__mem_func__(self.__OnClickBetButton)) # Down Bet Button if self.downBetButton: self.downBetButton.SetEvent(ui.__mem_func__(self.__OnClickDownBetButton)) # Up Bet Button if self.upBetButton: self.upBetButton.SetEvent(ui.__mem_func__(self.__OnClickUpBetButton)) # Information (Jackpot) Button if self.informationButton: self.informationButton.SetToggleUpEvent(ui.__mem_func__(self.__OnClickInformationButton)) self.informationButton.SetToggleDownEvent(ui.__mem_func__(self.__OnClickInformationButton)) # Help ToolTip Button if self.helpToolTipButton: self.toolTipHelp = self.__CreateGameTypeToolTip(localeInfo.SLOT_MACHINE_INFO_TOOLTIP, SLOT_MACHINE_TOOLTIP_DICT) self.toolTipHelp.SetTop() self.helpToolTipButton.SetToolTipWindow(self.toolTipHelp) # Jackpot Effect if self.jackpotEffect: self.jackpotEffect.SetEndFrameEvent(ui.__mem_func__(self.__OnHideEffects)) # Success Effect if self.successEffect: self.successEffect.SetEndFrameEvent(ui.__mem_func__(self.__OnHideEffects)) # Slot Reel Effect if self.reelIconEffectList: for reelIconEffect in self.reelIconEffectList: reelIconEffect.SetEndFrameEvent(ui.__mem_func__(self.__OnHideEffects)) for slotPos in xrange(self.reelIconSlot.GetSlotCount()): # Get random itemVnum. itemVnum = SLOT_MACHINE_REELS[app.GetRandom(1, len(SLOT_MACHINE_REELS))] # Select item information. item.SelectItem(itemVnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() # Set item icon on reel slot. self.reelIconSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) self.reelIconSlot.SetSlotCount(slotPos, 0) self.reelIconSlot.ShowSlotBaseImage(slotPos) self.reelIconSlot.RefreshSlot() for slotPos in xrange(self.jackpotReelIconSlot.GetSlotCount()): uniqueSlot = 1 if slotPos >= 3 and slotPos <= 5: uniqueSlot = 2 elif slotPos >= 6 and slotPos <= 8: uniqueSlot = 3 else: uniqueSlot = 1 # Get jackpot itemVnum. itemVnum = SLOT_MACHINE_REELS[uniqueSlot] # Select item information. item.SelectItem(itemVnum) itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() # Set item icon on jackpot reel slot. self.jackpotReelIconSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) self.jackpotReelIconSlot.SetSlotCount(slotPos, 0) self.jackpotReelIconSlot.ShowSlotBaseImage(slotPos) self.jackpotReelIconSlot.RefreshSlot() # Click up bet button. self.__OnClickUpBetButton()