Fix bow goblin reload AI and changing facing direction while aiming at target. Release Build 9174.
This commit is contained in:
parent
7375d37d99
commit
8827d1ca4e
@ -81,7 +81,6 @@ void Arrow::PointToBestTargetPath(const uint8_t perceptionLevel){
|
||||
if(distToPlayer<closestDist){
|
||||
closestDist=distToPlayer;
|
||||
closestVel=originalSimulatedShootingAngle;
|
||||
LOG(std::format("Angle {} is a better choice as the arrow gets to {} distance from the player.",util::radToDeg(closestVel.polar().y),closestDist));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,8 +64,6 @@ void Monster::STRATEGY::GOBLIN_BOW(Monster&m,float fElapsedTime,std::string stra
|
||||
WINDUP,
|
||||
};
|
||||
#pragma endregion
|
||||
|
||||
m.F(A::ATTACK_COOLDOWN)+=fElapsedTime;
|
||||
|
||||
switch(m.phase){
|
||||
case INITIALIZE_PERCEPTION:{
|
||||
@ -73,6 +71,8 @@ void Monster::STRATEGY::GOBLIN_BOW(Monster&m,float fElapsedTime,std::string stra
|
||||
m.phase=MOVE;
|
||||
}break;
|
||||
case MOVE:{
|
||||
m.F(A::ATTACK_COOLDOWN)+=fElapsedTime;
|
||||
|
||||
float distToPlayer=m.GetDistanceFrom(game->GetPlayer()->GetPos());
|
||||
|
||||
const bool outsideMaxShootingRange=distToPlayer>=ConfigPixelsArr("Stand Still and Shoot Range",1);
|
||||
@ -103,12 +103,14 @@ void Monster::STRATEGY::GOBLIN_BOW(Monster&m,float fElapsedTime,std::string stra
|
||||
float targetDir=m.B(A::RANDOM_DIRECTION)==CW?dirFromPlayer+PI/4:dirFromPlayer-PI/4;
|
||||
m.target=game->GetPlayer()->GetPos()+vf2d{m.F(A::RANDOM_RANGE),targetDir}.cart();
|
||||
RUN_TOWARDS(m,fElapsedTime,"Run Towards");
|
||||
}else{ //Only the stand still and shoot range remains...
|
||||
}else
|
||||
if(m.F(A::ATTACK_COOLDOWN)>=ConfigFloat("Attack Reload Time")/2.f){ //Only the stand still and shoot range remains, which is twice as fast...
|
||||
PrepareToShoot();
|
||||
}
|
||||
}break;
|
||||
case WINDUP:{
|
||||
m.F(A::SHOOT_TIMER)-=fElapsedTime;
|
||||
m.UpdateFacingDirection(game->GetPlayer()->GetPos());
|
||||
if(m.F(A::SHOOT_TIMER)<=0){
|
||||
geom2d::line pointTowardsPlayer(m.GetPos(),game->GetPlayer()->GetPos());
|
||||
vf2d extendedLine=pointTowardsPlayer.upoint(1.1f);
|
||||
@ -116,7 +118,9 @@ void Monster::STRATEGY::GOBLIN_BOW(Monster&m,float fElapsedTime,std::string stra
|
||||
Arrow&arrow=static_cast<Arrow&>(*BULLET_LIST.back());
|
||||
arrow.PointToBestTargetPath(m.F(A::PERCEPTION_LEVEL));
|
||||
|
||||
m.F(A::ATTACK_COOLDOWN)=0.f;
|
||||
m.F(A::PERCEPTION_LEVEL)=std::min(ConfigFloat("Maximum Perception Level"),m.F(A::PERCEPTION_LEVEL)+ConfigFloat("Perception Level Increase"));
|
||||
m.PerformAnimation("IDLE",m.GetFacingDirectionToTarget(game->GetPlayer()->GetPos()));
|
||||
m.phase=MOVE;
|
||||
}
|
||||
m.B(A::RANDOM_DIRECTION)=util::random()%2;
|
||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_BUILD 9169
|
||||
#define VERSION_BUILD 9174
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="238" height="369" tilewidth="24" tileheight="24" infinite="0" nextlayerid="7" nextobjectid="28">
|
||||
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="238" height="369" tilewidth="24" tileheight="24" infinite="0" nextlayerid="7" nextobjectid="30">
|
||||
<properties>
|
||||
<property name="Backdrop" propertytype="Backdrop" value="mountain_day"/>
|
||||
<property name="Background Music" propertytype="BGM" value="foresty1_1"/>
|
||||
@ -1887,7 +1887,12 @@
|
||||
</properties>
|
||||
</object>
|
||||
<object id="28" name="Player Spawn" type="PlayerSpawnLocation" x="5112" y="8064" width="24" height="24"/>
|
||||
<object id="27" template="../maps/Monsters/Boar.tx" x="4552" y="8063">
|
||||
<object id="28" template="../maps/Monsters/Goblin (Bow).tx" x="4472" y="8175">
|
||||
<properties>
|
||||
<property name="spawner" type="object" value="15"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="29" template="../maps/Monsters/Goblin (Bow).tx" x="4815" y="7821">
|
||||
<properties>
|
||||
<property name="spawner" type="object" value="15"/>
|
||||
</properties>
|
||||
|
@ -591,7 +591,7 @@ Monsters
|
||||
# The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator.
|
||||
IDLE = 2, 0.6, Repeat
|
||||
WALK = 3, 0.2, Repeat
|
||||
SHOOT = 4, 0.03, OneShot
|
||||
SHOOT = 4, 0.06, OneShot
|
||||
DEATH = 4, 0.15, OneShot
|
||||
}
|
||||
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user