t = game.get_player(connection_id)
if not t:
raise GameError('can only draw face when already logged in')
- if len(face) != 9:
+ if len(face) != 18:
raise GameError('wrong face string length')
game.faces[t.name] = face
game.changed = True
cmd_PLAYER_FACE.argtypes = 'string'
def cmd_GOD_PLAYER_FACE(game, name, face):
+ if len(face) != 18:
+ raise GameError('wrong face string length')
game.faces[name] = face
cmd_GOD_PLAYER_FACE.argtypes = 'string string'
def cmd_GOD_PLAYER_HAT(game, name, hat):
+ if len(hat) != 18:
+ raise GameError('wrong hat string length')
game.hats[name] = hat
cmd_GOD_PLAYER_HAT.argtypes = 'string string'
def cmd_THING_HAT_DESIGN(game, thing_id, design):
- if len(design) != 9:
+ if len(design) != 18:
raise GameError('hat design of wrong length')
t = game.get_thing(thing_id)
if not t:
if t.name in self.faces:
return self.faces[t.name]
else:
- return 'O O' + ' v ' + '>-<'
+ return '/O O\\' + '| oo |' + '\\>--</'
return None
def send_gamestate(self, connection_id=None):
class Thing_Hat(Thing):
symbol_hint = 'H'
portable = True
- design = ' X X ==='
+ design = ' +--+ ' + ' | | ' + '======'
import string
new_design = ''
legal_chars = string.ascii_letters + string.digits + string.punctuation + ' '
- for i in range(9):
+ for i in range(18):
new_design += random.choice(list(legal_chars))
hat.design = new_design
self.sound('HAT REMIXER', 'remixing a hat …')
</div>
<script>
"use strict";
-let websocket_location = "wss://plomlompom.com/rogue_chat/";
-//let websocket_location = "ws://localhost:8001/";
+//let websocket_location = "wss://plomlompom.com/rogue_chat/";
+let websocket_location = "ws://localhost:8000/";
let mode_helps = {
'play': {
'enter_face': {
'short': 'enter your face',
'intro': '@ enter face line (enter nothing to abort):',
- 'long': 'Draw your face as ASCII art. The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..'
+ 'long': 'Draw your face as ASCII art. The string you enter must be 18 characters long, and will be divided on display into 3 lines of 6 characters each, from top to bottom..'
},
'write': {
'short': 'change terrain',
}
info_to_cache += " / protection: " + protection + "\n";
if (t.hat) {
- info_to_cache += t.hat.slice(0, 3) + '\n';
- info_to_cache += t.hat.slice(3, 6) + '\n';
- info_to_cache += t.hat.slice(6, 9) + '\n';
+ info_to_cache += t.hat.slice(0, 6) + '\n';
+ info_to_cache += t.hat.slice(6, 12) + '\n';
+ info_to_cache += t.hat.slice(12, 18) + '\n';
}
if (t.face) {
- info_to_cache += t.face.slice(0, 3) + '\n';
- info_to_cache += t.face.slice(3, 6) + '\n';
- info_to_cache += t.face.slice(6, 9) + '\n';
+ info_to_cache += t.face.slice(0, 6) + '\n';
+ info_to_cache += t.face.slice(6, 12) + '\n';
+ info_to_cache += t.face.slice(12, 18) + '\n';
}
}
}
server.send(['LOGIN', tui.inputEl.value]);
tui.inputEl.value = "";
} else if (tui.mode.name == 'enter_face' && event.key == 'Enter') {
- if (tui.inputEl.value.length != 9) {
+ if (tui.inputEl.value.length != 18) {
tui.log_msg('? wrong input length, aborting');
} else {
server.send(['PLAYER_FACE', tui.inputEl.value]);
server.send(["TASK:DOOR"]);
} else if (event.key === tui.keys.install && tui.task_action_on('install')) {
server.send(["TASK:INSTALL"]);
- } else if (event.key === tui.keys.install && tui.task_action_on('wear')) {
+ } else if (event.key === tui.keys.wear && tui.task_action_on('wear')) {
server.send(["TASK:WEAR"]);
} else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
'enter_face': {
'short': 'enter your face',
'intro': '@ enter face line (enter nothing to abort):',
- 'long': 'Draw your face as ASCII art. The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..'
+ 'long': 'Draw your face as ASCII art. The string you enter must be 18 characters long, and will be divided on display into 3 lines of 6 characters each, from top to bottom..'
},
'write': {
'short': 'change terrain',
protection = 'none'
info_to_cache += ' / protection: %s\n' % protection
if hasattr(t, 'hat'):
- info_to_cache += t.hat[0:3] + '\n'
- info_to_cache += t.hat[3:6] + '\n'
- info_to_cache += t.hat[6:9] + '\n'
+ info_to_cache += t.hat[0:6] + '\n'
+ info_to_cache += t.hat[6:12] + '\n'
+ info_to_cache += t.hat[12:18] + '\n'
if hasattr(t, 'face'):
- info_to_cache += t.face[0:3] + '\n'
- info_to_cache += t.face[3:6] + '\n'
- info_to_cache += t.face[6:9] + '\n'
+ info_to_cache += t.face[0:6] + '\n'
+ info_to_cache += t.face[6:12] + '\n'
+ info_to_cache += t.face[12:18] + '\n'
terrain_char = self.game.map_content[pos_i]
terrain_desc = '?'
if terrain_char in self.game.terrains:
self.send('LOGIN ' + quote(self.input_))
self.input_ = ""
elif self.mode.name == 'enter_face' and key == '\n':
- if len(self.input_) != 9:
+ if len(self.input_) != 18:
self.log_msg('? wrong input length, aborting')
else:
self.send('PLAYER_FACE %s' % quote(self.input_))