/*
*Code Information: I find this command quite useful, it reveals
*important information which pertains to the player invoking it.
*do_status was written by: Taon "Dustan Gunn", for use on 6Dragons
*mud. This function is still currently under major construction. -Taon
*Note: This isnt the final information header, just using it to
*keep those with current shell access a little informed.
*/
#include "h/mud.h"
//I intend on cleaning up the format once finished. -Taon
void do_status(CHAR_DATA *ch, char *argument)
{
if(IS_NPC(ch) && !xIS_SET(ch->act, ACT_BEASTPET))
return;
if(ch->position == POS_SLEEPING)
{
send_to_char("Can't check status while sleeping!\r\n", ch);
return;
}
send_to_char("\r\n", ch);
if(!IS_BLIND(ch))
{
send_to_char("\r\n&W-------------------&B[&D &i&W&uStatus&D&D&D &B]&D&W---------------------&D\r\n\r\n", ch);
}
else
{
send_to_char("\r\nStatus\r\n", ch);
}
send_to_char("&WHunger&D: ", ch);
if(xIS_SET(ch->act, ACT_BEASTPET))
{
CHAR_DATA *master = NULL;
if(ch->master)
master = ch->master;
if(!master)
return;
if(master->pcdata->pethungry <= 99)
send_to_char("&OYou're STARVING to death!!!&D\r\n", ch);
else if(master->pcdata->pethungry <= 269 && master->pcdata->pethungry >= 100)
send_to_char("&OYour getting very hungry!&D\r\n", ch);
else if(master->pcdata->pethungry <= 279 && master->pcdata->pethungry >= 270)
send_to_char("&OYou feel faint from hunger.&D\r\n", ch);
else if(master->pcdata->pethungry <= 299 && master->pcdata->pethungry >= 280)
send_to_char("&OYou're starting to get hungry.&D\r\n", ch);
else if(master->pcdata->pethungry >= 300)
send_to_char("&OYou're not hungry.&D\r\n", ch);
// thirst
send_to_char("&WThirst&D: ", ch);
if(master->pcdata->petthirsty <= 99)
send_to_char("&OYou're dying of thirst!&D\r\n", ch);
else if(master->pcdata->petthirsty <= 269 && master->pcdata->petthirsty >= 100)
send_to_char("&OYou really could use a sip of water.&D\r\n", ch);
else if(master->pcdata->petthirsty <= 279 && master->pcdata->petthirsty >= 270)
send_to_char("&OYour throat is parched.&D\r\n", ch);
else if(master->pcdata->petthirsty <= 299 && master->pcdata->petthirsty >= 280)
send_to_char("&OYou don't feel too thirsty.&D\r\n", ch);
else if(master->pcdata->petthirsty >= 300)
send_to_char("&OYou're not thirsty.&D\r\n", ch);
return;
}
if(!IS_IMMORTAL(ch))
{
if(ch->pcdata->condition[COND_FULL] <= 0)
send_to_char("&OYou're STARVING to death!!!&D\r\n", ch);
else if(ch->pcdata->condition[COND_FULL] <= 10 && ch->pcdata->condition[COND_FULL] >= 1)
send_to_char("&OYour getting very hungry!&D\r\n", ch);
else if(ch->pcdata->condition[COND_FULL] <= 20 && ch->pcdata->condition[COND_FULL] >= 11)
send_to_char("&OYou feel faint from hunger.&D\r\n", ch);
else if(ch->pcdata->condition[COND_FULL] <= 30 && ch->pcdata->condition[COND_FULL] >= 21)
send_to_char("&OYou're starting to get hungry.&D\r\n", ch);
else if(ch->pcdata->condition[COND_FULL] >= 31)
send_to_char("&OYou're not hungry.&D\r\n", ch);
}
else
send_to_char("&OYou're always full!&D\r\n", ch);
send_to_char("&WThirst&D: ", ch);
if(!IS_IMMORTAL(ch))
{
if(ch->pcdata->condition[COND_THIRST] <= 0)
send_to_char("&OYou're dying of thirst!&D\r\n", ch);
else if(ch->pcdata->condition[COND_THIRST] <= 10 && ch->pcdata->condition[COND_THIRST] >= 1)
send_to_char("&OYou really could use a sip of water.&D\r\n", ch);
else if(ch->pcdata->condition[COND_THIRST] <= 20 && ch->pcdata->condition[COND_THIRST] >= 11)
send_to_char("&OYour throat is parched.&D\r\n", ch);
else if(ch->pcdata->condition[COND_THIRST] <= 30 && ch->pcdata->condition[COND_THIRST] >= 21)
send_to_char("&OYou don't feel too thirsty.&D\r\n", ch);
else if(ch->pcdata->condition[COND_THIRST] >= 31)
send_to_char("&OYou're not thirsty.&D\r\n", ch);
}
else
send_to_char("&OYou're never THIRSTY!&D\r\n", ch);
send_to_char("&WEncumbrance&D: ", ch);
ch_printf(ch, "&O%d/%d&D\r\n", ch->carry_weight, can_carry_w(ch));
send_to_char("&WPosition&D: ", ch);
switch (ch->position)
{
case POS_DEAD:
send_to_char("&OYou're DEAD!!!&D\r\n", ch);
break;
case POS_INCAP:
send_to_char("&OYou've been incapitated!&D\r\n", ch);
break;
case POS_STUNNED:
send_to_char("&OYou're STUNNED!!!&D\r\n", ch);
break;
case POS_STANDING:
send_to_char("&OYou're standing up.&D\r\n", ch);
break;
case POS_MEDITATING:
send_to_char("&OYou're in a deep meditation.&D\r\n", ch);
break;
case POS_SITTING:
case POS_RESTING:
send_to_char("&OYou're sitting down.&D\r\n", ch);
break;
case POS_SLEEPING:
send_to_char("&OYou're asleep.&D\r\n", ch);
break;
case POS_MOUNTED:
send_to_char("&OYou're riding on a mount.&D\r\n", ch);
break;
case POS_MORTAL:
send_to_char("&OYou're mortally wounded!&D\r\n", ch);
break;
case POS_EVASIVE:
send_to_char("&OYou're taking evasive action.&D\r\n", ch);
break;
case POS_DEFENSIVE:
send_to_char("&OYou're taking defensive action.&D\r\n", ch);
break;
case POS_AGGRESSIVE:
send_to_char("&OYou're taking aggressive action.&D\r\n", ch);
break;
case POS_BERSERK:
send_to_char("&OYou're &iBERSERKING*D!!&D\r\n", ch);
break;
case POS_FIGHTING:
send_to_char("&OYou're fighting!&D\r\n", ch);
break;
default:
send_to_char("&OError: Position out of bounds, for status.&D\r\n", ch);
bug("Error: do_status doesn't reconize %s's current position.", ch->name);
break;
}
send_to_char("&WMentalstate&D: ", ch);
// Allow the fall throughs in this switch. -Taon
/* Whoops, think these are backwards! Were from -1 to -10, fixed 16/7/08 Volk */
switch (ch->mental_state / 10)
{
case -10:
case -9:
send_to_pager("&OYou can barely keep your eyes open.&D\r\n", ch);
break;
case -8:
case -7:
case -6:
send_to_pager("&OYou feel quite sedated.&D\r\n", ch);
break;
case -5:
case -4:
case -3:
send_to_pager("&OYou could use a rest.&D\r\n", ch);
break;
case -2:
case -1:
send_to_pager("&OYou feel fine.&D\r\n", ch);
break;
case 0:
case 1:
send_to_pager("&OYou feel great.&D\r\n", ch);
break;
case 2:
case 3:
send_to_pager("&OYour mind is racing, preventing you from thinking straight.&D\r\n", ch);
break;
case 4:
case 5:
case 6:
send_to_pager("&OYour mind is going 100 miles an hour.&D\r\n", ch);
break;
case 7:
case 8:
send_to_pager("&OYou have no idea what is real, and what is not.&D\r\n", ch);
break;
case 9:
case 10:
send_to_pager("&O&uYou are a Supreme Entity&D&D.\r\n", ch);
break;
default:
send_to_pager("&OYou're completely messed up!&D\r\n", ch);
break;
}
if(ch->quest_curr > 1)
ch_printf(ch, "&WGlory Points&D: &O%d&D\r\n", ch->quest_curr);
send_to_char("&W\r\nGeneral Information:&D\r\n", ch);
if(ch->move <= ch->max_move / 5)
send_to_char("&OYou need to rest, your body is tiring out.&D\r\n", ch);
if(ch->mana <= ch->max_mana / 5)
send_to_char("&OYou feel as if your magic is nearly drained.&D\r\n", ch);
if(ch->hit <= ch->max_hit / 5)
send_to_char("&OYou're hurt quite badly.&D\r\n", ch);
if(IS_BLOODCLASS(ch) && (ch->blood <= ch->max_blood / 6))
send_to_char("&OYour body begins to &uwithdraw&D&O from lack of blood.&D\r\n", ch);
if(ch->pcdata->condition[COND_DRUNK] > 0)
{
if(ch->pcdata->condition[COND_DRUNK] < 3)
send_to_char("&OYou've had a bit to drink.&D.&D\r\n", ch);
else if(ch->pcdata->condition[COND_DRUNK] < 5)
send_to_char("&OYou've been drinking.&D.&D\r\n", ch);
else if(ch->pcdata->condition[COND_DRUNK] < 10)
send_to_char("&OYou are starting to feel &udrunk&D.&D\r\n", ch);
else if(ch->pcdata->condition[COND_DRUNK] >= 10)
send_to_char("&OYou are &udrunk&D.&D\r\n", ch);
}
if(IS_VAMPIRE(ch))
{
if(IS_OUTSIDE(ch))
{
switch (time_info.sunlight)
{
case SUN_LIGHT:
send_to_char("&YYou're burning to a crisp under the sun.&D\r\n", ch);
break;
case SUN_RISE:
send_to_char("&YYou feel your skin begin to burn in the morning light.&D\r\n", ch);
break;
case SUN_SET:
send_to_char("&YYou feel your skin burning under the setting sun.&D\r\n", ch);
break;
}
}
}
if(IS_AFFECTED(ch, AFF_SHAPESHIFT))
send_to_char("&OYour shape-shifted into another shape.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_DISGUISE))
send_to_char("&OYour in a disguise to hide your identiy.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_ANOINT))
send_to_char("&OYou've been recently anointed.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_POISON))
send_to_char("&OYou feel as if you've been poisoned.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_FURY) || IS_AFFECTED(ch, AFF_BERSERK))
send_to_char("&OYou're in a &ubloody rage&D&O.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_FLYING) || IS_AFFECTED(ch, AFF_FLOATING))
send_to_char("&OYour feet aren't touching the ground.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_CHARM))
send_to_char("&OYou're charmed.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_BLINDNESS))
send_to_char("&O&i&uA thick film covers your eyes preventing you from seeing.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_HIDE))
send_to_char("&OYou seem to be &ihiding&D&O from someone.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_MAIM))
send_to_char("&OYou've been badly &umaimed&D&O, causing you to bleed freely.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_SILENCE))
send_to_char("&OA magical force prevents you from speaking.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_SURREAL_SPEED))
send_to_char("&OYour body seems to be moving as fast as&i lightning.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_SLOW))
send_to_char("&O&iYour body is moving at a slow rate..&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_PARALYSIS) || ch->position == POS_STUNNED)
send_to_char("&OYou're suffering from some sort of &i&uparalysis.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_FEIGN))
send_to_char("&OYou lay stiff on the ground, playing possum.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_CURSE))
send_to_char("&OYou feel as if you're cursed.&D\r\n", ch);
if(IS_AFFECTED(ch, AFF_IRON_SKIN))
send_to_char("&OYour skin is as solid as iron.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_UNSEARING_SKIN))
send_to_char("&OYour flesh bares resistance to fire.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_ROOT))
send_to_char("&OYour feet are &urooted&D&O into the ground.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_SHIELD) || IS_AFFECTED(ch, AFF_WARD))
send_to_char("&OYour surrounded by a magical shield.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_INFRARED))
send_to_char("&OYour eyes glow bright red.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_DETECT_INVIS))
send_to_char("&OYou can see invisible people and objects.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_DETECT_HIDDEN))
send_to_char("&OYou can see hidden people and objects.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_BOOST))
send_to_char("&OYou've been boosted in power.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_SANCTUARY))
send_to_char("&OYou're defenses are greatly improved.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_REACTIVE))
send_to_char("&OYour body heals itself during combat.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_TRUESIGHT))
send_to_char("&OYour vision is enhanced.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_NOSIGHT))
send_to_char("&OYou can see without your eyes.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_ICESHIELD))
send_to_char("&OYour surrounded by a shield of ice.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_SHOCKSHIELD))
send_to_char("&OYou're surrounded by a shield of energy.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_FIRESHIELD))
send_to_char("&OYou're surrounded by a shield of fire.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_RECOIL))
send_to_char("&OYou're positioned in a coiled up stance.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_KEEN_EYE))
send_to_char("&OYour eyes are sharply attuned to your surroundings.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_KINETIC))
send_to_char("&OA barrier of kinetic energy swirls around you.\r\n&D", ch);
if(IS_AFFECTED(ch, AFF_SUSTAIN_SELF))
send_to_char("&OYour body is fighting off hunger.\r\n&D", ch);
if(ch->hate_level > 0)
{
if(ch->hate_level <= 5)
send_to_char("&OYou're watching out for someone.&D\r\n", ch);
else if(ch->hate_level < 20)
send_to_char("&OYou get the feeling someone is after you.\r\n&D", ch);
else if(ch->hate_level >= 20)
send_to_char("&OYou're hated amongst your peers.&D\r\n", ch);
}
if(!IS_BLIND(ch))
send_to_char("\r\n&W--------------------------------------------------&D\r\n\r\n", ch);
return;
}