def handleCrateReward(self, toons):
        if not (config.GetBool('get-crate-reward-always', False) or random.random() <= 0.25):
            return
        
        self.sendUpdate('announceCrateReward')
        item = CatalogFurnitureItem.CatalogFurnitureItem(10040)

        for toon in toons:
            toon.addToDeliverySchedule(item)
Beispiel #2
0
    def setInitialFurniture(self):
        # Resets the furniture to the initial default furniture for an
        # avatar.  Normally this is called only when the house is
        # first assigned, and for debugging.

        avatar = self.air.doId2do.get(self.ownerId)

        # Boys are given the boy wardrobe initially, while girls are
        # given the girl wardrobe.
        wardrobeItem = 500
        if avatar and avatar.getStyle().getGender() == 'f':
            wardrobeItem = 510

        InitialFurnitureA = CatalogItemList.CatalogItemList([
            CatalogFurnitureItem.CatalogFurnitureItem(200,
                                                      posHpr=(-23.618, 16.1823,
                                                              0.025, 90, 0,
                                                              0)),
            CatalogFurnitureItem.CatalogFurnitureItem(wardrobeItem,
                                                      posHpr=(-22.5835,
                                                              21.8784, 0.025,
                                                              90, 0, 0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1300,
                                                      posHpr=(-21.4932,
                                                              5.76027, 0.025,
                                                              120, 0, 0)),
            CatalogFurnitureItem.CatalogFurnitureItem(400,
                                                      posHpr=(-18.6, -12.0,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(-18.9, -20.5,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(-18.9, -3.5,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(-3.34375,
                                                              22.3644, 0.025,
                                                              -90, 0, 0)),
            CatalogFurnitureItem.CatalogFurnitureItem(710,
                                                      posHpr=(0, -23, 0.025,
                                                              180, 0, 0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(4.44649,
                                                              -0.463924, 0.025,
                                                              0, 0, 0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1399,
                                                      posHpr=(-10.1, 2.0, 0.1,
                                                              0, 0, 0)),
        ])

        InitialFurnitureB = CatalogItemList.CatalogItemList([
            CatalogFurnitureItem.CatalogFurnitureItem(200,
                                                      posHpr=(-3.2, 17.0,
                                                              0.025, -0.2, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(400,
                                                      posHpr=(-18.6, -7.1,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(3.6, -23.7,
                                                              0.025, 179.9,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(710,
                                                      posHpr=(-16.6, -19.1,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(-1.8, -23.6,
                                                              0.025, 179.9,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(wardrobeItem,
                                                      posHpr=(-20.1, 4.4,
                                                              0.025, -180.0,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(-1.1, 22.4,
                                                              0.025, -90.2,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1300,
                                                      posHpr=(-21.7, 19.5,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(4.0, 1.9, 0.025,
                                                              -0.1, 0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1399,
                                                      posHpr=(-10.1, 2.0, 0.1,
                                                              0, 0, 0)),
        ])

        InitialFurnitureC = CatalogItemList.CatalogItemList([
            CatalogFurnitureItem.CatalogFurnitureItem(200,
                                                      posHpr=(-22.1, 6.5,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(400,
                                                      posHpr=(-0.2, -25.7,
                                                              0.025, 179.9,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(710,
                                                      posHpr=(-16.6, -12.2,
                                                              0.025, 90.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(wardrobeItem,
                                                      posHpr=(-4.7, 24.5,
                                                              0.025, 0.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1300,
                                                      posHpr=(-20.5, 22.3,
                                                              0.025, 45.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(-12.0, 25.9,
                                                              0.025, 0.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(9.4, -8.6, 0.025,
                                                              67.5, 0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(700,
                                                      posHpr=(9.7, -15.1,
                                                              0.025, 112.5,
                                                              0.0, 0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(100,
                                                      posHpr=(-14.7, 1.88,
                                                              0.025, 0.0, 0.0,
                                                              0.0)),
            CatalogFurnitureItem.CatalogFurnitureItem(1399,
                                                      posHpr=(-10.1, 2.0, 0.1,
                                                              0, 0, 0)),
        ])

        self.b_setDeletedItems(CatalogItemList.CatalogItemList())
        self.b_setAtticItems(CatalogItemList.CatalogItemList())
        self.b_setInteriorItems(
            random.choice((
                InitialFurnitureA,
                InitialFurnitureB,
                InitialFurnitureC,
            )))
        self.b_setAtticWallpaper(CatalogItemList.CatalogItemList())

        # Choose a random set of wallpapers, and use the same set for
        # both rooms.
        wallpaper = [
            # Wallpaper
            random.choice(CatalogWallpaperItem.getWallpaperRange(1000, 1299)),
            # Moulding
            random.choice(CatalogMouldingItem.getAllMouldings(1000, 1010)),
            # Flooring
            random.choice(CatalogFlooringItem.getAllFloorings(1000, 1010)),
            # Wainscoting
            random.choice(CatalogWainscotingItem.getAllWainscotings(
                1000, 1010)),
        ]

        self.b_setInteriorWallpaper(
            CatalogItemList.CatalogItemList(wallpaper + wallpaper))
        self.b_setAtticWindows(CatalogItemList.CatalogItemList())

        # Everyone starts out with a simple garden view, twice.
        self.b_setInteriorWindows(
            CatalogItemList.CatalogItemList([
                CatalogWindowItem.CatalogWindowItem(20, placement=2),
                CatalogWindowItem.CatalogWindowItem(20, placement=4),
            ]))
Beispiel #3
0
    def setupEnvirons(self):
        # This method is called by the EstateManager as it is creating
        # the house.  It sets up the doors, mailbox, furniture, etc.,
        # for the house.
        self.notify.debug("setupEnvirons")

        if self.ownerId and len(self.interiorWallpaper) == 0 and len(
                self.interiorWindows) == 0:
            # This is a newly-occupied house.  We should set up initial
            # furniture for it.
            self.notify.debug(
                "Resetting furniture for now-occupied house %s." % (self.doId))
            self.setInitialFurniture()

        # Toon interior:
        self.interiorZoneId = self.air.allocateZone()

        # Outside mailbox (if we have one)
        if self.ownerId:
            self.mailbox = DistributedMailboxAI.DistributedMailboxAI(
                self.air, self)
            self.mailbox.generateWithRequired(self.zoneId)

        # Outside door:
        self.door = DistributedHouseDoorAI.DistributedHouseDoorAI(
            self.air, self.doId, DoorTypes.EXT_STANDARD)

        # Inside door of the same door (different zone, and different distributed object):
        self.insideDoor = DistributedHouseDoorAI.DistributedHouseDoorAI(
            self.air, self.doId, DoorTypes.INT_STANDARD)

        # Tell them about each other:
        self.door.setOtherDoor(self.insideDoor)
        self.insideDoor.setOtherDoor(self.door)
        self.door.zoneId = self.zoneId
        self.insideDoor.zoneId = self.interiorZoneId
        # Now that they both now about each other, generate them:
        self.door.generateWithRequired(self.zoneId)
        self.insideDoor.generateWithRequired(self.interiorZoneId)

        # create the garden in our zone
        # gardenPos = HouseGlobals.gardenDrops[self.gardenPosInd]
        # self.garden = DistributedGardenAI.DistributedGardenAI(self.air, gardenPos, 10)
        # self.garden.generateWithRequired(self.zoneId)
        # self.garden.start()
        # self.garden_created = 1

        # create a cannon
        #if self.cannonEnabled and simbase.config.GetBool('estate-cannons', 0):
        #    posHpr = CannonGlobals.cannonDrops[self.housePosInd]
        #    self.cannon = DistributedCannonAI.DistributedCannonAI(self.air, self.estateId,
        #                                                         *posHpr)
        #    self.cannon.generateWithRequired(self.zoneId)

        if self.interior != None:
            self.interior.requestDelete()
            self.interior = None

        self.interior = DistributedHouseInteriorAI.DistributedHouseInteriorAI(
            self.doId, self.air, self.interiorZoneId, self)
        self.interior.generateWithRequired(self.interiorZoneId)
        # add this house to the map of house zone to estate zone
        simbase.air.estateMgr.houseZone2estateZone[
            self.interiorZoneId] = self.zoneId

        # This is a temporary hack, to ensure the user has a phone.
        # It's only necessary because some players on the test server
        # started playing before we had a phone as one of the
        # furniture items.
        if self.ownerId != 0 and not self.__hasPhone():
            self.notify.info("Creating default phone for %s." % (self.ownerId))
            item = CatalogFurnitureItem.CatalogFurnitureItem(
                1399, posHpr=(-12, 3, 0.025, 180, 0, 0))
            self.interiorItems.append(item)
            self.d_setInteriorItems(self.interiorItems)

        self.resetFurniture()

        if simbase.wantPets:
            if 0:  #__dev__:
                from pandac.PandaModules import ProfileTimer
                pt = ProfileTimer()
                pt.init('house model load')
                pt.on()

            # add ourselves to the estate model
            if not DistributedHouseAI.HouseModel:
                DistributedHouseAI.HouseModel = loader.loadModel(
                    HouseGlobals.houseModels[self.houseType])
            estate = simbase.air.doId2do[self.estateId]
            self.houseNode = estate.geom.attachNewNode('esHouse_%s' %
                                                       self.housePosInd)
            self.houseNode.setPosHpr(
                *HouseGlobals.houseDrops[self.housePosInd])
            DistributedHouseAI.HouseModel.instanceTo(self.houseNode)

            if 0:  #__dev__:
                pt.mark('loaded house model')
                pt.off()
                pt.printTo()
Beispiel #4
0
 def _getCatalogItemObj(self, itemType, itemIndex):
     if itemType == CatalogItemTypes.CLOTHING_ITEM:
         clothingNumber = itemIndex
         #itemObj = CatalogBeanItem.CatalogBeanItem(amount)
         # for now always the first color choice
         itemObj = CatalogClothingItem.CatalogClothingItem(
             clothingNumber, 0)
         itemObj.giftTag = 0
         itemObj.giftCode = 1
     elif itemType == CatalogItemTypes.FURNITURE_ITEM:
         furnitureNumber = itemIndex
         itemObj = CatalogFurnitureItem.CatalogFurnitureItem(
             furnitureNumber, colorOption=0)
     elif itemType == CatalogItemTypes.CHAT_ITEM:
         chatIndex = itemIndex
         itemObj = CatalogChatItem.CatalogChatItem(chatIndex)
     elif itemType == CatalogItemTypes.EMOTE_ITEM:
         emoteIndex = itemIndex
         itemObj = CatalogEmoteItem.CatalogEmoteItem(emoteIndex)
     elif itemType == CatalogItemTypes.BEAN_ITEM:
         numBeans = itemIndex
         if not numBeans in JellybeanRewardValues:
             self.air.writeServerEvent("suspicious",
                                       replyTo.getSourceAddress(),
                                       "giving %s beans" % numBeans)
         # an assertion exception will occur so the jellybean won't get rewarded
         assert (numBeans in JellybeanRewardValues)
         itemObj = CatalogBeanItem.CatalogBeanItem(numBeans)
     elif itemType == CatalogItemTypes.WALLPAPER_ITEM:
         wallPaperNumber = itemIndex
         itemObj = CatalogWallpaperItem.CatalogWallpaperItem(
             wallPaperNumber, colorIndex=0)
     elif itemType == CatalogItemTypes.WINDOW_ITEM:
         windowNumber = itemIndex
         itemObj = CatalogWindowItem.CatalogWindowItem(windowNumber,
                                                       placement=0)
     elif itemType == CatalogItemTypes.FLOORING_ITEM:
         flooringNumber = itemIndex
         itemObj = CatalogFlooringItem.CatalogFlooringItem(flooringNumber,
                                                           colorIndex=0)
     elif itemType == CatalogItemTypes.MOULDING_ITEM:
         mouldingNumber = itemIndex
         itemObj = CatalogMouldingItem.CatalogMouldingItem(mouldingNumber,
                                                           colorIndex=0)
     elif itemType == CatalogItemTypes.WAINSCOTING_ITEM:
         wainscotingNumber = itemIndex
         itemObj = CatalogWainscotingItem.CatalogWainscotingItem(
             wainscotingNumber, colorIndex=0)
     elif itemType == CatalogItemTypes.PET_TRICK_ITEM:
         trickId = itemIndex
         itemObj = CatalogPetTrickItem.CatalogPetTrickItem(trickId)
     elif itemType == CatalogItemTypes.RENTAL_ITEM:
         # TODO since all we offer so far is 48 hours of cannons, values pulled for CatalogGenerator
         # do something else if we have different durations
         rentalType = itemIndex
         itemObj = CatalogRentalItem.CatalogRentalItem(
             rentalType, 2880, 1000)
     elif itemType == CatalogItemTypes.ANIMATED_FURNITURE_ITEM:
         furnitureNumber = itemIndex
         itemObj = CatalogAnimatedFurnitureItem.CatalogAnimatedFurnitureItem(
             furnitureNumber, colorOption=0)
     return itemObj