X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=new%2Fplomrogue%2Fthings.py;h=31a389a0b248871379bdc27d2938bc7e5b604e42;hb=a82bf1f876b702eeb9a8c04ee2acb6a32d61fc78;hp=112a1ce9449399700afe28e33b4f4c1a52990c8e;hpb=6c37a16df7e55754ca89a9de0aaf49c3c778155e;p=plomrogue2-experiments diff --git a/new/plomrogue/things.py b/new/plomrogue/things.py index 112a1ce..31a389a 100644 --- a/new/plomrogue/things.py +++ b/new/plomrogue/things.py @@ -29,7 +29,12 @@ class Thing(ThingBase): class ThingItem(Thing): - type_ = 'item' + pass + + + +class ThingFood(ThingItem): + type_ = 'food' @@ -42,7 +47,7 @@ class ThingAnimate(Thing): self._last_task_result = None self._stencil = None - def move_towards_target(self, target): + def move_towards_position(self, target): dijkstra_map = type(self.world.map_)(self.world.map_.size) n_max = 256 dijkstra_map.terrain = [n_max for i in range(dijkstra_map.size_i)] @@ -73,7 +78,7 @@ class ThingAnimate(Thing): if target_direction: self.set_task('MOVE', (target_direction,)) - def decide_task(self): + def hunt_player(self): visible_things = self.get_visible_things() target = None for t in visible_things: @@ -82,11 +87,15 @@ class ThingAnimate(Thing): break if target is not None: try: - self.move_towards_target(target) - return + self.move_towards_position(target) + return True except GameError: pass - self.set_task('WAIT') + return False + + def decide_task(self): + if not self.hunt_player(): + self.set_task('WAIT') def set_task(self, task_name, args=()): task_class = self.world.game.tasks[task_name]