Пример #1
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            if (callData.GetParamNum() > 1)
            {
                StartTime      = int.Parse(callData.GetParamId(0));
                m_IsLockRotate = bool.Parse(callData.GetParamId(1));
            }

            m_SectionList.Clear();
            int section_num = 0;

            while (callData.GetParamNum() >= 7 * (section_num + 1) + 2)
            {
                MoveSectionInfo section = new MoveSectionInfo();
                section.moveTime    = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 2));
                section.speedVect.X = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 3));
                section.speedVect.Y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 4));
                section.speedVect.Z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 5));
                section.accelVect.X = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 6));
                section.accelVect.Y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 7));
                section.accelVect.Z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 8));
                m_SectionList.Add(section);
                section_num++;
            }
            if (m_SectionList.Count == 0)
            {
                return;
            }
            m_IsCurveMoving = true;
        }
Пример #2
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                StartTime = int.Parse(callData.GetParamId(0));
            }

            m_SectionList.Clear();
            int section_num = 0;

            while (num >= 7 * (section_num + 1) + 1)
            {
                MoveSectionInfo section = new MoveSectionInfo();
                section.moveTime    = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 1));
                section.speedVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 2));
                section.speedVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 3));
                section.speedVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 4));
                section.accelVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 5));
                section.accelVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 6));
                section.accelVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 7));
                m_SectionList.Add(section);
                section_num++;
            }
            if (num > 7 * (section_num + 1) + 1)
            {
                m_IsForRoundMove = callData.GetParamId((section_num * 7) + 8) == "true";
            }
            if (m_SectionList.Count == 0)
            {
                return;
            }
            m_IsCurveMoving = true;
        }
        public MoveSectionInfo Clone()
        {
            MoveSectionInfo copy = new MoveSectionInfo();

            copy.moveTime  = moveTime;
            copy.speedVect = speedVect;
            copy.accelVect = accelVect;
            return(copy);
        }
 static public int get_accelVect(IntPtr l)
 {
     try {
         GameFramework.Skill.Trigers.MoveSectionInfo self = (GameFramework.Skill.Trigers.MoveSectionInfo)checkSelf(l);
         pushValue(l, true);
         pushValue(l, self.accelVect);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int constructor(IntPtr l)
 {
     try {
         GameFramework.Skill.Trigers.MoveSectionInfo o;
         o = new GameFramework.Skill.Trigers.MoveSectionInfo();
         pushValue(l, true);
         pushValue(l, o);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int set_accelVect(IntPtr l)
 {
     try {
         GameFramework.Skill.Trigers.MoveSectionInfo self = (GameFramework.Skill.Trigers.MoveSectionInfo)checkSelf(l);
         UnityEngine.Vector3 v;
         checkType(l, 2, out v);
         self.accelVect = v;
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int set_moveTime(IntPtr l)
 {
     try {
         GameFramework.Skill.Trigers.MoveSectionInfo self = (GameFramework.Skill.Trigers.MoveSectionInfo)checkSelf(l);
         System.Single v;
         checkType(l, 2, out v);
         self.moveTime = v;
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                StartTime = int.Parse(callData.GetParamId(0));
            }
            m_SectionList.Clear();
            int nextParamIndex = 1;
            int section_num    = 0;

            while (num >= nextParamIndex + 7)
            {
                MoveSectionInfo section = new MoveSectionInfo();
                section.moveTime = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.speedVect.x = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.speedVect.y = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.speedVect.z = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.accelVect.x = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.accelVect.y = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                section.accelVect.z = (float)System.Convert.ToDouble(callData.GetParamId(nextParamIndex));
                ++nextParamIndex;
                m_SectionList.Add(section);
                section_num++;
            }
            if (num > nextParamIndex)
            {
                string moveType = callData.GetParamId(nextParamIndex);
                ++nextParamIndex;
                IList <string> list = Converter.ConvertStringList(moveType);
                m_IsFreeMove = list.IndexOf("freemove") >= 0;
            }
        }
        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;

            if (null == senderObj)
            {
                return(false);
            }
            GameObject obj = senderObj.GfxObj;

            if (null == obj)
            {
                return(false);
            }
            if (null != senderObj.TrackEffectObj)
            {
                obj = senderObj.TrackEffectObj;
            }
            if (curSectionTime < StartTime)
            {
                return(true);
            }
            if (!m_IsCurveMoving)
            {
                return(false);
            }
            if (!m_IsInited)
            {
                Init(senderObj, instance);
            }
            if (m_SectionListCopy.Count == 0)
            {
                m_IsCurveMoving = false;
                return(false);
            }
            m_Now += TriggerUtil.ConvertToSecond((long)(instance.OriginalDelta * instance.MoveScale));
            MoveSectionInfo cur_section = m_SectionListCopy[0];

            if (m_Now - cur_section.startTime > cur_section.moveTime)
            {
                float end_time  = cur_section.startTime + cur_section.moveTime;
                float used_time = end_time - cur_section.lastUpdateTime;
                cur_section.curSpeedVect = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, used_time);
                m_SectionListCopy.RemoveAt(0);
                if (m_SectionListCopy.Count > 0)
                {
                    cur_section                = m_SectionListCopy[0];
                    cur_section.startTime      = end_time;
                    cur_section.lastUpdateTime = end_time;
                    cur_section.curSpeedVect   = cur_section.speedVect;
                }
                else
                {
                    m_IsCurveMoving = false;
                }
            }
            else
            {
                cur_section.curSpeedVect   = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, m_Now - cur_section.lastUpdateTime);
                cur_section.lastUpdateTime = m_Now;
            }
            return(true);
        }
Пример #10
0
        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;

            if (null == senderObj)
            {
                return(false);
            }
            Scene      scene = senderObj.Scene;
            EntityInfo obj   = senderObj.GfxObj;

            if (null == obj)
            {
                return(false);
            }
            bool isTower = scene.EntityController.GetEntityType(senderObj.GfxObj) == (int)EntityTypeEnum.Tower;

            if (isTower)
            {
                return(false);
            }
            if (curSectionTime < StartTime)
            {
                return(true);
            }
            if (!m_IsCurveMoving)
            {
                return(false);
            }
            if (!m_IsInited)
            {
                Init(obj, senderObj.TargetGfxObj, instance);
            }
            if (m_SectionListCopy.Count == 0)
            {
                m_IsCurveMoving = false;
                return(false);
            }

            m_Now += TriggerUtil.ConvertToSecond((long)(instance.OriginalDelta * instance.MoveScale));
            MoveSectionInfo cur_section = m_SectionListCopy[0];

            if (m_Now - cur_section.startTime > cur_section.moveTime)
            {
                float end_time  = cur_section.startTime + cur_section.moveTime;
                float used_time = end_time - cur_section.lastUpdateTime;
                cur_section.curSpeedVect = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, used_time);
                m_SectionListCopy.RemoveAt(0);
                if (m_SectionListCopy.Count > 0)
                {
                    cur_section                = m_SectionListCopy[0];
                    cur_section.startTime      = end_time;
                    cur_section.lastUpdateTime = end_time;
                    cur_section.curSpeedVect   = cur_section.speedVect;
                }
                else
                {
                    m_IsCurveMoving = false;
                }
            }
            else
            {
                cur_section.curSpeedVect   = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, m_Now - cur_section.lastUpdateTime);
                cur_section.lastUpdateTime = m_Now;
            }
            return(true);
        }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            if (callData.GetParamNum() > 1) {
                StartTime = int.Parse(callData.GetParamId(0));
                m_IsLockRotate = bool.Parse(callData.GetParamId(1));
            }

            m_SectionList.Clear();
            int section_num = 0;
            while (callData.GetParamNum() >= 7 * (section_num + 1) + 2) {
                MoveSectionInfo section = new MoveSectionInfo();
                section.moveTime = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 2));
                section.speedVect.X = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 3));
                section.speedVect.Y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 4));
                section.speedVect.Z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 5));
                section.accelVect.X = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 6));
                section.accelVect.Y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 7));
                section.accelVect.Z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 8));
                m_SectionList.Add(section);
                section_num++;
            }
            if (m_SectionList.Count == 0) {
                return;
            }
            m_IsCurveMoving = true;
        }
 public MoveSectionInfo Clone()
 {
     MoveSectionInfo copy = new MoveSectionInfo();
     copy.moveTime = moveTime;
     copy.speedVect = speedVect;
     copy.accelVect = accelVect;
     return copy;
 }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();
            if (num > 0) {
                StartTime = int.Parse(callData.GetParamId(0));
            }

            m_SectionList.Clear();
            int section_num = 0;
            while (num >= 7 * (section_num + 1) + 1) {
                MoveSectionInfo section = new MoveSectionInfo();
                section.moveTime = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 1));
                section.speedVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 2));
                section.speedVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 3));
                section.speedVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 4));
                section.accelVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 5));
                section.accelVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 6));
                section.accelVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 7));
                m_SectionList.Add(section);
                section_num++;
            }
            if (num > 7 * (section_num + 1) + 1) {
                m_IsForRoundMove = callData.GetParamId((section_num * 7) + 8) == "true";
            }
            if (m_SectionList.Count == 0) {
                return;
            }
            m_IsCurveMoving = true;
        }
Пример #14
0
        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;

            if (null == senderObj)
            {
                return(false);
            }
            GameObject obj = senderObj.GfxObj;

            if (null == obj)
            {
                return(false);
            }
            if (null != senderObj.TrackEffectObj)
            {
                obj = senderObj.TrackEffectObj;
            }
            bool isTower = !EntityController.Instance.IsMovableEntity(obj);

            if (isTower)
            {
                return(false);
            }
            if (curSectionTime < StartTime)
            {
                return(true);
            }
            if (!m_IsCurveMoving)
            {
                if (m_IsForRoundMove && m_TargetPos.sqrMagnitude > Geometry.c_FloatPrecision)
                {
                    obj.transform.position = m_TargetPos;
                }
                return(false);
            }
            if (!m_IsInited)
            {
                Init(senderObj, instance);
            }
            if (m_SectionListCopy.Count == 0)
            {
                m_IsCurveMoving = false;
                return(false);
            }
            m_Now += TriggerUtil.ConvertToSecond((long)(instance.OriginalDelta * instance.MoveScale));
            MoveSectionInfo cur_section = m_SectionListCopy[0];

            if (m_Now - cur_section.startTime > cur_section.moveTime)
            {
                float end_time  = cur_section.startTime + cur_section.moveTime;
                float used_time = end_time - cur_section.lastUpdateTime;
                cur_section.curSpeedVect = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, used_time);
                m_SectionListCopy.RemoveAt(0);
                if (m_SectionListCopy.Count > 0)
                {
                    cur_section                = m_SectionListCopy[0];
                    cur_section.startTime      = end_time;
                    cur_section.lastUpdateTime = end_time;
                    cur_section.curSpeedVect   = cur_section.speedVect;
                }
                else
                {
                    m_IsCurveMoving = false;
                }
            }
            else
            {
                cur_section.curSpeedVect   = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, m_Now - cur_section.lastUpdateTime);
                cur_section.lastUpdateTime = m_Now;
            }
            return(true);
        }