本文整理汇总了Python中pirates.battle.WeaponGlobals.getSkillTrack方法的典型用法代码示例。如果您正苦于以下问题:Python WeaponGlobals.getSkillTrack方法的具体用法?Python WeaponGlobals.getSkillTrack怎么用?Python WeaponGlobals.getSkillTrack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pirates.battle.WeaponGlobals
的用法示例。
在下文中一共展示了WeaponGlobals.getSkillTrack方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: isComboSkill
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def isComboSkill(skillId):
inv = base.localAvatar.getInventory()
if inv == None:
return 0
if skillId == InventoryType.DollAttune or skillId == InventoryType.DollPoke:
return 0
if WeaponGlobals.getSkillTrack(skillId) == 1:
if inv.getStackQuantity(skillId):
return 1
return 0
示例2: getTimeSpentRecharging
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def getTimeSpentRecharging(self, skillId):
if WeaponGlobals.getSkillTrack(skillId) == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX:
return self.getHits(skillId)
details = self._BattleSkillDiary__timers.get(skillId)
if not details:
return None
t = details[1]
if details[0] == self.CHARGING:
curTime = globalClock.getFrameTime()
lastTime = details[2]
dt = curTime - lastTime
t += dt
return t
示例3: getTimeRemaining
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def getTimeRemaining(self, skillId):
if WeaponGlobals.getSkillTrack(skillId) == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX:
ammoSkillId = 0
else:
details = self._BattleSkillDiary__timers.get(skillId)
if not details:
return None
ammoSkillId = details[3]
timeRequired = self.cr.battleMgr.getModifiedRechargeTime(self.av, skillId, ammoSkillId)
if timeRequired == 0.0:
return 0.0
timeSpent = self.getTimeSpentRecharging(skillId)
if timeSpent is None:
return 0.0
elif timeSpent >= timeRequired:
return 0.0
else:
return timeRequired - timeSpent
示例4: canUseSkill
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def canUseSkill(self, skillId, ammoSkillId, tolerance = 0.0):
timeRequired = self.cr.battleMgr.getModifiedRechargeTime(self.av, skillId, ammoSkillId)
if timeRequired == 0.0:
return 1
timeSpent = self.getTimeSpentRecharging(skillId)
if timeSpent is None:
return 1
if WeaponGlobals.getSkillTrack(skillId) == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX:
if timeSpent >= timeRequired:
return 1
return 0
if timeSpent + tolerance >= timeRequired:
return 1
elif skillId == InventoryType.CannonShoot:
return 1
else:
return 0
示例5: createHelpbox
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def createHelpbox(self, args = None):
if self.helpBox:
return None
baseRank = max(self.skillRank, 1)
lvlDamageMod = WeaponGlobals.getLevelDamageModifier(localAvatar.getLevel())
buff = WeaponGlobals.getSkillEffectFlag(self.skillId)
dur = WeaponGlobals.getAttackDuration(self.skillId)
effect = dur + dur * (baseRank - 1) / 4
dodge = WeaponGlobals.getAttackDodge(self.skillId) * baseRank
accuracy = 0
damageMod = 0
reduceDamMod = 0
rechargeMod = 0
shipTurningMod = 0
shipSpeedMod = 0
rangeMod = 0
treasureSenseMod = 0
manaCost = WeaponGlobals.getMojoCost(self.skillId)
damage = 0
loDamage = 0
mpDamage = 0
chargeMod = 0
if self.skillId == InventoryType.SailBroadsideLeft or self.skillId == InventoryType.SailBroadsideRight:
damageMod = WeaponGlobals.getAttackTargetHP(self.skillId) * (baseRank - 1) * 100
elif self.skillId == InventoryType.CannonShoot:
rechargeMod = WeaponGlobals.CANNON_SHOOT_RATE_REDUCTION * (baseRank - 1) * 100
elif WeaponGlobals.getSkillTrack(self.skillId) == WeaponGlobals.TONIC_SKILL_INDEX:
damage = WeaponGlobals.getAttackSelfHP(self.skillId)
elif WeaponGlobals.getSkillTrack(self.skillId) != WeaponGlobals.PASSIVE_SKILL_INDEX:
damage = int(WeaponGlobals.getAttackTargetHP(self.skillId) * (1.0 + WeaponGlobals.LEVELUP_DAMAGE_MULTIPLIER * (baseRank - 1))) * lvlDamageMod
loDamage = damage / 2
mpDamage = int(WeaponGlobals.getAttackTargetMojo(self.skillId) * (1.0 + WeaponGlobals.LEVELUP_DAMAGE_MULTIPLIER * (baseRank - 1))) * lvlDamageMod
mpLoDamage = mpDamage / 2
else:
accuracy = WeaponGlobals.getAttackAccuracy(self.skillId) * baseRank
damageMod = WeaponGlobals.getAttackTargetHP(self.skillId) * baseRank * 100
reduceDamMod = WeaponGlobals.getAttackSelfHP(self.skillId) * baseRank
if reduceDamMod < 1:
reduceDamMod *= 100
if effect < 1:
effect *= 100
rechargeMod = WeaponGlobals.getAttackRechargeTime(self.skillId) * baseRank * 100
shipTurningMod = WeaponGlobals.getShipTurnRate(self.skillId) * baseRank * 100
shipSpeedMod = WeaponGlobals.getShipMaxSpeed(self.skillId) * baseRank * 100
treasureSenseMod = (WeaponGlobals.TREASURE_SENSE_BONUS / 2) * baseRank
rangeMod = WeaponGlobals.getAttackRange(self.skillId) * baseRank
manaCost *= baseRank
chargeMod = WeaponGlobals.getAttackMaxCharge(self.skillId) * baseRank * 100
if self.skillId == InventoryType.StaffSpiritLore:
import pdb as pdb
pdb.set_trace()
skillInfo = PLocalizer.SkillDescriptions.get(self.skillId)
skillTitle = PLocalizer.InventoryTypeNames.get(self.skillId)
skillType = 'slant' + skillInfo[0] + '\n\n'
description = skillInfo[1]
if damage < 0:
description += ' ' + PLocalizer.DealsDamage
elif damage > 0:
if loDamage:
description += ' ' + PLocalizer.HealsDamageRange
else:
description += ' ' + PLocalizer.HealsDamage
if mpDamage < 0:
description += ' ' + PLocalizer.DealsMpDamage
effectId = WeaponGlobals.getSkillEffectFlag(self.skillId)
if effectId:
description += ' ' + SkillEffectDescriptions.get(effectId)[0]
if (self.skillId == InventoryType.SailBroadsideLeft or self.skillId == InventoryType.SailBroadsideRight) and damageMod > 0:
description += ' ' + PLocalizer.BroadsideDesc
if self.skillId == InventoryType.CannonShoot and rechargeMod:
description += ' ' + PLocalizer.CannonShootDesc
if self.skillId == InventoryType.DollAttune:
description += ' ' + PLocalizer.MultiAttuneDesc
if WeaponGlobals.getSkillInterrupt(self.skillId):
description += ' ' + PLocalizer.InterruptDesc
if WeaponGlobals.getSkillUnattune(self.skillId):
description += ' ' + PLocalizer.UnattuneDesc
upgradeInfo = ''
if self.showUpgrade and self.skillRank < 5:
if self.skillRank > 0:
upgradeInfo = skillInfo[2]
if upgradeInfo == '':
if damage < 0:
upgradeInfo += PLocalizer.UpgradesDamage
elif damage > 0:
upgradeInfo += PLocalizer.UpgradesHealing
if mpDamage < 0:
#.........这里部分代码省略.........
示例6: useTargetedSkill
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def useTargetedSkill(self, skillId, ammoSkillId, skillResult, targetId, areaIdList, attackerEffects, targetEffects, areaIdEffects, itemEffects, timestamp, pos, charge = 0, localSignal = 0):
if WeaponGlobals.isSelfUseSkill(skillId) and not localSignal:
selfUse = True
else:
selfUse = False
if localSignal:
target = self.cr.doId2do.get(targetId)
if target and target != self and WeaponGlobals.isBreakAttackComboSkill(skillId) and skillResult == WeaponGlobals.RESULT_HIT:
levelGrade = self.cr.battleMgr.getModifiedExperienceGrade(self, target)
self.guiMgr.combatTray.updateSkillCharges(levelGrade)
if not self.isLocal() and localSignal and WeaponGlobals.getSkillTrack(skillId) == WeaponGlobals.DEFENSE_SKILL_INDEX or selfUse:
multiHits = []
numHits = WeaponGlobals.getNumHits(skillId)
hitTiming = WeaponGlobals.getMultiHitAttacks(skillId)
if hitTiming:
multiHits += hitTiming
if ammoSkillId:
numHits += WeaponGlobals.getNumHits(ammoSkillId) - 1
hitTiming = WeaponGlobals.getMultiHitAttacks(ammoSkillId)
if hitTiming:
multiHits += hitTiming
if not selfUse or self.isNpc:
if not targetId and areaIdList:
self.playSkillMovie(skillId, ammoSkillId, skillResult, charge, areaIdList[0], areaIdList)
else:
self.playSkillMovie(skillId, ammoSkillId, skillResult, charge, targetId, areaIdList)
if skillResult == WeaponGlobals.RESULT_REFLECTED or selfUse:
target = self
targetId = self.getDoId()
elif skillResult == WeaponGlobals.RESULT_BLOCKED:
target = None
else:
target = self.currentTarget
if target and targetId:
if multiHits and numHits:
multiHitEffects = self.packMultiHitEffects(targetEffects, numHits)
for i in range(numHits):
target.targetedWeaponHit(skillId, ammoSkillId, skillResult, multiHitEffects[i], self, pos, charge, multiHits[i], i, itemEffects = itemEffects)
else:
target.targetedWeaponHit(skillId, ammoSkillId, skillResult, targetEffects, self, pos, charge, itemEffects = itemEffects)
for (targetId, areaEffects) in zip(areaIdList, areaIdEffects):
target = self.cr.doId2do.get(targetId)
if target:
if multiHits and numHits:
multiHitEffects = self.packMultiHitEffects(areaEffects, numHits)
for i in range(numHits):
target.targetedWeaponHit(skillId, ammoSkillId, skillResult, multiHitEffects[i], self, pos, charge, multiHits[i], i, itemEffects = itemEffects)
else:
target.targetedWeaponHit(skillId, ammoSkillId, skillResult, areaEffects, self, pos, charge, itemEffects = itemEffects)
if not (self.currentTarget) and not areaIdList:
self.playHitSound(skillId, ammoSkillId, WeaponGlobals.RESULT_MISS)
示例7: getAllSkills
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def getAllSkills(repId, skilltrack, wantWeaponSkill = 0):
inv = base.localAvatar.getInventory()
if inv == None:
print 'WARNING - getAllSkills came up with no inventory for ', repId
return []
minlvl = 2
choices = []
if repId == InventoryType.CutlassRep:
skillId = InventoryType.begin_WeaponSkillCutlass
while skillId < InventoryType.end_WeaponSkillCutlass:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.MeleeRep:
skillId = InventoryType.begin_WeaponSkillMelee
while skillId < InventoryType.end_WeaponSkillMelee:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.DaggerRep:
skillId = InventoryType.begin_WeaponSkillDagger
while skillId < InventoryType.end_WeaponSkillDagger:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.GrenadeRep:
skillId = InventoryType.begin_WeaponSkillGrenade
while skillId < InventoryType.end_WeaponSkillGrenade:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.DollRep:
skillId = InventoryType.begin_WeaponSkillDoll
while skillId < InventoryType.end_WeaponSkillDoll:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.WandRep:
skillId = InventoryType.begin_WeaponSkillWand
while skillId < InventoryType.end_WeaponSkillWand:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
locked = False
if not Freebooter.getPaidStatus(base.localAvatar.getDoId()):
locked = not WeaponGlobals.canFreeUse(skillId)
if inv.getStackQuantity(skillId) >= minlvl:
skill = (skillId, True, locked)
else:
skill = (skillId, False, locked)
choices.append(skill)
skillId += 1
elif repId == InventoryType.KettleRep:
skillId = InventoryType.begin_WeaponSkillKettle
#.........这里部分代码省略.........
示例8: FindSkills
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def FindSkills(repId, skilltrack, minlvl):
inv = base.localAvatar.getInventory()
if inv == None:
print 'WARNING - FindSkills came up with no inventory for ', repId
return []
choices = []
if repId == InventoryType.FishingRep:
skillId = InventoryType.begin_WeaponSkillFishingRod
while skillId < InventoryType.end_WeaponSkillFishingRod:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
if repId == InventoryType.CutlassRep:
skillId = InventoryType.begin_WeaponSkillCutlass
while skillId < InventoryType.end_WeaponSkillCutlass:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.MeleeRep:
skillId = InventoryType.begin_WeaponSkillMelee
while skillId < InventoryType.end_WeaponSkillMelee:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.DaggerRep:
skillId = InventoryType.begin_WeaponSkillDagger
while skillId < InventoryType.end_WeaponSkillDagger:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.GrenadeRep:
skillId = InventoryType.begin_WeaponSkillGrenade
while skillId < InventoryType.end_WeaponSkillGrenade:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.DollRep:
skillId = InventoryType.begin_WeaponSkillDoll
while skillId < InventoryType.end_WeaponSkillDoll:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.WandRep:
skillId = InventoryType.begin_WeaponSkillWand
while skillId < InventoryType.end_WeaponSkillWand:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.KettleRep:
skillId = InventoryType.begin_WeaponSkillKettle
while skillId < InventoryType.end_WeaponSkillKettle:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.PistolRep:
skillId = InventoryType.begin_WeaponSkillPistol
while skillId < InventoryType.end_WeaponSkillPistol:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.CannonRep:
skillId = InventoryType.begin_WeaponSkillCannon
while skillId < InventoryType.end_WeaponSkillCannon:
if WeaponGlobals.getSkillTrack(skillId) == skilltrack:
if inv.getStackQuantity(skillId) >= minlvl:
choices.append(skillId)
skillId += 1
elif repId == InventoryType.SailingRep:
skillId = InventoryType.begin_SkillSailing
#.........这里部分代码省略.........
示例9: createHelpbox
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
#.........这里部分代码省略.........
self.realItem.setPos(0.0, 1.5, -0.059999999999999998)
self.realItem.setHpr(0, 90, 0)
self.realItem.reparentTo(self.portraitSceneGraph)
iHeight = 0.17499999999999999
self.createBuffer()
self.itemCard.setZ(runningVertPosition - 0.059999999999999998)
runningVertPosition -= iHeight
runningSize += iHeight
labels.append(self.itemCard)
goldLabel = DirectLabel(parent = self, relief = None, image = coinImage, image_scale = 0.12, image_pos = Vec3(0.025000000000000001, 0, -0.02), text = str(int(ItemGlobals.getGoldCost(itemId) * ItemGlobals.GOLD_SALE_MULTIPLIER)), text_scale = subtitleScale, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (halfWidth - 0.050000000000000003, 0.0, runningVertPosition + 0.080000000000000002), text_pos = (0.0, -textScale))
labels.append(goldLabel)
infoText = PLocalizer.ItemAttackStrength % '\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getPower(itemId))
if itemType == ItemGlobals.GUN:
infoText += ' %s' % PLocalizer.ItemBarrels % '\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getBarrels(itemId))
infoText += ' %s' % PLocalizer.ItemRangeStrength % '\x01%s\x01%s\x02' % (itemColor, PLocalizer.getItemRangeName(WeaponGlobals.getRange(itemId)))
if itemType != ItemGlobals.POTION:
infoLabel = DirectLabel(parent = self, relief = None, text = infoText, text_scale = textScale, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
iHeight = 0.080000000000000002
runningVertPosition -= iHeight
runningSize += iHeight
labels.append(infoLabel)
specialAttack = None
if itemType != ItemGlobals.POTION:
specialAttack = ItemGlobals.getSpecialAttack(itemId)
if specialAttack:
attackIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(specialAttack))
specialAttackNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.10000000000000001, geom = attackIcon, geom_scale = 0.10000000000000001, image_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), geom_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), text = PLocalizer.getInventoryTypeName(specialAttack), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_shadow = PiratesGuiGlobals.TextShadow, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
specialAttackRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
specialAttackType = WeaponGlobals.getSkillTrack(specialAttack)
if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX:
specialAttackTypeText = PLocalizer.BreakAttackSkill
elif specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX:
specialAttackTypeText = PLocalizer.DefenseSkill
else:
specialAttackTypeText = PLocalizer.WeaponSkill
specialAttackTypeLabel = DirectLabel(parent = self, relief = None, text = specialAttackTypeText, text_scale = 0.033500000000000002, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos = (0.0, -textScale))
specialAttackInfo = PLocalizer.SkillDescriptions.get(specialAttack)
specialAttackDescriptionText = specialAttackInfo[1]
specialAttackDescriptionLabel = DirectLabel(parent = self, relief = None, text = specialAttackDescriptionText, text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.059999999999999998), text_pos = (0.0, -textScale))
saHeight = specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() + specialAttackDescriptionLabel.getHeight() - 0.040000000000000001
runningVertPosition -= saHeight
runningSize += saHeight
labels.append(specialAttackNameLabel)
labels.append(specialAttackRankLabel)
labels.append(specialAttackTypeLabel)
labels.append(specialAttackDescriptionLabel)
attributes = ItemGlobals.getAttributes(itemId)
for i in range(0, len(attributes)):
attributeIcon = self.SkillIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0]))
if not attributeIcon:
attributeIcon = self.BuffIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0]))
attributeNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = attributeIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.getItemAttributeName(attributes[i][0]), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_shadow = PiratesGuiGlobals.TextShadow, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
attributeRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % attributes[i][1], text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
if attributeNameLabel.getHeight() > 0.074999999999999997:
attributeNameSpace = 0.080000000000000002
else:
attributeNameSpace = PiratesGuiGlobals.TextScaleLarge
attributeDescriptionLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemAttributeDescription(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos = (0.0, -textScale))
aHeight = attributeNameLabel.getHeight() + attributeDescriptionLabel.getHeight()
示例10: showDetails
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
#.........这里部分代码省略.........
labels.append(subtitleLabel)
itemType = ItemGlobals.getType(itemId)
itemSubtype = ItemGlobals.getSubtype(itemId)
model = ItemGlobals.getModel(itemId)
if model:
self.realItem = loader.loadModel('models/inventory/' + model)
if self.realItem:
posHpr = ItemGlobals.getModelPosHpr(model)
if posHpr:
self.realItem.setPos(posHpr[0], posHpr[1], posHpr[2])
self.realItem.setHpr(posHpr[3], posHpr[4], posHpr[5])
elif itemSubtype == ItemGlobals.RAM:
self.realItem.setPos(-1.5, 1.5, -0.59999999999999998)
self.realItem.setHpr(70, 160, -90)
else:
self.realItem.setPos(0.0, 1.5, -0.059999999999999998)
self.realItem.setHpr(0, 90, 0)
self.realItem.reparentTo(self.portraitSceneGraph)
iHeight = 0.17999999999999999
self.createBuffer()
self.itemCard.setZ(runningVertPosition - 0.059999999999999998)
runningVertPosition -= iHeight
runningSize += iHeight
labels.append(self.itemCard)
goldLabel = DirectLabel(parent = self, relief = None, image = coinImage, image_scale = 0.12, image_pos = Vec3(0.025000000000000001, 0, -0.02), text = str(int(ItemGlobals.getGoldCost(itemId) * ItemGlobals.GOLD_SALE_MULTIPLIER)), text_scale = subtitleScale, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (halfWidth - 0.050000000000000003, 0.0, runningVertPosition + 0.080000000000000002), text_pos = (0.0, -textScale))
labels.append(goldLabel)
specialAttack = ItemGlobals.getSpecialAttack(itemId)
if specialAttack:
attackIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(specialAttack))
specialAttackNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.10000000000000001, geom = attackIcon, geom_scale = 0.10000000000000001, image_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), geom_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), text = PLocalizer.getInventoryTypeName(specialAttack), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
specialAttackRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
specialAttackType = WeaponGlobals.getSkillTrack(specialAttack)
if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX:
specialAttackTypeText = PLocalizer.BreakAttackSkill
elif specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX:
specialAttackTypeText = PLocalizer.DefenseSkill
else:
specialAttackTypeText = PLocalizer.WeaponSkill
specialAttackTypeLabel = DirectLabel(parent = self, relief = None, text = specialAttackTypeText, text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos = (0.0, -textScale))
specialAttackInfo = PLocalizer.SkillDescriptions.get(specialAttack)
specialAttackDescriptionText = specialAttackInfo[1]
specialAttackDescriptionLabel = DirectLabel(parent = self, relief = None, text = specialAttackDescriptionText, text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.059999999999999998), text_pos = (0.0, -textScale))
saHeight = specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() + specialAttackDescriptionLabel.getHeight() - 0.040000000000000001
runningVertPosition -= saHeight
runningSize += saHeight
labels.append(specialAttackNameLabel)
labels.append(specialAttackRankLabel)
labels.append(specialAttackTypeLabel)
labels.append(specialAttackDescriptionLabel)
attributes = ItemGlobals.getAttributes(itemId)
for i in range(0, len(attributes)):
attributeIcon = self.SkillIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0]))
if not attributeIcon:
attributeIcon = self.BuffIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0]))
attributeNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = attributeIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.getItemAttributeName(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
attributeRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % attributes[i][1], text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale))
if attributeNameLabel.getHeight() > 0.074999999999999997:
attributeNameSpace = 0.080000000000000002
else:
attributeNameSpace = PiratesGuiGlobals.TextScaleLarge
attributeDescriptionLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemAttributeDescription(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos = (0.0, -textScale))
aHeight = attributeNameLabel.getHeight() + attributeDescriptionLabel.getHeight()
示例11: createHelpFrame
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def createHelpFrame(self, args = None):
if self.helpFrame:
return None
inv = localAvatar.getInventory()
if not inv:
return None
baseRank = max(self.skillRank, 1)
lvlDamageMod = WeaponGlobals.getLevelDamageModifier(localAvatar.getLevel())
buff = WeaponGlobals.getSkillEffectFlag(self.skillId)
dur = WeaponGlobals.getAttackDuration(self.skillId)
effect = dur + dur * (baseRank - 1) / 4.0
bonus = localAvatar.getSkillRankBonus(self.skillId)
upgradeAmt = WeaponGlobals.getAttackUpgrade(self.skillId)
rank = localAvatar.getSkillRank(self.skillId)
skillBoost = 0
if self.skillId in ItemGlobals.getLinkedSkills(localAvatar.currentWeaponId):
linkedSkillId = WeaponGlobals.getLinkedSkillId(self.skillId)
skillBoost = ItemGlobals.getWeaponBoosts(localAvatar.currentWeaponId, linkedSkillId)
skillBoost += ItemGlobals.getWeaponBoosts(localAvatar.getCurrentCharm(), linkedSkillId)
else:
skillBoost = ItemGlobals.getWeaponBoosts(localAvatar.currentWeaponId, self.skillId)
skillBoost += ItemGlobals.getWeaponBoosts(localAvatar.getCurrentCharm(), self.skillId)
manaCost = 0
if WeaponGlobals.getSkillTrack(self.skillId) != WeaponGlobals.PASSIVE_SKILL_INDEX:
manaCost = WeaponGlobals.getMojoCost(self.skillId)
if manaCost < 0:
amt = localAvatar.getSkillRankBonus(InventoryType.StaffConservation)
manaCost = min(manaCost - manaCost * amt, 1.0)
damage = 0
loDamage = 0
mpDamage = 0
mpLoDamage = 0
if WeaponGlobals.getSkillTrack(self.skillId) == WeaponGlobals.TONIC_SKILL_INDEX:
damage = WeaponGlobals.getAttackSelfHP(self.skillId)
elif WeaponGlobals.getSkillTrack(self.skillId) != WeaponGlobals.PASSIVE_SKILL_INDEX:
mod = (1.0 + bonus) * lvlDamageMod
damage = int(WeaponGlobals.getAttackTargetHP(self.skillId) * mod)
loDamage = damage / 2
mpDamage = int(WeaponGlobals.getAttackTargetMojo(self.skillId) * mod)
mpLoDamage = mpDamage / 2
try:
skillInfo = PLocalizer.SkillDescriptions.get(self.skillId)
skillTitle = PLocalizer.makeHeadingString(PLocalizer.InventoryTypeNames.get(self.skillId), 2)
skillType = PLocalizer.makeHeadingString(skillInfo[0], 1)
except:
self.notify.error('Error getting skill info for skillId %s' % self.skillId)
description = skillInfo[1]
if damage < 0:
description += ' ' + PLocalizer.DealsDamage
elif damage > 0:
if loDamage:
loDamage = 0
description += ' ' + PLocalizer.HealsDamageRange
else:
description += ' ' + PLocalizer.HealsDamage
if mpDamage < 0:
description += ' ' + PLocalizer.DealsMpDamage
effectId = WeaponGlobals.getSkillEffectFlag(self.skillId)
if effectId:
description += ' ' + SkillEffectDescriptions.get(effectId)[0]
if bonus:
if self.skillId == InventoryType.SailBroadsideLeft or self.skillId == InventoryType.SailBroadsideRight:
description += ' ' + PLocalizer.BroadsideDesc
if self.skillId == InventoryType.CannonShoot:
description += ' ' + PLocalizer.CannonShootDesc
if self.skillId == InventoryType.DollAttune:
description += ' ' + PLocalizer.MultiAttuneDesc
if WeaponGlobals.getSkillInterrupt(self.skillId):
description += ' ' + PLocalizer.InterruptDesc
if WeaponGlobals.getSkillUnattune(self.skillId):
description += ' ' + PLocalizer.UnattuneDesc
upgradeInfo = ''
if self.showUpgrade and rank < 5:
if rank > 0:
upgradeInfo = skillInfo[2]
if upgradeInfo == '':
if damage < 0:
upgradeInfo += PLocalizer.UpgradesDamage
elif damage > 0:
upgradeInfo += PLocalizer.UpgradesHealing
if mpDamage < 0:
upgradeInfo += ' ' + PLocalizer.UpgradesMpDamage
#.........这里部分代码省略.........
示例12: __init__
# 需要导入模块: from pirates.battle import WeaponGlobals [as 别名]
# 或者: from pirates.battle.WeaponGlobals import getSkillTrack [as 别名]
def __init__(self, skillId, callback, quantity = 0, skillRank = 0, showQuantity = False, showHelp = False, showRing = False, hotkey = None, name = '', showIcon = True, showLock = False, rechargeSkillId = False, isWeaponSkill = False, assocAmmo = []):
DirectFrame.__init__(self, parent = NodePath(), relief = None)
self.initialiseoptions(SkillButton)
gui = loader.loadModel('models/gui/toplevel_gui')
if not SkillButton.SkillIcons:
print 'not SkillButton.SkillIcons:'
SkillButton.SkillIcons = loader.loadModel('models/textureCards/skillIcons')
SkillButton.Image = (SkillButton.SkillIcons.find('**/base'), SkillButton.SkillIcons.find('**/base_down'), SkillButton.SkillIcons.find('**/base_over'))
SkillButton.SkillRechargedSound = loadSfx(SoundGlobals.SFX_SKILL_RECHARGED)
SkillButton.SubLock = gui.find('**/pir_t_gui_gen_key_subscriber')
SkillButton.SpecialIcons = []
for entry in SPECIAL_SKILL_ICONS:
if not entry:
SkillButton.SpecialIcons.append(None)
continue
specialImage = (SkillButton.SkillIcons.find('**/%s' % entry),)
SkillButton.SpecialIcons.append(specialImage)
model = loader.loadModel('models/effects/particleMaps')
toggleIcon = model.find('**/particleGlow')
toggleIcon.node().setAttrib(ColorBlendAttrib.make(ColorBlendAttrib.MAdd))
self.toggleFrame = DirectFrame(relief = None, state = DGG.DISABLED, parent = self, image = toggleIcon, image_scale = 0.34999999999999998, image_pos = (0.0, 0.0, -0.01))
self.toggleFrame.hide()
self.glowRing = None
self.glowRing2 = None
self.assocAmmo = assocAmmo
self.skillId = skillId
self.quantity = quantity
self.showQuantity = showQuantity
self.skillRank = skillRank
self.skillRing = None
self.callback = callback
self.showUpgrade = False
self.showHelp = showHelp
self.showRing = showRing
self.showIcon = showIcon
self.showLock = showLock
self.isWeaponSkill = isWeaponSkill
self.lock = None
self.name = name
self.helpFrame = None
self.quantityLabel = None
self.skillButton = None
self.hotkeyLabel = None
self.hotkey = hotkey
self.greyOut = 0
self.tonicId = 0
self.skillRingIval = None
self.impulseIval = None
self.quickImpulseIval = None
self.isBreakAttackSkill = WeaponGlobals.getSkillTrack(self.skillId) == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX
self.isDefenseSkill = WeaponGlobals.getSkillTrack(self.skillId) == WeaponGlobals.DEFENSE_SKILL_INDEX
self.rechargeFilled = 0
self.defenseAuraEffect = None
if self.isWeaponSkill:
self.weaponBackground = DirectLabel(parent = self, state = DGG.DISABLED, image = SkillButton.SkillIcons.find('**/box_base'), image_scale = (0.22, 0, 0.22), image_pos = (0.0, 0.0, 0.0))
self.weaponBackground.flattenLight()
self.weaponBackground.setColor(0.20000000000000001, 0.20000000000000001, 0.20000000000000001, 0.20000000000000001)
self.weaponBackground.setTransparency(1)
if showRing:
if self.isBreakAttackSkill:
color = Vec4(1, 0, 0, 1)
elif self.isDefenseSkill:
color = Vec4(0, 1, 1, 1)
else:
color = Vec4(1, 0.80000000000000004, 0.5, 1)
self.skillRing = SkillRing(color, Vec4(0, 0, 0, 1.0))
gs = self.skillRing.meterFaceHalf2.node().getGeomState(0)
self.skillRing.meterFaceHalf2.node().setGeomState(0, gs.removeAttrib(ColorAttrib.getClassType()))
self.skillRing.reparentTo(self, 0)
self.skillRing.setPos(0, 0, 0)
self.updateSkillId(skillId)
if showQuantity:
self.updateQuantity(quantity)
if hotkey:
self.createHotkey(hotkey)
if showLock:
self.createLock()
self.skillButton.bind(DGG.ENTER, self.showDetails)
self.skillButton.bind(DGG.EXIT, self.hideDetails)
if self.skillId >= InventoryType.begin_Consumables and self.skillId <= InventoryType.end_Consumables and not WeaponGlobals.getSkillEffectFlag(skillId):
self.totalRechargeTime = base.cr.battleMgr.getModifiedRechargeTime(localAvatar, InventoryType.UseItem)
self.tonicId = InventoryType.UseItem
else:
self.totalRechargeTime = base.cr.battleMgr.getModifiedRechargeTime(localAvatar, self.skillId)
if showRing:
if not self.isBreakAttackSkill:
self.createSkillRingIval()
if self.tonicId:
timeSpentRecharging = localAvatar.skillDiary.getTimeSpentRecharging(InventoryType.UseItem)
else:
timeSpentRecharging = localAvatar.skillDiary.getTimeSpentRecharging(self.skillId)
if self.isBreakAttackSkill and timeSpentRecharging < self.totalRechargeTime:
#.........这里部分代码省略.........