From 3cfa608c4ab0caade0655ae22cb2ea9e67793c19 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Wed, 26 Feb 2020 01:39:12 +0100 Subject: [PATCH] implemented Rusalka and Pike --- environment.cpp | 2 +- flags.cpp | 1 + pcmove.cpp | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/environment.cpp b/environment.cpp index e4bebefc..9052e64f 100644 --- a/environment.cpp +++ b/environment.cpp @@ -421,7 +421,7 @@ EX void bfs() { else if(c2->monst == moAltDemon) havewhat |= HF_ALT; else if(c2->monst == moHexDemon) havewhat |= HF_HEXD; else if(c2->monst == moMonk) havewhat |= HF_MONK; - else if(c2->monst == moShark || c2->monst == moCShark) havewhat |= HF_SHARK; + else if(c2->monst == moShark || c2->monst == moCShark || among(c2->monst, moRusalka, moYellowSkipper, moPike)) havewhat |= HF_SHARK; else if(c2->monst == moAirElemental) havewhat |= HF_AIR, airmap.push_back(make_pair(c2,0)); } diff --git a/flags.cpp b/flags.cpp index 4d9d5d8d..17cca831 100644 --- a/flags.cpp +++ b/flags.cpp @@ -268,6 +268,7 @@ EX bool survivesWater(eMonster m) { isWorm(m) || isIvy(m) || isDragon(m) || isKraken(m) || m == moMutant || m == moFriendlyIvy || checkOrb(m, itOrbFish) || + among(m, moYellowSkipper, moPike, moRusalka) || m == moTortoise; // Tortoises and Ivies survive, but don't go through water } diff --git a/pcmove.cpp b/pcmove.cpp index 47d2283f..eff2a1e0 100644 --- a/pcmove.cpp +++ b/pcmove.cpp @@ -876,6 +876,10 @@ bool pcmove::attack() { wandering_jiangshi++; } attackMonster(c2, attackflags | AF_MSG, moPlayer); + if(m == moRusalka) { + if(cwt.at->wall == waNone) cwt.at->wall = waShallow; + else if(cwt.at->wall == waShallow) cwt.at->wall = waDeepWater; + } // salamanders are stunned for longer time when pushed into a wall if(c2->monst == moSalamander && (mip.t == c2 || !mip.t)) c2->stuntime = 10; if(!c2->monst) produceGhost(c2, m, moPlayer);