game2006/server/gameserver/mt/GraspBuff.cc
aozhiwei a82513cd61 1
2023-02-23 12:03:41 +08:00

91 lines
2.2 KiB
C++

#include "precompile.h"
#include "mt/GraspBuff.h"
IMPL_TABLE(mt::GraspBuff)
namespace mt
{
void GraspBuff::Init1()
{
{
std::vector<std::string> strings;
a8::Split(graspbuff_trigger(), strings, '|');
if (strings.size() > 2) {
abort();
}
if (strings.empty()) {
abort();
}
std::vector<std::string> strings2;
a8::Split(strings[0], strings2, ',');
int type = a8::XValue(strings2[0]);
switch ((GraspBuffTrigger_e)type) {
case GraspBuffTrigger_e::kHit:
{
_trigger_type = type;
}
break;
case GraspBuffTrigger_e::kKill:
{
_trigger_type = type;
}
break;
case GraspBuffTrigger_e::kTakeOn:
{
_trigger_type = type;
}
break;
case GraspBuffTrigger_e::kCond:
{
_trigger_type = type;
_trigger_subtype = a8::XValue(strings2.at(1));
if (_trigger_subtype != (int)GraspBuffTriggerCond_e::kImprint) {
abort();
}
_trigger_cond.push_back(a8::XValue(strings2.at(2)));
_trigger_cond.push_back(a8::XValue(strings.at(1)));
}
break;
case GraspBuffTrigger_e::kHitAndEnd:
{
_trigger_type = type;
}
break;
default:
{
abort();
}
break;
}
}
}
void GraspBuff::Init2()
{
}
int GraspBuff::GetBuffTime(int hero_lv)
{
switch (hero_lv) {
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
{
return _buff_times.size() > 1 ? _buff_times.at(1) :_buff_times.at(0);
}
default:
{
return _buff_times.at(0);
}
break;
}
}
}