Horizon Official Technical Documentation
CombatDefinitions.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 * \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 * Copyright (c) 2019 Sagun K. (sagunxp@gmail.com).
11 * Copyright (c) 2019 Horizon Dev Team.
12 *
13 * Base Author - Sagun K. (sagunxp@gmail.com)
14 *
15 * This library is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation, either version 3 of the License, or
18 * (at your option) any later version.
19 *
20 * This library is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this library. If not, see <http://www.gnu.org/licenses/>.
27 **************************************************/
28
29#ifndef HORIZON_ZONE_COMBAT_DEFINITIONS_HPP
30#define HORIZON_ZONE_COMBAT_DEFINITIONS_HPP
31
32#include "UnitDefinitions.hpp"
33#include <sol/sol.hpp>
34
36 // Flag of the final calculation
48};
49
50// state of a single attack attempt; used in flee/def penalty calculations when mobbed
52 CBT_RET_NONE, // not an attack
53 CBT_RET_LUCKY, // attack was lucky-dodged
54 CBT_RET_FLEE, // attack was dodged
55 CBT_RET_MISS, // attack missed because of element/race modifier.
56 CBT_RET_BLOCK, // attack was blocked by some skills.
57 CBT_RET_DEF // attack connected
58};
59
60enum combat_target_mask { //New definitions [Skotlex]
61 CBT_TMASK_NOONE = 0x000000,
62 CBT_TMASK_SELF = 0x010000,
63 CBT_TMASK_ENEMY = 0x020000,
64 CBT_TMASK_PARTY = 0x040000,
68
69 CBT_TMASK_GUILD = 0x280000,
70
71 CBT_TMASK_NOGUILD = 0x170000,
72 CBT_TMASK_NOPARTY = 0x3b0000,
73 CBT_TMASK_NOENEMY = 0x3d0000,
74
75 CBT_TMASK_ALL = 0x3f0000,
76};
77
84 CBT_DMG_HIT_NORMAL = 0, // Normal attack
85 //CBT_DMG_HIT_PICKUP = 1, // Pick up item
86 //CBT_DMG_HIT_SITDOWN = 2, // Sit down
87 //CBT_DMG_HIT_STANDUP = 3, // Stand up
88 CBT_DMG_HIT_ENDURE = 4, // Damage (endure)
89 CBT_DMG_HIT_SPLASH = 5, // Splash
90 CBT_DMG_HIT_SKILL = 6, // Skill
91 //CBT_DMG_HIT_REPEAT = 7, // (repeat damage?)
92 CBT_DMG_HIT_MULTIHIT = 8, // Multi-hit damage
93 CBT_DMG_HIT_MULTIENDURE = 9, // Multi-hit damage (endure)
94 CBT_DMG_HIT_CRIT = 10, // Critical hit
95 CBT_DMG_HIT_PDODGE = 11, // Lucky dodge
96 //CBT_DMG_HIT_TOUCH = 12, // (touch skill?)
97};
98
100{
101 int16_t skill_id{ 0 };
102 int16_t skill_lv{ 0 };
103 sol::table skill_cast_data;
104};
105
107 int64_t right_damage{0}, left_damage{0};
110 int amotion{0}, dmotion{0};
111 int blewcount{0};
115 int8_t element_level{1};
116 bool is_critical{false};
117};
118
120 int64_t heal_amount{ 0 };
121 bool success{ 0 };
122};
123
124#endif /* HORIZON_ZONE_COMBAT_DEFINITIONS_HPP */
combat_target_mask
Definition: CombatDefinitions.hpp:60
@ CBT_TMASK_NEUTRAL
Definition: CombatDefinitions.hpp:66
@ CBT_TMASK_NOGUILD
This must be (~BCT_GUILD&BCT_ALL)
Definition: CombatDefinitions.hpp:71
@ CBT_TMASK_SAMEGUILD
No Guild Allies.
Definition: CombatDefinitions.hpp:67
@ CBT_TMASK_ALL
Sum of BCT_NOONE to BCT_SAMEGUILD.
Definition: CombatDefinitions.hpp:75
@ CBT_TMASK_SELF
Definition: CombatDefinitions.hpp:62
@ CBT_TMASK_GUILD
Guild AND allies (BCT_SAMEGUILD|BCT_GUILDALLY)
Definition: CombatDefinitions.hpp:69
@ CBT_TMASK_NOENEMY
This must be (~BCT_ENEMY&BCT_ALL)
Definition: CombatDefinitions.hpp:73
@ CBT_TMASK_GUILDALLY
Only allies, NOT guildmates.
Definition: CombatDefinitions.hpp:65
@ CBT_TMASK_PARTY
Definition: CombatDefinitions.hpp:64
@ CBT_TMASK_NOONE
Definition: CombatDefinitions.hpp:61
@ CBT_TMASK_NOPARTY
This must be (~BCT_PARTY&BCT_ALL)
Definition: CombatDefinitions.hpp:72
@ CBT_TMASK_ENEMY
Definition: CombatDefinitions.hpp:63
combat_damage_hit_type
Values used by (struct Damage).type, as well as clif->damage(type) and clif->skill_damage(type)
Definition: CombatDefinitions.hpp:83
@ CBT_DMG_HIT_SKILL
Definition: CombatDefinitions.hpp:90
@ CBT_DMG_HIT_MULTIENDURE
Definition: CombatDefinitions.hpp:93
@ CBT_DMG_HIT_NORMAL
Definition: CombatDefinitions.hpp:84
@ CBT_DMG_HIT_SPLASH
Definition: CombatDefinitions.hpp:89
@ CBT_DMG_HIT_MULTIHIT
Definition: CombatDefinitions.hpp:92
@ CBT_DMG_HIT_CRIT
Definition: CombatDefinitions.hpp:94
@ CBT_DMG_HIT_PDODGE
Definition: CombatDefinitions.hpp:95
@ CBT_DMG_HIT_ENDURE
Definition: CombatDefinitions.hpp:88
combat_damage_type_mask
Definition: CombatDefinitions.hpp:35
@ CBT_DMGMASK_WEAPONMASK
Definition: CombatDefinitions.hpp:45
@ CBT_DMGMASK_MAGIC
Definition: CombatDefinitions.hpp:39
@ CBT_DMGMASK_SHORT
Definition: CombatDefinitions.hpp:41
@ CBT_DMGMASK_NONE
Definition: CombatDefinitions.hpp:37
@ CBT_DMGMASK_RANGEMASK
Definition: CombatDefinitions.hpp:46
@ CBT_DMGMASK_NORMAL
Definition: CombatDefinitions.hpp:44
@ CBT_DMGMASK_SKILLMASK
Definition: CombatDefinitions.hpp:47
@ CBT_DMGMASK_SKILL
Definition: CombatDefinitions.hpp:43
@ CBT_DMGMASK_LONG
Definition: CombatDefinitions.hpp:42
@ CBT_DMGMASK_WEAPON
Definition: CombatDefinitions.hpp:38
@ CBT_DMGMASK_MISC
Definition: CombatDefinitions.hpp:40
combat_retaliate_type
Definition: CombatDefinitions.hpp:51
@ CBT_RET_FLEE
Definition: CombatDefinitions.hpp:54
@ CBT_RET_DEF
Definition: CombatDefinitions.hpp:57
@ CBT_RET_BLOCK
Definition: CombatDefinitions.hpp:56
@ CBT_RET_MISS
Definition: CombatDefinitions.hpp:55
@ CBT_RET_LUCKY
Definition: CombatDefinitions.hpp:53
@ CBT_RET_NONE
Definition: CombatDefinitions.hpp:52
element_type
Definition: UnitDefinitions.hpp:970
@ ELE_NEUTRAL
Definition: UnitDefinitions.hpp:971
Definition: CombatDefinitions.hpp:106
int number_of_hits
Definition: CombatDefinitions.hpp:109
int8_t element_level
Definition: CombatDefinitions.hpp:115
bool is_critical
Definition: CombatDefinitions.hpp:116
combat_damage_type_mask damage_type
Definition: CombatDefinitions.hpp:112
element_type ele_type
Definition: CombatDefinitions.hpp:114
int64_t right_damage
Definition: CombatDefinitions.hpp:107
combat_damage_hit_type type
Definition: CombatDefinitions.hpp:108
int amotion
Definition: CombatDefinitions.hpp:110
int blewcount
Definition: CombatDefinitions.hpp:111
int dmotion
Definition: CombatDefinitions.hpp:110
combat_retaliate_type result
Definition: CombatDefinitions.hpp:113
int64_t left_damage
Definition: CombatDefinitions.hpp:107
Definition: CombatDefinitions.hpp:119
bool success
Definition: CombatDefinitions.hpp:121
int64_t heal_amount
Definition: CombatDefinitions.hpp:120
Definition: CombatDefinitions.hpp:100
sol::table skill_cast_data
Definition: CombatDefinitions.hpp:103
int16_t skill_lv
Definition: CombatDefinitions.hpp:102
int16_t skill_id
Definition: CombatDefinitions.hpp:101