Orb of Energy and Orb of Intensity.

This commit is contained in:
Jacob Mandelson 2022-08-27 12:43:22 -07:00
parent cc3065f204
commit 46872919ba
4 changed files with 18 additions and 7 deletions

View File

@ -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 "

View File

@ -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,

View File

@ -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);
}
}

View File

@ -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)