From 064468b4802f524d6ceadc0c974a1f53028658df Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 18:48:21 -0700 Subject: [PATCH] Added bodies to the Orb of Slaying and Orb of Undeath. --- content.cpp | 6 +++--- geometry.cpp | 2 +- graph.cpp | 11 +++++++++++ polygons.cpp | 2 ++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/content.cpp b/content.cpp index 6017fb74..c8c41058 100644 --- a/content.cpp +++ b/content.cpp @@ -478,7 +478,7 @@ ITEM( 'o', 0x8080FF, "Orb of Winter", itOrbWinter, IC_ORB, ZERO | IF_FIREPROOF | "This orb can be used to invoke a wall of ice. It also protects you from fires.") ITEM( 'o', 0xFF6060, "Orb of Speed", itOrbSpeed, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osMovement, "This orb can be used to move faster for some time.") -ITEM( 'o', 0x90B090, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend, +ITEM( 'o', 0x306000, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend, "This orb can be used to summon friendly golems. It is used instantly when you pick it up.") ITEM( 'o', 0x60D760, "Orb of Shielding", itOrbShield, IC_ORB, ZERO | IF_PROTECTION | IF_EMPATHY, RESERVED, osProtective, "This orb can protect you from damage.") @@ -816,7 +816,7 @@ ITEM( '*', 0x40E0D0, "Turquoise", itHunting, IC_TREASURE, ZERO, RESERVED, osNone ITEM( '*', 0x009090, "Forgotten Relic", itBlizzard, IC_TREASURE, ZERO, RESERVED, osNone, blizzarddesc) ITEM( '(', 0xFFE080, "Ancient Weapon", itTerra, IC_TREASURE, ZERO, RESERVED, osNone, "This ancient weapon is beautifully encrusted with precious gems, but you prefer your own -- it is much lighter.") -ITEM( 'o', 0x307080, "Orb of Slashing", itOrbSide1, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, +ITEM( 'o', 0x00FF00, "Orb of Slashing", itOrbSide1, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "Whenever you attack with this Orb, you also hit the monsters adjacent both to you and the monster you originally attacked.") ITEM( 'o', 0x30A080, "Orb of the Triangle", itOrbSide2, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "Whenever you attack with this Orb, you also hit the monsters adjacent to you which are neither adjacent nor opposite to the monster " @@ -840,7 +840,7 @@ ITEM( 'o', 0xFFFF80, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osF "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, osUtility, "This orb makes you immediately pickup all the items on adjacent cells.") -ITEM( 'o', 0x202020, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, +ITEM( 'o', 0x20FF20, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "This Orb lets you defeat Raiders and other tough single-cell monsters in melee." ) ITEM( '*', 0xFFA860, "Tiger's Eye", itBrownian, IC_TREASURE, ZERO, RESERVED, osNone, diff --git a/geometry.cpp b/geometry.cpp index f44781ce..cb5612a8 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -295,7 +295,7 @@ hpcshape shFemaleBody, shFemaleHair, shFemaleDress, shWitchDress, shWitchHair, shBeautyHair, shFlowerHair, shFlowerHand, shSuspenders, shTrophy, shBugBody, shBugArmor, shBugLeg, shBugAntenna, - shPickAxe, shPike, shFlailBall, shFlailTrunk, shFlailChain, shHammerHead, + shPickAxe, shPike, shFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, shBook, shBookCover, shGrail, shBoatOuter, shBoatInner, shCompass1, shCompass2, shCompass3, shKnife, shTongue, shFlailMissile, shTrapArrow, diff --git a/graph.cpp b/graph.cpp index 66a585dd..b43969ee 100644 --- a/graph.cpp +++ b/graph.cpp @@ -804,7 +804,9 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbAir) return 0xFFFFFF; if(it == itOrbUndeath) return minf[moFriendlyGhost].color; if(it == itOrbRecall) return 0x101010; + if(it == itOrbLife) return 0x90B090; if(it == itOrbSlaying) return 0xFF0000; + if(it == itOrbSide1) return 0x307080; return iinf[it].color; } @@ -1074,6 +1076,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio); queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio); } + else if (it == itOrbUndeath) { + dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + queuepolyat(Vit, cgi.shMiniGhost, dark, prio); + queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio); + } + else if (it == itOrbSlaying) { + queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); + queuepolyat(Vit, cgi.shSmallHammerHead, dark*2, prio); + } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : (it == itOrbSide1) ? cgi.shSmallPSword : diff --git a/polygons.cpp b/polygons.cpp index c28bc8b3..f469532a 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1463,8 +1463,10 @@ void geometry_information::prepare_shapes() { bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); + bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 152); bshape(shFlailChain, PPR::MONSTER_SUBWPN, scalefactor, 153); bshape(shHammerHead, PPR::MONSTER_WPN, scalefactor, 376); + bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/2, 376); // bshape(shScratch, 17, scalefactor, 156); bshape(shSkeletonBody, PPR::MONSTER_BODY, scalefactor, 157); bshape(shSkull, PPR::MONSTER_HEAD, scalefactor, 158);