Files
AscEmu/src/scripts/Battlegrounds/AlteracValley/AlteracValleyDefinitions.h
2023-01-02 17:56:56 +02:00

142 lines
5.8 KiB
C++

/*
Copyright (c) 2014-2023 AscEmu Team <http://www.ascemu.org>
This file is released under the MIT license. See README-MIT for more information.
*/
#pragma once
#include <cstdint>
enum
{
// GENERAL AV DEFINES
AV_NUM_REINFORCEMENTS = 600, // Amount of reinforcements we start off with
//AV_SCORE_WARNING = 530, // Dunno what this should be ;p
//AV_ADD_POINTS_ON_CONTROLLED_MINE = 1, // Points to give the team who controls (a) mine(s)
AV_REINFORCEMENT_ADD_INTERVAL = 45000, // The interval (in milliseconds) that points from mines are awarded
AV_POINTS_ON_DESTROY_BUNKER = 75, // Points to remove for destroying a team's bunker
AV_POINTS_ON_KILL = 1, // Points to remove when killing a member of the opposite team
AV_POINTS_ON_KILL_CAPTAIN = 100, // Points to remove for killing a team's captain
AV_HONOR_ON_KILL_BOSS = 62, // Amount of honor awarded to players for killing a boss of the opposite team
//AV_NUM_CONTESTED_AREAS = 9, // Total contested areas (graveyards/mines)
//AV_NUM_DESTROYABLE_AREAS = 8, // Total destroyable areas (towers/bunkers)
//AV_NUM_BOSS_UNITS = 14, // Boss units (generals/captains/wing commanders etc)
//AV_NUM_COLDTOOTH_UNITS = 5, // Coldtooth mine NPC types
//AV_NUM_IRONDEEP_UNITS = 4, // Irondeep mine NPC types
//AV_NUM_SNOWFALL_FLAGS = 2, // Count of Snowfall flags (used when changing them on a team's acquiration of the CP
//AV_CONTESTED_AREAS_START = 0, // ID at which contested points start (for loops/ifs)
//AV_CONTESTED_AREAS_END = 8, // ID at which contested points end (for loops/ifs)
//AV_DESTROYABLE_AREAS_START = 9, // ID at which destroyable points start (for loops/ifs)
//AV_DESTROYABLE_AREAS_END = 16, // ID at which contested points finish (for loops/ifs)
};
enum AVControlPoints
{
AV_CONTROL_POINT_STORMPIKE_AID_STATION = 0,
AV_CONTROL_POINT_STORMPIKE_GRAVEYARD = 1,
AV_CONTROL_POINT_STONEHEARTH_GRAVEYARD = 2,
AV_CONTROL_POINT_SNOWFALL_GRAVEYARD = 3,
AV_CONTROL_POINT_COLDTOOTH_MINE = 4,
AV_CONTROL_POINT_IRONDEEP_MINE = 5,
AV_CONTROL_POINT_ICEBLOOD_GRAVEYARD = 6,
AV_CONTROL_POINT_FROSTWOLF_GRAVEYARD = 7,
AV_CONTROL_POINT_FROSTWOLF_RELIEF_HUT = 8,
AV_CONTROL_POINT_DUN_BALDAR_NORTH_BUNKER = 9,
AV_CONTROL_POINT_DUN_BALDAR_SOUTH_BUNKER = 10,
AV_CONTROL_POINT_ICEWING_BUNKER = 11,
AV_CONTROL_POINT_STONEHEARTH_BUNKER = 12,
AV_CONTROL_POINT_ICEBLOOD_TOWER = 13,
AV_CONTROL_POINT_TOWER_POINT = 14,
AV_CONTROL_POINT_EAST_FROSTWOLF_TOWER = 15,
AV_CONTROL_POINT_WEST_FROSTWOLF_TOWER = 16,
AV_NUM_CONTROL_POINTS = 17
};
enum AVSpawnTypes
{
AV_SPAWN_TYPE_NEUTRAL = 0,
AV_SPAWN_TYPE_ALLIANCE_ASSAULT = 1,
AV_SPAWN_TYPE_HORDE_ASSAULT = 2,
AV_SPAWN_TYPE_ALLIANCE_CONTROLLED_OR_DESTROYED = 3,
AV_SPAWN_TYPE_HORDE_CONTROLLED_OR_DESTROYED = 4,
AV_NUM_SPAWN_TYPES = 5
};
enum AVNodeStates
{
AV_NODE_STATE_NEUTRAL_CONTROLLED = 0,
AV_NODE_STATE_ALLIANCE_ASSAULTING = 1,
AV_NODE_STATE_ALLIANCE_CONTROLLED = 2,
AV_NODE_STATE_HORDE_ASSAULTING = 3,
AV_NODE_STATE_HORDE_CONTROLLED = 4,
AV_NODE_STATE_COUNT = 5
};
struct AVLocation { float x; float y; float z; };
struct AVSpawnLocation { float x; float y; float z; float o; };
struct AVGameObject { uint32_t id[AV_NODE_STATE_COUNT]; float x; float y; float z; float o; float rot1; float rot2; };
struct AVNodeTemplate
{
const char* m_name; // Stormpike Aid Station
bool m_isGraveyard; // Is this a graveyard?
bool m_capturable; // Is this capturable?
AVLocation m_graveyardLocation; // Revive location, also location of spirit guide
AVGameObject m_flagLocation; // Flag location (need to add GO id/properties here)
AVGameObject m_auraLocation; // Aura location
AVGameObject m_glowLocation; // Aura glow location
uint32_t m_guardId[3]; // Horde/alliance guard ids
uint32_t m_guardCount; // Count of guards to spawn
uint32_t m_bossId[3]; // Boss ID (e.g. Balinda), 0 = A, 1 = H, 2 = Neutral
AVLocation* m_peonLocations; // Used by mines.
AVLocation m_bossLocation; // Location of boss if there is one
uint32_t m_initialSpawnId; // Initial spawn (Bowmen) ID
uint32_t m_worldStateFields[AV_NODE_STATE_COUNT]; // State fields
uint32_t m_defaultState; // State of the node when battleground is spawned
};
enum GameObjectEntry
{
AV_GAMEOBJECT_FIRE = 179065,
AV_GAMEOBJECT_GATE = 180424
};
enum CreatureEntry
{
AV_NPC_GENERAL_VANNDAR_STORMPIKE = 11948,
AV_NPC_CAPTAIN_BALINDA_STONEHEARTH = 11949,
AV_NPC_ARCH_DRUID_RENFERAL = 13442,
AV_NPC_WING_COMMANDER_SLIDORE = 13438,
AV_NPC_WING_COMMANDER_VIPORE = 13439,
AV_NPC_WING_COMMANDER_ICHMAN = 13437,
AV_NPC_GENERAL_DREK_THAR = 11946,
AV_NPC_CAPTAIN_GALVANGAR = 11947,
AV_NPC_PRIMALIST_THURLOGA = 13236,
AV_NPC_WING_COMMANDER_GUSE = 13179,
AV_NPC_WING_COMMANDER_JEZTOR = 13180,
AV_NPC_WING_COMMANDER_MULVERICK = 13181,
AV_NPC_IVUS_FOREST_LORD = 13419,
AV_NPC_LOKHOLAR_ICE_LORD = 13256,
AV_NPC_TASKMASTER_SNIVVLE = 11677,
AV_NPC_WHITEWISKER_DIGGER = 11603,
AV_NPC_WHITEWISKER_GEOMANCER = 11604,
AV_NPC_WHITEWISKER_OVERSEER = 11605,
AV_NPC_WHITEWISKER_VERMIN = 10982,
AV_NPC_MORLOCH = 11657,
AV_NPC_IRONDEEP_TROGG = 10987,
AV_NPC_IRONDEEP_SHAMAN = 11600,
AV_NPC_IRONDEEP_SKULLTHUMPER = 11602
};