mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-11-22 08:34:50 +00:00
fixed some inconsistencies in how Orb of Speed works in shmup
This commit is contained in:
12
shmup.cpp
12
shmup.cpp
@@ -1428,7 +1428,7 @@ void movePlayer(monster *m, int delta) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
playerfire[cpid] = true;
|
playerfire[cpid] = true;
|
||||||
m->nextshot = curtime + (250 + 250 * players) * (bow::crossbow_mode() ? 4 : 1);
|
m->nextshot = curtime + (250 + 250 * players) * (bow::crossbow_mode() ? 4 : 1) / (items[itOrbSpeed] ? 2 : 1);
|
||||||
|
|
||||||
turncount++;
|
turncount++;
|
||||||
shootBullet(m);
|
shootBullet(m);
|
||||||
@@ -2600,6 +2600,8 @@ EX int pvp_delay = 2000;
|
|||||||
EX int count_pauses;
|
EX int count_pauses;
|
||||||
EX bool in_pause;
|
EX bool in_pause;
|
||||||
|
|
||||||
|
EX int speed_saving;
|
||||||
|
|
||||||
EX void turn(int delta) {
|
EX void turn(int delta) {
|
||||||
|
|
||||||
if(split_screen && subscreens::split( [delta] () { turn(delta); })) return;
|
if(split_screen && subscreens::split( [delta] () { turn(delta); })) return;
|
||||||
@@ -2653,6 +2655,11 @@ EX void turn(int delta) {
|
|||||||
collisions.clear();
|
collisions.clear();
|
||||||
|
|
||||||
curtime += delta;
|
curtime += delta;
|
||||||
|
if(items[itOrbSpeed]) {
|
||||||
|
curtime += speed_saving / 2;
|
||||||
|
speed_saving += delta;
|
||||||
|
curtime -= speed_saving / 2;
|
||||||
|
}
|
||||||
|
|
||||||
handleInput(delta);
|
handleInput(delta);
|
||||||
|
|
||||||
@@ -2763,7 +2770,7 @@ EX void turn(int delta) {
|
|||||||
if(items[itOrbBull]) for(int p=0; p<players; p++)
|
if(items[itOrbBull]) for(int p=0; p<players; p++)
|
||||||
if(bulltime[p] < curtime - 600) orbbull::gainBullPowers();
|
if(bulltime[p] < curtime - 600) orbbull::gainBullPowers();
|
||||||
|
|
||||||
if(!((items[itOrbSpeed]/players) & 1)) {
|
if(true) {
|
||||||
if(havewhat&HF_KRAKEN) kraken::attacks(), groupmove(moKrakenH, 0);
|
if(havewhat&HF_KRAKEN) kraken::attacks(), groupmove(moKrakenH, 0);
|
||||||
moveworms();
|
moveworms();
|
||||||
moveivy();
|
moveivy();
|
||||||
@@ -2952,6 +2959,7 @@ EX void clearMemory() {
|
|||||||
clearMonsters();
|
clearMonsters();
|
||||||
while(!traplist.empty()) traplist.pop();
|
while(!traplist.empty()) traplist.pop();
|
||||||
curtime = 0;
|
curtime = 0;
|
||||||
|
speed_saving = 0;
|
||||||
nextmove = 0;
|
nextmove = 0;
|
||||||
nextdragon = 0;
|
nextdragon = 0;
|
||||||
visibleAt = 0;
|
visibleAt = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user