Light a fire in the fireplace and our pipe
The pipe can now be a light source.
This commit is contained in:
parent
ed86572e54
commit
a356b8273c
2 changed files with 32 additions and 2 deletions
|
|
@ -98,12 +98,26 @@ class CmdLight(Command):
|
||||||
return
|
return
|
||||||
|
|
||||||
burnables = lighter.search(item, location=lighter, quiet=True)
|
burnables = lighter.search(item, location=lighter, quiet=True)
|
||||||
|
in_room = lighter.search(item, quiet=True)
|
||||||
|
|
||||||
if burnables and len(burnables) > 0:
|
if burnables and len(burnables) > 0:
|
||||||
to_burn = burnables[0]
|
to_burn = burnables[0]
|
||||||
if to_burn.has_method("do_light"):
|
if to_burn.has_method("do_light"):
|
||||||
to_burn.do_light(self.caller)
|
to_burn.do_light(self.caller)
|
||||||
else:
|
else:
|
||||||
lighter.msg(f"The {burnables[0].key} isn't flammable.")
|
lighter.msg(f"The {burnables[0].key} isn't flammable.")
|
||||||
|
|
||||||
|
# What a weird exception is this ...
|
||||||
|
elif in_room and len(in_room) > 0:
|
||||||
|
to_light = in_room[0]
|
||||||
|
if to_light.is_typeclass("typeclasses.pets.Fire"):
|
||||||
|
if to_light.db.hunger_level == 0:
|
||||||
|
to_light.feed(lighter, 100)
|
||||||
|
else:
|
||||||
|
lighter.msg(f"The fire has been started. Perhaps you should |gfeed|n it some wood?")
|
||||||
|
else:
|
||||||
|
lighter.msg(f"The {to_light.key} isn't flammable.")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
lighter.msg(f"Can't find {item}.")
|
lighter.msg(f"Can't find {item}.")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,7 @@ class Dice(Object):
|
||||||
"." + prepend)
|
"." + prepend)
|
||||||
|
|
||||||
|
|
||||||
class Pipe(LightSource):
|
class Pipe(Object):
|
||||||
"""
|
"""
|
||||||
Simple abstraction for lighting and smoking actions.
|
Simple abstraction for lighting and smoking actions.
|
||||||
|
|
||||||
|
|
@ -260,11 +260,27 @@ class Pipe(LightSource):
|
||||||
"""
|
"""
|
||||||
def at_object_creation(self):
|
def at_object_creation(self):
|
||||||
self.cmdset.add_default(CmdSetSmoke)
|
self.cmdset.add_default(CmdSetSmoke)
|
||||||
|
self.db.is_giving_light = False
|
||||||
|
|
||||||
|
def _burnout(self):
|
||||||
|
self.db.is_giving_light = False
|
||||||
|
# Do we want to announce that the pipe is out?
|
||||||
|
# self.location.msg("Your pipeweed is out.")
|
||||||
|
self.location.location.check_light_state()
|
||||||
|
|
||||||
def do_light(self, lighter):
|
def do_light(self, lighter):
|
||||||
|
self.db.is_giving_light = True
|
||||||
|
|
||||||
msg = choices(self.db.light_msg or f"$You() $conj(pack) and $conj(light) $pron(your) {self.name}.")
|
msg = choices(self.db.light_msg or f"$You() $conj(pack) and $conj(light) $pron(your) {self.name}.")
|
||||||
lighter.announce_action(msg)
|
lighter.announce_action(msg)
|
||||||
self.db.is_giving_light = True
|
|
||||||
|
try:
|
||||||
|
self.location.location.check_light_state()
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
self.deferred = delay(60 * 3, self._burnout)
|
||||||
|
|
||||||
|
|
||||||
def do_smoke(self, smoker):
|
def do_smoke(self, smoker):
|
||||||
msg = choices(self.db.smoke_msg or f"$You() << $conj(lean) back and ^ >> << $conj(puff) ^ $conj(smoke) >> $pron(your) {self.name}.")
|
msg = choices(self.db.smoke_msg or f"$You() << $conj(lean) back and ^ >> << $conj(puff) ^ $conj(smoke) >> $pron(your) {self.name}.")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue