- commit
- 3e693ef5041a924e27e3a98e0b2d25f7463d6926
- parent
- 52b433470da6a6bca848ef253ac286e55e5ed502
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-10-05 09:58
display equipped items in client
Diffstat
| M | player.go | 16 | ++++++++++++++++ |
| M | static/main.js | 21 | +++++++++++++++++---- |
2 files changed, 33 insertions, 4 deletions
diff --git a/player.go b/player.go
@@ -118,12 +118,20 @@ func (player *Player) RemoveItem(name string) {
118 118 if item, ok := Items[name]; ok {
119 119 player.UnapplyItem(item)
120 120 player.CommitStats()
-1 121 player.Enqueue(Message{
-1 122 "action": "setWeapon",
-1 123 "item": player.Weapon,
-1 124 })
121 125 }
122 126 } else if name == player.Armor {
123 127 player.Armor = ""
124 128 if item, ok := Items[name]; ok {
125 129 player.UnapplyItem(item)
126 130 player.CommitStats()
-1 131 player.Enqueue(Message{
-1 132 "action": "setArmor",
-1 133 "item": player.Armor,
-1 134 })
127 135 }
128 136 }
129 137 }
@@ -209,6 +217,10 @@ func (player *Player) UseItem(name string) {
209 217 } else {
210 218 player.Weapon = ""
211 219 }
-1 220 player.Enqueue(Message{
-1 221 "action": "setWeapon",
-1 222 "item": player.Weapon,
-1 223 })
212 224 case ARMOR:
213 225 if old, ok := Items[player.Armor]; ok {
214 226 player.UnapplyItem(old)
@@ -219,6 +231,10 @@ func (player *Player) UseItem(name string) {
219 231 } else {
220 232 player.Armor = ""
221 233 }
-1 234 player.Enqueue(Message{
-1 235 "action": "setArmor",
-1 236 "item": player.Armor,
-1 237 })
222 238 }
223 239
224 240 player.CommitStats()
diff --git a/static/main.js b/static/main.js
@@ -61,6 +61,8 @@ var game = {
61 61 lineOfSight: 0,
62 62 },
63 63 inventory: {},
-1 64 weapon: '',
-1 65 armor: '',
64 66
65 67 getRect(pos, withWalls) {
66 68 for (const rect of this.rects) {
@@ -210,16 +212,16 @@ var screen = {
210 212 }
211 213 },
212 214
213 -1 table(items, cols) {
-1 215 table(stats, cols) {
214 216 var c = Math.floor(cols / 3);
215 217 var item = ITEMS[this.menuSelected] || {};
216 -1 var rows = items.map(([label, key]) => [
-1 218 var rows = stats.map(([label, key]) => [
217 219 label,
218 220 '' + game.stats[key],
219 221 item[key] ? ((item[key] > 0 ? '+' : '') + item[key]) : '',
220 222 item[key],
221 223 ]);
222 -1 var l1 = Math.max(...rows.map(row => row[0].length));
-1 224 var l1 = Math.max('Weapon'.length, 'Armor'.length, ...rows.map(row => row[0].length));
223 225 var l2 = Math.max(...rows.map(row => row[1].length));
224 226 var l3 = Math.max(...rows.map(row => row[2].length));
225 227
@@ -239,6 +241,13 @@ var screen = {
239 241 $pre.append('\n');
240 242 }
241 243 });
-1 244
-1 245 this.commitSpan(('Weapon'.substr(0, l1) + ':').padEnd(l1 + 2), -1);
-1 246 this.commitSpan(game.weapon.padEnd(c - (l1 + 2)), 1);
-1 247
-1 248 this.commitSpan(('Armor'.substr(0, l1) + ':').padEnd(l1 + 2), -1);
-1 249 this.commitSpan(game.armor, 3);
-1 250 $pre.append('\n');
242 251 },
243 252
244 253 renderHealth() {
@@ -249,7 +258,7 @@ var screen = {
249 258 },
250 259
251 260 renderMenu() {
252 -1 var rows = this.rows - 4;
-1 261 var rows = this.rows - 5;
253 262 var items = Object.entries(game.inventory);
254 263 items.sort();
255 264
@@ -373,6 +382,10 @@ socket.onmessage = function(event) {
373 382 } else {
374 383 delete game.inventory[msg.item];
375 384 }
-1 385 } else if (msg.action === 'setWeapon') {
-1 386 game.weapon = msg.item;
-1 387 } else if (msg.action === 'setArmor') {
-1 388 game.armor = msg.item;
376 389 } else {
377 390 console.log(msg);
378 391 }