Mobs roam proper distances now.

* Mob roaming is now integrated into the TransportManager
* Doubled the roaming distance, since it was clearly too small
* Tripled retreat speed
* Made use of NPCManager::sendToViewable() in TransportManager
This commit is contained in:
2020-10-12 21:03:18 +02:00
parent a53f38b87d
commit 901e011740
3 changed files with 66 additions and 46 deletions

View File

@@ -35,6 +35,7 @@ struct Mob : public BaseNPC {
// roaming
int idleRange;
time_t nextMovement = 0;
bool staticPath = false;
// combat
CNSocket *target = nullptr;
@@ -50,7 +51,7 @@ struct Mob : public BaseNPC {
data = d;
regenTime = data["m_iRegenTime"];
idleRange = data["m_iIdleRange"];
idleRange = (int)data["m_iIdleRange"] * 2; // TODO: tuning?
// XXX: temporarily force respawns for Fusions until we implement instancing
if (regenTime >= 300000000)
@@ -111,5 +112,6 @@ namespace MobManager {
void pcAttackChars(CNSocket *sock, CNPacketData *data);
void resendMobHP(Mob *mob);
void incNextMovement(Mob *mob, time_t currTime=0);
bool aggroCheck(Mob *mob, time_t currTime);
}