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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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
Ejemplo n.º 8
0
 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