示例#1
0
    def get_chamber_display(self, config, logged_in_character,
                            chamber_character):
        chamber_display = {}
        query = Inventory_item.all().ancestor(chamber_character)
        query.filter('position_y >', 0)  # only pull items that are on display
        query.order('position_y').order('position_x')
        display_items = query.fetch(1000)
        chamber_display['display_items'] = display_items
        chamber_display['character'] = chamber_character
        hunt_grid = chamber_character.get_hunt_grid()
        chamber_display['hunt_grid'] = hunt_grid
        key_name = '%s_%s' % (logged_in_character.key().name(),
                              chamber_character.key().name())
        hunt_zone_status = Hunt_zone_user_status.get_by_key_name(
            key_names=key_name, parent=chamber_character)
        if hunt_zone_status:
            elapsed_time = datetime.utcnow() - hunt_zone_status.updated
            total_seconds = (elapsed_time.microseconds +
                             (elapsed_time.seconds +
                              elapsed_time.days * 24 * 3600) * 10**6) / 10**6
            #elapsed_minutes = total_seconds / 60
            elapsed_hours = total_seconds / 3600
            air_per_hour = float(config.hunt_zone_air_capacity) / float(
                config.hunt_zone_air_replenish_hours)
            new_air = int(elapsed_hours * air_per_hour)
            hunt_zone_status.air_level = new_air + hunt_zone_status.air_level
            if hunt_zone_status.air_level > config.hunt_zone_air_capacity:
                hunt_zone_status.air_level = config.hunt_zone_air_capacity
        else:
            hunt_zone_status = Hunt_zone_user_status(
                parent=chamber_character,
                key_name=key_name,
                chamber_character=chamber_character,
                huntging_character=logged_in_character,
                air_level=config.hunt_zone_air_capacity,
                updated=datetime.utcnow())
        hunt_zone_status.put()

        chamber_display['hunt_zone_user_status'] = hunt_zone_status
        return chamber_display