本文整理汇总了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