void SkillLogic(EntityBase entity, int deltaTime) { SkillStatusComponent ssc = entity.GetComp <SkillStatusComponent>(); MoveComponent mc = entity.GetComp <MoveComponent>(); CampComponent cc = entity.GetComp <CampComponent>(); if (ssc.m_isHit) { SkillDataGenerate skillData = ssc.m_currentSkillData.SkillInfo; //技能代处理 SkillUtils.TokenUseSkill(m_world, entity.ID, skillData.m_SkillAgency, mc.pos.ToVector(), ssc.skillDir.ToVector()); //获取伤害列表 List <EntityBase> damageList = GetSkillDamageList(entity, skillData); //Debug.Log("damageList " + damageList.Count); //创建飞行物 CreateFlyObject(skillData, entity); //自身buff SkillUtils.AddBuff(m_world, entity, entity, skillData.m_SelfBuff); //Debug.Log("SkillLogic hit " + entity.ID + " createrid " + cc.creater + " damageList.Count " + damageList.Count); for (int i = 0; i < damageList.Count; i++) { //伤害处理 Damage(entity, damageList[i], skillData); //击飞处理 BlowFly(entity, damageList[i], skillData); //伤害Buff处理 DamageBuff(entity, damageList[i], skillData); } //TODO 恢复 Recover(entity, entity, skillData); } }
void DamageBuff(EntityBase skiller, EntityBase hurter, SkillDataGenerate skillData) { SkillUtils.AddBuff(m_world, skiller, hurter, skillData.m_HurtBuff); }