game2006/server/gameserver/skillhelper.h
aozhiwei b840a1c3c7 1
2022-10-12 13:30:13 +08:00

69 lines
2.9 KiB
C++

#pragma once
namespace MetaData
{
struct Skill;
};
class Bullet;
class Creature;
class RoomObstacle;
class SkillHelper
{
public:
static void Init();
static void GetMagicIdAndBaseSkillId(int skill_id, int& magic_id, int& base_skill_id);
//瞬间移动回血
static float GetSjydhxRecoverHp(Creature* c, const MetaData::Skill* skill_meta);
static float GetSjydhxForthDistance(const MetaData::Skill* skill_meta);
static float GetSjydhxBackTime(const MetaData::Skill* skill_meta);
//此面向敌
static int GetCmxdDmg(Creature* c, const MetaData::Skill* skill_meta);
static int GetCmxdRange(const MetaData::Skill* skill_meta);
static int GetCmxdDistance(const MetaData::Skill* skill_meta);
static int GetCmxdExplosion(const MetaData::Skill* skill_meta);
static int GetCmxdVertigoTime(const MetaData::Skill* skill_meta);
//击杀回血
static int GetJshxHp(Creature* c, const MetaData::Skill* skill_meta);
//死亡自爆
static int GetSwzbRadius(const MetaData::Skill* skill_meta);
static int GetSwzbDmg(Creature* c, const MetaData::Skill* skill_meta);
static int GetSwzbEffect(const MetaData::Skill* skill_meta);
static int GetSwzbPullDistance(const MetaData::Skill* skill_meta);
static int GetSwzbBuffId(const MetaData::Skill* skill_meta);
static float GetSwzbBuffTime(const MetaData::Skill* skill_meta);
//野蛮冲撞
static int GetYmczBuffTime(const MetaData::Skill* skill_meta);
static int GetYmczReserveDistance(const MetaData::Skill* skill_meta);
static float GetYmczDmg(Creature* sender, Creature* target, const MetaData::Skill* skill_meta);
//医疗站
static int GetYlzRange(const MetaData::Skill* skill_meta);
static int GetYlzRecoverHp(Creature* sender, Creature* target, const MetaData::Skill* skill_meta);
//救援防护
static int GetJyfhBuffId(const MetaData::Skill* skill_meta);
static float GetJyfhBuffTime(const MetaData::Skill* skill_meta);
//受伤加速
static float GetSsjsHpRate(const MetaData::Skill* skill_meta);
static float GetSsjsTime(const MetaData::Skill* skill_meta);
static float GetSsjsProb(const MetaData::Skill* skill_meta);
static float GetSsjsSpeedRate(const MetaData::Skill* skill_meta);
//免疫眩晕
static float GetMyxySpeedRate(const MetaData::Skill* skill_meta);
static float GetMyxyAtkRate(const MetaData::Skill* skill_meta);
//立盾防御
static float GetLdfyHp(Creature* c, const MetaData::Skill* skill_meta);
static float GetLdfyBuffTime(Creature* c, const MetaData::Skill* skill_meta);
static void ProcBulletHitBuff(Bullet* bullet, Creature* c, int buff_uniid);
static bool ProcBulletDmg(Bullet* bullet, Creature* target, float& finaly_dmg);
static void ProcSummonObstacle(const MetaData::Skill* skill_meta, RoomObstacle* ob);
private:
static std::map<int, int> magic_skill_hash_;
static std::map<int, int> skill_magic_hash_;
};