describe entire battle rules structure

This commit is contained in:
Martin Michelsen
2023-10-18 23:12:25 -07:00
parent c0c7bf9b16
commit 4bc5f1b90f
16 changed files with 518 additions and 246 deletions
+8 -13
View File
@@ -2151,30 +2151,25 @@ void send_shop(shared_ptr<Client> c, uint8_t shop_type) {
send_command(c, 0x60, 0x00, &cmd, sizeof(cmd) - sizeof(cmd.item_datas[0]) * (20 - contents.size()));
}
// notifies players about a level up
void send_level_up(shared_ptr<Client> c) {
auto l = c->require_lobby();
auto p = c->game_data.player();
CharacterStats stats = p->disp.stats.char_stats;
for (size_t x = 0; x < p->inventory.num_items; x++) {
if ((p->inventory.items[x].flags & 0x08) &&
(p->inventory.items[x].data.data1[0] == 0x02)) {
stats.dfp += (p->inventory.items[x].data.data1w[2] / 100);
stats.atp += (p->inventory.items[x].data.data1w[3] / 50);
stats.ata += (p->inventory.items[x].data.data1w[4] / 200);
stats.mst += (p->inventory.items[x].data.data1w[5] / 50);
}
const ItemData* mag = nullptr;
try {
mag = &p->inventory.items[p->inventory.find_equipped_mag()].data;
} catch (const out_of_range&) {
}
G_LevelUp_6x30 cmd = {
{0x30, sizeof(G_LevelUp_6x30) / 4, c->lobby_client_id},
stats.atp,
stats.mst,
stats.atp + (mag ? (mag->data1w[3] / 50) : 0),
stats.mst + (mag ? (mag->data1w[5] / 50) : 0),
stats.evp,
stats.hp,
stats.dfp,
stats.ata,
stats.dfp + (mag ? (mag->data1w[2] / 100) : 0),
stats.ata + (mag ? (mag->data1w[4] / 20) : 0),
p->disp.stats.level.load(),
0};
send_command_t(l, 0x60, 0x00, cmd);