game2006/server/gameserver/skillhelper.h
aozhiwei c0e515b417 1
2023-02-15 13:42:31 +08:00

65 lines
2.8 KiB
C++

#pragma once
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 mt::Skill* skill_meta);
static float GetSjydhxForthDistance(const mt::Skill* skill_meta);
static float GetSjydhxBackTime(const mt::Skill* skill_meta);
//此面向敌
static int GetCmxdDmg(Creature* c, const mt::Skill* skill_meta);
static int GetCmxdRange(const mt::Skill* skill_meta);
static int GetCmxdDistance(const mt::Skill* skill_meta);
static int GetCmxdExplosion(const mt::Skill* skill_meta);
static int GetCmxdVertigoTime(const mt::Skill* skill_meta);
//击杀回血
static int GetJshxHp(Creature* c, const mt::Skill* skill_meta);
//死亡自爆
static int GetSwzbRadius(const mt::Skill* skill_meta);
static int GetSwzbDmg(Creature* c, const mt::Skill* skill_meta);
static int GetSwzbEffect(const mt::Skill* skill_meta);
static int GetSwzbPullDistance(const mt::Skill* skill_meta);
static int GetSwzbBuffId(const mt::Skill* skill_meta);
static float GetSwzbBuffTime(const mt::Skill* skill_meta);
//野蛮冲撞
static int GetYmczBuffTime(const mt::Skill* skill_meta);
static int GetYmczReserveDistance(const mt::Skill* skill_meta);
static float GetYmczDmg(Creature* sender, Creature* target, const mt::Skill* skill_meta);
//医疗站
static int GetYlzRange(const mt::Skill* skill_meta);
static int GetYlzRecoverHp(Creature* sender, Creature* target, const mt::Skill* skill_meta);
static int GetYlzDamage(Creature* sender, Creature* target, const mt::Skill* skill_meta);
//救援防护
static int GetJyfhBuffId(const mt::Skill* skill_meta);
static float GetJyfhBuffTime(const mt::Skill* skill_meta);
//受伤加速
static float GetSsjsHpRate(const mt::Skill* skill_meta);
static float GetSsjsTime(const mt::Skill* skill_meta);
static float GetSsjsProb(const mt::Skill* skill_meta);
static float GetSsjsSpeedRate(const mt::Skill* skill_meta);
//免疫眩晕
static float GetMyxySpeedRate(const mt::Skill* skill_meta);
static float GetMyxyAtkRate(const mt::Skill* skill_meta);
//立盾防御
static float GetLdfyHp(Creature* c, const mt::Skill* skill_meta);
static float GetLdfyBuffTime(Creature* c, const mt::Skill* skill_meta);
static void ProcBulletHitBuff(IBullet* bullet, Creature* c, int buff_uniid);
static bool ProcBulletDmg(IBullet* bullet, Creature* target, float& finaly_dmg);
static void ProcSummonObstacle(const mt::Skill* skill_meta, RoomObstacle* ob);
private:
static std::map<int, int> magic_skill_hash_;
static std::map<int, int> skill_magic_hash_;
};