mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-05 15:36:38 +00:00
Rework regens to match modern clients
This commit is contained in:
+44
-6
@@ -199,6 +199,27 @@ struct RespawnOption
|
||||
float heading;
|
||||
};
|
||||
|
||||
// do not ask what all these mean because I have no idea!
|
||||
// named from the client's CEverQuest::GetInnateDesc, they're missing some
|
||||
enum eInnateSkill {
|
||||
InnateEnabled = 0,
|
||||
InnateAwareness = 1,
|
||||
InnateBashDoor = 2,
|
||||
InnateBreathFire = 3,
|
||||
InnateHarmony = 4,
|
||||
InnateInfravision = 6,
|
||||
InnateLore = 8,
|
||||
InnateNoBash = 9,
|
||||
InnateRegen = 10,
|
||||
InnateSlam = 11,
|
||||
InnateSurprise = 12,
|
||||
InnateUltraVision = 13,
|
||||
InnateInspect = 14,
|
||||
InnateOpen = 15,
|
||||
InnateReveal = 16,
|
||||
InnateSkillMax = 25, // size of array in client
|
||||
InnateDisabled = 255
|
||||
};
|
||||
|
||||
const uint32 POPUPID_UPDATE_SHOWSTATSWINDOW = 1000000;
|
||||
|
||||
@@ -406,6 +427,16 @@ public:
|
||||
const int32& SetMana(int32 amount);
|
||||
int32 CalcManaRegenCap();
|
||||
|
||||
// guild pool regen shit. Sends a SpawnAppearance with a value that regens to value * 0.001
|
||||
void EnableAreaHPRegen(int value);
|
||||
void DisableAreaHPRegen();
|
||||
void EnableAreaManaRegen(int value);
|
||||
void DisableAreaManaRegen();
|
||||
void EnableAreaEndRegen(int value);
|
||||
void DisableAreaEndRegen();
|
||||
void EnableAreaRegens(int value);
|
||||
void DisableAreaRegens();
|
||||
|
||||
void ServerFilter(SetServerFilter_Struct* filter);
|
||||
void BulkSendTraderInventory(uint32 char_id);
|
||||
void SendSingleTraderItem(uint32 char_id, int uniqueid);
|
||||
@@ -540,7 +571,7 @@ public:
|
||||
/*Endurance and such*/
|
||||
void CalcMaxEndurance(); //This calculates the maximum endurance we can have
|
||||
int32 CalcBaseEndurance(); //Calculates Base End
|
||||
int32 CalcEnduranceRegen(); //Calculates endurance regen used in DoEnduranceRegen()
|
||||
int32 CalcEnduranceRegen(bool bCombat = false); //Calculates endurance regen used in DoEnduranceRegen()
|
||||
int32 GetEndurance() const {return current_endurance;} //This gets our current endurance
|
||||
int32 GetMaxEndurance() const {return max_end;} //This gets our endurance from the last CalcMaxEndurance() call
|
||||
int32 CalcEnduranceRegenCap();
|
||||
@@ -719,6 +750,7 @@ public:
|
||||
void SendTradeskillDetails(uint32 recipe_id);
|
||||
bool TradeskillExecute(DBTradeskillRecipe_Struct *spec);
|
||||
void CheckIncreaseTradeskill(int16 bonusstat, int16 stat_modifier, float skillup_modifier, uint16 success_modifier, EQEmu::skills::SkillType tradeskill);
|
||||
void InitInnates();
|
||||
|
||||
void GMKill();
|
||||
inline bool IsMedding() const {return medding;}
|
||||
@@ -760,6 +792,9 @@ public:
|
||||
void SummonHorse(uint16 spell_id);
|
||||
void SetHorseId(uint16 horseid_in);
|
||||
uint16 GetHorseId() const { return horseId; }
|
||||
bool CanMedOnHorse();
|
||||
|
||||
bool CanFastRegen() const { return ooc_regen; }
|
||||
|
||||
void NPCSpawn(NPC *target_npc, const char *identifier, uint32 extra = 0);
|
||||
|
||||
@@ -862,6 +897,7 @@ public:
|
||||
void SetHunger(int32 in_hunger);
|
||||
void SetThirst(int32 in_thirst);
|
||||
void SetConsumption(int32 in_hunger, int32 in_thirst);
|
||||
bool IsStarved() const { if (GetGM() || !RuleB(Character, EnableHungerPenalties)) return false; return m_pp.hunger_level == 0 || m_pp.thirst_level == 0; }
|
||||
|
||||
bool CheckTradeLoreConflict(Client* other);
|
||||
bool CheckTradeNonDroppable();
|
||||
@@ -1345,8 +1381,8 @@ private:
|
||||
int32 CalcCorrup();
|
||||
int32 CalcMaxHP();
|
||||
int32 CalcBaseHP();
|
||||
int32 CalcHPRegen();
|
||||
int32 CalcManaRegen();
|
||||
int32 CalcHPRegen(bool bCombat = false);
|
||||
int32 CalcManaRegen(bool bCombat = false);
|
||||
int32 CalcBaseManaRegen();
|
||||
uint32 GetClassHPFactor();
|
||||
void DoHPRegen();
|
||||
@@ -1410,6 +1446,7 @@ private:
|
||||
std::string BuyerWelcomeMessage;
|
||||
bool AbilityTimer;
|
||||
int Haste; //precalced value
|
||||
uint32 tmSitting; // time stamp started sitting, used for HP regen bonus added on MAY 5, 2004
|
||||
|
||||
int32 max_end;
|
||||
int32 current_endurance;
|
||||
@@ -1513,9 +1550,10 @@ private:
|
||||
|
||||
unsigned int AggroCount; // How many mobs are aggro on us.
|
||||
|
||||
unsigned int RestRegenHP;
|
||||
unsigned int RestRegenMana;
|
||||
unsigned int RestRegenEndurance;
|
||||
bool ooc_regen;
|
||||
float AreaHPRegen;
|
||||
float AreaManaRegen;
|
||||
float AreaEndRegen;
|
||||
|
||||
bool EngagedRaidTarget;
|
||||
uint32 SavedRaidRestTimer;
|
||||
|
||||
Reference in New Issue
Block a user