Attack arc ranges increased. Reset attack arc display when submerging occurs. Release Build 11865.

master
sigonasr2 2 months ago
parent c735f74a83
commit ef0b00e771
  1. 6
      Adventures in Lestoria/GiantOctopus.cpp
  2. 9
      Adventures in Lestoria/OctopusArm.cpp
  3. 2
      Adventures in Lestoria/Version.h
  4. 6
      Adventures in Lestoria/assets/config/MonsterStrategies.txt
  5. BIN
      Adventures in Lestoria/assets/gamepack.pak
  6. BIN
      x64/Release/Adventures in Lestoria.exe

@ -68,14 +68,13 @@ void Monster::STRATEGY::GIANT_OCTOPUS(Monster&m,float fElapsedTime,std::string s
switch(PHASE()){
case INIT:{
std::string takoyakiImgDir{"item_img_directory"_S+"Takoyaki.png"};
if(GFX.count(takoyakiImgDir))ERR(std::format("WARNING! Could not find item image {}",takoyakiImgDir));
m.F(A::BREAK_TIME)=0.5f;
m.AddBuff(BuffType::DAMAGE_REDUCTION,INFINITE,ConfigFloat("Permanent Resistance Buff")/100.f);
m.SetStrategyDeathFunction([](GameEvent&event,Monster&m,const std::string&strategy){
std::string takoyakiImgDir{"item_img_directory"_S+"Takoyaki.png"};
if(GFX.count(takoyakiImgDir))ERR(std::format("WARNING! Could not find item image {}",takoyakiImgDir));
if(!GFX.count(takoyakiImgDir))ERR(std::format("WARNING! Could not find item image {}",takoyakiImgDir));
game->AddEffect(std::make_unique<Effect>(m.GetPos(),INFINITE,"item_img_directory"_S+"Takoyaki.png",m.OnUpperLevel(),1.f,0.f,vf2d{4.f,4.f},vf2d{},WHITE));
m.SetLifetime(4.f);
return false;
});
SETPHASE(IDENTIFY_ARMS);
@ -122,6 +121,7 @@ void Monster::STRATEGY::GIANT_OCTOPUS(Monster&m,float fElapsedTime,std::string s
randomArm.lock()->GetFloat(A::RECOVERY_TIME)=randomArm.lock()->GetCurrentAnimation().GetTotalAnimationDuration();
randomArm.lock()->SetCollisionRadius(0.f);
randomArm.lock()->V(A::JUMP_TARGET_POS)=randomLoc;
randomArm.lock()->SetStrategyDrawFunction([](AiL*game,Monster&monster,const std::string&strategy){});
}
m.F(A::CASTING_TIMER)=util::random_range(ConfigFloatArr("Arm Move Timer",0),ConfigFloatArr("Arm Move Timer",1));
}

@ -105,6 +105,7 @@ void Monster::STRATEGY::OCTOPUS_ARM(Monster&m,float fElapsedTime,std::string str
m->SetCollisionRadius(0.f);
if(!m->IsDead())m->Heal(armHealAmtOnDeath,true);
m->GetFloat(A::RECOVERY_TIME)=reemergeWaitTime+delayTimePerArm;
m->SetStrategyDrawFunction([](AiL*game,Monster&monster,const std::string&strategy){});
if(m->HasBuff(BuffType::STAT_UP)){
bool found{false};
for(Buff&b:m->EditBuffs(BuffType::STAT_UP)){
@ -157,11 +158,11 @@ void Monster::STRATEGY::OCTOPUS_ARM(Monster&m,float fElapsedTime,std::string str
m.SetStrategyDrawFunction([arc=attackArc,&storedArc=m.ANY(A::STORED_ARC),&alphaTimer=m.F(A::ENVIRONMENT_TIMER),attackEffectTime=ConfigFloat("Attack Effect Time")](AiL*game,Monster&monster,const std::string&strategy){
const float alphaTimer{float(std::fmod(game->GetRunTime(),2.f))};
uint8_t alpha{util::lerp(uint8_t(0),uint8_t(255),alphaTimer)};
if(alphaTimer>1.f)alpha=util::lerp(0,255,1-(alphaTimer-1));
const_cast<Arc&>(arc).Draw(game,{0,0,255,uint8_t(alpha)});
uint8_t alpha{util::lerp(uint8_t(0),uint8_t(128),alphaTimer)};
if(alphaTimer>1.f)alpha=util::lerp(0,128,1-(alphaTimer-1));
const_cast<Arc&>(arc).Draw(game,{0,0,128,uint8_t(alpha)});
if(storedArc.has_value()){
const uint8_t effectAlpha{util::lerp(uint8_t(0),uint8_t(255),alphaTimer/attackEffectTime)};
const uint8_t effectAlpha{util::lerp(uint8_t(0),uint8_t(128),alphaTimer/attackEffectTime)};
std::any_cast<Arc>(storedArc).Draw(game,{255,255,255,effectAlpha});
}
});

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

@ -1202,16 +1202,16 @@ MonsterStrategy
}
Octopus Arm
{
Attack Radius = 600
Attack Radius = 750
Attack Wiggle Time Range = 1s,1.5s
Attack Arc = 60deg
Attack Arc = 55deg
Attack Wait Time = 1s
# For synchronization purposes. Damage doesn't come out until this amount of time has passed in the animation.
Attack Swing Damage Wait Time = 0.45s
Attack Knockback = 200
Attack Knockback = 300
Boss Damage On Death = 6000hp

Loading…
Cancel
Save