summaryrefslogtreecommitdiff
path: root/src/map/battle.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/battle.h')
-rw-r--r--src/map/battle.h102
1 files changed, 89 insertions, 13 deletions
diff --git a/src/map/battle.h b/src/map/battle.h
index 49abdc730..bb907d5b9 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2012-2015 Hercules Dev Team
- * Copyright (C) Athena Dev Teams
+ * Copyright (C) 2012-2020 Hercules Dev Team
+ * Copyright (C) Athena Dev Teams
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -54,6 +54,7 @@ struct status_data;
enum {
// Flag of the final calculation
+ BF_NONE = 0x0000,
BF_WEAPON = 0x0001,
BF_MAGIC = 0x0002,
BF_MISC = 0x0004,
@@ -102,8 +103,8 @@ enum e_battle_check_target { //New definitions [Skotlex]
enum battle_dmg_type {
BDT_NORMAL = 0, // Normal attack
//BDT_PICKUP = 1, // Pick up item
- //BDT_SITDOWN = 2, // Sit down
- //BDT_STANDUP = 3, // Stand up
+ BDT_SITDOWN = 2, // Sit down
+ BDT_STANDUP = 3, // Stand up
BDT_ENDURE = 4, // Damage (endure)
BDT_SPLASH = 5, // Splash
BDT_SKILL = 6, // Skill
@@ -148,7 +149,8 @@ struct Battle_Config {
int pc_damage_delay_rate;
int defnotenemy;
int vs_traps_bctall;
- int traps_setting;
+ int trap_visibility;
+ int trap_trigger;
int summon_flora; //[Skotlex]
int clear_unit_ondeath; //[Skotlex]
int clear_unit_onwarp; //[Skotlex]
@@ -210,16 +212,15 @@ struct Battle_Config {
int guild_aura;
int pc_invincible_time;
+ int pet_catch_rate_official_formula;
int pet_catch_rate;
int pet_rename;
int pet_friendly_rate;
int pet_hungry_delay_rate;
- int pet_hungry_friendly_decrease;
int pet_status_support;
int pet_attack_support;
int pet_damage_support;
int pet_support_min_friendly; //[Skotlex]
- int pet_equip_min_friendly;
int pet_support_rate;
int pet_attack_exp_to_master;
int pet_attack_exp_rate;
@@ -240,12 +241,13 @@ struct Battle_Config {
int combo_delay_rate;
int item_check;
int item_use_interval; //[Skotlex]
- int cashfood_use_interval;
int wedding_modifydisplay;
int wedding_ignorepalette; //[Skotlex]
int xmas_ignorepalette; // [Valaris]
int summer_ignorepalette; // [Zephyrus]
int hanbok_ignorepalette;
+ int oktoberfest_ignorepalette;
+ int summer2_ignorepalette;
int natural_healhp_interval;
int natural_healsp_interval;
int natural_heal_skill_interval;
@@ -297,6 +299,7 @@ struct Battle_Config {
int show_steal_in_same_party;
int party_share_type;
int party_hp_mode;
+ int party_change_leader_same_map;
int party_show_share_picker;
int show_picker_item_type;
int attack_attr_none;
@@ -338,7 +341,6 @@ struct Battle_Config {
int skill_removetrap_type;
int disp_experience;
int disp_zeny;
- int castle_defense_rate;
int backstab_bow_penalty;
int hp_rate;
int sp_rate;
@@ -362,6 +364,8 @@ struct Battle_Config {
int castrate_dex_scale; // added by [MouseJstr]
int area_size; // added by [MouseJstr]
+ int chat_area_size; // added by [gumi]
+ int dead_area_size; // Monster die area [KirieZ]
int max_def, over_def_bonus; //added by [Skotlex]
@@ -399,6 +403,7 @@ struct Battle_Config {
int mob_remove_delay; // Dynamic Mobs - delay before removing mobs from a map [Skotlex]
int mob_active_time; //Duration through which mobs execute their Hard AI after players leave their area of sight.
int boss_active_time;
+ int slave_chase_masters_chasetarget;
int show_hp_sp_drain, show_hp_sp_gain; //[Skotlex]
int show_katar_crit_bonus;
@@ -406,7 +411,6 @@ struct Battle_Config {
int mob_npc_event_type; //Determines on who the npc_event is executed. [Skotlex]
int character_size; // if riders have size=2, and baby class riders size=1 [Lupus]
- int rare_drop_announce; // chance <= to show rare drops global announces
int retaliate_to_master; //Whether when a mob is attacked by another mob, it will retaliate versus the mob or the mob's master. [Skotlex]
@@ -473,6 +477,7 @@ struct Battle_Config {
int client_emblem_max_blank_percent;
int hom_max_level;
int hom_S_max_level;
+ int hom_bonus_exp_from_master;
// [BattleGround Settings]
int bg_update_interval;
@@ -487,6 +492,7 @@ struct Battle_Config {
int vcast_stat_scale;
int mvp_tomb_enabled;
+ int mvp_tomb_spawn_delay;
int atcommand_suggestions_enabled;
int min_npc_vendchat_distance;
@@ -501,6 +507,7 @@ struct Battle_Config {
/** Hercules **/
int skill_trap_type;
+ int trap_reflect;
int item_restricted_consumption_type;
int unequip_restricted_equipment;
int max_walk_path;
@@ -539,6 +546,67 @@ struct Battle_Config {
// BodyStyle
int min_body_style, max_body_style;
int save_body_style;
+
+ // Warp Face Direction
+ int player_warp_keep_direction;
+
+ int atcommand_levelup_events; // Enable atcommands trigger level up events for NPCs
+
+ int bow_unequip_arrow;
+
+ int max_summoner_parameter; // Summoner Max Stats
+ int mvp_exp_reward_message;
+
+ int mob_eye_range_bonus; //Vulture's Eye and Snake's Eye range bonus
+
+ int prevent_logout_trigger;
+ int boarding_halter_speed;
+
+ int feature_rodex;
+ int feature_rodex_use_accountmail;
+
+ int feature_enable_homun_autofeed;
+ int feature_enable_pet_autofeed;
+
+ int storage_use_item;
+
+ int feature_enable_attendance_system;
+ int feature_attendance_endtime;
+
+ int min_item_buy_price;
+ int min_item_sell_price;
+
+ int display_fake_hp_when_dead;
+
+ int magicrod_type;
+
+ int feature_enable_achievement;
+
+ int ping_timer_interval;
+ int ping_time;
+
+ int option_drop_max_loop;
+
+ int drop_connection_on_quit;
+ int enable_refinery_ui;
+ int replace_refine_npcs;
+
+ int batk_min;
+ int batk_max;
+ int matk_min;
+ int matk_max;
+ int watk_min;
+ int watk_max;
+ int flee_min;
+ int flee_max;
+ int flee2_min;
+ int flee2_max;
+ int critical_min;
+ int critical_max;
+ int hit_min;
+ int hit_max;
+
+ int autoloot_adjust;
};
/* criteria for battle_config.idletime_critera */
@@ -553,6 +621,7 @@ enum e_battle_config_idletime {
BCIDLE_EMOTION = 0x080,
BCIDLE_DROPITEM = 0x100,
BCIDLE_ATCOMMAND = 0x200,
+ BCIDLE_SCRIPT = 0x400,
};
// Damage delayed info
@@ -587,12 +656,16 @@ struct battle_interface {
struct Damage (*calc_attack) (int attack_type, struct block_list *bl, struct block_list *target, uint16 skill_id, uint16 skill_lv, int count);
/* generic final damage calculation */
int64 (*calc_damage) (struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv);
+ /* pc special damage calculation */
+ int64 (*calc_pc_damage) (struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv);
/* gvg final damage calculation */
int64 (*calc_gvg_damage) (struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag);
/* battlegrounds final damage calculation */
int64 (*calc_bg_damage) (struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag);
/* normal weapon attack */
enum damage_lv (*weapon_attack) (struct block_list *bl, struct block_list *target, int64 tick, int flag);
+ /* check is equipped ammo and this ammo allowed */
+ bool (*check_arrows) (struct map_session_data *sd);
/* calculate weapon attack */
struct Damage (*calc_weapon_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int wflag);
/* delays damage or skills by a timer */
@@ -601,6 +674,8 @@ struct battle_interface {
void (*drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
/* damage reflect */
void (*reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd,uint16 skill_id);
+ /* trap reflect */
+ void(*reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
/* attribute rate */
int (*attr_ratio) (int atk_elem, int def_type, int def_lv);
/* applies attribute modifiers */
@@ -654,10 +729,11 @@ struct battle_interface {
int (*adjust_skill_damage) (int m, unsigned short skill_id);
int64 (*add_mastery) (struct map_session_data *sd,struct block_list *target,int64 dmg,int type);
int (*calc_drain) (int64 damage, int rate, int per);
- /* - battle_config */
- int (*config_read) (const char *cfgName);
+ /* battle_config */
+ bool (*config_read) (const char *filename, bool imported);
void (*config_set_defaults) (void);
- int (*config_set_value) (const char *w1, const char *w2);
+ bool (*config_set_value_sub) (int index, int value);
+ bool (*config_set_value) (const char *param, const char *value);
bool (*config_get_value) (const char *w1, int *value);
void (*config_adjust) (void);
/* ----------------------------------------- */