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 player-identifying meta characters next to @ symbols.
[plomrogue2]
/
rogue_chat_nocanvas_monochrome.html
diff --git
a/rogue_chat_nocanvas_monochrome.html
b/rogue_chat_nocanvas_monochrome.html
index e699a96efee25a3f51970df37916bc3e69eba425..c0ee072d7d634fcd2872cdf0c41f0b099a801b31 100644
(file)
--- a/
rogue_chat_nocanvas_monochrome.html
+++ b/
rogue_chat_nocanvas_monochrome.html
@@
-23,6
+23,8
@@
move down-left (hex grid): <input id="key_hex_move_downleft" type="text" value="
move left (hex grid): <input id="key_hex_move_left" type="text" value="a" /><br />
help: <input id="key_help" type="text" value="h" /><br />
flatten surroundings: <input id="key_flatten" type="text" value="F" /><br />
move left (hex grid): <input id="key_hex_move_left" type="text" value="a" /><br />
help: <input id="key_help" type="text" value="h" /><br />
flatten surroundings: <input id="key_flatten" type="text" value="F" /><br />
+take thing under player: <input id="key_take_thing" type="text" value="z" /><br />
+drop carried thing: <input id="key_drop_thing" type="text" value="u" /><br />
switch to chat mode: <input id="key_switch_to_chat" type="text" value="t" /><br />
switch to play mode: <input id="key_switch_to_play" type="text" value="p" /><br />
switch to study mode: <input id="key_switch_to_study" type="text" value="?" /><br />
switch to chat mode: <input id="key_switch_to_chat" type="text" value="t" /><br />
switch to play mode: <input id="key_switch_to_play" type="text" value="p" /><br />
switch to study mode: <input id="key_switch_to_study" type="text" value="?" /><br />
@@
-34,8
+36,7
@@
toggle terrain/control view (from study mode): <input id="key_toggle_map_mode" t
</div>
<script>
"use strict";
</div>
<script>
"use strict";
-//let websocket_location = "wss://plomlompom.com/rogue_chat/";
-let websocket_location = "ws://localhost:8000/";
+let websocket_location = "wss://plomlompom.com/rogue_chat/";
let rows_selector = document.getElementById("n_rows");
let cols_selector = document.getElementById("n_cols");
let rows_selector = document.getElementById("n_rows");
let cols_selector = document.getElementById("n_cols");
@@
-177,7
+178,9
@@
let server = {
this.websocket = new WebSocket(this.url);
this.websocket.onopen = function(event) {
server.connected = true;
this.websocket = new WebSocket(this.url);
this.websocket.onopen = function(event) {
server.connected = true;
+ game.thing_types = {};
server.send(['TASKS']);
server.send(['TASKS']);
+ server.send(['THING_TYPES']);
tui.log_msg("@ server connected! :)");
tui.switch_mode(mode_login);
};
tui.log_msg("@ server connected! :)");
tui.switch_mode(mode_login);
};
@@
-202,12
+205,24
@@
let server = {
game.things = {};
game.portals = {};
game.turn = parseInt(tokens[1]);
game.things = {};
game.portals = {};
game.turn = parseInt(tokens[1]);
- } else if (tokens[0] === 'THING_POS') {
- game.get_thing(tokens[1], true).position = parser.parse_yx(tokens[2]);
+ } else if (tokens[0] === 'THING') {
+ let t = game.get_thing(tokens[3], true);
+ t.position = parser.parse_yx(tokens[1]);
+ t.type_ = tokens[2];
} else if (tokens[0] === 'THING_NAME') {
} else if (tokens[0] === 'THING_NAME') {
- game.get_thing(tokens[1], true).name_ = tokens[2];
+ let t = game.get_thing(tokens[1], false);
+ if (t) {
+ t.name_ = tokens[2];
+ };
+ } else if (tokens[0] === 'THING_CHAR') {
+ let t = game.get_thing(tokens[1], false);
+ if (t) {
+ t.player_char = tokens[2];
+ };
} else if (tokens[0] === 'TASKS') {
game.tasks = tokens[1].split(',')
} else if (tokens[0] === 'TASKS') {
game.tasks = tokens[1].split(',')
+ } else if (tokens[0] === 'THING_TYPE') {
+ game.thing_types[tokens[1]] = tokens[2]
} else if (tokens[0] === 'MAP') {
game.map_geometry = tokens[1];
tui.init_keys();
} else if (tokens[0] === 'MAP') {
game.map_geometry = tokens[1];
tui.init_keys();
@@
-435,27
+450,37
@@
let tui = {
line = [];
j = 0;
};
line = [];
j = 0;
};
- line.push(map_content[i]);
+ line.push(map_content[i]
+ ' '
);
};
map_lines_split.push(line);
if (this.map_mode == 'terrain') {
};
map_lines_split.push(line);
if (this.map_mode == 'terrain') {
+ let used_positions = [];
for (const thing_id in game.things) {
let t = game.things[thing_id];
for (const thing_id in game.things) {
let t = game.things[thing_id];
- map_lines_split[t.position[0]][t.position[1]] = '@';
+ let symbol = game.thing_types[t.type_];
+ let meta_char = ' ';
+ if (t.player_char) {
+ meta_char = t.player_char;
+ }
+ if (used_positions.includes(t.position.toString())) {
+ meta_char = '+';
+ };
+ map_lines_split[t.position[0]][t.position[1]] = symbol + meta_char;
+ used_positions.push(t.position.toString());
};
}
if (tui.mode.shows_info) {
};
}
if (tui.mode.shows_info) {
- map_lines_split[explorer.position[0]][explorer.position[1]] = '?';
+ map_lines_split[explorer.position[0]][explorer.position[1]] = '?
?
';
}
let map_lines = []
if (game.map_geometry == 'Square') {
for (let line_split of map_lines_split) {
}
let map_lines = []
if (game.map_geometry == 'Square') {
for (let line_split of map_lines_split) {
- map_lines.push(line_split.join('
'));
+ map_lines.push(line_split.join(''));
};
} else if (game.map_geometry == 'Hex') {
let indent = 0
for (let line_split of map_lines_split) {
};
} else if (game.map_geometry == 'Hex') {
let indent = 0
for (let line_split of map_lines_split) {
- map_lines.push(' '.repeat(indent) + line_split.join('
'));
+ map_lines.push(' '.repeat(indent) + line_split.join(''));
if (indent == 0) {
indent = 1;
} else {
if (indent == 0) {
indent = 1;
} else {
@@
-527,6
+552,12
@@
let tui = {
if (game.tasks.includes('MOVE')) {
content += "[" + movement_keys_desc + "] – move player\n";
}
if (game.tasks.includes('MOVE')) {
content += "[" + movement_keys_desc + "] – move player\n";
}
+ if (game.tasks.includes('PICK_UP')) {
+ content += "[" + this.keys.take_thing + "] – take thing under player\n";
+ }
+ if (game.tasks.includes('DROP')) {
+ content += "[" + this.keys.drop_thing + "] – drop carried thing\n";
+ }
if (game.tasks.includes('FLATTEN_SURROUNDINGS')) {
content += "[" + tui.keys.flatten + "] – flatten player's surroundings\n";
}
if (game.tasks.includes('FLATTEN_SURROUNDINGS')) {
content += "[" + tui.keys.flatten + "] – flatten player's surroundings\n";
}
@@
-691,9
+722,13
@@
let explorer = {
for (let t_id in game.things) {
let t = game.things[t_id];
if (t.position[0] == this.position[0] && t.position[1] == this.position[1]) {
for (let t_id in game.things) {
let t = game.things[t_id];
if (t.position[0] == this.position[0] && t.position[1] == this.position[1]) {
- info += "PLAYER @";
+ let symbol = game.thing_types[t.type_];
+ info += "THING: " + t.type_ + " / " + symbol;
+ if (t.player_char) {
+ info += t.player_char;
+ };
if (t.name_) {
if (t.name_) {
- info += "
: " + t.name_
;
+ info += "
(name: " + t.name_ + ")"
;
}
info += "\n";
}
}
info += "\n";
}
@@
-816,6
+851,12
@@
tui.inputEl.addEventListener('keydown', (event) => {
} else if (event.key === tui.keys.flatten
&& game.tasks.includes('FLATTEN_SURROUNDINGS')) {
server.send(["TASK:FLATTEN_SURROUNDINGS", tui.password]);
} else if (event.key === tui.keys.flatten
&& game.tasks.includes('FLATTEN_SURROUNDINGS')) {
server.send(["TASK:FLATTEN_SURROUNDINGS", tui.password]);
+ } else if (event.key === tui.keys.take_thing
+ && game.tasks.includes('PICK_UP')) {
+ server.send(["TASK:PICK_UP"]);
+ } else if (event.key === tui.keys.drop_thing
+ && game.tasks.includes('DROP')) {
+ server.send(["TASK:DROP"]);
} else if (event.key in tui.movement_keys
&& game.tasks.includes('MOVE')) {
server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
} else if (event.key in tui.movement_keys
&& game.tasks.includes('MOVE')) {
server.send(['TASK:MOVE', tui.movement_keys[event.key]]);