1
This commit is contained in:
parent
16eab602ee
commit
4f4a2bacd1
@ -17,6 +17,7 @@ Building::~Building()
|
|||||||
|
|
||||||
void Building::Initialize()
|
void Building::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
RecalcSelfCollider();
|
RecalcSelfCollider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ Bullet::~Bullet()
|
|||||||
|
|
||||||
void Bullet::Initialize()
|
void Bullet::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
RecalcSelfCollider();
|
RecalcSelfCollider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ enum InventorySlot_e
|
|||||||
IS_FRAG = 5,
|
IS_FRAG = 5,
|
||||||
IS_SMOKE = 6,
|
IS_SMOKE = 6,
|
||||||
IS_HEALTHKIT = 7,
|
IS_HEALTHKIT = 7,
|
||||||
|
IS_PAIN_KILLER = 8,
|
||||||
|
|
||||||
IS_1XSCOPE = 12,
|
IS_1XSCOPE = 12,
|
||||||
IS_2XSCOPE = 13,
|
IS_2XSCOPE = 13,
|
||||||
|
@ -2,12 +2,23 @@
|
|||||||
|
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "collider.h"
|
#include "collider.h"
|
||||||
|
#include "room.h"
|
||||||
|
|
||||||
|
Entity::Entity()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Entity::~Entity()
|
Entity::~Entity()
|
||||||
{
|
{
|
||||||
ClearColliders();
|
ClearColliders();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Entity::Initialize()
|
||||||
|
{
|
||||||
|
xtimer_attacher.xtimer = &room->xtimer;
|
||||||
|
}
|
||||||
|
|
||||||
bool Entity::TestCollision(Entity* b)
|
bool Entity::TestCollision(Entity* b)
|
||||||
{
|
{
|
||||||
for (auto& a_collider : colliders) {
|
for (auto& a_collider : colliders) {
|
||||||
|
@ -46,12 +46,13 @@ class Entity
|
|||||||
int updated_times = 0;
|
int updated_times = 0;
|
||||||
std::list<ColliderComponent*> colliders;
|
std::list<ColliderComponent*> colliders;
|
||||||
bool deleted = false;
|
bool deleted = false;
|
||||||
|
a8::XTimerAttacher xtimer_attacher;
|
||||||
|
|
||||||
Obstacle* last_collision_door = nullptr;
|
Obstacle* last_collision_door = nullptr;
|
||||||
|
|
||||||
Entity() {};
|
Entity();
|
||||||
virtual ~Entity();
|
virtual ~Entity();
|
||||||
virtual void Initialize() {};
|
virtual void Initialize();
|
||||||
virtual void Update(int delta_time) {};
|
virtual void Update(int delta_time) {};
|
||||||
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) {};
|
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) {};
|
||||||
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) {};
|
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) {};
|
||||||
|
@ -38,6 +38,7 @@ Human::~Human()
|
|||||||
|
|
||||||
void Human::Initialize()
|
void Human::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
float Human::GetSpeed()
|
float Human::GetSpeed()
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "metamgr.h"
|
#include "metamgr.h"
|
||||||
#include "room.h"
|
#include "room.h"
|
||||||
#include "collider.h"
|
#include "collider.h"
|
||||||
|
#include "entity.h"
|
||||||
|
|
||||||
Loot::Loot():Entity()
|
Loot::Loot():Entity()
|
||||||
{
|
{
|
||||||
@ -16,6 +17,7 @@ Loot::~Loot()
|
|||||||
|
|
||||||
void Loot::Initialize()
|
void Loot::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
RecalcSelfCollider();
|
RecalcSelfCollider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ Obstacle::~Obstacle()
|
|||||||
|
|
||||||
void Obstacle::Initialize()
|
void Obstacle::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
health = meta->i->hp();
|
health = meta->i->hp();
|
||||||
RecalcSelfCollider();
|
RecalcSelfCollider();
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ Player::~Player()
|
|||||||
|
|
||||||
void Player::Initialize()
|
void Player::Initialize()
|
||||||
{
|
{
|
||||||
|
Human::Initialize();
|
||||||
health = meta->i->health();
|
health = meta->i->health();
|
||||||
RecalcSelfCollider();
|
RecalcSelfCollider();
|
||||||
}
|
}
|
||||||
@ -200,6 +201,22 @@ void Player::UpdateAction()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case IS_PAIN_KILLER:
|
||||||
|
{
|
||||||
|
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(action_item_id);
|
||||||
|
if (item_meta){
|
||||||
|
if (inventory[item_meta->i->_inventory_slot()] > 0) {
|
||||||
|
float old_health = health;
|
||||||
|
health += item_meta->i->heal();
|
||||||
|
health = std::min(health, GetMaxHP());
|
||||||
|
stats.heal_amount += health - old_health;
|
||||||
|
--inventory[item_meta->i->_inventory_slot()];
|
||||||
|
need_sync_active_player = true;
|
||||||
|
SyncAroundPlayers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -241,6 +258,19 @@ void Player::UpdateUseItemIdx()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case IS_PAIN_KILLER:
|
||||||
|
{
|
||||||
|
MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx);
|
||||||
|
if (item_meta) {
|
||||||
|
StartAction(
|
||||||
|
AT_UseItem,
|
||||||
|
item_meta->i->use_time(),
|
||||||
|
use_item_idx,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -25,6 +25,12 @@ const int ANDROID_NUM = 0;
|
|||||||
const int ANDROID_NUM = 10;
|
const int ANDROID_NUM = 10;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static long long RoomXGetTickCount(void* context)
|
||||||
|
{
|
||||||
|
Room* room = (Room*)context;
|
||||||
|
return room->frame_no;
|
||||||
|
}
|
||||||
|
|
||||||
Room::~Room()
|
Room::~Room()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -32,6 +38,8 @@ Room::~Room()
|
|||||||
|
|
||||||
void Room::Init()
|
void Room::Init()
|
||||||
{
|
{
|
||||||
|
xtimer.Init(RoomXGetTickCount, this, 100, 100);
|
||||||
|
|
||||||
ShuaAndroid();
|
ShuaAndroid();
|
||||||
CreateThings();
|
CreateThings();
|
||||||
stats_timer_ = a8::Timer::Instance()->AddRepeatTimer(
|
stats_timer_ = a8::Timer::Instance()->AddRepeatTimer(
|
||||||
@ -61,6 +69,7 @@ void Room::Update(int delta_time)
|
|||||||
long long begin_tick = a8::XGetTickCount();
|
long long begin_tick = a8::XGetTickCount();
|
||||||
elapsed_time_ += delta_time;
|
elapsed_time_ += delta_time;
|
||||||
while (elapsed_time_ >= 50) {
|
while (elapsed_time_ >= 50) {
|
||||||
|
xtimer.Update();
|
||||||
if (frame_no % 2 == 0) {
|
if (frame_no % 2 == 0) {
|
||||||
ResetFrameData();
|
ResetFrameData();
|
||||||
UpdateGas();
|
UpdateGas();
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <a8/xtimer.h>
|
||||||
|
#include <a8/timer_attacher.h>
|
||||||
|
|
||||||
#include "framedata.h"
|
#include "framedata.h"
|
||||||
|
|
||||||
namespace MetaData
|
namespace MetaData
|
||||||
@ -31,6 +34,7 @@ public:
|
|||||||
bool game_over = false;
|
bool game_over = false;
|
||||||
long long game_over_frameno = 0;
|
long long game_over_frameno = 0;
|
||||||
RoomProfile profile;
|
RoomProfile profile;
|
||||||
|
a8::XTimer xtimer;
|
||||||
|
|
||||||
~Room();
|
~Room();
|
||||||
void Init();
|
void Init();
|
||||||
@ -83,7 +87,6 @@ private:
|
|||||||
void OutputDebugLog();
|
void OutputDebugLog();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
a8::TimerAttacher timer_attacher_;
|
|
||||||
timer_list* stats_timer_ = nullptr;
|
timer_list* stats_timer_ = nullptr;
|
||||||
int elapsed_time_ = 0;
|
int elapsed_time_ = 0;
|
||||||
int alive_count_ = 0;
|
int alive_count_ = 0;
|
||||||
|
@ -18,6 +18,7 @@ Smoke::~Smoke()
|
|||||||
|
|
||||||
void Smoke::Initialize()
|
void Smoke::Initialize()
|
||||||
{
|
{
|
||||||
|
Entity::Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Smoke::Update(int delta_time)
|
void Smoke::Update(int delta_time)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user