Implement bard song instrument mod caps

The maximum bard songs can be effected by instrument mods is 3.6.
This is set by the rule Character:BaseInstrumentSoftCap which defaults to 36
Also fix Echo of Taelosia and Ayonae's Tutelage to increase the mod cap.
This commit is contained in:
Michael Cook 2013-11-13 15:07:34 -05:00
parent 0c3c84d711
commit 3f8ee533d3
3 changed files with 16 additions and 3 deletions

View File

@ -1,5 +1,9 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50)
-------------------------------------------------------
== 11/13/2013 ==
demonstar55: Implemented bard song effect cap. You can set the base cap with the rule Character:BaseInstrumentSoftCap, defaults to 36 or "3.6" as it is sometimes referred to.
demonstar55: Fix Echo of Taelosia and Ayonae's Tutelage to increase the mod cap instead of further improving the instrument mod
== 11/11/2013 ==
demonstar55: Changed the way walk speed is calculated to allow mobs to have their walk speed equal a 100% movement reduction

View File

@ -97,6 +97,7 @@ RULE_BOOL ( Character, EnableDiscoveredItems, true ) // If enabled, it enables E
RULE_BOOL ( Character, EnableXTargetting, true) // Enable Extended Targetting Window, for users with UF and later clients.
RULE_BOOL ( Character, KeepLevelOverMax, false) // Don't delevel a character that has somehow gone over the level cap
RULE_INT ( Character, FoodLossPerUpdate, 35) // How much food/water you lose per stamina update
RULE_INT ( Character, BaseInstrumentSoftCap, 36) // Softcap for instrument mods, 36 commonly referred to as "3.6" as well.
RULE_CATEGORY_END()
RULE_CATEGORY( Mercs )

View File

@ -1796,6 +1796,7 @@ uint16 Mob::GetInstrumentMod(uint16 spell_id) const {
return(10);
uint16 effectmod = 10;
int effectmodcap = RuleI(Character, BaseInstrumentSoftCap);
//this should never use spell modifiers...
//if a spell grants better modifers, they are copied into the item mods
@ -1856,6 +1857,7 @@ uint16 Mob::GetInstrumentMod(uint16 spell_id) const {
break;
}
// TODO: These shouldn't be hardcoded.
if(spells[spell_id].skill == SkillSinging)
{
effectmod += 2*GetAA(aaSingingMastery);
@ -1866,14 +1868,20 @@ uint16 Mob::GetInstrumentMod(uint16 spell_id) const {
effectmod += 2*GetAA(aaInstrumentMastery);
effectmod += 2*GetAA(aaImprovedInstrumentMastery);
}
effectmod += 2*GetAA(aaAyonaesTutelage); //singing & instruments
effectmod += 2*GetAA(aaEchoofTaelosia); //singing & instruments
// TODO: These shouldn't be hardcoded.
effectmodcap += GetAA(aaAyonaesTutelage);
effectmodcap += GetAA(aaEchoofTaelosia);
if(effectmod < 10)
effectmod = 10;
_log(SPELLS__BARDS, "%s::GetInstrumentMod() spell=%d mod=%d\n", GetName(), spell_id, effectmod);
if (effectmod > effectmodcap)
effectmod = effectmodcap;
_log(SPELLS__BARDS, "%s::GetInstrumentMod() spell=%d mod=%d modcap=%d\n",
GetName(), spell_id, effectmod, effectmodcap);
return(effectmod);
}