home · contact · privacy
Widen face and hat.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 7 Dec 2020 05:58:53 +0000 (06:58 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 7 Dec 2020 05:58:53 +0000 (06:58 +0100)
plomrogue/commands.py
plomrogue/game.py
plomrogue/things.py
rogue_chat.html
rogue_chat_curses.py

index a36f9e6a5a8cc51a6aee35118f2b909dd9f305cd..7544c06e03c94018ae975bf65a0ace44e2f4253f 100644 (file)
@@ -318,22 +318,26 @@ def cmd_PLAYER_FACE(game, face, connection_id):
     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:
index 5e206b9c8c289155a59aa7700dd9306ea4e05e79..47f09d161ceff332b2e8ad43f086161d9ad75854 100755 (executable)
@@ -206,7 +206,7 @@ class Game(GameBase):
             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):
index 32d7854732029bd0fc2ef2946dae9ecaebf006d7..53837e36194b9479454500381153e67cff8f5248 100644 (file)
@@ -167,7 +167,7 @@ class Thing_BottleSpawner(ThingSpawner):
 class Thing_Hat(Thing):
     symbol_hint = 'H'
     portable = True
-    design = ' X  X ==='
+    design = ' +--+ ' + ' |  | ' + '======'
 
 
 
@@ -178,7 +178,7 @@ class Thing_HatRemixer(Thing):
         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 …')
index 1b5f39d8f732f631f477b5dec8378349a21e8b4b..7d2747e75be9fa5478aca4ff461b1c2993efff7e 100644 (file)
@@ -126,8 +126,8 @@ keyboard input/control: <span id="keyboard_control"></span>
 </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': {
@@ -167,7 +167,7 @@ let mode_helps = {
     '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',
@@ -1345,14 +1345,14 @@ let explorer = {
                      }
                      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';
                      }
                  }
             }
@@ -1448,7 +1448,7 @@ tui.inputEl.addEventListener('keydown', (event) => {
         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]);
@@ -1555,7 +1555,7 @@ tui.inputEl.addEventListener('keydown', (event) => {
               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]]);
index ff00b503a3eb51de174715329cce08bfad59f323..efddaf68eb5f38bb8b80d56baf44a872708d6685 100755 (executable)
@@ -49,7 +49,7 @@ mode_helps = {
     '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',
@@ -716,13 +716,13 @@ class TUI:
                         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:
@@ -1069,7 +1069,7 @@ class TUI:
                 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_))