1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-10-18 06:30:41 +00:00

Frog comment improved

This commit is contained in:
Zeno Rogue 2024-10-11 15:52:06 +02:00
parent f46d551f13
commit d90dcdcff5
5 changed files with 23 additions and 10 deletions

View File

@ -479,6 +479,7 @@ static constexpr flagtype CF_FACE_UP = Flag(49);
static constexpr flagtype CF_FACE_SIDE = Flag(50); static constexpr flagtype CF_FACE_SIDE = Flag(50);
static constexpr flagtype CF_HIGH_THREAT = Flag(51); static constexpr flagtype CF_HIGH_THREAT = Flag(51);
static constexpr flagtype CF_SPAM = Flag(52); static constexpr flagtype CF_SPAM = Flag(52);
static constexpr flagtype CF_FROG = Flag(53);
enum eMonster { enum eMonster {
#define MONSTER(a,b,c,d,e,f,g,h) d, #define MONSTER(a,b,c,d,e,f,g,h) d,

View File

@ -1616,17 +1616,17 @@ WALL( '#', 0x00C000, "shrub", waShrub, WF_WALL | WF_HIGHWALL | WF_STDTREE | WF_
"A strange small tree that cannot be attacked with mundane weapons nor phased though. " "A strange small tree that cannot be attacked with mundane weapons nor phased though. "
"It can be vaulted over, though." "It can be vaulted over, though."
) )
MONSTER('F', 0x60A060, "Giant Frog", moFrog, CF_HIGH_THREAT, RESERVED, moFrog, MONSTER('F', 0x60A060, "Giant Frog", moFrog, CF_HIGH_THREAT | CF_FROG, RESERVED, moFrog,
"At first, you are shocked by the agility of this frog. Such a large creature " "At first, you are shocked by the agility of this frog. Such a large creature "
"should not be able to jump that quickly!\n\n" "should not be able to jump that quickly!\n\n"
"Then, you notice the green glow around its legs. This frog must be magical... " "Then, you notice the green glow around its legs. This frog must be magical... "
"it has sacrificed its swimming abilities for superfrog jumping powers." "it has sacrificed its swimming abilities for superfrog jumping powers."
) )
MONSTER('F', 0xFFFF80, "Yellow Frog", moPhaser, CF_HIGH_THREAT, RESERVED, moPhaser, MONSTER('F', 0xFFFF80, "Yellow Frog", moPhaser, CF_HIGH_THREAT | CF_FROG, RESERVED, moPhaser,
"A slightly transparent yellow frog. It has mastered the magical power of phasing through solid " "A slightly transparent yellow frog. It has mastered the magical power of phasing through solid "
"obstacles such as rock." "obstacles such as rock."
) )
MONSTER('F', 0x8080FF, "Blue Frog", moVaulter, CF_HIGH_THREAT, RESERVED, moVaulter, MONSTER('F', 0x8080FF, "Blue Frog", moVaulter, CF_HIGH_THREAT | CF_FROG, RESERVED, moVaulter,
"This frog is able to vault over the shrubs in the Frog Park, destroying the shrub in the process. " "This frog is able to vault over the shrubs in the Frog Park, destroying the shrub in the process. "
"While it can also vault over monsters, it will never hurt the other frogs!" "While it can also vault over monsters, it will never hurt the other frogs!"
) )

View File

@ -112,6 +112,7 @@ MONFLAGCHECK(isRatling, flag & CF_RATLING)
MONFLAGCHECK(isGhostMover, flag & CF_GHOSTMOVER) MONFLAGCHECK(isGhostMover, flag & CF_GHOSTMOVER)
MONFLAGCHECK(isPowerMonster, flag & CF_POWER) MONFLAGCHECK(isPowerMonster, flag & CF_POWER)
MONFLAGCHECK(hasFacing, flag & CF_FACING) MONFLAGCHECK(hasFacing, flag & CF_FACING)
MONFLAGCHECK(isFrog, flag & CF_FROG)
ITEMFLAGCHECK(isElementalShard, flag & IF_SHARD) ITEMFLAGCHECK(isElementalShard, flag & IF_SHARD)
ITEMFLAGCHECK(itemBurns, !(flag & IF_FIREPROOF)) ITEMFLAGCHECK(itemBurns, !(flag & IF_FIREPROOF))

View File

@ -705,9 +705,12 @@ EX string generateHelpForMonster(eMonster m) {
} }
eItem it = frog_power(m); eItem it = frog_power(m);
if(it) if(it) {
s += XLAT("\n\nThis Frog uses the power of %the1. You get 5 charges yourself for killing it.", it); s += XLAT("\n\nThis Frog uses the power of %the1. You get 5 charges yourself for killing it.", it);
s += XLAT("\n\nFrogs move first, and after they use their jumping power, they stun adjacent non-frog monsters which are not friendly to the player for 2 turns.");
}
if(m == moBat || m == moEagle) if(m == moBat || m == moEagle)
s += XLAT("\n\nFast flying creatures may attack or go against gravity only in their first move.", m); s += XLAT("\n\nFast flying creatures may attack or go against gravity only in their first move.", m);

View File

@ -104,6 +104,13 @@ EX void moveEffect(const movei& mi, eMonster m) {
tortoise::move_baby(cf, ct); tortoise::move_baby(cf, ct);
} }
if(isFrog(m) && !isNeighbor(cf, ct)) {
forCellEx(c1, ct) if(c1->monst && !isFrog(c1->monst) && !isFriendly(c1->monst)) {
c1->stuntime = min(c1->stuntime + 2, 7);
checkStunKill(c1);
}
}
#if CAP_COMPLEX2 #if CAP_COMPLEX2
if(isDie(m) && mi.proper()) if(isDie(m) && mi.proper())
dice::roll(mi); dice::roll(mi);
@ -2050,6 +2057,13 @@ EX void movemonsters() {
specialMoves(); specialMoves();
DEBB(DF_TURN, ("jumpers"));
if(havewhat & HF_JUMP) {
groupmove(moFrog, 0);
groupmove(moVaulter, 0);
groupmove(moPhaser, 0);
}
DEBB(DF_TURN, ("ghosts")); DEBB(DF_TURN, ("ghosts"));
moveghosts(); moveghosts();
@ -2075,12 +2089,6 @@ EX void movemonsters() {
if(havewhat & HF_EAGLES) groupmove(moEagle, MF_NOATTACKS | MF_ONLYEAGLE); if(havewhat & HF_EAGLES) groupmove(moEagle, MF_NOATTACKS | MF_ONLYEAGLE);
DEBB(DF_TURN, ("eagles")); DEBB(DF_TURN, ("eagles"));
if(havewhat & HF_REPTILE) groupmove(moReptile, 0); if(havewhat & HF_REPTILE) groupmove(moReptile, 0);
DEBB(DF_TURN, ("jumpers"));
if(havewhat & HF_JUMP) {
groupmove(moFrog, 0);
groupmove(moVaulter, 0);
groupmove(moPhaser, 0);
}
DEBB(DF_TURN, ("air")); DEBB(DF_TURN, ("air"));
if(havewhat & HF_AIR) { if(havewhat & HF_AIR) {
airmap.clear(); airmap.clear();