diff --git a/classes.cpp b/classes.cpp index 12ec782b..9a2f0882 100644 --- a/classes.cpp +++ b/classes.cpp @@ -528,7 +528,7 @@ EX genderswitch_t genderswitch[NUM_GS] = { // --- items --- #if HDR -enum eOrbshape { osNone, osLove, osRanged, osOffensive, osFriend, osUtility, osDirectional, osWarping }; +enum eOrbshape { osNone, osLove, osRanged, osOffensive, osFriend, osUtility, osDirectional, osWarping, osFrog }; static const flagtype ZERO = 0; diff --git a/content.cpp b/content.cpp index 0f2442a4..57fac427 100644 --- a/content.cpp +++ b/content.cpp @@ -602,7 +602,7 @@ ITEM( 'o', 0xC0C0FF, "Orb of Air", itOrbAir, IC_ORB, ZERO | IF_RANGED, RESERVED, ) ITEM( '?', 0x802000, "Hypersian Rug", itPalace, IC_TREASURE, ZERO, RESERVED, osNone, "Nice, a hyperbolic rug! It will not fit very well on your flat Euclidean floor, but who cares?") -ITEM( 'o', 0x60A060, "Orb of the Frog", itOrbFrog, IC_ORB, ZERO | IF_RANGED, RESERVED, osRanged, +ITEM( 'o', 0x60A060, "Orb of the Frog", itOrbFrog, IC_ORB, ZERO | IF_RANGED, RESERVED, osFrog, "This Orb lets you jump to a place which is two cell away from you, in a single turn. " "You can jump over water, chasms and fire, but not over walls.") ITEM( '*', 0x800000, "Garnet", itFjord, IC_TREASURE, ZERO, RESERVED, osNone, "Vikings believe that garnets improve their strength.") @@ -784,7 +784,7 @@ ITEM( 'o', 0xC00040, "Orb of Recall", itOrbRecall, IC_ORB, ZERO, RESERVED, osNon ITEM( ']', 0x8080FF, "Dodecahedron", itDodeca, IC_TREASURE, ZERO, RESERVED, osNone, "These dodecahedra made of a mysterious material are the Reptiles' favorite toy." ) -ITEM( 'o', 0x8080FF, "Orb of Vaulting", itOrbDash, IC_ORB, ZERO | IF_RANGED, RESERVED, osRanged, +ITEM( 'o', 0x8080FF, "Orb of Vaulting", itOrbDash, IC_ORB, ZERO | IF_RANGED, RESERVED, osFrog, "This Orb allows you to jump over an adjacent monster, killing or stunning it. " "You can only vault in a roughly straight line. " "Target a cell on the other side to use it." @@ -837,7 +837,7 @@ ITEM( '!', 0x80FF80, "Sea Glass", itDock, IC_TREASURE, ZERO, RESERVED, osNone, N ITEM( '*', 0xBBCC99, "Chrysoberyl", itRuins, IC_TREASURE, ZERO, RESERVED, osNone, "Fragment of the past glory.") ITEM( '*', 0x80FF80, "Monopole", itMagnet, IC_TREASURE, ZERO, RESERVED, osNone, NODESCYET) ITEM( '!', 0xFF00FF, "Tasty Jelly", itSwitch, IC_TREASURE, ZERO, RESERVED, osNone, "A tasty byproduct of the Jelly Revolution.") -ITEM( 'o', 0x80FF80, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osNone, +ITEM( 'o', 0x80FF80, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osFrog, "This orb lets you pass through walls (one cell wide), and also through monsters, as long as they will not attack you in transit.") ITEM( 'o', 0xFFFF80, "Orb of Magnetism", itOrbMagnetism, IC_ORB, ZERO, RESERVED, osNone, NODESCYET) ITEM( 'o', 0x202020, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, diff --git a/geometry.cpp b/geometry.cpp index b2b9c296..40c9a755 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -168,6 +168,7 @@ hpcshape shEgg, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, shHeptaRing, shSpearRing, shLoveRing, + shFrogRing, shReserved1, shReserved2, shDaisy, shTriangle, shNecro, shStatue, shKey, shWindArrow, shGun, shFigurine, shTreat, diff --git a/graph.cpp b/graph.cpp index 6f17ffa0..9d10108f 100644 --- a/graph.cpp +++ b/graph.cpp @@ -715,6 +715,7 @@ EX hpcshape& orbshape(eOrbshape s) { case osUtility: return cgi.shGearRing; case osDirectional: return cgi.shSpearRing; case osWarping: return cgi.shHeptaRing; + case osFrog: return cgi.shFrogRing; default: return cgi.shRing; } } diff --git a/polygons.cpp b/polygons.cpp index 81471661..fa350851 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -538,6 +538,13 @@ void geometry_information::procedural_shapes() { hpcpush(ddi(i, orbsize * (i >= S42-6 && i <= S42+6 ?.36:.30)) * C0); hpcpush(ddi(0, orbsize * .25) * C0); + bshape(shFrogRing, PPR::ITEM); + RING(i) + hpcpush(ddi(i, orbsize * .25) * C0); + REVPRING(i) + hpcpush(ddi(i, orbsize * (((i >= S42-8 && i <= S42-2) || (i >= S42+2 && i <= S42+8)) ?.36:.30)) * C0); + hpcpush(ddi(0, orbsize * .25) * C0); + bshape(shSpearRing, PPR::ITEM); RING(i) hpcpush(ddi(i, orbsize * .25) * C0);