This commit is contained in:
aozhiwei 2021-08-19 08:22:36 +00:00
parent b65c03e715
commit 47e52d9eae
6 changed files with 37 additions and 8 deletions

View File

@ -2105,7 +2105,7 @@ void Creature::SummonHero(Buff* buff,
hero = InternalSummonHero(hero_meta,
GetAttackDir(),
GetPos(),
through_wall);
through_wall);
#ifdef DEBUG
SendDebugMsg(a8::Format("second summon hero id:%d pos:%f,%f rad:%d ok:%d",
{
@ -2760,5 +2760,14 @@ Weapon* Creature::ChooseNextSpecWeapon(int curr_weapon_slot_id)
void Creature::OnBattleStart(Room* room)
{
std::vector<int> del_buffs;
del_buffs.reserve(buff_list_.size());
for (auto& buff : buff_list_) {
if (!buff.meta->i->post_battle_valid()) {
del_buffs.push_back(buff.buff_uniid);
}
}
for (auto itr = del_buffs.rbegin(); itr != del_buffs.rend(); ++itr) {
RemoveBuffByUniId(*itr);
}
}

View File

@ -340,3 +340,10 @@ void Hero::InitAI()
((HeroAI*)ai)->ForceRandomWalk(time, idle_time);
}
}
void Hero::OnBattleStart(Room* room)
{
if (master.Get()) {
}
}

View File

@ -38,6 +38,7 @@ public:
virtual void GetHitAabbBox(AabbCollider& aabb_box) override;
virtual void OnAddToTargetPartObject(Entity* target) override;
virtual void OnRemoveFromTargetPartObject(Entity* target) override;
virtual void OnBattleStart(Room* room) override;
void DetachFromMaster();
protected:

View File

@ -1252,7 +1252,10 @@ void Room::UpdateGasInactive()
CreateAndroid(GetRoomMaxPlayerNum() - human_hash_.size());
NotifyUiUpdate();
}
battle_start_frameno_ = GetFrameNo();
CombineTeam();
ClearPostBattleAutoFreeList();
OnBattleStart();
ShuaPlane();
NotifyWxVoip();
InitAndroidAI();
@ -1287,7 +1290,12 @@ void Room::UpdateGasInactive()
});
}
},
&xtimer_attacher_.timer_list_);
&xtimer_attacher_.timer_list_,
[] (const a8::XParams& param)
{
Room* room = (Room*)param.sender.GetUserData();
room->auto_jump_timer_ = nullptr;
});
#if 1
a8::XPrintf("max_run_delay:%d %d\n", {PerfMonitor::Instance()->max_run_delay_time,
a8::XGetTickCount() - begin_tick});
@ -1389,9 +1397,7 @@ void Room::UpdateGasJump()
if (map_meta_->i->init_gas_ring() > 0) {
ForwardGasRing(map_meta_->i->init_gas_ring());
}
battle_start_frameno_ = GetFrameNo();
xtimer.DeleteTimer(auto_jump_timer_);
auto_jump_timer_ = nullptr;
NotifyGameStart();
NotifyUiUpdate();
NotifyWxVoip();
@ -1399,8 +1405,6 @@ void Room::UpdateGasJump()
InitAirDrop();
InitAirRaid();
}
ClearPostBattleAutoFreeList();
OnBattleStart();
}
}
@ -2418,7 +2422,7 @@ ObstacleData* Room::GetPermanentObstacleData(int obstacle_uniid)
long long Room::GetGasInactiveTime()
{
#ifdef DEBUG
return f8::IsOnlineEnv() ? 10 : 50;
return f8::IsOnlineEnv() ? 10 : 10;
#endif
if (room_mode_ == kZombieMode) {
#if DEBUG

View File

@ -574,3 +574,10 @@ RoomObstacleWeakPtr& RoomObstacle::GetWeakPtrRef()
}
return weak_ptr_;
}
void RoomObstacle::OnBattleStart(Room* room)
{
if (master.Get()) {
}
}

View File

@ -23,6 +23,7 @@ class RoomObstacle : public Obstacle
virtual void RecalcSelfCollider() override;
virtual bool IsTerminatorAirDropBox(Room* room) override { return is_terminator_airdrop_box; }
virtual bool DoInteraction(Human* sender) override;
virtual void OnBattleStart(Room* room) override;
void ActiveTimerFunc();
void UpdateTimerFunc();
void Active();