From 4f1a76f117d847eac51cce7d6c9d5f6f96ab0e66 Mon Sep 17 00:00:00 2001 From: Logan Date: Mon, 21 Jan 2019 19:02:34 -0800 Subject: [PATCH] Updated Project PEQ Expansions Concept Doc (markdown) --- Project-PEQ-Expansions-Concept-Doc.md | 61 ++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/Project-PEQ-Expansions-Concept-Doc.md b/Project-PEQ-Expansions-Concept-Doc.md index 73d10d1..441bc42 100644 --- a/Project-PEQ-Expansions-Concept-Doc.md +++ b/Project-PEQ-Expansions-Concept-Doc.md @@ -2,4 +2,63 @@ This document describes the challenges and solutions to creating a dynamic-expansion supported PEQ baseline. -## Extend Expansion bit support \ No newline at end of file +## Areas of Concern +- Load data based on expansion: Add a new expansion TINYINT(4)? to many tables to allow dynamic loading. + - aa tables: This is handled I believe with db_string? Verify + - account: This stores the expansion value per account, used by other tables. + - adventure_template: Since multiple expansions add different styles of adventures, add support for this. + - char_create_combinations: expansions_req contains this data + - doors: Does this need expansion? I'm leaning no, zone will determine + - global_loot: Does this need expansion? I'm leaning yes, as itemization should be determined with expansion + - items: may need expansion to ensure merchants are not populated with out of era items + - spawn2: need expansion to disable spawning of certain npcs + - spells_new: needs a way to discern expansion for allowing certain spells. + - starting_items: perhaps just honor if an item is of a proper expansion or not? + - titles: may need expansion? + - tradeskill_recipe: needs expansion + - zone: will not be able to zone into an area unless you are GM status or have the expansion enabled. +- Quests + - Perhaps add a feature to prefix a quest file with an expansion to enable/disable it? Especially useful for things like player.pl/player.lua. +### Combat + - https://github.com/mackal/EQMechanics/wiki +```[PM] mackal: they used to have hardcaps on mitigation +[6:55 PM] mackal: which was easy to hit during kunark as a plat toon +[6:55 PM] mackal: plate +[6:56 PM] mackal: they added a softcap, then shield going over +[6:53 PM] mackal: combat system is basically the same +[6:53 PM] mackal: mostly just a change in mitigation calcs +[6:56 PM] mackal: then it basically stayed the same +``` + +```cpp +if IsClient(): + softcap = 350 + if GetClass() == WARRIOR and GetLevel() > 50: + softcap = 430 + if (GetClass() == PALADIN or GetClass() == SHADOWKNIGHT or GetClass() == BARD) and GetLevel() > 50 + softcap = 403 + if (GetClass() == RANGER or GetClass() == ROGUE or GetClass() == MONK or GetClass() == BEASTLORD) and GetLevel() > 50 + softcap = 375 + + cs_mod = 0 + cs_rank = GetAA(ComabtStability) + if cs_rank == 1: + cs_mod = 2 + elif cs_rank == 2: + cs_mod = 5 + elif cs_rank == 3: + cs_mod = 10 + + softcap = softcap + (softcap * cs_mod / 100) + + if GetAA(PhysicalEnhancement): + softcap = softcap + (2 * softcap / 100) + + if bonus <= softcap: + return bonus + + if IsWarrior(): # melee, not priest/casters + return (bonus - softcap) / 12 + softcap + + return softcap # hardcapped for everyone else +``` \ No newline at end of file