当前位置: 首页>>代码示例>>Python>>正文


Python Resource.less_than_minimum方法代码示例

本文整理汇总了Python中resource.Resource.less_than_minimum方法的典型用法代码示例。如果您正苦于以下问题:Python Resource.less_than_minimum方法的具体用法?Python Resource.less_than_minimum怎么用?Python Resource.less_than_minimum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在resource.Resource的用法示例。


在下文中一共展示了Resource.less_than_minimum方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Entity

# 需要导入模块: from resource import Resource [as 别名]
# 或者: from resource.Resource import less_than_minimum [as 别名]

#.........这里部分代码省略.........
                self.add_condition(condition)
            item.equipped = True
            message = 'You put on %s.' % item.ID
            ticks = 1
        return ticks, message


    def pick(self, item):
        ticks = 1
        message = 'You picked up %s' % item.ID
        assert 'pickable' in item.properties
        item.remove_tile()
        self.container.add(item)
        return ticks, message

    def consume(self, item):
        assert 'consumable' in item.properties
        ticks = 1
        message = '%s consumed a %s' % (self.ID, item.ID)
        for condition in item.effects:
            self.add_condition(condition)
        self.container.rem(item)
        return ticks, message
    #----- end ------

    # CONDITIONS HANDLING
    def add_condition(self, condition):
        getattr(self, condition['resource']).add_condition(condition)

    # MOVEMENT HANDLING
    #----- start ------
    def move(self, target_tile):
        ticks = 0
        message = None
        b1 = 'movable' in self.properties
        b2 = not 'movement blocking' in target_tile.properties
        b3 = not target_tile.container.get(properties='movement blocking')

        if b1 and b2 and b3 and b3:
            self.tile.container.rem(self)
            target_tile.container.add(self)
            self.tile = target_tile
            ticks = 1
            message = 'Moved'
        return ticks, message

    def open_door(self, target_tile):
        ticks = 0
        message = None
        if 'can open doors' in self.properties and target_tile.tip == 'open door':
            target_tile.set_tip('open door')
            ticks = 1
            message = 'A door has been opened.'
        return ticks, message
    #----- end -----

    # ATTACK - TAKE HIT - DIE
    # ---- start ----
    def attack_to(self, other):
        ticks = 1
        message1 = self.hit(other)
        message2 = other.hit(self)
        message = message1 + ' ' + message2
        return ticks, message

    def hit(self, other):
        damage = max(self.attack - other.defense, 0)
        other.hp.change_current(-damage)
        message = '%s hit %s for %d damage.' % (self.ID, other.ID, damage)
        return message

    def update_status(self):
        assert 'NPC' in self.properties or 'player' in self.properties
        message = None
        game_over = False
        if 'needs food' in self.properties and self.hunger.less_than_minimum():
            self.is_alive = False
            message = '%s died of hunger.' % self.ID
        elif self.hp.less_than_minimum():
            self.is_alive = False
            message = '%s is dead.' % self.ID
        # is self dead
        if not self.is_alive:
            if 'NPC' in self.properties:
                self.remove_tile()
                Entity.remove_old(self)
            elif 'player' in self.properties:
                game_over = True

        return message, game_over

    def update_vision(self):
        self.fov.update(self.tile, self.visibility_radius)

    @property
    def inventory_repr(self):
        if 'stackable' in self.properties:
            return str(self.quantity) + ' ' + self.ID
        else:
            return self.ID
开发者ID:taylansengul,项目名称:RL,代码行数:104,代码来源:entity.py


注:本文中的resource.Resource.less_than_minimum方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。