Example #1
0
        public override void Update(float deltaSeconds)
        {
            base.Update(deltaSeconds);

            Vector2 deltaToOwliver = Global.Game.Owliver.GetWorldSpatialData().Position - this.GetWorldSpatialData().Position;

            if (deltaToOwliver.X < 0)
            {
                Animation.ChangeActiveAnimation(SpriteAnimationType.Tankton_Idle_Left);
            }
            else if (deltaToOwliver.X > 0)
            {
                Animation.ChangeActiveAnimation(SpriteAnimationType.Tankton_Idle_Right);
            }
        }
Example #2
0
        private void OnCollisionWithTrigger(Fixture myFixture, Fixture theirFixture, Contact contact)
        {
            Debug.Assert(myFixture.Body == Trigger.Body);

            GameObject go = ((BodyComponent)theirFixture.UserData).Owner;

            foreach (KeyRingComponent keyRing in go.GetComponents <KeyRingComponent>())
            {
                if (keyRing[KeyTypeToUnlock] > 0)
                {
                    keyRing[KeyTypeToUnlock]--;

                    Trigger.Body.OnCollision -= OnCollisionWithTrigger;
                    Global.Game.World.RemoveBody(Trigger.Body);
                    Trigger.Body = null;

                    if (Animation != null)
                    {
                        Animation.ChangeActiveAnimation(SpriteAnimationType.Gate_Open);
                    }

                    Body blockingBody = InnerBodyComponent.Body;
                    if (blockingBody != null)
                    {
                        Global.Game.World.RemoveBody(blockingBody);
                        InnerBodyComponent.Body = null;
                    }

                    break;
                }
            }
        }
Example #3
0
        public override void Update(float deltaSeconds)
        {
            base.Update(deltaSeconds);

            if (Chaser != null && Chaser.IsHoming)
            {
                // Change the facing direction to the target.
                Vector2 myPosition     = Owner.GetWorldSpatialData().Position;
                Vector2 targetPosition = Chaser.Target.GetWorldSpatialData().Position;
                if (targetPosition.X < myPosition.X)
                {
                    Animation.ChangeActiveAnimation(AnimationType_Idle_Left);
                }
                else if (targetPosition.X > myPosition.X)
                {
                    Animation.ChangeActiveAnimation(AnimationType_Idle_Right);
                }
            }
        }
Example #4
0
        public override void Update(float deltaSeconds)
        {
            base.Update(deltaSeconds);

            // TODO(manu): This could be its own component (it's a recurring thing).
            if (Homing.IsHoming)
            {
                // Change the facing direction to the target.
                Vector2 myPosition     = this.GetWorldSpatialData().Position;
                Vector2 targetPosition = Homing.TargetSensor.CurrentMainTarget.Position;
                if (targetPosition.X < myPosition.X)
                {
                    Animation.ChangeActiveAnimation(SpriteAnimationType.Slurp_Idle_Left);
                }
                else if (targetPosition.X > myPosition.X)
                {
                    Animation.ChangeActiveAnimation(SpriteAnimationType.Slurp_Idle_Right);
                }
            }
        }
Example #5
0
        public void ChangeState(ref OwliverState newState)
        {
            OwliverState oldState = CurrentState;

            CurrentState = newState;

            OnStateChanged?.Invoke(oldState, newState);

            bool transferAnimationState = oldState.MovementMode == newState.MovementMode &&
                                          oldState.FacingDirection != newState.FacingDirection;

            SpriteAnimationType animType = GetAnimationType(ref newState);

            if (Animation.ChangeActiveAnimation(animType))
            {
                Console.WriteLine();
            }
        }