From 2df42b53c56bd32dc445df532b4c42c53d97b767 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Sun, 20 Dec 2020 17:15:44 +0100
Subject: [PATCH] Add chairs.

---
 plomrogue/tasks.py  |  5 +++++
 plomrogue/things.py | 14 ++++++++++++++
 rogue_chat.py       |  4 +++-
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/plomrogue/tasks.py b/plomrogue/tasks.py
index b230326..ad8cfc8 100644
--- a/plomrogue/tasks.py
+++ b/plomrogue/tasks.py
@@ -70,6 +70,11 @@ class Task_MOVE(Task):
                 self.thing.send_msg('CHAT "You sink into the %s. '
                                     'Staying here will replenish your energy."'
                                     % terrain_type.description)
+        for t in [t for t in self.thing.game.things
+                  if t.type_ == 'Chair' and t.position == self.thing.position]:
+            self.thing.standing = False
+            self.thing.send_msg('CHAT "You sink into the Chair. '
+                                'Staying here will replenish your energy."')
         self.thing.invalidate('fov')
         if self.thing.blocks_light:
             self.thing.game.record_change(self.thing.position, 'fov')
diff --git a/plomrogue/things.py b/plomrogue/things.py
index 3a72ca3..ad87ebd 100644
--- a/plomrogue/things.py
+++ b/plomrogue/things.py
@@ -29,6 +29,7 @@ class Thing(ThingBase):
     cookable = False
     carried = False
     consumable = False
+    sittable = False
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
@@ -482,6 +483,19 @@ class Thing_StimulantSpawner(ThingSpawner):
 
 
 
+class Thing_Chair(Thing):
+    symbol_hint = 'h'
+    portable = True
+    sittable = True
+
+
+
+class Thing_ChairSpawner(ThingSpawner):
+    symbol_hint = 'e'
+    child_type = 'Chair'
+
+
+
 class Thing_Cookie(Thing):
     symbol_hint = 'c'
     portable = True
diff --git a/rogue_chat.py b/rogue_chat.py
index b49f07c..f37477b 100755
--- a/rogue_chat.py
+++ b/rogue_chat.py
@@ -33,7 +33,7 @@ from plomrogue.things import (Thing_Player, Thing_Item, Thing_ItemSpawner,
                               Thing_PsychedelicSpawner, Thing_DoorKey,
                               Thing_Crate, Thing_CrateSpawner, Thing_Stimulant,
                               Thing_StimulantSpawner, Thing_Sign,
-                              Thing_SignSpawner)
+                              Thing_SignSpawner, Thing_Chair, Thing_ChairSpawner)
 
 from plomrogue.config import config
 game = Game(config['savefile'])
@@ -120,6 +120,8 @@ game.register_thing_type(Thing_Stimulant)
 game.register_thing_type(Thing_StimulantSpawner)
 game.register_thing_type(Thing_Sign)
 game.register_thing_type(Thing_SignSpawner)
+game.register_thing_type(Thing_Chair)
+game.register_thing_type(Thing_ChairSpawner)
 game.read_savefile()
 game.io.start_loop()
 for port in config['servers']:
-- 
2.30.2