/// <summary>
        /// 蓄力---->按下begin,抬起通信release,end
        /// </summary>
        /// <param name="skillData"></param>
        private void ToCastAccumulationSkill(SkillData skillData, bool isdown)
        {
            uint        entityId = (uint)m_ISpacecraftSkillProperty.EntityId();
            uint        skillId  = (uint)skillData.Id;
            SkillRPCNet skillRPC = m_Context.GetObject <SkillRPCNet>();

            if (skillRPC == null)
            {
                return;
            }

            if (isdown) //按下
            {
                Leyoutech.Utility.DebugUtility.Log("蓄力", " 按下");

                AccumulationSkill skillA = new AccumulationSkill();
                skillA.AccumulationSkillBegin          = new global::Crucis.Protocol.AccumulationSkillBegin();
                skillA.AccumulationSkillBegin.CasterId = entityId;
                skillA.AccumulationSkillBegin.SkillId  = skillId;
                skillRPC.CreatListenerCastAccumulationSkill(entityId, skillId);
                skillRPC.CastAccumulationSkillWright(entityId, skillId, skillA);
            }
            else //抬起
            {
                Leyoutech.Utility.DebugUtility.Log("蓄力", " 抬起");
                Vector3 direction = Vector3.zero;
                List <Crucis.Protocol.TargetInfo> targetList = m_ISpacecraftSkillProperty.GetPerceptronTarget().GetCurrentTargetInfos(false, out direction, true, skillData.BaseData.Value.TagercalculationType);
                AccumulationSkill skillA = new AccumulationSkill();
                skillA.AccumulationSkillEnd          = new global::Crucis.Protocol.SkillSelectTargetInfo();
                skillA.AccumulationSkillEnd.CasterId = (uint)m_ISpacecraftSkillProperty.EntityId();
                skillA.AccumulationSkillEnd.SkillId  = (uint)skillData.Id;
                skillA.AccumulationSkillEnd.TargetList.Add(targetList);

                MainCameraComponent mainCamComponent = m_Context.GetObject <MainCameraComponent>();
                float d = skillData.BaseData.Value.MaxDistance; //* SceneController.SKILL_PRECISION;
                Crucis.Protocol.Vec4 vec4 = GetCameraQuaternion(mainCamComponent, direction, d);
                skillA.AccumulationSkillEnd.Quat = vec4;

                skillRPC.CastAccumulationSkillWright(entityId, skillId, skillA);

                if (skillData.BaseData.Value.IsNeedTarget && (targetList == null || targetList.Count == 0))
                {
                    StageType = SkillStageType.None;
                }
            }
        }
Example #2
0
 /// <summary>
 /// 蓄力技能流写入
 /// </summary>
 /// <param name="entityId"></param>
 /// <param name="skill_id_"></param>
 /// <param name="request"></param>
 public void CastAccumulationSkillWright(uint entityId, uint skill_id_, AccumulationSkill request)
 {
     Leyoutech.Utility.DebugUtility.Log("SkillRPCNet", " 蓄力技能写入" + this.GetHashCode());
     m_CastAccumulationSkillStream?.Wright(request);
 }