From: Christian Heller Date: Thu, 17 Dec 2020 00:29:55 +0000 (+0100) Subject: Add stimulants, which boost energy. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/static/%7B%7B%20web_path%20%7D%7D/%7B%7Bprefix%7D%7D/bar%20baz.html?a=commitdiff_plain;h=cf2a7a164c24e82a5efc4cfe9c56c4b4f2c442df;p=plomrogue2 Add stimulants, which boost energy. --- diff --git a/plomrogue/tasks.py b/plomrogue/tasks.py index cc37527..4a0e147 100644 --- a/plomrogue/tasks.py +++ b/plomrogue/tasks.py @@ -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) diff --git a/plomrogue/things.py b/plomrogue/things.py index c538a23..6dbe8ef 100644 --- a/plomrogue/things.py +++ b/plomrogue/things.py @@ -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 diff --git a/rogue_chat.py b/rogue_chat.py index 1fe4c91..b22decb 100755 --- a/rogue_chat.py +++ b/rogue_chat.py @@ -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']: