AddGunBuff
This commit is contained in:
parent
7aea36967d
commit
84adf74342
@ -382,34 +382,12 @@ void Bullet::ProcFragBomb(int delay_time)
|
||||
|
||||
void Bullet::ProcPosionGasBomb(int delay_time)
|
||||
{
|
||||
if (sender.Get()) {
|
||||
a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1;
|
||||
sender.Get()->buff_vec2_param1 = GetPos();
|
||||
MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid());
|
||||
if (buff_meta) {
|
||||
sender.Get()->AddBuff(sender.Get(),
|
||||
buff_meta,
|
||||
1
|
||||
);
|
||||
}
|
||||
sender.Get()->buff_vec2_param1 = old_buff_vec2_param1;
|
||||
}
|
||||
AddGunBuff();
|
||||
}
|
||||
|
||||
void Bullet::ProcMolotorCocktailBomb(int delay_time)
|
||||
{
|
||||
if (sender.Get()) {
|
||||
a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1;
|
||||
sender.Get()->buff_vec2_param1 = GetPos();
|
||||
MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid());
|
||||
if (buff_meta) {
|
||||
sender.Get()->AddBuff(sender.Get(),
|
||||
buff_meta,
|
||||
1
|
||||
);
|
||||
}
|
||||
sender.Get()->buff_vec2_param1 = old_buff_vec2_param1;
|
||||
}
|
||||
AddGunBuff();
|
||||
}
|
||||
|
||||
void Bullet::ProcC4Bomb(Car* target, int delay_time)
|
||||
@ -446,34 +424,12 @@ void Bullet::ProcC4Bomb(Car* target, int delay_time)
|
||||
|
||||
void Bullet::ProcSignalGunBomb(int delay_time)
|
||||
{
|
||||
if (sender.Get()) {
|
||||
a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1;
|
||||
sender.Get()->buff_vec2_param1 = GetPos();
|
||||
MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid());
|
||||
if (buff_meta) {
|
||||
sender.Get()->AddBuff(sender.Get(),
|
||||
buff_meta,
|
||||
1
|
||||
);
|
||||
}
|
||||
sender.Get()->buff_vec2_param1 = old_buff_vec2_param1;
|
||||
}
|
||||
AddGunBuff();
|
||||
}
|
||||
|
||||
void Bullet::ProcShieldWallBomb(int delay_time)
|
||||
{
|
||||
if (sender.Get()) {
|
||||
a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1;
|
||||
sender.Get()->buff_vec2_param1 = GetPos();
|
||||
MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid());
|
||||
if (buff_meta) {
|
||||
sender.Get()->AddBuff(sender.Get(),
|
||||
buff_meta,
|
||||
1
|
||||
);
|
||||
}
|
||||
sender.Get()->buff_vec2_param1 = old_buff_vec2_param1;
|
||||
}
|
||||
AddGunBuff();
|
||||
}
|
||||
|
||||
void Bullet::ProcOilBucketBomb(int delay_time)
|
||||
@ -487,3 +443,21 @@ bool Bullet::IsCurrWeapon()
|
||||
{
|
||||
return sender.Get()->GetCurrWeapon()->meta == gun_meta;
|
||||
}
|
||||
|
||||
void Bullet::AddGunBuff()
|
||||
{
|
||||
if (sender.Get()) {
|
||||
std::shared_ptr<Ability> old_context_ability = sender.Get()->context_ability;
|
||||
a8::Vec2 old_buff_vec2_param1 = sender.Get()->buff_vec2_param1;
|
||||
sender.Get()->buff_vec2_param1 = GetPos();
|
||||
MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid());
|
||||
if (buff_meta) {
|
||||
sender.Get()->AddBuff(sender.Get(),
|
||||
buff_meta,
|
||||
1
|
||||
);
|
||||
}
|
||||
sender.Get()->buff_vec2_param1 = old_buff_vec2_param1;
|
||||
sender.Get()->context_ability = old_context_ability;
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +58,7 @@ protected:
|
||||
void ProcOilBucketBomb(int delay_time);
|
||||
inline void MapServiceUpdate();
|
||||
void Check(float distance);
|
||||
void AddGunBuff();
|
||||
|
||||
private:
|
||||
CircleCollider* self_collider_ = nullptr;
|
||||
|
@ -1585,6 +1585,7 @@ void Creature::SummonObstacle(Buff* buff, int id, const a8::Vec2& pos)
|
||||
obstacle->SetTeamId(room, team_id);
|
||||
obstacle->SetMasterId(room, GetUniId());
|
||||
obstacle->Active();
|
||||
obstacle->context_ability = context_ability;
|
||||
slave_things_.push_back(std::make_tuple(buff->meta->i->buff_id(), obstacle));
|
||||
} else {
|
||||
abort();
|
||||
|
@ -70,6 +70,7 @@ class Creature : public MoveableEntity
|
||||
|
||||
Weapon second_weapon;
|
||||
a8::Vec2 buff_vec2_param1;
|
||||
std::shared_ptr<Ability> context_ability;
|
||||
|
||||
bool need_sync_active_player = false;
|
||||
std::function<void ()> on_loading_bullet;
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "obstacle.h"
|
||||
#include "weakptr.h"
|
||||
|
||||
class Ability;
|
||||
class RoomObstacle : public Obstacle
|
||||
{
|
||||
public:
|
||||
@ -13,6 +14,7 @@ class RoomObstacle : public Obstacle
|
||||
bool is_terminator_airdrop_box = false;
|
||||
CreatureWeakPtr master;
|
||||
int real_object_uniid = 0;
|
||||
std::shared_ptr<Ability> context_ability;
|
||||
|
||||
virtual ~RoomObstacle() override;
|
||||
virtual void Initialize() override;
|
||||
|
Loading…
x
Reference in New Issue
Block a user