internal void ActivateSkill(int actorId, int skillId, int seq)
{
EntityViewModel view = GetEntityViewById(actorId);
if (null != view && null != view.Entity) {
EntityInfo entity = view.Entity;
SkillInfo skillInfo = entity.GetSkillStateInfo().GetSkillInfoById(skillId);
if (null != skillInfo) {
SkillInfo curSkillInfo = entity.GetSkillStateInfo().GetCurSkillInfo();
if (null != curSkillInfo && (curSkillInfo.ConfigData.interruptPriority < skillInfo.ConfigData.interruptPriority)) {
GfxSkillSystem.Instance.StopSkill(actorId, curSkillInfo.SkillId, 0, true);
if (skillId == view.Entity.ManualSkillId) {
LogSystem.Warn("ManualSkill {0} interrupt {1}.", skillId, curSkillInfo.SkillId);
}
}
if (skillId == view.Entity.ManualSkillId) {
LogSystem.Warn("ManualSkill {0} activate.", skillId);
}
entity.GetSkillStateInfo().SetCurSkillInfo(skillId);
skillInfo.IsSkillActivated = true;
skillInfo.CdEndTime = TimeUtility.GetLocalMilliseconds() + (long)skillInfo.ConfigData.cooldown;
if (skillInfo.ConfigData.addmp > 0 && !ClientModule.Instance.IsRoomScene) {
//回蓝
entity.SetEnergy(Operate_Type.OT_Relative, skillInfo.ConfigData.addmp);
entity.EntityManager.FireDamageEvent(actorId, 0, false, false, 0, -skillInfo.ConfigData.addmp);
}
}
}
}