1
This commit is contained in:
parent
2a25b7b7c3
commit
5c1d6b38df
@ -99,6 +99,8 @@ namespace mt
|
|||||||
METAMGR_READ(move_step_len, 80);
|
METAMGR_READ(move_step_len, 80);
|
||||||
|
|
||||||
METAMGR_READ(early_parachute_jump, 0);
|
METAMGR_READ(early_parachute_jump, 0);
|
||||||
|
|
||||||
|
METAMGR_READ(box_open_delay, 0);
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
{
|
{
|
||||||
|
@ -88,6 +88,8 @@ namespace mt
|
|||||||
int revive_time = 15;
|
int revive_time = 15;
|
||||||
|
|
||||||
int move_step_len = 80;
|
int move_step_len = 80;
|
||||||
|
|
||||||
|
int box_open_delay = 0;
|
||||||
};
|
};
|
||||||
static void StaticPostInit();
|
static void StaticPostInit();
|
||||||
static const S& s() { return s_; };
|
static const S& s() { return s_; };
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "mt/Buff.h"
|
#include "mt/Buff.h"
|
||||||
#include "mt/Hero.h"
|
#include "mt/Hero.h"
|
||||||
#include "mt/Skill.h"
|
#include "mt/Skill.h"
|
||||||
|
#include "mt/Param.h"
|
||||||
|
|
||||||
Obstacle::Obstacle():Entity()
|
Obstacle::Obstacle():Entity()
|
||||||
{
|
{
|
||||||
@ -296,8 +297,23 @@ bool Obstacle::DoInteraction(Human* sender)
|
|||||||
if (!IsDead(sender->room) && IsOpenInteraction()) {
|
if (!IsDead(sender->room) && IsOpenInteraction()) {
|
||||||
dead_reason = 1;
|
dead_reason = 1;
|
||||||
Die(sender->room);
|
Die(sender->room);
|
||||||
sender->DropItems(this);
|
|
||||||
BroadcastFullState(sender->room);
|
BroadcastFullState(sender->room);
|
||||||
|
sender->room->xtimer.SetTimeoutEx
|
||||||
|
(mt::Param::s().box_open_delay / FRAME_RATE_MS,
|
||||||
|
[sender, obj_uniid = GetUniId()] (int event, const a8::Args* args)
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
Entity* entity = sender->room->GetEntityByUniId(obj_uniid);
|
||||||
|
if (entity && entity->IsEntityType(ET_Obstacle)) {
|
||||||
|
Obstacle* ob = (Obstacle*)entity;
|
||||||
|
if (ob->IsRoomObstacle()) {
|
||||||
|
sender->DropItems(ob);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&sender->xtimer_attacher);
|
||||||
if (meta->delay_destroy() > 0) {
|
if (meta->delay_destroy() > 0) {
|
||||||
sender->room->xtimer.SetTimeoutEx
|
sender->room->xtimer.SetTimeoutEx
|
||||||
(meta->delay_destroy() / FRAME_RATE_MS,
|
(meta->delay_destroy() / FRAME_RATE_MS,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user