1
This commit is contained in:
parent
035e63fef8
commit
d19d911ce8
@ -17,8 +17,8 @@ class Car : public Creature
|
||||
virtual void Initialize() override;
|
||||
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||
virtual bool IsCar() { return true;};
|
||||
virtual Car* AsCar() { return this;};
|
||||
virtual bool IsCar() override { return true;};
|
||||
virtual Car* AsCar() override { return this;};
|
||||
virtual void OnBulletHit(IBullet* bullet) override;
|
||||
virtual void OnExplosionHit(Explosion* e) override;
|
||||
virtual std::string GetName() override;
|
||||
|
@ -13,6 +13,7 @@ class Human;
|
||||
class Explosion;
|
||||
class Loot;
|
||||
class Car;
|
||||
class RoomObstacle;
|
||||
class Entity
|
||||
{
|
||||
public:
|
||||
@ -30,8 +31,10 @@ class Entity
|
||||
virtual bool IsCreature(Room* room) { return false;};
|
||||
virtual bool IsLoot() { return false;};
|
||||
virtual bool IsCar() { return false;};
|
||||
virtual bool IsRoomObstacle() { return false;};
|
||||
virtual Loot* AsLoot() { return nullptr;};
|
||||
virtual Car* AsCar() { return nullptr;};
|
||||
virtual RoomObstacle* AsRoomObstacle() { return nullptr;};
|
||||
virtual long long GetDeadFrameNo(Room* room) { return 0;};
|
||||
virtual void OnBulletHit(IBullet* bullet) {};
|
||||
virtual void OnExplosionHit(Explosion* explosion) {};
|
||||
|
@ -18,6 +18,9 @@
|
||||
#include "master_agent.h"
|
||||
#include "team_agent.h"
|
||||
#include "skill.h"
|
||||
#include "loot.h"
|
||||
#include "car.h"
|
||||
#include "roomobstacle.h"
|
||||
|
||||
#include "mt/Hero.h"
|
||||
#include "mt/Equip.h"
|
||||
@ -1262,7 +1265,15 @@ int HeroAgent::SearchPickupObj()
|
||||
|
||||
bool HeroAgent::PickupObjIsValid()
|
||||
{
|
||||
return curr_pickup_obj_.Get();
|
||||
if (curr_pickup_obj_.Get()) {
|
||||
if (curr_pickup_obj_.Get()->IsLoot()) {
|
||||
Loot* loot = curr_pickup_obj_.Get()->AsLoot();
|
||||
return !loot->pickuped;
|
||||
} else if (curr_pickup_obj_.Get()->IsRoomObstacle()) {
|
||||
RoomObstacle* ob = curr_pickup_obj_.Get()->AsRoomObstacle();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void HeroAgent::AbandonPickup(int min_time, int max_time)
|
||||
|
@ -34,8 +34,8 @@ class Loot : public RoomEntity
|
||||
virtual void Initialize() override;
|
||||
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||
virtual bool IsLoot() { return true;};
|
||||
virtual Loot* AsLoot() { return this;};
|
||||
virtual bool IsLoot() override { return true;};
|
||||
virtual Loot* AsLoot() override { return this;};
|
||||
|
||||
protected:
|
||||
Loot();
|
||||
|
@ -26,6 +26,8 @@ class RoomObstacle : public Obstacle
|
||||
virtual void Initialize() override;
|
||||
virtual bool DoInteraction(Human* sender) override;
|
||||
virtual void OnBattleStart(Room* room) override;
|
||||
virtual bool IsRoomObstacle() override { return true;};
|
||||
virtual RoomObstacle* AsRoomObstacle() override { return this;};
|
||||
void ActiveTimerFunc();
|
||||
void UpdateTimerFunc();
|
||||
void Active();
|
||||
|
Loading…
x
Reference in New Issue
Block a user