cOMS/models/mob/MobStats.h
2024-07-21 21:25:39 +02:00

547 lines
14 KiB
C

/**
* Jingga
*
* @copyright Jingga
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
#ifndef TOS_MODELS_MOB_STATS_H
#define TOS_MODELS_MOB_STATS_H
#include "../../stdlib/Types.h"
struct SMobStatsTotal {
byte stat_str; // strength : effects health + base damage
byte stat_int; // inteligence : effects resource + base demage
byte stat_acc; // accuracy : effects critical chance + base damage + miss chance
byte stat_agi; // agility : effects resource + base damage + dodge change
byte stat_def; // defense : effects resource + base defense + dodge change
byte stat_sta; // stamina : effects health regen + resource regen
// Naming conventions
// : total
// _base : character stats (see stat_ above)
// _equip : character equipment
// _item : other item effects (consumables, e.g. potions)
// _effect : external aoe/skill effect
// _skill : own skill
// Damage types
uint32 dmg;
uint32 dmg_base;
uint32 dmg_equip;
uint32 dmg_item;
uint32 dmg_effect;
uint32 dmg_skill;
uint32 dmg_pircing;
uint32 dmg_pircing_base;
uint32 dmg_pircing_equip;
uint32 dmg_pircing_item;
uint32 dmg_pircing_effect;
uint32 dmg_pircing_skill;
uint32 dmg_slashing;
uint32 dmg_slashing_base;
uint32 dmg_slashing_equip;
uint32 dmg_slashing_item;
uint32 dmg_slashing_effect;
uint32 dmg_slashing_skill;
uint32 dmg_bludgeoning;
uint32 dmg_bludgeoning_base;
uint32 dmg_bludgeoning_equip;
uint32 dmg_bludgeoning_item;
uint32 dmg_bludgeoning_effect;
uint32 dmg_bludgeoning_skill;
uint32 dmg_stabbing;
uint32 dmg_stabbing_base;
uint32 dmg_stabbing_equip;
uint32 dmg_stabbing_item;
uint32 dmg_stabbing_effect;
uint32 dmg_stabbing_skill;
uint32 dmg_fire;
uint32 dmg_fire_base;
uint32 dmg_fire_equip;
uint32 dmg_fire_item;
uint32 dmg_fire_effect;
uint32 dmg_fire_skill;
uint32 dmg_water;
uint32 dmg_water_base;
uint32 dmg_water_equip;
uint32 dmg_water_item;
uint32 dmg_water_effect;
uint32 dmg_water_skill;
uint32 dmg_ice;
uint32 dmg_ice_base;
uint32 dmg_ice_equip;
uint32 dmg_ice_item;
uint32 dmg_ice_effect;
uint32 dmg_ice_skill;
uint32 dmg_earth;
uint32 dmg_earth_base;
uint32 dmg_earth_equip;
uint32 dmg_earth_item;
uint32 dmg_earth_effect;
uint32 dmg_earth_skill;
uint32 dmg_wind;
uint32 dmg_wind_base;
uint32 dmg_wind_equip;
uint32 dmg_wind_item;
uint32 dmg_wind_effect;
uint32 dmg_wind_skill;
uint32 dmg_poison;
uint32 dmg_poison_base;
uint32 dmg_poison_equip;
uint32 dmg_poison_item;
uint32 dmg_poison_effect;
uint32 dmg_poison_skill;
uint32 dmg_lightning;
uint32 dmg_lightning_base;
uint32 dmg_lightning_equip;
uint32 dmg_lightning_item;
uint32 dmg_lightning_effect;
uint32 dmg_lightning_skill;
uint32 dmg_holy;
uint32 dmg_holy_base;
uint32 dmg_holy_equip;
uint32 dmg_holy_item;
uint32 dmg_holy_effect;
uint32 dmg_holy_skill;
uint32 dmg_arcane;
uint32 dmg_arcane_base;
uint32 dmg_arcane_equip;
uint32 dmg_arcane_item;
uint32 dmg_arcane_effect;
uint32 dmg_arcane_skill;
uint32 dmg_corrupted;
uint32 dmg_corrupted_base;
uint32 dmg_corrupted_equip;
uint32 dmg_corrupted_item;
uint32 dmg_corrupted_effect;
uint32 dmg_corrupted_skill;
uint32 dmg_crit;
uint32 dmg_crit_base;
uint32 dmg_crit_equip;
uint32 dmg_crit_item;
uint32 dmg_crit_effect;
uint32 dmg_crit_skill;
f32 dmg_crit_chance;
f32 dmg_crit_chance_base;
f32 dmg_crit_chance_equip;
f32 dmg_crit_chance_item;
f32 dmg_crit_chance_effect;
f32 dmg_crit_chance_skill;
uint32 dmg_reflection;
uint32 dmg_reflection_base;
uint32 dmg_reflection_equip;
uint32 dmg_reflection_item;
uint32 dmg_reflection_effect;
uint32 dmg_reflection_skill;
// Health & Resource
uint32 health;
uint32 health_base;
uint32 health_equip;
uint32 health_item;
uint32 health_effect;
uint32 health_skill;
uint32 health_on_dmg_dealt;
uint32 health_on_dmg_dealt_base;
uint32 health_on_dmg_dealt_equip;
uint32 health_on_dmg_dealt_item;
uint32 health_on_dmg_dealt_effect;
uint32 health_on_dmg_dealt_skill;
uint32 health_on_dmg_taken;
uint32 health_on_dmg_taken_base;
uint32 health_on_dmg_taken_equip;
uint32 health_on_dmg_taken_item;
uint32 health_on_dmg_taken_effect;
uint32 health_on_dmg_taken_skill;
uint32 health_regen;
uint32 health_regen_base;
uint32 health_regen_equip;
uint32 health_regen_item;
uint32 health_regen_effect;
uint32 health_regen_skill;
uint32 health_regen_on_dmg_dealt;
uint32 health_regen_on_dmg_dealt_base;
uint32 health_regen_on_dmg_dealt_equip;
uint32 health_regen_on_dmg_dealt_item;
uint32 health_regen_on_dmg_dealt_effect;
uint32 health_regen_on_dmg_dealt_skill;
uint32 health_regen_on_dmg_taken;
uint32 health_regen_on_dmg_taken_base;
uint32 health_regen_on_dmg_taken_equip;
uint32 health_regen_on_dmg_taken_item;
uint32 health_regen_on_dmg_taken_effect;
uint32 health_regen_on_dmg_taken_skill;
uint32 resource;
uint32 resource_base;
uint32 resource_equip;
uint32 resource_item;
uint32 resource_effect;
uint32 resource_skill;
uint32 resource_on_dmg_dealt;
uint32 resource_on_dmg_dealt_base;
uint32 resource_on_dmg_dealt_equip;
uint32 resource_on_dmg_dealt_item;
uint32 resource_on_dmg_dealt_effect;
uint32 resource_on_dmg_dealt_skill;
uint32 resource_on_dmg_taken;
uint32 resource_on_dmg_taken_base;
uint32 resource_on_dmg_taken_equip;
uint32 resource_on_dmg_taken_item;
uint32 resource_on_dmg_taken_effect;
uint32 resource_on_dmg_taken_skill;
uint32 resource_regen;
uint32 resource_regen_base;
uint32 resource_regen_equip;
uint32 resource_regen_item;
uint32 resource_regen_effect;
uint32 resource_regen_skill;
uint32 resource_regen_on_dmg_dealt;
uint32 resource_regen_on_dmg_dealt_base;
uint32 resource_regen_on_dmg_dealt_equip;
uint32 resource_regen_on_dmg_dealt_item;
uint32 resource_regen_on_dmg_dealt_effect;
uint32 resource_regen_on_dmg_dealt_skill;
uint32 resource_regen_on_dmg_taken;
uint32 resource_regen_on_dmg_taken_base;
uint32 resource_regen_on_dmg_taken_equip;
uint32 resource_regen_on_dmg_taken_item;
uint32 resource_regen_on_dmg_taken_effect;
uint32 resource_regen_on_dmg_taken_skill;
uint32 resource_loss;
uint32 resource_loss_base;
uint32 resource_loss_equip;
uint32 resource_loss_item;
uint32 resource_loss_effect;
uint32 resource_loss_skill;
uint32 resource_loss_on_dmg_dealt;
uint32 resource_loss_on_dmg_dealt_base;
uint32 resource_loss_on_dmg_dealt_equip;
uint32 resource_loss_on_dmg_dealt_item;
uint32 resource_loss_on_dmg_dealt_effect;
uint32 resource_loss_on_dmg_dealt_skill;
uint32 resource_loss_on_dmg_taken;
uint32 resource_loss_on_dmg_taken_base;
uint32 resource_loss_on_dmg_taken_equip;
uint32 resource_loss_on_dmg_taken_item;
uint32 resource_loss_on_dmg_taken_effect;
uint32 resource_loss_on_dmg_taken_skill;
// Defense types
// think about it as armor and/or resistence if it helps
uint32 defense;
uint32 defense_base;
uint32 defense_equip;
uint32 defense_item;
uint32 defense_effect;
uint32 defense_skill;
uint32 defense_pircing;
uint32 defense_pircing_base;
uint32 defense_pircing_equip;
uint32 defense_pircing_item;
uint32 defense_pircing_effect;
uint32 defense_pircing_skill;
uint32 defense_slashing;
uint32 defense_slashing_base;
uint32 defense_slashing_equip;
uint32 defense_slashing_item;
uint32 defense_slashing_effect;
uint32 defense_slashing_skill;
uint32 defense_bludgeoning;
uint32 defense_bludgeoning_base;
uint32 defense_bludgeoning_equip;
uint32 defense_bludgeoning_item;
uint32 defense_bludgeoning_effect;
uint32 defense_bludgeoning_skill;
uint32 defense_stabbing;
uint32 defense_stabbing_base;
uint32 defense_stabbing_equip;
uint32 defense_stabbing_item;
uint32 defense_stabbing_effect;
uint32 defense_stabbing_skill;
uint32 defense_fire;
uint32 defense_fire_base;
uint32 defense_fire_equip;
uint32 defense_fire_item;
uint32 defense_fire_effect;
uint32 defense_fire_skill;
uint32 defense_water;
uint32 defense_water_base;
uint32 defense_water_equip;
uint32 defense_water_item;
uint32 defense_water_effect;
uint32 defense_water_skill;
uint32 defense_ice;
uint32 defense_ice_base;
uint32 defense_ice_equip;
uint32 defense_ice_item;
uint32 defense_ice_effect;
uint32 defense_ice_skill;
uint32 defense_earth;
uint32 defense_earth_base;
uint32 defense_earth_equip;
uint32 defense_earth_item;
uint32 defense_earth_effect;
uint32 defense_earth_skill;
uint32 defense_wind;
uint32 defense_wind_base;
uint32 defense_wind_equip;
uint32 defense_wind_item;
uint32 defense_wind_effect;
uint32 defense_wind_skill;
uint32 defense_poison;
uint32 defense_poison_base;
uint32 defense_poison_equip;
uint32 defense_poison_item;
uint32 defense_poison_effect;
uint32 defense_poison_skill;
uint32 defense_lightning;
uint32 defense_lightning_base;
uint32 defense_lightning_equip;
uint32 defense_lightning_item;
uint32 defense_lightning_effect;
uint32 defense_lightning_skill;
uint32 defense_holy;
uint32 defense_holy_base;
uint32 defense_holy_equip;
uint32 defense_holy_item;
uint32 defense_holy_effect;
uint32 defense_holy_skill;
uint32 defense_arcane;
uint32 defense_arcane_base;
uint32 defense_arcane_equip;
uint32 defense_arcane_item;
uint32 defense_arcane_effect;
uint32 defense_arcane_skill;
uint32 defense_corrupted;
uint32 defense_corrupted_base;
uint32 defense_corrupted_equip;
uint32 defense_corrupted_item;
uint32 defense_corrupted_effect;
uint32 defense_corrupted_skill;
uint32 shield_type;
bool shield_dispellable;
uint32 shield;
uint32 shield_base;
uint32 shield_equip;
uint32 shield_item;
uint32 shield_effect;
uint32 shield_skill;
// Accuracy
f32 dodge_chance;
f32 dodge_chance_base;
f32 dodge_chance_equip;
f32 dodge_chance_item;
f32 dodge_chance_effect;
f32 dodge_chance_skill;
f32 root_protection;
f32 root_protection_base;
f32 root_protection_equip;
f32 root_protection_item;
f32 root_protection_effect;
f32 root_protection_skill;
f32 miss_chance;
f32 miss_chance_base;
f32 miss_chance_equip;
f32 miss_chance_item;
f32 miss_chance_effect;
f32 miss_chance_skill;
// Movement
// Additional speeds may be defined for Mobs
f32 speed_walk1; // normal/fast
f32 speed_walk1_base;
f32 speed_walk1_equip;
f32 speed_walk1_item;
f32 speed_walk1_effect;
f32 speed_walk1_skill;
f32 speed_walk2; // casual/slow
f32 speed_swim1; // normal/fast
f32 speed_swim1_base;
f32 speed_swim1_equip;
f32 speed_swim1_item;
f32 speed_swim1_effect;
f32 speed_swim1_skill;
f32 speed_swim2; // casual/slow
f32 speed_fly1; // normal/fast
f32 speed_fly1_base;
f32 speed_fly1_equip;
f32 speed_fly1_item;
f32 speed_fly1_effect;
f32 speed_fly1_skill;
f32 speed_fly2; // casual/slow
f32 speed_jump;
f32 speed_dodge;
f32 speed_turn;
// Fighting speed
f32 speed_cast;
f32 speed_cast_base;
f32 speed_cast_equip;
f32 speed_cast_item;
f32 speed_cast_effect;
f32 speed_cast_skill;
f32 speed_attack;
f32 speed_attack_base;
f32 speed_attack_equip;
f32 speed_attack_item;
f32 speed_attack_effect;
f32 speed_attack_skill;
};
struct SMobStats {
byte stat_str; // strength : effects health + base damage
byte stat_int; // inteligence : effects resource + base demage
byte stat_acc; // accuracy : effects critical chance + base damage + miss chance
byte stat_agi; // agility : effects resource + base damage + dodge change
byte stat_def; // defense : effects resource + base defense + dodge change
byte stat_sta; // stamina : effects health regen + resource regen
// Damage types
uint32 dmg;
uint32 dmg_pircing;
uint32 dmg_slashing;
uint32 dmg_bludgeoning;
uint32 dmg_stabbing;
uint32 dmg_fire;
uint32 dmg_water;
uint32 dmg_ice;
uint32 dmg_arcane;
uint32 dmg_corrupted;
uint32 dmg_reflection;
uint32 dmg_crit;
f32 dmg_crit_chance;
// Health & Resource
uint32 health;
uint32 health_on_dmg_dealt;
uint32 health_on_dmg_taken;
uint32 health_regen;
uint32 health_regen_on_dmg_dealt;
uint32 health_regen_on_dmg_taken;
uint32 resource;
uint32 resource_on_dmg_dealt;
uint32 resource_on_dmg_taken;
uint32 resource_regen;
uint32 resource_regen_on_dmg_dealt;
uint32 resource_regen_on_dmg_taken;
uint32 resource_loss;
uint32 resource_loss_on_dmg_dealt;
uint32 resource_loss_on_dmg_taken;
// Defense types
// think about it as armor and/or resistence if it helps
uint32 defense;
uint32 defense_pircing;
uint32 defense_slashing;
uint32 defense_bludgeoning;
uint32 defense_stabbing;
uint32 defense_fire;
uint32 defense_water;
uint32 defense_ice;
uint32 defense_earth;
uint32 defense_wind;
uint32 defense_poison;
uint32 defense_lightning;
uint32 defense_holy;
uint32 defense_arcane;
uint32 defense_corrupted;
uint32 shield_type;
bool shield_dispellable;
uint32 shield;
// Accuracy
f32 dodge_chance;
f32 root_protection;
f32 miss_chance;
// Movement
// Additional speeds may be defined for Mobs
f32 speed_walk1; // normal/fast
f32 speed_walk2; // casual/slow
f32 speed_swim1; // normal/fast
f32 speed_swim2; // casual/slow
f32 speed_fly1; // normal/fast
f32 speed_fly2; // casual/slow
f32 speed_jump;
f32 speed_dodge;
f32 speed_turn;
// Fighting speed
f32 speed_cast;
f32 speed_attack;
};
struct CMobStats {
};
#endif