This commit is contained in:
aozhiwei 2023-03-06 10:24:21 +08:00
parent 83a35e8cfd
commit 50e68ed854
3 changed files with 108 additions and 10 deletions

View File

@ -122,12 +122,6 @@ static void SavePerfLog()
bool App::Init(int argc, char* argv[]) bool App::Init(int argc, char* argv[])
{ {
{
auto env = std::make_shared<a8::lisp::GlobalScope>();
auto p = a8::lisp::Expr::Compile("(+ 1 3 (+ 100 200))", env);
auto ret = a8::lisp::Expr::Eval(p, env);
a8::XPrintf("p:%s ret:%f\n", {p->ToXObject().ToJsonStr(), ret->ToXObject().ToJsonStr()});
}
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
this->argc = argc; this->argc = argc;
this->argv = argv; this->argv = argv;

View File

@ -31,6 +31,7 @@ void CallFuncBuff::Activate()
break; break;
case BuffCallFunc_e::kDecHp: case BuffCallFunc_e::kDecHp:
{ {
hold_param2_ = meta->GetBuffParam2(owner, skill_meta);
} }
break; break;
case BuffCallFunc_e::kMarkTag: case BuffCallFunc_e::kMarkTag:

View File

@ -1,10 +1,28 @@
#include "precompile.h" #include "precompile.h"
#include <a8/magicenum.h>
#include "mt/SkillNumber.h" #include "mt/SkillNumber.h"
#include "mt/Skill.h" #include "mt/Skill.h"
IMPL_TABLE(mt::SkillNumber) IMPL_TABLE(mt::SkillNumber)
A8_DECLARE_CLASS_ENUM(SkillNumberLispField_e, int,
damage,
damage_addition,
damage_change,
shield,
shield_addition,
resume,
resume_addition,
speed,
range,
range2,
range3,
time,
cd
);
namespace mt namespace mt
{ {
@ -107,15 +125,100 @@ namespace mt
float SkillNumber::GetAttrByIdx(int idx) float SkillNumber::GetAttrByIdx(int idx)
{ {
switch ((SkillNumberLispField_e)idx) {
case SkillNumberLispField_e::damage:
{
return damage();
}
break;
case SkillNumberLispField_e::damage_addition:
{
return damage_addition();
}
break;
case SkillNumberLispField_e::damage_change:
{
return damage_change();
}
break;
case SkillNumberLispField_e::shield:
{
return shield();
}
break;
case SkillNumberLispField_e::shield_addition:
{
return shield_addition();
}
break;
case SkillNumberLispField_e::speed:
{
return _float_speed;
}
break;
case SkillNumberLispField_e::range:
{
return _float_range;
}
break;
case SkillNumberLispField_e::range2:
{
return _float_range2;
}
break;
case SkillNumberLispField_e::range3:
{
return _float_range3;
}
break;
case SkillNumberLispField_e::time:
{
return _float_time;
}
break;
case SkillNumberLispField_e::cd:
{
return _float_cd;
}
break;
default:
{
abort();
}
break;
}
} }
int SkillNumber::GetAttrIdxByName(const std::string& name) int SkillNumber::GetAttrIdxByName(const std::string& name)
{ {
if (name == "${skillNumber.speed}") { if (name == "${skillNumber.damage}") {
return 0; return (int)SkillNumberLispField_e::damage;
} else if (name == "${skillNumber.damage_addition}") {
return (int)SkillNumberLispField_e::damage_addition;
} else if (name == "${skillNumber.damage_change}") {
return (int)SkillNumberLispField_e::damage_change;
} else if (name == "${skillNumber.shield}") {
return (int)SkillNumberLispField_e::shield;
} else if (name == "${skillNumber.shield_addition}") {
return (int)SkillNumberLispField_e::shield_addition;
} else if (name == "${skillNumber.resume}") {
return (int)SkillNumberLispField_e::resume;
} else if (name == "${skillNumber.resume_addition}") {
return (int)SkillNumberLispField_e::resume_addition;
} else if (name == "${skillNumber.speed}") {
return (int)SkillNumberLispField_e::speed;
} else if (name == "${skillNumber.range}") {
return (int)SkillNumberLispField_e::range;
} else if (name == "${skillNumber.range2}") {
return (int)SkillNumberLispField_e::range2;
} else if (name == "${skillNumber.range3}") {
return (int)SkillNumberLispField_e::range3;
} else if (name == "${skillNumber.time}") {
return (int)SkillNumberLispField_e::time;
} else if (name == "${skillNumber.cd}") {
return (int)SkillNumberLispField_e::cd;
} }
return -1; abort();
} }
} }