1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-10-18 14:35:47 +00:00

bringris:: better timing in expert mode

This commit is contained in:
Zeno Rogue 2024-08-24 15:53:28 +02:00
parent ccb3284d78
commit a9c0277006

View File

@ -674,7 +674,8 @@ bool shape_conflict(cellwalker cw) {
} }
ld current_move_time_limit() { ld current_move_time_limit() {
return 50000 * pow(.9, completed) + 10000. / (1 + completed); // return 50000 * pow(.9, completed) + 10000. / (1 + completed);
return 3500 * pow(.995, completed * isize(level));
} }
int turn_animation = 500; int turn_animation = 500;
@ -849,13 +850,17 @@ void drop() {
at = fall; at = fall;
draw_shape(); draw_shape();
} }
move_at = ticks + current_move_time_limit();
if(solnil) { if(solnil) {
pView = pView * currentmap->adj(cwt.at, down_dir()); pView = pView * currentmap->adj(cwt.at, down_dir());
when_t = ticks + turn_animation; when_t = ticks + turn_animation;
} }
} }
void auto_drop() {
drop();
move_at = ticks + current_move_time_limit();
}
void fulldrop() { void fulldrop() {
remove_shape(); remove_shape();
cellwalker fall = at; cellwalker fall = at;
@ -871,6 +876,7 @@ void fulldrop() {
// println(hlog, "dropped by ", no); // println(hlog, "dropped by ", no);
fall = last; fall = last;
at = fall; at = fall;
move_at = ticks + current_move_time_limit();
draw_shape(); draw_shape();
if(!no) fallen(); if(!no) fallen();
} }
@ -1234,7 +1240,7 @@ void draw_screen(int xstart, bool show_next) {
disappear_lines(); disappear_lines();
if(ticks >= move_at && state == tsFalling && pro_game) { if(ticks >= move_at && state == tsFalling && pro_game) {
drop(); auto_drop();
} }
View = pView; View = pView;