This commit is contained in:
aozhiwei 2023-06-17 10:04:41 +08:00
parent a1a1d6ab27
commit 951ad8b1e2
3 changed files with 40 additions and 1 deletions

View File

@ -167,6 +167,11 @@ void CallFuncBuff::Activate()
owner->room->frame_event.AddHpChg(owner->GetWeakPtrRef());
}
break;
case BuffCallFunc_e::kSummonCarSpecPoint:
{
SummonCarSpecPoint();
}
break;
default:
{
}
@ -870,3 +875,8 @@ void CallFuncBuff::ProcAddMaxHp()
owner->SetMaxHP(owner->GetMaxHP() + hold_param2_);
}
}
void CallFuncBuff::SummonCarSpecPoint()
{
}

View File

@ -27,6 +27,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
kDecSkillCd = 27,
kRefreshHp = 28,
kAddMaxHp = 29,
kSummonCarSpecPoint = 30
);
@ -56,6 +57,7 @@ class CallFuncBuff : public Buff
void SummonObstacleSpecDistance();
void ClearSummonObstacle();
void DecSkillCd();
void SummonCarSpecPoint();
float hold_param2_ = 0.0;
Weapon* hold_weapon_ = nullptr;

View File

@ -11,6 +11,7 @@
#include "bullet.h"
#include "buff.h"
#include "stats.h"
#include "team.h"
#include "mt/Buff.h"
#include "mt/Skill.h"
@ -269,7 +270,33 @@ void Trigger::Die(int killer_id, int weapon_id)
owner_->RemoveBuffByUniId(buff_uniid);
}
}
TriggeCondBuffAll(kEventBuffDid);
Creature* killer = owner_->room->GetCreatureByUniId(killer_id);
TraverseCondBuffs
(kEventBuffDid,
[this, killer, killer_id] (Buff* buff, bool& stop)
{
switch (buff->meta->_int_buff_param2) {
case 0:
{
AddBuffs(buff, kEventBuffDid, buff->meta->_buff_param4_int_list);
}
break;
case 1:
{
if (killer && killer->IsHuman()) {
auto buff_vars = std::make_shared<std::vector<float>>();
buff_vars->push_back(killer->GetUniId());
buff_vars->push_back(killer->GetTeam()->GetTeamId());
AddBuffs(buff, kEventBuffDid, buff->meta->_buff_param4_int_list, buff_vars);
}
}
break;
default:
{
}
break;
}
});
DispatchEvent(kDieEvent, {killer_id, weapon_id});
}