iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

Alternative autoclimb #103

Open dany-on-demand opened 9 years ago

dany-on-demand commented 9 years ago

Well, no one has tried, we should at least make a mod.

I mean this: http://i.imgur.com/nxpXUEu.png

BR- commented 9 years ago

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")

dany-on-demand commented 9 years ago

So my interpretation is that, in old AoS this:

difficult mountain

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 shit

Or in other words, so that this:

wow Is a "challenge" to climb.

iamgreaser commented 9 years ago

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.

Nolan-O commented 9 years ago

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.

iamgreaser commented 9 years ago

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.