Ejemplo n.º 1
0
 def initAgents(self):
     """
     Initialize agents.
     """
     self.agentlayer = self.map.getLayer('ObjectLayer')
     self.survivor = Survivor(self.engine, TDS, 'player', self.agentlayer)
     self.instance_to_agent[self.survivor.agent.getFifeId()] = self.survivor
     self.survivor.start()
     
     self.zombies = create_mob_agents(TDS, self.model, 'zombie', self.agentlayer, Zombie)
     for zombie in self.zombies:
         self.instance_to_agent[zombie.agent.getFifeId()] = zombie
         zombie.aggro(self.survivor)
         zombie.start()
Ejemplo n.º 2
0
class World(EventListenerBase):
    """
    The world!
    """
    def __init__(self, engine):
        super(World, self).__init__(engine, regKeys=True)
        self.engine = engine
        self.model = engine.getModel()
        self.imagepool = self.engine.getImagePool()

        self.extscheduler = ExtScheduler()

        self._global_light = DEFAULT_GLOBAL_LIGHT
        self._survivor_light_node = None
        self._survivor_light_opts = DEFAULT_SURVIVOR_LIGHT

        # cursor_name = TDS.get("zombieswtf", "default_crosshair")
        self.cursor_image = self.imagepool.addResourceFromFile("gui/crosshairs/crosshair6a.png")
        self.cursor_x_offset = -32
        self.cursor_y_offset = -32

        self.filename = ''
        # self.pump_ctr = 0 # for testing purposis

        # self.instancemenu = None
        self.instance_to_agent = {}
        # self.dynamic_widgets = {}

        # self.light_intensity = 1
        # self.light_sources = 0

        self.load('maps/snow.xml')

        self.controller = Controller(self.engine, self.survivor, self)

    def load(self, filename):
        self.filename = filename
        self.reset()

        self.map = loadMapFile(filename, self.engine, extensions = {'lights': True})

        self.maplistener = MapListener(self.map)

        self.initAgents()
        self.initCameras()

    def initAgents(self):
        """
        Initialize agents.
        """
        self.agentlayer = self.map.getLayer('ObjectLayer')
        self.survivor = Survivor(self.engine, TDS, 'player', self.agentlayer)
        self.instance_to_agent[self.survivor.agent.getFifeId()] = self.survivor
        self.survivor.start()
        
        self.zombies = create_mob_agents(TDS, self.model, 'zombie', self.agentlayer, Zombie)
        for zombie in self.zombies:
            self.instance_to_agent[zombie.agent.getFifeId()] = zombie
            zombie.aggro(self.survivor)
            zombie.start()
        					
    def getInstancesAt(self, clickpoint):
        """
        Query the main camera for instances on our active(agent) layer.
        """
        return self.cameras['main'].getMatchingInstances(clickpoint, self.agentlayer)

    def getLocationAt(self, clickpoint):
        """
        Query the main camera for the Map location (on the agent layer)
        that a screen point refers to.
        """
        target_mapcoord = self.cameras['main'].toMapCoordinates(clickpoint, False)
        target_mapcoord.z = 0
        location = fife.Location(self.agentlayer)
        location.setMapCoordinates(target_mapcoord)
        return location

    def onConsoleCommand(self, command):
        result = ''
        try:
            result = str(eval(command))
        except Exception, e:
            result = str(e)
        return result