home · contact · privacy
Add stimulants, which boost energy.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 17 Dec 2020 00:29:55 +0000 (01:29 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 17 Dec 2020 00:29:55 +0000 (01:29 +0100)
plomrogue/tasks.py
plomrogue/things.py
rogue_chat.py

index cc375272c1edd941aeafbbb4117a3d30db142d8c..4a0e147ee358f7a1623a4adb3844110887bbe4e6 100644 (file)
@@ -247,7 +247,7 @@ class Task_INTOXICATE(Task):
     def check(self):
         if self.thing.carrying is None:
             raise PlayError('carrying nothing to consume')
-        if self.thing.carrying.type_ not in {'Bottle', 'Cookie', 'Psychedelic'}:
+        if not self.thing.carrying.consumable:
             raise PlayError('cannot consume this kind of thing')
         if self.thing.carrying.type_ == 'Bottle' and\
            not self.thing.carrying.full:
@@ -259,11 +259,11 @@ class Task_INTOXICATE(Task):
             self.thing.carrying.empty()
             self.thing.send_msg('CHAT "You are drunk now."')
             self.thing.need_for_toilet += 1
-            self.thing.drunk = 10000
+            self.thing.drunk += 10000
             self.thing.invalidate('fov')
             self.thing.game.record_change(self.thing.position, 'other')
         elif self.thing.carrying.type_ == 'Psychedelic':
-            self.thing.tripping = 10000
+            self.thing.tripping += 10000
             self.thing.send_msg('CHAT "You start tripping."')
             self.thing.send_msg('RANDOM_COLORS')
             eaten = self.thing.uncarry()
@@ -273,6 +273,11 @@ class Task_INTOXICATE(Task):
             self.thing.add_cookie_char(self.thing.carrying.thing_char)
             eaten = self.thing.uncarry()
             self.thing.game.remove_thing(eaten)
+        elif self.thing.carrying.type_ == 'Stimulant':
+            self.thing.send_msg('CHAT "You feel a flash of energy."')
+            self.thing.energy += 100
+            eaten = self.thing.uncarry()
+            self.thing.game.remove_thing(eaten)
 
 
 
index c538a235d8c4a7d301800563022470b3a41638c7..6dbe8ef7eee4ccd2d4bb17354895edc0cc584044 100644 (file)
@@ -28,6 +28,7 @@ class Thing(ThingBase):
     commandable = False
     cookable = False
     carried = False
+    consumable = False
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
@@ -208,6 +209,7 @@ class Thing_Psychedelic(Thing):
     symbol_hint = 'P'
     portable = True
     cookable = True
+    consumable = True
 
 
 
@@ -224,6 +226,7 @@ class Thing_Bottle(Thing):
     thing_char = '~'
     spinnable = True
     cookable = True
+    consumable = True
 
     def empty(self):
         self.thing_char = '_'
@@ -435,9 +438,24 @@ class Thing_BottleDeposit(Thing):
 
 
 
+class Thing_Stimulant(Thing):
+    symbol_hint = 'e'
+    cookable = True
+    portable = True
+    consumable = True
+
+
+
+class Thing_StimulantSpawner(ThingSpawner):
+    symbol_hint = 'e'
+    child_type = 'Stimulant'
+
+
+
 class Thing_Cookie(Thing):
     symbol_hint = 'c'
     portable = True
+    consumable = True
 
     def __init__(self, *args, **kwargs):
         import string
index 1fe4c91abff816b1ed2cc3e68898ba6d996b0b34..b22decbe2b5551c76216f027f368f3496c6d605a 100755 (executable)
@@ -28,7 +28,8 @@ from plomrogue.things import (Thing_Player, Thing_Item, Thing_ItemSpawner,
                               Thing_MusicPlayer, Thing_Hat, Thing_HatRemixer,
                               Thing_Cookie, Thing_CookieSpawner, Thing_Psychedelic,
                               Thing_PsychedelicSpawner, Thing_DoorKey,
-                              Thing_Crate, Thing_CrateSpawner)
+                              Thing_Crate, Thing_CrateSpawner, Thing_Stimulant,
+                              Thing_StimulantSpawner)
 
 from plomrogue.config import config
 game = Game(config['savefile'])
@@ -107,6 +108,8 @@ game.register_thing_type(Thing_Psychedelic)
 game.register_thing_type(Thing_PsychedelicSpawner)
 game.register_thing_type(Thing_Crate)
 game.register_thing_type(Thing_CrateSpawner)
+game.register_thing_type(Thing_Stimulant)
+game.register_thing_type(Thing_StimulantSpawner)
 game.read_savefile()
 game.io.start_loop()
 for port in config['servers']: