Fix stale references inside of Ghost of Pirate Captain's lambdas. Fix collision size of pirate's treasure when entering final phase. Release Build 12342.
All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 6m28s

This commit is contained in:
sigonasr2 2026-01-26 16:32:16 -06:00
parent d62c54d867
commit 0121fe969e
6 changed files with 12 additions and 7 deletions

View File

@ -128,6 +128,7 @@ void Monster::STRATEGY::GHOST_OF_PIRATE_CAPTAIN(Monster&m,float fElapsedTime,std
case NORMAL:{
m.F(A::CANNON_TIMER)+=fElapsedTime;
m.F(A::SHRAPNEL_CANNON_TIMER)+=fElapsedTime;
m.SetStrategyOnHitFunction({});
const int phase{std::any_cast<int>(m.VEC(A::CANNON_PHASES)[m.I(A::CANNON_PHASE)])};
switch(phase){
case CANNON_SHOT:{//Normal Cannon Shot. Takes on one of five varieties.
@ -249,10 +250,9 @@ void Monster::STRATEGY::GHOST_OF_PIRATE_CAPTAIN(Monster&m,float fElapsedTime,std
m.SetPos(m.V(A::HIDING_POS));
m.SetVelocity({});
m.arrowIndicator=false; //While the boss is hiding, the indicator will not show up.
m.SetStrategyOnHitFunction([&OnLastCursePhase,&m,&strategy](const HurtDamageInfo damageData,Monster&monster,const StrategyName&strategyName)->void{
m.SetStrategyOnHitFunction([OnLastCursePhase,&m,strategy](const HurtDamageInfo damageData,Monster&monster,const StrategyName&strategyName)->void{
monster.SetPhase(strategyName,OnLastCursePhase?FINAL:NORMAL);
monster.arrowIndicator=true;
monster.SetStrategyOnHitFunction({});
if(OnLastCursePhase){
const std::string_view PIRATES_TREASURE{"Pirate's Treasure"};
for(std::shared_ptr<Monster>&m:MONSTER_LIST

View File

@ -44,7 +44,8 @@ INCLUDE_game
void Monster::STRATEGY::PIRATES_TREASURE(Monster&m,float fElapsedTime,std::string strategy){
enum Phase{
NORMAL,
LOCKED = 1, //The locked phase will remain at 1 so that the Ghost Boss can utilize this specific phase number.
LOCK = 1,
LOCKED = 2, //The locked phase will remain at 1 so that the Ghost Boss can utilize this specific phase number.
};
switch(PHASE()){
@ -59,9 +60,11 @@ void Monster::STRATEGY::PIRATES_TREASURE(Monster&m,float fElapsedTime,std::strin
game->GetPlayer()->NotificationDisplay("",0);
}
}break;
case LOCK:{
m.SetCollisionRadius(m.GetCollisionRadius()+12);
SETPHASE(LOCKED);
}break;
case LOCKED:{
m.PerformAnimation("LOCKED");
m.SetCollisionRadius(m.GetOriginalCollisionRadius()+12);
}break;
}
}

View File

@ -18,6 +18,8 @@ Cherry pick f398adcde6bb5f8c3c0581f13f18e73d4417a46c from ConnectionPointFixes
Cherry pick fb5a72267c5db89b7333287e12f05b614b71c23b from MiscFixes
Cherry pick 6355054d6c8e76c6aa4b18760a293e3d1a020752 from master
Remove coin toss for final phase
DEMO
====

View File

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 1
#define VERSION_MINOR 3
#define VERSION_PATCH 0
#define VERSION_BUILD 12329
#define VERSION_BUILD 12342
#define stringify(a) stringify_(a)
#define stringify_(a) #a

View File

@ -1349,7 +1349,7 @@ MonsterStrategy
Ghost Saber Expand Spd = 14px
# What HP % the boss throws a coin at the player, applying a curse, and hiding from the player.
Curse Thresholds = 70%, 40%, 10%
Curse Thresholds = 98%
# How much time before the curse starts dealing damage to the player
Curse Damage Wait Time = 10s
# How much % damage the curse does to the player every second.