mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-11 09:50:34 +00:00
easier Chaos Mode + Inv
This commit is contained in:
parent
687b19df43
commit
c7620974a1
16
game.cpp
16
game.cpp
@ -2566,7 +2566,7 @@ bool attackMonster(cell *c, flagtype flags, eMonster killer) {
|
||||
}
|
||||
}
|
||||
|
||||
if(tk < 10 && ntk >= 10 && in_full_game() && !inv::on)
|
||||
if(tk < 10 && ntk >= 10 && in_full_game() && !big_unlock)
|
||||
addMessage(XLAT("Good to know that your fighting skills serve you well in this strange world."));
|
||||
|
||||
if(tk < R100/2 && ntk >= R100/2 && in_full_game())
|
||||
@ -6599,9 +6599,9 @@ void movecost(cell* from, cell *to, int phase) {
|
||||
if(isHaunted(from->land) && !isHaunted(to->land) && (phase & 2)) {
|
||||
updateHi(itLotus, truelotus = items[itLotus]);
|
||||
if(items[itLotus] >= 1) achievement_gain("LOTUS1");
|
||||
if(items[itLotus] >= (inv::on ? 25 : 10)) achievement_gain("LOTUS2");
|
||||
if(items[itLotus] >= (inv::on ? 50 : 25)) achievement_gain("LOTUS3");
|
||||
if(items[itLotus] >= 50 && !inv::on) achievement_gain("LOTUS4");
|
||||
if(items[itLotus] >= (big_unlock ? 25 : 10)) achievement_gain("LOTUS2");
|
||||
if(items[itLotus] >= (big_unlock ? 50 : 25)) achievement_gain("LOTUS3");
|
||||
if(items[itLotus] >= 50 && !big_unlock) achievement_gain("LOTUS4");
|
||||
achievement_final(false);
|
||||
}
|
||||
|
||||
@ -6713,13 +6713,13 @@ void collectMessage(cell *c2, eItem which) {
|
||||
else if(which == itPalace && items[itPalace] == U5-1 && !specialmode && isLandIngame(laDungeon)) {
|
||||
addMessage(XLAT("The rug depicts a man in a deep dungeon, unable to leave."));
|
||||
}
|
||||
else if(which == itFeather && items[itFeather] == 25-1 && !specialmode && inv::on)
|
||||
else if(which == itFeather && items[itFeather] == 25-1 && !specialmode && inv::on && !chaosmode)
|
||||
addMessage(XLAT("You feel the presence of free saves on the Crossroads."));
|
||||
else if(which == itHell && items[itHell] == 25-1 && !specialmode && inv::on)
|
||||
else if(which == itHell && items[itHell] == 25-1 && !specialmode && inv::on && !chaosmode)
|
||||
addMessage(XLAT("You feel the Orbs of Yendor nearby..."));
|
||||
else if(which == itHell && items[itHell] == 50-1 && !specialmode && inv::on)
|
||||
else if(which == itHell && items[itHell] == 50-1 && !specialmode && inv::on && !chaosmode)
|
||||
addMessage(XLAT("You feel the Orbs of Yendor in the Crossroads..."));
|
||||
else if(which == itHell && items[itHell] == 100-1 && !specialmode && inv::on)
|
||||
else if(which == itHell && items[itHell] == 100-1 && !specialmode && inv::on && !chaosmode)
|
||||
addMessage(XLAT("You feel the Orbs of Yendor everywhere..."));
|
||||
else if(which == itBone && items[itBone] % 25 == 24 && !specialmode && inv::on)
|
||||
addMessage(XLAT("You have gained an offensive power!"));
|
||||
|
22
hyper.h
22
hyper.h
@ -774,27 +774,29 @@ inline cellwalker operator+ (heptspin hs, cth_t) { return cellwalker(hs.at->c7,
|
||||
|
||||
#define BUGCOLORS 3
|
||||
|
||||
#define big_unlock (inv::on && !chaosmode)
|
||||
|
||||
// land completion for shared unlocking
|
||||
#define U5 (inv::on ? 10 : 5)
|
||||
#define U5 (big_unlock ? 10 : 5)
|
||||
// land completion for advanced unlocking
|
||||
#define U10 (inv::on ? 25 : 10)
|
||||
#define U10 (big_unlock ? 25 : 10)
|
||||
|
||||
// land completion
|
||||
#define R10 (inv::on ? 50 : 10)
|
||||
#define R10 (big_unlock ? 50 : 10)
|
||||
// intermediate lands
|
||||
#define R30 (inv::on ? 100 : 30)
|
||||
#define R30 (big_unlock ? 100 : 30)
|
||||
// advanced lands
|
||||
#define R60 (inv::on ? 200 : 60)
|
||||
#define R60 (big_unlock ? 200 : 60)
|
||||
// advanced lands II
|
||||
#define R90 (inv::on ? 300 : 90)
|
||||
#define R90 (big_unlock ? 300 : 90)
|
||||
// Crossroads IV
|
||||
#define R200 (inv::on ? 800 : 200)
|
||||
#define R200 (big_unlock ? 800 : 200)
|
||||
// Crossroads V
|
||||
#define R300 (inv::on ? 1200 : 300)
|
||||
#define R300 (big_unlock ? 1200 : 300)
|
||||
// kill types for Dragon Chasms
|
||||
#define R20 (inv::on ? 30 : 20)
|
||||
#define R20 (big_unlock ? 30 : 20)
|
||||
// kill count for Graveyard/Hive
|
||||
#define R100 (inv::on ? 500 : 100)
|
||||
#define R100 (big_unlock ? 500 : 100)
|
||||
|
||||
string XLAT(string x); // translate the sentence x
|
||||
string XLATN(string x); // translate the sentence x
|
||||
|
@ -123,11 +123,12 @@ namespace hr { namespace inv {
|
||||
}
|
||||
else {
|
||||
bool nextfound = false;
|
||||
if(qty >= 10) remaining[o]++;
|
||||
int fst = (chaosmode ? 5 : 10);
|
||||
if(qty >= fst) remaining[o]++;
|
||||
else {
|
||||
if(whichorbinfo == o) {
|
||||
if(it == itHyperstone) {
|
||||
extra += extraline(it, "10");
|
||||
extra += extraline(it, its(fst));
|
||||
}
|
||||
else {
|
||||
orbinfoline += XLAT("Unlocked by: %1 in %2", it, landof(it));
|
||||
@ -136,9 +137,9 @@ namespace hr { namespace inv {
|
||||
}
|
||||
nextfound = true;
|
||||
}
|
||||
int last = 10;
|
||||
int last = fst;
|
||||
for(int k=0; k<30 || !nextfound; k++) {
|
||||
int maxstep = 15 + 5 * k;
|
||||
int maxstep = chaosmode ? 10 + 2 * k : 15 + 5 * k;
|
||||
if(o == itOrbMirror)
|
||||
maxstep += 5 * (k-1) * (k-2);
|
||||
else
|
||||
@ -219,10 +220,11 @@ namespace hr { namespace inv {
|
||||
for(auto& oi: orbinfos) {
|
||||
if(oi.flags & orbgenflags::OSM_AT10) {
|
||||
eItem it = treasureType(oi.l);
|
||||
if(items[it] >= 10) {
|
||||
int fst = chaosmode ? 5 : 10;
|
||||
if(items[it] >= fst) {
|
||||
remaining[oi.orb]++;
|
||||
}
|
||||
if(whichorbinfo == oi.orb) extra += extraline(it, "10");
|
||||
if(whichorbinfo == oi.orb) extra += extraline(it, its(fst));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user