Cookie::Cookie (Size size):Food(size) { name = "pancakes"; calories[SMALL] = 100; calories[MEDIUM] = 120; calories[LARGE] = 140; cout << "ordering: " << getSizeName(size) << " cookie..." << endl; }
int Player::displayCreature(Creature* target) { int percent=0, align=0, rank=0, chance=0, flags = displayFlags(); Player *pTarget = target->getAsPlayer(); Monster *mTarget = target->getAsMonster(); std::ostringstream oStr; bstring str = ""; bool space=false; if(mTarget) { oStr << "You see " << mTarget->getCrtStr(this, flags, 1) << ".\n"; if(mTarget->getDescription() != "") oStr << mTarget->getDescription() << "\n"; else oStr << "There is nothing special about " << mTarget->getCrtStr(this, flags, 0) << ".\n"; if(mTarget->getMobTrade()) { rank = mTarget->getSkillLevel()/10; oStr << "^y" << mTarget->getCrtStr(this, flags | CAP, 0) << " is a " << get_trade_string(mTarget->getMobTrade()) << ". " << mTarget->upHisHer() << " skill level: " << get_skill_string(rank) << ".^x\n"; } } else if(pTarget) { oStr << "You see " << pTarget->fullName() << " the " << gConfig->getRace(pTarget->getDisplayRace())->getAdjective(); // will they see through the illusion? if(willIgnoreIllusion() && pTarget->getDisplayRace() != pTarget->getRace()) oStr << " (" << gConfig->getRace(pTarget->getRace())->getAdjective() << ")"; oStr << " " << pTarget->getTitle() << ".\n"; if(gConfig->getCalendar()->isBirthday(pTarget)) { oStr << "^yToday is " << pTarget->getCName() << "'s birthday! " << pTarget->upHeShe() << " is " << pTarget->getAge() << " years old.^x\n"; } if(pTarget->description != "") oStr << pTarget->description << "\n"; } if(target->isEffected("vampirism")) { chance = intelligence.getCur()/10 + piety.getCur()/10; // vampires and werewolves can sense each other if(isEffected("vampirism") || isEffected("lycanthropy")) chance = 101; if(chance > mrand(0,100)) { switch(mrand(1,4)) { case 1: oStr << target->upHeShe() << " looks awfully pale.\n"; break; case 2: oStr << target->upHeShe() << " has an unearthly presence.\n"; break; case 3: oStr << target->upHeShe() << " has hypnotic eyes.\n"; break; default: oStr << target->upHeShe() << " looks rather pale.\n"; } } } if(target->isEffected("lycanthropy")) { chance = intelligence.getCur()/10 + piety.getCur()/10; // vampires and werewolves can sense each other if(isEffected("vampirism") || isEffected("lycanthropy")) chance = 101; if(chance > mrand(0,100)) { switch(mrand(1,3)) { case 1: oStr << target->upHeShe() << " looks awfully shaggy.\n"; break; case 2: oStr << target->upHeShe() << " has a feral presence.\n"; break; default: oStr << target->upHeShe() << " looks rather shaggy.\n"; } } } if(target->isEffected("slow")) oStr << target->upHeShe() << " is moving very slowly.\n"; else if(target->isEffected("haste")) oStr << target->upHeShe() << " is moving unnaturally quick.\n"; if((cClass == CreatureClass::CLERIC && deity == JAKAR && level >=7) || isCt()) oStr << "^y" << target->getCrtStr(this, flags | CAP, 0 ) << " is carrying " << target->coins[GOLD] << " gold coin" << (target->coins[GOLD] != 1 ? "s" : "") << ".^x\n"; if(isEffected("know-aura") || cClass==CreatureClass::PALADIN) { space = true; oStr << target->getCrtStr(this, flags | CAP, 0) << " "; align = target->getAdjustedAlignment(); switch(align) { case BLOODRED: oStr << "has a blood red aura."; break; case REDDISH: oStr << "has a reddish aura."; break; case PINKISH: oStr << "has a pinkish aura."; break; case NEUTRAL: oStr << "has a grey aura."; break; case LIGHTBLUE: oStr << "has a light blue aura."; break; case BLUISH: oStr << "has a bluish aura."; break; case ROYALBLUE: oStr << "has a royal blue aura."; break; default: oStr << "has a grey aura."; break; } } if(mTarget && mTarget->getRace()) { if(space) oStr << " "; space = true; oStr << mTarget->upHeShe() << " is ^W" << gConfig->getRace(mTarget->getRace())->getAdjective().toLower() << "^x."; } if(target->getSize() != NO_SIZE) { if(space) oStr << " "; space = true; oStr << target->upHeShe() << " is ^W" << getSizeName(target->getSize()) << "^x."; } if(space) oStr << "\n"; if(target->hp.getCur() > 0 && target->hp.getMax()) percent = (100 * (target->hp.getCur())) / (target->hp.getMax()); else percent = -1; if(!(mTarget && mTarget->flagIsSet(M_UNKILLABLE))) { oStr << target->upHeShe(); if(percent >= 100 || !target->hp.getMax()) oStr << " is in excellent condition.\n"; else if(percent >= 90) oStr << " has a few scratches.\n"; else if(percent >= 75) oStr << " has some small wounds and bruises.\n"; else if(percent >= 60) oStr << " is wincing in pain.\n"; else if(percent >= 35) oStr << " has quite a few wounds.\n"; else if(percent >= 20) oStr << " has some big nasty wounds and scratches.\n"; else if(percent >= 10) oStr << " is bleeding awfully from big wounds.\n"; else if(percent >= 5) oStr << " is barely clinging to life.\n"; else if(percent >= 0) oStr << " is nearly dead.\n"; } if(pTarget) { if(pTarget->isEffected("mist")) { oStr << pTarget->upHeShe() << "%s is currently in mist form.\n"; printColor("%s", oStr.str().c_str()); return(0); } if(pTarget->flagIsSet(P_UNCONSCIOUS)) oStr << pTarget->getName() << " is " << (pTarget->flagIsSet(P_SLEEPING) ? "sleeping" : "unconscious") << ".\n"; if(pTarget->isEffected("petrification")) oStr << pTarget->getName() << " is petrified.\n"; if(pTarget->isBraindead()) oStr << pTarget->getName() << "%M is currently brain dead.\n"; } else { if(mTarget->isEnemy(this)) oStr << mTarget->upHeShe() << " looks very angry at you.\n"; else if(mTarget->getPrimeFaction() != "") oStr << mTarget->upHeShe() << " " << getFactionMessage(mTarget->getPrimeFaction()) << ".\n"; Creature* firstEnm = nullptr; if((firstEnm = mTarget->getTarget(false)) != nullptr) { if(firstEnm == this) { if( !mTarget->flagIsSet(M_HIDDEN) && !(mTarget->isInvisible() && isEffected("detect-invisible"))) oStr << mTarget->upHeShe() << " is attacking you.\n"; } else oStr << mTarget->upHeShe() << " is attacking " << firstEnm->getName() << ".\n"; /// print all the enemies if a CT or DM is looking if(isCt()) oStr << mTarget->threatTable; } oStr << consider(mTarget); // pet code if(mTarget->isPet() && mTarget->getMaster() == this) { str = mTarget->listObjects(this, true); oStr << mTarget->upHeShe() << " "; if(str == "") oStr << "isn't holding anything.\n"; else oStr << "is carrying: " << str << ".\n"; } } printColor("%s", oStr.str().c_str()); target->printEquipList(this); return(0); }