Ejemplo n.º 1
0
    // public override bool IsRiding(Solid solid)
    // {
    //  return Bottom == solid.Top;
    // }

    // public void NodeHandler(System.Xml.XmlNode entity)
    // {
    // }

    public override void _PhysicsProcess(float delta)
    {
        base._PhysicsProcess(delta);

        InputController.Update();
        // if(Keyboard.Space.Pressed)
        // {
        //  Console.WriteLine(player_controller.current_state.ToString());
        // }

        PlayerStateController.Update();
        MovementInfo.Update();

        if (InputController.Select())
        {
            Abilities.GiveAllAbilities();
        }

        UpdateCamera();

        if (MovementInfo.LeftBox)
        {
            foreach (PhysicsBody2D body in BoxL.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup("enemy")))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
            }
        }
        if (MovementInfo.RightBox)
        {
            foreach (PhysicsBody2D body in BoxR.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup("enemy")))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
            }
        }
        if (MovementInfo.BottomBox)
        {
            foreach (PhysicsBody2D body in BoxB.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup("enemy")))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
            }
        }
    }
Ejemplo n.º 2
0
        public override void Update(GameTime time)
        {
            base.Update(time);

            if (Keyboard.Space.Pressed)
            {
                Console.WriteLine(player_controller.current_state.ToString());
            }

            player_controller.Update(time);
            MovementInfo.Update(time);

            UpdateCamera();

            if (Controller.Select())
            {
                OnAirDashPickup(null);
                OnAirJumpPickup(null);
                OnDashPickup(null);
                OnJumpPickup(null);
            }
        }
Ejemplo n.º 3
0
    // public override bool IsRiding(Solid solid)
    // {
    //  return Bottom == solid.Top;
    // }

    // public void NodeHandler(System.Xml.XmlNode entity)
    // {
    // }

    public override void _PhysicsProcess(float delta)
    {
        base._PhysicsProcess(delta);

        InputController.Update();
        // if(Keyboard.Space.Pressed)
        // {
        //  Console.WriteLine(player_controller.current_state.ToString());
        // }

        PlayerStateController.Update();
        MovementInfo.Update();

        if (InputController.Select())
        {
            _overlord.Call("Reset");
        }

        if (MovementInfo.LeftBox)
        {
            foreach (PhysicsBody2D body in BoxL.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup(HitGroups.Enemy)))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
                _camera.Call("Shake", .1f, 100, 10);
                Overlord.OwlOverlord.PlaySound("Hit4", Position);

                // if (body.HasMethod("OnDamage"))
                //  body.Call("OnDamage");
                // else if (body.HasMethod("on_damage"))
                //  body.Call("on_damage");
            }
            foreach (var area in BoxL.GetOverlappingAreas().OfType <Area2D>().Where(x => x.IsInGroup(HitGroups.Bullet)))
            {
                _camera.Call("Shake", .1f, 100, 10);
                area.Call("Deflect");
            }
        }
        if (MovementInfo.RightBox)
        {
            foreach (PhysicsBody2D body in BoxR.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup(HitGroups.Enemy)))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
                _camera.Call("Shake", .1f, 100, 10);
                Overlord.OwlOverlord.PlaySound("Hit4", Position);
            }
            foreach (var area in BoxR.GetOverlappingAreas().OfType <Area2D>().Where(x => x.IsInGroup(HitGroups.Bullet)))
            {
                _camera.Call("Shake", .1f, 100, 10);
                area.Call("Deflect");
            }
        }
        if (MovementInfo.BottomBox)
        {
            foreach (PhysicsBody2D body in BoxB.GetOverlappingBodies().OfType <PhysicsBody2D>().Where(x => x.IsInGroup(HitGroups.Enemy)))
            {
                body.ShapeOwnerSetDisabled(body.ShapeFindOwner(0), true);
                body.QueueFree();
                _camera.Call("Shake", .1f, 100, 10);
                Overlord.OwlOverlord.PlaySound("Hit4", Position);
            }
            foreach (var area in BoxB.GetOverlappingAreas().OfType <Area2D>().Where(x => x.IsInGroup(HitGroups.Bullet)))
            {
                _camera.Call("Shake", .1f, 100, 10);
                area.Call("Deflect");
            }
        }

        invulnerabilityFrames = Math.Max(--invulnerabilityFrames, 0);
    }