home
·
contact
·
privacy
projects
/
plomrogue2
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ba09978
)
Make thing dropping directional.
author
Christian Heller
<c.heller@plomlompom.de>
Wed, 9 Dec 2020 01:41:50 +0000
(
02:41
+0100)
committer
Christian Heller
<c.heller@plomlompom.de>
Wed, 9 Dec 2020 01:41:50 +0000
(
02:41
+0100)
config.json
patch
|
blob
|
history
plomrogue/game.py
patch
|
blob
|
history
plomrogue/tasks.py
patch
|
blob
|
history
rogue_chat.html
patch
|
blob
|
history
rogue_chat_curses.py
patch
|
blob
|
history
diff --git
a/config.json
b/config.json
index 8fce4dcc8a277357a840f67e54f1101fc1bd595b..6c4fa1477ca03bc2be9a27afeaa71c9c35b3e7c3 100644
(file)
--- a/
config.json
+++ b/
config.json
@@
-16,7
+16,7
@@
"flatten": "F",
"switch_to_enter_face": "f",
"switch_to_take_thing": "z",
"flatten": "F",
"switch_to_enter_face": "f",
"switch_to_take_thing": "z",
- "drop_thing": "u",
+ "
switch_to_
drop_thing": "u",
"teleport": "p",
"door": "D",
"install": "I",
"teleport": "p",
"door": "D",
"install": "I",
diff --git
a/plomrogue/game.py
b/plomrogue/game.py
index 143248f4e7afaf0546beca3431fe1df485ca2887..a57a507cfc0a1f1d98d677068f60b3fc6772f3bd 100755
(executable)
--- a/
plomrogue/game.py
+++ b/
plomrogue/game.py
@@
-184,6
+184,8
@@
class Game(GameBase):
def get_string_options(self, string_option_type):
if string_option_type == 'direction':
return self.map_geometry.directions
def get_string_options(self, string_option_type):
if string_option_type == 'direction':
return self.map_geometry.directions
+ elif string_option_type == 'direction+here':
+ return ['HERE'] + self.map_geometry.directions
elif string_option_type == 'char':
return [c for c in
string.digits + string.ascii_letters + string.punctuation + ' ']
elif string_option_type == 'char':
return [c for c in
string.digits + string.ascii_letters + string.punctuation + ' ']
diff --git
a/plomrogue/tasks.py
b/plomrogue/tasks.py
index 9447cc6eecb2b8eb9135ec702a3426bdf8ad451e..d8d118a78108eb9fce1cad108816ac8509c8dd94 100644
(file)
--- a/
plomrogue/tasks.py
+++ b/
plomrogue/tasks.py
@@
-10,6
+10,12
@@
class Task:
self.thing = thing
self.args = args
self.thing = thing
self.args = args
+ def _get_move_target(self):
+ if self.args[0] == 'HERE':
+ return self.thing.position
+ return self.thing.game.map_geometry.move_yxyx(self.thing.position,
+ self.args[0])
+
def check(self):
pass
def check(self):
pass
@@
-25,12
+31,8
@@
class Task_WAIT(Task):
class Task_MOVE(Task):
argtypes = 'string:direction'
class Task_MOVE(Task):
argtypes = 'string:direction'
- def get_move_target(self):
- return self.thing.game.map_geometry.move_yxyx(self.thing.position,
- self.args[0])
-
def check(self):
def check(self):
- test_yxyx = self.get_move_target()
+ test_yxyx = self.
_
get_move_target()
if test_yxyx in [t.position for t in self.thing.game.things
if t.blocking]:
raise PlayError('blocked by other thing')
if test_yxyx in [t.position for t in self.thing.game.things
if t.blocking]:
raise PlayError('blocked by other thing')
@@
-39,7
+41,7
@@
class Task_MOVE(Task):
def do(self):
self.thing.game.record_fov_change(self.thing.position)
def do(self):
self.thing.game.record_fov_change(self.thing.position)
- self.thing.position = self.get_move_target()
+ self.thing.position = self.
_
get_move_target()
self.thing.game.record_fov_change(self.thing.position)
if self.thing.carrying:
self.thing.carrying.position = self.thing.position
self.thing.game.record_fov_change(self.thing.position)
if self.thing.carrying:
self.thing.carrying.position = self.thing.position
@@
-111,29
+113,33
@@
class Task_PICK_UP(Task):
class Task_DROP(Task):
class Task_DROP(Task):
+ argtypes = 'string:direction+here'
def check(self):
if not self.thing.carrying:
raise PlayError('nothing to drop')
def check(self):
if not self.thing.carrying:
raise PlayError('nothing to drop')
+ target_position = self._get_move_target()
if self.thing.carrying.type_ == 'Bottle' and self.thing.carrying.full:
for t in [t for t in self.thing.game.things
if t.type_ == 'BottleDeposit'
if self.thing.carrying.type_ == 'Bottle' and self.thing.carrying.full:
for t in [t for t in self.thing.game.things
if t.type_ == 'BottleDeposit'
- and t.position ==
self.thing.
position]:
+ and t.position ==
target_
position]:
raise PlayError('cannot drop full bottle into bottle deposit')
def do(self):
raise PlayError('cannot drop full bottle into bottle deposit')
def do(self):
+ target_position = self._get_move_target()
dropped = self.thing.uncarry()
dropped = self.thing.uncarry()
+ dropped.position = target_position
if dropped.type_ == 'Bottle' and not dropped.full:
for t in [t for t in self.thing.game.things
if t.type_ == 'BottleDeposit'
if dropped.type_ == 'Bottle' and not dropped.full:
for t in [t for t in self.thing.game.things
if t.type_ == 'BottleDeposit'
- and t.position ==
self.thing
.position]:
+ and t.position ==
dropped
.position]:
t.accept()
self.thing.game.remove_thing(dropped)
break
elif dropped.type_ == 'Hat':
for t in [t for t in self.thing.game.things
if t.type_ == 'HatRemixer'
t.accept()
self.thing.game.remove_thing(dropped)
break
elif dropped.type_ == 'Hat':
for t in [t for t in self.thing.game.things
if t.type_ == 'HatRemixer'
- and t.position ==
self.thing
.position]:
+ and t.position ==
dropped
.position]:
t.accept(dropped)
break
t.accept(dropped)
break
diff --git
a/rogue_chat.html
b/rogue_chat.html
index 2e37e7f3376b2ed24f0600f6a63c1564833e90ba..9d5eddf47c8a44e3147185daefa322d582bd1435 100644
(file)
--- a/
rogue_chat.html
+++ b/
rogue_chat.html
@@
-52,7
+52,7
@@
keyboard input/control: <span id="keyboard_control"></span>
<td><button id="switch_to_play"></button></td>
<td>
<button id="switch_to_take_thing"></button>
<td><button id="switch_to_play"></button></td>
<td>
<button id="switch_to_take_thing"></button>
- <button id="drop_thing"></button>
+ <button id="
switch_to_
drop_thing"></button>
<button id="door"></button>
<button id="consume"></button>
<button id="switch_to_command_thing"></button>
<button id="door"></button>
<button id="consume"></button>
<button id="switch_to_command_thing"></button>
@@
-99,11
+99,11
@@
keyboard input/control: <span id="keyboard_control"></span>
<li>help: <input id="key_help" type="text" value="h" />
<li>flatten surroundings: <input id="key_flatten" type="text" value="F" />
<li>teleport: <input id="key_teleport" type="text" value="p" />
<li>help: <input id="key_help" type="text" value="h" />
<li>flatten surroundings: <input id="key_flatten" type="text" value="F" />
<li>teleport: <input id="key_teleport" type="text" value="p" />
-<li>drop thing: <input id="key_drop_thing" type="text" value="u" />
<li>open/close: <input id="key_door" type="text" value="D" />
<li>consume: <input id="key_consume" type="text" value="C" />
<li>install: <input id="key_install" type="text" value="I" />
<li>(un-)wear: <input id="key_wear" type="text" value="W" />
<li>open/close: <input id="key_door" type="text" value="D" />
<li>consume: <input id="key_consume" type="text" value="C" />
<li>install: <input id="key_install" type="text" value="I" />
<li>(un-)wear: <input id="key_wear" type="text" value="W" />
+<li><input id="key_switch_to_drop_thing" type="text" value="u" />
<li><input id="key_switch_to_enter_face" type="text" value="f" />
<li><input id="key_switch_to_take_thing" type="text" value="z" />
<li><input id="key_switch_to_chat" type="text" value="t" />
<li><input id="key_switch_to_enter_face" type="text" value="f" />
<li><input id="key_switch_to_take_thing" type="text" value="z" />
<li><input id="key_switch_to_chat" type="text" value="t" />
@@
-159,6
+159,11
@@
let mode_helps = {
'intro': 'Pick up a thing in reach by entering its index number. Enter nothing to abort.',
'long': 'You see a list of things which you could pick up. Enter the target thing\'s index, or, to leave, nothing.'
},
'intro': 'Pick up a thing in reach by entering its index number. Enter nothing to abort.',
'long': 'You see a list of things which you could pick up. Enter the target thing\'s index, or, to leave, nothing.'
},
+ 'drop_thing': {
+ 'short': 'drop thing',
+ 'intro': 'Enter number of direction to which you want to drop thing.',
+ 'long': 'Drop currently carried thing by entering the target direction index. Enter nothing to return to play mode..'
+ },
'admin_thing_protect': {
'short': 'change thing protection',
'intro': '@ enter thing protection character:',
'admin_thing_protect': {
'short': 'change thing protection',
'intro': '@ enter thing protection character:',
@@
-244,7
+249,6
@@
let key_descriptions = {
'help': 'help',
'flatten': 'flatten surroundings',
'teleport': 'teleport',
'help': 'help',
'flatten': 'flatten surroundings',
'teleport': 'teleport',
- 'drop_thing': 'drop thing',
'door': 'open/close',
'consume': 'consume',
'install': '(un-)install',
'door': 'open/close',
'consume': 'consume',
'install': '(un-)install',
@@
-503,6
+507,7
@@
let server = {
tui.mode_write.legal = game.tasks.includes('WRITE');
tui.mode_command_thing.legal = game.tasks.includes('WRITE');
tui.mode_take_thing.legal = game.tasks.includes('PICK_UP');
tui.mode_write.legal = game.tasks.includes('WRITE');
tui.mode_command_thing.legal = game.tasks.includes('WRITE');
tui.mode_take_thing.legal = game.tasks.includes('PICK_UP');
+ tui.mode_drop_thing.legal = game.tasks.includes('DROP');
} else if (tokens[0] === 'THING_TYPE') {
game.thing_types[tokens[1]] = tokens[2]
} else if (tokens[0] === 'THING_CARRYING') {
} else if (tokens[0] === 'THING_TYPE') {
game.thing_types[tokens[1]] = tokens[2]
} else if (tokens[0] === 'THING_CARRYING') {
@@
-671,6
+676,7
@@
let tui = {
mode_name_thing: new Mode('name_thing', true, true),
mode_command_thing: new Mode('command_thing', true),
mode_take_thing: new Mode('take_thing', true),
mode_name_thing: new Mode('name_thing', true, true),
mode_command_thing: new Mode('command_thing', true),
mode_take_thing: new Mode('take_thing', true),
+ mode_drop_thing: new Mode('drop_thing', true),
mode_enter_face: new Mode('enter_face', true),
mode_admin_enter: new Mode('admin_enter', true),
mode_admin: new Mode('admin'),
mode_enter_face: new Mode('enter_face', true),
mode_admin_enter: new Mode('admin_enter', true),
mode_admin: new Mode('admin'),
@@
-693,9
+699,9
@@
let tui = {
selectables: [],
init: function() {
this.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
selectables: [],
init: function() {
this.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
- "command_thing", "take_thing"]
- this.mode_play.available_actions = ["move", "
drop_thing", "teleport
",
- "
door", "consume", "
install", "wear"];
+ "command_thing", "take_thing"
, "drop_thing"
]
+ this.mode_play.available_actions = ["move", "
teleport", "door", "consume
",
+ "install", "wear"];
this.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
this.mode_study.available_actions = ["toggle_map_mode", "move_explorer"];
this.mode_admin.available_modes = ["admin_thing_protect", "control_pw_type",
this.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
this.mode_study.available_actions = ["toggle_map_mode", "move_explorer"];
this.mode_admin.available_modes = ["admin_thing_protect", "control_pw_type",
@@
-857,7
+863,7
@@
let tui = {
if (select_range.includes(t.position[0].toString()
+ ':' + t.position[1].toString())
&& t.portable) {
if (select_range.includes(t.position[0].toString()
+ ':' + t.position[1].toString())
&& t.portable) {
- this.selectables.push(
[t_id, t]
);
+ this.selectables.push(
t_id
);
}
};
if (this.selectables.length == 0) {
}
};
if (this.selectables.length == 0) {
@@
-866,10
+872,17
@@
let tui = {
this.switch_mode('play');
return;
} else {
this.switch_mode('play');
return;
} else {
- for (let [i, t] of this.selectables.entries()) {
- this.log_msg(i + ': ' + explorer.get_thing_info(t[1]));
+ for (let [i, t_id] of this.selectables.entries()) {
+ const t = game.things[t_id];
+ this.log_msg(i + ': ' + explorer.get_thing_info(t));
}
}
}
}
+ } else if (this.mode.name == 'drop_thing') {
+ this.log_msg('Direction to drop thing to:');
+ this.selectables = ['HERE'].concat(Object.values(this.movement_keys));
+ for (let [i, direction] of this.selectables.entries()) {
+ this.log_msg(i + ': ' + direction);
+ };
} else if (this.mode.name == 'command_thing') {
server.send(['TASK:COMMAND', 'HELP']);
} else if (this.mode.name == 'control_pw_pw') {
} else if (this.mode.name == 'command_thing') {
server.send(['TASK:COMMAND', 'HELP']);
} else if (this.mode.name == 'control_pw_pw') {
@@
-990,6
+1003,16
@@
let tui = {
};
this.full_refresh();
},
};
this.full_refresh();
},
+ pick_selectable: function(task_name) {
+ const i = parseInt(this.inputEl.value);
+ if (isNaN(i) || i < 0 || i >= this.selectables.length) {
+ tui.log_msg('? invalid index, aborted');
+ } else {
+ server.send(['TASK:' + task_name, tui.selectables[i]]);
+ }
+ this.inputEl.value = "";
+ this.switch_mode('play');
+ },
draw_map: function() {
if (!game.turn_complete && this.map_lines.length == 0) {
return;
draw_map: function() {
if (!game.turn_complete && this.map_lines.length == 0) {
return;
@@
-1441,7
+1464,7
@@
tui.inputEl.addEventListener('keydown', (event) => {
}
if (tui.mode.has_input_prompt && event.key == 'Enter'
&& tui.inputEl.value.length == 0
}
if (tui.mode.has_input_prompt && event.key == 'Enter'
&& tui.inputEl.value.length == 0
- && ['chat', 'command_thing', 'take_thing',
+ && ['chat', 'command_thing', 'take_thing',
'drop_thing',
'admin_enter'].includes(tui.mode.name)) {
if (tui.mode.name != 'chat') {
tui.log_msg('@ aborted');
'admin_enter'].includes(tui.mode.name)) {
if (tui.mode.name != 'chat') {
tui.log_msg('@ aborted');
@@
-1470,14
+1493,9
@@
tui.inputEl.addEventListener('keydown', (event) => {
server.send(['TASK:COMMAND', tui.inputEl.value]);
tui.inputEl.value = "";
} else if (tui.mode.name == 'take_thing' && event.key == 'Enter') {
server.send(['TASK:COMMAND', tui.inputEl.value]);
tui.inputEl.value = "";
} else if (tui.mode.name == 'take_thing' && event.key == 'Enter') {
- const i = parseInt(tui.inputEl.value);
- if (isNaN(i) || i < 0 || i >= tui.selectables.length) {
- tui.log_msg('? invalid index, aborted');
- } else {
- server.send(['TASK:PICK_UP', tui.selectables[i][0]]);
- }
- tui.inputEl.value = "";
- tui.switch_mode('play');
+ tui.pick_selectable('PICK_UP');
+ } else if (tui.mode.name == 'drop_thing' && event.key == 'Enter') {
+ tui.pick_selectable('DROP');
} else if (tui.mode.name == 'control_pw_pw' && event.key == 'Enter') {
if (tui.inputEl.value.length == 0) {
tui.log_msg('@ aborted');
} else if (tui.mode.name == 'control_pw_pw' && event.key == 'Enter') {
if (tui.inputEl.value.length == 0) {
tui.log_msg('@ aborted');
@@
-1556,8
+1574,6
@@
tui.inputEl.addEventListener('keydown', (event) => {
} else if (tui.mode.name == 'play') {
if (tui.mode.mode_switch_on_key(event)) {
null;
} else if (tui.mode.name == 'play') {
if (tui.mode.mode_switch_on_key(event)) {
null;
- } else if (event.key === tui.keys.drop_thing && tui.task_action_on('drop_thing')) {
- server.send(["TASK:DROP"]);
} else if (event.key === tui.keys.consume && tui.task_action_on('consume')) {
server.send(["TASK:INTOXICATE"]);
} else if (event.key === tui.keys.door && tui.task_action_on('door')) {
} else if (event.key === tui.keys.consume && tui.task_action_on('consume')) {
server.send(["TASK:INTOXICATE"]);
} else if (event.key === tui.keys.door && tui.task_action_on('door')) {
@@
-1673,9
+1689,6
@@
document.getElementById("toggle_map_mode").onclick = function() {
tui.toggle_map_mode();
tui.full_refresh();
};
tui.toggle_map_mode();
tui.full_refresh();
};
-document.getElementById("drop_thing").onclick = function() {
- server.send(['TASK:DROP']);
-};
document.getElementById("flatten").onclick = function() {
server.send(['TASK:FLATTEN_SURROUNDINGS', tui.password]);
};
document.getElementById("flatten").onclick = function() {
server.send(['TASK:FLATTEN_SURROUNDINGS', tui.password]);
};
diff --git
a/rogue_chat_curses.py
b/rogue_chat_curses.py
index 15f59bf5d915bd13d8b3c5fafe1f761440854cd8..657523fbcf3257aca52daaa749a8ad880ed8906f 100755
(executable)
--- a/
rogue_chat_curses.py
+++ b/
rogue_chat_curses.py
@@
-41,6
+41,11
@@
mode_helps = {
'intro': 'Pick up a thing in reach by entering its index number. Enter nothing to abort.',
'long': 'You see a list of things which you could pick up. Enter the target thing\'s index, or, to leave, nothing.'
},
'intro': 'Pick up a thing in reach by entering its index number. Enter nothing to abort.',
'long': 'You see a list of things which you could pick up. Enter the target thing\'s index, or, to leave, nothing.'
},
+ 'drop_thing': {
+ 'short': 'drop thing',
+ 'intro': 'Enter number of direction to which you want to drop thing.',
+ 'long': 'Drop currently carried thing by entering the target direction index. Enter nothing to return to play mode..'
+ },
'admin_thing_protect': {
'short': 'change thing protection',
'intro': '@ enter thing protection character:',
'admin_thing_protect': {
'short': 'change thing protection',
'intro': '@ enter thing protection character:',
@@
-300,6
+305,7
@@
def cmd_TASKS(game, tasks_comma_separated):
game.tui.mode_write.legal = 'WRITE' in game.tasks
game.tui.mode_command_thing.legal = 'COMMAND' in game.tasks
game.tui.mode_take_thing.legal = 'PICK_UP' in game.tasks
game.tui.mode_write.legal = 'WRITE' in game.tasks
game.tui.mode_command_thing.legal = 'COMMAND' in game.tasks
game.tui.mode_take_thing.legal = 'PICK_UP' in game.tasks
+ game.tui.mode_drop_thing.legal = 'DROP' in game.tasks
cmd_TASKS.argtypes = 'string'
def cmd_THING_TYPE(game, thing_type, symbol_hint):
cmd_TASKS.argtypes = 'string'
def cmd_THING_TYPE(game, thing_type, symbol_hint):
@@
-445,6
+451,7
@@
class TUI:
mode_name_thing = Mode('name_thing', has_input_prompt=True, shows_info=True)
mode_command_thing = Mode('command_thing', has_input_prompt=True)
mode_take_thing = Mode('take_thing', has_input_prompt=True)
mode_name_thing = Mode('name_thing', has_input_prompt=True, shows_info=True)
mode_command_thing = Mode('command_thing', has_input_prompt=True)
mode_take_thing = Mode('take_thing', has_input_prompt=True)
+ mode_drop_thing = Mode('drop_thing', has_input_prompt=True)
mode_enter_face = Mode('enter_face', has_input_prompt=True)
is_admin = False
tile_draw = False
mode_enter_face = Mode('enter_face', has_input_prompt=True)
is_admin = False
tile_draw = False
@@
-453,9
+460,9
@@
class TUI:
import os
import json
self.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
import os
import json
self.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
- "command_thing", "take_thing"
]
- self.mode_play.available_actions = ["move", "drop_thing",
-
"teleport", "door", "consume",
+ "command_thing", "take_thing"
,
+ "drop_thing"]
+
self.mode_play.available_actions = ["move",
"teleport", "door", "consume",
"install", "wear"]
self.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
self.mode_study.available_actions = ["toggle_map_mode", "move_explorer"]
"install", "wear"]
self.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
self.mode_study.available_actions = ["toggle_map_mode", "move_explorer"]
@@
-500,7
+507,7
@@
class TUI:
'flatten': 'F',
'switch_to_enter_face': 'f',
'switch_to_take_thing': 'z',
'flatten': 'F',
'switch_to_enter_face': 'f',
'switch_to_take_thing': 'z',
- 'drop_thing': 'u',
+ '
switch_to_
drop_thing': 'u',
'teleport': 'p',
'consume': 'C',
'door': 'D',
'teleport': 'p',
'consume': 'C',
'door': 'D',
@@
-675,7
+682,7
@@
class TUI:
else:
select_range += [player.position + YX(-1, -1),
player.position + YX(1, -1)]
else:
select_range += [player.position + YX(-1, -1),
player.position + YX(1, -1)]
- self.selectables = [t for t in self.game.things
+ self.selectables = [t
.id_
for t in self.game.things
if t.portable and t.position in select_range]
if len(self.selectables) == 0:
self.log_msg('none')
if t.portable and t.position in select_range]
if len(self.selectables) == 0:
self.log_msg('none')
@@
-684,8
+691,14
@@
class TUI:
return
else:
for i in range(len(self.selectables)):
return
else:
for i in range(len(self.selectables)):
- t = self.
selectables[i]
+ t = self.
game.get_thing(self.selectables[i])
self.log_msg(str(i) + ': ' + self.get_thing_info(t))
self.log_msg(str(i) + ': ' + self.get_thing_info(t))
+ elif self.mode.name == 'drop_thing':
+ self.log_msg('Direction to drop thing to:')
+ self.selectables =\
+ ['HERE'] + list(self.game.tui.movement_keys.values())
+ for i in range(len(self.selectables)):
+ self.log_msg(str(i) + ': ' + self.selectables[i])
elif self.mode.name == 'command_thing':
self.send('TASK:COMMAND ' + quote('HELP'))
elif self.mode.name == 'control_pw_pw':
elif self.mode.name == 'command_thing':
self.send('TASK:COMMAND ' + quote('HELP'))
elif self.mode.name == 'control_pw_pw':
@@
-987,6
+1000,18
@@
class TUI:
if self.show_help:
draw_help()
if self.show_help:
draw_help()
+ def pick_selectable(task_name):
+ try:
+ i = int(self.input_)
+ if i < 0 or i >= len(self.selectables):
+ self.log_msg('? invalid index, aborted')
+ else:
+ self.send('TASK:%s %s' % (task_name, self.selectables[i]))
+ except ValueError:
+ self.log_msg('? invalid index, aborted')
+ self.input_ = ''
+ self.switch_mode('play')
+
action_descriptions = {
'move': 'move',
'flatten': 'flatten surroundings',
action_descriptions = {
'move': 'move',
'flatten': 'flatten surroundings',
@@
-1059,7
+1084,7
@@
class TUI:
self.input_ = self.input_[:-1]
elif self.mode.has_input_prompt and key == '\n' and self.input_ == ''\
and self.mode.name in {'chat', 'command_thing', 'take_thing',
self.input_ = self.input_[:-1]
elif self.mode.has_input_prompt and key == '\n' and self.input_ == ''\
and self.mode.name in {'chat', 'command_thing', 'take_thing',
- 'admin_enter'}:
+ '
drop_thing', '
admin_enter'}:
if self.mode.name != 'chat':
self.log_msg('@ aborted')
self.switch_mode('play')
if self.mode.name != 'chat':
self.log_msg('@ aborted')
self.switch_mode('play')
@@
-1086,16
+1111,9
@@
class TUI:
self.input_ = ""
self.switch_mode('edit')
elif self.mode.name == 'take_thing' and key == '\n':
self.input_ = ""
self.switch_mode('edit')
elif self.mode.name == 'take_thing' and key == '\n':
- try:
- i = int(self.input_)
- if i < 0 or i >= len(self.selectables):
- self.log_msg('? invalid index, aborted')
- else:
- self.send('TASK:PICK_UP %s' % self.selectables[i].id_)
- except ValueError:
- self.log_msg('? invalid index, aborted')
- self.input_ = ''
- self.switch_mode('play')
+ pick_selectable('PICK_UP')
+ elif self.mode.name == 'drop_thing' and key == '\n':
+ pick_selectable('DROP')
elif self.mode.name == 'command_thing' and key == '\n':
self.send('TASK:COMMAND ' + quote(self.input_))
self.input_ = ""
elif self.mode.name == 'command_thing' and key == '\n':
self.send('TASK:COMMAND ' + quote(self.input_))
self.input_ = ""
@@
-1180,8
+1198,6
@@
class TUI:
elif self.mode.name == 'play':
if self.mode.mode_switch_on_key(self, key):
continue
elif self.mode.name == 'play':
if self.mode.mode_switch_on_key(self, key):
continue
- elif key == self.keys['drop_thing'] and task_action_on('drop_thing'):
- self.send('TASK:DROP')
elif key == self.keys['door'] and task_action_on('door'):
self.send('TASK:DOOR')
elif key == self.keys['consume'] and task_action_on('consume'):
elif key == self.keys['door'] and task_action_on('door'):
self.send('TASK:DOOR')
elif key == self.keys['consume'] and task_action_on('consume'):