iceball
iceball copied to clipboard
Alternative autoclimb
Well, no one has tried, we should at least make a mod.
I mean this: http://i.imgur.com/nxpXUEu.png
What he means is that steep hills should require jumping (even if they don't have 2-high steps anywhere - 45 degrees is still "steep")
So my interpretation is that, in old AoS this:
Would be a "difficult mountain to climb"
And people didn't like how their worldview on AoS changed when autoclimb was introduced because of this.
In this "alternative" implementation, autoclimb should only work on "non-difficult" hills so that players don't feel like this
Or in other words, so that this:
Is a "challenge" to climb.
Speaking of pressing space: http://www.newgrounds.com/portal/view/558516
And now back to the topic.
I'm not sure how to approach this algorithmically. The way autoclimb is implemented is that the bottom of the hitbox is raised by 1.01 blocks when autoclimb is enabled. For this to work, the usual MODE_AUTOCLIMB check would have to be replaced with some other check based on the floor around you, and possibly based on the velocity.
The general idea would be to trace back one "column" (using this.vx and this.vz) and measure the floor height, and if it's higher than or the same as the current floor height then allow autoclimb, otherwise disable it.
But of course as we know it's better to just hold crouch and spam space.
I take it that what's really wanted here is just slower assent and not necessarily jumping? If so, climbs could be increasingly slower depending on how close together in time they are. That seems like the best solution to me.
Also consider the side effects of making it punishing to travel up steeper hills.
The way autoclimb is implemented now is it multiplies your speed by a very low number (0.02 to be precise) when you climb. To handle what you're suggesting would require another "timer" variable to keep the max velocity or the acceleration lower for some length of time.
That's probably the easiest way to go about it.