1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-06-22 05:03:19 +00:00

easier Chaos Mode + Inv

This commit is contained in:
Zeno Rogue 2019-06-17 10:13:08 +02:00
parent 687b19df43
commit c7620974a1
3 changed files with 28 additions and 24 deletions

View File

@ -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
View File

@ -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

View File

@ -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));
}
}
}