Exemple #1
0
	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()
Exemple #2
0
	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)
Exemple #5
0
	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()