from panda3d.core import * from direct.directnotify import DirectNotifyGlobal from direct.showbase.DirectObject import DirectObject from toontown.minigame import ToonBlitzGlobals from toontown.minigame import TwoDTreasure import random class TwoDTreasureMgr(DirectObject): notify = DirectNotifyGlobal.directNotify.newCategory('TwoDTreasureMgr') def __init__(self, section, treasureList, enemyList): self.section = section self.treasureList = treasureList self.enemyList = enemyList self.load() def destroy(self): while len(self.treasures): treasure = self.treasures[0] treasure.destroy() self.treasures.remove(treasure) self.treasures = None self.section = None return def load(self): if len(self.treasureList): self.treasuresNP = NodePath('Treasures') self.treasuresNP.reparentTo(self.section.sectionNP) self.treasures = [] for index in range(len(self.treasureList)): treasureAttribs = self.treasureList[index][0] treasureValue = self.treasureList[index][1] self.createNewTreasure(treasureAttribs, treasureValue) self.enemyTreasures = [] numPlayers = self.section.sectionMgr.game.numPlayers pos = Point3(-1, -1, -1) for index in range(len(self.enemyList)): self.createNewTreasure([pos], numPlayers, isEnemyGenerated=True) def createNewTreasure(self, attrib, value, isEnemyGenerated = False, model = None): treasureId = self.section.getSectionizedId(len(self.treasures)) if model == None: model = self.getModel(value, self.section.sectionMgr.game.assetMgr.treasureModelList) newTreasure = TwoDTreasure.TwoDTreasure(self, treasureId, attrib[0], value, isEnemyGenerated, model) newTreasure.model.reparentTo(self.treasuresNP) self.treasures.append(newTreasure) if isEnemyGenerated: self.enemyTreasures.append(newTreasure) return def getModel(self, value, modelList): value -= 1 model = modelList[value] if value == 0: model.setColor(1, 0.8, 0.8, 1) elif value == 1: model.setColor(0.8, 1, 0.8, 1) elif value == 2: model.setColor(0.9, 0.9, 1, 1) elif value == 3: model.setColor(1, 1, 0.6, 1) return model