def applyTo(self, trade, av): avId = av.getDoId() goldAmt = EnemyGlobals.getMaxGoldDrop(None, self.amount, 5) if Freebooter.getPaidStatusAI(avId): if REWARD_TO == 2 or REWARD_TO == 3: goldAmt *= GOLDFACTOR_HOLIDAY elif not Freebooter.getPaidStatusAI(avId): if REWARD_TO == 1 or REWARD_TO == 3: goldAmt *= GOLDFACTOR_HOLIDAY trade.giveGoldInPocket(goldAmt)
def applyTo(self, trade, av): global GOLDFACTOR_HOLIDAY avId = av.getDoId() goldAmt = self.amount if Freebooter.getPaidStatusAI(avId) and (REWARD_TO == 2 or REWARD_TO == 3): goldAmt *= GOLDFACTOR_HOLIDAY elif not Freebooter.getPaidStatusAI(avId) and (REWARD_TO == 1 or REWARD_TO == 3): goldAmt *= GOLDFACTOR_HOLIDAY trade.giveGoldInPocket(goldAmt)
def applyTo(self, trade, av): avId = av.getDoId() goldAmt = EnemyGlobals.getMaxGoldDrop(None, self.amount, 5) if Freebooter.getPaidStatusAI(avId): if REWARD_TO == 2 or REWARD_TO == 3: goldAmt *= GOLDFACTOR_HOLIDAY elif not Freebooter.getPaidStatusAI(avId): if REWARD_TO == 1 or REWARD_TO == 3: goldAmt *= GOLDFACTOR_HOLIDAY trade.giveGoldInPocket(goldAmt)
def giveReputation(self, category, amount): if self.avatarId: av = self.air.doId2do.get(self.avatarId) if av: inv = av.getInventory() avExpMult = av.getExpMult() amount = int(avExpMult * amount) if inv: if category == InventoryType.OverallRep: curLevel = av.getLevel() if Freebooter.getPaidStatusAI(self.avatarId): levelCap = ReputationGlobals.GlobalLevelCap else: levelCap = Freebooter.FreeOverallLevelCap if amount > 0 and curLevel < levelCap: curRepTotal = inv.getAccumulator( InventoryType.OverallRep) (newLevel, left ) = ReputationGlobals.getLevelFromTotalReputation( InventoryType.OverallRep, curRepTotal + amount) if newLevel >= levelCap: amount = max(0, amount - left) self.giveAccumulatorAddition(category, amount) elif category == InventoryType.GeneralRep: self.giveAccumulatorAddition(category, amount) elif Freebooter.getPaidStatusAI(self.avatarId): if category in [ InventoryType.PotionsRep, InventoryType.FishingRep ]: levelCap = ReputationGlobals.MinigameLevelCap else: levelCap = ReputationGlobals.LevelCap else: levelCap = Freebooter.FreeLevelCap repAmt = inv.getAccumulator(category) (curLevel, curLeft) = ReputationGlobals.getLevelFromTotalReputation( category, repAmt) if curLevel >= levelCap: amount = 0 (expLevel, left) = ReputationGlobals.getLevelFromTotalReputation( category, repAmt + amount) if expLevel >= levelCap and curLevel < levelCap: amount = max(0, amount - left) self.giveAccumulatorAddition(category, amount)
def applyTo(self, trade, av): global REPFACTOR_HOLIDAY avId = av.getDoId() rewardAmount = self.amount if Freebooter.getPaidStatusAI(avId) and (REWARD_TO == 2 or REWARD_TO == 3): rewardAmount = self.amount * REPFACTOR_HOLIDAY elif not Freebooter.getPaidStatusAI(avId) and (REWARD_TO == 1 or REWARD_TO == 3): rewardAmount = self.amount * REPFACTOR_HOLIDAY if av.getTempDoubleXPReward(): rewardAmount = rewardAmount * 2 trade.giveReputation(InventoryType.GeneralRep, rewardAmount) trade.giveReputation(InventoryType.OverallRep, rewardAmount)
def applyTo(self, trade, av): avId = av.getDoId() rewardAmount = self.amount if Freebooter.getPaidStatusAI(avId): if REWARD_TO == 2 or REWARD_TO == 3: rewardAmount = self.amount * REPFACTOR_HOLIDAY elif not Freebooter.getPaidStatusAI(avId): if REWARD_TO == 1 or REWARD_TO == 3: rewardAmount = self.amount * REPFACTOR_HOLIDAY if av.getTempDoubleXPReward(): rewardAmount = rewardAmount * 2 trade.giveReputation(InventoryType.GeneralRep, rewardAmount) trade.giveReputation(InventoryType.OverallRep, rewardAmount)
def getItemRequirements(self, itemType, otherAdds=[]): if not itemType: return results = {} if game.process == 'client': paidStatus = Freebooter.getPaidStatus(self.ownerId) else: paidStatus = Freebooter.getPaidStatusAI(self.ownerId) rarity = ItemGlobals.getRarity(itemType) if rarity != ItemConstants.CRUDE and not paidStatus: results['paidStatus'] = (rarity != ItemConstants.CRUDE, False) itemClass = ItemGlobals.getClass(itemType) if itemClass == InventoryType.ItemTypeWeapon or itemClass == InventoryType.ItemTypeCharm: itemRepId = ItemGlobals.getItemRepId(itemType) itemRep = self.getReputation(itemRepId) itemLevel = ReputationGlobals.getLevelFromTotalReputation( itemRepId, itemRep)[0] weaponReq = ItemGlobals.getWeaponRequirement(itemType) trainingToken = EconomyGlobals.getItemTrainingReq(itemType) trainingAmt = self.getItemQuantity(trainingToken) for currAdd in otherAdds: otherAdd = InvItem(currAdd) if otherAdd.getCat( ) == trainingToken and otherAdd.getCount() > 0: trainingAmt += otherAdd.getCount() weaponLevelPass = weaponReq == None or itemLevel >= weaponReq weaponTrainPass = trainingToken == 0 or trainingToken == None or trainingAmt > 0 results['itemLevel'] = (weaponReq, weaponLevelPass and weaponTrainPass) else: results['itemLevel'] = (0, True) return results
def giveReputation(self, category, amount): if self.avatarId: av = self.air.doId2do.get(self.avatarId) if av: inv = av.getInventory() avExpMult = av.getExpMult() amount = int(avExpMult * amount) if inv: if category == InventoryType.OverallRep: curLevel = av.getLevel() if Freebooter.getPaidStatusAI(self.avatarId): levelCap = ReputationGlobals.GlobalLevelCap else: levelCap = Freebooter.FreeOverallLevelCap if amount > 0 and curLevel < levelCap: curRepTotal = inv.getAccumulator(InventoryType.OverallRep) (newLevel, left) = ReputationGlobals.getLevelFromTotalReputation(InventoryType.OverallRep, curRepTotal + amount) if newLevel >= levelCap: amount = max(0, amount - left) self.giveAccumulatorAddition(category, amount) elif category == InventoryType.GeneralRep: self.giveAccumulatorAddition(category, amount) elif Freebooter.getPaidStatusAI(self.avatarId): if category in [ InventoryType.PotionsRep, InventoryType.FishingRep]: levelCap = ReputationGlobals.MinigameLevelCap else: levelCap = ReputationGlobals.LevelCap else: levelCap = Freebooter.FreeLevelCap repAmt = inv.getAccumulator(category) (curLevel, curLeft) = ReputationGlobals.getLevelFromTotalReputation(category, repAmt) if curLevel >= levelCap: amount = 0 (expLevel, left) = ReputationGlobals.getLevelFromTotalReputation(category, repAmt + amount) if expLevel >= levelCap and curLevel < levelCap: amount = max(0, amount - left) self.giveAccumulatorAddition(category, amount)
def getItemRequirements(self, itemType, otherAdds = []): if not itemType: return None results = { } if game.process == 'client': paidStatus = Freebooter.getPaidStatus(self.ownerId) else: paidStatus = Freebooter.getPaidStatusAI(self.ownerId) rarity = ItemGlobals.getRarity(itemType) if rarity != ItemConstants.CRUDE and not paidStatus: results['paidStatus'] = (rarity != ItemConstants.CRUDE, False) itemClass = ItemGlobals.getClass(itemType) if itemClass == InventoryType.ItemTypeWeapon or itemClass == InventoryType.ItemTypeCharm: itemRepId = ItemGlobals.getItemRepId(itemType) itemRep = self.getReputation(itemRepId) itemLevel = ReputationGlobals.getLevelFromTotalReputation(itemRepId, itemRep)[0] weaponReq = ItemGlobals.getWeaponRequirement(itemType) trainingToken = EconomyGlobals.getItemTrainingReq(itemType) trainingAmt = self.getItemQuantity(trainingToken) for currAdd in otherAdds: otherAdd = InvItem(currAdd) if otherAdd.getCat() == trainingToken and otherAdd.getCount() > 0: trainingAmt += otherAdd.getCount() continue if not weaponReq == None: pass weaponLevelPass = itemLevel >= weaponReq if not trainingToken == 0 and trainingToken == None: pass weaponTrainPass = trainingAmt > 0 if weaponLevelPass: pass results['itemLevel'] = (weaponReq, weaponTrainPass) else: results['itemLevel'] = (0, True) return results