diff --git a/Crawler/MonsterAttribute.h b/Crawler/MonsterAttribute.h index d076a59c..b35159b1 100644 --- a/Crawler/MonsterAttribute.h +++ b/Crawler/MonsterAttribute.h @@ -20,4 +20,5 @@ enum class Attribute{ JUMP_TARGET_POS, JUMP_ORIGINAL_POS, RECOVERY_TIME, + SHOOT_ANIMATION_TIME, }; \ No newline at end of file diff --git a/Crawler/Turret.cpp b/Crawler/Turret.cpp index e7966742..00b184dc 100644 --- a/Crawler/Turret.cpp +++ b/Crawler/Turret.cpp @@ -4,11 +4,19 @@ #include "Crawler.h" #include "utils.h" +typedef Attribute A; + INCLUDE_game INCLUDE_BULLET_LIST void Monster::STRATEGY::TURRET(Monster&m,float fElapsedTime,int strategyNumber){ m.attackCooldownTimer=std::max(0.f,m.attackCooldownTimer-fElapsedTime); + if(m.F(A::SHOOT_ANIMATION_TIME)>0){ + m.F(A::SHOOT_ANIMATION_TIME)=std::max(0.f,m.F(A::SHOOT_ANIMATION_TIME)-fElapsedTime); + if(m.F(A::SHOOT_ANIMATION_TIME)==0){ + m.PerformIdleAnimation(); + } + } if(m.queueShotTimer>0){ m.queueShotTimer-=fElapsedTime; @@ -23,6 +31,7 @@ void Monster::STRATEGY::TURRET(Monster&m,float fElapsedTime,int strategyNumber){ if(m.attackCooldownTimer==0){ m.attackCooldownTimer=ConfigFloat("ShootingSpeed"); m.queueShotTimer=std::min(m.attackCooldownTimer-0.001,0.3); + m.F(A::SHOOT_ANIMATION_TIME)=ConfigIntArr("ShootAnimation",0)*ConfigFloatArr("ShootAnimation",1); m.PerformShootAnimation(); } } diff --git a/Crawler/buildtemplate.html b/Crawler/buildtemplate.html index c794496f..7e6698dd 100644 --- a/Crawler/buildtemplate.html +++ b/Crawler/buildtemplate.html @@ -35,7 +35,7 @@ var Module = { })(), }; - + + + + + +