Browse Source

Merge pull request 'ep2+4+offline' (#190) from ep24 into master

pbs
jake 4 years ago
parent
commit
9a0be2eb57
  1. 648
      data/battle_param/ep2_multi_hard.toml
  2. 648
      data/battle_param/ep2_multi_normal.toml
  3. 648
      data/battle_param/ep2_multi_ultimate.toml
  4. 648
      data/battle_param/ep2_multi_veryhard.toml
  5. 648
      data/battle_param/ep2_solo_hard.toml
  6. 648
      data/battle_param/ep2_solo_normal.toml
  7. 648
      data/battle_param/ep2_solo_ultimate.toml
  8. 648
      data/battle_param/ep2_solo_veryhard.toml
  9. 296
      data/battle_param/ep4_multi_hard.toml
  10. 296
      data/battle_param/ep4_multi_normal.toml
  11. 296
      data/battle_param/ep4_multi_ultimate.toml
  12. 296
      data/battle_param/ep4_multi_veryhard.toml
  13. 296
      data/battle_param/ep4_solo_hard.toml
  14. 296
      data/battle_param/ep4_solo_normal.toml
  15. 296
      data/battle_param/ep4_solo_ultimate.toml
  16. 296
      data/battle_param/ep4_solo_veryhard.toml
  17. 5
      data/quests.toml
  18. 80
      src/bin/main.rs
  19. 862
      src/ship/map.rs
  20. 115
      src/ship/monster.rs
  21. 2
      src/ship/room.rs

648
data/battle_param/ep2_multi_hard.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 467
mst = 0
evp = 108
hp = 200
dfp = 100
ata = 168
lck = 35
esp = 15
exp = 37
[Monest]
atp = 0
mst = 0
evp = 45
hp = 1130
dfp = 100
ata = 70
lck = 15
esp = 15
exp = 45
[SavageWolf]
atp = 605
mst = 0
evp = 249
hp = 874
dfp = 174
ata = 239
lck = 26
esp = 20
exp = 52
[BarbarousWolf]
atp = 688
mst = 0
evp = 293
hp = 997
dfp = 193
ata = 239
lck = 30
esp = 20
exp = 55
[PoisonLily]
atp = 494
mst = 0
evp = 170
hp = 652
dfp = 150
ata = 187
lck = 20
esp = 20
exp = 52
[NarLily]
atp = 663
mst = 0
evp = 233
hp = 754
dfp = 161
ata = 213
lck = 35
esp = 20
exp = 283
[SinowBerill]
atp = 715
mst = 0
evp = 133
hp = 1846
dfp = 288
ata = 184
lck = 25
esp = 35
exp = 66
[Gee]
atp = 580
mst = 0
evp = 264
hp = 783
dfp = 134
ata = 278
lck = 20
esp = 15
exp = 52
[ChaosSorcerer]
atp = 586
mst = 260
evp = 264
hp = 1101
dfp = 168
ata = 207
lck = 15
esp = 32
exp = 63
[BeeR]
atp = 512
mst = 0
evp = 131
hp = 764
dfp = 120
ata = 148
lck = 15
esp = 100
exp = 38
[BeeL]
atp = 512
mst = 0
evp = 131
hp = 765
dfp = 120
ata = 148
lck = 15
esp = 100
exp = 38
[Delbiter]
atp = 1444
mst = 0
evp = 295
hp = 3779
dfp = 350
ata = 272
lck = 20
esp = 60
exp = 101
[DarkBelra]
atp = 755
mst = 0
evp = 145
hp = 1239
dfp = 204
ata = 187
lck = 23
esp = 42
exp = 60
[BarbaRay]
atp = 720
mst = 10
evp = 80
hp = 6900
dfp = 100
ata = 160
lck = 10
esp = 100
exp = 3200
[PigRay]
atp = 700
mst = 10
evp = 120
hp = 3601
dfp = 72
ata = 210
lck = 0
esp = 100
exp = 25
[GolDragon]
atp = 900
mst = 10
evp = 120
hp = 11500
dfp = 150
ata = 175
lck = 5
esp = 100
exp = 3900
[SinowSpigell]
atp = 715
mst = 0
evp = 133
hp = 1847
dfp = 288
ata = 184
lck = 25
esp = 35
exp = 66
[RagRappy]
atp = 474
mst = 0
evp = 170
hp = 627
dfp = 120
ata = 161
lck = 30
esp = 15
exp = 42
[EventRappy]
atp = 566
mst = 0
evp = 233
hp = 703
dfp = 250
ata = 200
lck = 92
esp = 15
exp = 512
[GiGue]
atp = 964
mst = 0
evp = 195
hp = 2275
dfp = 343
ata = 265
lck = 20
esp = 100
exp = 119
[Dubchic]
atp = 600
mst = 0
evp = 156
hp = 699
dfp = 168
ata = 200
lck = 20
esp = 20
exp = 10
[Gillchic]
atp = 542
mst = 0
evp = 164
hp = 768
dfp = 163
ata = 213
lck = 23
esp = 20
exp = 53
[Garanz]
atp = 715
mst = 0
evp = 133
hp = 1848
dfp = 288
ata = 184
lck = 25
esp = 35
exp = 66
[GalGryphon]
atp = 960
mst = 0
evp = 160
hp = 13600
dfp = 180
ata = 330
lck = 15
esp = 100
exp = 4500
[Epsilon]
atp = 1322
mst = 660
evp = 195
hp = 4690
dfp = 775
ata = 330
lck = 20
esp = 100
exp = 259
[Epsiguard]
atp = 553
mst = 0
evp = 233
hp = 1240
dfp = 363
ata = 304
lck = 65
esp = 100
exp = 0
[DelLily]
atp = 1147
mst = 178
evp = 260
hp = 2234
dfp = 411
ata = 330
lck = 25
esp = 30
exp = 116
[IllGill]
atp = 1835
mst = 140
evp = 358
hp = 1654
dfp = 554
ata = 317
lck = 15
esp = 35
exp = 109
[OlgaFlow1]
atp = 1500
mst = 0
evp = 210
hp = 9800
dfp = 270
ata = 450
lck = 25
esp = 100
exp = 0
[OlgaFlow2]
atp = 1770
mst = 0
evp = 180
hp = 12000
dfp = 390
ata = 380
lck = 75
esp = 100
exp = 7700
[Gael]
atp = 0
mst = 0
evp = 10
hp = 180
dfp = 129
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 125
hp = 900
dfp = 180
ata = 0
lck = 75
esp = 100
exp = 0
[Deldepth]
atp = 593
mst = 0
evp = 636
hp = 1102
dfp = 201
ata = 304
lck = 20
esp = 20
exp = 83
[PanArms]
atp = 443
mst = 0
evp = 133
hp = 1475
dfp = 141
ata = 226
lck = 20
esp = 20
exp = 47
[Hidoom]
atp = 752
mst = 0
evp = 233
hp = 1241
dfp = 262
ata = 265
lck = 20
esp = 20
exp = 47
[Migium]
atp = 740
mst = 0
evp = 208
hp = 1242
dfp = 234
ata = 265
lck = 45
esp = 20
exp = 48
[Mericarol]
atp = 998
mst = 0
evp = 133
hp = 2385
dfp = 315
ata = 194
lck = 20
esp = 100
exp = 113
[UlGibbon]
atp = 708
mst = 112
evp = 319
hp = 930
dfp = 150
ata = 239
lck = 23
esp = 20
exp = 55
[ZolGibbon]
atp = 823
mst = 176
evp = 335
hp = 1281
dfp = 250
ata = 265
lck = 25
esp = 20
exp = 60
[Gibbles]
atp = 1385
mst = 0
evp = 195
hp = 3282
dfp = 231
ata = 246
lck = 25
esp = 100
exp = 121
[Morfos]
atp = 944
mst = 0
evp = 195
hp = 1372
dfp = 627
ata = 304
lck = 30
esp = 35
exp = 85
[Recobox]
atp = 0
mst = 0
evp = 45
hp = 1655
dfp = 330
ata = 70
lck = 42
esp = 15
exp = 55
[Recon]
atp = 759
mst = 0
evp = 170
hp = 771
dfp = 222
ata = 214
lck = 60
esp = 15
exp = 45
[SinowZoa]
atp = 1012
mst = 176
evp = 348
hp = 1464
dfp = 266
ata = 272
lck = 35
esp = 30
exp = 88
[SinowZele]
atp = 1094
mst = 250
evp = 239
hp = 1716
dfp = 331
ata = 295
lck = 40
esp = 35
exp = 101
[Merikle]
atp = 836
mst = 0
evp = 339
hp = 1937
dfp = 224
ata = 194
lck = 20
esp = 100
exp = 118
[Mericus]
atp = 1093
mst = 0
evp = 170
hp = 2965
dfp = 370
ata = 291
lck = 20
esp = 100
exp = 126
[Dubwitch]
atp = 160
mst = 0
evp = 25
hp = 151
dfp = 30
ata = 120
lck = 10
esp = 0
exp = 5
[Hildebear]
atp = 634
mst = 0
evp = 139
hp = 1023
dfp = 153
ata = 174
lck = 25
esp = 35
exp = 52
[Hildeblue]
atp = 715
mst = 0
evp = 233
hp = 1331
dfp = 100
ata = 200
lck = 25
esp = 35
exp = 200
[Merillia]
atp = 638
mst = 0
evp = 151
hp = 812
dfp = 188
ata = 191
lck = 23
esp = 7
exp = 53
[Meriltas]
atp = 754
mst = 0
evp = 158
hp = 1090
dfp = 242
ata = 200
lck = 23
esp = 10
exp = 56
[GrassAssassin]
atp = 611
mst = 0
evp = 151
hp = 840
dfp = 157
ata = 184
lck = 25
esp = 35
exp = 55
[Dolmolm]
atp = 895
mst = 0
evp = 210
hp = 1040
dfp = 235
ata = 212
lck = 23
esp = 7
exp = 65
[Dolmdarl]
atp = 958
mst = 0
evp = 215
hp = 1088
dfp = 262
ata = 239
lck = 23
esp = 10
exp = 70
[Delsaber]
atp = 874
mst = 0
evp = 308
hp = 1212
dfp = 209
ata = 233
lck = 35
esp = 27
exp = 60
[Dimenian]
atp = 505
mst = 0
evp = 176
hp = 684
dfp = 120
ata = 155
lck = 23
esp = 15
exp = 45
[LaDimenian]
atp = 512
mst = 0
evp = 193
hp = 718
dfp = 139
ata = 161
lck = 23
esp = 16
exp = 47
[SoDimenian]
atp = 532
mst = 0
evp = 204
hp = 751
dfp = 149
ata = 174
lck = 25
esp = 22
exp = 48

648
data/battle_param/ep2_multi_normal.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 87
mst = 0
evp = 50
hp = 8
dfp = 0
ata = 75
lck = 20
esp = 0
exp = 1
[Monest]
atp = 0
mst = 0
evp = 0
hp = 420
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 6
[SavageWolf]
atp = 189
mst = 0
evp = 163
hp = 235
dfp = 55
ata = 130
lck = 11
esp = 11
exp = 10
[BarbarousWolf]
atp = 250
mst = 0
evp = 198
hp = 324
dfp = 69
ata = 130
lck = 15
esp = 15
exp = 12
[PoisonLily]
atp = 107
mst = 0
evp = 100
hp = 74
dfp = 37
ata = 90
lck = 5
esp = 5
exp = 10
[NarLily]
atp = 232
mst = 0
evp = 150
hp = 148
dfp = 45
ata = 110
lck = 20
esp = 5
exp = 150
[SinowBerill]
atp = 321
mst = 67
evp = 222
hp = 424
dfp = 97
ata = 142
lck = 10
esp = 15
exp = 19
[Gee]
atp = 170
mst = 0
evp = 175
hp = 169
dfp = 25
ata = 160
lck = 5
esp = 5
exp = 10
[ChaosSorcerer]
atp = 175
mst = 130
evp = 175
hp = 399
dfp = 50
ata = 105
lck = 0
esp = 20
exp = 17
[BeeR]
atp = 120
mst = 0
evp = 69
hp = 155
dfp = 15
ata = 60
lck = 0
esp = 100
exp = 2
[BeeL]
atp = 120
mst = 0
evp = 69
hp = 156
dfp = 15
ata = 60
lck = 0
esp = 100
exp = 2
[Delbiter]
atp = 810
mst = 0
evp = 200
hp = 2340
dfp = 185
ata = 155
lck = 5
esp = 45
exp = 40
[DarkBelra]
atp = 300
mst = 0
evp = 80
hp = 499
dfp = 77
ata = 90
lck = 8
esp = 18
exp = 15
[BarbaRay]
atp = 190
mst = 10
evp = 0
hp = 3600
dfp = 0
ata = 150
lck = 5
esp = 100
exp = 480
[PigRay]
atp = 265
mst = 10
evp = 90
hp = 1250
dfp = 40
ata = 150
lck = 0
esp = 100
exp = 10
[GolDragon]
atp = 300
mst = 10
evp = 90
hp = 7500
dfp = 75
ata = 175
lck = 5
esp = 100
exp = 950
[SinowSpigell]
atp = 420
mst = 92
evp = 250
hp = 555
dfp = 144
ata = 139
lck = 0
esp = 20
exp = 21
[RagRappy]
atp = 92
mst = 0
evp = 100
hp = 56
dfp = 15
ata = 70
lck = 15
esp = 15
exp = 4
[EventRappy]
atp = 160
mst = 0
evp = 150
hp = 111
dfp = 111
ata = 100
lck = 77
esp = 55
exp = 256
[GiGue]
atp = 455
mst = 0
evp = 120
hp = 1251
dfp = 180
ata = 150
lck = 5
esp = 100
exp = 51
[Dubchic]
atp = 185
mst = 0
evp = 89
hp = 108
dfp = 50
ata = 100
lck = 5
esp = 5
exp = 2
[Gillchic]
atp = 142
mst = 0
evp = 95
hp = 158
dfp = 47
ata = 110
lck = 8
esp = 5
exp = 11
[Garanz]
atp = 270
mst = 0
evp = 70
hp = 939
dfp = 139
ata = 88
lck = 10
esp = 20
exp = 19
[GalGryphon]
atp = 500
mst = 0
evp = 120
hp = 9000
dfp = 100
ata = 250
lck = 5
esp = 100
exp = 1500
[Epsilon]
atp = 720
mst = 330
evp = 120
hp = 3000
dfp = 500
ata = 200
lck = 5
esp = 90
exp = 136
[Epsiguard]
atp = 150
mst = 0
evp = 150
hp = 500
dfp = 195
ata = 180
lck = 50
esp = 50
exp = 0
[DelLily]
atp = 590
mst = 89
evp = 172
hp = 1220
dfp = 230
ata = 200
lck = 10
esp = 19
exp = 49
[IllGill]
atp = 1100
mst = 70
evp = 250
hp = 800
dfp = 336
ata = 190
lck = 0
esp = 42
exp = 45
[OlgaFlow1]
atp = 979
mst = 0
evp = 150
hp = 7700
dfp = 225
ata = 300
lck = 25
esp = 100
exp = 0
[OlgaFlow]
atp = 1100
mst = 0
evp = 120
hp = 8500
dfp = 270
ata = 270
lck = 75
esp = 100
exp = 3300
[Gael]
atp = 0
mst = 0
evp = 10
hp = 150
dfp = 80
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 100
hp = 750
dfp = 120
ata = 0
lck = 75
esp = 100
exp = 0
[Deldepth]
atp = 180
mst = 0
evp = 473
hp = 400
dfp = 75
ata = 180
lck = 5
esp = 5
exp = 29
[PanArms]
atp = 69
mst = 0
evp = 70
hp = 670
dfp = 30
ata = 120
lck = 5
esp = 5
exp = 12
[Hidoom]
atp = 298
mst = 0
evp = 150
hp = 501
dfp = 120
ata = 150
lck = 5
esp = 30
exp = 7
[Migium]
atp = 289
mst = 0
evp = 130
hp = 502
dfp = 99
ata = 150
lck = 30
esp = 5
exp = 8
[Mericarol]
atp = 480
mst = 0
evp = 70
hp = 1330
dfp = 159
ata = 95
lck = 5
esp = 100
exp = 47
[UlGibbon]
atp = 265
mst = 56
evp = 219
hp = 275
dfp = 37
ata = 130
lck = 8
esp = 5
exp = 12
[ZolGibbon]
atp = 350
mst = 88
evp = 232
hp = 530
dfp = 111
ata = 150
lck = 10
esp = 10
exp = 15
[Gibbles]
atp = 767
mst = 0
evp = 120
hp = 1980
dfp = 97
ata = 135
lck = 10
esp = 100
exp = 52
[Morfos]
atp = 440
mst = 0
evp = 120
hp = 596
dfp = 390
ata = 180
lck = 15
esp = 15
exp = 30
[Recobox]
atp = 0
mst = 0
evp = 0
hp = 801
dfp = 170
ata = 0
lck = 27
esp = 0
exp = 12
[Recon]
atp = 303
mst = 0
evp = 100
hp = 161
dfp = 90
ata = 111
lck = 45
esp = 0
exp = 4
[SinowZoa]
atp = 490
mst = 88
evp = 242
hp = 662
dfp = 123
ata = 155
lck = 20
esp = 25
exp = 32
[SinowZele]
atp = 551
mst = 125
evp = 155
hp = 845
dfp = 171
ata = 173
lck = 25
esp = 20
exp = 40
[Merikle]
atp = 360
mst = 0
evp = 235
hp = 1005
dfp = 92
ata = 95
lck = 5
esp = 100
exp = 50
[Mericus]
atp = 550
mst = 0
evp = 100
hp = 1750
dfp = 200
ata = 170
lck = 5
esp = 100
exp = 55
[Dubwitch]
atp = 0
mst = 0
evp = 0
hp = 0
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 0
[Hildebear]
atp = 210
mst = 0
evp = 75
hp = 343
dfp = 39
ata = 80
lck = 10
esp = 15
exp = 10
[Hildeblue]
atp = 270
mst = 0
evp = 150
hp = 565
dfp = 0
ata = 100
lck = 10
esp = 20
exp = 100
[Merillia]
atp = 213
mst = 0
evp = 85
hp = 190
dfp = 65
ata = 93
lck = 8
esp = 5
exp = 11
[Meriltas]
atp = 299
mst = 0
evp = 90
hp = 391
dfp = 105
ata = 100
lck = 8
esp = 5
exp = 13
[GrassAssassin]
atp = 193
mst = 0
evp = 85
hp = 211
dfp = 42
ata = 88
lck = 10
esp = 10
exp = 12
[Dolmolm]
atp = 404
mst = 0
evp = 132
hp = 355
dfp = 100
ata = 109
lck = 8
esp = 15
exp = 18
[Dolmdarl]
atp = 450
mst = 0
evp = 136
hp = 390
dfp = 120
ata = 130
lck = 8
esp = 24
exp = 21
[Delsaber]
atp = 388
mst = 0
evp = 210
hp = 480
dfp = 81
ata = 125
lck = 10
esp = 15
exp = 15
[Dimenian]
atp = 115
mst = 0
evp = 105
hp = 97
dfp = 15
ata = 65
lck = 8
esp = 10
exp = 6
[LaDimenian]
atp = 120
mst = 0
evp = 118
hp = 122
dfp = 29
ata = 70
lck = 8
esp = 10
exp = 7
[SoDimenian]
atp = 135
mst = 0
evp = 127
hp = 145
dfp = 36
ata = 80
lck = 10
esp = 10
exp = 8

648
data/battle_param/ep2_multi_ultimate.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 1511
mst = 0
evp = 440
hp = 1000
dfp = 500
ata = 275
lck = 70
esp = 30
exp = 150
[Monest]
atp = 0
mst = 0
evp = 300
hp = 3134
dfp = 500
ata = 200
lck = 50
esp = 30
exp = 306
[SavageWolf]
atp = 1817
mst = 0
evp = 756
hp = 2635
dfp = 641
ata = 330
lck = 61
esp = 30
exp = 330
[BarbarousWolf]
atp = 2000
mst = 0
evp = 854
hp = 2875
dfp = 677
ata = 330
lck = 65
esp = 35
exp = 342
[PoisonLily]
atp = 1571
mst = 1200
evp = 580
hp = 2200
dfp = 595
ata = 290
lck = 55
esp = 35
exp = 330
[NarLily]
atp = 1946
mst = 2500
evp = 720
hp = 2400
dfp = 615
ata = 310
lck = 70
esp = 35
exp = 1170
[SinowBerill]
atp = 2414
mst = 0
evp = 888
hp = 3296
dfp = 707
ata = 325
lck = 70
esp = 40
exp = 360
[Gee]
atp = 1760
mst = 0
evp = 790
hp = 2456
dfp = 564
ata = 360
lck = 55
esp = 25
exp = 330
[ChaosSorcerer]
atp = 1775
mst = 3250
evp = 790
hp = 3077
dfp = 628
ata = 305
lck = 50
esp = 45
exp = 372
[BeeR]
atp = 1610
mst = 0
evp = 493
hp = 2419
dfp = 538
ata = 260
lck = 50
esp = 100
exp = 100
[BeeL]
atp = 1610
mst = 0
evp = 493
hp = 2420
dfp = 538
ata = 260
lck = 50
esp = 100
exp = 100
[Delbiter]
atp = 3680
mst = 0
evp = 860
hp = 8318
dfp = 974
ata = 355
lck = 55
esp = 90
exp = 510
[DarkBelra]
atp = 2150
mst = 0
evp = 524
hp = 3347
dfp = 697
ata = 290
lck = 58
esp = 55
exp = 360
[BarbaRay]
atp = 2100
mst = 10
evp = 356
hp = 15000
dfp = 590
ata = 320
lck = 5
esp = 100
exp = 18000
[PigRay]
atp = 2100
mst = 10
evp = 495
hp = 7701
dfp = 420
ata = 320
lck = 0
esp = 1000
exp = 60
[GolDragon]
atp = 2500
mst = 10
evp = 120
hp = 24500
dfp = 690
ata = 280
lck = 5
esp = 100
exp = 21000
[SinowSpigell]
atp = 2060
mst = 0
evp = 496
hp = 4535
dfp = 856
ata = 288
lck = 60
esp = 50
exp = 384
[RagRappy]
atp = 1526
mst = 0
evp = 580
hp = 2151
dfp = 538
ata = 270
lck = 65
esp = 30
exp = 294
[EventRappy]
atp = 1730
mst = 0
evp = 720
hp = 2300
dfp = 784
ata = 300
lck = 100
esp = 100
exp = 1024
[GiGue]
atp = 2615
mst = 0
evp = 636
hp = 5375
dfp = 961
ata = 350
lck = 55
esp = 100
exp = 576
[Dubchic]
atp = 1805
mst = 0
evp = 549
hp = 2292
dfp = 628
ata = 300
lck = 55
esp = 35
exp = 50
[Gillchic]
atp = 1676
mst = 0
evp = 566
hp = 2427
dfp = 620
ata = 310
lck = 58
esp = 35
exp = 336
[Garanz]
atp = 2060
mst = 0
evp = 496
hp = 4536
dfp = 856
ata = 288
lck = 60
esp = 50
exp = 384
[GalGryphon]
atp = 2665
mst = 0
evp = 530
hp = 30000
dfp = 725
ata = 360
lck = 5
esp = 100
exp = 24700
[Epsilon]
atp = 2163
mst = 8250
evp = 636
hp = 10100
dfp = 1780
ata = 400
lck = 55
esp = 100
exp = 1086
[Epsiguard]
atp = 1700
mst = 500
evp = 720
hp = 6644
dfp = 999
ata = 380
lck = 100
esp = 100
exp = 0
[DelLily]
atp = 3020
mst = 2225
evp = 782
hp = 5294
dfp = 1089
ata = 400
lck = 60
esp = 45
exp = 564
[IllGill]
atp = 4550
mst = 1750
evp = 1000
hp = 4160
dfp = 1360
ata = 390
lck = 50
esp = 50
exp = 540
[OlgaFlow1]
atp = 3230
mst = 0
evp = 780
hp = 23000
dfp = 890
ata = 643
lck = 25
esp = 100
exp = 0
[OlgaFlow2]
atp = 4200
mst = 0
evp = 690
hp = 27000
dfp = 1000
ata = 555
lck = 75
esp = 100
exp = 47500
[Gael]
atp = 0
mst = 0
evp = 10
hp = 490
dfp = 180
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 270
hp = 1890
dfp = 1200
ata = 0
lck = 90
esp = 100
exp = 0
[Deldepth]
atp = 1790
mst = 0
evp = 1200
hp = 2180
dfp = 692
ata = 380
lck = 55
esp = 35
exp = 444
[PanArms]
atp = 2144
mst = 0
evp = 720
hp = 3350
dfp = 807
ata = 350
lck = 55
esp = 40
exp = 312
[Hidoom]
atp = 2144
mst = 0
evp = 720
hp = 3351
dfp = 807
ata = 350
lck = 55
esp = 40
exp = 312
[Migium]
atp = 2117
mst = 0
evp = 664
hp = 3352
dfp = 753
ata = 350
lck = 80
esp = 35
exp = 318
[Mericarol]
atp = 2147
mst = 0
evp = 552
hp = 3056
dfp = 769
ata = 300
lck = 58
esp = 20
exp = 552
[UlGibbon]
atp = 2045
mst = 1400
evp = 913
hp = 2743
dfp = 595
ata = 330
lck = 58
esp = 30
exp = 342
[ZolGibbon]
atp = 2300
mst = 2200
evp = 950
hp = 3431
dfp = 784
ata = 350
lck = 60
esp = 35
exp = 360
[Gibbles]
atp = 3551
mst = 0
evp = 636
hp = 7346
dfp = 748
ata = 335
lck = 60
esp = 100
exp = 582
[Morfos]
atp = 2570
mst = 0
evp = 636
hp = 3602
dfp = 1498
ata = 380
lck = 65
esp = 50
exp = 450
[Recobox]
atp = 0
mst = 0
evp = 300
hp = 4161
dfp = 935
ata = 200
lck = 77
esp = 30
exp = 342
[Recon]
atp = 2100
mst = 0
evp = 580
hp = 2432
dfp = 730
ata = 311
lck = 95
esp = 30
exp = 200
[SinowZoa]
atp = 2720
mst = 2200
evp = 978
hp = 3787
dfp = 815
ata = 355
lck = 70
esp = 45
exp = 462
[SinowZele]
atp = 2903
mst = 3125
evp = 734
hp = 4282
dfp = 938
ata = 373
lck = 75
esp = 50
exp = 510
[Merikle]
atp = 2330
mst = 0
evp = 958
hp = 4714
dfp = 736
ata = 295
lck = 55
esp = 100
exp = 570
[Mericus]
atp = 2900
mst = 0
evp = 580
hp = 6725
dfp = 1012
ata = 370
lck = 55
esp = 100
exp = 600
[Dubwitch]
atp = 160
mst = 0
evp = 25
hp = 153
dfp = 30
ata = 120
lck = 10
esp = 0
exp = 5
[Hildebear]
atp = 1880
mst = 0
evp = 510
hp = 2926
dfp = 600
ata = 280
lck = 60
esp = 50
exp = 330
[Hildeblue]
atp = 2060
mst = 0
evp = 720
hp = 3526
dfp = 500
ata = 300
lck = 60
esp = 50
exp = 870
[Merillia]
atp = 1889
mst = 0
evp = 538
hp = 2513
dfp = 666
ata = 293
lck = 58
esp = 15
exp = 336
[Meriltas]
atp = 2147
mst = 0
evp = 552
hp = 3057
dfp = 769
ata = 300
lck = 58
esp = 20
exp = 348
[GrassAssassin]
atp = 1829
mst = 0
evp = 538
hp = 2567
dfp = 608
ata = 288
lck = 60
esp = 50
exp = 342
[Dolmolm]
atp = 2462
mst = 0
evp = 670
hp = 2959
dfp = 756
ata = 309
lck = 58
esp = 15
exp = 378
[Dolmdarl]
atp = 2600
mst = 0
evp = 681
hp = 3053
dfp = 807
ata = 330
lck = 58
esp = 20
exp = 396
[Delsaber]
atp = 2414
mst = 0
evp = 888
hp = 3297
dfp = 707
ata = 325
lck = 70
esp = 40
exp = 360
[Dimenian]
atp = 1595
mst = 0
evp = 594
hp = 2262
dfp = 538
ata = 265
lck = 58
esp = 20
exp = 306
[LaDimenian]
atp = 1610
mst = 0
evp = 630
hp = 2329
dfp = 574
ata = 270
lck = 58
esp = 25
exp = 312
[SoDimenian]
atp = 1655
mst = 0
evp = 656
hp = 2392
dfp = 592
ata = 280
lck = 60
esp = 30
exp = 318

648
data/battle_param/ep2_multi_veryhard.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 890
mst = 0
evp = 159
hp = 481
dfp = 240
ata = 223
lck = 50
esp = 30
exp = 87
[Monest]
atp = 0
mst = 0
evp = 90
hp = 1559
dfp = 240
ata = 130
lck = 30
esp = 30
exp = 97
[SavageWolf]
atp = 1024
mst = 0
evp = 315
hp = 1291
dfp = 323
ata = 291
lck = 41
esp = 30
exp = 105
[BarbarousWolf]
atp = 1105
mst = 0
evp = 363
hp = 1420
dfp = 344
ata = 291
lck = 45
esp = 35
exp = 109
[PoisonLily]
atp = 916
mst = 0
evp = 228
hp = 1057
dfp = 296
ata = 242
lck = 35
esp = 35
exp = 105
[NarLily]
atp = 1081
mst = 0
evp = 297
hp = 1165
dfp = 308
ata = 266
lck = 50
esp = 35
exp = 385
[SinowBerill]
atp = 1287
mst = 0
evp = 380
hp = 1646
dfp = 362
ata = 285
lck = 50
esp = 40
exp = 115
[Gee]
atp = 999
mst = 0
evp = 332
hp = 1195
dfp = 278
ata = 328
lck = 35
esp = 25
exp = 105
[ChaosSorcerer]
atp = 1006
mst = 520
evp = 332
hp = 1529
dfp = 315
ata = 260
lck = 30
esp = 45
exp = 119
[BeeR]
atp = 933
mst = 0
evp = 185
hp = 1175
dfp = 263
ata = 204
lck = 30
esp = 100
exp = 89
[BeeL]
atp = 933
mst = 0
evp = 185
hp = 1176
dfp = 263
ata = 204
lck = 30
esp = 100
exp = 89
[Delbiter]
atp = 1844
mst = 0
evp = 366
hp = 4343
dfp = 518
ata = 322
lck = 35
esp = 75
exp = 165
[DarkBelra]
atp = 1171
mst = 0
evp = 200
hp = 1674
dfp = 356
ata = 242
lck = 38
esp = 55
exp = 115
[BarbaRay]
atp = 1215
mst = 10
evp = 215
hp = 10000
dfp = 296
ata = 300
lck = 5
esp = 100
exp = 8800
[PigRay]
atp = 1055
mst = 10
evp = 151
hp = 4900
dfp = 250
ata = 270
lck = 0
esp = 100
exp = 60
[GolDragon]
atp = 1300
mst = 10
evp = 180
hp = 17500
dfp = 270
ata = 175
lck = 5
esp = 100
exp = 10000
[SinowSpigell]
atp = 1131
mst = 0
evp = 187
hp = 2312
dfp = 449
ata = 239
lck = 40
esp = 50
exp = 123
[RagRappy]
atp = 896
mst = 0
evp = 228
hp = 1031
dfp = 263
ata = 217
lck = 45
esp = 30
exp = 93
[EventRappy]
atp = 986
mst = 0
evp = 297
hp = 1111
dfp = 407
ata = 254
lck = 100
esp = 30
exp = 756
[GiGue]
atp = 1376
mst = 0
evp = 256
hp = 2763
dfp = 510
ata = 316
lck = 35
esp = 100
exp = 187
[Dubchic]
atp = 1019
mst = 0
evp = 213
hp = 1107
dfp = 315
ata = 254
lck = 35
esp = 35
exp = 30
[Gillchic]
atp = 962
mst = 0
evp = 221
hp = 1179
dfp = 311
ata = 266
lck = 38
esp = 35
exp = 107
[Garanz]
atp = 1131
mst = 0
evp = 187
hp = 2313
dfp = 449
ata = 239
lck = 40
esp = 50
exp = 123
[GalGryphon]
atp = 1490
mst = 0
evp = 200
hp = 20000
dfp = 360
ata = 280
lck = 5
esp = 100
exp = 12500
[Epsilon]
atp = 1725
mst = 1320
evp = 256
hp = 5300
dfp = 990
ata = 378
lck = 35
esp = 100
exp = 357
[Epsiguard]
atp = 973
mst = 350
evp = 297
hp = 1675
dfp = 533
ata = 353
lck = 80
esp = 100
exp = 0
[DelLily]
atp = 1554
mst = 356
evp = 327
hp = 2719
dfp = 585
ata = 378
lck = 40
esp = 45
exp = 183
[IllGill]
atp = 2227
mst = 280
evp = 435
hp = 2110
dfp = 744
ata = 366
lck = 30
esp = 50
exp = 175
[OlgaFlow1]
atp = 2001
mst = 0
evp = 240
hp = 18900
dfp = 450
ata = 500
lck = 25
esp = 100
exp = 0
[OlgaFlow2]
atp = 2330
mst = 0
evp = 205
hp = 21000
dfp = 535
ata = 422
lck = 75
esp = 100
exp = 15000
[Gael]
atp = 0
mst = 0
evp = 10
hp = 361
dfp = 164
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 186
hp = 1450
dfp = 275
ata = 0
lck = 85
esp = 100
exp = 0
[Deldepth]
atp = 1013
mst = 0
evp = 743
hp = 1530
dfp = 353
ata = 353
lck = 35
esp = 35
exp = 143
[PanArms]
atp = 866
mst = 0
evp = 187
hp = 1922
dfp = 285
ata = 279
lck = 35
esp = 35
exp = 91
[Hidoom]
atp = 1168
mst = 0
evp = 297
hp = 1676
dfp = 420
ata = 316
lck = 35
esp = 40
exp = 99
[Migium]
atp = 1156
mst = 0
evp = 269
hp = 1677
dfp = 389
ata = 316
lck = 60
esp = 35
exp = 101
[Mericarol]
atp = 1409
mst = 0
evp = 187
hp = 2879
dfp = 479
ata = 248
lck = 35
esp = 100
exp = 179
[UlGibbon]
atp = 1125
mst = 224
evp = 392
hp = 1349
dfp = 296
ata = 291
lck = 38
esp = 30
exp = 109
[ZolGibbon]
atp = 1237
mst = 352
evp = 410
hp = 1719
dfp = 407
ata = 316
lck = 40
esp = 35
exp = 115
[Gibbles]
atp = 1787
mst = 0
evp = 256
hp = 3821
dfp = 386
ata = 297
lck = 40
esp = 100
exp = 189
[Morfos]
atp = 1356
mst = 0
evp = 256
hp = 1814
dfp = 825
ata = 353
lck = 45
esp = 50
exp = 145
[Recobox]
atp = 0
mst = 0
evp = 90
hp = 2111
dfp = 495
ata = 130
lck = 57
esp = 30
exp = 109
[Recon]
atp = 1175
mst = 0
evp = 228
hp = 1182
dfp = 375
ata = 268
lck = 75
esp = 30
exp = 95
[SinowZoa]
atp = 1422
mst = 352
evp = 424
hp = 1910
dfp = 425
ata = 322
lck = 50
esp = 45
exp = 149
[SinowZele]
atp = 1502
mst = 500
evp = 340
hp = 2175
dfp = 497
ata = 345
lck = 55
esp = 50
exp = 165
[Merikle]
atp = 1250
mst = 0
evp = 414
hp = 2407
dfp = 378
ata = 248
lck = 35
esp = 100
exp = 185
[Mericus]
atp = 1501
mst = 0
evp = 228
hp = 3488
dfp = 540
ata = 341
lck = 35
esp = 100
exp = 195
[Dubwitch]
atp = 160
mst = 0
evp = 25
hp = 152
dfp = 30
ata = 120
lck = 10
esp = 0
exp = 5
[Hildebear]
atp = 1052
mst = 0
evp = 194
hp = 1447
dfp = 299
ata = 229
lck = 40
esp = 50
exp = 105
[Hildeblue]
atp = 1131
mst = 0
evp = 297
hp = 1769
dfp = 240
ata = 254
lck = 40
esp = 50
exp = 285
[Merillia]
atp = 1056
mst = 0
evp = 207
hp = 1226
dfp = 338
ata = 245
lck = 38
esp = 15
exp = 107
[Meriltas]
atp = 1170
mst = 0
evp = 214
hp = 1517
dfp = 398
ata = 254
lck = 38
esp = 20
exp = 111
[GrassAssassin]
atp = 1030
mst = 0
evp = 207
hp = 1255
dfp = 303
ata = 239
lck = 40
esp = 50
exp = 109
[Dolmolm]
atp = 1308
mst = 0
evp = 272
hp = 1465
dfp = 390
ata = 265
lck = 38
esp = 15
exp = 121
[Dolmdarl]
atp = 1369
mst = 0
evp = 278
hp = 1516
dfp = 420
ata = 291
lck = 38
esp = 20
exp = 127
[Delsaber]
atp = 1287
mst = 0
evp = 380
hp = 1647
dfp = 362
ata = 285
lck = 50
esp = 40
exp = 115
[Dimenian]
atp = 927
mst = 0
evp = 235
hp = 1091
dfp = 263
ata = 211
lck = 38
esp = 20
exp = 97
[LaDimenian]
atp = 933
mst = 0
evp = 253
hp = 1127
dfp = 284
ata = 217
lck = 38
esp = 25
exp = 99
[SoDimenian]
atp = 953
mst = 0
evp = 265
hp = 1160
dfp = 294
ata = 229
lck = 40
esp = 30
exp = 101

648
data/battle_param/ep2_solo_hard.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 384
mst = 0
evp = 93
hp = 250
dfp = 95
ata = 153
lck = 35
esp = 15
exp = 37
[Monest]
atp = 0
mst = 0
evp = 30
hp = 856
dfp = 95
ata = 70
lck = 15
esp = 15
exp = 45
[SavageWolf]
atp = 511
mst = 0
evp = 209
hp = 609
dfp = 153
ata = 169
lck = 26
esp = 20
exp = 52
[BarbarousWolf]
atp = 574
mst = 0
evp = 253
hp = 728
dfp = 162
ata = 169
lck = 30
esp = 20
exp = 55
[PoisonLily]
atp = 416
mst = 0
evp = 155
hp = 462
dfp = 127
ata = 169
lck = 20
esp = 20
exp = 52
[NarLily]
atp = 574
mst = 0
evp = 218
hp = 560
dfp = 133
ata = 191
lck = 35
esp = 20
exp = 283
[SinowBerill]
atp = 672
mst = 134
evp = 283
hp = 861
dfp = 195
ata = 197
lck = 25
esp = 30
exp = 66
[Gee]
atp = 500
mst = 0
evp = 236
hp = 548
dfp = 127
ata = 191
lck = 20
esp = 15
exp = 52
[ChaosSorcerer]
atp = 530
mst = 176
evp = 224
hp = 841
dfp = 168
ata = 186
lck = 15
esp = 32
exp = 63
[BeeR]
atp = 464
mst = 0
evp = 116
hp = 556
dfp = 114
ata = 136
lck = 15
esp = 100
exp = 38
[BeeL]
atp = 464
mst = 0
evp = 116
hp = 557
dfp = 114
ata = 136
lck = 15
esp = 100
exp = 38
[Delbiter]
atp = 1131
mst = 0
evp = 246
hp = 2071
dfp = 293
ata = 235
lck = 20
esp = 60
exp = 101
[DarkBelra]
atp = 586
mst = 0
evp = 130
hp = 922
dfp = 167
ata = 169
lck = 23
esp = 42
exp = 60
[BarbaRay]
atp = 630
mst = 10
evp = 120
hp = 3200
dfp = 180
ata = 240
lck = 5
esp = 100
exp = 2200
[PigRay]
atp = 630
mst = 10
evp = 120
hp = 1800
dfp = 120
ata = 210
lck = 0
esp = 100
exp = 25
[GolDragon]
atp = 790
mst = 10
evp = 125
hp = 5900
dfp = 120
ata = 280
lck = 5
esp = 100
exp = 2700
[SinowSpigell]
atp = 752
mst = 184
evp = 311
hp = 1022
dfp = 223
ata = 213
lck = 15
esp = 35
exp = 70
[RagRappy]
atp = 414
mst = 0
evp = 155
hp = 451
dfp = 108
ata = 147
lck = 30
esp = 15
exp = 42
[EventRappy]
atp = 500
mst = 0
evp = 180
hp = 538
dfp = 169
ata = 180
lck = 92
esp = 15
exp = 512
[GiGue]
atp = 787
mst = 0
evp = 180
hp = 1560
dfp = 287
ata = 180
lck = 20
esp = 100
exp = 119
[Dubchic]
atp = 512
mst = 0
evp = 129
hp = 494
dfp = 159
ata = 180
lck = 20
esp = 20
exp = 15
[Gillchic]
atp = 452
mst = 0
evp = 136
hp = 534
dfp = 155
ata = 191
lck = 23
esp = 20
exp = 53
[Garanz]
atp = 545
mst = 0
evp = 118
hp = 1258
dfp = 229
ata = 167
lck = 25
esp = 35
exp = 66
[GalGryphon]
atp = 880
mst = 0
evp = 150
hp = 9500
dfp = 150
ata = 320
lck = 15
esp = 100
exp = 3000
[Epsilon]
atp = 1184
mst = 660
evp = 180
hp = 3715
dfp = 671
ata = 290
lck = 25
esp = 30
exp = 116
[Epsiguard]
atp = 200
mst = 0
evp = 200
hp = 650
dfp = 200
ata = 200
lck = 50
esp = 50
exp = 0
[DelLily]
atp = 1028
mst = 178
evp = 245
hp = 1853
dfp = 601
ata = 290
lck = 25
esp = 30
exp = 116
[IllGill]
atp = 1640
mst = 140
evp = 343
hp = 1348
dfp = 447
ata = 279
lck = 15
esp = 35
exp = 66
[OlgaFlow1]
atp = 1300
mst = 0
evp = 180
hp = 6300
dfp = 220
ata = 400
lck = 25
esp = 100
exp = 0
[OlgaFlow2]
atp = 1300
mst = 0
evp = 180
hp = 6301
dfp = 220
ata = 400
lck = 10
esp = 100
exp = 5900
[Gael]
atp = 0
mst = 0
evp = 10
hp = 152
dfp = 25
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 125
hp = 830
dfp = 167
ata = 0
lck = 75
esp = 100
exp = 0
[Deldepth]
atp = 500
mst = 0
evp = 195
hp = 749
dfp = 191
ata = 158
lck = 20
esp = 20
exp = 75
[PanArms]
atp = 403
mst = 0
evp = 118
hp = 1148
dfp = 133
ata = 202
lck = 20
esp = 20
exp = 40
[Hidoom]
atp = 630
mst = 0
evp = 193
hp = 895
dfp = 236
ata = 169
lck = 20
esp = 20
exp = 47
[Migium]
atp = 630
mst = 0
evp = 168
hp = 896
dfp = 209
ata = 169
lck = 45
esp = 20
exp = 48
[Mericarol]
atp = 800
mst = 0
evp = 118
hp = 1627
dfp = 260
ata = 175
lck = 20
esp = 100
exp = 113
[UlGibbon]
atp = 550
mst = 112
evp = 266
hp = 689
dfp = 142
ata = 169
lck = 23
esp = 20
exp = 55
[ZolGibbon]
atp = 664
mst = 150
evp = 283
hp = 923
dfp = 149
ata = 169
lck = 25
esp = 20
exp = 60
[Gibbles]
atp = 1076
mst = 0
evp = 180
hp = 1720
dfp = 206
ata = 219
lck = 25
esp = 100
exp = 121
[Morfos]
atp = 813
mst = 0
evp = 149
hp = 816
dfp = 364
ata = 268
lck = 30
esp = 35
exp = 76
[Recobox]
atp = 0
mst = 0
evp = 30
hp = 1228
dfp = 304
ata = 70
lck = 42
esp = 15
exp = 55
[Recon]
atp = 540
mst = 0
evp = 130
hp = 491
dfp = 159
ata = 153
lck = 60
esp = 15
exp = 42
[SinowZoa]
atp = 854
mst = 165
evp = 281
hp = 1161
dfp = 252
ata = 213
lck = 35
esp = 30
exp = 88
[SinowZele]
atp = 944
mst = 195
evp = 350
hp = 1274
dfp = 311
ata = 246
lck = 40
esp = 35
exp = 93
[Merikle]
atp = 704
mst = 0
evp = 299
hp = 1453
dfp = 200
ata = 175
lck = 20
esp = 100
exp = 118
[Mericus]
atp = 896
mst = 0
evp = 155
hp = 1866
dfp = 319
ata = 175
lck = 20
esp = 100
exp = 126
[Dubwitch]
atp = 0
mst = 0
evp = 0
hp = 0
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 0
[Hildebear]
atp = 548
mst = 0
evp = 124
hp = 793
dfp = 133
ata = 158
lck = 25
esp = 35
exp = 52
[Hildeblue]
atp = 596
mst = 0
evp = 218
hp = 1035
dfp = 95
ata = 180
lck = 25
esp = 35
exp = 200
[Merillia]
atp = 552
mst = 0
evp = 136
hp = 616
dfp = 153
ata = 172
lck = 23
esp = 7
exp = 53
[Meriltas]
atp = 590
mst = 0
evp = 143
hp = 844
dfp = 168
ata = 180
lck = 23
esp = 10
exp = 56
[GrassAssassin]
atp = 484
mst = 0
evp = 136
hp = 641
dfp = 140
ata = 167
lck = 25
esp = 35
exp = 55
[Dolmolm]
atp = 776
mst = 0
evp = 166
hp = 789
dfp = 223
ata = 172
lck = 23
esp = 7
exp = 65
[Dolmdarl]
atp = 802
mst = 0
evp = 174
hp = 833
dfp = 249
ata = 180
lck = 23
esp = 10
exp = 70
[Delsaber]
atp = 680
mst = 0
evp = 261
hp = 910
dfp = 171
ata = 208
lck = 25
esp = 27
exp = 60
[Dimenian]
atp = 446
mst = 0
evp = 129
hp = 472
dfp = 107
ata = 142
lck = 23
esp = 15
exp = 45
[LaDimenian]
atp = 452
mst = 0
evp = 140
hp = 506
dfp = 114
ata = 147
lck = 23
esp = 16
exp = 47
[SoDimenian]
atp = 470
mst = 0
evp = 149
hp = 539
dfp = 137
ata = 158
lck = 25
esp = 22
exp = 48

648
data/battle_param/ep2_solo_normal.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 53
mst = 0
evp = 50
hp = 8
dfp = 0
ata = 75
lck = 20
esp = 0
exp = 1
[Monest]
atp = 0
mst = 0
evp = 0
hp = 350
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 6
[SavageWolf]
atp = 159
mst = 0
evp = 143
hp = 165
dfp = 45
ata = 90
lck = 11
esp = 11
exp = 10
[BarbarousWolf]
atp = 212
mst = 0
evp = 178
hp = 254
dfp = 52
ata = 90
lck = 15
esp = 15
exp = 12
[PoisonLily]
atp = 80
mst = 0
evp = 100
hp = 54
dfp = 25
ata = 90
lck = 5
esp = 5
exp = 10
[NarLily]
atp = 212
mst = 0
evp = 150
hp = 128
dfp = 30
ata = 110
lck = 20
esp = 5
exp = 150
[SinowBerill]
atp = 293
mst = 67
evp = 202
hp = 354
dfp = 78
ata = 115
lck = 10
esp = 17
exp = 19
[Gee]
atp = 150
mst = 0
evp = 165
hp = 119
dfp = 25
ata = 110
lck = 5
esp = 5
exp = 10
[ChaosSorcerer]
atp = 175
mst = 88
evp = 155
hp = 339
dfp = 57
ata = 105
lck = 0
esp = 20
exp = 17
[BeeR]
atp = 120
mst = 0
evp = 69
hp = 125
dfp = 15
ata = 60
lck = 0
esp = 100
exp = 2
[BeeL]
atp = 120
mst = 0
evp = 69
hp = 126
dfp = 15
ata = 60
lck = 0
esp = 100
exp = 2
[Delbiter]
atp = 676
mst = 0
evp = 173
hp = 1264
dfp = 155
ata = 150
lck = 5
esp = 60
exp = 40
[DarkBelra]
atp = 222
mst = 0
evp = 80
hp = 400
dfp = 56
ata = 90
lck = 8
esp = 18
exp = 15
[BarbaRay]
atp = 150
mst = 10
evp = 0
hp = 2000
dfp = 0
ata = 180
lck = 5
esp = 100
exp = 400
[PigRay]
atp = 150
mst = 10
evp = 90
hp = 950
dfp = 60
ata = 150
lck = 0
esp = 100
exp = 10
[GolDragon]
atp = 250
mst = 10
evp = 90
hp = 4800
dfp = 30
ata = 220
lck = 5
esp = 100
exp = 880
[SinowSpigell]
atp = 360
mst = 92
evp = 225
hp = 475
dfp = 100
ata = 130
lck = 0
esp = 39
exp = 21
[RagRappy]
atp = 78
mst = 0
evp = 100
hp = 46
dfp = 10
ata = 70
lck = 15
esp = 15
exp = 4
[EventRappy]
atp = 150
mst = 0
evp = 120
hp = 111
dfp = 58
ata = 100
lck = 77
esp = 55
exp = 256
[GiGue]
atp = 389
mst = 0
evp = 120
hp = 880
dfp = 150
ata = 100
lck = 5
esp = 75
exp = 51
[Dubchic]
atp = 160
mst = 0
evp = 79
hp = 78
dfp = 50
ata = 100
lck = 5
esp = 5
exp = 2
[Gillchic]
atp = 110
mst = 0
evp = 85
hp = 108
dfp = 47
ata = 110
lck = 8
esp = 5
exp = 11
[Garanz]
atp = 220
mst = 0
evp = 70
hp = 653
dfp = 105
ata = 88
lck = 10
esp = 20
exp = 19
[GalGryphon]
atp = 387
mst = 0
evp = 120
hp = 7000
dfp = 50
ata = 250
lck = 5
esp = 100
exp = 1200
[Epsilon]
atp = 720
mst = 330
evp = 120
hp = 2500
dfp = 450
ata = 200
lck = 5
esp = 90
exp = 136
[Epsiguard]
atp = 150
mst = 0
evp = 150
hp = 420
dfp = 165
ata = 180
lck = 50
esp = 50
exp = 0
[DelLily]
atp = 590
mst = 89
evp = 172
hp = 1100
dfp = 395
ata = 200
lck = 10
esp = 19
exp = 49
[IllGill]
atp = 1100
mst = 70
evp = 250
hp = 720
dfp = 275
ata = 190
lck = 0
esp = 42
exp = 45
[OlgaFlow1]
atp = 850
mst = 0
evp = 150
hp = 4900
dfp = 185
ata = 300
lck = 25
esp = 100
exp = 0
[OlgaFlow]
atp = 910
mst = 0
evp = 120
hp = 6500
dfp = 210
ata = 270
lck = 75
esp = 100
exp = 2700
[Gael]
atp = 0
mst = 0
evp = 10
hp = 50
dfp = 10
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 100
hp = 490
dfp = 85
ata = 0
lck = 75
esp = 100
exp = 0
[Deldepth]
atp = 150
mst = 0
evp = 132
hp = 270
dfp = 75
ata = 80
lck = 5
esp = 10
exp = 24
[PanArms]
atp = 69
mst = 0
evp = 70
hp = 570
dfp = 30
ata = 120
lck = 5
esp = 5
exp = 12
[Hidoom]
atp = 258
mst = 0
evp = 130
hp = 380
dfp = 110
ata = 90
lck = 5
esp = 30
exp = 7
[Migium]
atp = 258
mst = 0
evp = 110
hp = 381
dfp = 89
ata = 90
lck = 30
esp = 5
exp = 8
[Mericarol]
atp = 400
mst = 0
evp = 70
hp = 930
dfp = 129
ata = 95
lck = 5
esp = 75
exp = 47
[UlGibbon]
atp = 192
mst = 56
evp = 189
hp = 225
dfp = 37
ata = 90
lck = 8
esp = 5
exp = 12
[ZolGibbon]
atp = 287
mst = 75
evp = 202
hp = 401
dfp = 42
ata = 90
lck = 10
esp = 10
exp = 15
[Gibbles]
atp = 630
mst = 0
evp = 120
hp = 1000
dfp = 87
ata = 135
lck = 10
esp = 75
exp = 52
[Morfos]
atp = 411
mst = 0
evp = 95
hp = 320
dfp = 210
ata = 180
lck = 15
esp = 15
exp = 25
[Recobox]
atp = 0
mst = 0
evp = 0
hp = 630
dfp = 163
ata = 0
lck = 27
esp = 0
exp = 12
[Recon]
atp = 190
mst = 0
evp = 80
hp = 75
dfp = 50
ata = 75
lck = 45
esp = 0
exp = 3
[SinowZoa]
atp = 445
mst = 79
evp = 201
hp = 580
dfp = 123
ata = 130
lck = 20
esp = 25
exp = 32
[SinowZele]
atp = 520
mst = 111
evp = 256
hp = 665
dfp = 169
ata = 160
lck = 25
esp = 20
exp = 35
[Merikle]
atp = 320
mst = 0
evp = 215
hp = 799
dfp = 82
ata = 95
lck = 5
esp = 75
exp = 50
[Mericus]
atp = 480
mst = 0
evp = 100
hp = 1110
dfp = 175
ata = 95
lck = 5
esp = 75
exp = 55
[Dubwitch]
atp = 0
mst = 0
evp = 0
hp = 0
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 0
[Hildebear]
atp = 190
mst = 0
evp = 75
hp = 303
dfp = 30
ata = 80
lck = 10
esp = 25
exp = 10
[Hildeblue]
atp = 230
mst = 0
evp = 150
hp = 485
dfp = 0
ata = 100
lck = 10
esp = 20
exp = 100
[Merillia]
atp = 193
mst = 0
evp = 85
hp = 170
dfp = 45
ata = 93
lck = 8
esp = 5
exp = 11
[Meriltas]
atp = 225
mst = 0
evp = 90
hp = 341
dfp = 57
ata = 100
lck = 8
esp = 5
exp = 13
[GrassAssassin]
atp = 137
mst = 0
evp = 85
hp = 189
dfp = 35
ata = 88
lck = 10
esp = 10
exp = 12
[Dolmolm]
atp = 380
mst = 0
evp = 109
hp = 300
dfp = 100
ata = 93
lck = 8
esp = 15
exp = 18
[Dolmdarl]
atp = 402
mst = 0
evp = 115
hp = 333
dfp = 120
ata = 100
lck = 8
esp = 24
exp = 21
[Delsaber]
atp = 300
mst = 0
evp = 185
hp = 391
dfp = 59
ata = 125
lck = 10
esp = 15
exp = 15
[Dimenian]
atp = 105
mst = 0
evp = 79
hp = 62
dfp = 9
ata = 65
lck = 8
esp = 10
exp = 6
[LaDimenian]
atp = 110
mst = 0
evp = 88
hp = 87
dfp = 15
ata = 70
lck = 8
esp = 10
exp = 7
[SoDimenian]
atp = 125
mst = 0
evp = 95
hp = 112
dfp = 33
ata = 80
lck = 10
esp = 10
exp = 8

648
data/battle_param/ep2_solo_ultimate.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 1159
mst = 0
evp = 400
hp = 1001
dfp = 475
ata = 255
lck = 65
esp = 30
exp = 145
[Monest]
atp = 0
mst = 0
evp = 277
hp = 2375
dfp = 475
ata = 180
lck = 45
esp = 30
exp = 280
[SavageWolf]
atp = 1477
mst = 0
evp = 627
hp = 1913
dfp = 585
ata = 270
lck = 56
esp = 30
exp = 300
[BarbarousWolf]
atp = 1636
mst = 0
evp = 713
hp = 2135
dfp = 602
ata = 270
lck = 60
esp = 35
exp = 310
[PoisonLily]
atp = 1240
mst = 1000
evp = 522
hp = 1635
dfp = 536
ata = 270
lck = 50
esp = 35
exp = 300
[NarLily]
atp = 1636
mst = 1300
evp = 645
hp = 1820
dfp = 549
ata = 290
lck = 65
esp = 35
exp = 1000
[SinowBerill]
atp = 1879
mst = 640
evp = 772
hp = 2385
dfp = 666
ata = 295
lck = 55
esp = 45
exp = 345
[Gee]
atp = 1450
mst = 0
evp = 681
hp = 1798
dfp = 536
ata = 290
lck = 50
esp = 25
exp = 300
[ChaosSorcerer]
atp = 1525
mst = 1600
evp = 657
hp = 2348
dfp = 615
ata = 285
lck = 45
esp = 45
exp = 335
[BeeR]
atp = 1360
mst = 0
evp = 446
hp = 1813
dfp = 512
ata = 240
lck = 45
esp = 100
exp = 100
[BeeL]
atp = 1360
mst = 0
evp = 446
hp = 1814
dfp = 512
ata = 240
lck = 45
esp = 100
exp = 100
[Delbiter]
atp = 3028
mst = 0
evp = 701
hp = 4660
dfp = 855
ata = 330
lck = 50
esp = 90
exp = 450
[DarkBelra]
atp = 1666
mst = 0
evp = 473
hp = 2501
dfp = 612
ata = 270
lck = 53
esp = 55
exp = 325
[BarbaRay]
atp = 1500
mst = 10
evp = 336
hp = 7700
dfp = 420
ata = 300
lck = 5
esp = 100
exp = 13600
[PigRay]
atp = 1880
mst = 10
evp = 300
hp = 3201
dfp = 360
ata = 300
lck = 10
esp = 100
exp = 90
[GolDragon]
atp = 1890
mst = 10
evp = 90
hp = 9900
dfp = 490
ata = 250
lck = 5
esp = 100
exp = 15900
[SinowSpigell]
atp = 2080
mst = 850
evp = 828
hp = 2688
dfp = 720
ata = 310
lck = 45
esp = 50
exp = 355
[RagRappy]
atp = 1234
mst = 0
evp = 522
hp = 1615
dfp = 500
ata = 250
lck = 60
esp = 30
exp = 270
[EventRappy]
atp = 1450
mst = 0
evp = 571
hp = 1778
dfp = 617
ata = 280
lck = 100
esp = 100
exp = 1024
[GiGue]
atp = 2167
mst = 0
evp = 571
hp = 3700
dfp = 843
ata = 280
lck = 50
esp = 100
exp = 505
[Dubchic]
atp = 1480
mst = 0
evp = 471
hp = 1695
dfp = 598
ata = 280
lck = 50
esp = 35
exp = 50
[Gillchic]
atp = 1330
mst = 0
evp = 485
hp = 1770
dfp = 590
ata = 290
lck = 53
esp = 35
exp = 305
[Garanz]
atp = 1660
mst = 0
evp = 449
hp = 3133
dfp = 732
ata = 268
lck = 55
esp = 50
exp = 345
[GalGryphon]
atp = 2500
mst = 0
evp = 530
hp = 13600
dfp = 560
ata = 320
lck = 5
esp = 100
exp = 18000
[Epsilon]
atp = 2163
mst = 8250
evp = 571
hp = 7750
dfp = 1578
ata = 380
lck = 50
esp = 10
exp = 930
[Epsiguard]
atp = 500
mst = 0
evp = 500
hp = 891
dfp = 500
ata = 500
lck = 50
esp = 50
exp = 0
[DelLily]
atp = 4300
mst = 1500
evp = 890
hp = 3300
dfp = 1149
ata = 370
lck = 45
esp = 50
exp = 495
[IllGill]
atp = 4300
mst = 990
evp = 890
hp = 3301
dfp = 1149
ata = 370
lck = 45
esp = 50
exp = 475
[OlgaFlow1]
atp = 2700
mst = 0
evp = 720
hp = 10000
dfp = 810
ata = 598
lck = 5
esp = 100
exp = 0
[OlgaFlow2]
atp = 3000
mst = 0
evp = 640
hp = 14500
dfp = 920
ata = 525
lck = 15
esp = 100
exp = 36000
[Gael]
atp = 0
mst = 0
evp = 10
hp = 422
dfp = 120
ata = 0
lck = 0
esp = 50
exp = 0
[Giel]
atp = 0
mst = 0
evp = 250
hp = 1500
dfp = 560
ata = 0
lck = 90
esp = 100
exp = 0
[Deldepth]
atp = 1450
mst = 0
evp = 600
hp = 2175
dfp = 659
ata = 260
lck = 50
esp = 35
exp = 370
[PanArms]
atp = 1207
mst = 0
evp = 449
hp = 2925
dfp = 549
ata = 300
lck = 50
esp = 35
exp = 265
[Hidoom]
atp = 1774
mst = 0
evp = 547
hp = 2450
dfp = 693
ata = 270
lck = 75
esp = 35
exp = 285
[Migium]
atp = 1774
mst = 0
evp = 547
hp = 2451
dfp = 693
ata = 270
lck = 75
esp = 35
exp = 290
[Mericarol]
atp = 2200
mst = 0
evp = 449
hp = 3825
dfp = 791
ata = 275
lck = 50
esp = 100
exp = 485
[UlGibbon]
atp = 1576
mst = 560
evp = 740
hp = 2063
dfp = 566
ata = 270
lck = 53
esp = 30
exp = 310
[ZolGibbon]
atp = 1861
mst = 700
evp = 772
hp = 2502
dfp = 578
ata = 270
lck = 55
esp = 35
exp = 325
[Gibbles]
atp = 2890
mst = 0
evp = 571
hp = 4000
dfp = 688
ata = 315
lck = 55
esp = 100
exp = 510
[Morfos]
atp = 3028
mst = 0
evp = 701
hp = 4661
dfp = 990
ata = 330
lck = 50
esp = 90
exp = 450
[Recobox]
atp = 0
mst = 0
evp = 277
hp = 3075
dfp = 874
ata = 180
lck = 72
esp = 30
exp = 310
[Recon]
atp = 1360
mst = 0
evp = 473
hp = 1688
dfp = 598
ata = 255
lck = 90
esp = 30
exp = 195
[SinowZoa]
atp = 2335
mst = 870
evp = 769
hp = 2950
dfp = 776
ata = 310
lck = 65
esp = 45
exp = 410
[SinowZele]
atp = 2560
mst = 950
evp = 904
hp = 3163
dfp = 889
ata = 340
lck = 70
esp = 50
exp = 425
[Merikle]
atp = 1960
mst = 0
evp = 804
hp = 3498
dfp = 676
ata = 275
lck = 50
esp = 100
exp = 500
[Mericus]
atp = 2440
mst = 0
evp = 522
hp = 4275
dfp = 904
ata = 275
lck = 50
esp = 100
exp = 525
[Dubwitch]
atp = 0
mst = 0
evp = 0
hp = 0
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 0
[Hildebear]
atp = 1570
mst = 0
evp = 461
hp = 2258
dfp = 549
ata = 260
lck = 55
esp = 50
exp = 300
[Hildeblue]
atp = 1690
mst = 0
evp = 645
hp = 2713
dfp = 475
ata = 280
lck = 55
esp = 50
exp = 750
[Merillia]
atp = 1579
mst = 0
evp = 485
hp = 1925
dfp = 585
ata = 273
lck = 53
esp = 15
exp = 305
[Meriltas]
atp = 1675
mst = 0
evp = 498
hp = 2353
dfp = 615
ata = 280
lck = 53
esp = 20
exp = 315
[GrassAssassin]
atp = 1411
mst = 0
evp = 485
hp = 1973
dfp = 561
ata = 268
lck = 55
esp = 50
exp = 310
[Dolmolm]
atp = 2140
mst = 0
evp = 544
hp = 2250
dfp = 720
ata = 273
lck = 53
esp = 15
exp = 340
[Dolmdarl]
atp = 2206
mst = 0
evp = 559
hp = 2333
dfp = 769
ata = 280
lck = 53
esp = 20
exp = 355
[Delsaber]
atp = 1900
mst = 0
evp = 730
hp = 2478
dfp = 620
ata = 305
lck = 55
esp = 40
exp = 325
[Dimenian]
atp = 1315
mst = 0
evp = 471
hp = 1655
dfp = 497
ata = 245
lck = 53
esp = 20
exp = 280
[LaDimenian]
atp = 1330
mst = 0
evp = 493
hp = 1718
dfp = 512
ata = 250
lck = 53
esp = 25
exp = 285
[SoDimenian]
atp = 1375
mst = 0
evp = 510
hp = 1780
dfp = 556
ata = 260
lck = 55
esp = 30
exp = 290

648
data/battle_param/ep2_solo_veryhard.toml

@ -0,0 +1,648 @@
[Mothmant]
atp = 716
mst = 0
evp = 142
hp = 450
dfp = 220
ata = 211
lck = 50
esp = 30
exp = 87
[Monest]
atp = 0
mst = 0
evp = 142
hp = 761
dfp = 220
ata = 211
lck = 50
esp = 30
exp = 97
[SavageWolf]
atp = 849
mst = 0
evp = 265
hp = 981
dfp = 290
ata = 229
lck = 41
esp = 30
exp = 105
[BarbarousWolf]
atp = 915
mst = 0
evp = 312
hp = 1106
dfp = 301
ata = 229
lck = 45
esp = 35
exp = 109
[PoisonLily]
atp = 750
mst = 0
evp = 208
hp = 826
dfp = 259
ata = 229
lck = 35
esp = 35
exp = 105
[NarLily]
atp = 915
mst = 0
evp = 275
hp = 929
dfp = 267
ata = 252
lck = 50
esp = 35
exp = 385
[SinowBerill]
atp = 1016
mst = 201
evp = 344
hp = 1246
dfp = 341
ata = 257
lck = 40
esp = 45
exp = 123
[Gee]
atp = 838
mst = 0
evp = 294
hp = 917
dfp = 259
ata = 252
lck = 35
esp = 25
exp = 105
[ChaosSorcerer]
atp = 869
mst = 264
evp = 281
hp = 1225
dfp = 308
ata = 246
lck = 30
esp = 45
exp = 119
[BeeR]
atp = 800
mst = 0
evp = 167
hp = 925
dfp = 243
ata = 194
lck = 30
esp = 100
exp = 89
[BeeL]
atp = 800
mst = 0
evp = 167
hp = 926
dfp = 243
ata = 194
lck = 30
esp = 100
exp = 89
[Delbiter]
atp = 1495
mst = 0
evp = 305
hp = 2520
dfp = 460
ata = 298
lck = 35
esp = 75
exp = 165
[DarkBelra]
atp = 928
mst = 0
evp = 181
hp = 1310
dfp = 307
ata = 229
lck = 38
esp = 55
exp = 115
[BarbaRay]
atp = 970
mst = 10
evp = 175
hp = 5500
dfp = 244
ata = 270
lck = 5
esp = 100
exp = 6900
[PigRay]
atp = 980
mst = 10
evp = 151
hp = 2700
dfp = 210
ata = 270
lck = 0
esp = 100
exp = 60
[GolDragon]
atp = 1300
mst = 10
evp = 150
hp = 8900
dfp = 180
ata = 175
lck = 5
esp = 100
exp = 8100
[SinowSpigell]
atp = 1100
mst = 276
evp = 374
hp = 1415
dfp = 375
ata = 275
lck = 30
esp = 50
exp = 127
[RagRappy]
atp = 748
mst = 0
evp = 208
hp = 814
dfp = 236
ata = 206
lck = 45
esp = 30
exp = 93
[EventRappy]
atp = 838
mst = 0
evp = 235
hp = 905
dfp = 310
ata = 240
lck = 100
esp = 30
exp = 756
[GiGue]
atp = 1136
mst = 0
evp = 235
hp = 1982
dfp = 453
ata = 240
lck = 35
esp = 100
exp = 187
[Dubchic]
atp = 850
mst = 0
evp = 180
hp = 859
dfp = 298
ata = 240
lck = 35
esp = 35
exp = 30
[Gillchic]
atp = 788
mst = 0
evp = 188
hp = 901
dfp = 293
ata = 252
lck = 38
esp = 35
exp = 107
[Garanz]
atp = 925
mst = 0
evp = 168
hp = 1664
dfp = 383
ata = 226
lck = 40
esp = 50
exp = 123
[GalGryphon]
atp = 1300
mst = 0
evp = 180
hp = 11500
dfp = 270
ata = 250
lck = 5
esp = 100
exp = 9900
[Epsilon]
atp = 1550
mst = 990
evp = 235
hp = 4250
dfp = 918
ata = 355
lck = 35
esp = 100
exp = 357
[Epsiguard]
atp = 300
mst = 0
evp = 300
hp = 890
dfp = 300
ata = 300
lck = 50
esp = 50
exp = 0
[DelLily]
atp = 1388
mst = 267
evp = 304
hp = 2290
dfp = 832
ata = 355
lck = 40
esp = 45
exp = 183
[IllGill]
atp = 2025
mst = 210
evp = 408
hp = 1758
dfp = 646
ata = 344
lck = 30
esp = 50
exp = 122
[OlgaFlow1]
atp = 1800
mst = 0
evp = 210
hp = 8100
dfp = 355
ata = 500
lck = 25
esp = 100
exp = 0
[OlgaFlow2]
atp = 2000
mst = 0
evp = 175
hp = 9700
dfp = 421
ata = 422
lck = 15
esp = 100
exp = 11000
[Gael]
atp = 0
mst = 0
evp = 10
hp = 302
dfp = 50
ata = 0
lck = 50
esp = 100
exp = 0
[Giel]
atp = 0
mst = 0
evp = 166
hp = 1111
dfp = 215
ata = 0
lck = 85
esp = 100
exp = 0
[Deldepth]
atp = 838
mst = 0
evp = 251
hp = 1128
dfp = 336
ata = 217
lck = 35
esp = 35
exp = 133
[PanArms]
atp = 736
mst = 0
evp = 168
hp = 1548
dfp = 267
ata = 263
lck = 35
esp = 35
exp = 91
[Hidoom]
atp = 973
mst = 0
evp = 248
hp = 1282
dfp = 391
ata = 229
lck = 35
esp = 40
exp = 99
[Migium]
atp = 973
mst = 0
evp = 221
hp = 1283
dfp = 358
ata = 229
lck = 60
esp = 35
exp = 101
[Mericarol]
atp = 1150
mst = 0
evp = 168
hp = 2052
dfp = 420
ata = 234
lck = 35
esp = 100
exp = 179
[UlGibbon]
atp = 890
mst = 168
evp = 326
hp = 1065
dfp = 277
ata = 229
lck = 38
esp = 30
exp = 109
[ZolGibbon]
atp = 1009
mst = 225
evp = 344
hp = 1311
dfp = 285
ata = 229
lck = 40
esp = 35
exp = 115
[Gibbles]
atp = 1438
mst = 0
evp = 235
hp = 2150
dfp = 355
ata = 280
lck = 40
esp = 100
exp = 189
[Morfos]
atp = 1164
mst = 0
evp = 201
hp = 1198
dfp = 546
ata = 332
lck = 45
esp = 50
exp = 135
[Recobox]
atp = 0
mst = 0
evp = 75
hp = 1632
dfp = 473
ata = 125
lck = 57
esp = 30
exp = 109
[Recon]
atp = 900
mst = 0
evp = 181
hp = 855
dfp = 298
ata = 211
lck = 75
esp = 30
exp = 100
[SinowZoa]
atp = 1206
mst = 301
evp = 342
hp = 1562
dfp = 411
ata = 275
lck = 50
esp = 45
exp = 149
[SinowZele]
atp = 1300
mst = 360
evp = 415
hp = 1681
dfp = 482
ata = 309
lck = 55
esp = 50
exp = 155
[Merikle]
atp = 1050
mst = 0
evp = 361
hp = 1869
dfp = 347
ata = 234
lck = 35
esp = 100
exp = 185
[Mericus]
atp = 1250
mst = 0
evp = 208
hp = 2304
dfp = 491
ata = 234
lck = 35
esp = 100
exp = 195
[Dubwitch]
atp = 0
mst = 0
evp = 0
hp = 0
dfp = 0
ata = 0
lck = 0
esp = 0
exp = 0
[Hildebear]
atp = 888
mst = 0
evp = 175
hp = 1174
dfp = 267
ata = 217
lck = 40
esp = 50
exp = 105
[Hildeblue]
atp = 938
mst = 0
evp = 275
hp = 1429
dfp = 220
ata = 240
lck = 40
esp = 50
exp = 285
[Merillia]
atp = 891
mst = 0
evp = 188
hp = 988
dfp = 290
ata = 232
lck = 38
esp = 15
exp = 107
[Meriltas]
atp = 931
mst = 0
evp = 195
hp = 1227
dfp = 308
ata = 240
lck = 38
esp = 20
exp = 111
[GrassAssassin]
atp = 821
mst = 0
evp = 188
hp = 1015
dfp = 274
ata = 226
lck = 40
esp = 50
exp = 109
[Dolmolm]
atp = 1125
mst = 0
evp = 220
hp = 1170
dfp = 375
ata = 232
lck = 38
esp = 15
exp = 121
[Dolmdarl]
atp = 1153
mst = 0
evp = 228
hp = 1216
dfp = 406
ata = 240
lck = 38
esp = 20
exp = 127
[Delsaber]
atp = 1025
mst = 0
evp = 321
hp = 1297
dfp = 311
ata = 269
lck = 40
esp = 40
exp = 115
[Dimenian]
atp = 781
mst = 0
evp = 180
hp = 837
dfp = 234
ata = 200
lck = 38
esp = 20
exp = 97
[LaDimenian]
atp = 788
mst = 0
evp = 192
hp = 872
dfp = 243
ata = 206
lck = 38
esp = 25
exp = 99
[SoDimenian]
atp = 806
mst = 0
evp = 201
hp = 907
dfp = 271
ata = 217
lck = 40
esp = 30
exp = 101

296
data/battle_param/ep4_multi_hard.toml

@ -0,0 +1,296 @@
[Boota]
atp = 660
mst = 0
evp = 194
hp = 1026
dfp = 184
ata = 210
lck = 23
esp = 20
exp = 64
[ZeBoota]
atp = 726
mst = 0
evp = 212
hp = 1078
dfp = 203
ata = 222
lck = 23
esp = 20
exp = 70
[BaBoota]
atp = 798
mst = 0
evp = 224
hp = 1126
dfp = 223
ata = 234
lck = 25
esp = 20
exp = 77
[SandRappyCrater]
atp = 693
mst = 0
evp = 203
hp = 1000
dfp = 175
ata = 209
lck = 60
esp = 30
exp = 61
[SandRappyDesert]
atp = 858
mst = 250
evp = 330
hp = 2834
dfp = 228
ata = 215
lck = 92
esp = 31
exp = 390
[ZuCrater]
atp = 842
mst = 0
evp = 156
hp = 1362
dfp = 210
ata = 265
lck = 37
esp = 19
exp = 85
[PazuzuCrater]
atp = 1010
mst = 0
evp = 172
hp = 2452
dfp = 225
ata = 284
lck = 39
esp = 21
exp = 617
[Astark]
atp = 820
mst = 0
evp = 126
hp = 1924
dfp = 192
ata = 220
lck = 35
esp = 35
exp = 88
[SatelliteLizardCrater]
atp = 746
mst = 0
evp = 252
hp = 1088
dfp = 211
ata = 242
lck = 28
esp = 21
exp = 72
[YowieCrater]
atp = 812
mst = 0
evp = 298
hp = 1132
dfp = 226
ata = 244
lck = 32
esp = 22
exp = 80
[Dorphon]
atp = 1061
mst = 0
evp = 224
hp = 4422
dfp = 230
ata = 234
lck = 25
esp = 19
exp = 165
[DorphonEclair]
atp = 1092
mst = 0
evp = 247
hp = 5748
dfp = 242
ata = 265
lck = 37
esp = 22
exp = 709
[Goran]
atp = 958
mst = 0
evp = 225
hp = 1248
dfp = 251
ata = 220
lck = 23
esp = 20
exp = 125
[GoranDetonator]
atp = 1025
mst = 0
evp = 230
hp = 1306
dfp = 280
ata = 230
lck = 23
esp = 30
exp = 134
[PyroGoran]
atp = 1206
mst = 0
evp = 261
hp = 2135
dfp = 330
ata = 264
lck = 28
esp = 34
exp = 169
[DelRappyCrater]
atp = 1107
mst = 0
evp = 213
hp = 1185
dfp = 239
ata = 209
lck = 60
esp = 30
exp = 119
[DelRappyDesert]
atp = 1371
mst = 250
evp = 348
hp = 3360
dfp = 312
ata = 215
lck = 92
esp = 31
exp = 759
[MerissaA]
atp = 1025
mst = 0
evp = 195
hp = 1319
dfp = 201
ata = 199
lck = 23
esp = 23
exp = 131
[MerissaAA]
atp = 1332
mst = 0
evp = 205
hp = 1820
dfp = 225
ata = 357
lck = 37
esp = 23
exp = 835
[ZuDesert]
atp = 1203
mst = 0
evp = 209
hp = 1537
dfp = 285
ata = 299
lck = 39
esp = 33
exp = 152
[PazuzuDesert]
atp = 1430
mst = 0
evp = 219
hp = 3192
dfp = 305
ata = 320
lck = 41
esp = 31
exp = 877
[SatelliteLizardDesert]
atp = 1032
mst = 0
evp = 264
hp = 1324
dfp = 284
ata = 248
lck = 29
esp = 31
exp = 136
[YowieDesert]
atp = 1110
mst = 0
evp = 312
hp = 1453
dfp = 304
ata = 256
lck = 33
esp = 32
exp = 148
[Girtablulu]
atp = 1028
mst = 0
evp = 170
hp = 8081
dfp = 224
ata = 252
lck = 23
esp = 33
exp = 166
[SaintMillion]
atp = 1859
mst = 0
evp = 216
hp = 13800
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010
[Shambertin]
atp = 2230
mst = 0
evp = 216
hp = 16560
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010
[Kondrieu]
atp = 2119
mst = 0
evp = 216
hp = 20700
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010

296
data/battle_param/ep4_multi_normal.toml

@ -0,0 +1,296 @@
[Boota]
atp = 204
mst = 0
evp = 116
hp = 158
dfp = 45
ata = 110
lck = 8
esp = 10
exp = 17
[ZeBoota]
atp = 224
mst = 0
evp = 130
hp = 183
dfp = 61
ata = 120
lck = 8
esp = 10
exp = 19
[BaBoota]
atp = 246
mst = 0
evp = 140
hp = 218
dfp = 67
ata = 130
lck = 10
esp = 10
exp = 21
[SandRappyCrater]
atp = 214
mst = 0
evp = 100
hp = 162
dfp = 37
ata = 109
lck = 45
esp = 28
exp = 16
[SandRappyDesert]
atp = 316
mst = 125
evp = 196
hp = 638
dfp = 76
ata = 112
lck = 77
esp = 29
exp = 172
[ZuCrater]
atp = 310
mst = 0
evp = 89
hp = 520
dfp = 63
ata = 150
lck = 21
esp = 9
exp = 33
[PazuzuCrater]
atp = 372
mst = 0
evp = 98
hp = 1092
dfp = 67
ata = 161
lck = 22
esp = 11
exp = 337
[Astark]
atp = 306
mst = 0
evp = 59
hp = 624
dfp = 59
ata = 151
lck = 19
esp = 47
exp = 36
[SatelliteLizardCrater]
atp = 232
mst = 0
evp = 165
hp = 242
dfp = 62
ata = 134
lck = 12
esp = 16
exp = 20
[YowieCrater]
atp = 254
mst = 0
evp = 204
hp = 336
dfp = 71
ata = 136
lck = 16
esp = 28
exp = 22
[Dorphon]
atp = 391
mst = 0
evp = 140
hp = 2738
dfp = 77
ata = 130
lck = 10
esp = 9
exp = 73
[DorphonEclair]
atp = 402
mst = 0
evp = 154
hp = 3559
dfp = 81
ata = 150
lck = 21
esp = 28
exp = 388
[Goran]
atp = 432
mst = 0
evp = 141
hp = 426
dfp = 107
ata = 115
lck = 8
esp = 17
exp = 31
[GoranDetonator]
atp = 482
mst = 0
evp = 146
hp = 468
dfp = 128
ata = 125
lck = 8
esp = 28
exp = 36
[PyroGoran]
atp = 567
mst = 0
evp = 165
hp = 765
dfp = 151
ata = 149
lck = 11
esp = 32
exp = 50
[DelRappyCrater]
atp = 520
mst = 0
evp = 134
hp = 405
dfp = 102
ata = 109
lck = 45
esp = 28
exp = 29
[DelRappyDesert]
atp = 770
mst = 125
evp = 242
hp = 2020
dfp = 150
ata = 113
lck = 77
esp = 29
exp = 316
[MerissaA]
atp = 482
mst = 0
evp = 120
hp = 473
dfp = 86
ata = 104
lck = 8
esp = 21
exp = 32
[MerissaAA]
atp = 674
mst = 0
evp = 126
hp = 804
dfp = 92
ata = 187
lck = 13
esp = 21
exp = 454
[ZuDesert]
atp = 606
mst = 0
evp = 128
hp = 695
dfp = 132
ata = 171
lck = 22
esp = 31
exp = 46
[PazuzuDesert]
atp = 800
mst = 0
evp = 135
hp = 1919
dfp = 141
ata = 182
lck = 24
esp = 28
exp = 477
[SatelliteLizardDesert]
atp = 494
mst = 0
evp = 172
hp = 524
dfp = 132
ata = 142
lck = 16
esp = 27
exp = 38
[YowieDesert]
atp = 518
mst = 0
evp = 209
hp = 604
dfp = 139
ata = 146
lck = 18
esp = 29
exp = 43
[Girtablulu]
atp = 526
mst = 0
evp = 100
hp = 4638
dfp = 90
ata = 124
lck = 6
esp = 30
exp = 74
[SaintMillion]
atp = 1155
mst = 0
evp = 144
hp = 9775
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290
[Shambertin]
atp = 1386
mst = 0
evp = 144
hp = 11730
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290
[Kondrieu]
atp = 1317
mst = 0
evp = 144
hp = 14663
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290

296
data/battle_param/ep4_multi_ultimate.toml

@ -0,0 +1,296 @@
[Boota]
atp = 1986
mst = 0
evp = 653
hp = 2940
dfp = 691
ata = 310
lck = 58
esp = 35
exp = 398
[ZeBoota]
atp = 2085
mst = 0
evp = 693
hp = 3028
dfp = 760
ata = 324
lck = 58
esp = 35
exp = 418
[BaBoota]
atp = 2189
mst = 0
evp = 721
hp = 3109
dfp = 836
ata = 338
lck = 60
esp = 35
exp = 437
[SandRappyCrater]
atp = 2035
mst = 0
evp = 633
hp = 2896
dfp = 657
ata = 314
lck = 95
esp = 45
exp = 388
[SandRappyDesert]
atp = 2366
mst = 3125
evp = 909
hp = 7022
dfp = 810
ata = 322
lck = 127
esp = 33
exp = 851
[ZuCrater]
atp = 2321
mst = 0
evp = 549
hp = 4285
dfp = 782
ata = 350
lck = 73
esp = 32
exp = 492
[PazuzuCrater]
atp = 2785
mst = 0
evp = 612
hp = 6340
dfp = 837
ata = 375
lck = 78
esp = 37
exp = 1178
[Astark]
atp = 2231
mst = 0
evp = 592
hp = 4892
dfp = 670
ata = 318
lck = 65
esp = 50
exp = 507
[SatelliteLizardCrater]
atp = 2110
mst = 0
evp = 762
hp = 3036
dfp = 782
ata = 336
lck = 62
esp = 37
exp = 422
[YowieCrater]
atp = 2208
mst = 0
evp = 869
hp = 3139
dfp = 848
ata = 336
lck = 67
esp = 39
exp = 446
[Dorphon]
atp = 2925
mst = 0
evp = 721
hp = 9732
dfp = 818
ata = 338
lck = 60
esp = 32
exp = 796
[DorphonEclair]
atp = 3012
mst = 0
evp = 793
hp = 12652
dfp = 859
ata = 350
lck = 73
esp = 39
exp = 1355
[Goran]
atp = 2371
mst = 0
evp = 716
hp = 3550
dfp = 809
ata = 330
lck = 58
esp = 21
exp = 607
[GoranDetonator]
atp = 2504
mst = 0
evp = 728
hp = 3664
dfp = 864
ata = 340
lck = 58
esp = 32
exp = 636
[PyroGoran]
atp = 2947
mst = 0
evp = 825
hp = 5990
dfp = 1017
ata = 385
lck = 66
esp = 36
exp = 802
[DelRappyCrater]
atp = 3007
mst = 0
evp = 681
hp = 3373
dfp = 768
ata = 314
lck = 95
esp = 45
exp = 577
[DelRappyDesert]
atp = 3496
mst = 3125
evp = 978
hp = 8178
dfp = 948
ata = 323
lck = 127
esp = 33
exp = 1266
[MerissaA]
atp = 2782
mst = 0
evp = 636
hp = 3700
dfp = 647
ata = 298
lck = 58
esp = 58
exp = 638
[MerissaAA]
atp = 3338
mst = 0
evp = 668
hp = 5022
dfp = 692
ata = 536
lck = 93
esp = 58
exp = 1424
[ZuDesert]
atp = 3193
mst = 0
evp = 681
hp = 3977
dfp = 872
ata = 391
lck = 77
esp = 50
exp = 679
[PazuzuDesert]
atp = 3790
mst = 0
evp = 715
hp = 7769
dfp = 933
ata = 418
lck = 82
esp = 33
exp = 1496
[SatelliteLizardDesert]
atp = 2841
mst = 0
evp = 768
hp = 3720
dfp = 1042
ata = 338
lck = 64
esp = 38
exp = 643
[YowieDesert]
atp = 2998
mst = 0
evp = 878
hp = 4021
dfp = 1114
ata = 338
lck = 69
esp = 40
exp = 672
[Girtablulu]
atp = 2924
mst = 0
evp = 580
hp = 17068
dfp = 736
ata = 384
lck = 56
esp = 41
exp = 788
[SaintMillion]
atp = 4410
mst = 0
evp = 828
hp = 26393
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750
[Shambertin]
atp = 4631
mst = 0
evp = 828
hp = 27945
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750
[Kondrieu]
atp = 4399
mst = 0
evp = 828
hp = 31438
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750

296
data/battle_param/ep4_multi_veryhard.toml

@ -0,0 +1,296 @@
[Boota]
atp = 1121
mst = 0
evp = 258
hp = 1418
dfp = 347
ata = 260
lck = 38
esp = 35
exp = 128
[ZeBoota]
atp = 1233
mst = 0
evp = 278
hp = 1465
dfp = 381
ata = 273
lck = 38
esp = 35
exp = 139
[BaBoota]
atp = 1357
mst = 0
evp = 292
hp = 1508
dfp = 419
ata = 286
lck = 40
esp = 35
exp = 145
[SandRappyCrater]
atp = 1177
mst = 0
evp = 248
hp = 1395
dfp = 330
ata = 261
lck = 75
esp = 45
exp = 123
[SandRappyDesert]
atp = 1302
mst = 500
evp = 380
hp = 3390
dfp = 414
ata = 269
lck = 107
esp = 32
exp = 622
[ZuCrater]
atp = 1277
mst = 0
evp = 213
hp = 1821
dfp = 392
ata = 310
lck = 52
esp = 32
exp = 158
[PazuzuCrater]
atp = 1533
mst = 0
evp = 192
hp = 2912
dfp = 419
ata = 332
lck = 56
esp = 36
exp = 797
[Astark]
atp = 1256
mst = 0
evp = 176
hp = 2422
dfp = 342
ata = 270
lck = 45
esp = 45
exp = 162
[SatelliteLizardCrater]
atp = 1246
mst = 0
evp = 318
hp = 1482
dfp = 386
ata = 298
lck = 46
esp = 36
exp = 142
[YowieCrater]
atp = 1378
mst = 0
evp = 368
hp = 1596
dfp = 424
ata = 300
lck = 52
esp = 38
exp = 148
[Dorphon]
atp = 1609
mst = 0
evp = 292
hp = 5081
dfp = 418
ata = 286
lck = 40
esp = 32
exp = 258
[DorphonEclair]
atp = 1658
mst = 0
evp = 321
hp = 6605
dfp = 439
ata = 310
lck = 52
esp = 38
exp = 916
[Goran]
atp = 1400
mst = 0
evp = 291
hp = 1758
dfp = 417
ata = 275
lck = 38
esp = 20
exp = 194
[GoranDetonator]
atp = 1465
mst = 0
evp = 297
hp = 1819
dfp = 449
ata = 285
lck = 38
esp = 31
exp = 204
[PyroGoran]
atp = 1724
mst = 0
evp = 337
hp = 2973
dfp = 529
ata = 325
lck = 44
esp = 32
exp = 257
[DelRappyCrater]
atp = 1583
mst = 0
evp = 277
hp = 1670
dfp = 396
ata = 261
lck = 75
esp = 45
exp = 185
[DelRappyDesert]
atp = 1752
mst = 500
evp = 424
hp = 4059
dfp = 498
ata = 269
lck = 107
esp = 32
exp = 934
[MerissaA]
atp = 1465
mst = 0
evp = 256
hp = 1837
dfp = 334
ata = 248
lck = 38
esp = 38
exp = 204
[MerissaAA]
atp = 1655
mst = 0
evp = 268
hp = 2460
dfp = 357
ata = 447
lck = 61
esp = 38
exp = 965
[ZuDesert]
atp = 1653
mst = 0
evp = 273
hp = 2005
dfp = 454
ata = 354
lck = 55
esp = 50
exp = 224
[PazuzuDesert]
atp = 1838
mst = 0
evp = 287
hp = 3856
dfp = 486
ata = 379
lck = 59
esp = 32
exp = 1013
[SatelliteLizardDesert]
atp = 1474
mst = 0
evp = 322
hp = 1842
dfp = 452
ata = 300
lck = 49
esp = 32
exp = 209
[YowieDesert]
atp = 1579
mst = 0
evp = 372
hp = 1992
dfp = 490
ata = 312
lck = 54
esp = 34
exp = 216
[Girtablulu]
atp = 1438
mst = 0
evp = 228
hp = 9762
dfp = 378
ata = 322
lck = 36
esp = 35
exp = 258
[SaintMillion]
atp = 2447
mst = 0
evp = 246
hp = 19320
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500
[Shambertin]
atp = 2936
mst = 0
evp = 246
hp = 22460
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500
[Kondrieu]
atp = 2789
mst = 0
evp = 246
hp = 27169
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500

296
data/battle_param/ep4_solo_hard.toml

@ -0,0 +1,296 @@
[Boota]
atp = 495
mst = 0
evp = 155
hp = 769
dfp = 129
ata = 210
lck = 23
esp = 20
exp = 64
[ZeBoota]
atp = 544
mst = 0
evp = 169
hp = 808
dfp = 142
ata = 222
lck = 23
esp = 20
exp = 70
[BaBoota]
atp = 599
mst = 0
evp = 179
hp = 844
dfp = 156
ata = 234
lck = 25
esp = 20
exp = 77
[SandRappyCrater]
atp = 520
mst = 0
evp = 162
hp = 700
dfp = 131
ata = 209
lck = 60
esp = 30
exp = 61
[SandRappyDesert]
atp = 644
mst = 200
evp = 264
hp = 1984
dfp = 171
ata = 215
lck = 92
esp = 31
exp = 390
[ZuCrater]
atp = 631
mst = 0
evp = 125
hp = 1022
dfp = 137
ata = 265
lck = 37
esp = 19
exp = 85
[PazuzuCrater]
atp = 758
mst = 0
evp = 138
hp = 1839
dfp = 146
ata = 284
lck = 39
esp = 21
exp = 617
[Astark]
atp = 615
mst = 0
evp = 101
hp = 1251
dfp = 134
ata = 220
lck = 35
esp = 35
exp = 88
[SatelliteLizardCrater]
atp = 560
mst = 0
evp = 202
hp = 707
dfp = 158
ata = 242
lck = 28
esp = 21
exp = 72
[YowieCrater]
atp = 609
mst = 0
evp = 238
hp = 736
dfp = 170
ata = 244
lck = 32
esp = 22
exp = 80
[Dorphon]
atp = 583
mst = 0
evp = 157
hp = 2432
dfp = 121
ata = 234
lck = 25
esp = 19
exp = 165
[DorphonEclair]
atp = 601
mst = 0
evp = 173
hp = 2874
dfp = 127
ata = 265
lck = 37
esp = 22
exp = 709
[Goran]
atp = 719
mst = 0
evp = 180
hp = 936
dfp = 176
ata = 220
lck = 23
esp = 20
exp = 125
[GoranDetonator]
atp = 768
mst = 0
evp = 184
hp = 979
dfp = 196
ata = 230
lck = 23
esp = 30
exp = 134
[PyroGoran]
atp = 904
mst = 0
evp = 209
hp = 1281
dfp = 247
ata = 264
lck = 28
esp = 34
exp = 169
[DelRappyCrater]
atp = 830
mst = 0
evp = 171
hp = 830
dfp = 179
ata = 209
lck = 60
esp = 30
exp = 119
[DelRappyDesert]
atp = 1028
mst = 200
evp = 278
hp = 2352
dfp = 234
ata = 215
lck = 92
esp = 31
exp = 759
[MerissaA]
atp = 768
mst = 0
evp = 156
hp = 923
dfp = 151
ata = 199
lck = 23
esp = 23
exp = 131
[MerissaAA]
atp = 999
mst = 0
evp = 164
hp = 1274
dfp = 169
ata = 357
lck = 37
esp = 23
exp = 835
[ZuDesert]
atp = 902
mst = 0
evp = 167
hp = 1153
dfp = 185
ata = 299
lck = 39
esp = 33
exp = 152
[PazuzuDesert]
atp = 1073
mst = 0
evp = 175
hp = 2394
dfp = 65338
ata = 320
lck = 41
esp = 31
exp = 877
[SatelliteLizardDesert]
atp = 774
mst = 0
evp = 211
hp = 861
dfp = 213
ata = 248
lck = 29
esp = 31
exp = 136
[YowieDesert]
atp = 833
mst = 0
evp = 250
hp = 944
dfp = 228
ata = 256
lck = 33
esp = 32
exp = 148
[Girtablulu]
atp = 822
mst = 0
evp = 136
hp = 4445
dfp = 179
ata = 252
lck = 23
esp = 33
exp = 166
[SaintMillion]
atp = 1859
mst = 0
evp = 216
hp = 13800
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010
[Shambertin]
atp = 2230
mst = 0
evp = 216
hp = 16560
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010
[Kondrieu]
atp = 2119
mst = 0
evp = 216
hp = 20700
dfp = 400
ata = 380
lck = 75
esp = 100
exp = 10010

296
data/battle_param/ep4_solo_normal.toml

@ -0,0 +1,296 @@
[Boota]
atp = 153
mst = 0
evp = 92
hp = 119
dfp = 0
ata = 110
lck = 8
esp = 10
exp = 17
[ZeBoota]
atp = 168
mst = 0
evp = 104
hp = 137
dfp = 42
ata = 120
lck = 8
esp = 10
exp = 19
[BaBoota]
atp = 185
mst = 0
evp = 112
hp = 163
dfp = 47
ata = 130
lck = 10
esp = 10
exp = 21
[SandRappyCrater]
atp = 161
mst = 0
evp = 80
hp = 113
dfp = 28
ata = 109
lck = 45
esp = 28
exp = 16
[SandRappyDesert]
atp = 237
mst = 120
evp = 157
hp = 447
dfp = 57
ata = 112
lck = 77
esp = 29
exp = 172
[ZuCrater]
atp = 232
mst = 0
evp = 71
hp = 390
dfp = 63
ata = 150
lck = 21
esp = 9
exp = 33
[PazuzuCrater]
atp = 279
mst = 0
evp = 78
hp = 819
dfp = 67
ata = 161
lck = 22
esp = 11
exp = 337
[Astark]
atp = 230
mst = 0
evp = 47
hp = 374
dfp = 59
ata = 151
lck = 19
esp = 47
exp = 36
[SatelliteLizardCrater]
atp = 174
mst = 0
evp = 132
hp = 145
dfp = 47
ata = 134
lck = 12
esp = 16
exp = 20
[YowieCrater]
atp = 191
mst = 0
evp = 163
hp = 202
dfp = 53
ata = 136
lck = 16
esp = 28
exp = 22
[Dorphon]
atp = 273
mst = 0
evp = 112
hp = 1369
dfp = 46
ata = 130
lck = 10
esp = 9
exp = 73
[DorphonEclair]
atp = 282
mst = 0
evp = 123
hp = 1780
dfp = 48
ata = 150
lck = 21
esp = 28
exp = 388
[Goran]
atp = 324
mst = 0
evp = 113
hp = 320
dfp = 75
ata = 115
lck = 8
esp = 17
exp = 31
[GoranDetonator]
atp = 361
mst = 0
evp = 116
hp = 351
dfp = 90
ata = 125
lck = 8
esp = 28
exp = 36
[PyroGoran]
atp = 425
mst = 0
evp = 132
hp = 459
dfp = 106
ata = 149
lck = 11
esp = 32
exp = 50
[DelRappyCrater]
atp = 390
mst = 0
evp = 107
hp = 283
dfp = 76
ata = 109
lck = 45
esp = 28
exp = 29
[DelRappyDesert]
atp = 577
mst = 120
evp = 194
hp = 1414
dfp = 113
ata = 113
lck = 77
esp = 29
exp = 316
[MerissaA]
atp = 361
mst = 0
evp = 96
hp = 331
dfp = 64
ata = 104
lck = 8
esp = 21
exp = 32
[MerissaAA]
atp = 506
mst = 0
evp = 101
hp = 563
dfp = 69
ata = 187
lck = 13
esp = 21
exp = 454
[ZuDesert]
atp = 455
mst = 0
evp = 103
hp = 521
dfp = 92
ata = 171
lck = 22
esp = 31
exp = 46
[PazuzuDesert]
atp = 600
mst = 0
evp = 108
hp = 1439
dfp = 99
ata = 182
lck = 24
esp = 28
exp = 477
[SatelliteLizardDesert]
atp = 371
mst = 0
evp = 138
hp = 314
dfp = 99
ata = 142
lck = 16
esp = 27
exp = 38
[YowieDesert]
atp = 389
mst = 0
evp = 167
hp = 362
dfp = 104
ata = 146
lck = 18
esp = 29
exp = 43
[Girtablulu]
atp = 420
mst = 0
evp = 80
hp = 2319
dfp = 72
ata = 124
lck = 6
esp = 30
exp = 74
[SaintMillion]
atp = 1155
mst = 0
evp = 144
hp = 9775
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290
[Shambertin]
atp = 1386
mst = 0
evp = 144
hp = 11730
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290
[Kondrieu]
atp = 1317
mst = 0
evp = 144
hp = 14663
dfp = 277
ata = 270
lck = 75
esp = 100
exp = 4290

296
data/battle_param/ep4_solo_ultimate.toml

@ -0,0 +1,296 @@
[Boota]
atp = 1489
mst = 0
evp = 523
hp = 2205
dfp = 484
ata = 310
lck = 58
esp = 35
exp = 398
[ZeBoota]
atp = 1564
mst = 0
evp = 555
hp = 2271
dfp = 532
ata = 324
lck = 58
esp = 35
exp = 418
[BaBoota]
atp = 1642
mst = 0
evp = 577
hp = 2332
dfp = 585
ata = 338
lck = 60
esp = 35
exp = 437
[SandRappyCrater]
atp = 1526
mst = 0
evp = 506
hp = 2027
dfp = 493
ata = 314
lck = 95
esp = 45
exp = 388
[SandRappyDesert]
atp = 1775
mst = 3000
evp = 727
hp = 4915
dfp = 608
ata = 322
lck = 127
esp = 33
exp = 851
[ZuCrater]
atp = 1741
mst = 0
evp = 439
hp = 3214
dfp = 508
ata = 350
lck = 73
esp = 32
exp = 492
[PazuzuCrater]
atp = 2089
mst = 0
evp = 490
hp = 4755
dfp = 544
ata = 375
lck = 78
esp = 37
exp = 1178
[Astark]
atp = 1673
mst = 0
evp = 474
hp = 3180
dfp = 469
ata = 318
lck = 65
esp = 50
exp = 507
[SatelliteLizardCrater]
atp = 1583
mst = 0
evp = 610
hp = 1973
dfp = 587
ata = 336
lck = 62
esp = 37
exp = 422
[YowieCrater]
atp = 1656
mst = 0
evp = 695
hp = 2040
dfp = 636
ata = 336
lck = 67
esp = 39
exp = 446
[Dorphon]
atp = 2047
mst = 0
evp = 577
hp = 4379
dfp = 491
ata = 338
lck = 60
esp = 32
exp = 796
[DorphonEclair]
atp = 2109
mst = 0
evp = 635
hp = 5693
dfp = 515
ata = 350
lck = 73
esp = 39
exp = 1355
[Goran]
atp = 1778
mst = 0
evp = 573
hp = 2663
dfp = 566
ata = 330
lck = 58
esp = 21
exp = 607
[GoranDetonator]
atp = 1878
mst = 0
evp = 583
hp = 2748
dfp = 605
ata = 340
lck = 58
esp = 32
exp = 636
[PyroGoran]
atp = 2210
mst = 0
evp = 660
hp = 3594
dfp = 762
ata = 385
lck = 66
esp = 36
exp = 802
[DelRappyCrater]
atp = 2255
mst = 0
evp = 545
hp = 2361
dfp = 576
ata = 314
lck = 95
esp = 45
exp = 577
[DelRappyDesert]
atp = 2622
mst = 3000
evp = 782
hp = 5725
dfp = 711
ata = 323
lck = 127
esp = 33
exp = 1266
[MerissaA]
atp = 2087
mst = 0
evp = 509
hp = 2590
dfp = 485
ata = 298
lck = 58
esp = 58
exp = 638
[MerissaAA]
atp = 2504
mst = 0
evp = 534
hp = 3515
dfp = 519
ata = 536
lck = 93
esp = 58
exp = 1424
[ZuDesert]
atp = 2395
mst = 0
evp = 544
hp = 2983
dfp = 567
ata = 391
lck = 77
esp = 50
exp = 679
[PazuzuDesert]
atp = 2843
mst = 0
evp = 572
hp = 5827
dfp = 606
ata = 418
lck = 82
esp = 33
exp = 1496
[SatelliteLizardDesert]
atp = 2131
mst = 0
evp = 614
hp = 2418
dfp = 781
ata = 338
lck = 64
esp = 38
exp = 643
[YowieDesert]
atp = 2249
mst = 0
evp = 702
hp = 2614
dfp = 835
ata = 338
lck = 69
esp = 40
exp = 672
[Girtablulu]
atp = 2339
mst = 0
evp = 464
hp = 7681
dfp = 589
ata = 384
lck = 56
esp = 41
exp = 788
[SaintMillion]
atp = 4410
mst = 0
evp = 828
hp = 26393
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750
[Shambertin]
atp = 4631
mst = 0
evp = 828
hp = 27945
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750
[Kondrieu]
atp = 4399
mst = 0
evp = 828
hp = 31438
dfp = 1076
ata = 555
lck = 75
esp = 100
exp = 61750

296
data/battle_param/ep4_solo_veryhard.toml

@ -0,0 +1,296 @@
[Boota]
atp = 841
mst = 0
evp = 207
hp = 1063
dfp = 243
ata = 260
lck = 38
esp = 35
exp = 128
[ZeBoota]
atp = 925
mst = 0
evp = 222
hp = 1099
dfp = 267
ata = 273
lck = 38
esp = 35
exp = 139
[BaBoota]
atp = 1017
mst = 0
evp = 233
hp = 1131
dfp = 293
ata = 286
lck = 40
esp = 35
exp = 145
[SandRappyCrater]
atp = 883
mst = 0
evp = 198
hp = 977
dfp = 248
ata = 261
lck = 75
esp = 45
exp = 123
[SandRappyDesert]
atp = 977
mst = 450
evp = 304
hp = 2373
dfp = 311
ata = 269
lck = 107
esp = 32
exp = 622
[ZuCrater]
atp = 958
mst = 0
evp = 170
hp = 1365
dfp = 255
ata = 310
lck = 52
esp = 32
exp = 158
[PazuzuCrater]
atp = 1150
mst = 0
evp = 154
hp = 2184
dfp = 273
ata = 332
lck = 56
esp = 36
exp = 797
[Astark]
atp = 942
mst = 0
evp = 141
hp = 1574
dfp = 239
ata = 270
lck = 45
esp = 45
exp = 162
[SatelliteLizardCrater]
atp = 935
mst = 0
evp = 254
hp = 963
dfp = 290
ata = 298
lck = 46
esp = 36
exp = 142
[YowieCrater]
atp = 1034
mst = 0
evp = 294
hp = 1037
dfp = 318
ata = 300
lck = 52
esp = 38
exp = 148
[Dorphon]
atp = 1046
mst = 0
evp = 233
hp = 2795
dfp = 251
ata = 286
lck = 40
esp = 32
exp = 258
[DorphonEclair]
atp = 1077
mst = 0
evp = 257
hp = 3303
dfp = 263
ata = 310
lck = 52
esp = 38
exp = 916
[Goran]
atp = 1050
mst = 0
evp = 233
hp = 1318
dfp = 292
ata = 275
lck = 38
esp = 20
exp = 194
[GoranDetonator]
atp = 1099
mst = 0
evp = 238
hp = 1364
dfp = 315
ata = 285
lck = 38
esp = 31
exp = 204
[PyroGoran]
atp = 1293
mst = 0
evp = 269
hp = 1784
dfp = 397
ata = 325
lck = 44
esp = 32
exp = 257
[DelRappyCrater]
atp = 1187
mst = 0
evp = 221
hp = 1169
dfp = 297
ata = 261
lck = 75
esp = 45
exp = 185
[DelRappyDesert]
atp = 1314
mst = 450
evp = 339
hp = 2841
dfp = 374
ata = 269
lck = 107
esp = 32
exp = 934
[MerissaA]
atp = 1099
mst = 0
evp = 204
hp = 1286
dfp = 250
ata = 248
lck = 38
esp = 38
exp = 204
[MerissaAA]
atp = 1241
mst = 0
evp = 215
hp = 1722
dfp = 268
ata = 447
lck = 61
esp = 38
exp = 965
[ZuDesert]
atp = 1239
mst = 0
evp = 219
hp = 1504
dfp = 295
ata = 354
lck = 55
esp = 50
exp = 224
[PazuzuDesert]
atp = 1379
mst = 0
evp = 230
hp = 2892
dfp = 316
ata = 379
lck = 59
esp = 32
exp = 1013
[SatelliteLizardDesert]
atp = 1106
mst = 0
evp = 258
hp = 1197
dfp = 339
ata = 300
lck = 49
esp = 32
exp = 209
[YowieDesert]
atp = 1184
mst = 0
evp = 298
hp = 1295
dfp = 368
ata = 312
lck = 54
esp = 34
exp = 216
[Girtablulu]
atp = 1150
mst = 0
evp = 182
hp = 4881
dfp = 302
ata = 322
lck = 36
esp = 35
exp = 258
[SaintMillion]
atp = 2447
mst = 0
evp = 246
hp = 19320
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500
[Shambertin]
atp = 2936
mst = 0
evp = 246
hp = 22460
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500
[Kondrieu]
atp = 2789
mst = 0
evp = 246
hp = 27169
dfp = 575
ata = 422
lck = 75
esp = 100
exp = 19500

5
data/quests.toml

@ -27,4 +27,9 @@ dat = "q102-ext-bb.dat"
[[Retrieval.quests]]
bin = "q233-ext-bb.bin"
dat = "q233-ext-bb.dat"
#drop_table = "q102-drops"
[[Retrieval.quests]]
bin = "q236-ext-bb.bin"
dat = "q236-ext-bb.dat"
#drop_table = "q102-drops"

80
src/bin/main.rs

@ -65,7 +65,7 @@ fn main() {
entity_gateway.create_character(character).await;
let mut character = NewCharacterEntity::new(fake_user.id);
character.slot = 2;
character.name = "no progress".into();
character.name = "ItemRefactor".into();
character.exp = 80000000;
character.meseta = 999999;
let character = entity_gateway.create_character(character).await.unwrap();
@ -80,12 +80,88 @@ fn main() {
attrs: [Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Hit, value: 40}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Dark, value: 30}),
None,],
tekked: false,
tekked: true,
}
),
location: ItemLocation::Inventory {
character_id: character.id,
slot: 0,
equipped: false,
}
}).await;
entity_gateway.create_item(
NewItemEntity {
item: ItemDetail::Weapon(
item::weapon::Weapon {
weapon: item::weapon::WeaponType::Handgun,
grind: 5,
special: Some(item::weapon::WeaponSpecial::Charge),
attrs: [Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Hit, value: 40}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Dark, value: 30}),
None,],
tekked: true,
}
),
location: ItemLocation::Inventory {
character_id: character.id,
slot: 1,
equipped: false,
}
}).await;
entity_gateway.create_item(
NewItemEntity {
item: ItemDetail::Weapon(
item::weapon::Weapon {
weapon: item::weapon::WeaponType::Vjaya,
grind: 5,
special: Some(item::weapon::WeaponSpecial::Charge),
attrs: [Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Hit, value: 40}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Dark, value: 100}),
None,],
tekked: true,
}
),
location: ItemLocation::Inventory {
character_id: character.id,
slot: 2,
equipped: true,
}
}).await;
entity_gateway.create_item(
NewItemEntity {
item: ItemDetail::Weapon(
item::weapon::Weapon {
weapon: item::weapon::WeaponType::Vulcan,
grind: 5,
special: Some(item::weapon::WeaponSpecial::Charge),
attrs: [Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Hit, value: 100}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Dark, value: 100}),
None,],
tekked: true,
}
),
location: ItemLocation::Inventory {
character_id: character.id,
slot: 3,
equipped: true,
}
}).await;
entity_gateway.create_item(
NewItemEntity {
item: ItemDetail::Weapon(
item::weapon::Weapon {
weapon: item::weapon::WeaponType::DarkFlow,
grind: 5,
special: Some(item::weapon::WeaponSpecial::Charge),
attrs: [Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Hit, value: 100}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Dark, value: 100}),
Some(item::weapon::WeaponAttribute{attr: item::weapon::Attribute::Native, value: 100}),],
tekked: true,
}
),
location: ItemLocation::Inventory {
character_id: character.id,
slot: 4,
equipped: true,
}
}).await;

862
src/ship/map.rs

@ -9,7 +9,7 @@ use rand::Rng;
use thiserror::Error;
use crate::ship::monster::MonsterType;
use crate::ship::room::Episode;
use crate::ship::room::{Episode, RoomMode};
#[derive(Debug, Copy, Clone)]
struct RawMapEnemy {
@ -85,89 +85,170 @@ pub struct MapEnemy {
impl MapEnemy {
fn from_raw(enemy: RawMapEnemy, episode: &Episode, map_area: &MapArea /*, battleparam */) -> Result<MapEnemy, MapEnemyError> {
let monster = match (enemy, episode) {
(RawMapEnemy {id: 64, ..}, _) => MonsterType::Hildebear,
(RawMapEnemy {id: 65, ..}, Episode::Four) => MonsterType::SandRappy,
(RawMapEnemy {id: 65, ..}, _) => MonsterType::RagRappy,
(RawMapEnemy {id: 66, ..}, _) => MonsterType::Monest,
(RawMapEnemy {id: 67, field2: 0, ..}, _) => MonsterType::SavageWolf,
(RawMapEnemy {id: 67, ..}, _) => MonsterType::BarbarousWolf,
(RawMapEnemy {id: 68, skin: 0, ..}, _) => MonsterType::Booma,
(RawMapEnemy {id: 68, skin: 1, ..}, _) => MonsterType::Gobooma,
(RawMapEnemy {id: 68, skin: 2, ..}, _) => MonsterType::Gigobooma,
(RawMapEnemy {id: 96, ..}, _) => MonsterType::GrassAssassin,
(RawMapEnemy {id: 97, ..}, Episode::Two) => MonsterType::DelLily,
(RawMapEnemy {id: 97, ..}, _) => MonsterType::PoisonLily,
(RawMapEnemy {id: 98, ..}, _) => MonsterType::NanoDragon,
(RawMapEnemy {id: 99, skin: 0, ..}, _) => MonsterType::EvilShark,
(RawMapEnemy {id: 99, skin: 1, ..}, _) => MonsterType::PalShark,
(RawMapEnemy {id: 99, skin: 2, ..}, _) => MonsterType::GuilShark,
(RawMapEnemy {id: 100, ..}, _) => MonsterType::PofuillySlime,
(RawMapEnemy {id: 101, ..}, _) => MonsterType::PanArms,
(RawMapEnemy {id: 128, skin: 0, ..}, _) => MonsterType::Dubchic,
(RawMapEnemy {id: 128, skin: 1, ..}, _) => MonsterType::Gillchic,
(RawMapEnemy {id: 129, ..}, _) => MonsterType::Garanz,
(RawMapEnemy {id: 130, field2: 0, ..}, _) => MonsterType::SinowBeat,
(RawMapEnemy {id: 130, ..}, _) => MonsterType::SinowGold,
(RawMapEnemy {id: 131, ..}, _) => MonsterType::Canadine,
(RawMapEnemy {id: 132, ..}, _) => MonsterType::Canane,
(RawMapEnemy {id: 133, ..}, _) => MonsterType::Dubwitch,
(RawMapEnemy {id: 160, ..}, _) => MonsterType::Delsaber,
(RawMapEnemy {id: 161, ..}, _) => MonsterType::ChaosSorcerer,
(RawMapEnemy {id: 162, ..}, _) => MonsterType::DarkGunner,
(RawMapEnemy {id: 164, ..}, _) => MonsterType::ChaosBringer,
(RawMapEnemy {id: 165, ..}, _) => MonsterType::DarkBelra,
(RawMapEnemy {id: 166, skin: 0, ..}, _) => MonsterType::Dimenian,
(RawMapEnemy {id: 166, skin: 1, ..}, _) => MonsterType::LaDimenian,
(RawMapEnemy {id: 166, skin: 2, ..}, _) => MonsterType::SoDimenian,
(RawMapEnemy {id: 167, ..}, _) => MonsterType::Bulclaw,
(RawMapEnemy {id: 168, ..}, _) => MonsterType::Claw,
(RawMapEnemy {id: 192, ..}, Episode::One) => MonsterType::Dragon,
(RawMapEnemy {id: 192, ..}, Episode::Two) => MonsterType::GalGryphon,
(RawMapEnemy {id: 193, ..}, _) => MonsterType::DeRolLe,
(RawMapEnemy {id: 194, ..}, _) => MonsterType::VolOptPartA,
(RawMapEnemy {id: 197, ..}, _) => MonsterType::VolOpt,
(RawMapEnemy {id: 200, ..}, _) => MonsterType::DarkFalz,
(RawMapEnemy {id: 202, ..}, _) => MonsterType::OlgaFlow,
(RawMapEnemy {id: 203, ..}, _) => MonsterType::BarbaRay,
(RawMapEnemy {id: 204, ..}, _) => MonsterType::GolDragon,
(RawMapEnemy {id: 212, skin: 0, ..}, _) => MonsterType::SinowBerill,
(RawMapEnemy {id: 212, skin: 1, ..}, _) => MonsterType::SinowSpigell,
(RawMapEnemy {id: 213, skin: 0, ..}, _) => MonsterType::Merillia,
(RawMapEnemy {id: 213, skin: 1, ..}, _) => MonsterType::Meriltas,
(RawMapEnemy {id: 214, skin: 0, ..}, _) => MonsterType::Mericarol,
(RawMapEnemy {id: 214, skin: 1, ..}, _) => MonsterType::Merikle,
(RawMapEnemy {id: 214, skin: 2, ..}, _) => MonsterType::Mericus,
(RawMapEnemy {id: 215, skin: 0, ..}, _) => MonsterType::UlGibbon,
(RawMapEnemy {id: 215, skin: 1, ..}, _) => MonsterType::ZolGibbon,
(RawMapEnemy {id: 216, ..}, _) => MonsterType::Gibbles,
(RawMapEnemy {id: 217, ..}, _) => MonsterType::Gee,
(RawMapEnemy {id: 218, ..}, _) => MonsterType::GiGue,
(RawMapEnemy {id: 219, ..}, _) => MonsterType::Deldepth,
(RawMapEnemy {id: 220, ..}, _) => MonsterType::Delbiter,
(RawMapEnemy {id: 221, skin: 0, ..}, _) => MonsterType::Dolmdarl,
(RawMapEnemy {id: 221, skin: 1, ..}, _) => MonsterType::Dolmolm,
(RawMapEnemy {id: 222, ..}, _) => MonsterType::Morfos,
(RawMapEnemy {id: 223, ..}, _) => MonsterType::Recobox,
(RawMapEnemy {id: 224, skin: 0, ..}, _) => MonsterType::SinowZoa,
(RawMapEnemy {id: 224, skin: 1, ..}, _) => MonsterType::SinowZele,
(RawMapEnemy {id: 224, ..}, _) => MonsterType::Epsilon,
(RawMapEnemy {id: 225, ..}, _) => MonsterType::IllGill,
(RawMapEnemy {id: 272, ..}, _) => MonsterType::Astark,
(RawMapEnemy {id: 273, field2: 0, ..}, _) => MonsterType::SatelliteLizard,
(RawMapEnemy {id: 273, ..}, _) => MonsterType::Yowie,
(RawMapEnemy {id: 274, ..}, _) => MonsterType::MerissaA,
(RawMapEnemy {id: 275, ..}, _) => MonsterType::Girtablulu,
(RawMapEnemy {id: 276, ..}, _) => MonsterType::Zu,
(RawMapEnemy {id: 277, skin: 0, ..}, _) => MonsterType::Boota,
(RawMapEnemy {id: 277, skin: 1, ..}, _) => MonsterType::ZeBoota,
(RawMapEnemy {id: 277, skin: 2, ..}, _) => MonsterType::BaBoota,
(RawMapEnemy {id: 278, ..}, _) => MonsterType::Dorphon,
(RawMapEnemy {id: 279, skin: 0, ..}, _) => MonsterType::Goran,
(RawMapEnemy {id: 279, skin: 1, ..}, _) => MonsterType::PyroGoran,
(RawMapEnemy {id: 279, skin: 2, ..}, _) => MonsterType::GoranDetonator,
(RawMapEnemy {id: 281, skin: 0, ..}, _) => MonsterType::SaintMillion,
(RawMapEnemy {id: 281, skin: 1, ..}, _) => MonsterType::Shambertin,
// TODO: rare enemies ep1-4, tower lilys, event rappies, ult variants?
let monster = match map_area {
MapArea::Forest1 | MapArea::Forest2 | MapArea::Dragon |
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 | MapArea::DeRolLe |
MapArea::Mines1 | MapArea::Mines2 | MapArea::VolOpt |
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 | MapArea::DarkFalz => {
match (enemy, episode) {
(RawMapEnemy {id: 64, ..}, _) => MonsterType::Hildebear,
// (RawMapEnemy {id: 64, ..}, _) => MonsterType::Hildeblue,
(RawMapEnemy {id: 65, ..}, _) => MonsterType::RagRappy,
// (RawMapEnemy {id: 65, ..}, _) => MonsterType::AlRappy,
(RawMapEnemy {id: 66, ..}, _) => MonsterType::Monest,
(RawMapEnemy {id: 67, field2: 0, ..}, _) => MonsterType::SavageWolf,
(RawMapEnemy {id: 67, ..}, _) => MonsterType::BarbarousWolf,
(RawMapEnemy {id: 68, skin: 0, ..}, _) => MonsterType::Booma,
(RawMapEnemy {id: 68, skin: 1, ..}, _) => MonsterType::Gobooma,
(RawMapEnemy {id: 68, skin: 2, ..}, _) => MonsterType::Gigobooma,
(RawMapEnemy {id: 96, ..}, _) => MonsterType::GrassAssassin,
(RawMapEnemy {id: 97, ..}, _) => MonsterType::PoisonLily,
// (RawMapEnemy {id: 97, ..}, _) => MonsterType::NarLily,
(RawMapEnemy {id: 98, ..}, _) => MonsterType::NanoDragon,
(RawMapEnemy {id: 99, skin: 0, ..}, _) => MonsterType::EvilShark,
(RawMapEnemy {id: 99, skin: 1, ..}, _) => MonsterType::PalShark,
(RawMapEnemy {id: 99, skin: 2, ..}, _) => MonsterType::GuilShark,
(RawMapEnemy {id: 100, ..}, _) => MonsterType::PofuillySlime,
// (RawMapEnemy {id: 100, ..}, _) => MonsterType::PouillySlime,
(RawMapEnemy {id: 101, ..}, _) => MonsterType::PanArms,
(RawMapEnemy {id: 128, skin: 0, ..}, _) => MonsterType::Dubchic,
(RawMapEnemy {id: 128, skin: 1, ..}, _) => MonsterType::Gillchic,
(RawMapEnemy {id: 129, ..}, _) => MonsterType::Garanz,
(RawMapEnemy {id: 130, field2: 0, ..}, _) => MonsterType::SinowBeat,
(RawMapEnemy {id: 130, ..}, _) => MonsterType::SinowGold,
(RawMapEnemy {id: 131, ..}, _) => MonsterType::Canadine,
(RawMapEnemy {id: 132, ..}, _) => MonsterType::Canane,
(RawMapEnemy {id: 133, ..}, _) => MonsterType::Dubwitch,
(RawMapEnemy {id: 160, ..}, _) => MonsterType::Delsaber,
(RawMapEnemy {id: 161, ..}, _) => MonsterType::ChaosSorcerer,
(RawMapEnemy {id: 162, ..}, _) => MonsterType::DarkGunner,
(RawMapEnemy {id: 164, ..}, _) => MonsterType::ChaosBringer,
(RawMapEnemy {id: 165, ..}, _) => MonsterType::DarkBelra,
(RawMapEnemy {id: 166, skin: 0, ..}, _) => MonsterType::Dimenian,
(RawMapEnemy {id: 166, skin: 1, ..}, _) => MonsterType::LaDimenian,
(RawMapEnemy {id: 166, skin: 2, ..}, _) => MonsterType::SoDimenian,
(RawMapEnemy {id: 167, ..}, _) => MonsterType::Bulclaw,
(RawMapEnemy {id: 168, ..}, _) => MonsterType::Claw,
(RawMapEnemy {id: 192, ..}, Episode::One) => MonsterType::Dragon,
(RawMapEnemy {id: 193, ..}, _) => MonsterType::DeRolLe,
(RawMapEnemy {id: 194, ..}, _) => MonsterType::VolOptPartA,
(RawMapEnemy {id: 197, ..}, _) => MonsterType::VolOpt,
(RawMapEnemy {id: 200, ..}, _) => MonsterType::DarkFalz,
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
}
},
MapArea::VrTempleAlpha | MapArea::VrTempleBeta | MapArea::BarbaRay |
MapArea::VrSpaceshipAlpha | MapArea::VrSpaceshipBeta | MapArea::GolDragon |
MapArea::JungleAreaNorth | MapArea::JungleAreaEast | MapArea::Mountain | MapArea::Seaside | MapArea::SeasideNight | MapArea::Cca | MapArea::GalGryphon |
MapArea::SeabedUpper | MapArea::SeabedLower | MapArea::OlgaFlow => {
match (enemy, episode) {
(RawMapEnemy {id: 64, ..}, _) => MonsterType::Hildebear,
// (RawMapEnemy {id: 64, ..}, _) => MonsterType::Hildeblue,
(RawMapEnemy {id: 65, ..}, _) => MonsterType::RagRappy,
// (RawMapEnemy {id: 65, ..}, _) => MonsterType::EventRappy,
(RawMapEnemy {id: 66, ..}, _) => MonsterType::Monest,
(RawMapEnemy {id: 67, field2: 0, ..}, _) => MonsterType::SavageWolf,
(RawMapEnemy {id: 67, ..}, _) => MonsterType::BarbarousWolf,
(RawMapEnemy {id: 96, ..}, _) => MonsterType::GrassAssassin,
(RawMapEnemy {id: 97, ..}, _) => MonsterType::PoisonLily,
// (RawMapEnemy {id: 97, ..}, _) => MonsterType::NarLily,
// (RawMapEnemy {id: 97, ..}, _) => MonsterType::DelLily,
(RawMapEnemy {id: 101, ..}, _) => MonsterType::PanArms,
(RawMapEnemy {id: 128, skin: 0, ..}, _) => MonsterType::Dubchic,
(RawMapEnemy {id: 128, skin: 1, ..}, _) => MonsterType::Gillchic,
(RawMapEnemy {id: 129, ..}, _) => MonsterType::Garanz,
(RawMapEnemy {id: 133, ..}, _) => MonsterType::Dubwitch,
(RawMapEnemy {id: 160, ..}, _) => MonsterType::Delsaber,
(RawMapEnemy {id: 161, ..}, _) => MonsterType::ChaosSorcerer,
(RawMapEnemy {id: 165, ..}, _) => MonsterType::DarkBelra,
(RawMapEnemy {id: 166, skin: 0, ..}, _) => MonsterType::Dimenian,
(RawMapEnemy {id: 166, skin: 1, ..}, _) => MonsterType::LaDimenian,
(RawMapEnemy {id: 166, skin: 2, ..}, _) => MonsterType::SoDimenian,
(RawMapEnemy {id: 192, ..}, Episode::Two) => MonsterType::GalGryphon,
(RawMapEnemy {id: 202, ..}, _) => MonsterType::OlgaFlow,
(RawMapEnemy {id: 203, ..}, _) => MonsterType::BarbaRay,
(RawMapEnemy {id: 204, ..}, _) => MonsterType::GolDragon,
(RawMapEnemy {id: 212, skin: 0, ..}, _) => MonsterType::SinowBerill,
(RawMapEnemy {id: 212, skin: 1, ..}, _) => MonsterType::SinowSpigell,
(RawMapEnemy {id: 213, skin: 0, ..}, _) => MonsterType::Merillia,
(RawMapEnemy {id: 213, skin: 1, ..}, _) => MonsterType::Meriltas,
(RawMapEnemy {id: 214, skin: 0, ..}, _) => MonsterType::Mericarol,
(RawMapEnemy {id: 214, skin: 1, ..}, _) => MonsterType::Merikle,
(RawMapEnemy {id: 214, skin: 2, ..}, _) => MonsterType::Mericus,
(RawMapEnemy {id: 215, skin: 0, ..}, _) => MonsterType::UlGibbon,
(RawMapEnemy {id: 215, skin: 1, ..}, _) => MonsterType::ZolGibbon,
(RawMapEnemy {id: 216, ..}, _) => MonsterType::Gibbles,
(RawMapEnemy {id: 217, ..}, _) => MonsterType::Gee,
(RawMapEnemy {id: 218, ..}, _) => MonsterType::GiGue,
(RawMapEnemy {id: 219, ..}, _) => MonsterType::Deldepth,
(RawMapEnemy {id: 220, ..}, _) => MonsterType::Delbiter,
(RawMapEnemy {id: 221, skin: 0, ..}, _) => MonsterType::Dolmolm,
(RawMapEnemy {id: 221, skin: 1, ..}, _) => MonsterType::Dolmdarl,
(RawMapEnemy {id: 222, ..}, _) => MonsterType::Morfos,
(RawMapEnemy {id: 223, ..}, _) => MonsterType::Recobox,
(RawMapEnemy {id: 224, skin: 0, ..}, _) => MonsterType::SinowZoa,
(RawMapEnemy {id: 224, skin: 1, ..}, _) => MonsterType::SinowZele,
(RawMapEnemy {id: 224, ..}, _) => MonsterType::Epsilon,
(RawMapEnemy {id: 225, ..}, _) => MonsterType::IllGill,
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
}
},
MapArea::Tower => {
match (enemy, episode) {
(RawMapEnemy {id: 97, ..}, _) => MonsterType::DelLily,
(RawMapEnemy {id: 214, skin: 0, ..}, _) => MonsterType::Mericarol,
(RawMapEnemy {id: 214, skin: 1, ..}, _) => MonsterType::Merikle,
(RawMapEnemy {id: 214, skin: 2, ..}, _) => MonsterType::Mericus,
(RawMapEnemy {id: 216, ..}, _) => MonsterType::Gibbles,
(RawMapEnemy {id: 218, ..}, _) => MonsterType::GiGue,
(RawMapEnemy {id: 220, ..}, _) => MonsterType::Delbiter,
(RawMapEnemy {id: 223, ..}, _) => MonsterType::Recobox,
(RawMapEnemy {id: 224, ..}, _) => MonsterType::Epsilon,
(RawMapEnemy {id: 225, ..}, _) => MonsterType::IllGill,
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
}
},
MapArea::CraterEast | MapArea::CraterWest | MapArea::CraterSouth | MapArea::CraterNorth | MapArea::CraterInterior => {
match (enemy, episode) {
(RawMapEnemy {id: 65, ..}, Episode::Four) => MonsterType::SandRappyCrater,
// (RawMapEnemy {id: 65, ..}, Episode::Four) => MonsterType::DelRappyCrater,
(RawMapEnemy {id: 272, ..}, _) => MonsterType::Astark,
(RawMapEnemy {id: 273, field2: 0, ..}, _) => MonsterType::SatelliteLizardCrater,
(RawMapEnemy {id: 273, ..}, _) => MonsterType::YowieCrater,
(RawMapEnemy {id: 276, ..}, _) => MonsterType::ZuCrater,
// (RawMapEnemy {id: 276, ..}, _) => MonsterType::PazuzuCrater,
(RawMapEnemy {id: 277, skin: 0, ..}, _) => MonsterType::Boota,
(RawMapEnemy {id: 277, skin: 1, ..}, _) => MonsterType::ZeBoota,
(RawMapEnemy {id: 277, skin: 2, ..}, _) => MonsterType::BaBoota,
(RawMapEnemy {id: 278, ..}, _) => MonsterType::Dorphon,
// (RawMapEnemy {id: 278, ..}, _) => MonsterType::DorphonEclair,
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
}
},
MapArea::SubDesert1 | MapArea::SubDesert2 | MapArea::SubDesert3 | MapArea::SaintMillion => {
match (enemy, episode) {
(RawMapEnemy {id: 65, ..}, Episode::Four) => MonsterType::SandRappyDesert,
// (RawMapEnemy {id: 65, ..}, Episode::Four) => MonsterType::DelRappyDesert,
(RawMapEnemy {id: 273, field2: 0, ..}, _) => MonsterType::SatelliteLizardDesert,
(RawMapEnemy {id: 273, ..}, _) => MonsterType::YowieDesert,
(RawMapEnemy {id: 274, ..}, _) => MonsterType::MerissaA,
// (RawMapEnemy {id: 274, ..}, _) => MonsterType::MerissaAA,
(RawMapEnemy {id: 275, ..}, _) => MonsterType::Girtablulu,
(RawMapEnemy {id: 276, ..}, _) => MonsterType::ZuDesert,
// (RawMapEnemy {id: 276, ..}, _) => MonsterType::PazuzuDesert,
(RawMapEnemy {id: 279, skin: 0, ..}, _) => MonsterType::Goran,
(RawMapEnemy {id: 279, skin: 1, ..}, _) => MonsterType::PyroGoran,
(RawMapEnemy {id: 279, skin: 2, ..}, _) => MonsterType::GoranDetonator,
(RawMapEnemy {id: 281, skin: 0, ..}, _) => MonsterType::SaintMillion,
(RawMapEnemy {id: 281, skin: 1, ..}, _) => MonsterType::Shambertin,
// (RawMapEnemy {id: 281, skin: 1, ..}, _) => MonsterType::Kondrieu,
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
}
},
_ => return Err(MapEnemyError::UnknownEnemyId(enemy.id))
};
@ -334,6 +415,8 @@ impl MapObject {
(RawMapObject {otype: 355, ..}, _) => MapObjectType::RuinsEnemyFixedBox(FixedBoxDropType::from_object(raw.field1, raw.field2, raw.field3, raw.field4)),
(RawMapObject {otype: 356, ..}, _) => MapObjectType::RuinsEnemyBox,
(RawMapObject {otype: 357, ..}, _) => MapObjectType::RuinsEmptyBox,
(RawMapObject {otype: 512, ..}, _) => MapObjectType::CcaBox,
(RawMapObject {otype: 515, ..}, _) => MapObjectType::CcaFixedBox(FixedBoxDropType::from_object(raw.field1, raw.field2, raw.field3, raw.field4)),
_ => return Err(MapObjectError::UnknownObjectType(raw.otype, raw))
};
@ -346,7 +429,7 @@ impl MapObject {
}
#[derive(Debug)]
#[derive(Debug, PartialEq)]
enum MapVariantMode {
Online,
Offline,
@ -369,6 +452,35 @@ pub enum MapArea {
DeRolLe,
VolOpt,
DarkFalz,
Pioneer2Ep2,
VrTempleAlpha,
VrTempleBeta,
VrSpaceshipAlpha,
VrSpaceshipBeta,
Cca,
JungleAreaNorth,
JungleAreaEast,
Mountain,
Seaside,
SeabedUpper,
SeabedLower,
GalGryphon,
OlgaFlow,
BarbaRay,
GolDragon,
SeasideNight,
Tower,
Pioneer2Ep4,
CraterEast,
CraterWest,
CraterSouth,
CraterNorth,
CraterInterior,
SubDesert1,
SubDesert2,
SubDesert3,
SaintMillion,
// TestMapEp4,
}
#[derive(Error, Debug)]
@ -395,6 +507,35 @@ impl MapArea {
(Episode::One, 12) => Ok(MapArea::DeRolLe),
(Episode::One, 13) => Ok(MapArea::VolOpt),
(Episode::One, 14) => Ok(MapArea::DarkFalz),
(Episode::Two, 0) => Ok(MapArea::Pioneer2Ep2),
(Episode::Two, 1) => Ok(MapArea::VrTempleAlpha),
(Episode::Two, 2) => Ok(MapArea::VrTempleBeta),
(Episode::Two, 3) => Ok(MapArea::VrSpaceshipAlpha),
(Episode::Two, 4) => Ok(MapArea::VrSpaceshipBeta),
(Episode::Two, 5) => Ok(MapArea::Cca),
(Episode::Two, 6) => Ok(MapArea::JungleAreaNorth),
(Episode::Two, 7) => Ok(MapArea::JungleAreaEast),
(Episode::Two, 8) => Ok(MapArea::Mountain),
(Episode::Two, 9) => Ok(MapArea::Seaside),
(Episode::Two, 10) => Ok(MapArea::SeabedUpper),
(Episode::Two, 11) => Ok(MapArea::SeabedLower),
(Episode::Two, 12) => Ok(MapArea::GalGryphon),
(Episode::Two, 13) => Ok(MapArea::OlgaFlow),
(Episode::Two, 14) => Ok(MapArea::BarbaRay),
(Episode::Two, 15) => Ok(MapArea::GolDragon),
(Episode::Two, 16) => Ok(MapArea::SeasideNight),
(Episode::Two, 17) => Ok(MapArea::Tower),
(Episode::Four, 0) => Ok(MapArea::Pioneer2Ep4),
(Episode::Four, 1) => Ok(MapArea::CraterEast),
(Episode::Four, 2) => Ok(MapArea::CraterWest),
(Episode::Four, 3) => Ok(MapArea::CraterSouth),
(Episode::Four, 4) => Ok(MapArea::CraterNorth),
(Episode::Four, 5) => Ok(MapArea::CraterInterior),
(Episode::Four, 6) => Ok(MapArea::SubDesert1),
(Episode::Four, 7) => Ok(MapArea::SubDesert2),
(Episode::Four, 8) => Ok(MapArea::SubDesert3),
(Episode::Four, 9) => Ok(MapArea::SaintMillion),
// (Episode::Four, 10) => Ok(MapArea::TestMapEp4),
_ => Err(MapAreaError::UnknownMapArea(area))
}
}
@ -415,6 +556,35 @@ impl MapArea {
MapArea::DeRolLe => Some(5),
MapArea::VolOpt => Some(7),
MapArea::DarkFalz => Some(9),
MapArea::VrTempleAlpha => Some(0),
MapArea::VrTempleBeta => Some(1),
MapArea::VrSpaceshipAlpha => Some(2),
MapArea::VrSpaceshipBeta => Some(3),
MapArea::Cca => Some(4),
MapArea::JungleAreaNorth => Some(5),
MapArea::JungleAreaEast => Some(5),
MapArea::Mountain => Some(6),
MapArea::Seaside => Some(7),
MapArea::SeabedUpper => Some(8),
MapArea::SeabedLower => Some(9),
MapArea::GalGryphon => Some(8),
MapArea::OlgaFlow => Some(9),
MapArea::BarbaRay => Some(2),
MapArea::GolDragon => Some(5),
MapArea::SeasideNight => Some(7),
MapArea::Tower => Some(9),
MapArea::CraterEast => Some(2),
MapArea::CraterWest => Some(3),
MapArea::CraterSouth => Some(4),
MapArea::CraterNorth => Some(5),
MapArea::CraterInterior => Some(6),
MapArea::SubDesert1 => Some(7),
MapArea::SubDesert2 => Some(8),
MapArea::SubDesert3 => Some(9),
MapArea::SaintMillion => Some(9),
// MapArea::TestMapEp4 => Some(0),
_ => None
}
}
@ -436,6 +606,35 @@ impl MapArea {
MapArea::DeRolLe => 12,
MapArea::VolOpt => 13,
MapArea::DarkFalz => 14,
MapArea::Pioneer2Ep2 => 0,
MapArea::VrTempleAlpha => 1,
MapArea::VrTempleBeta => 2,
MapArea::VrSpaceshipAlpha => 3,
MapArea::VrSpaceshipBeta => 4,
MapArea::Cca => 5,
MapArea::JungleAreaNorth => 6,
MapArea::JungleAreaEast => 7,
MapArea::Mountain => 8,
MapArea::Seaside => 9,
MapArea::SeabedUpper => 10,
MapArea::SeabedLower => 11,
MapArea::GalGryphon => 12,
MapArea::OlgaFlow => 13,
MapArea::BarbaRay => 14,
MapArea::GolDragon => 15,
MapArea::SeasideNight => 16,
MapArea::Tower => 17,
MapArea::Pioneer2Ep4 => 0,
MapArea::CraterEast => 1,
MapArea::CraterWest => 2,
MapArea::CraterSouth => 3,
MapArea::CraterNorth => 4,
MapArea::CraterInterior => 5,
MapArea::SubDesert1 => 6,
MapArea::SubDesert2 => 7,
MapArea::SubDesert3 => 8,
MapArea::SaintMillion => 9,
// MapArea::TestMapEp4 => 10,
}
}
}
@ -451,70 +650,334 @@ struct MapVariant {
impl MapVariant {
fn new(map: MapArea, mode: MapVariantMode) -> MapVariant {
let major = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 | MapArea::Forest2 => 0,
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => rand::thread_rng().gen_range(0, 3),
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 3),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 3),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
};
if mode == MapVariantMode::Online {
let major = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 | MapArea::Forest2 => 0,
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => rand::thread_rng().gen_range(0, 3),
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 3),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 3),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
let minor = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 => rand::thread_rng().gen_range(0, 5),
MapArea::Forest2 => rand::thread_rng().gen_range(0, 5),
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => rand::thread_rng().gen_range(0, 2),
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 2),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 2),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
};
MapArea::Pioneer2Ep2 => 0,
MapArea::VrTempleAlpha | MapArea::VrTempleBeta => rand::thread_rng().gen_range(0, 2),
MapArea::VrSpaceshipAlpha | MapArea::VrSpaceshipBeta => rand::thread_rng().gen_range(0, 2),
MapArea::Cca => 0,
MapArea::JungleAreaNorth | MapArea::JungleAreaEast => 0,
MapArea::Mountain => rand::thread_rng().gen_range(0, 2),
MapArea::Seaside | MapArea::SeasideNight=> 0,
MapArea::SeabedUpper | MapArea::SeabedLower => rand::thread_rng().gen_range(0, 2),
MapArea::BarbaRay | MapArea::GolDragon | MapArea::GalGryphon | MapArea::OlgaFlow => 0,
MapArea::Tower => 0,
MapArea::Pioneer2Ep4 => 0,
MapArea::CraterEast | MapArea::CraterWest | MapArea::CraterSouth | MapArea::CraterNorth | MapArea::CraterInterior => 0,
MapArea::SubDesert1 | MapArea::SubDesert3 => rand::thread_rng().gen_range(0, 2),
MapArea::SubDesert2 => 0,
MapArea::SaintMillion => 0,
};
let minor = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 | MapArea::Forest2 => rand::thread_rng().gen_range(0, 5),
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => rand::thread_rng().gen_range(0, 2),
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 2),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 2),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
MapArea::Pioneer2Ep2 => 0,
MapArea::VrTempleAlpha | MapArea::VrTempleBeta => 0,
MapArea::VrSpaceshipAlpha | MapArea::VrSpaceshipBeta => 0,
MapArea::Cca => rand::thread_rng().gen_range(0, 3),
MapArea::JungleAreaNorth | MapArea::JungleAreaEast => rand::thread_rng().gen_range(0, 3),
MapArea::Mountain => rand::thread_rng().gen_range(0, 2),
MapArea::Seaside | MapArea::SeasideNight => rand::thread_rng().gen_range(0, 3),
MapArea::SeabedUpper | MapArea::SeabedLower => rand::thread_rng().gen_range(0, 2),
MapArea::BarbaRay | MapArea::GolDragon | MapArea::GalGryphon | MapArea::OlgaFlow => 0,
MapArea::Tower => 0,
MapArea::Pioneer2Ep4 => 0,
MapArea::CraterEast | MapArea::CraterWest | MapArea::CraterSouth | MapArea::CraterNorth | MapArea::CraterInterior => rand::thread_rng().gen_range(0, 3),
MapArea::SubDesert1 | MapArea::SubDesert3 => 0,
MapArea::SubDesert2 => rand::thread_rng().gen_range(0, 2),
MapArea::SaintMillion => 0,
};
MapVariant {
map: map,
mode: mode,
major: major,
minor: minor,
}
}
else {
let major = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 | MapArea::Forest2 => 0,
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => rand::thread_rng().gen_range(0, 3),
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 3),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 3),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
MapArea::Pioneer2Ep2 => 0,
MapArea::VrTempleAlpha | MapArea::VrTempleBeta => rand::thread_rng().gen_range(0, 2),
MapArea::VrSpaceshipAlpha | MapArea::VrSpaceshipBeta => rand::thread_rng().gen_range(0, 2),
MapArea::Cca => 0,
MapArea::JungleAreaNorth | MapArea::JungleAreaEast => 0,
MapArea::Mountain => rand::thread_rng().gen_range(0, 2),
MapArea::Seaside | MapArea::SeasideNight => 0,
MapArea::SeabedUpper | MapArea::SeabedLower => rand::thread_rng().gen_range(0, 2),
MapArea::BarbaRay | MapArea::GolDragon | MapArea::GalGryphon | MapArea::OlgaFlow => 0,
MapArea::Tower => 0,
MapArea::Pioneer2Ep4 => 0,
MapArea::CraterEast | MapArea::CraterWest | MapArea::CraterSouth | MapArea::CraterNorth | MapArea::CraterInterior => 0,
MapArea::SubDesert1 | MapArea::SubDesert3 => rand::thread_rng().gen_range(0, 2),
MapArea::SubDesert2 => 0,
MapArea::SaintMillion => 0,
};
MapVariant {
map: map,
mode: mode,
major: major,
minor: minor,
let minor = match map {
MapArea::Pioneer2Ep1 => 0,
MapArea::Forest1 | MapArea::Forest2 => rand::thread_rng().gen_range(0, 3),
MapArea::Caves1 | MapArea::Caves2 | MapArea::Caves3 => 0,
MapArea::Mines1 | MapArea::Mines2 => rand::thread_rng().gen_range(0, 2),
MapArea::Ruins1 | MapArea::Ruins2 | MapArea::Ruins3 => rand::thread_rng().gen_range(0, 2),
MapArea::Dragon | MapArea::DeRolLe | MapArea::VolOpt | MapArea::DarkFalz => 0,
MapArea::Pioneer2Ep2 => 0,
MapArea::VrTempleAlpha | MapArea::VrTempleBeta => 0,
MapArea::VrSpaceshipAlpha | MapArea::VrSpaceshipBeta => 0,
MapArea::Cca => rand::thread_rng().gen_range(0, 3),
MapArea::JungleAreaNorth | MapArea::JungleAreaEast => rand::thread_rng().gen_range(0, 3),
MapArea::Mountain => rand::thread_rng().gen_range(0, 2),
MapArea::Seaside | MapArea::SeasideNight => rand::thread_rng().gen_range(0, 3),
MapArea::SeabedUpper | MapArea::SeabedLower => 0,
MapArea::BarbaRay | MapArea::GolDragon | MapArea::GalGryphon | MapArea::OlgaFlow => 0,
MapArea::Tower => 0,
MapArea::Pioneer2Ep4 => 0,
MapArea::CraterEast | MapArea::CraterWest | MapArea::CraterSouth | MapArea::CraterNorth | MapArea::CraterInterior => rand::thread_rng().gen_range(0, 3),
MapArea::SubDesert1 | MapArea::SubDesert3 => 0,
MapArea::SubDesert2 => rand::thread_rng().gen_range(0, 2),
MapArea::SaintMillion => 0,
};
MapVariant {
map: map,
mode: mode,
major: major,
minor: minor,
}
}
}
// TODO: rename to npc_file
fn dat_file(&self) -> String {
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00e.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}e.dat", self.minor),
MapArea::Forest2 => format!("data/maps/map_forest02_0{}e.dat", self.minor),
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}e.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}e.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01e.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02e.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03e.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04e.dat".into(),
if self.mode == MapVariantMode::Online {
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00e.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}e.dat", self.minor),
MapArea::Forest2 => format!("data/maps/map_forest02_0{}e.dat", self.minor),
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}e.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}e.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01e.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02e.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03e.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04e.dat".into(),
MapArea::Pioneer2Ep2 => "data/maps/map_labo00_00e.dat".into(),
MapArea::VrTempleAlpha => format!("data/maps/map_ruins01_0{}_0{}e.dat", self.major, self.minor),
MapArea::VrTempleBeta => format!("data/maps/map_ruins02_0{}_0{}e.dat", self.major, self.minor),
MapArea::VrSpaceshipAlpha => format!("data/maps/map_space01_0{}_0{}e.dat", self.major, self.minor),
MapArea::VrSpaceshipBeta => format!("data/maps/map_space02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Cca => format!("data/maps/map_jungle01_0{}e.dat", self.minor),
MapArea::JungleAreaNorth => format!("data/maps/map_jungle02_0{}e.dat", self.minor),
MapArea::JungleAreaEast => format!("data/maps/map_jungle03_0{}e.dat", self.minor),
MapArea::Mountain => format!("data/maps/map_jungle04_0{}_0{}e.dat", self.major, self.minor),
MapArea::Seaside => format!("data/maps/map_jungle05_0{}e.dat", self.minor),
MapArea::SeabedUpper => format!("data/maps/map_seabed01_0{}_0{}e.dat", self.major, self.minor),
MapArea::SeabedLower => format!("data/maps/map_seabed02_0{}_0{}e.dat", self.major, self.minor),
MapArea::GalGryphon => "data/maps/map_boss05e.dat".into(),
MapArea::OlgaFlow => "data/maps/map_boss06e.dat".into(),
MapArea::BarbaRay => "data/maps/map_boss07e.dat".into(),
MapArea::GolDragon => "data/maps/map_boss08e.dat".into(),
MapArea::Pioneer2Ep4 => "data/maps/map_city02_00_00e.dat".into(),
MapArea::CraterEast => format!("data/maps/map_wilds01_00_0{}e.dat", self.minor),
MapArea::CraterWest => format!("data/maps/map_wilds01_01_0{}e.dat", self.minor),
MapArea::CraterSouth => format!("data/maps/map_wilds01_02_0{}e.dat", self.minor),
MapArea::CraterNorth => format!("data/maps/map_wilds01_03_0{}e.dat", self.minor),
MapArea::CraterInterior => format!("data/maps/map_crater01_00_0{}e.dat", self.minor),
MapArea::SubDesert1 => format!("data/maps/map_desert01_0{}_0{}e.dat", self.major, self.minor),
MapArea::SubDesert2 => format!("data/maps/map_desert02_0{}_0{}e.dat", self.major, self.minor),
MapArea::SubDesert3 => format!("data/maps/map_desert03_0{}_0{}e.dat", self.major, self.minor),
MapArea::SaintMillion => "data/maps/map_boss09_00_00e.dat".into(),
_ => unreachable!(),
}
} else { // Offline
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00e_s.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}_offe.dat", self.minor*2),
MapArea::Forest2 => {
match self.minor {
0 => format!("data/maps/map_forest02_00_offe.dat"),
1 => format!("data/maps/map_forest02_03_offe.dat"),
2 => format!("data/maps/map_forest02_04_offe.dat"),
_ => unreachable!()
}},
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}e.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}e.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01e.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02e.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03e.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04e.dat".into(),
MapArea::Pioneer2Ep2 => "data/maps/map_labo00_00e_s.dat".into(),
MapArea::VrTempleAlpha => format!("data/maps/map_ruins01_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::VrTempleBeta => format!("data/maps/map_ruins02_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::VrSpaceshipAlpha => format!("data/maps/map_space01_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::VrSpaceshipBeta => format!("data/maps/map_space02_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::Cca => format!("data/maps/map_jungle01_0{}_offe.dat", self.minor),
MapArea::JungleAreaNorth => format!("data/maps/map_jungle02_0{}_offe.dat", self.minor),
MapArea::JungleAreaEast => format!("data/maps/map_jungle03_0{}_offe.dat", self.minor),
MapArea::Mountain => format!("data/maps/map_jungle04_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::Seaside => format!("data/maps/map_jungle05_0{}_offe.dat", self.minor),
MapArea::SeabedUpper => format!("data/maps/map_seabed01_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::SeabedLower => format!("data/maps/map_seabed02_0{}_0{}_offe.dat", self.major, self.minor),
MapArea::GalGryphon => "data/maps/map_boss05e.dat".into(),
MapArea::OlgaFlow => "data/maps/map_boss06e.dat".into(),
MapArea::BarbaRay => "data/maps/map_boss07e.dat".into(),
MapArea::GolDragon => "data/maps/map_boss08e.dat".into(),
MapArea::Pioneer2Ep4 => "data/maps/map_city02_00_00e_s.dat".into(),
MapArea::CraterEast => format!("data/maps/map_wilds01_00_0{}e.dat", self.minor),
MapArea::CraterWest => format!("data/maps/map_wilds01_01_0{}e.dat", self.minor),
MapArea::CraterSouth => format!("data/maps/map_wilds01_02_0{}e.dat", self.minor),
MapArea::CraterNorth => format!("data/maps/map_wilds01_03_0{}e.dat", self.minor),
MapArea::CraterInterior => format!("data/maps/map_crater01_00_0{}e.dat", self.minor),
MapArea::SubDesert1 => format!("data/maps/map_desert01_0{}_0{}e.dat", self.major, self.minor),
MapArea::SubDesert2 => format!("data/maps/map_desert02_0{}_0{}e.dat", self.major, self.minor),
MapArea::SubDesert3 => format!("data/maps/map_desert03_0{}_0{}e.dat", self.major, self.minor),
MapArea::SaintMillion => "data/maps/map_boss09_00_00e.dat".into(),
_ => unreachable!(),
}
}
}
fn obj_file(&self) -> String {
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00o.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}o.dat", self.minor),
MapArea::Forest2 => format!("data/maps/map_forest02_0{}o.dat", self.minor),
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01o.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02o.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03o.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04o.dat".into(),
if self.mode == MapVariantMode::Online {
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00o.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}o.dat", self.minor),
MapArea::Forest2 => format!("data/maps/map_forest02_0{}o.dat", self.minor),
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01o.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02o.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03o.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04o.dat".into(),
MapArea::Pioneer2Ep2 => "data/maps/map_labo00_00o.dat".into(),
MapArea::VrTempleAlpha => format!("data/maps/map_ruins01_0{}_0{}o.dat", self.major, self.minor),
MapArea::VrTempleBeta => format!("data/maps/map_ruins02_0{}_0{}o.dat", self.major, self.minor),
MapArea::VrSpaceshipAlpha => format!("data/maps/map_space01_0{}_0{}o.dat", self.major, self.minor),
MapArea::VrSpaceshipBeta => format!("data/maps/map_space02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Cca => format!("data/maps/map_jungle01_0{}o.dat", self.minor),
MapArea::JungleAreaNorth => format!("data/maps/map_jungle02_0{}o.dat", self.minor),
MapArea::JungleAreaEast => format!("data/maps/map_jungle03_0{}o.dat", self.minor),
MapArea::Mountain => format!("data/maps/map_jungle04_0{}_0{}o.dat", self.major, self.minor),
MapArea::Seaside => format!("data/maps/map_jungle05_0{}o.dat", self.minor),
MapArea::SeabedUpper => format!("data/maps/map_seabed01_0{}_0{}o.dat", self.major, self.minor),
MapArea::SeabedLower => format!("data/maps/map_seabed02_0{}_0{}o.dat", self.major, self.minor),
MapArea::GalGryphon => "data/maps/map_boss05o.dat".into(),
MapArea::OlgaFlow => "data/maps/map_boss06o.dat".into(),
MapArea::BarbaRay => "data/maps/map_boss07o.dat".into(),
MapArea::GolDragon => "data/maps/map_boss08o.dat".into(),
MapArea::Pioneer2Ep4 => "data/maps/map_city02_00_00o.dat".into(),
MapArea::CraterEast => format!("data/maps/map_wilds01_00_0{}o.dat", self.minor),
MapArea::CraterWest => format!("data/maps/map_wilds01_01_0{}o.dat", self.minor),
MapArea::CraterSouth => format!("data/maps/map_wilds01_02_0{}o.dat", self.minor),
MapArea::CraterNorth => format!("data/maps/map_wilds01_03_0{}o.dat", self.minor),
MapArea::CraterInterior => format!("data/maps/map_crater01_00_0{}o.dat", self.minor),
MapArea::SubDesert1 => format!("data/maps/map_desert01_0{}_0{}o.dat", self.major, self.minor),
MapArea::SubDesert2 => format!("data/maps/map_desert02_0{}_0{}o.dat", self.major, self.minor),
MapArea::SubDesert3 => format!("data/maps/map_desert03_0{}_0{}o.dat", self.major, self.minor),
MapArea::SaintMillion => "data/maps/map_boss09_00_00o.dat".into(),
_ => unreachable!(),
}
} else {
match self.map {
MapArea::Pioneer2Ep1 => "data/maps/map_city00_00o_s.dat".into(),
MapArea::Forest1 => format!("data/maps/map_forest01_0{}o.dat", self.minor*2),
MapArea::Forest2 => {
match self.minor {
0 => format!("data/maps/map_forest02_00o.dat"),
1 => format!("data/maps/map_forest02_03o.dat"),
2 => format!("data/maps/map_forest02_04o.dat"),
_ => unreachable!()
}},
MapArea::Caves1 => format!("data/maps/map_cave01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves2 => format!("data/maps/map_cave02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Caves3 => format!("data/maps/map_cave03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines1 => format!("data/maps/map_machine01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Mines2 => format!("data/maps/map_machine02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins1 => format!("data/maps/map_ancient01_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins2 => format!("data/maps/map_ancient02_0{}_0{}o.dat", self.major, self.minor),
MapArea::Ruins3 => format!("data/maps/map_ancient03_0{}_0{}o.dat", self.major, self.minor),
MapArea::Dragon => "data/maps/map_boss01o.dat".into(),
MapArea::DeRolLe => "data/maps/map_boss02o.dat".into(),
MapArea::VolOpt => "data/maps/map_boss03o.dat".into(),
MapArea::DarkFalz => "data/maps/map_boss04_offo.dat".into(),
MapArea::Pioneer2Ep2 => "data/maps/map_labo00_00o_s.dat".into(),
MapArea::VrTempleAlpha => format!("data/maps/map_ruins01_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::VrTempleBeta => format!("data/maps/map_ruins02_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::VrSpaceshipAlpha => format!("data/maps/map_space01_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::VrSpaceshipBeta => format!("data/maps/map_space02_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::Cca => format!("data/maps/map_jungle01_0{}_offo.dat", self.minor),
MapArea::JungleAreaNorth => format!("data/maps/map_jungle02_0{}_offo.dat", self.minor),
MapArea::JungleAreaEast => format!("data/maps/map_jungle03_0{}_offo.dat", self.minor),
MapArea::Mountain => format!("data/maps/map_jungle04_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::Seaside => format!("data/maps/map_jungle05_0{}_offo.dat", self.minor),
MapArea::SeabedUpper => format!("data/maps/map_seabed01_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::SeabedLower => format!("data/maps/map_seabed02_0{}_0{}_offo.dat", self.major, self.minor),
MapArea::GalGryphon => "data/maps/map_boss05_offo.dat".into(),
MapArea::OlgaFlow => "data/maps/map_boss06_offo.dat".into(),
MapArea::BarbaRay => "data/maps/map_boss07_offo.dat".into(),
MapArea::GolDragon => "data/maps/map_boss08_offo.dat".into(),
MapArea::Pioneer2Ep4 => "data/maps/map_city02_00_00o_s.dat".into(),
MapArea::CraterEast => format!("data/maps/map_wilds01_00_0{}o.dat", self.minor),
MapArea::CraterWest => format!("data/maps/map_wilds01_01_0{}o.dat", self.minor),
MapArea::CraterSouth => format!("data/maps/map_wilds01_02_0{}o.dat", self.minor),
MapArea::CraterNorth => format!("data/maps/map_wilds01_03_0{}o.dat", self.minor),
MapArea::CraterInterior => format!("data/maps/map_crater01_00_0{}o.dat", self.minor),
MapArea::SubDesert1 => format!("data/maps/map_desert01_0{}_0{}o.dat", self.major, self.minor),
MapArea::SubDesert2 => format!("data/maps/map_desert02_0{}_0{}o.dat", self.major, self.minor),
MapArea::SubDesert3 => format!("data/maps/map_desert03_0{}_0{}o.dat", self.major, self.minor),
MapArea::SaintMillion => "data/maps/map_boss09_00_00o.dat".into(),
_ => unreachable!(),
}
}
}
@ -616,6 +1079,41 @@ fn parse_enemy(episode: &Episode, map_area: &MapArea, raw_enemy: RawMapEnemy) ->
monsters.push(Some(MapEnemy::new(MonsterType::DarkFalz2, monster.map_area)));
monsters.push(Some(MapEnemy::new(MonsterType::DarkFalz1, monster.map_area)));
},
MonsterType::OlgaFlow => {
for _ in 0..512 {
monsters.push(Some(MapEnemy::new(MonsterType::OlgaFlow, monster.map_area)));
}
},
MonsterType::BarbaRay => {
for _ in 0..47 {
monsters.push(Some(MapEnemy::new(MonsterType::PigRay, monster.map_area)));
}
},
MonsterType::GolDragon => {
for _ in 0..5 {
monsters.push(Some(MapEnemy::new(MonsterType::GolDragon, monster.map_area)));
}
},
MonsterType::SinowBerill => {
for _ in 0..4 {
monsters.push(Some(MapEnemy::new(MonsterType::SinowBerill, monster.map_area))); // unused clones
}
},
MonsterType::SinowSpigell => {
for _ in 0..4 {
monsters.push(Some(MapEnemy::new(MonsterType::SinowSpigell, monster.map_area))); // unused clones
}
},
MonsterType::Recobox => { // + recons
for _ in 0..raw_enemy.children {
monsters.push(Some(MapEnemy::new(MonsterType::Recon, monster.map_area)));
}
},
MonsterType::Epsilon => {
for _ in 0..4 {
monsters.push(Some(MapEnemy::new(MonsterType::Epsiguard, monster.map_area)));
}
},
_ => {
for _ in 0..raw_enemy.children {
monsters.push(Some(MapEnemy::new(monster.monster, monster.map_area)));
@ -651,16 +1149,16 @@ pub enum MapsError {
#[derive(Debug)]
pub struct Maps {
map_variants: [MapVariant; 15],
map_variants: Vec<MapVariant>,
enemy_data: Vec<Option<MapEnemy>>,
object_data: Vec<Option<MapObject>>,
}
impl Maps {
pub fn new(episode: Episode) -> Maps {
let map_variants = match episode {
Episode::One => {
[MapVariant::new(MapArea::Pioneer2Ep1, MapVariantMode::Online),
pub fn new(room_mode: RoomMode) -> Maps {
let map_variants = match (room_mode.episode(), room_mode.single_player()) {
(Episode::One, 0) => {
vec![MapVariant::new(MapArea::Pioneer2Ep1, MapVariantMode::Online),
MapVariant::new(MapArea::Forest1, MapVariantMode::Online),
MapVariant::new(MapArea::Forest2, MapVariantMode::Online),
MapVariant::new(MapArea::Caves1, MapVariantMode::Online),
@ -677,20 +1175,88 @@ impl Maps {
MapVariant::new(MapArea::DarkFalz, MapVariantMode::Online),
]
},
_ => panic!()
(Episode::One, 1) => {
vec![MapVariant::new(MapArea::Pioneer2Ep1, MapVariantMode::Offline),
MapVariant::new(MapArea::Forest1, MapVariantMode::Offline),
MapVariant::new(MapArea::Forest2, MapVariantMode::Offline),
MapVariant::new(MapArea::Caves1, MapVariantMode::Offline),
MapVariant::new(MapArea::Caves2, MapVariantMode::Offline),
MapVariant::new(MapArea::Caves3, MapVariantMode::Offline),
MapVariant::new(MapArea::Mines1, MapVariantMode::Offline),
MapVariant::new(MapArea::Mines2, MapVariantMode::Offline),
MapVariant::new(MapArea::Ruins1, MapVariantMode::Offline),
MapVariant::new(MapArea::Ruins2, MapVariantMode::Offline),
MapVariant::new(MapArea::Ruins3, MapVariantMode::Offline),
MapVariant::new(MapArea::Dragon, MapVariantMode::Offline),
MapVariant::new(MapArea::DeRolLe, MapVariantMode::Offline),
MapVariant::new(MapArea::VolOpt, MapVariantMode::Offline),
MapVariant::new(MapArea::DarkFalz, MapVariantMode::Offline),
]
},
(Episode::Two, 0) => {
vec![MapVariant::new(MapArea::Pioneer2Ep2, MapVariantMode::Online),
MapVariant::new(MapArea::VrTempleAlpha, MapVariantMode::Online),
MapVariant::new(MapArea::VrTempleBeta, MapVariantMode::Online),
MapVariant::new(MapArea::VrSpaceshipAlpha, MapVariantMode::Online),
MapVariant::new(MapArea::VrSpaceshipBeta, MapVariantMode::Online),
MapVariant::new(MapArea::Cca, MapVariantMode::Online),
MapVariant::new(MapArea::JungleAreaNorth, MapVariantMode::Online),
MapVariant::new(MapArea::JungleAreaEast, MapVariantMode::Online),
MapVariant::new(MapArea::Mountain, MapVariantMode::Online),
MapVariant::new(MapArea::Seaside, MapVariantMode::Online),
MapVariant::new(MapArea::SeabedUpper, MapVariantMode::Online),
MapVariant::new(MapArea::SeabedLower, MapVariantMode::Online),
MapVariant::new(MapArea::GalGryphon, MapVariantMode::Online),
MapVariant::new(MapArea::OlgaFlow, MapVariantMode::Online),
MapVariant::new(MapArea::BarbaRay, MapVariantMode::Online),
MapVariant::new(MapArea::GolDragon, MapVariantMode::Online),
]
},
(Episode::Two, 1) => {
vec![MapVariant::new(MapArea::Pioneer2Ep2, MapVariantMode::Offline),
MapVariant::new(MapArea::VrTempleAlpha, MapVariantMode::Offline),
MapVariant::new(MapArea::VrTempleBeta, MapVariantMode::Offline),
MapVariant::new(MapArea::VrSpaceshipAlpha, MapVariantMode::Offline),
MapVariant::new(MapArea::VrSpaceshipBeta, MapVariantMode::Offline),
MapVariant::new(MapArea::Cca, MapVariantMode::Offline),
MapVariant::new(MapArea::JungleAreaNorth, MapVariantMode::Offline),
MapVariant::new(MapArea::JungleAreaEast, MapVariantMode::Offline),
MapVariant::new(MapArea::Mountain, MapVariantMode::Offline),
MapVariant::new(MapArea::Seaside, MapVariantMode::Offline),
MapVariant::new(MapArea::SeabedUpper, MapVariantMode::Offline),
MapVariant::new(MapArea::SeabedLower, MapVariantMode::Offline),
MapVariant::new(MapArea::GalGryphon, MapVariantMode::Offline),
MapVariant::new(MapArea::OlgaFlow, MapVariantMode::Offline),
MapVariant::new(MapArea::BarbaRay, MapVariantMode::Offline),
MapVariant::new(MapArea::GolDragon, MapVariantMode::Offline),
]
},
(Episode::Four, _) => {
vec![MapVariant::new(MapArea::Pioneer2Ep4, MapVariantMode::Online),
MapVariant::new(MapArea::CraterEast, MapVariantMode::Online),
MapVariant::new(MapArea::CraterWest, MapVariantMode::Online),
MapVariant::new(MapArea::CraterSouth, MapVariantMode::Online),
MapVariant::new(MapArea::CraterNorth, MapVariantMode::Online),
MapVariant::new(MapArea::CraterInterior, MapVariantMode::Online),
MapVariant::new(MapArea::SubDesert1, MapVariantMode::Online),
MapVariant::new(MapArea::SubDesert2, MapVariantMode::Online),
MapVariant::new(MapArea::SubDesert3, MapVariantMode::Online),
MapVariant::new(MapArea::SaintMillion, MapVariantMode::Online),
]
},
_ => unreachable!()
};
let maps = Maps {
enemy_data: map_variants.iter().fold(Vec::new(), |mut enemy_data, map_variant| {
enemy_data.append(&mut enemy_data_from_map_data(&map_variant, &episode));
enemy_data.append(&mut enemy_data_from_map_data(&map_variant, &room_mode.episode()));
enemy_data
}),
object_data: map_variants.iter().map(|map_variant| {
objects_from_map_data(map_variant.obj_file().into(), &episode, &map_variant.map)
objects_from_map_data(map_variant.obj_file().into(), &room_mode.episode(), &map_variant.map)
}).flatten().collect(),
map_variants: map_variants,
};
maps
}

115
src/ship/monster.rs

@ -17,22 +17,16 @@ pub enum MonsterParseError {
pub enum MonsterType {
Hildebear,
Hildeblue,
SandRappy,
Mothmant,
Monest,
RagRappy,
AlRappy,
EasterRappy,
StRappy,
HalloRappy,
LoveRappy,
Monest,
Mothmant,
SavageWolf,
BarbarousWolf,
Booma,
Gobooma,
Gigobooma,
GrassAssassin,
DelLily,
PoisonLily,
NarLily,
NanoDragon,
@ -45,14 +39,12 @@ pub enum MonsterType {
Hidoom,
Migium,
Dubchic,
Gillchic,
Garanz,
SinowBeat,
SinowGold,
Canadine,
RingCanadine,
Canane,
Dubwitch,
RingCanadine,
Delsaber,
ChaosSorcerer,
BeeR,
@ -61,14 +53,13 @@ pub enum MonsterType {
DeathGunner,
ChaosBringer,
DarkBelra,
Claw,
Bulk,
Bulclaw,
Dimenian,
LaDimenian,
SoDimenian,
Bulclaw,
Bulk,
Claw,
Dragon,
GalGryphon,
DeRolLe,
DeRolLeBody,
DeRolLeMine,
@ -86,48 +77,74 @@ pub enum MonsterType {
DarkFalz3,
Darvant,
UltDarvant,
OlgaFlow,
BarbaRay,
GolDragon,
SinowBerill,
SinowSpigell,
Dubwitch,
Gillchic,
EventRappy,
Merillia,
Meriltas,
Gee,
GiGue,
Mericarol,
Merikle,
Mericus,
UlGibbon,
ZolGibbon,
Gibbles,
Gee,
GiGue,
Deldepth,
Delbiter,
Dolmdarl,
SinowBerill,
SinowSpigell,
Dolmolm,
Dolmdarl,
Morfos,
Recon,
Recobox,
Epsilon,
Epsiguard,
Recon,
SinowZoa,
SinowZele,
Deldepth,
Delbiter,
BarbaRay,
PigRay,
GolDragon,
GalGryphon,
OlgaFlow,
OlgaFlow1,
OlgaFlow2,
Gael,
Giel,
StRappy,
HalloRappy,
EasterRappy,
LoveRappy,
IllGill,
Astark,
SatelliteLizard,
Yowie,
MerissaA,
Girtablulu,
Zu,
DelLily,
Epsilon,
Epsiguard,
Boota,
ZeBoota,
BaBoota,
SandRappyCrater,
SandRappyDesert,
ZuCrater,
PazuzuCrater,
Astark,
SatelliteLizardCrater,
YowieCrater,
Dorphon,
DorphonEclair,
Goran,
PyroGoran,
GoranDetonator,
PyroGoran,
DelRappyCrater,
DelRappyDesert,
MerissaA,
MerissaAA,
ZuDesert,
PazuzuDesert,
SatelliteLizardDesert,
YowieDesert,
Girtablulu,
SaintMillion,
Shambertin,
Kondrieu,
}
@ -164,6 +181,34 @@ pub fn load_monster_stats_table(mode: &RoomMode) -> HashMap<MonsterType, Monster
RoomMode::Multi {episode: Episode::One, difficulty: Difficulty::Hard} => load_battle_param("ep1_multi_hard.toml"),
RoomMode::Multi {episode: Episode::One, difficulty: Difficulty::VeryHard} => load_battle_param("ep1_multi_veryhard.toml"),
RoomMode::Multi {episode: Episode::One, difficulty: Difficulty::Ultimate} => load_battle_param("ep1_multi_ultimate.toml"),
RoomMode::Multi {episode: Episode::Two, difficulty: Difficulty::Normal} => load_battle_param("ep2_multi_normal.toml"),
RoomMode::Multi {episode: Episode::Two, difficulty: Difficulty::Hard} => load_battle_param("ep2_multi_hard.toml"),
RoomMode::Multi {episode: Episode::Two, difficulty: Difficulty::VeryHard} => load_battle_param("ep2_multi_veryhard.toml"),
RoomMode::Multi {episode: Episode::Two, difficulty: Difficulty::Ultimate} => load_battle_param("ep2_multi_ultimate.toml"),
RoomMode::Multi {episode: Episode::Four, difficulty: Difficulty::Normal} => load_battle_param("ep4_multi_normal.toml"),
RoomMode::Multi {episode: Episode::Four, difficulty: Difficulty::Hard} => load_battle_param("ep4_multi_hard.toml"),
RoomMode::Multi {episode: Episode::Four, difficulty: Difficulty::VeryHard} => load_battle_param("ep4_multi_veryhard.toml"),
RoomMode::Multi {episode: Episode::Four, difficulty: Difficulty::Ultimate} => load_battle_param("ep4_multi_ultimate.toml"),
RoomMode::Single {episode: Episode::One, difficulty: Difficulty::Normal} => load_battle_param("ep1_solo_normal.toml"),
RoomMode::Single {episode: Episode::One, difficulty: Difficulty::Hard} => load_battle_param("ep1_solo_hard.toml"),
RoomMode::Single {episode: Episode::One, difficulty: Difficulty::VeryHard} => load_battle_param("ep1_solo_veryhard.toml"),
RoomMode::Single {episode: Episode::One, difficulty: Difficulty::Ultimate} => load_battle_param("ep1_solo_ultimate.toml"),
RoomMode::Single {episode: Episode::Two, difficulty: Difficulty::Normal} => load_battle_param("ep2_solo_normal.toml"),
RoomMode::Single {episode: Episode::Two, difficulty: Difficulty::Hard} => load_battle_param("ep2_solo_hard.toml"),
RoomMode::Single {episode: Episode::Two, difficulty: Difficulty::VeryHard} => load_battle_param("ep2_solo_veryhard.toml"),
RoomMode::Single {episode: Episode::Two, difficulty: Difficulty::Ultimate} => load_battle_param("ep2_solo_ultimate.toml"),
RoomMode::Single {episode: Episode::Four, difficulty: Difficulty::Normal} => load_battle_param("ep4_solo_normal.toml"),
RoomMode::Single {episode: Episode::Four, difficulty: Difficulty::Hard} => load_battle_param("ep4_solo_hard.toml"),
RoomMode::Single {episode: Episode::Four, difficulty: Difficulty::VeryHard} => load_battle_param("ep4_solo_veryhard.toml"),
RoomMode::Single {episode: Episode::Four, difficulty: Difficulty::Ultimate} => load_battle_param("ep4_solo_ultimate.toml"),
_ => panic!(),
}
}

2
src/ship/room.rs

@ -234,7 +234,7 @@ impl RoomState {
random_seed: rand::thread_rng().gen(),
name: String::from_utf16_lossy(&create_room.name).trim_matches(char::from(0)).into(),
password: create_room.password,
maps: Maps::new(room_mode.episode()),
maps: Maps::new(room_mode),
section_id: section_id,
drop_table: Box::new(DropTable::new(room_mode.episode(), room_mode.difficulty(), section_id)),
bursting: false,

Loading…
Cancel
Save