def ClickSkillSlot(self, slotIndex): srcSlotIndex = self.__RealSkillSlotToSourceSlot(slotIndex) skillIndex = player.GetSkillIndex(srcSlotIndex) skillType = skill.GetSkillType(skillIndex) if not self.__CanUseSkillNow(): if skill.SKILL_TYPE_ACTIVE == skillType: return for slotWindow in self.skillPageDict.values(): if slotWindow.HasSlot(slotIndex): if skill.CanUseSkill(skillIndex): player.ClickSkillSlot(srcSlotIndex) return mouseModule.mouseController.DeattachObject()
def SelectSkill(self, skillSlotIndex): mouseController = mouseModule.mouseController if False == mouseController.isAttached(): srcSlotIndex = self.__RealSkillSlotToSourceSlot(skillSlotIndex) selectedSkillIndex = player.GetSkillIndex(srcSlotIndex) if skill.CanUseSkill(selectedSkillIndex): if app.IsPressed(app.DIK_LCONTROL): player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_SKILL, srcSlotIndex) return mouseController.AttachObject(self, player.SLOT_TYPE_SKILL, srcSlotIndex, selectedSkillIndex) else: mouseController.DeattachObject()
def __RefreshSkillPage(self, name, slotCount): global SHOW_LIMIT_SUPPORT_SKILL_LIST skillPage = self.skillPageDict[name] startSlotIndex = skillPage.GetStartIndex() if "ACTIVE" == name: if self.PAGE_HORSE == self.curSelectedSkillGroup: startSlotIndex += slotCount getSkillType=skill.GetSkillType getSkillIndex=player.GetSkillIndex getSkillGrade=player.GetSkillGrade getSkillLevel=player.GetSkillLevel getSkillLevelUpPoint=skill.GetSkillLevelUpPoint getSkillMaxLevel=skill.GetSkillMaxLevel for i in xrange(slotCount+1): slotIndex = i + startSlotIndex skillIndex = getSkillIndex(slotIndex) for j in xrange(skill.SKILL_GRADE_COUNT): skillPage.ClearSlot(self.__GetRealSkillSlot(j, i)) if 0 == skillIndex: continue skillGrade = getSkillGrade(slotIndex) skillLevel = getSkillLevel(slotIndex) skillType = getSkillType(skillIndex) ## 승마 스킬 예외 처리 if player.SKILL_INDEX_RIDING == skillIndex: if 1 == skillGrade: skillLevel += 19 elif 2 == skillGrade: skillLevel += 29 elif 3 == skillGrade: skillLevel = 40 skillPage.SetSkillSlotNew(slotIndex, skillIndex, max(skillLevel-1, 0), skillLevel) skillPage.SetSlotCount(slotIndex, skillLevel) ## ACTIVE elif skill.SKILL_TYPE_ACTIVE == skillType: for j in xrange(skill.SKILL_GRADE_COUNT): realSlotIndex = self.__GetRealSkillSlot(j, slotIndex) skillPage.SetSkillSlotNew(realSlotIndex, skillIndex, j, skillLevel) skillPage.SetCoverButton(realSlotIndex) if (skillGrade == skill.SKILL_GRADE_COUNT) and j == (skill.SKILL_GRADE_COUNT-1): skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel) elif (not self.__CanUseSkillNow()) or (skillGrade != j): skillPage.SetSlotCount(realSlotIndex, 0) skillPage.DisableCoverButton(realSlotIndex) else: skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel) ## 그외 else: if not SHOW_LIMIT_SUPPORT_SKILL_LIST or skillIndex in SHOW_LIMIT_SUPPORT_SKILL_LIST: realSlotIndex = self.__GetETCSkillRealSlotIndex(slotIndex) skillPage.SetSkillSlot(realSlotIndex, skillIndex, skillLevel) skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel) if skill.CanUseSkill(skillIndex): skillPage.SetCoverButton(realSlotIndex) skillPage.RefreshSlot()