damdara 0.7.0

Dragon Quest Core Module, created in Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
# ๐Ÿฐ Damdara ๐Ÿฆ€

![Rust](https://img.shields.io/badge/made%20with-Rust-red)
![crate](https://img.shields.io/crates/v/damdara.svg)
![docs](https://docs.rs/damdara/badge.svg)
![Forks](https://img.shields.io/github/forks/retrodig/damdara)
![Stars](https://img.shields.io/github/stars/retrodig/damdara)
![License](https://img.shields.io/github/license/retrodig/damdara)

<p align="center">
  <img width="450" src="https://raw.githubusercontent.com/retrodig/damdara/main/assets/images/main_logo_cmp.png">
</p>

Damdara is a logic crate for retro fantasy that can be built in Rust, while fully reproducing the "Fukkatsu no Jumon"
system of the NES version of Dragon Quest,
Damdara is a logic crate for retro-fantasy, which can be built in Rust for elements such as status generation based on
the player's name, item equipping, and battle processing.

## Table of Contents

- [Features](#features)
- [Installation](#installation)
    - [Cargo](#cargo)
    - [Brew](#brew)
- [Usage](#usage)
    - [Mode](#mode)
    - [Status Option](#status-option)
    - [Format Option](#format-option)
- [Additional Resources](#additional-resources)
- [Contributing to Damdara](#contributing-to-Damdara)
- [References](#references)
- [License](#license)
- [Author](#author)

## Features

- [x] Generate resurrection "Fukkatsu no Jumon" from parameters ๏ผˆParameters to Password๏ผ‰
- [x] Parameters generated from resurrection "Fukkatsu no Jumon" (Password to Parameters)
- [x] Calculate parameters enhanced by name
- [x] See list of monsters
- [x] Refer to any monster information
- [x] See parameter list
- [x] Refer to any parameter
- [x] See list of Item
- [x] Refer to any Item information
- [x] See list of Weapon
- [x] Refer to any Weapon information
- [x] See list of Armor
- [x] Refer to any Armor information
- [x] See list of Shield
- [x] Refer to any Shield information
- [ ] Reproduction of battle scenes
- [ ] See list of Town
- [ ] Refer to any Town information
- [ ] Refer to any World information
- [ ] See list of Message
- [ ] Explore the field
- [ ] Explore the Town

Bit configuration mapping table for password generation.

 Byte Index | Field Description                               | Bits (from MSB to LSB) 
------------|-------------------------------------------------|------------------------
 0          | Checksum (CRC-8)                                | [7:0]                  
 1          | Experience (lower 8 bits)                       | [7:0]                  
 2          | Pattern[2] (1) + Necklace (1) + Name[2] (6)     | [7], [6], [5:0]        
 3          | Item[3] + Item[2]                               | [7:4], [3:0]           
 4          | Gold (lower 8 bits)                             | [7:0]                  
 5          | Name[0] (6) + Golem (1) + Pattern[1] (1)        | [7:2], [1], [0]        
 6          | Item[7] + Item[6]                               | [7:4], [3:0]           
 7          | Pattern[0] + Dragon (1) + Name[3] (6)           | [7], [6], [5:0]        
 8          | Weapon (3) + Armor (3) + Shield (2)             | [7:5], [4:2], [1:0]    
 9          | Gold (upper 8 bits)                             | [7:0]                  
 10         | Keys + Herbs                                    | [7:4], [3:0]           
 11         | Item[5] + Item[4]                               | [7:4], [3:0]           
 12         | Experience (upper 8 bits)                       | [7:0]                  
 13         | DragonScale (1) + Name[1] (6) + WarriorRing (1) | [7], [6:1], [0]        
 14         | Item[1] + Item[0]                               | [7:4], [3:0]           

## Installation

### Cargo

```
cargo install damdara
```

**Add to project**

```
cargo add damdara
```

### Brew

```
brew tap webcyou-org/tap
brew install damdara
```

## Usage

```
cargo run <input>
```

or

```
damdara <input>
```

If input is not present, the default brave value is returned.

```
cargo run

player name: ใ‚†ใ†ใฆใ„
summary: PlayerSummary { name: "ใ‚†ใ†ใฆใ„", level: 1, hp: 15, mp: 3, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 6, max_hp: 15, max_mp: 3, attack_power: 4, defense_power: 3, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

The name can be specified by giving -n

```
cargo run -- -n ใ ใ„

player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 1, hp: 14, mp: 0, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 4, max_hp: 14, max_mp: 0, attack_power: 4, defense_power: 2, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

By granting options, you can change parameters, possess items, change equipment, and do many other things.

If you want to give 200 experience. The level is automatically reflected.

```
cargo run -- -n ใ ใ„ -e 200

player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 5, hp: 32, mp: 20, gold: 0, experience: 200 }
strength_status: StrengthStatus { level: 5, strength: 11, agility: 10, max_hp: 32, max_mp: 20, attack_power: 11, defense_power: 5, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

Furthermore, if you wish to grant 300 Gold.

```
cargo run -- -n ใ ใ„ -e 200 -g 300

player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 5, hp: 32, mp: 20, gold: 300, experience: 200 }
strength_status: StrengthStatus { level: 5, strength: 11, agility: 10, max_hp: 32, max_mp: 20, attack_power: 11, defense_power: 5, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

If you want to change the item possession, pass the corresponding item IDs separated by commas.

```
cargo run -- -n ใ ใ„ -i 2,3,4

player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 1, hp: 14, mp: 0, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 4, max_hp: 14, max_mp: 0, attack_power: 4, defense_power: 2, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
item: ["ใ›ใ„ใ™ใ„", "ใ‚ญใƒกใƒฉใฎใคใฐใ•", "ใ‚Šใ‚…ใ†ใฎใ†ใ‚ใ“", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—"]
```

The equipment is also given an ID after specifying each option.

```
cargo run -- -n ใ ใ„ -w 3 -a 5 -s 3

summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 1, hp: 14, mp: 0, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 4, max_hp: 14, max_mp: 0, attack_power: 14, defense_power: 46, weapon: "ใฉใ†ใฎใคใ‚‹ใŽ", armor: "ใฏใŒใญใฎใ‚ˆใ‚ใ„", shield: "ใฟใ‹ใŒใฟใฎใŸใฆ" }
item: ["ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—", "ใชใ—"]
```

`flags` are a group of flags that indicate whether a player has equipped a particular item or defeated a boss monster.

They can be specified collectively as a 5-digit bit string with the command line argument `--flags`.

```
cargo run -- -n ใ ใ„ --flags 01010
```

### List of CLI options

| option             | type                     | default value                 | Description                                    |
|:-------------------|:-------------------------|:------------------------------|:-----------------------------------------------|
| `-n`, `--name`     | String                   | `"ใ‚†ใ†ใฆใ„"`                      | Main character's name                          |
| `-e`, `--exp`      | u16                      | `0`                           | XP                                             |
| `-g`, `--gold`     | u16                      | `0`                           | Gold in possession                             |
| `-w`, `--weapon`   | u8                       | `0`                           | The number of the weapon you are equipped with |
| `-a`, `--armor`    | u8                       | `0`                           | The number of the armor you are equipped with  |
| `-s`, `--shield`   | u8                       | `0`                           | The number of the shield you are equipped with |
| `-i`, `--item`     | Vec<u8>(comma delimited) | not in possession             | List of item numbers                           |
| `-y`, `--herbs`    | u8                       | `0`                           | Number of herbs held                           |
| `-k`, `--keys`     | u8                       | `0`                           | Number of keys held                            |
| `--flags`          | Flags structure          | All false                     | status flag                                    |
| `-p`, `--password` | String                   | Maximum Strengthened Password | Fukkatsu no Jumon                              |

### Flags option details๏ผˆ--flags๏ผ‰

| digit position | bit | Field Name          | Description                             |
|:--------------:|:---:|:--------------------|:----------------------------------------|
|   1st digit    | 0/1 | has_dragon_scale    | Equipped with the scales of a dragon?   |
|   2st digit    | 0/1 | has_warrior_ring    | Are you equipped with a warrior's ring? |
|   3st digit    | 0/1 | has_cursed_necklace | Did you get the beak necklace?          |
|   4st digit    | 0/1 | defeated_dragon     | You slayed the dragon.                  |
|   5st digit    | 0/1 | defeated_golem      | You beat the golem.                     |

- Specify with **5 digits 0/1** like `--flags 01000`.
- If not specified, default `โ€œ00000โ€` (all false)

### Mode

You can specify the mode by giving `--mode` or the shortcut `-m`.

```
cargo run -- --mode <input>
cargo run -- -m <input>
```

 Mode Name | Description                                                                   
-----------|-------------------------------------------------------------------------------|
 start     | Calculate enhanced parameters from name only                                  |                  
 save      | Generate "Fukkatsu no Jumon" from arbitrary parameters (e.g. exp, gold, etc.) |                  
 load      | Restore name/parameters from the "Fukkatsu no Jumon"                          |
 display   | Supports list and individual display of master data                           |

**โ–  Start Mode**

Generate parameters from the names of brave men

**example**

```
player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 1, hp: 14, mp: 0, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 4, max_hp: 14, max_mp: 0, attack_power: 4, defense_power: 2, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

The default setting of the mode is here, so if you omit it, the default brave will be generated

**example**

```
cargo run

player name: ใ‚†ใ†ใฆใ„
summary: PlayerSummary { name: "ใ‚†ใ†ใฆใ„", level: 1, hp: 15, mp: 3, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 6, max_hp: 15, max_mp: 3, attack_power: 4, defense_power: 3, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

**โ–  Save Mode**

Generates the "Fukkatsu no Jumon" from the parameters of the hero.

<img width="400" src="https://raw.githubusercontent.com/retrodig/damdara/main/assets/images/fukkatsu_no_jumon.png">

**example**

```
cargo run -- -n ใ ใ„ -m save

ใขใฐใ’ใžใงใถใ„ใพใ‚‚ใ‚‚ใ‚ŒใŽใ–ใžใงใถใ„ใ‚ˆใ”ใœ
```

After giving the options explained above and changing the parameters, the Fufutsu no Jumon can be generated.

```
cargo run -- -n ใ ใ„ -e 7000 -m save

ใใŒใ‚ˆใ‚ใ’ใšใขใชใฎใฎใฟใ‚„ใ‚Šใ‚ใ’ใšใฆใ ใ„ใ‹
```

**โ–  Load Mode**

Generates a brave man from the "Fukkatsu no Jumon" of fortune.

**example**

```
cargo run -- -m load -p ใขใฐใ’ใžใงใถใ„ใพใ‚‚ใ‚‚ใ‚ŒใŽใ–ใžใงใถใ„ใ‚ˆใ”ใœ

new_player from Password
player name: ใŸใ‚›ใ„
summary: PlayerSummary { name: "ใŸใ‚›ใ„\u{3000}", level: 1, hp: 14, mp: 0, gold: 0, experience: 0 }
strength_status: StrengthStatus { level: 1, strength: 4, agility: 4, max_hp: 14, max_mp: 0, attack_power: 4, defense_power: 2, weapon: "ใชใ—", armor: "ใชใ—", shield: "ใชใ—" }
```

**โ–  Display Mode**

```
cargo run -- -m display --view item
[Equipment { name: "ใชใ—", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใŸใ„ใพใค", price: 8, sell: 4, attack: 0, defense: 0 }, Equipment { name: "ใ›ใ„ใ™ใ„", price: 12, sell: 6, attack: 0, defense: 0 }, Equipment { name: "ใ‚ญใƒกใƒฉใฎใคใฐใ•", price: 24, sell: 12, attack: 0, defense: 0 }, Equipment { name: "ใ‚Šใ‚…ใ†ใฎใ†ใ‚ใ“", price: 20, sell: 10, attack: 0, defense: 2 }, Equipment { name: "ใ‚ˆใ†ใ›ใ„ใฎใตใˆ", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใ›ใ‚“ใ—ใฎใ‚†ใณใ‚", price: 0, sell: 0, attack: 2, defense: 0 }, Equipment { name: "ใƒญใƒˆใฎใ—ใ‚‹ใ—", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใŠใ†ใ˜ใ‚‡ใฎใ‚ใ„", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใฎใ‚ใ„ใฎใƒ™ใƒซใƒˆ", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใŽใ‚“ใฎใŸใฆใ”ใจ", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใ—ใฎใใณใ‹ใ–ใ‚Š", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใŸใ„ใ‚ˆใ†ใฎใ„ใ—", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใ‚ใพใใ‚‚ใฎใคใˆ", price: 0, sell: 0, attack: 0, defense: 0 }, Equipment { name: "ใซใ˜ใฎใ—ใšใ", price: 0, sell: 0, attack: 0, defense: 0 }]
```

```
cargo run -- -m display --view item 5
item: Equipment { name: "ใ‚ˆใ†ใ›ใ„ใฎใตใˆ", price: 0, sell: 0, attack: 0, defense: 0 }
```

**Display Patterns**

- item
- weapon
- armor
- shield
- status
- monster
- town
- message

**โ–  Battle Mode**

Now, if you have given birth to a brave man, let's head into battle.

Enter commands and defeat the slime!

```
cargo run -- -m battle

ใ‚นใƒฉใ‚คใƒ ใŒใ‚ใ‚‰ใ‚ใ‚ŒใŸ๏ผ

ใ‚†ใ†ใฆใ„ HP: 15
ใ‚นใƒฉใ‚คใƒ  HP: 3

--- ใ‚†ใ†ใฆใ„ใฎใ‚ฟใƒผใƒณ ---
ใ‚ณใƒžใƒณใƒ‰๏ผŸ
1: ใŸใŸใ‹ใ†
2: ใ˜ใ‚…ใ‚‚ใ‚“
3: ใฉใ†ใ
4: ใซใ’ใ‚‹
```

If you've been hit, then take on the challenge with the best equipment!

```
cargo run -- -n ใ ใ„ -o max -m battle

ใ‚นใƒฉใ‚คใƒ ใŒใ‚ใ‚‰ใ‚ใ‚ŒใŸ๏ผ

ใŸใ‚›ใ„ใ€€ HP: 190
ใ‚นใƒฉใ‚คใƒ  HP: 3

--- ใŸใ‚›ใ„ใ€€ใฎใ‚ฟใƒผใƒณ ---
ใ‚ณใƒžใƒณใƒ‰๏ผŸ
1: ใŸใŸใ‹ใ†
2: ใ˜ใ‚…ใ‚‚ใ‚“
3: ใฉใ†ใ
4: ใซใ’ใ‚‹
```

You can fight any monster by specifying the id of the enemy in the `--view` option.

You can fight the last boss right away.

```
cargo run -- -n ใ ใ„ -o max -m battle --view 39

ใ‚Šใ‚…ใ†ใŠใ†ใŒใ‚ใ‚‰ใ‚ใ‚ŒใŸ๏ผ

ใŸใ‚›ใ„ใ€€ HP: 190
ใ‚Šใ‚…ใ†ใŠใ† HP: 129

--- ใŸใ‚›ใ„ใ€€ใฎใ‚ฟใƒผใƒณ ---
ใ‚ณใƒžใƒณใƒ‰๏ผŸ
1: ใŸใŸใ‹ใ†
2: ใ˜ใ‚…ใ‚‚ใ‚“
3: ใฉใ†ใ
4: ใซใ’ใ‚‹
```

Beware of strong flames.

```
 ใ‚Šใ‚…ใ†ใŠใ†ใฏ  ใปใฎใŠใ‚’ใฏใ„ใŸ!
 ใŸใ‚›ใ„ใ€€ใฏ 44ใƒใ‚คใƒณใƒˆใฎ
 ใƒ€ใƒกใƒผใ‚ธใ‚’ ใ†ใ‘ใŸ

ใŸใ‚›ใ„ใ€€ HP: 146
ใ‚Šใ‚…ใ†ใŠใ† HP: 129
```

### Status Option

`--option` or the shortcut `-o` can be used to specify status options

```
cargo run -- -o <input>
```

If max is specified, the parameter and story state will be the strongest

<img width="400" src="https://raw.githubusercontent.com/retrodig/damdara/main/assets/images/strongest_parameters.png">

**example**

```
cargo run -- -o max
player name: ใ‚†ใ†ใฆใ„
summary: PlayerSummary { name: "ใ‚†ใ†ใฆใ„", level: 30, hp: 15, mp: 3, gold: 65535, experience: 65535 }
strength_status: StrengthStatus { level: 30, strength: 140, agility: 120, max_hp: 210, max_mp: 183, attack_power: 182, defense_power: 110, weapon: "ใƒญใƒˆใฎใคใ‚‹ใŽ", armor: "ใƒญใƒˆใฎใ‚ˆใ‚ใ„", shield: "ใฟใ‹ใŒใฟใฎใŸใฆ" }
```

### Format Option

The output format can be changed by giving the `--format`.

```
cargo run -- --format <input>
```

 Format Name | Description                                                       
-------------|-------------------------------------------------------------------|
 print       | It will be a print statement output. This is the default setting. |                  
 json        | Output in JSON format                                             |          

### Example

## Additional Resources

## Contributing to Damdara

To contribute to **Damdara**, follow these steps:

1. Fork this repository.
2. Create a branch: `git checkout -b <branch_name>`.
3. Make your changes and commit them: `git commit -m '<commit_message>'`.
4. Push your changes to your branch: `git push origin <branch_name>`.
5. Create a pull request.

Alternatively, consult
the [GitHub documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) on how to create a
pull request.

## References

- [ๅๅ‰ใซใ‚ˆใ‚‹ๆˆ้•ท็އใ‚ฟใ‚คใƒ—ใฎๅค‰ๅŒ–](https://way78.com/dq1/fc/name.html)
- [DQ1ใฎใ€Œใตใฃใ‹ใคใฎใ˜ใ‚…ใ‚‚ใ‚“ใ€ใฎไป•็ต„ใฟใ‚’ๅ…จ่งฃ่ชฌ](https://qiita.com/musemyuzu/items/eb08f7790df356434e0f?utm_source=pocket_shared)
- [ๅพฉๆดปใฎๅ‘ชๆ–‡ใ‚’่งฃๆžใ—ใฆใฟใŸใ‚ˆ](https://qiita.com/yoshi389111/items/29ade2f62483e9c095d9)
- [ใตใฃใ‹ใคใฎใ˜ใ‚…ใ‚‚ใ‚“ใฃใฆไฝ•๏ผŸๅŸบๆœฌใฎไฝฟใ„ๆ–นใ‹ใ‚‰ไป•็ต„ใฟใƒปๅŽŸ็†ใพใงใ€ๅ‹•็”ปไธ€ๆœฌใงๅ…จใฆใ‚ใ‹ใ‚‹๏ผใ€FCใ€‘ใ€ใ‚†ใฃใใ‚Š่งฃ่ชฌใ€‘](https://youtu.be/a15mmjJqQKo?si=zJ2SahsbcKoeZSSP)
- [ใƒ‰ใƒฉใ‚ดใƒณใ‚ฏใ‚จใ‚นใƒˆ ๆ”ป็•ฅใƒป่งฃๆž](https://gcgx.games/dq1/)
- [ใƒ‰ใƒฉใ‚ดใƒณใ‚ฏใ‚จใ‚นใƒˆ (FC) ๅพฉๆดปใฎๅ‘ชๆ–‡่จˆ็ฎ—ๆฉŸ](https://taotao54321.github.io/DQ1PasswordCalc/)
- [ไธปไบบๅ…ฌใฎๅๅ‰ใจ่ƒฝๅŠ›ๆˆ้•ทใฎๅŸบ็คŽ FCDQ1](https://dqff.sakura.ne.jp/dq1fc/data/lvup-name.html)
- [DQ1(FC็‰ˆ)ๅผทใ•ๅˆคๆ–ญใƒ—ใƒญใ‚ฐใƒฉใƒ ](https://sutton-kyouwa.com/cgi-bin/dq1.cgi)

## License

This project is licensed under the MIT License. See the [LICENSE](/LICENSE) file for details.

All monsters, images and other copyrights belong to Square Enix.

## Author

**Daisuke Takayama**

- [@webcyou](https://twitter.com/webcyou)
- [@panicdragon](https://twitter.com/panicdragon)
- <https://github.com/webcyou>
- <https://github.com/webcyou-org>
- <https://github.com/panicdragon>
- <https://www.webcyou.com/>