GDevelop-extensions icon indicating copy to clipboard operation
GDevelop-extensions copied to clipboard

New extension: AdvancedWallClimb

Open github-actions[bot] opened this issue 1 year ago • 4 comments

Description

This extension has everything you need to add Celeste-Inspired wall climbing mechanics into your platformer game. Wall Jump, Climb Walls with Customizable options, like auto climb, press once to climb, and hold to climb!

How to use the extension

Add the AdvancedWallClimb behavior to your Object(s) to use the Conditions and Actions for this Extension. This extension requires that you first add the platforming character behavior first. You can further customize your climbing type, climbing key, and objects point to use in the Behavior Section.

Note: You need to add a "Point" to the object wherever you'd want the collision for the grab trigger. Name it anything you'd like, and set that point in the Behavior Section.

Once that is configured, you are ready to use all the actions for that object.

Without further setup, the extension is ready to use! Alternatively, use our extensive condition and action options to refine and customize your climb speed, wall jumps, and other useful settings.

Checklist

  • [X] I've followed all of the best practices.
  • [X] I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
  • [X] I am aware that the extension may be updated by anyone, and do not need my explicit consent to do so.

What tier of review do you aim for your extension?

Reviewed

Example file

ProjectExample.zip

Extension file

AdvancedWallClimb.zip

github-actions[bot] avatar Feb 23 '24 20:02 github-actions[bot]

Thank you for submitting an extension.

There is an existing extension that has wall jump feature. Have you considered to make an update for it? https://wiki.gdevelop.io/gdevelop5/extensions/advanced-jump/

D8H avatar Mar 01 '24 22:03 D8H

Thank you for submitting an extension.

There is an existing extension that has wall jump feature. Have you considered to make an update for it? https://wiki.gdevelop.io/gdevelop5/extensions/advanced-jump/

The wall jump feature in this extension is necessary for a different use-case. The Wall jump features are not the same- to my understanding. The jump mechanic in this extension only allows for an "Auto Jump" once the climb point has reached the end of its collision or for a singular jump from a wall after climbing (Defined as having the ability to hold onto the wall and move up or down via control input. ) and introduces a duration timer for the "stamina" or wall hold time.

While similar, I don't know that the game-feel for these two applications are necessary to combine, but you can use both extensions without issue*

I believe I use it in the example upload.

Down2EarthGG avatar Mar 02 '24 06:03 Down2EarthGG

I have an update for the extension I would like to add. @D8H Not sure where to put them, so- here we are!

AdvancedWallClimb.zip Example Project.zip

A Discord user found an error:

Patch Notes: Advanced Wall Climbing V1.0.1

  • Fixed: extension name changed borked internal code.
  • Cleaned up some unclear sections
  • responded to community request

All the best

Down2EarthGG avatar Mar 05 '24 19:03 Down2EarthGG

A few things from a quick check:

  • Generated code should never be called.

    let Climbable = gdjs.evtsExt__AdvancedWallClimb__GetClimbableNames.func(runtimeScene);
    

    Either:

    • Declare the function in JS to call it
    • Call it from events and pass the result by parameter
  • If you need to add a state on the object, you should use the extension namespace here too to avoid collision.

    const instance = objects[0];
    instance.CanClimb = true;
    instance.Climbed = false;
    

D8H avatar Mar 07 '24 00:03 D8H