コード例 #1
0
    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);
        }
    }
コード例 #2
0
 void DamageBuff(EntityBase skiller, EntityBase hurter, SkillDataGenerate skillData)
 {
     SkillUtils.AddBuff(m_world, skiller, hurter, skillData.m_HurtBuff);
 }