diff --git a/game.cpp b/game.cpp index da47803f..1d37fd56 100644 --- a/game.cpp +++ b/game.cpp @@ -7308,6 +7308,8 @@ bool monsterPushable(cell *c2) { return (c2->monst != moFatGuard && !(isMetalBeast(c2->monst) && c2->stuntime < 2) && c2->monst != moTortoise && c2->monst != moTerraWarrior && c2->monst != moVizier); } +bool got_survivalist; + bool movepcto(int d, int subdir, bool checkonly) { if(d >= 0 && !checkonly && subdir != 1 && subdir != -1) printf("subdir = %d\n", subdir); global_pushto = NULL; @@ -7905,8 +7907,8 @@ bool movepcto(int d, int subdir, bool checkonly) { achievement_gain("WHIRL1"); } - if(items[itLotus] >= 25 && !isHaunted(cwt.at->land) && survivalist) { - survivalist = false; + if(items[itLotus] >= 25 && !isHaunted(cwt.at->land) && survivalist && !got_survivalist) { + got_survivalist = true; achievement_gain("SURVIVAL"); } diff --git a/system.cpp b/system.cpp index 7ce5ece8..4ce64ce3 100644 --- a/system.cpp +++ b/system.cpp @@ -268,6 +268,7 @@ void initgame() { timerghost = true; truelotus = 0; survivalist = true; + got_survivalist = false; #if CAP_INV if(inv::on) inv::init(); #endif