#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 magic_skill_hash_; static std::map skill_magic_hash_; };