ledmon 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/DOCS.md +95 -5
- data/lib/ledmon/monster/interaction.rb +16 -0
- data/lib/ledmon/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11730abbeb3bb95e93b748b4df5ecbde2b25011a86dadee749435e3eb4e7250c
|
4
|
+
data.tar.gz: 546963a89848393d4afb8520c744b772b4f850f48f0d66ffc7e7ecd2573384e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6c1a454de0de6260ecfbf61a351a25873d2d473b6697ffa636d6956f7085b2e4af3be4c99ee2ce1182627a9a1bbbcaa7d00055e9e510b2de568215c1fca8667
|
7
|
+
data.tar.gz: db34f8d5695e15f52ff6e7cbf7280e1c03e2e4f3f86367f6199191586b207573a96e0c80f882ecf075083631026552a85bdb94b9f051c01167a66b9710fc0b64
|
data/DOCS.md
CHANGED
@@ -16,7 +16,7 @@ def avatar
|
|
16
16
|
@)<)@"
|
17
17
|
end
|
18
18
|
|
19
|
-
def brain
|
19
|
+
def brain
|
20
20
|
# Mozog príšerky - tu sa všetko odohráva!
|
21
21
|
loop do
|
22
22
|
# Tvoja logika
|
@@ -31,6 +31,7 @@ end
|
|
31
31
|
## 🎮 Ovládanie a vstup
|
32
32
|
|
33
33
|
### `keypress`
|
34
|
+
|
34
35
|
Počká na stlačenie klávesy a vráti aká bola stlačená.
|
35
36
|
|
36
37
|
```ruby
|
@@ -41,6 +42,7 @@ end
|
|
41
42
|
```
|
42
43
|
|
43
44
|
### `ask(otazka)`
|
45
|
+
|
44
46
|
Opýta sa užívateľa na niečo a počká na odpoveď.
|
45
47
|
|
46
48
|
```ruby
|
@@ -49,6 +51,7 @@ craft(recipe)
|
|
49
51
|
```
|
50
52
|
|
51
53
|
### `say(sprava)`
|
54
|
+
|
52
55
|
Vypíše správu na obrazovku.
|
53
56
|
|
54
57
|
```ruby
|
@@ -59,6 +62,7 @@ say "Môj život: #{get_health}"
|
|
59
62
|
## 🚶 Pohyb
|
60
63
|
|
61
64
|
### `move_forward`
|
65
|
+
|
62
66
|
Pohne príšerku vpred (v smere, kam sa pozerá).
|
63
67
|
|
64
68
|
```ruby
|
@@ -67,7 +71,8 @@ if key == 'w'
|
|
67
71
|
end
|
68
72
|
```
|
69
73
|
|
70
|
-
### `move_backward`
|
74
|
+
### `move_backward`
|
75
|
+
|
71
76
|
Pohne príšerku vzad.
|
72
77
|
|
73
78
|
```ruby
|
@@ -77,6 +82,7 @@ end
|
|
77
82
|
```
|
78
83
|
|
79
84
|
### `turn_left`
|
85
|
+
|
80
86
|
Otočí príšerku doľava.
|
81
87
|
|
82
88
|
```ruby
|
@@ -86,6 +92,7 @@ end
|
|
86
92
|
```
|
87
93
|
|
88
94
|
### `turn_right`
|
95
|
+
|
89
96
|
Otočí príšerku doprava.
|
90
97
|
|
91
98
|
```ruby
|
@@ -95,6 +102,7 @@ end
|
|
95
102
|
```
|
96
103
|
|
97
104
|
### `turn_towards(smer)`
|
105
|
+
|
98
106
|
Otočí príšerku vybraným smerom.
|
99
107
|
|
100
108
|
```ruby
|
@@ -102,6 +110,7 @@ turn_towards(["north", "south", "east", "west"].sample)
|
|
102
110
|
```
|
103
111
|
|
104
112
|
### `get_position`
|
113
|
+
|
105
114
|
Vráti ti aktuálnu pozíciu príšerky.
|
106
115
|
|
107
116
|
```ruby
|
@@ -111,6 +120,7 @@ end
|
|
111
120
|
```
|
112
121
|
|
113
122
|
### `get_heading`
|
123
|
+
|
114
124
|
Vráti ti aktuálny smer príšerky.
|
115
125
|
|
116
126
|
```ruby
|
@@ -120,6 +130,7 @@ end
|
|
120
130
|
```
|
121
131
|
|
122
132
|
### `path_to(x, y)`
|
133
|
+
|
123
134
|
Nájde, akým smerom máš ísť k zadanému cieľu. Táto metóda vidí iba mapu o veľkosti look-u, takže sa môže v prípade steny väčšej ako váš rozhľad príšerka nasledujúca túto metódu zaseknúť.
|
124
135
|
|
125
136
|
```ruby
|
@@ -138,6 +149,7 @@ end
|
|
138
149
|
## 👀 Rozhliadanie sa
|
139
150
|
|
140
151
|
### `look`
|
152
|
+
|
141
153
|
Pozrie sa okolo seba a vráti mapu okolia.
|
142
154
|
|
143
155
|
```ruby
|
@@ -160,6 +172,7 @@ end
|
|
160
172
|
## ⚔️ Boj
|
161
173
|
|
162
174
|
### `attack`
|
175
|
+
|
163
176
|
Zaútočí na nepriateľa, ak pred ním stojí.
|
164
177
|
|
165
178
|
```ruby
|
@@ -169,6 +182,7 @@ end
|
|
169
182
|
```
|
170
183
|
|
171
184
|
### `get_health`
|
185
|
+
|
172
186
|
Zistí aktuálny život príšerky.
|
173
187
|
|
174
188
|
```ruby
|
@@ -179,6 +193,7 @@ say "Môj život: #{health}"
|
|
179
193
|
## 🎒 Inventár a vybavenie
|
180
194
|
|
181
195
|
### `get_inventory`
|
196
|
+
|
182
197
|
Vráti všetky predmety v inventári.
|
183
198
|
|
184
199
|
```ruby
|
@@ -188,6 +203,7 @@ say "Vybavenie: #{inventory.equipment.inspect}"
|
|
188
203
|
```
|
189
204
|
|
190
205
|
### `equip_item(predmet, slot)`
|
206
|
+
|
191
207
|
Nasadí predmet do určitého slotu.
|
192
208
|
|
193
209
|
```ruby
|
@@ -197,6 +213,7 @@ equip_item(item, slot)
|
|
197
213
|
```
|
198
214
|
|
199
215
|
### `unequip_item(slot)`
|
216
|
+
|
200
217
|
Zosadí predmet zo slotu.
|
201
218
|
|
202
219
|
```ruby
|
@@ -204,7 +221,30 @@ slot = ask("Slot: ")
|
|
204
221
|
unequip_item(slot)
|
205
222
|
```
|
206
223
|
|
224
|
+
#### ⚠️ V týchto príkladoch je dôležitá premenná `slot`. Pri equipovaní a unequipovaní itemov si musíte vybrať správny slot.
|
225
|
+
|
226
|
+
Validné sloty sú:
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
# zbrane
|
230
|
+
slot = "hand"
|
231
|
+
|
232
|
+
# brnenie
|
233
|
+
slot = "armor"
|
234
|
+
|
235
|
+
# batoh
|
236
|
+
slot = "backpack"
|
237
|
+
|
238
|
+
# topánky
|
239
|
+
slot = "boots"
|
240
|
+
|
241
|
+
# amulety
|
242
|
+
slot = "charm0"
|
243
|
+
slot = "charm1"
|
244
|
+
```
|
245
|
+
|
207
246
|
### `storage_transfer(item, take)`
|
247
|
+
|
208
248
|
Vyberie/Vloži item zo storage-u.
|
209
249
|
|
210
250
|
```ruby
|
@@ -214,6 +254,7 @@ storage_transfer(item, take)
|
|
214
254
|
```
|
215
255
|
|
216
256
|
### `storage_list`
|
257
|
+
|
217
258
|
Vráti všetky predmety v storage-i.
|
218
259
|
|
219
260
|
```ruby
|
@@ -221,6 +262,7 @@ say storage_list.inspect
|
|
221
262
|
```
|
222
263
|
|
223
264
|
### `consume_item(item)`
|
265
|
+
|
224
266
|
Zkonzumuje item.
|
225
267
|
|
226
268
|
```ruby
|
@@ -229,6 +271,7 @@ consume_item item
|
|
229
271
|
```
|
230
272
|
|
231
273
|
### `get_remaining_consumable_duration`
|
274
|
+
|
232
275
|
Vráti, koľko ešte bude trvať efekt skonzumovaného itemu.
|
233
276
|
|
234
277
|
```ruby
|
@@ -238,6 +281,7 @@ say get_remaining_consumable_duration
|
|
238
281
|
## 🔨 Crafting a výskum
|
239
282
|
|
240
283
|
### `craft(recept)`
|
284
|
+
|
241
285
|
Vytvorí predmet podľa receptu.
|
242
286
|
|
243
287
|
```ruby
|
@@ -246,6 +290,7 @@ craft(recipe)
|
|
246
290
|
```
|
247
291
|
|
248
292
|
### `research(predmet)`
|
293
|
+
|
249
294
|
Začne výskum určitého predmetu.
|
250
295
|
|
251
296
|
```ruby
|
@@ -254,6 +299,7 @@ research(item)
|
|
254
299
|
```
|
255
300
|
|
256
301
|
### `get_research_progress`
|
302
|
+
|
257
303
|
Zobrazí stav výskumu.
|
258
304
|
|
259
305
|
```ruby
|
@@ -262,6 +308,7 @@ say "Stav výskumu: #{progress}"
|
|
262
308
|
```
|
263
309
|
|
264
310
|
### `get_recipes`
|
311
|
+
|
265
312
|
Zobrazí všetky dostupné recepty.
|
266
313
|
|
267
314
|
```ruby
|
@@ -270,6 +317,7 @@ say "Recepty: #{recipes}"
|
|
270
317
|
```
|
271
318
|
|
272
319
|
### `scrap(predmet)`
|
320
|
+
|
273
321
|
Rozloží predmet na materiály.
|
274
322
|
|
275
323
|
```ruby
|
@@ -279,6 +327,7 @@ scrap("iron_sword")
|
|
279
327
|
## 🧩 Výzvy a algoritmy
|
280
328
|
|
281
329
|
### `interact`
|
330
|
+
|
282
331
|
Interaguje s objektami vo svete, môže spustiť algoritmickú úlohu.
|
283
332
|
|
284
333
|
```ruby
|
@@ -291,6 +340,7 @@ end
|
|
291
340
|
```
|
292
341
|
|
293
342
|
### `algo(id, input)`
|
343
|
+
|
294
344
|
Rieši algoritmické úlohy. Musíš implementovať logiku pre rôzne typy úloh.
|
295
345
|
|
296
346
|
```ruby
|
@@ -305,6 +355,45 @@ def algo(id, input)
|
|
305
355
|
end
|
306
356
|
```
|
307
357
|
|
358
|
+
## 🤝 Obchody
|
359
|
+
|
360
|
+
### `create_trade_offer(remaining, inputs, outputs)`
|
361
|
+
|
362
|
+
Vytvorí obchod.
|
363
|
+
|
364
|
+
```ruby
|
365
|
+
remaining = ask("remaining: ").to_i
|
366
|
+
inputs = ask("inputs: ").split(" ")
|
367
|
+
outputs = ask("outputs: ").split(" ")
|
368
|
+
say create_trade_offer(remaining, inputs, outputs)
|
369
|
+
```
|
370
|
+
|
371
|
+
### `accept_trade_offer(id)`
|
372
|
+
|
373
|
+
Prijme obchod.
|
374
|
+
|
375
|
+
```ruby
|
376
|
+
offer = ask("offer: ")
|
377
|
+
accept_trade_offer(offer)
|
378
|
+
```
|
379
|
+
|
380
|
+
### `cancel_trade_offer(id)`
|
381
|
+
|
382
|
+
Zruší obchod.
|
383
|
+
|
384
|
+
```ruby
|
385
|
+
offer = ask("offer: ")
|
386
|
+
cancel_trade_offer(offer)
|
387
|
+
```
|
388
|
+
|
389
|
+
### `list_trade_offers`
|
390
|
+
|
391
|
+
Vráti všetky obchody.
|
392
|
+
|
393
|
+
```ruby
|
394
|
+
say list_trade_offers.inspect
|
395
|
+
```
|
396
|
+
|
308
397
|
## 💡 Kompletný príklad
|
309
398
|
|
310
399
|
```ruby
|
@@ -319,10 +408,10 @@ end
|
|
319
408
|
def brain
|
320
409
|
loop do
|
321
410
|
key = keypress
|
322
|
-
|
411
|
+
|
323
412
|
case key
|
324
413
|
when 'w' then move_forward
|
325
|
-
when 's' then move_backward
|
414
|
+
when 's' then move_backward
|
326
415
|
when 'a' then turn_left
|
327
416
|
when 'd' then turn_right
|
328
417
|
when 'j' then attack
|
@@ -376,5 +465,6 @@ end
|
|
376
465
|
3. **Používaj `say`** - vypisuj si informácie, aby si videl, co sa deje
|
377
466
|
4. **Experimentuj** - skúšaj rôzne kombinácie príkazov
|
378
467
|
5. **Pozri sa na sample** - monster.rb.sample obsahuje dobrý príklad
|
468
|
+
6. **Vypíš si error_message** - všetky akcie(equip_item, unequip_item, craft, research, scrap, consume_item, storage_tranfser) vracajú string error_message
|
379
469
|
|
380
|
-
Veľa zábavy s programovaním svojej príšerky! 🚀
|
470
|
+
Veľa zábavy s programovaním svojej príšerky! 🚀
|
@@ -93,6 +93,22 @@ module Ledmon::Monster
|
|
93
93
|
client.storage_list(Ledmon::Empty.new).items.to_a
|
94
94
|
end
|
95
95
|
|
96
|
+
def list_trade_offers
|
97
|
+
client.list_trade_offers(Ledmon::Empty.new)
|
98
|
+
end
|
99
|
+
|
100
|
+
def create_trade_offer(remaining, inputs, outputs)
|
101
|
+
client.create_trade_offer(Ledmon::TradeOffer.new(remaining:, inputs:, outputs:)).id
|
102
|
+
end
|
103
|
+
|
104
|
+
def cancel_trade_offer(id)
|
105
|
+
client.cancel_trade_offer(Ledmon::TradeOfferId.new(id:))
|
106
|
+
end
|
107
|
+
|
108
|
+
def accept_trade_offer(id)
|
109
|
+
client.accept_trade_offer(Ledmon::TradeOfferId.new(id:))
|
110
|
+
end
|
111
|
+
|
96
112
|
def consume_item(item)
|
97
113
|
client.consume_item(Ledmon::ItemInfo.new(item:))
|
98
114
|
end
|
data/lib/ledmon/version.rb
CHANGED