This commit is contained in:
aozhiwei 2023-03-10 16:36:01 +08:00
parent d2bf1235c1
commit 11331d2c3a
3 changed files with 51 additions and 46 deletions

View File

@ -26,6 +26,11 @@ void BatchAddBuff::Activate()
if (rnd < std::get<1>(items[0])){
const mt::Buff* buff_meta = mt::Buff::GetById(std::get<0>(items[0]));
if (buff_meta) {
a8::XPrintf("BatchAddBuff:%d %s\n",
{
buff_meta->buff_id(),
buff_meta->name()
});
owner->AddBuff(caster_.Get(), buff_meta, skill_meta);
}
}

View File

@ -50,96 +50,96 @@
#include "mt/Buff.h"
Buff* BuffFactory::MakeBuff(const mt::Buff* buff_meta)
std::shared_ptr<Buff> BuffFactory::MakeBuff(const mt::Buff* buff_meta)
{
switch (buff_meta->buff_effect()) {
case kBET_AddCarBuff:
return new AddCarBuff();
return std::make_shared<AddCarBuff>();
case kBET_AddInventory:
return new AddInventoryBuff();
return std::make_shared<AddInventoryBuff>();
case kBET_AutoShot:
return new AutoShotBuff();
return std::make_shared<AutoShotBuff>();
case kBET_BatchAddBuff:
return new BatchAddBuff();
return std::make_shared<BatchAddBuff>();
case kBET_BeatBack:
return new BeatBackBuff();
return std::make_shared<BeatBackBuff>();
case kBET_Become:
return new BecomeBuff();
return std::make_shared<BecomeBuff>();
case kBET_BePull:
return new BePullBuff();
return std::make_shared<BePullBuff>();
case kBET_BeRecycle:
return new BeRecycleBuff();
return std::make_shared<BeRecycleBuff>();
case kBET_CallFunc:
return new CallFuncBuff();
return std::make_shared<CallFuncBuff>();
case kBET_Camouflage:
return new CamouflageBuff();
return std::make_shared<CamouflageBuff>();
case kBET_CamouflageAddition:
return new CamouflageAdditionBuff();
return std::make_shared<CamouflageAdditionBuff>();
case kBET_EventAdd:
return new EventAddBuff();
return std::make_shared<EventAddBuff>();
case kBET_DelayAddBuff:
return new DelayAddBuff();
return std::make_shared<DelayAddBuff>();
case kBET_Disperse:
return new DisperseBuff;
return std::make_shared<DisperseBuff>();
case kBET_Dive:
return new DiveBuff();
return std::make_shared<DiveBuff>();
case kBET_Driver:
return new DriverBuff();
return std::make_shared<DriverBuff>();
case kBET_FlashMove:
return new FlashMoveBuff();
return std::make_shared<FlashMoveBuff>();
case kBET_Hide:
return new HideBuff();
return std::make_shared<HideBuff>();
case kBET_HoldShield:
return new HoldShieldBuff();
return std::make_shared<HoldShieldBuff>();
case kBET_Immune:
return new ImmuneBuff();
return std::make_shared<ImmuneBuff>();
case kBET_InWater:
return new InWaterBuff();
return std::make_shared<InWaterBuff>();
case kBET_IntervalAddBuff:
return new InternalAddBuff;
return std::make_shared<InternalAddBuff>();
case kBET_Jump:
return new JumpBuff();
return std::make_shared<JumpBuff>();
case kBET_JumpTo:
return new JumpToBuff();
return std::make_shared<JumpToBuff>();
case kBET_MachineGun:
return new MachineGunBuff();
return std::make_shared<MachineGunBuff>();
case kBET_OnceChgAttr:
return new OnceChgAttrBuff();
return std::make_shared<OnceChgAttrBuff>();
case kBET_Passenger:
return new PassengerBuff();
return std::make_shared<PassengerBuff>();
case kBET_Pull:
return new PullBuff();
return std::make_shared<PullBuff>();
case kBET_PullToWalkable:
return new PullToWalkableBuff();
return std::make_shared<PullToWalkableBuff>();
case kBET_RemoveCarBuff:
return new RemoveCarBuff;
return std::make_shared<RemoveCarBuff>();
case kBET_Rescuer:
return new RescuerBuff();
return std::make_shared<RescuerBuff>();
case kBET_Reverse:
return new ReverseBuff();
return std::make_shared<ReverseBuff>();
case kBET_ReverseMove:
return new ReverseMoveBuff();
return std::make_shared<ReverseMoveBuff>();
case kBET_SelectTargetWithSelfPos:
return new SelectTargetWithSelfPosBuff();
return std::make_shared<SelectTargetWithSelfPosBuff>();
case kBET_Sprint:
return new SprintBuff();
return std::make_shared<SprintBuff>();
case kBET_SummonHero:
return new SummonHeroBuff();
return std::make_shared<SummonHeroBuff>();
case kBET_SummonObstacle:
return new SummonObstacleBuff();
return std::make_shared<SummonObstacleBuff>();
case kBET_TurnOver:
return new TurnOverBuff();
return std::make_shared<TurnOverBuff>();
case kBET_UseSkill:
return new UseSkillBuff();
return std::make_shared<UseSkillBuff>();
case kBET_Invincible:
return new InvincibleBuff();
return std::make_shared<InvincibleBuff>();
case kBET_ModifyAttr:
return new ModifyBuff();
return std::make_shared<ModifyBuff>();
case kBET_Vertigo:
return new VertigoBuff();
return std::make_shared<VertigoBuff>();
case kBET_CondAdd:
return new CondAddBuff();
return std::make_shared<CondAddBuff>();
default:
return new Buff();
return std::make_shared<Buff>();
}
}

View File

@ -5,5 +5,5 @@ class BuffFactory
{
public:
static Buff* MakeBuff(const mt::Buff* buff_meta);
static std::shared_ptr<Buff> MakeBuff(const mt::Buff* buff_meta);
};