home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add colourful intoxication beverage.
[plomrogue2]
/
plomrogue
/
things.py
diff --git
a/plomrogue/things.py
b/plomrogue/things.py
index a51b2b2b48083037b146cca377005ecf9994cb8b..2146c1a222f48a78b4e3abe9187e09aa86909ba2 100644
(file)
--- a/
plomrogue/things.py
+++ b/
plomrogue/things.py
@@
-74,8
+74,42
@@
class Thing_SpawnPoint(Thing):
+class Thing_DoorSpawner(ThingSpawner):
+ child_type = 'Door'
+
+
+
+class Thing_Door(Thing):
+ symbol_hint = 'D'
+ blocking = False
+ portable = True
+
+ def open(self):
+ self.blocking = False
+ self.portable = True
+ del self.thing_char
+
+ def close(self):
+ self.blocking = True
+ self.portable = False
+ self.thing_char = '#'
+
+
+
+class Thing_Consumable(Thing):
+ symbol_hint = 'B'
+ portable = True
+
+
+
+class Thing_ConsumableSpawner(ThingSpawner):
+ child_type = 'Consumable'
+
+
+
class ThingAnimate(Thing):
blocking = True
class ThingAnimate(Thing):
blocking = True
+ drunk = 0
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@
-101,11
+135,17
@@
class ThingAnimate(Thing):
return None
def proceed(self):
return None
def proceed(self):
+ self.drunk -= 1
+ if self.drunk == 0:
+ for c_id in self.game.sessions:
+ if self.game.sessions[c_id]['thing_id'] == self.id_:
+ self.game.io.send('DEFAULT_COLORS', c_id)
+ self.game.io.send('CHAT "You sober up."', c_id)
+ self.game.changed = True
self._fov = None
if self.task is None:
self.task = self.get_next_task()
return
self._fov = None
if self.task is None:
self.task = self.get_next_task()
return
-
try:
self.task.check()
except GameError as e:
try:
self.task.check()
except GameError as e:
@@
-122,8
+162,8
@@
class ThingAnimate(Thing):
if self._fov:
return self._fov
fov_map_class = self.game.map_geometry.fov_map_class
if self._fov:
return self._fov
fov_map_class = self.game.map_geometry.fov_map_class
- self._fov = fov_map_class(self.game.
maps, self.position, 12
,
- self.game.get_map)
+ self._fov = fov_map_class(self.game.
things, self.game.maps, self.position
,
+
12,
self.game.get_map)
return self._fov
def fov_test(self, big_yx, little_yx):
return self._fov
def fov_test(self, big_yx, little_yx):