예제 #1
0
        public MoveToPanel(MoveToEvent evt)
            : this()
        {
            mEvent = evt;

            mEvent.LengthChange += new EventHandler <LengthChangeEventArgs <Vector3> >(mEvent_LengthChange);
            if (mEvent.Target == Vector3.Zero)
            {
                mEvent.Target = targetVectorPanel.Value;
                mEvent.Length = (int)lengthValue.Value;
            }
            else
            {
                targetVectorPanel.Value = mEvent.Target;
                lengthValue.Value       = mEvent.Length;
            }

            targetVectorPanel.ValueChanged += (source, args) => {
                mEvent.Target = targetVectorPanel.Value;
                //mEvent.Container.Time = evt.GlobalFinishTime;
                mEvent.Container.Core.Update(mEvent.Target, Vector3.Zero, mEvent.Container.Core.Orientation, Rotation.Zero);
            };

            mTimeChangeListener = new Action <FlythroughEvent <Vector3>, int>(evt_TimeChange);
        }
    public override void OnBroadcastEvent(int eventID, int targetObjID, object args = null)
    {
        if (!isActive)
        {
            return;
        }

        if (eventID == (int)Const_Util.BATTLE_EVENT.CHG_DIR)
        {
            unitHangNode.localPosition = hangNodeOriginPos;
            if (colliderCD > Const_Util.FLT_EPSILON)
            {
                return;
            }
            if (moveOprEvent != null && !moveOprEvent.IsFinish())
            {
                moveOprEvent.Destroy();
                moveOprEvent = null;
            }
            moveOprEvent = new SeqEvent();
            MoveToEvent moveTo = new MoveToEvent(cobj.GetRenderObjTr(), new Vector3((float)args, cobj.GetRenderObjTr().localPosition.y, 0), 0.1f);
            moveOprEvent.AddEvent(moveTo);
            moveOprEvent.Begin();
        }
        else if (eventID == (int)Const_Util.BATTLE_EVENT.MOVE_SPEED_RATE)
        {
            if (!IsHero())
            {
                SetMoveSpeed((float)args * baseMoveSpeed);
            }
        }
        else if (eventID == (int)Const_Util.BATTLE_EVENT.JUMP)
        {
            if (colliderCD > Const_Util.FLT_EPSILON)
            {
                return;
            }
            SendMsg((int)Const_Util.UNIT_MSG.START_JUMP, null);
        }
    }
예제 #3
0
 private void OnMoveToEvent(MoveToEvent evt)
 {
     if (isSelected == true)
     {
         if (mode == "BlinkTeleport")
         {
             // Blink Move to point
             // TODO: expose values for blink !!!
             EventController.Instance.Publish(new PlayBlinkEffectEvent(true, evt.moveToTransform, 1.1f, 6f, 0f));
         }
         else if (mode == "BodySwitchTeleport")
         {
             // No Move To Allowed in this mode, so do nothing !!!
         }
         else
         {
             // Move animation and travesal to point
             Debug.Log("playerName: " + playerName + " isSelected and moving");
             HandleSetTarget(evt.moveToTransform);
         }
     }
 }
예제 #4
0
        public MoveToPanel(MoveToEvent evt)
            : this()
        {
            mEvent = evt;

            mEvent.LengthChange += new EventHandler<LengthChangeEventArgs<Vector3>>(mEvent_LengthChange);
            if (mEvent.Target == Vector3.Zero) {
                mEvent.Target = targetVectorPanel.Value;
                mEvent.Length = (int)lengthValue.Value;
            } else {
                targetVectorPanel.Value = mEvent.Target;
                lengthValue.Value = mEvent.Length;
            }

            targetVectorPanel.ValueChanged += (source, args) => {
                mEvent.Target = targetVectorPanel.Value;
                //mEvent.Container.Time = evt.GlobalFinishTime;
                mEvent.Container.Core.Update(mEvent.Target, Vector3.Zero, mEvent.Container.Core.Orientation, Rotation.Zero);
            };

            mTimeChangeListener = new Action<FlythroughEvent<Vector3>,int>(evt_TimeChange);
        }
예제 #5
0
 private void OnMoveToEvent(MoveToEvent e)
 {
     MoveTo(e.position);
 }