Beispiel #1
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            if (waypoints.Count > 0)
            {
                if (DistanceToDestination < speed)
                {
                    position = waypoints.Peek();
                    waypoints.Dequeue();
                }

                else
                {
                    Vector2 direction = waypoints.Peek() - position;
                    direction.Normalize();

                    velocity  = Vector2.Multiply(direction, speed);
                    position += velocity;
                }
            }
            else
            {
                alive = false;
            }
            if (currentHealth <= 0)
            {
                alive = false;
            }

            if (bounds.Intersects(level.Bounds))
            {
                status = VisibleStatus.Invisible;
            }
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.ValueType == typeof(Int64))
            {
                VisibleStatus flag = (VisibleStatus)(Int64)reader.Value;
                return(flag.ToString().Split(',').Select(s => s.Trim()).ToList());
            }

            return(serializer.Deserialize(reader, objectType));
        }
Beispiel #3
0
    private void _Move(VisibleStatus status)
    {
        _SetPosition(status.StartPosition);

        Speed       = status.Speed;
        Trun        = status.Trun;
        SkillOffset = new Vector3(status.SkillOffect.X, 0, status.SkillOffect.Y);

        _SetDirection(status.Direction);

        _SetStatus(status.Status);
    }
Beispiel #4
0
 private void _InvokeStatusEvent()
 {
     if (_StatusEvent != null)
     {
         var status = new VisibleStatus()
         {
             Status        = _Status,
             StartPosition = _Mesh.Center,
             Speed         = _Speed,
             Direction     = Direction,
             Trun          = _Trun,
             SkillOffect   = _SkillOffsetVector
         };
         this._StatusEvent.Invoke(status);
     }
 }
Beispiel #5
0
        void IVisible.QueryStatus()
        {
            var status = new VisibleStatus()
            {
                Status        = _Status,
                StartPosition = _Mesh.Center,
                Speed         = _Speed,
                Direction     = Direction,
                Trun          = _Trun,
                SkillOffect   = _SkillOffsetVector
            };

            this._StatusEvent.Invoke(status);

            _BroadcastEquipEvent();
        }
 private void _OnStatus(VisibleStatus obj)
 {
 }
 private void _OnStatus(VisibleStatus obj)
 {
 }
    private void _Move(VisibleStatus status)
    {
        if(EntityController.MainEntityId == _Visible.Id)
            Debug.Log("set status " + _Visible.Position.X +" , "+_Visible.Position.Y);
        _SetPosition(status.StartPosition);

        Speed = status.Speed;
        Trun = status.Trun;
        SkillOffset = new Vector3(status.SkillOffect.X , 0 , status.SkillOffect.Y);

        _SetDirection(status.Direction);

        _SetStatus(status.Status);
    }
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            if (waypoints.Count > 0)
            {
                if (DistanceToDestination < speed)
                {
                    position = waypoints.Peek();
                    waypoints.Dequeue();

                }

                else
                {
                    Vector2 direction = waypoints.Peek() - position;
                    direction.Normalize();

                    velocity = Vector2.Multiply(direction, speed);
                    position += velocity;
                }
            }
            else
                alive = false;
            if (currentHealth <= 0)
                alive = false;

            if (bounds.Intersects(level.Bounds))
            {
                status = VisibleStatus.Invisible;

            }
        }
        private void _InvokeStatusEvent()
        {
            if (_StatusEvent != null)
            {
                var status = new VisibleStatus()
                {
                    Status = _Status,
                    StartPosition = _Mesh.Center,
                    Speed = _Speed,
                    Direction = Direction,
                    Trun = _Trun,
                    SkillOffect = _SkillOffsetVector
                };
                this._StatusEvent.Invoke(status);

            }
        }
        void IVisible.QueryStatus()
        {
            var status = new VisibleStatus()
            {
                Status = _Status,
                StartPosition = _Mesh.Center,
                Speed = _Speed,
                Direction = Direction,
                Trun = _Trun,
                SkillOffect = _SkillOffsetVector
            };

            this._StatusEvent.Invoke(status);

            _BroadcastEquipEvent();
        }