diff --git a/content.cpp b/content.cpp index a442f75c..0d127144 100644 --- a/content.cpp +++ b/content.cpp @@ -706,7 +706,7 @@ ITEM( 'o', 0xFFFF80, "Orb of the Warp", itOrb37, IC_ORB, ZERO, RESERVED, osWarpi "This Orb creates a warped zone of radius 5 around you, " "and also allows you to move diagonally in warped zones." ) -ITEM( 'o', 0xFFFF80, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility, +ITEM( 'o', 0x8B4513, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility, "This Orb halves the power usage of orbs which cost some " "charges with each activation. It even affects the " "one-shot orbs such as Flash or Teleport. If such an activation " diff --git a/geometry.cpp b/geometry.cpp index 400107d6..d0779d9a 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -253,13 +253,13 @@ hpcshape shTriheptaSpecial[14], shCross, shGiantStar[2], shLake, shMirror, shHalfFloor[6], shHalfMirror[3], - shGem[2], shStar, shDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shRing, + shGem[2], shStar, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shTinyBird, shTinyShark, shEgg, - shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, shHeptaRing, - shSpearRing, shLoveRing, - shFrogRing, - shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, shReserved4, shMoonDisk, + shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, + shHeptaRing, shSpearRing, shLoveRing, shFrogRing, + shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, + shReserved4, shMoonDisk, shDaisy, shTriangle, shNecro, shStatue, shKey, shWindArrow, shGun, shFigurine, shTreat, diff --git a/graph.cpp b/graph.cpp index 81b4d3ab..66f4c5b1 100644 --- a/graph.cpp +++ b/graph.cpp @@ -807,6 +807,8 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSlaying) return 0xFF0000; if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; + //if(it == itOrbEnergy) return 0x8B4513; + if(it == itOrbEnergy) return 0xFFFF80; return iinf[it].color; } @@ -1083,7 +1085,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int } else if (it == itOrbSlaying) { queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); - queuepolyat(Vit, cgi.shSmallHammerHead, dark*2, prio); + queuepolyat(Vit, cgi.shSmallHammerHead, col, prio); } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : @@ -1096,10 +1098,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbMorph) ? cgi.shDiskS : //(it == itOrbDiscord) ? cgi.shDiskM : (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : + (it == itOrbEnergy) ? cgi.shHalfDisk : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) queuepolyat(Vit*Mirror, shape, dark, prio); + if (it == itOrbEnergy) + queuepolyat(Vit*Mirror, shape, col, prio); + if (it == itOrbIntensity) + queuepolyat(Vit, cgi.shDiskM, 0x80, prio); } } diff --git a/polygons.cpp b/polygons.cpp index 4a89918f..1d0a1cdb 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -570,6 +570,10 @@ void geometry_information::procedural_shapes() { for(int i=0; i<=S84; i+=SD3) hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shHalfDisk, PPR::ITEM); + for(int i=0; i<=S84/2; i+=SD3) + hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shMoonDisk, PPR::ITEM); for(int i=0; i<=S84; i+=SD3) if(i <= S84 * 2 / 3)