示例#1
0
    def apply(self):
        obj_id, obj_type = self.target
        if not obj_id:
            # fog of war
            pass
        else:
            obj_type = obj_type << 8 | 0x01
            try:
                type_class = GameObject.get_type(obj_type)
                # Could this be hallucinated?
                create_obj = not GameObject.has_type(obj_type & 0xfffffc | 0x2)

                obj = None
                if obj_id in self.player.replay.objects:
                    obj = self.player.replay.objects[obj_id]
                elif create_obj:
                    obj = type_class(obj_id, self.frame)
                    self.player.replay.objects[obj_id] = obj

                if obj:
                    obj.visit(self.frame, self.player, type_class)
                self.target = obj
            except KeyError:
                # print "Unknown object type (%s) at frame %s" % (hex(obj_type),self.frame)
                pass
        super(TargetAbilityEvent, self).apply()
示例#2
0
    def apply(self):
        obj_id, obj_type = self.target
        if not obj_id:
            # fog of war
            pass
        else:
            obj_type = obj_type << 8 | 0x01
            try:
                type_class = GameObject.get_type(obj_type)
                # Could this be hallucinated?
                create_obj = not GameObject.has_type(obj_type & 0xfffffc | 0x2)

                obj = None
                if obj_id in self.player.replay.objects:
                    obj = self.player.replay.objects[obj_id]
                elif create_obj:
                    obj = type_class(obj_id, self.frame)
                    self.player.replay.objects[obj_id] = obj

                if obj:
                    obj.visit(self.frame, self.player, type_class)
                self.target = obj
            except KeyError:
                # print "Unknown object type (%s) at frame %s" % (hex(obj_type),self.frame)
                pass
        super(TargetAbilityEvent, self).apply()
示例#3
0
    def apply(self):
        selection = self.player.get_selection(self.bank)

        selected = selection.current[:]
        for obj in selected: # visit all old units
            obj.visit(self.frame, self.player)

        if self.deselect:
            selected = self.deselect(selected)

        # Add new selection
        for (obj_id, obj_type) in self.objects:
            try:
                type_class = GameObject.get_type(obj_type)
                if obj_id not in self.player.replay.objects:
                    obj = type_class(obj_id, self.frame)
                    self.player.replay.objects[obj_id] = obj
                else:
                    obj = self.player.replay.objects[obj_id]
                obj.visit(self.frame, self.player, type_class)
                selected.append(obj)
            except KeyError:
                # print "Unknown object type (%s) at frame %s" % (hex(obj_type),self.frame)
                pass

        selection[self.frame] = selected
        self.selected = selected
示例#4
0
    def apply(self):
        selection = self.player.get_selection(self.bank)

        selected = selection.current[:]
        for obj in selected:  # visit all old units
            obj.visit(self.frame, self.player)

        if self.deselect:
            selected = self.deselect(selected)

        # Add new selection
        for (obj_id, obj_type) in self.objects:
            try:
                type_class = GameObject.get_type(obj_type)
                if obj_id not in self.player.replay.objects:
                    obj = type_class(obj_id, self.frame)
                    self.player.replay.objects[obj_id] = obj
                else:
                    obj = self.player.replay.objects[obj_id]
                obj.visit(self.frame, self.player, type_class)
                selected.append(obj)
            except KeyError:
                # print "Unknown object type (%s) at frame %s" % (hex(obj_type),self.frame)
                pass

        selection[self.frame] = selected
        self.selected = selected