mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#pragma once
|
||
|
||
#include "Goal.h"
|
||
|
||
class TamableAnimal;
|
||
|
||
class WolfRetreatGoal : public Goal
|
||
{
|
||
private:
|
||
TamableAnimal* tameAnimal;
|
||
|
||
// Ïîðîã HP (0.0–1.0), íèæå êîòîðîãî íà÷èíàåì îòñòóïàòü
|
||
float retreatHealthFraction;
|
||
|
||
// Ìíîæèòåëü ñêîðîñòè ïðè îòñòóïëåíèè
|
||
float runSpeedMultiplier;
|
||
|
||
// Ñ÷¸ò÷èê òèêîâ äëÿ ïåðåc÷¸òà ïóòè (íå êàæäûé òèê)
|
||
int recalcPathTicks;
|
||
|
||
// Ãèñòåðåçèñ: âîññòàíîâèòüñÿ íóæíî ÷óòü âûøå ïîðîãà îòñòóïëåíèÿ,
|
||
// ÷òîáû íå ä¸ðãàòüñÿ òóäà-îáðàòíî
|
||
static constexpr float HYSTERESIS = 0.15f;
|
||
|
||
// Ðàññòîÿíèå äî õîçÿèíà, ïðè êîòîðîì ñ÷èòàåì "äîáåæàëè"
|
||
static constexpr float SAFE_DIST_SQ = 4.0f * 4.0f;
|
||
|
||
// Ïåðåñ÷èòûâàòü ïóòü êàæäûå N òèêîâ
|
||
static constexpr int PATH_RECALC_INTERVAL = 10;
|
||
|
||
public:
|
||
WolfRetreatGoal(TamableAnimal* tameAnimal,
|
||
float retreatHealthFraction,
|
||
float runSpeedMultiplier = 1.5f);
|
||
|
||
bool canUse() override;
|
||
bool canContinueToUse() override;
|
||
void start() override;
|
||
void stop() override;
|
||
void tick() override;
|
||
};
|