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])){ if (rnd < std::get<1>(items[0])){
const mt::Buff* buff_meta = mt::Buff::GetById(std::get<0>(items[0])); const mt::Buff* buff_meta = mt::Buff::GetById(std::get<0>(items[0]));
if (buff_meta) { if (buff_meta) {
a8::XPrintf("BatchAddBuff:%d %s\n",
{
buff_meta->buff_id(),
buff_meta->name()
});
owner->AddBuff(caster_.Get(), buff_meta, skill_meta); owner->AddBuff(caster_.Get(), buff_meta, skill_meta);
} }
} }

View File

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

View File

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