Fix DOT buffs not counting down if their timers are intentionally reset. Tick timers are now independent of their duration timers. Make ONE_OFF effect more clear with extra comments. Fix Damage reduction test, which is supposed to report a 75% max damage reduction, even if a piece of equipment has 100% damage reduction. Separated the main buff type and the restoration type variables for DOT buffs so we can still identify them if we need to. Added three new constructors. Added helper AddBuff functions to Monster and Player accordingly with the new changes. Fix SpawnMonster not returning the correct reference to an object (was returning the reference to the termporary storage container). Refactored Buff Blend colors with some lambda functions. Implemented Burning Arrow enchant. Release Build 11008.
Assert::AreEqual(size_t(0),BULLET_LIST.size(),L"No more projectiles exist.");
Assert::AreEqual(size_t(0),testMonster.GetBuffs(BuffType::BURNING_ARROW_BURN).size(),L"Target should still not be burned since there are no marks on the target.");
Assert::AreEqual(size_t(0),BULLET_LIST.size(),L"No more projectiles exist.");
Assert::AreEqual(size_t(1),newMonster.GetBuffs(BuffType::BURNING_ARROW_BURN).size(),L"Target should be burned since there are marks on the target and we have the Burning Arrow enchant.");
}
TEST_METHOD(BurningArrowTripleStackCheck){
testKey->bHeld=true;//Force the key to be held down for testing purposes.
Assert::AreEqual(size_t(0),BULLET_LIST.size(),L"No more projectiles exist.");
Assert::AreEqual(size_t("Burning Arrow"_ENC["MAX BURN STACK"]),newMonster.GetBuffs(BuffType::BURNING_ARROW_BURN).size(),L"Only 3 burn ticks maximum are allowed.");
<AdditionalIncludeDirectories>C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\LabUser\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\OneDrive\Documents\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
if(MONSTER_LIST.capacity()>prevCapacity)LOG(std::format("WARNING! The monster list has automatically reserved more space and resized to {}! This caused one potential frame where bullet/effect hitlists that stored information on what monsters were hit to potentially be hit a second time or cause monsters that should've been hit to never be hit. Consider starting with a larger default reserved size for MONSTER_LIST if your intention was to have this many monsters!",MONSTER_LIST.capacity()));
ADRENALINE_RUSH,//Intensity indicates the stack count (used by the Bloodlust enchant) this buff gives which in turn increases attack.
TRAPPER_MARK,
OVER_TIME,
ONE_OFF,
ONE_OFF,//This is used as a hack fix for the RestoreDuringCast Item script since they require us to restore 1 tick immediately. Over time buffs do not apply a tick immediately.
OVER_TIME_DURING_CAST,
GLOW_PURPLE,
COLOR_MOD,
DAMAGE_AMPLIFICATION,//Multiplies all incoming damage by this amount.
LETHAL_TEMPO,
BURNING_ARROW_BURN,
};
enumclassBuffRestorationType{
ONE_OFF,
ONE_OFF,//This is used as a hack fix for the RestoreDuringCast Item script since they require us to restore 1 tick immediately. Over time buffs do not apply a tick immediately.
//The lerpCutAmount is how much to divide the initial color by, which is used as the lerp oscillation amount. 0.5 means half the color is always active, and the other half linearly oscillates. 0.1 would mean 90% of the color is normal and 10% of the color oscillates.