game.map_control = tokens[1]
} else if (tokens[0] === 'GAME_STATE_COMPLETE') {
game.turn_complete = true;
+ game.player = game.things[game.player_id];
+ explorer.info_cached = false;
if (tui.mode.name == 'post_login_wait') {
tui.switch_mode('play');
+ } else {
+ tui.full_refresh();
}
- explorer.info_cached = false;
- tui.full_refresh();
} else if (tokens[0] === 'CHAT') {
tui.log_msg('# ' + tokens[1], 1);
} else if (tokens[0] === 'REPLY') {
tui.log_msg('@ finished tile protection drawing.')
}
this.tile_draw = false;
- const player = game.things[game.player_id];
- if (mode_name == 'command_thing' && (!player.carrying || !player.carrying.commandable)) {
+ if (mode_name == 'command_thing' && (!game.player.carrying
+ || !game.player.carrying.commandable)) {
this.log_msg('? not carrying anything commandable');
terminal.blink_screen();
this.switch_mode('play');
return;
};
- if (mode_name == 'drop_thing' && (!player.carrying)) {
+ if (mode_name == 'drop_thing' && (!game.player.carrying)) {
this.log_msg('? not carrying anything droppable');
terminal.blink_screen();
this.switch_mode('play');
continue;
}
let t = game.things[t_id];
- if (player.position[0] == t.position[0]
- && player.position[1] == t.position[1]) {
+ if (game.player.position[0] == t.position[0]
+ && game.player.position[1] == t.position[1]) {
thing_id = t_id;
break;
}
this.inputEl.focus();
}
if (game.player_id in game.things && (this.mode.shows_info || this.mode.name == 'control_tile_draw')) {
- explorer.position = game.things[game.player_id].position;
+ explorer.position = game.player.position;
}
this.inputEl.value = "";
this.restore_input_values();
this.show_help = true;
} else if (this.mode.name == 'take_thing') {
this.log_msg("Portable things in reach for pick-up:");
- const player = game.things[game.player_id];
- const y = player.position[0]
- const x = player.position[1]
+ const y = game.player.position[0]
+ const x = game.player.position[1]
let select_range = [y.toString() + ':' + x.toString(),
(y + 0).toString() + ':' + (x - 1).toString(),
(y + 0).toString() + ':' + (x + 1).toString(),
}
};
}
- let player = game.things[game.player_id];
if (tui.mode.shows_info || tui.mode.name == 'control_tile_draw') {
map_lines_split[explorer.position[0]][explorer.position[1]] = '??';
} else if (tui.map_mode != 'terrain + things') {
- map_lines_split[player.position[0]][player.position[1]] = '??';
+ map_lines_split[game.player.position[0]][game.player.position[1]] = '??';
}
this.map_lines = []
if (game.map_geometry == 'Square') {
};
}
let window_center = [terminal.rows / 2, this.window_width / 2];
- let center_position = [player.position[0], player.position[1]];
+ let center_position = [game.player.position[0], game.player.position[1]];
if (tui.mode.shows_info || tui.mode.name == 'control_tile_draw') {
center_position = [explorer.position[0], explorer.position[1]];
}
return target;
},
teleport: function() {
- let player = this.get_thing(game.player_id);
- if (player.position in this.portals) {
- server.reconnect_to(this.portals[player.position]);
+ if (game.player.position in this.portals) {
+ server.reconnect_to(this.portals[game.player.position]);
} else {
terminal.blink_screen();
tui.log_msg('? not standing on portal')
cmd_MAP_CONTROL.argtypes = 'string'
def cmd_GAME_STATE_COMPLETE(game):
- if game.tui.mode.name == 'post_login_wait':
- game.tui.switch_mode('play')
game.turn_complete = True
game.tui.do_refresh = True
game.tui.info_cached = None
+ game.player = game.get_thing(game.player_id)
+ if game.tui.mode.name == 'post_login_wait':
+ game.tui.switch_mode('play')
cmd_GAME_STATE_COMPLETE.argtypes = ''
def cmd_PORTAL(game, position, msg):
self.annotations = {}
self.portals = {}
self.terrains = {}
+ self.player = None
def get_string_options(self, string_option_type):
if string_option_type == 'map_geometry':
if self.mode and self.mode.name == 'control_tile_draw':
self.log_msg('@ finished tile protection drawing.')
self.tile_draw = False
- player = self.game.get_thing(self.game.player_id)
if mode_name == 'command_thing' and\
- (not hasattr(player, 'carrying') or not player.carrying.commandable):
+ (not self.game.player.carrying or
+ not self.game.player.carrying.commandable):
self.log_msg('? not carrying anything commandable')
self.flash = True
self.switch_mode('play')
return
- if mode_name == 'drop_thing' and\
- not (hasattr(player, 'carrying' or player.carrying)):
+ if mode_name == 'drop_thing' and not self.game.player.carrying:
self.log_msg('? not carrying anything droppable')
self.flash = True
self.switch_mode('play')
mode_name = 'admin'
elif mode_name in {'name_thing', 'admin_thing_protect'}:
thing = None
- for t in [t for t in self.game.things if t.position == player.position
- and t.id_ != player.id_]:
+ for t in [t for t in self.game.things
+ if t.position == self.game.player.position
+ and t.id_ != self.game.player.id_]:
thing = t
break
if not thing:
elif self.mode.name != 'edit':
self.map_mode = 'terrain + things'
if self.mode.shows_info or self.mode.name == 'control_tile_draw':
- player = self.game.get_thing(self.game.player_id)
- self.explorer = YX(player.position.y, player.position.x)
+ self.explorer = YX(self.game.player.position.y,
+ self.game.player.position.x)
if self.mode.is_single_char_entry:
self.show_help = True
if len(self.mode.intro_msg) > 0:
self.log_msg('@ enter username')
elif self.mode.name == 'take_thing':
self.log_msg('Portable things in reach for pick-up:')
- player = self.game.get_thing(self.game.player_id)
- select_range = [player.position,
- player.position + YX(0,-1),
- player.position + YX(0, 1),
- player.position + YX(-1, 0),
- player.position + YX(1, 0)]
+ select_range = [self.game.player.position,
+ self.game.player.position + YX(0,-1),
+ self.game.player.position + YX(0, 1),
+ self.game.player.position + YX(-1, 0),
+ self.game.player.position + YX(1, 0)]
if type(self.game.map_geometry) == MapGeometryHex:
- if player.position.y % 2:
- select_range += [player.position + YX(-1, 1),
- player.position + YX(1, 1)]
+ if self.game.player.position.y % 2:
+ select_range += [self.game.player.position + YX(-1, 1),
+ self.game.player.position + YX(1, 1)]
else:
- select_range += [player.position + YX(-1, -1),
- player.position + YX(1, -1)]
+ select_range += [self.game.player.position + YX(-1, -1),
+ self.game.player.position + YX(1, -1)]
self.selectables = [t.id_ for t in self.game.things
if t.portable and t.position in select_range]
if len(self.selectables) == 0:
draw_thing(t, used_positions)
for t in [t for t in self.game.things if t.type_ == 'Player']:
draw_thing(t, used_positions)
- player = self.game.get_thing(self.game.player_id)
if self.mode.shows_info or self.mode.name == 'control_tile_draw':
map_lines_split[self.explorer.y][self.explorer.x] = '??'
elif self.map_mode != 'terrain + things':
- map_lines_split[player.position.y][player.position.x] = '??'
+ map_lines_split[self.game.player.position.y]\
+ [self.game.player.position.x] = '??'
self.map_lines = []
if type(self.game.map_geometry) == MapGeometryHex:
indent = 0
self.map_lines += [''.join(line)]
window_center = YX(int(self.size.y / 2),
int(self.window_width / 2))
- center = player.position
+ center = self.game.player.position
if self.mode.shows_info or self.mode.name == 'control_tile_draw':
center = self.explorer
center = YX(center.y, center.x * 2)
elif key == self.keys['spin'] and task_action_on('spin'):
self.send('TASK:SPIN')
elif key == self.keys['teleport']:
- player = self.game.get_thing(self.game.player_id)
- if player.position in self.game.portals:
- self.host = self.game.portals[player.position]
+ if self.game.player.position in self.game.portals:
+ self.host = self.game.portals[self.game.player.position]
self.reconnect()
else:
self.flash = True