From 4edc66af4782c2d05db9fe3ce56d8110c8277ed9 Mon Sep 17 00:00:00 2001 From: Rob Pearce Date: Tue, 22 Mar 2011 07:06:28 +0000 Subject: [PATCH] * [+] darkmantle DARKNES isn't working! (but it does work if i cast it) * [+] "you arrive at level 2" "it is pitch black" - but it isn't - [+] make detect magic find more things * [+] make some objects harder to identify? from easy->hard * [+] magic item usage skill - [+] with 'R', ask "heal mp, hp or both?" - [+] make dt_fire damage evaporate water. - [+] make ring of sight increase nightvis and nomal visrange slightly too - [+] FIX seeindark to give RANGE. * [+] BUG: monster moved on top of me! * [+] boost spells * [+] more boost spells - [+] modify accuracy based on size difference. * [+] ooze should hurt objects it steps on * [+] resist magic save - [+] potion of blood - [+] ability to fill a potion with blood / water - [+] better potion -> splash code. - [+] stop stoning when you polymorph - [+] can't stone incorporeal or gaseos things - [+] cockatrice blood - [+] cockatrice - [+] when being stoned, give 1 turn's grace - [+] gain/lose text for "CANWILL" - [+] things killed by poison gas should have tainted corpses - [+] make troglodyte corpses poisonous * [+] smallteeth vs teeth - [+] fix hitconfer code --- ai.c | 42 +- attack.c | 201 +- attack.h | 5 +- defs.h | 84 +- doc/add_material.txt | 3 +- doc/add_spells.txt | 7 +- flag.c | 40 +- flag.h | 2 +- io.c | 305 +- lf.c | 615 ++- lf.h | 5 +- log.txt | 9975 ++---------------------------------------- map.c | 5 +- move.c | 81 +- move.h | 1 + nexus.c | 18 +- nexus.h | 1 + objects.c | 653 ++- objects.h | 4 +- spell.c | 688 ++- spell.h | 7 +- text.c | 55 + text.h | 1 + 23 files changed, 2449 insertions(+), 10349 deletions(-) diff --git a/ai.c b/ai.c index ccb9c0e..7d2fbca 100644 --- a/ai.c +++ b/ai.c @@ -618,7 +618,7 @@ void aimove(lifeform_t *lf) { // need to heal? if ((lf->hp < lf->maxhp) || - ((lf->mp < lf->maxmp) && lfhasflag(lf, F_RESTHEALMPAMT)) ) { + ((lf->mp < getmaxmp(lf)) && lfhasflag(lf, F_RESTHEALMPAMT)) ) { if (lf->hp < (lf->maxhp/2)) { if (!useitemwithflag(lf, F_AIHEALITEM)) { return; @@ -700,20 +700,34 @@ int aispellok(lifeform_t *lf, enum OBTYPE spellid, lifeform_t *victim, enum FLAG strcpy(why, "spell too powerful"); } else if (reason == E_NOTREADY) { strcpy(why, "abil not ready"); + } else if (reason == E_NEEDGRAB) { + strcpy(why, "needs grab"); } else { strcpy(why, "unknown reason"); } - if (ot) { - dblog(".oO { can't cast %s right now (%s) (mpcost=%d, i have %d) }", - ot ? ot->name : "?unkownspell?", why, - getmpcost(ot->id), lf->mp); - } else { - dblog(".oO { can't cast ?unknownspell? right now }"); + if (db) { + if (ot) { + dblog(".oO { can't cast %s right now (%s) (mpcost=%d, i have %d) }", + ot ? ot->name : "?unkownspell?", why, + getmpcost(lf, ot->id), lf->mp); + } else { + dblog(".oO { can't cast ?unknownspell? right now }"); + } } } return B_FALSE; } + // boost spell already active? + if (hasflag(ot->flags, F_ONGOING)) { + if (lfhasflagval(lf, F_BOOSTSPELL, ot->id, NA, NA, NULL)) { + if (db) { + dblog(".oO { can't cast %s - it is already active.", ot ? ot->name : "?unkownspell?"); + } + return B_FALSE; + } + } + f = hasflag(ot->flags, purpose); if (f) { int range; @@ -817,12 +831,26 @@ int aispellok(lifeform_t *lf, enum OBTYPE spellid, lifeform_t *victim, enum FLAG if ((ot->id == OT_S_HEALINGMIN) && (lf->hp >= lf->maxhp)) { return B_FALSE; } + if ((ot->id == OT_S_PARALYZE) && lfhasflag(victim, F_PARALYZED)) { + return B_FALSE; + } + if ((ot->id == OT_S_SLEEP) && lfhasflag(victim, F_ASLEEP)) { + return B_FALSE; + } if ((ot->id == OT_S_SLOW) && lfhasflag(victim, F_SLOWACT)) { return B_FALSE; } if ((ot->id == OT_A_SPRINT) && lfhasflag(lf, F_SPRINTING)) { return B_FALSE; } + if ((ot->id == OT_S_WEAKEN)) { + flag_t *lff; + for (lff = lf->flags->first; lff ; lff = lff->next) { + if ((lff->id == F_ATTRMOD) && (lff->val[0] == A_STR) && (lff->obfrom == OT_S_WEAKEN)) { + return B_FALSE; + } + } + } return B_TRUE; } diff --git a/attack.c b/attack.c index 6bd8371..35453c6 100644 --- a/attack.c +++ b/attack.c @@ -103,6 +103,14 @@ int attacklf(lifeform_t *lf, lifeform_t *victim) { aidb = B_TRUE; } + moveeffects(lf); + + if (isdead(lf)) { + return B_TRUE; + } + + + // get names getlfname(lf, attackername); @@ -273,7 +281,7 @@ int attacklf(lifeform_t *lf, lifeform_t *victim) { if (fatal) { verb = getkillverb(victim, damtype[i], dam[i], victim->maxhp); } else { - verb = getattackverb(damtype[i], dam[i], victim->maxhp); + verb = getattackverb(lf, wep, damtype[i], dam[i], victim->maxhp); } warn("You %s %s%s%s", verb, @@ -304,7 +312,7 @@ int attacklf(lifeform_t *lf, lifeform_t *victim) { strcpy(withwep, ""); } - strcpy(attackverb, getattackverb(damtype[i],dam[i],victim->maxhp)); + strcpy(attackverb, getattackverb(lf, wep, damtype[i],dam[i],victim->maxhp)); if ((dam[i] == 0) && (damtype[i] != DT_TOUCH)) { strcpy(nodamstr, " but does no damage"); } else { @@ -354,7 +362,9 @@ int attacklf(lifeform_t *lf, lifeform_t *victim) { } // end foreach damtype // special weapon effects - wepeffects(wep, victim->cell); + if (dam[0]) { + wepeffects(wep->flags, victim->cell); + } if (!isdead(victim)) { if (unarmedflag) { @@ -404,6 +414,32 @@ int attacklf(lifeform_t *lf, lifeform_t *victim) { } } + // confer flags from attacker? + if (dam[0]) { + wepeffects(lf->flags, victim->cell); + } + + // special lifeform-based effects + if ((lf->race->id == R_COCKATRICE) && dam[0]) { + // first saving throw... + if (skillcheck(victim, SC_CON, 25, 0)) { + // slowed + addtempflag(victim->flags, F_SLOWMOVE, 15, NA, NA, NULL, 2); + addtempflag(victim->flags, F_SLOWACT, 15, NA, NA, NULL, 2); + } else { + // second saving throw... + if (skillcheck(victim, SC_CON, 25, 0)) { + // paralyzed + addtempflag(victim->flags, F_PARALYZED, B_TRUE, NA, NA, NULL, 5); + } else { + if (!lfhasflag(lf, F_BEINGSTONED)) { + // stoned! + addflag(victim->flags, F_BEINGSTONED, 2, NA, NA, NULL); + } + } + } + } + } } else { // miss! if (aidb) dblog(".oO { i missed! }"); @@ -477,6 +513,8 @@ int attackob(lifeform_t *lf, object_t *o) { //int aidb = B_TRUE; int maxhp; + moveeffects(lf); + if (isdead(lf)) return B_TRUE; // get names getlfname(lf, attackername); @@ -546,7 +584,7 @@ int attackob(lifeform_t *lf, object_t *o) { } else { strcpy(extradambuf, ""); } - msg("You %s %s.", getattackverb(damtype[i], dam[i], maxhp), + msg("You %s %s.", getattackverb(lf, wep, damtype[i], dam[i], maxhp), obname, extradambuf); } else if (cansee(player, lf)) { char withwep[BUFLEN]; @@ -558,7 +596,7 @@ int attackob(lifeform_t *lf, object_t *o) { } msg("%s %ss %s%s.", attackername, - getattackverb(damtype[i],dam[i],maxhp), obname,withwep); + getattackverb(lf, wep, damtype[i],dam[i],maxhp), obname,withwep); } else { youhear(lf->cell, "sounds of fighting"); } @@ -579,7 +617,9 @@ int attackob(lifeform_t *lf, object_t *o) { } // end foreach damtype // special weapon effects - wepeffects(wep, obloc); + if (dam[0]) { + wepeffects(wep->flags, obloc); + } if (unarmedflag) { // touch effects @@ -624,10 +664,27 @@ int getarmourdamreduction(lifeform_t *lf, object_t *wep, int dam, enum DAMTYPE d // returns a const char * -char *getattackverb(enum DAMTYPE damtype, int dam, int maxhp) { +char *getattackverb(lifeform_t *lf, object_t *wep, enum DAMTYPE damtype, int dam, int maxhp) { float pct; + enum LFSIZE ownersize = SZ_HUMAN; + + if (lf) { + ownersize = getlfsize(lf); + } + pct = (int)(((float) dam / (float) maxhp) * 100.0); - if (damtype == DT_BASH) { + + if (wep) { + flag_t *f; + f = hasflag(wep->flags, F_ATTACKVERB); + if (f) { + return f->text; + } + } + + if (damtype == DT_ACID) { + return "burn"; + } else if (damtype == DT_BASH) { if (pct <= 5) { return "whack"; } else if (pct <= 20) { @@ -640,12 +697,20 @@ char *getattackverb(enum DAMTYPE damtype, int dam, int maxhp) { return "pummel"; } } else if (damtype == DT_BITE) { - if (pct <= 5) { - return "gnaw"; - } else if (pct <= 30) { - return "bite"; + if (lf && (ownersize <= SZ_SMALL)) { + if (pct <= 5) { + return "nip"; + } else if (pct <= 30) { + return "bite"; + } } else { - return "savage"; + if (pct <= 5) { + return "gnaw"; + } else if (pct <= 30) { + return "bite"; + } else { + return "savage"; + } } } else if (damtype == DT_CLAW) { if (pct <= 5) { @@ -1088,6 +1153,7 @@ int rolltohit(lifeform_t *lf, lifeform_t *victim, int *critical) { object_t *wep; obpile_t *op = NULL; int gothit; + enum LFSIZE szlf,szvictim; if (critical) { *critical = 0; @@ -1100,6 +1166,19 @@ int rolltohit(lifeform_t *lf, lifeform_t *victim, int *critical) { ev = getevasion(victim); acc -= ev; + // size difference + szlf = getlfsize(lf); + szvictim = getlfsize(victim); + if (szvictim < szlf) { + // if defender is smaller... + // -7% per size difference + acc -= (7 * (szlf - szvictim)); + } else if (szvictim > szlf) { + // if defender is bigger... + // +7% per size difference + acc += (7 * (szvictim - szlf)); + } + // modify if we can't see the victim if (!cansee(lf, victim)) { acc -= 50; @@ -1134,16 +1213,19 @@ int rolltohit(lifeform_t *lf, lifeform_t *victim, int *critical) { return gothit; } -void wepeffects(object_t *wep, cell_t *where) { +void wepeffects(flagpile_t *fp, cell_t *where) { flag_t *f; lifeform_t *victim; lifeform_t *owner; - - owner = wep->pile->owner; - victim = where->lf; + object_t *wep; if (!where) return; - for (f = wep->flags->first ; f ; f = f->next) { + + wep = fp->ob; + owner = fp->owner; + victim = where->lf; + + for (f = fp->first ; f ; f = f->next) { if (f->id == F_FLAMESTRIKE) { if (!hasob(where->obpile, OT_FIRESMALL)) { // ignite! @@ -1154,36 +1236,6 @@ void wepeffects(object_t *wep, cell_t *where) { f->known = B_KNOWN; } } - } else if ((f->id == F_HITCONFER) && victim && !isdead(victim)) { - enum FLAG fid; - int val0,val1; - int min,max,howlong; - fid = f->val[0]; - if (!lfhasflag(victim, fid)) { - val0 = f->val[1]; - val1 = f->val[2]; - if (f->text) { - char loctext[BUFLEN]; - char *word, *dummy; - strcpy(loctext,f->text); - word = strtok_r(loctext, "-", &dummy); - if (word) { - min = atoi(word); - word = strtok_r(NULL, "-", &dummy); - if (word) { - max = atoi(word); - howlong = rnd(min,max); - } else { - howlong = PERMENANT; - } - } else { - howlong = PERMENANT; - } - } else { - howlong = PERMENANT; - } - addtempflag(victim->flags, fid, val0, val1, NA, NULL, howlong); - } } else if ((f->id == F_REVENGE) && victim && !isdead(victim)) { lifeform_t *owner; owner = wep->pile->owner; @@ -1230,6 +1282,57 @@ void wepeffects(object_t *wep, cell_t *where) { dir = getdirtowards(owner->cell, victim->cell, victim, B_FALSE); knockback(victim, dir , 2, owner); f->known = B_TRUE; - } + } else if ((f->id == F_HITCONFER) && victim ) { + enum FLAG fid; + int min,max,howlong; + fid = f->val[0]; + if (!lfhasflag(victim, fid)) { + int passedcheck = B_FALSE; + if (!f->val[1] == NA) { + int scdiff; + if (f->val[2] == NA) { + scdiff = 20; // default + } else { + scdiff = f->val[2]; + } + if (skillcheck(victim, f->val[1], scdiff, 0)) { + passedcheck = B_TRUE; + } + } + + if (!passedcheck) { + int val0; + val0 = f->val[1]; + if (f->text) { + char loctext[BUFLEN]; + char *word, *dummy; + strcpy(loctext,f->text); + word = strtok_r(loctext, "-", &dummy); + if (word) { + min = atoi(word); + word = strtok_r(NULL, "-", &dummy); + if (word) { + max = atoi(word); + howlong = rnd(min,max); + } else { + howlong = PERMENANT; + } + } else { + howlong = PERMENANT; + } + } else { + howlong = PERMENANT; + } + + addtempflag(victim->flags, fid, val0, NA, NA, NULL, howlong); + } // end if passedcheck + } // end (if victim doesn't already have the flag) + + // was this from a poisoned weapon? if so the poison vanishes + if ((f->val[0] == F_POISONED) && (f->lifetime == FROMOBMOD)) { + killflag(f); + } + } // end if (fid == hitconfer) } + } diff --git a/attack.h b/attack.h index 5a5aac6..e54b952 100644 --- a/attack.h +++ b/attack.h @@ -5,8 +5,9 @@ void applyarmourdamreduction(lifeform_t *lf, object_t *wep, int reduceamt, int * int attackcell(lifeform_t *lf, cell_t *c); int attacklf(lifeform_t *lf, lifeform_t *victim); int attackob(lifeform_t *lf, object_t *o); +void confereffects(flagpile_t *fp, lifeform_t *victim); int getarmourdamreduction(lifeform_t *lf, object_t *wep, int dam, enum DAMTYPE damtype); -char *getattackverb(enum DAMTYPE damtype, int dam, int maxhp); +char *getattackverb(lifeform_t *lf, object_t *wep, enum DAMTYPE damtype, int dam, int maxhp); object_t *getattackwep(lifeform_t *lf, obpile_t **unarmedpile, flag_t **unarmedflag); enum DAMTYPE getdamtype(object_t *wep); int getextradam(object_t *wep, int *dam, enum DAMTYPE *damtype, int *ndam); @@ -19,4 +20,4 @@ int getdamrollfromflag(flag_t *f); float getstrdammod(lifeform_t *lf); obpile_t *getunarmedweapon(lifeform_t *lf, flag_t **uflag); int rolltohit(lifeform_t *lf, lifeform_t *victim, int *critical); -void wepeffects(object_t *wep, cell_t *where); +void wepeffects(flagpile_t *fp, cell_t *where); diff --git a/defs.h b/defs.h index 4c53688..5e95281 100644 --- a/defs.h +++ b/defs.h @@ -45,6 +45,9 @@ enum CHECKTYPE { SC_SLIP, SC_MORALE, SC_OPENLOCKS, + SC_POISON, + SC_RESISTMAG, + SC_WILL, }; enum BURDENED { @@ -86,6 +89,7 @@ enum LFCONDITION { #define FROMBLESSING (-9866) #define FROMBRAND (-9865) #define FROMOBMOD (-9864) +#define FROMSPELL (-9863) #define IFKNOWN (-9772) // used by f_xxconfer. only confer a flag if item is known. @@ -367,9 +371,11 @@ enum DAMTYPE { DT_LIGHT = 21, DT_CRUSH = 22, DT_FALL = 23, - DT_NONE = 24, // for direclty dealt damage, not really any type + DT_PETRIFY = 24, + DT_POISON = 25, + DT_NONE = 26, // for direclty dealt damage, not really any type }; -#define MAXDAMTYPE 25 +#define MAXDAMTYPE 27 // Object Classes enum OBCLASS { @@ -423,7 +429,9 @@ enum RACE { R_NONE, R_RANDOM, R_HUMAN, // monsters + R_BEHOLDER, R_BUGBEAR, + R_COCKATRICE, R_DARKMANTLE, R_EYEBAT, R_GIANTHILL, @@ -456,9 +464,13 @@ enum RACE { R_TROLL, R_XAT, // small animals + R_ANT, + R_ANTS, R_BAT, + R_HAWK, R_NEWT, R_RAT, + R_SNAKE, R_WOLF, // insects R_BUTTERFLY, @@ -518,6 +530,7 @@ enum MATERIAL { MT_GAS = 20, MT_SLIME = 21, MT_WAX = 22, + MT_ACID = 23, }; // Object Types @@ -572,6 +585,8 @@ enum OBTYPE { OT_POT_ACID, OT_POT_ACROBATICS, OT_POT_AMBROSIA, + OT_POT_BLOOD, + OT_POT_BLOODC, OT_POT_COMPETENCE, OT_POT_ELEMENTENDURE, OT_POT_ELEMENTIMMUNE, @@ -614,8 +629,10 @@ enum OBTYPE { OT_MAN_ATHLETICS, OT_MAN_FIRSTAID, OT_MAN_LOCKPICKING, + OT_MAN_MAGITEMUSAGE, OT_MAN_RESEARCH, OT_MAN_SPELLCASTING, + OT_MAN_TECHUSAGE, // manuals of weaponry OT_MAN_AXES, OT_MAN_CLUBS, @@ -638,12 +655,12 @@ enum OBTYPE { OT_MAN_SS_SUMMONING, OT_MAN_SS_TRANSLOCATION, OT_MAN_SS_WILD, - OT_MAN_TECHUSAGE, // SPELLBOOKS // allomancy can't be learned from books // -- death OT_SB_ANIMATEDEAD, OT_SB_PAIN, + OT_SB_PARALYZE, OT_SB_INFINITEDEATH, OT_SB_WEAKEN, OT_SB_BLINDNESS, @@ -653,6 +670,7 @@ enum OBTYPE { OT_SB_IDENTIFY, OT_SB_MAPPING, // -- elemental - air + OT_SB_AIRBLAST, OT_SB_CLOUDKILL, // -- elemental - fire OT_SB_SPARK, @@ -665,16 +683,20 @@ enum OBTYPE { OT_SB_CONECOLD, OT_SB_FREEZEOB, // -- gravity + OT_SB_GRAVLOWER, OT_SB_GRAVBOOST, OT_SB_HASTE, + OT_SB_FLIGHT, OT_SB_SLOW, + OT_SB_LEVITATION, // -- life OT_SB_HEALING, OT_SB_HEALINGMIN, OT_SB_TURNUNDEAD, - // -- mental + // -- mental / psionic OT_SB_MINDSCAN, OT_SB_TELEKINESIS, + OT_SB_PSYARMOUR, // -- modification OT_SB_GASEOUSFORM, OT_SB_KNOCK, @@ -705,6 +727,7 @@ enum OBTYPE { // -- death OT_S_ANIMATEDEAD, OT_S_PAIN, + OT_S_PARALYZE, OT_S_INFINITEDEATH, OT_S_WEAKEN, OT_S_BLINDNESS, @@ -715,6 +738,7 @@ enum OBTYPE { OT_S_IDENTIFY, OT_S_MAPPING, // -- elemental - air + OT_S_AIRBLAST, OT_S_CLOUDKILL, // -- elemental - fire OT_S_SPARK, @@ -727,17 +751,21 @@ enum OBTYPE { OT_S_CONECOLD, OT_S_FREEZEOB, // -- gravity + OT_S_GRAVLOWER, OT_S_GRAVBOOST, OT_S_HASTE, OT_S_SLOW, + OT_S_LEVITATION, + OT_S_FLIGHT, // -- life OT_S_HEALING, OT_S_HEALINGMIN, OT_S_TURNUNDEAD, - // -- mental + // -- mental / psionic OT_S_MINDSCAN, OT_S_SLEEP, OT_S_TELEKINESIS, + OT_S_PSYARMOUR, // -- modification OT_S_ENCHANT, OT_S_GASEOUSFORM, @@ -776,6 +804,7 @@ enum OBTYPE { OT_A_EMPLOY, OT_A_HEAVYBLOW, OT_A_INSPECT, + OT_A_STINGACID, // need to define dam in f_canwill // wands OT_WAND_COLD, OT_WAND_DETONATION, @@ -826,11 +855,14 @@ enum OBTYPE { OT_ICESHEET, OT_PUDDLEWATER, OT_PUDDLEWATERL, + OT_ACIDPUDDLE, + OT_ACIDPOOL, OT_SLIMEPOOL, OT_VOMITPOOL, OT_BLOODSTAIN, OT_BLOODSPLASH, OT_BLOODPOOL, + OT_BLOODCSPLASH, OT_MELTEDWAX, OT_SOGGYPAPER, OT_FLESHCHUNK, @@ -839,6 +871,8 @@ enum OBTYPE { OT_FIREMED, OT_FIRESMALL, OT_MAGICBARRIER, + OT_STEAMCLOUD, + OT_STEAMPUFF, OT_SMOKECLOUD, OT_SMOKEPUFF, OT_POISONCLOUD, @@ -899,8 +933,10 @@ enum OBTYPE { // animal weapons OT_CLAWS, OT_FISTS, + OT_STING, OT_TAIL, OT_TEETH, + OT_TEETHSM, OT_TENTACLE, OT_ZAPPER, // monster weapons @@ -1052,8 +1088,7 @@ enum FLAG { F_ACTIVATECONFER, // gives flag v0+v1 when activated. v2 specifies if it must be id'd. F_HITCONFER, // hitting with this gives flagid=v0 - // with flagval0 = val1 - // with flagval1 = val2 + // unless you pass a val1 skillcheck, diff val2 // with timeleft = text ("min-max") F_ACTIVATED, // val0 = is this object turned on? F_GRENADE, // this obkejct will drain charge when activated, then die @@ -1114,8 +1149,10 @@ enum FLAG { F_MASTERWORK, // weps do higher damager, armour protects better F_SHODDY, // weps do less damage, armour protects less. // weapon flags + F_ATTACKVERB, // text=verb for attacking. ie. "hit" "slash" "sting" etc F_OBATTACKDELAY, // how long weapon takes to attack F_USESSKILL, // weapon needs skill sk_v0 + F_CANHAVEOBMOD, // weapon can have obmod om_v0 applied F_DAMTYPE, // val0 = damage type F_DAM, // val0 = ndice, val1 = nsidesondie, val2 = mod F_MISSILEDAM, // val0 = dam if it hits (without speed multiplier) @@ -1149,6 +1186,8 @@ enum FLAG { F_NOOBDAMTEXT, // don't anounce damage to this object F_NOOBDIETEXT, // don't anounce destruction of this object F_NODIECONVERTTEXT, // don't anounce when this object changes + // misc flags + F_LINKOB, // val0 = linked object id // scroll flags F_LINKSPELL, // val0 = spell this scroll will cast when read // v1 = spell power @@ -1158,12 +1197,15 @@ enum FLAG { F_HASHIDDENNAME, // whether this object class has a hidden name F_IDENTIFIED, // whether this object is fully identified // bad flags - F_WALKDAM, // val0 = dam per sec, val1 = damtype - // magic + F_WALKDAM, // val0 = damtype, text = dam per sec + // abilities + F_NEEDSGRAB, // this ability needs to to grab someone first. + // magic F_SPELLSCHOOL, // val0 = SPELLSCHOOL enum F_SPELLLEVEL, // val0 = difficulty level of spell F_MAXPOWER, // val0 = max power of this spell (1-10) F_MPCOST, // v0=mp cost of spell. if missing, mpcost if splev^2 + F_ONGOING, // this spell has an ongoing cost //F_SPELLLETTER, // text[0] = letter to cast this spell F_AICASTTOFLEE, // AI can cast this spell to help flee // v0 is who to target @@ -1205,8 +1247,9 @@ enum FLAG { F_GUNTARGET, // current projectile weapon target F_CASTINGSPELL, // set while the player is casting a spell // v0 is spell id - // ABILITY FLAGS + // ABILITY/SPELL FLAGS F_FAILEDINSPECT, // lf has failed an inspect check for item id v0 + F_BOOSTSPELL, // v0 is active boost spell // MONSTER AI FLAGS F_XPVAL, // force xp val for killing this lf to v0 F_HOSTILE, // lf will attack the player if in sight @@ -1260,6 +1303,7 @@ enum FLAG { F_NOPACK, // this race cannot hold objects F_NOSPELLS, // this race cannot cast spells F_INDUCEFEAR, // causes fear when you attack it + F_POISONOUS, // lf's corpse will be poisonous F_AUTOCREATEOB, // produces obtype 'text' wherever it walks, v0=radius // (only if ob of that type not already there) F_PACKATTACK, // deal v0 extra damage of type v1 if there are @@ -1267,13 +1311,17 @@ enum FLAG { // to the victim F_PHALANX, // gain v0 AR if v2 or more adj monsters matching f->text // INTRINSICS + F_ARBOOST,// armour is magically boosted F_ASLEEP, // is asleep + F_BEINGSTONED,// turn to stone when v0 drops to zero. (drops 1/turn) F_BLIND, // cannot see anything F_CANCAST, // can cast the spell val0 (need MP) F_CANWILL, // can cast the spell val0 without using MP // v1 is counter untiluse // v2 is what you need to use it // ie. when v1 == v2, ability is ready. + // text is other options, semicolon seperated: + // pw:xx; cast the spell at power xx F_DETECTAURAS, // autodetect bless/curse F_DETECTLIFE, // autodetect nearby lifeforms in orthogonal dist v0 F_DETECTMAGIC, // autodetect magic/special objects @@ -1282,7 +1330,7 @@ enum FLAG { F_FLYING, // lf is flying F_FASTACT, // modifier for action speed F_FASTMOVE, // modifier for move speed - F_FOODPOISONED, // has food poisoning + F_POISONED, // has food poisoning F_FREEZINGTOUCH,// next thing touched turns to ice! F_GRABBEDBY,// you've been grabbed by lf id v0 F_GRABBING, // you are grabbing lf id v0 @@ -1292,7 +1340,7 @@ enum FLAG { F_QUICKBITE, // deals v0 d d1 + d2 damage when you hit a bleeding victim // (bypasses armour) F_GRAVBOOSTED,// cannot walk or throw stuff - F_PAIN, // take damage if you walk + F_PAIN, // take damage if you walk. v0=damtype,text is damage (xdy+z). F_PARALYZED,// cannot do anything F_FROZEN, // made of ice F_LEVITATING, // like flying but uncontrolled @@ -1302,7 +1350,7 @@ enum FLAG { F_OMNIPOTENT, // knows extra info F_PHOTOMEM, // you don't forget your surroundings F_REGENERATES, // regenerate HP at val0 per turn - F_RESISTMAG, // immune to most magic effects + F_RESISTMAG, // immunity to magic effects. v0=amt (1-20) F_MPREGEN, // regenerate MP at val0 per turn F_SEEINDARK, // nightvis range is val0 F_SEEINVIS, // can see invisible things @@ -1329,12 +1377,14 @@ enum FLAG { // damage (x y-sided dice + z) F_EVASION, // % chance of evading an attack - // healing + // healing/resting/training F_STATGAINREADY, // ready to increase str/int etc. v2 is how many times // we can do it. F_RESTING, // are we resting? cleared on any action other than rest. // v2 = if not, NA it is the training counter. // when it hits 0, you finish trainign. + F_RESTUNTILHP, // resting until we have full hp + F_RESTUNTILMP, // resting until we have full mp // F_RUNNING, // are we running? // nutrition @@ -1476,6 +1526,7 @@ enum ERROR { E_CANTMOVE = 34, E_NOTKNOWN = 35, E_TOOPOWERFUL = 36, + E_NEEDGRAB = 37, }; @@ -1547,6 +1598,7 @@ typedef struct cell_s { struct obpile_s *obpile; enum LIGHTLEV lit; enum LIGHTLEV origlit; + int origlittimer; int littimer; char *writing; @@ -1680,8 +1732,10 @@ enum SKILL { SK_ATHLETICS, SK_FIRSTAID, SK_LOCKPICKING, + SK_MAGITEMUSAGE, SK_RESEARCH, SK_SPELLCASTING, + SK_TECHUSAGE, // weaponry SK_AXES, SK_CLUBS, @@ -1704,7 +1758,6 @@ enum SKILL { SK_SS_SUMMONING, SK_SS_TRANSLOCATION, SK_SS_WILD, - SK_TECHUSAGE, }; #define MAXSKILLS 31 @@ -1794,6 +1847,7 @@ enum OBMOD { OM_FROZEN, OM_HEADLESS, OM_MASTERWORK, + OM_POISONED, OM_SHODDY, }; #define MAXOBMODS 4 diff --git a/doc/add_material.txt b/doc/add_material.txt index adbf6a2..9f8ca87 100644 --- a/doc/add_material.txt +++ b/doc/add_material.txt @@ -5,7 +5,8 @@ objects.c: add an addmaterial() line update adjustdammaterial() as required update getmaterialvalue() - update issolidmat() + update getmaterialstate() update ismetal() + update willshatter() diff --git a/doc/add_spells.txt b/doc/add_spells.txt index 70368f3..1f6722a 100644 --- a/doc/add_spells.txt +++ b/doc/add_spells.txt @@ -1,11 +1,11 @@ defs.h: add the OT_xxx enum - (optional) add a scroll to do the same effect - (optional) add a potion to do the same effect + (optional) add a scroll to do the same effect - not for boosts though + (optional) add a potion to do the same effect - not for boosts though objects.c: define the spell - remember to have spelllevle + remember to have spelllevel (optional) add a scroll to do the same effect, use F_LINKSPELL (optional) add a potion to do the same effect (optional) add a spellbook to learn it @@ -22,4 +22,5 @@ spell.c: ai.c update aigetspelltarget(); update aigetattackspell(); + update aispellok(); diff --git a/flag.c b/flag.c index d341f06..addfa0f 100644 --- a/flag.c +++ b/flag.c @@ -6,6 +6,7 @@ #include "io.h" #include "lf.h" #include "objects.h" +#include "spell.h" #include "text.h" extern enum GAMEMODE gamemode; @@ -31,6 +32,10 @@ flag_t *addflag_real(flagpile_t *fp, enum FLAG id, int val1, int val2, int val3, known = B_KNOWN; } + if ((id == F_POISONED) && isimmuneto(fp, DT_POISON)) { + return NULL; + } + // certain flags stack... if (flagstacks(id)) { f = hasflag(fp, id); @@ -151,6 +156,20 @@ flag_t *addflag_real(flagpile_t *fp, enum FLAG id, int val1, int val2, int val3, } } + // special effects + if (f->pile->owner) { + switch (f->id) { + case F_ASLEEP: + stopallspells(f->pile->owner); + break; + case F_NONCORPOREAL: + killflagsofid(f->pile->owner->flags, F_BEINGSTONED); + break; + default: + break; + } + } + if ((gamemode == GM_GAMESTARTED) && doredraw) { statdirty = B_TRUE; needredraw = B_TRUE; @@ -192,20 +211,20 @@ int flagstacks(enum FLAG fid) { } flag_t *hasflag(flagpile_t *fp, int id) { - return hasflag_real(fp, id, NA); + return hasflag_real(fp, id, NA, NULL); } flag_t *hasflagknown(flagpile_t *fp, int id) { - return hasflag_real(fp, id, B_TRUE); + return hasflag_real(fp, id, B_TRUE, NULL); } -flag_t *hasflag_real(flagpile_t *fp, int id, int wantknown) { +flag_t *hasflag_real(flagpile_t *fp, int id, int wantknown, flag_t *exception) { flag_t *f; lifeform_t *owner; owner = fp->owner; for (f = fp->first ; f ; f = f->next) { - if (f->id == id) { + if ((f->id == id) && (f != exception)) { int valid = B_TRUE; if ((wantknown != NA) && (f->known != wantknown)) valid = B_FALSE; if (owner && (f->lifetime == FROMJOB) && !getjob(owner)) { @@ -453,6 +472,19 @@ void timeeffectsflag(flag_t *f) { } } } + + if (f->id == F_BEINGSTONED) { + f->val[0]--; + if (f->val[0] == 0) { + if (!stone(f->pile->owner)) { + // lf turned to stone! + return; + } else { + // stoning failed. stop being stoned. + killflag(f); + } + } + } } void sumflags(flagpile_t *fp, int id, int *val0, int *val1, int *val2) { diff --git a/flag.h b/flag.h index 2f94dea..29f9963 100644 --- a/flag.h +++ b/flag.h @@ -10,7 +10,7 @@ void copyflags(flagpile_t *dst, flagpile_t *src, int lifetime); int flagstacks(enum FLAG fid); flag_t *hasflag(flagpile_t *fp, int id); flag_t *hasflagknown(flagpile_t *fp, int id); -flag_t *hasflag_real(flagpile_t *fp, int id, int wantknown); +flag_t *hasflag_real(flagpile_t *fp, int id, int wantknown, flag_t *exception); flag_t *hasflagval(flagpile_t *fp, int id, int val1, int val2, int val3, char *text); flag_t *hasflagvalknown(flagpile_t *fp, int id, int val1, int val2, int val3, char *text); flag_t *hasflagval_real(flagpile_t *fp, int id, int val1, int val2, int val3, char *text, int wantknown); diff --git a/io.c b/io.c index 9871a7d..7607f57 100644 --- a/io.c +++ b/io.c @@ -664,10 +664,18 @@ int announceflaggain(lifeform_t *lf, flag_t *f) { } donesomething = B_TRUE; break; + case F_ARBOOST: + msg("A magical shield appears around %s!",lfname); + donesomething = B_TRUE; + break; case F_ASLEEP: msg("%s fall%s asleep.",lfname, isplayer(lf) ? "" : "s"); donesomething = B_TRUE; break; + case F_BEINGSTONED: + msg("%s begin%s to turn to stone!",lfname, isplayer(lf) ? "" : "s"); + donesomething = B_TRUE; + break; case F_BLIND: if (isplayer(lf)) { msg("%s cannot see!",lfname); @@ -685,6 +693,15 @@ int announceflaggain(lifeform_t *lf, flag_t *f) { } } break; + case F_CANWILL: + if (isplayer(lf)) { // don't know if monsters get it + objecttype_t *ot; + ot = findot(f->val[0]); + if (ot) { + msg("You have learned the ability '%s'.", ot->name); + } + } + break; case F_DTIMMUNE: if (isplayer(lf)) { // don't know if monsters get it msg("You feel immune to %s!", getdamnamenoun(f->val[0])); @@ -703,18 +720,6 @@ int announceflaggain(lifeform_t *lf, flag_t *f) { donesomething = B_TRUE; } break; - case F_CANWILL: - if (isplayer(lf)) { // don't know if monsters get it - switch (f->val[0]) { - case OT_A_JUMP: - msg("You feel like you could leap a tall building in a single bound!"); - donesomething = B_TRUE; - break; - default: - break; - } - } - break; case F_DETECTAURAS: if (isplayer(lf)) { // don't know if monsters get it msg("You feel aware of spiritual auras around you."); @@ -777,7 +782,7 @@ int announceflaggain(lifeform_t *lf, flag_t *f) { cansee(player, lf2) ? buf : "something"); } break; - case F_FOODPOISONED: + case F_POISONED: if (isplayer(lf)) { // don't know if monsters get it msg("You feel very sick."); donesomething = B_TRUE; @@ -862,7 +867,7 @@ int announceflaggain(lifeform_t *lf, flag_t *f) { break; case F_RESISTMAG: if (isplayer(lf)) { // don't know if monsters get it - msg("You feel immune to magic."); + msg("You feel %simmune to magic.", hasflag_real(lf->flags, F_RESISTMAG, NA, f) ? "more " : ""); donesomething = B_TRUE; } break; @@ -993,16 +998,24 @@ int announceflagloss(lifeform_t *lf, flag_t *f) { donesomething = B_TRUE; } break; + case F_ARBOOST: + msg("%s%s magical shield vanishes.",lfname,getpossessive(lfname)); + donesomething = B_TRUE; + break; case F_ASLEEP: msg("%s wake%s up.",lfname, isplayer(lf) ? "" : "s"); donesomething = B_TRUE; break; + case F_BEINGSTONED: + msg("The fragments of stone around %s%s body drop%s away.",lfname, getpossessive(lfname), isplayer(lf) ? "" : "s"); + donesomething = B_TRUE; + break; case F_BLIND: msg("%s can see again.",lfname); donesomething = B_TRUE; break; case F_CANCAST: - if (isplayer(lf)) { // don't know if monsters get it + if (isplayer(lf)) { // don't know if monsters lose it objecttype_t *ot; ot = findot(f->val[0]); if (ot) { @@ -1011,6 +1024,16 @@ int announceflagloss(lifeform_t *lf, flag_t *f) { } } break; + case F_CANWILL: + if (isplayer(lf)) { // don't know if monsters lose it + objecttype_t *ot; + ot = findot(f->val[0]); + if (ot) { + msg("You can no longer use the ability '%s'.", ot->name); + donesomething = B_TRUE; + } + } + break; case F_DTIMMUNE: if (isplayer(lf)) { // don't know if monsters lose it msg("You are no longer immune to %s.", getdamnamenoun(f->val[0])); @@ -1041,24 +1064,12 @@ int announceflagloss(lifeform_t *lf, flag_t *f) { msg("%s stop%s fleeing.", lfname, isplayer(lf) ? "" : "s"); donesomething = B_TRUE; break; - case F_FOODPOISONED: + case F_POISONED: if (isplayer(lf)) { // don't know if monsters lose it msg("You feel less sick now."); donesomething = B_TRUE; } break; - case F_CANWILL: - if (isplayer(lf)) { // don't know if monsters lose it - switch (f->val[0]) { - case OT_A_JUMP: - msg("You no longer feel so good at jumping."); - donesomething = B_TRUE; - break; - default: - break; - } - } - break; case F_DODGES: if (isplayer(lf)) { // don't know if monsters lose it msg("You can no longer dodge attacks."); @@ -1154,8 +1165,10 @@ int announceflagloss(lifeform_t *lf, flag_t *f) { donesomething = B_TRUE; break; case F_PAIN: - msg("%s skin returns to normal.",lfname, getpossessive(lfname)); - donesomething = B_TRUE; + if (isplayer(lf)) { // don't konw if it expires for monsters + msg("Your skin stops hurting."); + donesomething = B_TRUE; + } break; case F_PARALYZED: if (isplayer(lf)) { // don't konw if it expires for monsters @@ -1181,7 +1194,11 @@ int announceflagloss(lifeform_t *lf, flag_t *f) { break; case F_RESISTMAG: if (isplayer(lf)) { // don't know if monsters lose it - msg("You are no longer immune to magic."); + if (hasflag_real(lf->flags, F_RESISTMAG, NA, f)) { + msg("You feel less immune to magic."); + } else { + msg("You are no longer immune to magic."); + } donesomething = B_TRUE; } break; @@ -2217,6 +2234,13 @@ void describeob(object_t *o) { y++; } + for (f = o->flags->first ; f ; f = f->next) { + if ((f->id == F_HITCONFER) && (f->val[0] == F_POISONED) && (f->lifetime == FROMOBMOD)) { + mvwprintw(mainwin, y, 0, "It has been coated with poison."); + y++; + } + } + // now special flags... y++; @@ -2373,7 +2397,8 @@ void describeob(object_t *o) { mvwprintw(mainwin, y, 0, "%s allows you to regenerate health%s.", buf,buf2); y++; break; case F_RESISTMAG: - mvwprintw(mainwin, y, 0, "%s grants you immunity from magic.", buf); y++; + mvwprintw(mainwin, y, 0, "%s grants you %s immunity to magic.", buf, + (f->val[0] >= 10) ? "strong" : "minor"); y++; break; case F_SEEINVIS: mvwprintw(mainwin, y, 0, "%s allows you to see invisible things.", buf); y++; @@ -2424,6 +2449,14 @@ void describeob(object_t *o) { } y++; + + // skill type? + f = hasflag(o->flags, F_USESSKILL); + if (f) { + mvwprintw(mainwin, y, 0, "It falls into the '%s' category of weapons.",getskillname(f->val[0])); + y++; + } + if (hasflag(o->flags, F_NOBLESS)) { mvwprintw(mainwin, y, 0, "%s cannot be blessed or cursed.", (o->amt == 1) ? "It" : "They" ); y++; @@ -2484,9 +2517,13 @@ void describespell(objecttype_t *ot) { y++; } - i = getmpcost(ot->id); + i = getmpcost(NULL, ot->id); if (i > 0) { - mvwprintw(mainwin, y, 0, "It costs %d MP to cast.",i); + if (hasflag(ot->flags, F_ONGOING)) { + mvwprintw(mainwin, y, 0, "It takes %d MP to keep active - this is an ongoing cost.",i); + } else { + mvwprintw(mainwin, y, 0, "It costs %d MP to cast.",i); + } y++; } @@ -2983,6 +3020,7 @@ void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2) int mpcost[MAXCANDIDATES]; char mpdesc[MAXCANDIDATES][BUFLEN]; int validspell[MAXCANDIDATES]; + int deactspell[MAXCANDIDATES]; int nposs = 0; int i,n; enum SPELLSCHOOL lastschool; @@ -2997,6 +3035,7 @@ void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2) if (f) { if (hasflagval(ot->flags, F_SPELLSCHOOL, i, NA, NA, NULL)) { poss[nposs] = ot->id; + deactspell[nposs] = B_FALSE; // default mpcost[nposs] = -1; if (f->val[2] == NA) { sprintf(mpdesc[nposs], "(ready)"); @@ -3028,7 +3067,7 @@ void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2) if (lfhasflagval(lf, F_CANCAST, ot->id, NA, NA, NULL)) { int cost; int found = B_FALSE; - cost = getmpcost(ot->id); + cost = getmpcost(lf, ot->id); for (n = 0; n < nposs; n++) { if (poss[n] == ot->id) { found = B_TRUE; @@ -3040,10 +3079,22 @@ void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2) // add to list poss[nposs] = ot->id; mpcost[nposs] = cost; + deactspell[nposs] = B_FALSE; // default power = getspellpower(lf, ot->id); if (power > 0) { - sprintf(mpdesc[nposs], "(%d MP)", mpcost[nposs]); - if (lf->mp >= cost) { + + if (lfhasflagval(lf, F_BOOSTSPELL, ot->id, NA, NA, NULL)) { + cost = 0; + mpcost[nposs] = 0; + strcpy(mpdesc[nposs], "(Deactivate, at will)"); + deactspell[nposs] = B_TRUE; + } else { + int ongoing = B_FALSE; + if (hasflag(ot->flags, F_ONGOING)) ongoing = B_TRUE; + sprintf(mpdesc[nposs], "(%d MP%s)", mpcost[nposs], + ongoing ? ", ongoing" : ""); + } + if (lf->mp >= mpcost[nposs]) { validspell[nposs] = B_TRUE; } else { validspell[nposs] = B_FALSE; @@ -3090,6 +3141,10 @@ void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2) } getspellname(ot->id, player, buf2); + if (deactspell[i]) { + strcat(buf2, "/deact"); + } + if (validspell[i]) { strcpy(costbuf, ""); @@ -3609,23 +3664,50 @@ void dorest(void) { } // if not training, only rest if we need to. if (!willtrain) { - if (player->hp >= player->maxhp) { - char norestmsg[BUFLEN]; - strcpy(norestmsg, ""); - if (player->maxmp > 0) { - if (player->mp >= player->maxmp) { - // no need to rest - strcpy(norestmsg, "Not resting - already at full health and mana."); - } - } else { - // no need to rest - strcpy(norestmsg, "Not resting - already at full health."); - } - if (strlen(norestmsg)) { - msg(norestmsg); - return; - } + char validchars[BUFLEN]; + char ques[BUFLEN]; + char ch; + strcpy(validchars, ""); + if (player->hp < player->maxhp) { + strcat(validchars, "h"); } + if ((getmaxmp(player) > 0) && (player->mp < getmaxmp(player))) { + strcat(validchars, "m"); + } + + if (strchr(validchars, 'h') && strchr(validchars, 'm')) { + strcat(validchars, "b"); + strcpy(ques, "Rest until full HP, Mana, Both or none"); + ch = askchar(ques, validchars, "b", B_TRUE); + if (ch == 'b') { + addflag(player->flags, F_RESTUNTILHP, B_TRUE, NA, NA, NULL); + addflag(player->flags, F_RESTUNTILMP, B_TRUE, NA, NA, NULL); + } else if (ch == 'h') { + addflag(player->flags, F_RESTUNTILHP, B_TRUE, NA, NA, NULL); + } else if (ch == 'm') { + addflag(player->flags, F_RESTUNTILMP, B_TRUE, NA, NA, NULL); + } + } else if (strchr(validchars, 'h')) { + strcpy(ques, "Rest until full HP"); + ch = askchar(ques, "yn", "y", B_TRUE); + if (ch == 'y') { + addflag(player->flags, F_RESTUNTILHP, B_TRUE, NA, NA, NULL); + } + } else if (strchr(validchars, 'm')) { + strcpy(ques, "Rest until full Mana"); + ch = askchar(ques, "yn", "y", B_TRUE); + if (ch == 'y') { + addflag(player->flags, F_RESTUNTILMP, B_TRUE, NA, NA, NULL); + } + } else { + msg("You don't need to rest at the moment."); + return; + } + + if (!lfhasflag(player, F_RESTUNTILHP) && !lfhasflag(player, F_RESTUNTILMP)) { + msg("Cancelled."); + return; + } } startresting(player, willtrain); // do the first one right away @@ -4225,8 +4307,10 @@ char getchoicestr(prompt_t *prompt, int useshortcuts, int showallatstart) { // display prompt question - sprintf(promptstr, "%s %s %s", - prompt->q[prompt->whichq], prompt->maycancel ? "[ESC=cancel, '=next page] " : "", + sprintf(promptstr, "%s [%s%s] %s", + prompt->q[prompt->whichq], + prompt->maycancel ? "ESC," : "", + showall ? "'=next page,?=toggle" : "?=list", inpstring); mvwprintw(mainwin, 0, 0, "%s", promptstr); wclrtoeol(mainwin); @@ -4853,6 +4937,7 @@ void drawstatus(void) { char buf2[BUFLEN]; char waitbuf[BUFLEN]; char pname[BUFLEN]; + char maxmpstr[BUFLEN]; flag_t *f; int str,dex,iq,con; long xpleft; @@ -4902,8 +4987,8 @@ void drawstatus(void) { } // show certain flags - if (lfhasflag(player, F_FOODPOISONED)) { - strcat(buf, " Sick"); + if (lfhasflag(player, F_POISONED)) { + strcat(buf, " Poisoned"); } mvwprintw(statwin, 0, 0, buf); @@ -4954,9 +5039,16 @@ void drawstatus(void) { iq = getattr(player, A_IQ); con = getattr(player, A_CON); //redraw(); - sprintf(buf, "HP:%d/%d MP:%d/%d $:%d St:%d%c Dx:%d%c Iq:%d%c Cn:%d%c DLev:%d", + + if (getmaxmp(player) == player->maxmp) { + strcpy(maxmpstr, ""); + } else { + sprintf(maxmpstr, "(%d)",player->maxmp); + } + + sprintf(buf, "HP:%d/%d MP:%d/%d%s $:%d St:%d%c Dx:%d%c Iq:%d%c Cn:%d%c DLev:%d", player->hp,player->maxhp, - player->mp, player->maxmp, + player->mp, getmaxmp(player), maxmpstr, countmoney(player), str, (str == player->baseatt[A_STR]) ? ' ' : '*', dex, (dex == player->baseatt[A_DEX]) ? ' ' : '*', @@ -5227,8 +5319,16 @@ void showlfstats(lifeform_t *lf, int showall) { } } if (showall) { + char maxmpstr[BUFLEN]; + + if (getmaxmp(lf) == lf->maxmp) { + strcpy(maxmpstr, ""); + } else { + sprintf(maxmpstr, "(%d)",lf->maxmp); + } + mvwprintw(mainwin, y, 0, ftext, "Mana"); - wprintw(mainwin, "%d / %d", lf->mp , lf->maxmp); y++; + wprintw(mainwin, "%d / %d%s", lf->mp , lf->maxmp,maxmpstr); y++; } if (showall) { mvwprintw(mainwin, y, 0, ftext, "Exp Level"); @@ -5697,6 +5797,11 @@ void showlfstats(lifeform_t *lf, int showall) { mvwprintw(mainwin, y, 0, "%s %s sleeping.", you(lf), isplayer(lf) ? "are" : "is"); y++; } + f = lfhasknownflag(lf, F_BEINGSTONED); + if (f) { + mvwprintw(mainwin, y, 0, "%s %s being turning to stone.", you(lf), isplayer(lf) ? "are" : "is"); + y++; + } f = lfhasknownflag(lf, F_FLYING); if (f && (f->known)) { @@ -5776,13 +5881,29 @@ void showlfstats(lifeform_t *lf, int showall) { f = lfhasknownflagval(lf, F_CANWILL, ot->id, NA, NA, NULL); if (f && (f->known)) { char expirebuf[BUFLEN]; + char eb2[BUFLEN]; + int needgrab = B_FALSE; + if (f->val[2] == NA) { - sprintf(expirebuf, " (at will)"); + sprintf(expirebuf, "at will"); } else { - sprintf(expirebuf, " (every %d turn%s)",f->val[2], + sprintf(expirebuf, "every %d turn%s",f->val[2], (f->val[2] == 1) ? "" : "s"); } - sprintf(buf, "%-12s%s%s", ot->name, ot->desc, expirebuf); + + // extra options? + texttospellopts(f->text, NULL, NULL, &needgrab); + if (needgrab) { + strcat(expirebuf, ",after grab"); + } + + + if (strlen(expirebuf)) { + sprintf(eb2,"(%s)",expirebuf); + } else { + strcpy(eb2, ""); + } + sprintf(buf, "%-12s%s%s", ot->name, ot->desc, eb2); mvwprintw(mainwin, y, 0, buf); if (downline(&y, h, "ABILITIES", NULL, prompt, cmdchars, &ch)) { exitnow = B_TRUE; @@ -5798,10 +5919,11 @@ void showlfstats(lifeform_t *lf, int showall) { centre(mainwin, y, "SKILLS"); y += 2; for (f = lf->flags->first ; f ; f = f->next) { if (f->id == F_HASSKILL) { - mvwprintw(mainwin, y, 0, "%c %s %s%s", + mvwprintw(mainwin, y, 0, "%c %s (%s%s)", ismaxedskill(lf, f->val[0]) ? '*' : '-', - getskilllevelname(f->val[1]), getskillname(f->val[0]), - ismaxedskill(lf, f->val[0]) ? " (max)" : ""); + getskillname(f->val[0]), + getskilllevelname(f->val[1]), + ismaxedskill(lf, f->val[0]) ? "/MAX" : ""); if (downline(&y, h, "SKILLS", NULL, prompt, cmdchars, &ch)) { exitnow = B_TRUE; break; @@ -5837,11 +5959,27 @@ void showlfstats(lifeform_t *lf, int showall) { char mpbuf[BUFLEN]; int power; int mpcost; - mpcost = getmpcost(ot->id); - if (mpcost) { - sprintf(mpbuf, "%d MP", mpcost); + if (f->id == F_CANWILL) { + mpcost = 0; + + if (f->val[2] == NA) { + sprintf(mpbuf, "At will"); + } else { + sprintf(mpbuf, "At will, every %d turn%s",f->val[2], + (f->val[2] == 1) ? "" : "s"); + } } else { - sprintf(mpbuf, "At will"); + + mpcost = getmpcost(lf, ot->id); + if (mpcost) { + if (hasflag(ot->flags, F_ONGOING)) { + sprintf(mpbuf, "%d MP ongoing", mpcost); + } else { + sprintf(mpbuf, "%d MP", mpcost); + } + } else { + sprintf(mpbuf, "At will"); + } } power = getspellpower(lf, ot->id); @@ -5895,6 +6033,13 @@ void showlfstats(lifeform_t *lf, int showall) { y++; } } + + f = lfhasknownflag(lf, F_ARBOOST); + if (f && (f->known)) { + mvwprintw(mainwin, y, 0, "%s %s protected by a magical shield.", you(lf), isplayer(lf) ? "are" : "is"); + y++; + } + f = lfhasknownflag(lf, F_NOPACK); if (f && (f->known)) { mvwprintw(mainwin, y, 0, "%s cannot carry objects.", you(lf)); @@ -5934,9 +6079,9 @@ void showlfstats(lifeform_t *lf, int showall) { mvwprintw(mainwin, y, 0, "%s receive enhanced knowledge about the world.", you(lf)); y++; } - f = lfhasknownflag(lf, F_FOODPOISONED); + f = lfhasknownflag(lf, F_POISONED); if (f && (f->known)) { - sprintf(buf, "%s have food poisoning.", you(lf)); + sprintf(buf, "%s %s poisoned.", you(lf), isplayer(lf) ? "are" : "is"); if (lfhasflag(lf, F_EXTRAINFO) || lfhasflag(lf, F_OMNIPOTENT)) { char buf2[BUFLEN]; sprintf(buf2, " [%d left]", f->lifetime); @@ -6041,7 +6186,21 @@ void showlfstats(lifeform_t *lf, int showall) { } f = lfhasknownflag(lf, F_RESISTMAG); if (f) { - mvwprintw(mainwin, y, 0, "Magic does not affect %s.", you(lf)); + int mr; + char adjective[BUFLEN]; + mr = getmr(lf); + if (mr <= 5) { + strcpy(adjective, "slightly"); + } else if (mr <= 10) { + strcpy(adjective, "quite"); + } else if (mr <= 15) { + strcpy(adjective, "very"); + } else if (mr <= 20) { + strcpy(adjective, "extremely"); + } else { // ie. 21 upwards + strcpy(adjective, "incredibly"); + } + mvwprintw(mainwin, y, 0, "%s %s %s resistant to magic.", you(lf), isplayer(lf) ? "are" : "is", adjective); y++; } f = lfhasknownflag(lf, F_TIRED); diff --git a/lf.c b/lf.c index 63a2a58..9f920ca 100644 --- a/lf.c +++ b/lf.c @@ -236,7 +236,7 @@ void adjustdamlf(lifeform_t *lf, int *amt, enum DAMTYPE damtype) { return; } - if ((damtype == DT_MAGIC) && hasmr(lf)) { + if ((damtype == DT_MAGIC) && skillcheck(lf, SC_RESISTMAG, (*amt * 2), 0)) { *amt = 0; return; } @@ -545,8 +545,6 @@ int calcxp(lifeform_t *lf) { return f->val[0]; } - - // attack // - get average attack damage @@ -638,6 +636,14 @@ int cancast(lifeform_t *lf, enum OBTYPE oid, int *mpcost) { f = lfhasflagval(lf, F_CANWILL, oid, NA, NA, NULL); if (f) { + objecttype_t *ot; + int needgrab = B_FALSE; + + // get canwill opts + texttospellopts(f->text, NULL, NULL, &needgrab); + + ot = findot(oid); + // no mp cost. if (mpcost) *mpcost = 0; // ability ready? @@ -647,6 +653,14 @@ int cancast(lifeform_t *lf, enum OBTYPE oid, int *mpcost) { reason = E_NOTREADY; return B_FALSE; } + + if (needgrab || hasflag(ot->flags, F_NEEDSGRAB)) { + if (!lfhasflag(lf, F_GRABBING)) { + reason = E_NEEDGRAB; + return B_FALSE; + } + } + } else if (lfhasflagval(lf, F_CANCAST, oid, NA, NA, NULL)) { int cost,power; // how powerful is this spell? @@ -656,7 +670,7 @@ int cancast(lifeform_t *lf, enum OBTYPE oid, int *mpcost) { return B_FALSE; } // how much mp does it take to cast this? - cost = getmpcost(oid); + cost = getmpcost(lf, oid); if (mpcost) *mpcost = cost; if (lf->mp >= cost) { castable = B_TRUE; @@ -910,7 +924,7 @@ int canweild(lifeform_t *lf, object_t *o) { object_t *oo; flag_t *f; - if (lfhasflagval(lf, F_NOBODYPART, BP_WEAPON, NA, NA, NULL)) { + if (!hasbp(lf, BP_WEAPON)) { reason = E_NOHANDS; return B_FALSE; } @@ -970,6 +984,7 @@ int castspell(lifeform_t *lf, enum OBTYPE sid, lifeform_t *targlf, object_t *tar int rv; int cost; flag_t *f,*willflag; + int power; // check whether we _can_ cast it. // do we have this spell/ability? // enough mp? etc @@ -999,11 +1014,19 @@ int castspell(lifeform_t *lf, enum OBTYPE sid, lifeform_t *targlf, object_t *tar // lose mp lf->mp -= cost; - if (hasmr(lf)) { - if (isplayer(lf)) { - msg("Your spell seems to have failed."); + + power = getspellpower(lf, sid); + + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 20 + getspellpower(lf, sid), 0)) { + if (power > 1) { + // half strength + power /= 2; + if (power <= 1) power = 1; + + if (isplayer(lf)) { + msg("Your magic resistance interferes with your spell!"); + } } - return B_FALSE; } // announce @@ -1055,6 +1078,7 @@ void die(lifeform_t *lf) { if (isplayer(lf) && hasjob(lf, J_GOD)) { char ch; + msg("You die..."); more(); ch = askchar("Die", "yn", "n", B_TRUE); if (ch == 'n') { lf->hp = lf->maxhp; @@ -1174,8 +1198,15 @@ void die(lifeform_t *lf) { } corpse = addob(lf->cell->obpile, corpsename); - if (corpse && (lf->lastdamtype == DT_FIRE) && isflammable(corpse)) { - addflag(corpse->flags, F_ONFIRE, B_TRUE, NA, NA, NULL); + if (corpse) { + if ((lf->lastdamtype == DT_FIRE) && isflammable(corpse)) { + addflag(corpse->flags, F_ONFIRE, B_TRUE, NA, NA, NULL); + } + + // tainted? + if ((lf->lastdamtype == DT_POISONGAS) || lfhasflag(lf, F_POISONOUS) || lfhasflag(lf, F_POISONED)) { + addflag(corpse->flags, F_TAINTED, B_TRUE, NA, NA, NULL); + } } @@ -1358,7 +1389,7 @@ int eat(lifeform_t *lf, object_t *o) { msg("That %s was bad!", drinking ? "liquid" : "food"); } // food poisoning for 20 turns - addtempflag(lf->flags, F_FOODPOISONED, B_TRUE, NA, NA, obname, 20); + addtempflag(lf->flags, F_POISONED, B_TRUE, NA, NA, obname, 20); } // change hunger @@ -1631,21 +1662,28 @@ void fightback(lifeform_t *lf, lifeform_t *attacker) { if (willflee(lf)) { scare(lf, attacker, PERMENANT); } else { + lifeform_t *l; // they will now fight back! if (!hasflagval(lf->flags, F_TARGET, attacker->id, NA, NA, NULL)) { addflag(lf->flags, F_TARGET, attacker->id, attacker->cell->x, attacker->cell->x, NULL); - // announce - /* - if (haslos(player, lf->cell)) { - char attackername[BUFLEN]; - char lfname[BUFLEN]; - getlfname(attacker, attackername); - getlfname(lf, lfname); - capitalise(lfname); - msg("%s turns towards %s!", lfname, - haslos(player, attacker->cell) ? attackername : "something"); + } + + // any nearby monsters which will help out? + for (l = lf->cell->map->lf ; l ; l = l->next) { + if (l->race->baseid == lf->race->baseid) { + if (!isdead(l) && (isfriendly(l) == isfriendly(lf))) { + if (cansee(l, attacker)) { + // make hostile + if (!isfriendly(lf)) { + addflag(l->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + } + // attack! + if (!hasflagval(l->flags, F_TARGET, attacker->id, NA, NA, NULL)) { + addflag(l->flags, F_TARGET, attacker->id, attacker->cell->x, attacker->cell->x, NULL); + } + } + } } - */ } } } @@ -1903,17 +1941,22 @@ void gainlevel(lifeform_t *lf) { void gainmp(lifeform_t *lf, int amt) { int gained = B_FALSE; int maxed = B_FALSE; + int max; + + max = getmaxmp(lf); // magic resistance means you can't regenerate mana! - if (hasmr(lf)) return; + if (skillcheck(lf, SC_RESISTMAG, 20, 0)) { + return; + } - if (lf->mp < lf->maxmp) { + if (lf->mp < max) { lf->mp += amt; gained = B_TRUE; } - if (lf->mp >= lf->maxmp) { - lf->mp = lf->maxmp; + if (lf->mp >= max) { + lf->mp = max; if (gained) maxed = B_TRUE; } @@ -1994,27 +2037,29 @@ int getarmourrating(lifeform_t *lf) { flag_t *f; int ar = 0; - f = hasflag(lf->flags, F_ARMOURRATING); - if (f) { - ar += f->val[0]; - } - - f = hasflag(lf->flags, F_PHALANX); - if (f) { - int dir; - cell_t *c; - int nmatched = 0; - // count adjacent allies of name xx - for (dir = DC_N; dir <= DC_NW; dir++) { - c = getcellindir(lf->cell, dir); - if (c && c->lf) { - if (strcasestr(c->lf->race->name, f->text)) { - nmatched++; + for (f = lf->flags->first ; f ; f = f->next) { + if (f->id == F_ARMOURRATING) { + ar += f->val[0]; + } + if (f->id == F_ARBOOST) { + ar += f->val[0]; + } + if (f->id == F_PHALANX) { + int dir; + cell_t *c; + int nmatched = 0; + // count adjacent allies of name xx + for (dir = DC_N; dir <= DC_NW; dir++) { + c = getcellindir(lf->cell, dir); + if (c && c->lf) { + if (strcasestr(c->lf->race->name, f->text)) { + nmatched++; + } } } - } - if (nmatched >= f->val[2]) { - ar += f->val[0]; + if (nmatched >= f->val[2]) { + ar += f->val[0]; + } } } @@ -2520,7 +2565,11 @@ int getnightvisrange(lifeform_t *lf) { f = lfhasflag(lf, F_SEEINDARK); if (f) { - range = getvisrange(lf); + if (f->val[0] == UNLIMITED) { + range = getvisrange(lf); + } else { + range = f->val[0]; + } } return range; @@ -2656,13 +2705,35 @@ float getmaxliftweight(lifeform_t *lf) { } */ +int getmaxmp(lifeform_t *lf) { + flag_t *f; + int activemp = 0; + int maxmp; + for (f = lf->flags->first ; f ; f = f->next) { + if (f->id == F_BOOSTSPELL) { + activemp += getmpcost(NULL, f->val[0]); + } + } + maxmp = lf->maxmp - activemp; + //if (maxmp < 0) maxmp = 0; // ???? + return maxmp; +} + float getmaxpushweight(lifeform_t *lf) { float max; max = getlfweight(lf, B_NOOBS) * 2; // twice your body weight return max; } -// TODO: take darkness into account +int getmr(lifeform_t *lf) { + int amt = 0; + + sumflags(lf->flags, F_RESISTMAG, &amt, NULL, NULL); + + return amt; +} + + int getvisrange(lifeform_t *lf) { int range; flag_t *f; @@ -2707,7 +2778,7 @@ int getmovespeed(lifeform_t *lf) { } else if (f->id == F_FASTMOVE) { speed -= f->val[0]; } else if (f->id == F_SPRINTING) { - speed -= 5; + speed -= 10; } else if (f->id == F_TIRED) { speed += 5; } @@ -2724,7 +2795,7 @@ int getmovespeed(lifeform_t *lf) { speed += 10; break; } - + return speed; } @@ -3718,6 +3789,27 @@ job_t *hasjob(lifeform_t *lf, enum JOB job) { } + +int lfcanbestoned(lifeform_t *lf) { + switch (getlfmaterial(lf)) { + case MT_GAS: + case MT_STONE: + return B_FALSE; + default: + break; + } + if (lfhasflag(lf, F_NONCORPOREAL)) { + return B_FALSE; + } + if (isimmuneto(lf->flags, DT_PETRIFY)) { + return B_FALSE; + } + if (isdead(lf)) { + return B_FALSE; + } + return B_TRUE; +} + // does the lf has this flag, either internally or // conferred by a held/equipped object? flag_t *lfhasflag(lifeform_t *lf, enum FLAG fid) { @@ -3993,6 +4085,13 @@ void loseobflags(lifeform_t *lf, object_t *o, int kind) { } } +int hasbp(lifeform_t *lf, enum BODYPART bp) { + if (lfhasflagval(lf, F_NOBODYPART, bp, NA, NA, NULL)) { + return B_FALSE; + } + return B_TRUE; +} + int haslof(lifeform_t *viewer, cell_t *dest) { int deltax, deltay; int numpixels; @@ -4366,13 +4465,6 @@ int haslos(lifeform_t *viewer, cell_t *dest) { return B_TRUE; } -int hasmr(lifeform_t *lf) { - if (lfhasflag(lf, F_RESISTMAG)) { - return B_TRUE; - } - return B_FALSE; -} - void initjobs(void) { int i; @@ -4382,7 +4474,7 @@ void initjobs(void) { addjob(J_GOD, "Diety"); //addflag(lastjob->flags, F_OMNIPOTENT, B_TRUE, NA, NA, NULL); addflag(lastjob->flags, F_MPDICE, 100, NA, NA, NULL); - addflag(lastjob->flags, F_MPREGEN, 100, NA, NA, NULL); + //addflag(lastjob->flags, F_MPREGEN, 100, NA, NA, NULL); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "short sword of pyromania"); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "hand of god"); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 blocks of chocolate"); @@ -4397,6 +4489,8 @@ void initjobs(void) { addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "ring of invulnerability"); addflag(lastjob->flags, F_STARTSKILL, SK_SPELLCASTING, PR_MASTER, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_SS_DEATH, PR_MASTER, NA, NULL); + addflag(lastjob->flags, F_STARTSKILL, SK_SS_TRANSLOCATION, PR_MASTER, NA, NULL); + addflag(lastjob->flags, F_STARTSKILL, SK_SS_DIVINATION, PR_MASTER, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_RESEARCH, PR_NOVICE, NA, NULL); // gods may use all abilities and cast any spell at will for (i = SS_NONE+1; i < SS_LAST; i++) { @@ -4415,6 +4509,8 @@ void initjobs(void) { addflag(lastjob->flags, F_MPDICE, 1, NA, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_LOCKPICKING, PR_NOVICE, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_NOVICE, NA, NULL); + addflag(lastjob->flags, F_STARTSKILL, SK_SPELLCASTING, PR_NOVICE, NA, NULL); + addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_NOVICE, NA, NULL); addjob(J_ALLOMANCER, "Allomancer"); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "1 gold coins"); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "club"); @@ -4524,7 +4620,6 @@ void initrace(void) { addflag(lastrace->flags, F_RARITY, H_DUNGEON, 60, NA, NULL); addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL); addflag(lastrace->flags, F_HITDICE, 2, 2, NA, NULL); - addflag(lastrace->flags, F_EVASION, 0, NA, NA, NULL); addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL); addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL); addflag(lastrace->flags, F_HASATTACK, NA, NA, NA, "fists"); @@ -4542,6 +4637,34 @@ void initrace(void) { // addflag(lastrace->flags, F_RESTHEALMPAMT, 1, NA, NA, NULL); // monsters + + addrace(R_BEHOLDER, "beholder", 5, 'e', MT_FLESH); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_GENIUS, NA, NULL); + addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL); + addflag(lastrace->flags, F_HITDICE, 12, 4, NA, NULL); + addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL); + addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL); + addflag(lastrace->flags, F_SPELLSPEED, SP_NORMAL, NA, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_CANWILL, OT_S_FIREDART, NA, NA, "pw:5;"); + addflag(lastrace->flags, F_CANWILL, OT_S_WEAKEN, NA, NA, "pw:2;"); + addflag(lastrace->flags, F_CANWILL, OT_S_SLEEP, NA, NA, "pw:2;"); + addflag(lastrace->flags, F_CANWILL, OT_S_PULLMETAL, NA, NA, "pw:2;"); + addflag(lastrace->flags, F_CANWILL, OT_S_PARALYZE, NA, NA, "pw:2;"); + addflag(lastrace->flags, F_HASATTACK, 2, 4, NA, "teeth"); + addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, "gazes at you"); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL); + addflag(lastrace->flags, F_HASSKILL, SK_SPELLCASTING, PR_EXPERT, NA, NULL); + addrace(R_BUGBEAR, "bugbear", 120, 'G', MT_FLESH); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_RARITY, H_DUNGEON, 65, NA, NULL); @@ -4560,6 +4683,26 @@ void initrace(void) { addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL); addflag(lastrace->flags, F_CANWILL, OT_A_HEAVYBLOW, 2, 2, NULL); + addrace(R_COCKATRICE, "cockatrice", 5, 'c', MT_FLESH); + addflag(lastrace->flags, F_STARTATT, A_DEX, DX_SWIFT, NA, NULL); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); + addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "splash of cockatrice blood"); + addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_HITDICE, 7, 0, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_DTIMMUNE, DT_PETRIFY, B_TRUE, NA, NULL); + addflag(lastrace->flags, F_HASATTACK, 1, 6, 3, "teeth"); + // special attack handled in attack.c + addrace(R_DARKMANTLE, "darkmantle", 70, 'Q', MT_FLESH); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); addflag(lastrace->flags, F_STARTATT, A_STR, ST_MIGHTY, NA, NULL); @@ -4575,7 +4718,7 @@ void initrace(void) { addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL); addflag(lastrace->flags, F_SPELLSPEED, SP_VERYSLOW, NA, NA, NULL); addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, ""); - addflag(lastrace->flags, F_CANWILL, OT_S_DARKNESS, 7, 7, NULL); + addflag(lastrace->flags, F_CANWILL, OT_S_DARKNESS, 7, 7, "pw:3;"); addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL); addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, NULL); addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, "waves its tentacles"); @@ -4592,7 +4735,7 @@ void initrace(void) { addrace(R_EYEBAT, "eyebat", 5, 'e', MT_FLESH); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_SMART, NA, NULL); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 65, NA, NULL); addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); addflag(lastrace->flags, F_HITDICE, 1, 3, NA, NULL); addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL); @@ -4702,7 +4845,7 @@ void initrace(void) { addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL); addflag(lastrace->flags, F_CANCAST, OT_S_FIREDART, NA, NA, NULL); addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEPILLAR, NA, NA, NULL); - addflag(lastrace->flags, F_CANWILL, OT_S_FLAMEBURST, 4, 4, NULL); + addflag(lastrace->flags, F_CANWILL, OT_S_FLAMEBURST, 4, 4, "pw:4;"); addflag(lastrace->flags, F_HASSKILL, SK_SPELLCASTING, PR_ADEPT, NA, NULL); addrace(R_GIANTFIRETITAN, "fire titan", 160, 'H', MT_FLESH); @@ -4728,7 +4871,7 @@ void initrace(void) { addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, NA, NA, "bellows^a bellow"); addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL); addflag(lastrace->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_CANWILL, OT_S_BURNINGWAVE, 3, 3, NULL); + addflag(lastrace->flags, F_CANWILL, OT_S_BURNINGWAVE, 3, 3, "pw:6;"); addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL); // TODO: storm giant @@ -4805,7 +4948,7 @@ void initrace(void) { addrace(R_GOBLIN, "goblin", 20, 'g', MT_FLESH); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_RARITY, H_DUNGEON, 75, NA, NULL); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 85, NA, NULL); addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL); addflag(lastrace->flags, F_HITDICE, 1, 3, NA, NULL); addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL); @@ -4830,7 +4973,7 @@ void initrace(void) { lastrace->baseid = R_GOBLIN; addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "goblin corpse"); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_RARITY, H_DUNGEON, 70, NA, NULL); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 75, NA, NULL); addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL); addflag(lastrace->flags, F_HITDICE, 3, 5, NA, NULL); addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL); @@ -4957,6 +5100,7 @@ void initrace(void) { addrace(R_KOBOLD, "kobold", 18, 'k', MT_FLESH); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, NA, NULL); + addflag(lastrace->flags, F_POISONOUS, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, ""); addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL); addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL); @@ -4979,6 +5123,7 @@ void initrace(void) { addrace(R_TROGLODYTE, "troglodyte", 20, 'z', MT_FLESH); addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_POISONOUS, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL); addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, NA, NULL); @@ -4997,7 +5142,7 @@ void initrace(void) { addflag(lastrace->flags, F_DTVULN, DT_COLD, B_TRUE, NA, NULL); addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL); addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL); - addflag(lastrace->flags, F_STENCH, 2, 2, NA, NULL); + addflag(lastrace->flags, F_STENCH, 3, 3, NA, NULL); addrace(R_LIZARDMAN, "lizardman", 100, 'z', MT_FLESH); addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); @@ -5238,7 +5383,7 @@ void initrace(void) { addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, NA, NULL); addflag(lastrace->flags, F_HITDICE, 5, 0, NA, NULL); addflag(lastrace->flags, F_EVASION, 0, NA, NA, NULL); - addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL); addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL); addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); @@ -5255,6 +5400,7 @@ void initrace(void) { addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL); addflag(lastrace->flags, F_SEEWITHOUTEYES, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_DTIMMUNE, DT_ACID, B_TRUE, NA, NULL); + addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "puddle of acid"); addrace(R_SPRITEFIRE, "fire sprite", 5, 'n', MT_FIRE); addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "small fire"); @@ -5306,26 +5452,8 @@ void initrace(void) { // end monsters - // small animals - addrace(R_NEWT, "giant newt", 0.1, ':', MT_FLESH); - addflag(lastrace->flags, F_RARITY, H_DUNGEON, 100, NA, NULL); - addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); - addflag(lastrace->flags, F_HITDICE, 1, 0, NA, NULL); - addflag(lastrace->flags, F_SIZE, SZ_MINI, NA, NA, NULL); - addflag(lastrace->flags, F_EVASION, 0, NA, NA, NULL); - addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL); - addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); - addflag(lastrace->flags, F_FLEEONDAM, B_TRUE, NA, NA, ""); - addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); - addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); - addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); - addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); - addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL); - addrace(R_BAT, "bat", 1, 'B', MT_FLESH); + // animals + addrace(R_BAT, "giant bat", 1, 'B', MT_FLESH); addflag(lastrace->flags, F_RARITY, H_DUNGEON, 90, NA, ""); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); @@ -5336,7 +5464,7 @@ void initrace(void) { addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, ""); addflag(lastrace->flags, F_HITDICE, 0, 2, NA, ""); addflag(lastrace->flags, F_HASATTACK, 1, 2, 0, "teeth"); - addflag(lastrace->flags, F_EVASION, 30, NA, NA, NULL); + addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL); addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL); @@ -5345,6 +5473,84 @@ void initrace(void) { addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL); + addrace(R_ANT, "giant worker ant", 0.1, 'a', MT_FLESH); + lastrace->baseid = R_ANT; + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 85, NA, NULL); + addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_ARMOURRATING, 4, NA, NA, NULL); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); + addflag(lastrace->flags, F_HITDICE, 1, 0, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_EVASION, 0, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, ""); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_HASATTACK, 0, 1, 4, "teeth"); + addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL); + addrace(R_ANTS, "giant soldier ant", 0.1, 'a', MT_FLESH); + lastrace->baseid = R_ANT; + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, NA, NULL); + addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); + addflag(lastrace->flags, F_HITDICE, 4, 4, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_EVASION, 0, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, ""); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_HASATTACK, 0, 1, 4, "teeth"); + addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:1d8+3;"); + addflag(lastrace->flags, F_CANWILL, OT_A_STINGACID, NA, NA, "dam:1d6+3;needgrab:1;"); + addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL); + addrace(R_HAWK, "blood hawk", 1, 'A', MT_FLESH); // 'A' for Avian + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, NA, ""); + addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, ""); + addflag(lastrace->flags, F_HITDICE, 3, 4, NA, ""); + addflag(lastrace->flags, F_HASATTACK, 1, 6, 5, "claws"); +oooooooo + addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + FLYBY ability +ooooooooo + addrace(R_NEWT, "giant newt", 0.1, ':', MT_FLESH); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 100, NA, NULL); + addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); + addflag(lastrace->flags, F_HITDICE, 1, 0, NA, NULL); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_FLEEONDAM, B_TRUE, NA, NA, ""); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL); addrace(R_RAT, "giant rat", 0.2, 'r', MT_FLESH); addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); @@ -5366,6 +5572,29 @@ void initrace(void) { addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL); addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL); + addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL); + addrace(R_SNAKE, "brown snake", 0.2, 's', MT_FLESH); + addflag(lastrace->flags, F_RARITY, H_DUNGEON, 95, NA, ""); + addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); + addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL); + addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, ""); + addflag(lastrace->flags, F_HITDICE, 2, NA, NA, ""); + addflag(lastrace->flags, F_HASATTACK, 1, 4, 0, "teeth"); + addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 20, "5-10"); + addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL); + addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL); + addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL); + addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL); + addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL); addrace(R_WOLF, "wolf", 10, 'd', MT_FLESH); addflag(lastrace->flags, F_ANIMAL, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); @@ -5406,6 +5635,7 @@ void initrace(void) { addflag(lastrace->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL); addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL); addrace(R_GIANTFLY, "giant fly", 1, 'i', MT_FLESH); + lastrace->baseid = R_GIANTFLY; addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); addflag(lastrace->flags, F_NUMAPPEAR, 3, 3, NA, ""); @@ -5426,6 +5656,7 @@ void initrace(void) { addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, NA, NA, "buzzes angrily^an angry buzzing"); addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL); addrace(R_GIANTBLOWFLY, "giant blowfly", 2, 'i', MT_FLESH); + lastrace->baseid = R_GIANTFLY; addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL); addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL); addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "giant fly corpse"); @@ -5951,6 +6182,10 @@ int losehp_real(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *froml if ((damtype == DT_COLD) && lfhasflag(lf, F_COLDBLOOD)) { // slow them addtempflag(lf->flags, F_SLOWMOVE, 5, NA, NA, NULL, 10); + } else if ((damtype == DT_POISONGAS) && (amt > 0)) { + if (!skillcheck(lf, SC_POISON, 25, 0)) { + addtempflag(lf->flags, F_POISONED, B_TRUE, NA, NA, NULL, rnd(5,10)); + } } } @@ -5984,6 +6219,9 @@ int losehp_real(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *froml } } + // you wake up if you were hit! + killflagsofid(lf->flags, F_ASLEEP); + // update screen drawstatus(); updatestatus(); @@ -6168,6 +6406,7 @@ void modhunger(lifeform_t *lf, int amt) { needfeeling ? "feeling " : "", buf, (needexclam) ? '!' : '.'); + stopresting(lf); } } } @@ -6355,10 +6594,19 @@ int push(lifeform_t *lf, object_t *o, int dir) { obcell = o->pile->where; dstcell = getcellindir(obcell, dir); + // take time (even if it will fail) - twice normal + taketime(lf, getactspeed(lf) * 2); + if (!obcell || !dstcell) { return B_TRUE; } + + if (touch(lf, o)) { + return B_TRUE; + } + + // move object o = moveob(o, dstcell->obpile, o->amt); if (!o) { @@ -6368,9 +6616,6 @@ int push(lifeform_t *lf, object_t *o, int dir) { // move player moveto(lf, obcell, B_TRUE); - // take time - twice normal - taketime(lf, getactspeed(lf) * 2); - // announce if (lf->controller == C_PLAYER) { msg("You push %s.", obname); @@ -6782,7 +7027,6 @@ void setrace(lifeform_t *lf, enum RACE rid) { race_t *newrace; char buf[BUFLEN]; - newrace = findrace(rid); if ((gamemode == GM_GAMESTARTED) && lf->race) { @@ -6812,6 +7056,9 @@ void setrace(lifeform_t *lf, enum RACE rid) { } } + // stop stoning. + killflagsofid(lf->flags, F_BEINGSTONED); + // first remove flags from existing race, or temporary ones lf->born = B_FALSE; for (f = lf->flags->first ; f ; f = nextf) { @@ -6936,8 +7183,10 @@ void initskills(void) { addskill(SK_ATHLETICS, "Athletics", "Assists with sprinting and exhaustion recovery."); addskill(SK_FIRSTAID, "First Aid", "Increases the rate at which you regain health."); addskill(SK_LOCKPICKING, "Lockpicking", "Enhances your ability to pick locks."); + addskill(SK_MAGITEMUSAGE, "Magic Item Usage", "Lets you make better use of magical items."); addskill(SK_RESEARCH, "Research", "Allows you a chance of recognising unknown objects."); addskill(SK_SPELLCASTING, "Spellcasting", "Determines your ability to cast spells from all schools."); + addskill(SK_TECHUSAGE, "Technology", "Determines your comprehension of modern technological items."); // weaponry addskill(SK_AXES, "Axes", "Helps you use chopping weapons like axes."); addskill(SK_CLUBS, "Clubs", "Helps you use bashing weapons like maces or clubs."); @@ -6960,7 +7209,6 @@ void initskills(void) { addskill(SK_SS_SUMMONING, "Summoning", "Boosts casting of spells from this school."); addskill(SK_SS_TRANSLOCATION, "Translocation", "Boosts casting of spells from this school."); addskill(SK_SS_WILD, "Wild Magic", "Boosts casting of spells from this school."); - addskill(SK_TECHUSAGE, "Tech Usage", "Lets you comprehend modern technological items."); } void interrupt(lifeform_t *lf) { @@ -6998,7 +7246,7 @@ int shoot(lifeform_t *lf) { taketime(lf, getattackspeed(lf)); - fireat(lf, ammo, targ->cell, firespeed, gun); + fireat(lf, ammo, 1, targ->cell, firespeed, gun); return B_FALSE; } @@ -7034,18 +7282,28 @@ int real_skillcheck(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod, int *r break; case SC_IQ: case SC_MORALE: + case SC_WILL: attrib = getattr(lf, A_IQ); break; case SC_SLIP: attrib = getattr(lf, A_DEX); break; + case SC_POISON: + attrib = getattr(lf, A_CON); + break; case SC_DODGE: // getevasion returns 0-100 (ie. pct chance) // convert this to 0-20 attrib = getevasion(lf) / 5; break; + case SC_RESISTMAG: + attrib = (getattr(lf, A_CON)/4) + (getattr(lf, A_IQ)/4) + getmr(lf); + break; } + // level modifier + levmod = (lf->level / 3); + // other modifiers if (ct == SC_SLIP) { if (getequippedob(lf->pack, BP_FEET)) { @@ -7054,9 +7312,7 @@ int real_skillcheck(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod, int *r if (lfhasflag(lf, F_STABILITY)) { othermod += 10; } - } - - if (ct == SC_OPENLOCKS) { + } else if (ct == SC_OPENLOCKS) { enum SKILLLEVEL slev; slev = getskill(lf, SK_LOCKPICKING); if (slev == PR_INEPT) { @@ -7064,10 +7320,20 @@ int real_skillcheck(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod, int *r } else { othermod += (5 * slev); } + } else if (ct == SC_POISON) { + // auto pass if we are immune + if (isimmuneto(lf->flags, DT_POISON)) { + othermod += (diff*2); + } else if (isresistantto(lf->flags, DT_POISON)) { + othermod += 5; + } else if (isvulnto(lf->flags, DT_POISON)) { + othermod -= 10; + } + } else if (ct == SC_WILL) { + // level counts for more + levmod *= 2; } - levmod = (lf->level / 3); - roll = rolldie(1, 20); if (db) { sprintf(mbuf, "%s skillcheck - need %d, got %d(rll)+%d(attr)+%d(lvm)+%d(othmod)+%d(mod)=",lf->race->name, diff, roll, attrib,levmod, othermod,mod); @@ -7218,24 +7484,16 @@ int stone(lifeform_t *lf) { char statname[BUFLEN]; int failed = B_FALSE; - // SAVING THROW ? - - getlfname(lf, lfname); - - // check for immune to stoning - switch (getlfmaterial(lf)) { - case MT_STONE: - case MT_GAS: - failed = B_TRUE; - break; - default: - break; + if (!lfcanbestoned(lf)) { + failed = B_TRUE; } - if (failed) { return B_TRUE; } + getlfname(lf, lfname); + + sprintf(statname, "statue of a %s", lf->race->name); addob(lf->cell->obpile, statname); @@ -7416,13 +7674,15 @@ void taketime(lifeform_t *lf, long howlong) { int throwat(lifeform_t *thrower, object_t *o, cell_t *where) { taketime(thrower, SPEED_THROW); - return fireat(thrower, o, where, getthrowspeed(getattr(thrower, A_STR)), NULL); + return fireat(thrower, o, 1, where, getthrowspeed(getattr(thrower, A_STR)), NULL); } // lf effects which happen every xx ticks void timeeffectslf(lifeform_t *lf) { flag_t *f; - f = hasflag(lf->flags, F_FOODPOISONED); + object_t *o, *nexto; + + f = hasflag(lf->flags, F_POISONED); if (f) { //sprintf(buf, "eating a bad %s",strchr(obname, ' ')); // chance of losing hp @@ -7433,10 +7693,17 @@ void timeeffectslf(lifeform_t *lf) { } sprintf(buf, "food poisoning^from a bad %s",noprefix(f->text)); losehp(lf, 2, DT_DIRECT, NULL, buf); + taketime(lf,5); } } + // decrement flags timeeffectsflags(lf->flags); + + if (isdead(lf)) { + return; + } + // revert to original form if a polymorph just expired if (lf->polyrevert) { enum RACE rid = R_NONE; @@ -7460,6 +7727,13 @@ void timeeffectslf(lifeform_t *lf) { lf->polyrevert = B_FALSE; } + + // time effects on lifeform's objects + for (o = lf->pack->first ; o ; o = nexto) { + nexto = o->next; + timeeffectsob(o); + } + } ////////////////////////////////// @@ -7572,8 +7846,8 @@ void turneffectslf(lifeform_t *lf) { radius = f->val[0]; ot = findotn(f->text); if (ot) { - for (y = lf->cell->y - radius ; y < lf->cell->y + radius; y++) { - for (x = lf->cell->x - radius ; x < lf->cell->x + radius; x++) { + for (y = lf->cell->y - radius ; y <= lf->cell->y + radius; y++) { + for (x = lf->cell->x - radius ; x <= lf->cell->x + radius; x++) { cell_t *c; c = getcellat(lf->cell->map, x, y); if (c && !c->type->solid && (getcelldist(lf->cell, c) <= radius)) { @@ -7628,11 +7902,11 @@ void turneffectslf(lifeform_t *lf) { f = hasflag(o->flags, F_WALKDAM); if (f) { int dam; - dam = f->val[0]; + dam = roll(f->text); getobname(o, buf, o->amt); - dam = losehp(lf, dam, f->val[1], NULL, buf); + dam = losehp(lf, dam, f->val[0], NULL, buf); if (dam > 0) { - if (f->val[1] == DT_POISONGAS) { + if (f->val[0] == DT_POISONGAS) { if (isplayer(lf) || cansee(player, lf)) { char lfname[BUFLEN]; getlfname(lf, lfname); @@ -7640,11 +7914,11 @@ void turneffectslf(lifeform_t *lf) { } } else { if (isplayer(lf)) { - msg("%s %ss you!", buf, getattackverb(f->val[1], dam,lf->maxhp)); + msg("%s %ss you!", buf, getattackverb(NULL, NULL, f->val[0], dam,lf->maxhp)); } else if (cansee(player, lf)) { char lfname[BUFLEN]; getlfname(lf, lfname); - msg("%s %ss %s!", buf, getattackverb(f->val[1], dam,lf->maxhp), lfname); + msg("%s %ss %s!", buf, getattackverb(NULL, NULL, f->val[0], dam,lf->maxhp), lfname); } } } @@ -7823,10 +8097,14 @@ int unweild(lifeform_t *lf, object_t *o) { int useability(lifeform_t *lf, enum OBTYPE aid, lifeform_t *who, cell_t *where) { int rv; + flag_t *cwflag; if (!cancast(lf, aid, NULL)) { if (isplayer(lf)) { // announce switch (reason) { + case E_NEEDGRAB: + msg("You need to hold someone before using this ability."); + break; case E_NOTREADY: msg("This ability is not recharged yet."); break; @@ -7840,7 +8118,9 @@ int useability(lifeform_t *lf, enum OBTYPE aid, lifeform_t *who, cell_t *where) // taketime() will happen during abiltiyeffects() // use the ability - rv = abilityeffects(lf, aid, where, who); + + cwflag = lfhasflagval(lf, F_CANWILL, aid, NA, NA, NULL); + rv = abilityeffects(lf, aid, where, who, cwflag); return rv; } @@ -7985,35 +8265,52 @@ int validateraces(void) { } for (f = r->flags->first ; f ; f = f->next) { - if (f->id == F_STARTOB) { + if (f->id == F_HASATTACK) { + if (!f->text || (strlen(f->text) == 0)) { + printf("ERROR in race '%s' - F_HASATTACK with zero length text.\n", r->name); + goterror = B_TRUE; + } else { + objecttype_t *ot; + ot = findotn(f->text); + if (!ot) { + printf("ERROR in race '%s' - F_HASATTACK with bad object: '%s'\n", r->name,f->text); + goterror = B_TRUE; + } + } + } else if (f->id == F_STARTOB) { if (!f->text || (strlen(f->text) == 0)) { printf("ERROR in race '%s' - F_STARTOB with zero length text.\n", r->name); goterror = B_TRUE; } - } else if (f->id == F_CANCAST) { - flag_t *ff; - ff = hasflagval(r->flags, F_HASSKILL, SK_SPELLCASTING, NA, NA, NULL); - if (ff) { - int power; - lifeform_t *lf; - // add a fake lf - lf = addlf(&fakecell, r->id, 1); - //power = (1 + ff->val[1]) / getspelllevel(f->val[0]); - power = getspellpower(lf, f->val[0]); - if (power <= 0) { + } else if ((f->id == F_CANCAST) || (f->id == F_CANWILL)) { + objecttype_t *sp; + sp = findot(f->val[0]); + if (sp->obclass->id == OC_SPELL) { + if ((f->id == F_CANWILL) || hasflagval(r->flags, F_HASSKILL, SK_SPELLCASTING, NA, NA, NULL)) { + int power; + lifeform_t *lf; + // add a fake lf + lf = addlf(&fakecell, r->id, 1); + //power = (1 + ff->val[1]) / getspelllevel(f->val[0]); + power = getspellpower(lf, f->val[0]); + if (power <= 0) { + printf("ERROR in race '%s' - %s %s (l%d) but insufficient spell power.\n", + r->name, + (f->id == F_CANWILL) ? "F_CANWILL" : "F_CANCAST", + sp->name,getspelllevel(sp->id)); + if (f->id == F_CANWILL) { + printf(" f_canwill text = '%s'\n\n",f->text); + } + goterror = B_TRUE; + } + killlf(lf); + } else { objecttype_t *sp; sp = findot(f->val[0]); - printf("ERROR in race '%s' - F_CANCAST %s (l%d) but insufficient spell power.\n", - r->name, sp->name,getspelllevel(sp->id)); + printf("ERROR in race '%s' - F_CANCAST %s (l%d) but no spellcasting skill\n", r->name, sp->name, getspelllevel(sp->id)); goterror = B_TRUE; - } - killlf(lf); - } else { - objecttype_t *sp; - sp = findot(f->val[0]); - printf("ERROR in race '%s' - F_CANCAST %s (l%d) but no spellcasting skill\n", r->name, sp->name, getspelllevel(sp->id)); - goterror = B_TRUE; - } + } + } } } } @@ -8048,7 +8345,7 @@ int rest(lifeform_t *lf, int onpurpose) { taketime(lf, getactspeed(lf)); - if (!lfhasflag(lf, F_FOODPOISONED)) { + if (!lfhasflag(lf, F_POISONED)) { // slowly heal hp/mp if (!training) { ff = lfhasflag(lf, F_RESTHEALAMT); @@ -8091,7 +8388,7 @@ int rest(lifeform_t *lf, int onpurpose) { } } - if (lf->mp < lf->maxmp) { + if (lf->mp < getmaxmp(lf)) { // pass a skill check to regain mp if (skillcheck(lf, SC_IQ, 25, getskill(lf, SK_SPELLCASTING))) { gainmp(lf, mpheal); @@ -8129,17 +8426,23 @@ int rest(lifeform_t *lf, int onpurpose) { } } else { // resting - if ((lf->hp >= lf->maxhp) || !hpheal) { - if ((lf->mp >= lf->maxmp) || !mpheal) { - if (isplayer(lf)) { - msg("You finish resting."); - wantclearmsg = B_FALSE; - } - killflag(rf); - } + if (lf->hp >= lf->maxhp) { + flag_t *hf; + hf = lfhasflag(lf, F_RESTUNTILHP); + if (hf) killflag(hf); } - } - } + if (lf->mp >= getmaxmp(lf)) { + flag_t *hf; + hf = lfhasflag(lf, F_RESTUNTILMP); + if (hf) killflag(hf); + } + if (!lfhasflag(lf, F_RESTUNTILHP) && !lfhasflag(lf, F_RESTUNTILMP)) { + msg("You finish resting."); + killflag(rf); + wantclearmsg = B_FALSE; + } + } // end if resting/training + } // end if (rf) } if (onpurpose && wantclearmsg) { diff --git a/lf.h b/lf.h index 7132a50..e737e75 100644 --- a/lf.h +++ b/lf.h @@ -78,7 +78,9 @@ char getlfglyph(lifeform_t *lf); enum MATERIAL getlfmaterial(lifeform_t *lf); float getmaxcarryweight(lifeform_t *lf); float getmaxliftweight(lifeform_t *lf); +int getmaxmp(lifeform_t *lf); float getmaxpushweight(lifeform_t *lf); +int getmr(lifeform_t *lf); int getvisrange(lifeform_t *lf); int getmovespeed(lifeform_t *lf); char *getmoveverb(lifeform_t *lf); @@ -115,15 +117,16 @@ void givestartobs(lifeform_t *lf, flagpile_t *fp); void givestartskills(lifeform_t *lf, flagpile_t *fp); map_t *gotolev(lifeform_t *lf, int depth, object_t *fromstairs); job_t *hasjob(lifeform_t *lf, enum JOB job); +int lfcanbestoned(lifeform_t *lf); flag_t *lfhasflag(lifeform_t *lf, enum FLAG fid); flag_t *lfhasflagval(lifeform_t *lf, enum FLAG fid, int val0, int val1, int val2, char *text); flag_t *lfhasknownflag(lifeform_t *lf, enum FLAG fid); flag_t *lfhasknownflagval(lifeform_t *lf, enum FLAG fid, int val0, int val1, int val2, char *text); int lockpick(lifeform_t *lf, object_t *target, object_t *device); void loseobflags(lifeform_t *lf, object_t *o, int kind); +int hasbp(lifeform_t *lf, enum BODYPART bp); int haslof(lifeform_t *viewer, cell_t *dest); int haslos(lifeform_t *viewer, cell_t *dest); -int hasmr(lifeform_t *lf); void initjobs(void); void initrace(void); void initskills(void); diff --git a/log.txt b/log.txt index 541ea01..ee531f6 100644 --- a/log.txt +++ b/log.txt @@ -26,44 +26,264 @@ findotn(): modname is 'staircase going down' checkobnames(): got exact match: 'staircase going down' adding random object with rarity value between 72 - 100 got 100 possibilities. -random ob: 1 x spellbook of darkness ('spellbook of darkness') -findotn(): modname is 'spellbook of darkness' -checkobnames(): got exact match: 'spellbook of darkness' +random ob: 2 x bolt ('bolts') +findotn(): modname is 'bolts' +checkobnames(): got match after stripping 's': 'bolt' -> 'bolts' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. adding random object with rarity value between 72 - 100 -got 100 possibilities. -random ob: 2 x stone ('stones') -findotn(): modname is 'stones' -checkobnames(): got match after stripping 's': 'stone' -> 'stones' + (must have obclass = Potions) +got 8 possibilities. +random ob: 1 x potion of minor healing ('potion of minor healing') +findotn(): modname is 'potion of minor healing' +checkobnames(): got exact match: 'potion of minor healing' +findotn(): modname is 'claws' +checkobnames(): got exact match: 'claws' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'zapper' +checkobnames(): got exact match: 'zapper' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +adding random object with rarity value between 72 - 100 + (must have obclass = Potions) +got 8 possibilities. +random ob: 1 x potion of magic ('potion of magic') +findotn(): modname is 'potion of magic' +checkobnames(): got exact match: 'potion of magic' +findotn(): modname is 'claws' +checkobnames(): got exact match: 'claws' adding random object with rarity value between 72 - 100 got 100 possibilities. random ob: 1 x potion of oil ('potion of oil') findotn(): modname is 'potion of oil' checkobnames(): got exact match: 'potion of oil' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 1 x scimitar ('scimitar') +findotn(): modname is 'scimitar' +checkobnames(): got exact match: 'scimitar' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 1 x potion of magic ('potion of magic') +findotn(): modname is 'potion of magic' +checkobnames(): got exact match: 'potion of magic' adding random object with rarity value between 72 - 100 got 100 possibilities. random ob: 1 x apple ('apple') findotn(): modname is 'apple' checkobnames(): got exact match: 'apple' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 6 x nanodart ('nanodarts') +findotn(): modname is 'nanodarts' +checkobnames(): got match after stripping 's': 'nanodart' -> 'nanodarts' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 1 x knife ('knife') +findotn(): modname is 'knife' +checkobnames(): got exact match: 'knife' finding random lf with rarity val 85-100 +-> possibility: goblin, rarity=85 -> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 -> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 -> possibility: giant fly, rarity=85 -> possibility: glowbug, rarity=85 -got 6 possibilities. +got 9 possibilities. findotn(): modname is 'teeth' checkobnames(): got exact match: 'teeth' finding random lf with rarity val 85-100 +-> possibility: goblin, rarity=85 -> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 -> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 -> possibility: giant fly, rarity=85 -> possibility: glowbug, rarity=85 -got 6 possibilities. +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'claws' +checkobnames(): got exact match: 'claws' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 3 x bolt ('bolts') +findotn(): modname is 'bolts' +checkobnames(): got match after stripping 's': 'bolt' -> 'bolts' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 1 x spellbook of inscribe ('spellbook of inscribe') +findotn(): modname is 'spellbook of inscribe' +checkobnames(): got exact match: 'spellbook of inscribe' +adding random object with rarity value between 72 - 100 +got 100 possibilities. +random ob: 1 x splash of blood ('splash of blood') +findotn(): modname is 'splash of blood' +checkobnames(): got exact match: 'splash of blood' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'short sword' +checkobnames(): got exact match: 'short sword' +findotn(): modname is 'claws' +checkobnames(): got exact match: 'claws' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. +findotn(): modname is 'teeth' +checkobnames(): got exact match: 'teeth' +finding random lf with rarity val 85-100 + +-> possibility: goblin, rarity=85 +-> possibility: xat, rarity=90 +-> possibility: giant newt, rarity=100 +-> possibility: giant bat, rarity=90 +-> possibility: giant worker ant, rarity=85 +-> possibility: giant rat, rarity=90 +-> possibility: brown snake, rarity=95 +-> possibility: giant fly, rarity=85 +-> possibility: glowbug, rarity=85 +got 9 possibilities. findotn(): modname is 'teeth' checkobnames(): got exact match: 'teeth' adding random object with rarity value between 72 - 100 @@ -71,240 +291,112 @@ got 100 possibilities. random ob: 1 x potion of fruit juice ('potion of fruit juice') findotn(): modname is 'potion of fruit juice' checkobnames(): got exact match: 'potion of fruit juice' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. adding random object with rarity value between 72 - 100 got 100 possibilities. -random ob: 1 x lockpick ('lockpick') -findotn(): modname is 'lockpick' -checkobnames(): got exact match: 'lockpick' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -adding random object with rarity value between 72 - 100 -got 100 possibilities. -random ob: 1 x loaf of stale bread ('loaf of stale bread') -findotn(): modname is 'loaf of stale bread' -checkobnames(): got exact match: 'loaf of stale bread' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -adding random object with rarity value between 72 - 100 -got 100 possibilities. -random ob: 1 x torch ('torch') -findotn(): modname is 'torch' -checkobnames(): got exact match: 'torch' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -finding random lf with rarity val 85-100 - --> possibility: xat, rarity=90 --> possibility: newt, rarity=100 --> possibility: bat, rarity=90 --> possibility: giant rat, rarity=90 --> possibility: giant fly, rarity=85 --> possibility: glowbug, rarity=85 -got 6 possibilities. -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -adding random object with rarity value between 72 - 100 -got 100 possibilities. -random ob: 1 x spellbook of inscribe ('spellbook of inscribe') -findotn(): modname is 'spellbook of inscribe' -checkobnames(): got exact match: 'spellbook of inscribe' +random ob: 1 x boulder ('boulder') +findotn(): modname is 'boulder' +checkobnames(): got exact match: 'boulder' rollhitdice() - rolling 2d4 + 2 -rollhitdice() - mod is +-11% -rollhitdice() ---- die 1/2 == 6 -rollhitdice() ---- die 2/2 == 3 -TOTAL: 9 - -> modified to: 9 +rollhitdice() - mod is +88% +rollhitdice() ---- die 1/2 == 4 +rollhitdice() ---- die 2/2 == 4 +TOTAL: 8 + -> modified to: 15 findotn(): modname is 'fists' checkobnames(): got exact match: 'fists' givejob() starting. -processing normal flag: 177 -processing normal flag: 230 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 139 -processing normal flag: 140 -processing normal flag: 140 -processing normal flag: 140 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 201 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 -processing normal flag: 200 +processing normal flag: 183 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 144 +processing normal flag: 145 +processing normal flag: 145 +processing normal flag: 145 +processing normal flag: 145 +processing normal flag: 145 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 210 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 +processing normal flag: 209 findotn(): modname is 'short sword' checkobnames(): got exact match: 'short sword' findotn(): modname is 'hand of god' @@ -328,9406 +420,3 @@ findotn(): modname is 'ring of invulnerability' checkobnames(): got exact match: 'ring of invulnerability' findotn(): modname is 'fists' checkobnames(): got exact match: 'fists' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'spanner' -checkobnames(): got exact match: 'spanner' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'potion of oil' -checkobnames(): got exact match: 'potion of oil' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -initial dam[0] = 3 -adjusted for lf to dam[0] = 0 -reduced by armour to dam[0] = 0 -findotn(): modname is 'splash of blood' -checkobnames(): got exact match: 'splash of blood' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is '' -initial dam[0] = 84 -adjusted for lf to dam[0] = 84 -reduced by armour to dam[0] = 84 -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -nclasses is 0 -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -nclasses is 0 -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -nclasses is 0 -nclasses is 0 -findotn(): modname is 'empty flask' -checkobnames(): got exact match: 'empty flask' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is '' -initial dam[0] = 84 -adjusted for lf to dam[0] = 84 -reduced by armour to dam[0] = 84 -findotn(): modname is 'splash of blood' -checkobnames(): got exact match: 'splash of blood' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is '' -initial dam[0] = 81 -adjusted for lf to dam[0] = 81 -reduced by armour to dam[0] = 81 -findotn(): modname is 'splash of blood' -checkobnames(): got exact match: 'splash of blood' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'cloud of smoke' -checkobnames(): got exact match: 'cloud of smoke' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'blood stain' -checkobnames(): got exact match: 'blood stain' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'cloud of smoke' -checkobnames(): got exact match: 'cloud of smoke' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is '' -findotn(): modname is '' -initial dam[0] = 165 -adjusted for lf to dam[0] = 165 -reduced by armour to dam[0] = 165 -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -rollhitdice() - rolling 2d4 + 2 -rollhitdice() - mod is +-11% -rollhitdice() ---- die 1/2 == 4 -rollhitdice() ---- die 2/2 == 5 -TOTAL: 9 - -> modified to: 9 -findotn(): modname is 'puff of smoke' -checkobnames(): got exact match: 'puff of smoke' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'puff of smoke' -checkobnames(): got exact match: 'puff of smoke' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'bones' -checkobnames(): got match after stripping 's': 'bone' -> 'bones' -findotn(): modname is 'blood stain' -checkobnames(): got exact match: 'blood stain' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'potion of acid' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'potion of acid' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'potion of batt' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'acid' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -nclasses is 0 -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -nclasses is 0 -nclasses is 0 -findotn(): modname is 'empty flask' -checkobnames(): got exact match: 'empty flask' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'zapper' -checkobnames(): got exact match: 'zapper' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'teeth' -checkobnames(): got exact match: 'teeth' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' -findotn(): modname is 'claws' -checkobnames(): got exact match: 'claws' diff --git a/map.c b/map.c index 1eacf6d..b9a184f 100644 --- a/map.c +++ b/map.c @@ -34,6 +34,7 @@ cell_t *addcell(map_t *m, int x, int y) { cell->lit = L_NOTLIT; cell->origlit = L_NOTLIT; cell->littimer = 0; + cell->origlittimer = 0; cell->writing = NULL; cell->known = B_FALSE; return cell; @@ -2092,8 +2093,10 @@ void makelit(cell_t *c, enum LIGHTLEV how, int howlong) { } } if (howlong > 0) { - c->littimer = howlong; + // TODO: use a stack here instead c->origlit = c->lit; + c->origlittimer = c->littimer; + c->littimer = howlong; } c->lit = how; } diff --git a/move.c b/move.c index c5ebbc5..8d84dec 100644 --- a/move.c +++ b/move.c @@ -459,6 +459,28 @@ int moveawayfrom(lifeform_t *lf, cell_t *dst ) { } +void moveeffects(lifeform_t *lf) { + flag_t *f; + + if (isbleeding(lf)) { + if (rnd(1,2) == 1) { + bleed(lf); + } + } + + f = lfhasflag(lf, F_PAIN); + if (f) { + if (isplayer(lf)) { + msg("Your body is wracked with pain!"); + } else if (cansee(player, lf)) { + char lfname[BUFLEN]; + getlfname(lf, lfname); + msg("%s convulses in pain!",lfname); + } + losehp(lf, roll(f->text), f->val[0], NULL, "extreme pain"); + } + if (isdead(lf)) return; +} // returns TRUE if something happened @@ -468,9 +490,14 @@ int movelf(lifeform_t *lf, cell_t *newcell) { lifeform_t *l; int didmsg = B_FALSE; flag_t *f; + int changedlev = B_FALSE; getlfname(lf, lfname); + if (newcell->map != lf->cell->map) { + changedlev = B_TRUE; + } + // update current cell lf->cell->lf = NULL; @@ -491,20 +518,13 @@ int movelf(lifeform_t *lf, cell_t *newcell) { // update new cell newcell->lf = lf; - if (isbleeding(lf)) { - if (rnd(1,2) == 1) { - bleed(lf); - } - } - if (lfhasflag(lf, F_PAIN)) { - losehp(lf, rolldie(2,4)+2, DT_DIRECT, NULL, "extreme pain"); - if (isplayer(lf)) { - msg("Your body is wracked with pain!"); - } else if (cansee(player, lf)) { - msg("%s convulses in pain!",lfname); - } + // update light + if (changedlev && isplayer(lf)) { + calclight(lf->cell->map); } + moveeffects(lf); + // remove grabs f = lfhasflag(lf, F_GRABBING); if (f) { @@ -617,6 +637,8 @@ int moveto(lifeform_t *lf, cell_t *newcell, int onpurpose) { dontclearmsg = B_TRUE; } + assert(!newcell->lf); + getlfname(lf, lfname); // is current cell dark? @@ -870,7 +892,8 @@ int closedoor(lifeform_t *lf, object_t *o) { if (lf && isplayer(lf)) { char inwayname[BUFLEN]; getobname(oo, inwayname, oo->amt); - msg("%s is in the way!", haslos(lf, cell) ? inwayname : "Something"); + msg("%s %s in the way!", haslos(lf, cell) ? inwayname : "Something", + (haslos(lf,cell) && (oo->amt > 1)) ? "are" : "is" ); } return B_TRUE; } @@ -1029,13 +1052,15 @@ int trymove(lifeform_t *lf, int dir, int onpurpose) { } // slipping on blood before moving? - slip = getslipperyness(lf->cell, &slipob); - if (slip && !skillcheck(lf, SC_SLIP, slip, 0)) { - slipon(lf, slipob); - // don't move - reason = E_OK; - return B_FALSE; - } + if (!isairborne(lf)) { + slip = getslipperyness(lf->cell, &slipob); + if (slip && !skillcheck(lf, SC_SLIP, slip, 0)) { + slipon(lf, slipob); + // don't move + reason = E_OK; + return B_FALSE; + } + } // move to new cell reason = E_OK; @@ -1043,13 +1068,15 @@ int trymove(lifeform_t *lf, int dir, int onpurpose) { taketime(lf, getmovespeed(lf)); // slip on blood in new cell? - slip = getslipperyness(cell, &slipob); - if (slip && !skillcheck(lf, SC_SLIP, slip, 0)) { - slipon(lf, slipob); - // don't move - reason = E_OK; - return B_FALSE; - } + if (!isairborne(lf)) { + slip = getslipperyness(cell, &slipob); + if (slip && !skillcheck(lf, SC_SLIP, slip, 0)) { + slipon(lf, slipob); + // don't move + reason = E_OK; + return B_FALSE; + } + } } else { object_t *inway; int door, dooropen; diff --git a/move.h b/move.h index 144bb52..9afc772 100644 --- a/move.h +++ b/move.h @@ -12,6 +12,7 @@ int getdiraway(cell_t *src, cell_t *dst, int wantcheck); int getdirtowards(cell_t *src, cell_t *dst, lifeform_t *srclf, int wantcheck); int knockback(lifeform_t *lf, int dir, int howfar, lifeform_t *pusher); int moveawayfrom(lifeform_t *lf, cell_t *dst); +void moveeffects(lifeform_t *lf); int movelf(lifeform_t *lf, cell_t *newcell); int moveto(lifeform_t *lf, cell_t *newcell, int onpurpose); int movetowards(lifeform_t *lf, cell_t *dst); diff --git a/nexus.c b/nexus.c index 37ff585..7a7d706 100644 --- a/nexus.c +++ b/nexus.c @@ -120,6 +120,10 @@ int main(int argc, char **argv) { // find staircase where = findobinmap(firstmap, OT_STAIRSUP); assert(where); + // make sure no lifeforms are there + if (where->lf) { + killlf(where->lf); + } // add player real_addlf(where, R_HUMAN, 1, C_PLAYER); // this will assign 'player' @@ -583,6 +587,16 @@ int rnd(int min, int max) { res = (rand() % (max - min + 1)) + min; return res; } + + +int roll(char *string) { + int ndice,nsides,bonus; + int roll; + texttodice(string, &ndice,&nsides,&bonus); + roll = rolldie(ndice, nsides) + bonus; + return roll; +} + // get a random number int rolldie(int ndice, int sides) { int i; @@ -883,10 +897,6 @@ void timeeffectsworld(map_t *map) { // now handle effects on lifeforms and/or their objects for (l = map->lf ; l ; l = l->next) { timeeffectslf(l); - for (o = l->pack->first ; o ; o = nexto) { - nexto = o->next; - timeeffectsob(o); - } } //dblog("AFTER SORT AND ADJUST....."); diff --git a/nexus.h b/nexus.h index 90c406e..9caa8c6 100644 --- a/nexus.h +++ b/nexus.h @@ -15,6 +15,7 @@ int isplayerturn(void); int limit(int *what, int min, int max); float pctof(float pct, float num); int rnd(int min, int max); +int roll(char *string); int rolldie(int ndice, int sides); int rollhitdice(lifeform_t *lf); int rollmpdice(lifeform_t *lf); diff --git a/objects.c b/objects.c index 9c63a4e..f05430a 100644 --- a/objects.c +++ b/objects.c @@ -993,7 +993,7 @@ int addobburst(cell_t *where, int range, int dirtype, char *name) { for (x = where->x - range; x <= where->x + range; x++) { c = getcellat(where->map, x,y); if (distfunc(where, c) <= range) { - if (cellwalkable(NULL, c, NULL)) { + if (!c->type->solid) { if (addob(c->obpile, name)) nadded++; } } @@ -1419,6 +1419,32 @@ void brightflash(cell_t *centre, int range, lifeform_t *immunelf) { } } +int canbepoisoned(enum OBTYPE oid) { + flag_t *f; + objecttype_t *ot; + ot = findot(oid); + + if (!ot) return B_FALSE; + if (ot->obclass->id != OC_WEAPON) return B_FALSE; + + f = hasflag(ot->flags, F_DAMTYPE); + if (f) { + switch (f->val[0]) { + case DT_SLASH: + case DT_PIERCE: + return B_TRUE; + default: + break; + } + } + + if (hasflagval(ot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL)) { + return B_TRUE; + + } + return B_FALSE; +} + // does the pile "op" have an object we can // stack "o" with object_t *canstackob(obpile_t *op, object_t *match) { @@ -2259,7 +2285,9 @@ char *getdamname(enum DAMTYPE damtype) { case DT_BASH: return "bludgeoning"; case DT_CHOP: return "chopping"; case DT_COLD: return "cold"; + case DT_PETRIFY: return "petrification"; case DT_POISONGAS: return "poison gas"; + case DT_POISON: return "poison"; case DT_PROJECTILE: return "projectile"; case DT_HOLY: return "holy"; case DT_DIRECT: return "direct"; @@ -2281,8 +2309,10 @@ char *getdamnamenoun(enum DAMTYPE damtype) { case DT_ALL: return "all damage"; case DT_ACID: return "acid"; case DT_MELT: return "melting"; + case DT_PETRIFY: return "petrification"; case DT_PIERCE: return "piercing damage"; case DT_POISONGAS: return "poison gas"; + case DT_POISON: return "poison"; case DT_SLASH: return "slashing damage"; case DT_CLAW: return "claw damage"; case DT_ELECTRIC: return "electricity"; @@ -2370,6 +2400,7 @@ int getmaterialvalue(enum MATERIAL mat) { case MT_MAGIC: case MT_FIRE: case MT_GAS: + case MT_ACID: return 0; case MT_FOOD: case MT_ICE: @@ -2459,6 +2490,7 @@ int getnumshards(object_t *o) { maxshards = ceil(getobunitweight(o)) * 10; if (maxshards < 1) maxshards = 1; numshards = rnd(1,maxshards); + numshards *= o->amt; return numshards; } @@ -2897,7 +2929,53 @@ char *real_getobname(object_t *o, char *buf, int count, int wantpremods, int wan // TODO: detect magic - append [magic] if ((gamemode == GM_GAMESTARTED) && lfhasflag(player, F_DETECTMAGIC)) { + int ismagic = B_FALSE; if (hasunknownmod) { + ismagic = B_TRUE; + } + switch (o->type->obclass->id) { + case OC_SCROLL: + switch (o->type->id) { + case OT_MAP: + case OT_SCR_NOTHING: + // these scrolls are non-magical + break; + default: + ismagic = B_TRUE; + break; + } + break; + case OC_RING: + case OC_WAND: + // all rings/wands are magical + ismagic = B_TRUE; + break; + case OC_POTION: + switch (o->type->id) { + case OT_POT_ACID: + case OT_POT_OIL: + case OT_POT_WATER: + case OT_POT_BLOOD: + case OT_POT_JUICE: + // these potions are non-magical + break; + default: + ismagic = B_TRUE; + break; + } + break; + case OC_BOOK: + if (hasflag(o->flags, F_LINKSPELL)) { + // ie. spellbooks + ismagic = B_TRUE; + } + break; + default: + break; + } + + + if (ismagic) { strcat(buf, " [magic]"); } } @@ -3201,6 +3279,16 @@ char *real_getrandomob(map_t *map, char *buf, int cond, int cval, int forcedepth } + if (canbepoisoned(ot->id)) { + // random chance of being poisoned + if (rnd(1,6) == 1) { + obmod_t *om; + om = findobmod(OM_POISONED); + strcat(cursestr, om->prefix); + + } + } + // get random chance of having a brand (1% per depth)... // if so... strcpy(brandname, ""); @@ -3800,6 +3888,8 @@ void initobjects(void) { addflag_real(lastobmod->flags, F_MASTERWORK, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1); addobmod(OM_SHODDY,"shoddy"); addflag_real(lastobmod->flags, F_SHODDY, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1); + addobmod(OM_POISONED,"poisoned"); + addflag_real(lastobmod->flags, F_HITCONFER, F_POISONED, SC_POISON, 25, "2-8", PERMENANT, B_KNOWN, -1); // brands modifiers - flags should be UNKNOWN! // also don't double up with names of scrolls etc. @@ -3851,7 +3941,7 @@ void initobjects(void) { addbrand(BR_CONCEALMENT, "of concealment", BP_SHOULDERS); addflag_real(lastbrand->flags, F_EQUIPCONFER, F_INVISIBLE, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1); addbrand(BR_ANTIMAG, "of antimagic", BP_SHOULDERS); - addflag_real(lastbrand->flags, F_EQUIPCONFER, F_RESISTMAG, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1); + addflag_real(lastbrand->flags, F_EQUIPCONFER, F_RESISTMAG, 10, NA, NULL, PERMENANT, B_UNKNOWN, -1); // materials addmaterial(MT_NOTHING, "nothing", 0); @@ -3883,8 +3973,9 @@ void initobjects(void) { addmaterial(MT_WOOD, "wood", 6); addflag(lastmaterial->flags, F_HARD, B_TRUE, NA, NA, NULL); addflag(lastmaterial->flags, F_FLAMMABLE, B_TRUE, NA, NA, NULL); + addmaterial(MT_ACID, "acid", 7); addmaterial(MT_WATER, "water", 7); - addmaterial(MT_BLOOD, "blood", 8); + addmaterial(MT_BLOOD, "blood", 7); addmaterial(MT_SLIME, "slime", 9); addmaterial(MT_STONE, "stone", 10); addflag(lastmaterial->flags, F_HARD, B_TRUE, NA, NA, NULL); @@ -4002,6 +4093,7 @@ void initobjects(void) { addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_MISSILE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "50-100 stones"); addot(OT_STATUE, "statue", "A stone statue of a monster.", MT_STONE, 80, OC_DFEATURE); addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, ""); @@ -4012,6 +4104,7 @@ void initobjects(void) { addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "20-50 stones"); addot(OT_STAIRSDOWN, "staircase going down", "A stone staircase winding downwards.", MT_STONE, 3000, OC_DFEATURE); addflag(lastot->flags, F_GLYPH, NA, NA, NA, ">"); @@ -4144,6 +4237,7 @@ void initobjects(void) { addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL); addot(OT_POT_WATER, "potion of water", "Plain, regular water.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "small puddle of water"); addot(OT_POT_HEALINGMIN, "potion of minor healing", "Restores 1-8 health to whoever drinks it.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL); addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL); @@ -4171,8 +4265,12 @@ void initobjects(void) { addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL); addot(OT_POT_ACID, "flask of battery acid", "Causes massive internal burning if ingested.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puddle of acid"); addot(OT_POT_ELEMENTIMMUNE, "potion of elemental immunity", "Grants the imbiber temporary immunity to both fire and cold.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL); + addot(OT_POT_BLOOD, "potion of blood", "A small quantity of blood.", MT_GLASS, 1, OC_POTION); + addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of blood"); addot(OT_POT_SANCTUARY, "potion of sanctuary", "Creates a temporary magical barrier abour the drinker.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL); @@ -4182,6 +4280,10 @@ void initobjects(void) { addot(OT_POT_EXPERIENCE, "potion of experience", "Instantly grants the imbiber the next experience level.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 40, NA, NULL); + addot(OT_POT_BLOODC, "potion of cockatrice blood", "A small quantity of cockatrice blood.", MT_GLASS, 1, OC_POTION); + addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of cockatrice blood"); + addot(OT_POT_COMPETENCE, "potion of competence", "Permemantly increases the drinker's strength, intelligence or dexterity.", MT_GLASS, 1, OC_POTION); addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); @@ -4338,6 +4440,11 @@ void initobjects(void) { addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); + // l4 + addot(OT_S_PARALYZE, "paralyze", "Disables the target's muscles, leaving them unable to move.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); + addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); // l8 addot(OT_S_INFINITEDEATH, "infinite death", "Annihilates all life on the caster's level!", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL); @@ -4369,8 +4476,13 @@ void initobjects(void) { /////////////////// // elemental - air /////////////////// + // l2 + addot(OT_S_AIRBLAST, "airblast", "Knocks enemies back with a powerful blast of air.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL); + addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL); // l3 - addot(OT_S_CLOUDKILL, "cloudkill", "Creates a 3x3 cloud of poisonous gas.", MT_NOTHING, 0, OC_SPELL); + addot(OT_S_CLOUDKILL, "cloudkill", "Creates a cloud of poisonous gas.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); /////////////////// @@ -4419,18 +4531,31 @@ void initobjects(void) { /////////////////// // gravity /////////////////// + // l3 + addot(OT_S_GRAVLOWER, "lessen gravity", "Causes the caster to fall very slowly.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); + addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL); // l4 + addot(OT_S_GRAVBOOST, "boost gravity", "Greatly increases gravity around the target, stopping them from moving.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL); + addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); addot(OT_S_SLOW, "slowness", "Decreases the speed of the target.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL); // l5 - addot(OT_S_GRAVBOOST, "boost gravity", "Greatly increases gravity around the target, stopping them from moving.", MT_NOTHING, 0, OC_SPELL); + addot(OT_S_LEVITATION, "levitation", "Causes the caster hover a metre above the ground.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL); - addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); + addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL); // l6 + addot(OT_S_FLIGHT, "flight", "Allows the caster to fly.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL); + addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL); addot(OT_S_HASTE, "haste", "Increases the speed of the target.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL); @@ -4446,13 +4571,13 @@ void initobjects(void) { addot(OT_S_TURNUNDEAD, "turn undead", "Instills fear in undead creatures. Power depends on caster's skill.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL); - // l2 + // l3 addot(OT_S_HEALING, "healing", "Restores 10-20 health to the caster.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL); - addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL); /////////////////// - // mental + // mental/psionic /////////////////// // l1 addot(OT_S_MINDSCAN, "mind scan", "Reveals detailed information about the target.", MT_NOTHING, 0, OC_SPELL); @@ -4467,6 +4592,12 @@ void initobjects(void) { addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL); + // l3 + addot(OT_S_PSYARMOUR, "psychic armour", "Mentally block incoming attacks.", MT_NOTHING, 0, OC_SPELL); + addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); + addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL); // TODO: hardcode how ai casts this /////////////////// // modification @@ -4571,10 +4702,10 @@ void initobjects(void) { addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL); addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL); - // l4 + // l6 addot(OT_S_DETONATE, "detonate", "Causes a given area to explode with massive force.", MT_NOTHING, 0, OC_SPELL); addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL); - addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL); + addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); @@ -4596,6 +4727,7 @@ void initobjects(void) { addot(OT_A_CRUSH, "crush", "You can crush enemies after grabbing them.", MT_NOTHING, 0, OC_ABILITY); addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL); addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL); + addflag(lastot->flags, F_NEEDSGRAB, B_TRUE, NA, NA, NULL); addot(OT_A_JUMP, "jump", "You can leap large distances.", MT_NOTHING, 0, OC_ABILITY); addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL); addot(OT_A_SPRINT, "sprint", "You can run at high speed over short distances.", MT_NOTHING, 0, OC_ABILITY); @@ -4608,6 +4740,10 @@ void initobjects(void) { addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL); addot(OT_A_INSPECT, "inspect", "Try to identify an unknown object from your pack.", MT_NOTHING, 0, OC_ABILITY); addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL); + addot(OT_A_STINGACID, "sting (acid)", "You can sting your enemies.", MT_NOTHING, 0, OC_ABILITY); + addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL); + addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL); + addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL); // manuals @@ -4619,8 +4755,12 @@ void initobjects(void) { addflag(lastot->flags, F_MANUALOF, SK_LOCKPICKING, NA, NA, NULL); addot(OT_MAN_RESEARCH, "manual of research", "Teaches you the skill 'research'.", MT_PAPER, 3, OC_BOOK); addflag(lastot->flags, F_MANUALOF, SK_RESEARCH, NA, NA, NULL); + addot(OT_MAN_MAGITEMUSAGE, "manual of magic item usage", "Teaches you the skill 'magic item usage'.", MT_PAPER, 3, OC_BOOK); + addflag(lastot->flags, F_MANUALOF, SK_MAGITEMUSAGE, NA, NA, NULL); addot(OT_MAN_SPELLCASTING, "manual of spellcasting", "Teaches you the skill 'spellcasting'.", MT_PAPER, 3, OC_BOOK); addflag(lastot->flags, F_MANUALOF, SK_SPELLCASTING, NA, NA, NULL); + addot(OT_MAN_TECHUSAGE, "manual of technology", "Teaches you the skill 'technology'.", MT_PAPER, 3, OC_BOOK); + addflag(lastot->flags, F_MANUALOF, SK_TECHUSAGE, NA, NA, NULL); // weapon manuals addot(OT_MAN_AXES, "manual of axes", "Teaches you the skill 'axes'.", MT_PAPER, 3, OC_BOOK); addflag(lastot->flags, F_MANUALOF, SK_AXES, NA, NA, NULL); @@ -4663,14 +4803,14 @@ void initobjects(void) { addflag(lastot->flags, F_MANUALOF, SK_SS_TRANSLOCATION, NA, NA, NULL); addot(OT_MAN_SS_WILD, "manual of wild magic", "Teaches you the skill 'wild magic'.", MT_PAPER, 3, OC_BOOK); addflag(lastot->flags, F_MANUALOF, SK_SS_WILD, NA, NA, NULL); - addot(OT_MAN_TECHUSAGE, "manual of technology", "Teaches you the skill 'tech usage'.", MT_PAPER, 3, OC_BOOK); - addflag(lastot->flags, F_MANUALOF, SK_TECHUSAGE, NA, NA, NULL); // spellbooks addot(OT_SB_ANIMATEDEAD, "spellbook of animate dead", "Teaches the spell 'animate dead'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_ANIMATEDEAD, NA, NA, NULL); addot(OT_SB_PAIN, "spellbook of pain", "Teaches the spell 'pain'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_PAIN, NA, NA, NULL); + addot(OT_SB_PARALYZE, "spellbook of paralyze", "Teaches the spell 'paralyze'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_PARALYZE, NA, NA, NULL); addot(OT_SB_WEAKEN, "spellbook of weaken", "Teaches the spell 'weaken'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_WEAKEN, NA, NA, NULL); addot(OT_SB_BLINDNESS, "spellbook of blindness", "Teaches the spell 'blindness'.", MT_PAPER, 1.5, OC_BOOK); @@ -4687,6 +4827,8 @@ void initobjects(void) { addot(OT_SB_IDENTIFY, "spellbook of identification", "Teaches the spell 'identification'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_IDENTIFY, NA, NA, NULL); // elemental - air + addot(OT_SB_AIRBLAST, "spellbook of airblast", "Teaches the spell 'airblast'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_AIRBLAST, NA, NA, NULL); addot(OT_SB_CLOUDKILL, "spellbook of cloudkill", "Teaches the spell 'cloudkill'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_CLOUDKILL, NA, NA, NULL); // elemental - fire @@ -4702,10 +4844,16 @@ void initobjects(void) { addflag(lastot->flags, F_LINKSPELL, OT_S_FIREBALL, NA, NA, NULL); addot(OT_SB_SLOW, "spellbook of slowness", "Teaches the spell 'slowness'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_SLOW, NA, NA, NULL); + addot(OT_SB_GRAVLOWER, "spellbook of lessen gravity", "Teaches the spell 'lessen gravity'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_GRAVLOWER, NA, NA, NULL); addot(OT_SB_GRAVBOOST, "spellbook of boost gravity", "Teaches the spell 'boost gravity'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_GRAVBOOST, NA, NA, NULL); + addot(OT_SB_FLIGHT, "spellbook of flight", "Teaches the spell 'flight'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_FLIGHT, NA, NA, NULL); addot(OT_SB_HASTE, "spellbook of haste", "Teaches the spell 'haste'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_HASTE, NA, NA, NULL); + addot(OT_SB_LEVITATION, "spellbook of levitation", "Teaches the spell 'levitation'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_LEVITATION, NA, NA, NULL); // elemental - ice addot(OT_SB_CONECOLD, "spellbook of cone of cold", "Teaches the spell 'cone of cold'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_CONECOLD, NA, NA, NULL); @@ -4721,6 +4869,8 @@ void initobjects(void) { addflag(lastot->flags, F_LINKSPELL, OT_S_MINDSCAN, NA, NA, NULL); addot(OT_SB_TELEKINESIS, "spellbook of telekinesis", "Teaches the spell 'telekinesis'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_TELEKINESIS, NA, NA, NULL); + addot(OT_SB_PSYARMOUR, "spellbook of psychic armour", "Teaches the spell 'psychic armour'.", MT_PAPER, 1.5, OC_BOOK); + addflag(lastot->flags, F_LINKSPELL, OT_S_PSYARMOUR, NA, NA, NULL); // modification addot(OT_SB_INSCRIBE, "spellbook of inscribe", "Teaches the spell 'inscribe'.", MT_PAPER, 1.5, OC_BOOK); addflag(lastot->flags, F_LINKSPELL, OT_S_INSCRIBE, NA, NA, NULL); @@ -5074,11 +5224,13 @@ void initobjects(void) { addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_GLYPH, NA, NA, NA, "!"); addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL); + addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL); addot(OT_EMPTYVIAL, "empty vial", "An empty glass vial.", MT_GLASS, 0.1, OC_MISC); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_GLYPH, NA, NA, NA, "!"); addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL); + addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL); addot(OT_BROKENGLASS, "piece of broken glass", "Sharp shards of broken glass.", MT_GLASS, 0.1, OC_MISC); addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL); addflag(lastot->flags, F_NUMAPPEAR, 1, 8, NA, NULL); @@ -5140,6 +5292,35 @@ void initobjects(void) { addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL); addflag(lastot->flags, F_TAINTED, B_TRUE, NA, NA, NULL); + addot(OT_ACIDPOOL, "pool of acid", "A pool of corrosive acid.", MT_ACID, 0, OC_MISC); + addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); + addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "evaporates"); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puddle of acid"); + addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL); + addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); + addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_ACID, NA, NA, "2d4"); + addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_ACID, NA, NA, NULL); + + addot(OT_ACIDPUDDLE, "puddle of acid", "A small puddle of corrosive acid.", MT_ACID, 0, OC_MISC); + addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); + addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DIETEXT, NA, NA, NA, "evaporates"); + addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL); + addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); + addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_ACID, NA, NA, "1d4"); + addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_ACID, NA, NA, NULL); + addot(OT_SLIMEPOOL, "pool of slime", "A disgusting mass of sticky slime.", MT_WATER, 0, OC_MISC); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); @@ -5154,7 +5335,9 @@ void initobjects(void) { addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL); addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice"); - addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, 20, NULL); + addflag(lastot->flags, F_DTCONVERT, DT_FIRE, NA, NA, "puff of steam"); + addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL); addot(OT_PUDDLEWATERL, "large puddle of water", "A large pool of water.", MT_WATER, 0, OC_MISC); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); @@ -5162,8 +5345,10 @@ void initobjects(void) { addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL); addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, 50, NULL); addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice"); + addflag(lastot->flags, F_DTCONVERT, DT_FIRE, NA, NA, "cloud of steam"); + addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL); addot(OT_BLOODSTAIN, "blood stain", "A dried stain of blood.", MT_BLOOD, 0, OC_MISC); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); @@ -5172,6 +5357,20 @@ void initobjects(void) { addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL); addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addot(OT_BLOODCSPLASH, "splash of cockatrice blood", "A small pool of cockatrice blood.", MT_BLOOD, 0, OC_MISC); + addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_GLYPH, NA, NA, NA, ","); + addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL); + addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_SLIPPERY, 1, NA, NA, NULL); + addflag(lastot->flags, F_DIETEXT, NA, NA, NA, "evaporates"); + addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); + addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); + addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_BLOODC, NA, NA, NULL); + addot(OT_BLOODSPLASH, "splash of blood", "A small pool of blood.", MT_BLOOD, 0, OC_MISC); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL); @@ -5186,7 +5385,7 @@ void initobjects(void) { addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL); - addflag(lastot->flags, F_TAINTED, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_BLOOD, NA, NA, NULL); addot(OT_BLOODPOOL, "pool of blood", "A large pool of blood.", MT_BLOOD, 0, OC_MISC); @@ -5203,7 +5402,7 @@ void initobjects(void) { addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL); - addflag(lastot->flags, F_TAINTED, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_LINKOB, OT_POT_BLOOD, NA, NA, NULL); addot(OT_WOODENBARREL, "wooden barrel", "A solid wooden barrel.", MT_WOOD, 20, OC_MISC); addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, NULL); @@ -5239,7 +5438,7 @@ void initobjects(void) { addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_WALKDAM, 12, DT_FIRE, NA, NULL); + addflag(lastot->flags, F_WALKDAM,DT_FIRE, NA, NA, "2d4+4"); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_PRODUCESLIGHT, 3, NA, NA, NULL); addot(OT_FIREMED, "medium fire", "A medium-sized roaring fire.", MT_FIRE, 0, OC_EFFECT); @@ -5250,7 +5449,7 @@ void initobjects(void) { addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_WALKDAM, 7, DT_FIRE, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "2d4"); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL); addot(OT_FIRESMALL, "small fire", "A small blaze.", MT_FIRE, 0, OC_EFFECT); @@ -5260,10 +5459,30 @@ void initobjects(void) { addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_WALKDAM, 3, DT_FIRE, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "1d4"); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_PRODUCESLIGHT, 1, NA, NA, NULL); + addot(OT_STEAMCLOUD, "cloud of steam", "A thick cloud of scalding steam.", MT_GAS, 0, OC_EFFECT); + addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); + addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL); + addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puff of steam"); + addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); + addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); + addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "1d2"); + + addot(OT_STEAMPUFF, "puff of steam", "A small puff of scalding steam.", MT_GAS, 0, OC_EFFECT); + addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); + addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DIETEXT, B_TRUE, NA, NA, "disperses"); + addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL); + addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); + addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "1d1+1"); addot(OT_SMOKECLOUD, "cloud of smoke", "A thick cloud of black smoke.", MT_GAS, 0, OC_EFFECT); addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); @@ -5290,11 +5509,11 @@ void initobjects(void) { addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "thins out a little"); addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puff of gas"); - addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL); + addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL); addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_WALKDAM, 2, DT_POISONGAS, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_POISONGAS, NA, NA, "1d4"); addot(OT_POISONPUFF, "puff of gas", "A small puff of poisonous gas.", MT_GAS, 0, OC_EFFECT); addflag(lastot->flags, F_GLYPH, NA, NA, NA, "{"); @@ -5304,7 +5523,7 @@ void initobjects(void) { addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL); addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); - addflag(lastot->flags, F_WALKDAM, 2, DT_POISONGAS, NA, NULL); + addflag(lastot->flags, F_WALKDAM, DT_POISONGAS, NA, NA, "1d2"); addot(OT_MAGICBARRIER, "magical barrier", "A glowing, impassable barrier of magical energy.", MT_MAGIC, 0, OC_EFFECT); addflag(lastot->flags, F_GLYPH, NA, NA, NA, "#"); @@ -5538,7 +5757,7 @@ void initobjects(void) { addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL); addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL); addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL); - addflag(lastot->flags, F_EQUIPCONFER, F_SEEINDARK, B_TRUE, NA, NULL); + addflag(lastot->flags, F_EQUIPCONFER, F_SEEINDARK, 10, NA, NULL); // armour - shields addot(OT_BUCKLER, "buckler", "A small, unobtrusive wooden shield.", MT_WOOD, 3.00, OC_ARMOUR); addflag(lastot->flags, F_RARITY, H_ALL, 80, NA, NULL); @@ -5578,10 +5797,12 @@ void initobjects(void) { addflag(lastot->flags, F_EQUIPCONFER, F_REGENERATES, 1, NA, NULL); addot(OT_RING_RESISTMAG, "ring of magic resistance", "Renders the wearer immune to most magical effects.", MT_METAL, 0.1, OC_RING); addflag(lastot->flags, F_RARITY, H_ALL, 25, NA, ""); - addflag(lastot->flags, F_EQUIPCONFER, F_RESISTMAG, 1, NA, NULL); - addot(OT_RING_SEEINVIS, "ring of sight", "Allows the caster to see the invisible.", MT_METAL, 0.1, OC_RING); + addflag(lastot->flags, F_EQUIPCONFER, F_RESISTMAG, 5, NA, NULL); + addot(OT_RING_SEEINVIS, "ring of sight", "Allows the caster to see the invisible, and in the dark.", MT_METAL, 0.1, OC_RING); addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, ""); addflag(lastot->flags, F_EQUIPCONFER, F_SEEINVIS, NA, NA, NULL); + addflag(lastot->flags, F_EQUIPCONFER, F_SEEINDARK, 5, NA, NULL); + addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, 1, NA, NULL); // unarmed weapons - note these damage/accuracys can be // overridded with the lifeform flag F_HASATTACK @@ -5606,6 +5827,14 @@ void initobjects(void) { addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL); addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL); + addot(OT_STING, "sting", "sting object", MT_BONE, 0, OC_WEAPON); + addflag(lastot->flags, F_DAMTYPE, DT_ACID, NA, NA, NULL); + addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "sting"); + addflag(lastot->flags, F_DAM, 1, 2, NA, NULL); + addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL); + addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL); + addot(OT_TAIL, "tail", "tail object", MT_FLESH, 0, OC_WEAPON); addflag(lastot->flags, F_DAMTYPE, DT_BASH, NA, NA, NULL); addflag(lastot->flags, F_DAM, 1, 4, NA, NULL); @@ -5636,14 +5865,14 @@ void initobjects(void) { addflag(lastot->flags, F_DAMTYPE, DT_TOUCH, NA, NA, NULL); addflag(lastot->flags, F_DAM, 0, 1, NA, NULL); addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL); - addflag(lastot->flags, F_HITCONFER, F_PARALYZED, B_TRUE, NA, "2-4"); + addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 22, "2-4"); addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL); addot(OT_TOUCHPARALYZE2, "strong paralyzing touch", "strong paralyzing touch object", MT_BONE, 0, OC_WEAPON); addflag(lastot->flags, F_DAMTYPE, DT_TOUCH, NA, NA, NULL); addflag(lastot->flags, F_DAM, 0, 1, NA, NULL); addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL); - addflag(lastot->flags, F_HITCONFER, F_PARALYZED, B_TRUE, NA, "5-10"); + addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 30, "5-10"); addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL); @@ -5653,6 +5882,7 @@ void initobjects(void) { addflag(lastot->flags, F_MISSILEDAM, 2, NA, NA, ""); addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, ""); addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, ""); + addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL); addot(OT_NANODART, "nanodart", "A metal dart with a laser-sharpened point.", MT_METAL, 0.5, OC_MISSILE); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, ""); @@ -5660,6 +5890,7 @@ void initobjects(void) { addflag(lastot->flags, F_ARMOURPIERCE, B_TRUE, NA, NA, ""); addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, ""); addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, ""); + addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL); addot(OT_JAVELIN, "javelin", "A long, sharp missile weapon.", MT_METAL, 1.5, OC_MISSILE); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, ""); @@ -5667,6 +5898,7 @@ void initobjects(void) { addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, ""); addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, ""); addflag(lastot->flags, F_OBHP, 5, 5, NA, ""); + addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL); addot(OT_ARROW, "arrow", "A sharp wooden arrow.", MT_WOOD, 0.5, OC_MISSILE); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, ""); @@ -5675,12 +5907,14 @@ void initobjects(void) { addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL); addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL); addot(OT_BOLT, "bolt", "A sharp metal spike, meant for firing from a crossbow.", MT_METAL, 1, OC_MISSILE); addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, ""); addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, ""); addflag(lastot->flags, F_NUMAPPEAR, 1, 5, NA, ""); addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL); + addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, NA, NA, NULL); addot(OT_BULLET, "bullet", "A regular gun bullet.", MT_STONE, 0.1, OC_MISSILE); @@ -6490,6 +6724,45 @@ void killot(objecttype_t *ot) { } } +int knockbackob(object_t *o, int dir, int howfar, int power, lifeform_t *pusher) { + int i; + char obname[BUFLEN]; + int seen; + cell_t *obcell, *c; + + getobname(o,obname, o->amt); + obcell = getoblocation(o); + if (haslos(player, obcell)) { + seen = B_TRUE; + } else { + seen = B_FALSE; + } + + if (dir == D_NONE) { + // failed! + return B_TRUE; + } + + c = obcell; + for (i = 0; i < howfar; i++) { + cell_t *newcell; + newcell = getcellindir(c, dir); + if (!newcell) { + // hit a wall - stop here + break; + } else if (newcell->lf) { + // hit them - stop here + c = newcell; + break; + } else if (!cellwalkable(NULL, newcell, NULL)) { + // hit a wall - stop here + break; + } + c = newcell; + } + fireat(NULL, o, o->amt, c, power, NULL); + return B_FALSE; +} // animate a weapon lifeform_t *makeanimated(lifeform_t *lf, object_t *o, int level) { @@ -6818,7 +7091,10 @@ void obdie(object_t *o) { // change into something else newob = addob(o->pile, f->text); - newob->amt = o->amt; + // only set amt if text wasn't "x-y somethings" + if (!strchr(f->text, '-')) { + newob->amt = o->amt; + } } else { char desc[BUFLEN]; @@ -7271,8 +7547,76 @@ int operate(lifeform_t *lf, object_t *o, cell_t *where) { if (!seen) { youhear(where, "something spraying."); } + } else if ((o->type->id == OT_EMPTYFLASK) || (o->type->id == OT_EMPTYVIAL)) { + object_t *oo,*nextoo; + if (isplayer(lf)) { + int donedip = B_FALSE; + // anything here to fill with? + for (oo = lf->cell->obpile->first ; (oo && !donedip); oo = nextoo) { + int dippable = B_FALSE; + nextoo = oo->next; + switch (oo->type->id) { + case OT_BLOODPOOL: + case OT_BLOODSPLASH: + case OT_PUDDLEWATER: + case OT_PUDDLEWATERL: + dippable = B_TRUE; + break; + default: + break; + } + if (dippable) { + char ch; + char ques[BUFLEN]; + char liquidname[BUFLEN]; + object_t *newob; + getobname(oo, liquidname, 1); + sprintf(ques, "Fill your %s from %s?", noprefix(obname), liquidname); + ch = askchar(ques, "yn", "y", B_TRUE); + if (ch == 'y') { + char newobname[BUFLEN]; + switch (oo->material->id) { + case MT_BLOOD: + strcpy(newobname, "potion of blood"); + break; + case MT_WATER: + strcpy(newobname, "potion of water"); + break; + default: + strcpy(newobname, ""); + break; + } + if (strlen(newobname)) { + // kill the empty flask + removeob(o, 1); + // give the new potion + newob = addob(lf->pack, newobname); + if (newob) { + // overwrite newobname + getobname(newob, newobname, newob->amt); + msgnocap("%c - %s.",newob->letter, newobname); + } + // kill the ground object? + switch (oo->id) { + case OT_PUDDLEWATER: + case OT_BLOODSPLASH: + removeob(oo, 1); + break; + } + } else { + msg("That doesn't seem like a very good idea."); + } + donedip = B_TRUE; + } // if (ch == y) + } + } + + if (!donedip) { + msg("There is nothing here to fill your %s from.",noprefix(obname)); + } + } } else if (o->type->id == OT_POCKETWATCH) { - if (lf->controller == C_PLAYER) { + if (isplayer(lf)) { // TODO: if above ground, use wantpm (ie. can see the sun) gettimetextfuzzy(buf, B_FALSE); msg("It is currently %s.",buf); @@ -7717,13 +8061,21 @@ int pour(lifeform_t *lf, object_t *o) { takedamage(dst, 0, DT_WATER); } } else { + flag_t *f; // pour onto ground if (isplayer(lf)) { msg("You pour %s onto the ground.", obname); - } else if (haslof(player, lf->cell)) { + } else if (haslos(player, lf->cell)) { msg("%s pours %s onto the ground.", lfname, obname); } - addob(lf->cell->obpile, "small puddle of water"); + f = hasflag(o->flags, F_DIECONVERT); + if (f) { + addob(lf->cell->obpile, f->text); + } else { + if (haslos(player, lf->cell)) { + msg("The contents evaporate."); + } + } } // empty the flask @@ -7798,62 +8150,16 @@ void quaff(lifeform_t *lf, object_t *o) { } } - - // handle special cases where the quaff effect - // is different to the throw effect. - if (o->type->id == OT_POT_WATER) { - switch (o->blessed) { - case B_BLESSED: - if (hasflag(lf->flags, F_UNDEAD)) { - if (isplayer(lf)) { - msg("This tastes like water, but burns like acid!"); - } else if (cansee(player, lf)) { - getlfname(lf, buf); - msg("%s writhes in agony!", buf); - } - losehp(lf, rnd(5,15), DT_HOLY, NULL, "drinking holy water"); - // we now know that it is blessed - o->blessknown = B_TRUE; - } else { - msg("Mmm, holy water."); - // we now know that it is blessed - o->blessknown = B_TRUE; - } - break; - case B_UNCURSED: - msg("Mmm, water."); - break; - case B_CURSED: - msg("Yuck! Something is wrong with this water."); - break; - } - if (isplayer(lf) || cansee(player, lf)) { - seen = B_TRUE; - } - modhunger(lf, -pctof(0.05, (float)HUNGERCONST)); - } else if (o->type->id == OT_POT_JUICE) { - if (isplayer(lf)) { - switch (o->blessed) { - case B_BLESSED: - msg("Mmm, fruit juice!"); - break; - case B_UNCURSED: - msg("Mmm, fruit juice!"); - break; - case B_CURSED: - msg("Yuck! This tastes like rotten fruit."); - break; - } - seen = B_TRUE; - } - if (o->blessed != B_CURSED) { - modhunger(lf, -pctof(10, (float)HUNGERCONST)); - } - } else { - if (hasflag(o->flags, F_DRINKABLE)) { - eat(lf, o); + if (o->type->obclass->id == OC_POTION) { + potioneffects(lf, o->type->id, o->blessed, &seen); + } else if (hasflag(o->flags, F_DRINKABLE)) { + // drinkable thing which isn't a potion? + flag_t *f; + f = hasflag(o->flags, F_LINKOB); + if (f) { + potioneffects(lf, f->val[0], o->blessed, NULL); } else { - potioneffects(lf, o->type->id, o->blessed, &seen); + eat(lf, o); } } @@ -7882,6 +8188,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in int amt; int failed; int seenbyplayer; + flag_t *f; if (isplayer(lf)) { seenbyplayer = B_TRUE; @@ -7908,7 +8215,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in } break; case OT_POT_ACROBATICS: - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily jumpy."); } @@ -7933,7 +8240,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in modhunger(lf, -i); } // fix hp - if ((lf->hp < lf->maxhp) && !hasmr(lf)) { + if (lf->hp < lf->maxhp) { gainhp(lf, lf->maxhp); // ie. full hp if (lf->controller == C_PLAYER) { msg("You feel completely healed!"); @@ -7949,7 +8256,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in break; case OT_POT_COMPETENCE: failed = B_TRUE; - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily %s.", (isblessed == B_CURSED) ? "incompetent" : "more competent"); } @@ -7991,7 +8298,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in } break; case OT_POT_ELEMENTENDURE: - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily resistant to the elements."); } @@ -8008,7 +8315,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in } break; case OT_POT_ELEMENTIMMUNE: - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily immune to the elements."); } @@ -8029,7 +8336,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in break; case OT_POT_EXPERIENCE: // gain xp! - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily more experienced."); } @@ -8053,7 +8360,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in dospelleffects(lf, OT_S_INVISIBILITY,isblessed ? 6 : 3, lf, NULL, NULL, isblessed, seen); break; case OT_POT_INVULN: - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily invulnerable."); } @@ -8066,16 +8373,16 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in } break; case OT_POT_MAGIC: - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, -10)) { if (isplayer(lf)) { msg("You feel your magical energy temporarily pulse."); } break; } - if (lf->maxmp > 0) { + if (getmaxmp(lf) > 0) { msg("Your magical energy is restored."); - lf->mp = lf->maxmp; + lf->mp = getmaxmp(lf); } else { nothinghappens(); if (seen) *seen = B_FALSE; @@ -8106,7 +8413,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in break; case OT_POT_RESTORATION: failed = B_TRUE; - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { msg("You feel momentarily restored."); } @@ -8137,7 +8444,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in case OT_POT_SANCTUARY: // how long for? //i = gethealtime(lf); // TODO: change... - if (hasmr(lf)) { + if (getmr(lf) && skillcheck(lf, SC_RESISTMAG, 30, 0)) { if (isplayer(lf)) { nothinghappens(); } @@ -8171,9 +8478,65 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE isblessed, in } if (seen) *seen = B_TRUE; break; + case OT_POT_WATER: - // this should never happen - msg("DB: OT_POT_WATER triggered in poteffects."); + switch (isblessed) { + case B_BLESSED: + if (hasflag(lf->flags, F_UNDEAD)) { + if (isplayer(lf)) { + msg("This tastes like water, but burns like acid!"); + } else if (cansee(player, lf)) { + getlfname(lf, buf); + msg("%s writhes in agony!", buf); + } + losehp(lf, rnd(5,15), DT_HOLY, NULL, "drinking holy water"); + } else { + msg("Mmm, holy water."); + } + break; + case B_UNCURSED: + msg("Mmm, water."); + break; + case B_CURSED: + msg("Yuck! Something is wrong with this water."); + break; + } + if (seen) { + if (isplayer(lf) || cansee(player, lf)) { + *seen = B_TRUE; + } + } + modhunger(lf, -pctof(0.05, (float)HUNGERCONST)); + break; + case OT_POT_BLOOD: + msg("Yuck, this tastes like blood!"); + break; + case OT_POT_BLOODC: + f = lfhasflag(lf, F_BEINGSTONED); + if (f) { + killflag(f); + } else { + msg("Yuck, this tastes like oddly-flavoured blood!"); + } + break; + case OT_POT_JUICE: + if (isplayer(lf)) { + switch (isblessed) { + case B_BLESSED: + msg("Mmm, fruit juice!"); + break; + case B_UNCURSED: + msg("Mmm, fruit juice!"); + break; + case B_CURSED: + msg("Yuck! This tastes like rotten fruit."); + break; + } + if (seen) *seen = B_TRUE; + } + if (isblessed != B_CURSED) { + modhunger(lf, -pctof(10, (float)HUNGERCONST)); + } break; default: // nothing happens break; @@ -8295,8 +8658,15 @@ int readsomething(lifeform_t *lf, object_t *o) { power = f->val[1]; if (power == NA) power = 1; + // increase based on your magic item usage skill + power += (getskill(lf, SK_MAGITEMUSAGE)*2); + + // blessed scrolls are more powerful if (isblessed(o)) power += 4; + // enforce maximum + if (power > 10) power = 10; + // for unidentified scrolls which target an object, // let player select ANY object (even if it won't // work). @@ -8772,7 +9142,7 @@ int takedamage(object_t *o, unsigned int howmuch, int damtype) { } // throw speed is the damage multiplier -int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t *firearm) { +int fireat(lifeform_t *thrower, object_t *o, int amt, cell_t *where, int speed, object_t *firearm) { char throwername[BUFLEN]; char throwernamea[BUFLEN]; char realthrowername[BUFLEN]; @@ -8788,6 +9158,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t char throwverbpres[BUFLEN]; int acc; int youhit; + object_t *newob; int db = B_TRUE; reason = E_OK; @@ -8803,22 +9174,18 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t if (isblind(player)) { if (thrower && isplayer(thrower)) { - getobname(o, obname, 1); + getobname(o, obname, amt); } else { strcpy(obname, "something"); } } else { - getobname(o, obname, 1); + getobname(o, obname, amt); } if (thrower) { getlfname(thrower, throwername); real_getlfname(thrower, realthrowername, B_FALSE); - } else { - strcpy(obname, "something"); - } - if (thrower) { if (isplayer(thrower)) { strcpy(throwernamea, throwername); } else { @@ -8897,6 +9264,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t // announce it ("xx throws xx" "at yy") if (thrower && isplayer(thrower)) { + // player is throwing something if (target) { msg("You %s %s at %s.", throwverbpres, obname, targetname); } else { @@ -8905,6 +9273,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t } else if (thrower && haslos(player, srcloc) && (srcloc == thrower->cell)) { char throwstring[BUFLEN]; + // a monster is throwing something sprintf(throwstring, "%s %ss %s", throwername, throwverbpres, obname); @@ -8916,6 +9285,8 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t msg("%s", throwstring); } else if (seen) { char throwstring[BUFLEN]; + // an object is moving on its own + /* if (target) { msg("Something %ss %s at %s.", throwverbpres, obname, targetname); @@ -8923,9 +9294,9 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t msg("Something %ss %s.",throwverbpres, obname); } */ - sprintf(throwstring, "%s flies through the air", obname); + sprintf(throwstring, "%s %s through the air", obname, (amt == 1) ? "flies" : "fly"); if (target && haslos(player, where)) { - strcat(throwstring, " towards "); + strcat(throwstring, " toward "); strcat(throwstring, targetname); } strcat(throwstring, "."); @@ -8937,9 +9308,9 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t // some obejcts will die when thrown. if (hasflag(o->flags, F_POWDER)) { if (haslos(player, srcloc)) { - msg("%s disperses into the air.", obname); + msg("%s dispers%s into the air.", obname, (amt == 1) ? "es" : "e"); } - removeob(o, 1); + removeob(o, amt); return B_FALSE; } @@ -8950,7 +9321,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t msg("%s drops and sticks to the ground!", obname); } - moveob(o, thrower->cell->obpile, 1); + moveob(o, thrower->cell->obpile, amt); return B_FALSE; } } @@ -9024,7 +9395,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t // announce if (seen) { char buf2[BUFLEN]; - sprintf(buf2, "%s hits %s%s",obname,targetname, + sprintf(buf2, "%s hit%s %s%s",obname,(amt == 1) ? "s" : "", targetname, (willshatter(o->material->id)) ? " and shatters!" : "." ); if (lfhasflag(player, F_EXTRAINFO)) { @@ -9045,9 +9416,13 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t applyarmourdamreduction(target, o, reduceamt, &dam, DT_PROJECTILE); if (dam > 0) { + lifeform_t *whogetsxp = NULL; // TODO: at the moment you won't get experience if you telekenetically // throw an object at something. is this okay? - losehp(target, dam, DT_PROJECTILE, (thrower->cell == srcloc) ? thrower : NULL, damstring); + if (thrower && (thrower->cell == srcloc)) { + whogetsxp = thrower; + } + losehp(target, dam, DT_PROJECTILE, whogetsxp, damstring); } if (reduceamt && (speed >= 3)) { @@ -9108,6 +9483,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t if (shattered) { if (o->type->obclass->id == OC_POTION) { int observed; + // some potions have special effects... switch (o->type->id) { case OT_POT_ACID: // take acid damage if (seen) { @@ -9118,19 +9494,12 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t msg("%s %s splashed with acid!", targetname, isplayer(target) ? "are" : "is"); } - losehp(target, rnd(1,5), DT_ACID, thrower, "a splash of acid"); + losehp(target, rnd(1,5)*amt, DT_ACID, thrower, "a splash of acid"); } else { - // all objects take damage - object_t *oo,*nextoo; // announce if (seen) { msg("Acid splashes all over the floor!"); } - // everything here takes acid damage - for (oo = where->obpile->first ; oo ; oo = nextoo) { - nextoo = oo->next; - takedamage(oo, rnd(5,15), DT_ACID); - } } break; case OT_POT_ELEMENTENDURE: @@ -9156,6 +9525,22 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t } } break; + case OT_POT_BLOOD: + if (seen) { + makeknown(o->type->id); + } + if (target) { + if (seen) { + msg("%s %s splashed with blood.", targetname, + isplayer(target) ? "are" : "is"); + } + } else { + // announce + if (seen) { + msg("Blood splashes onto the floor."); + } + } + break; case OT_POT_WATER: if (seen) { makeknown(o->type->id); @@ -9172,7 +9557,7 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t } else if (cansee(player, target)) { msg("%s writhes in agony!", targetname); } - losehp(target, rnd(5,10), DT_HOLY, NULL, "holy water"); + losehp(target, amt*rnd(5,10), DT_HOLY, NULL, "holy water"); if (seen) { // we now know that it is blessed o->blessknown = B_TRUE; @@ -9193,7 +9578,6 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t nextoo = oo->next; takedamage(oo, 0, DT_WATER); } - addob(where->obpile, "small puddle of water"); } break; @@ -9209,19 +9593,21 @@ int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t if (youhit && target) { if (getobweight(o) >= getlfweight(target, B_NOOBS)) { int dir; - dir = getdirtowards(thrower->cell, target->cell, target, B_FALSE); + dir = getdirtowards(srcloc, target->cell, target, B_FALSE); knockback(target, dir, 1, thrower); } } + + + // move the object to the cell then take dam or kill it. + newob = moveob(o, where->obpile, amt); + // fake its birth time so that it can be damaged + newob->birthtime = -1; if (shattered) { - // now remove the object - removeob(o, 1); + addflag(newob->flags, F_DEAD, B_TRUE, NA, NA, NULL); + addflag(newob->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL); } else { - object_t *newob; - newob = moveob(o, where->obpile, 1); - // fake its birth time so that it can be damaged - newob->birthtime = -1; takedamage(newob, speed, DT_BASH); } @@ -9455,7 +9841,7 @@ void timeeffectsob(object_t *o) { if (f->id == F_WALKDAM) { // everything here takes damage //damageallobs(o, o->pile, f->val[0] * timespent, f->val[1]); - damageallobs(o, o->pile, f->val[0], f->val[1]); + damageallobs(o, o->pile, roll(f->text), f->val[0]); //if (hasflag(o->flags, F_DEAD)) return; } @@ -9791,6 +10177,7 @@ enum MATSTATE getmaterialstate(enum MATERIAL mat) { return MS_OTHER; case MT_WATER: case MT_BLOOD: + case MT_ACID: return MS_LIQUID; case MT_GAS: return MS_GAS; diff --git a/objects.h b/objects.h index 79a802a..b9310ad 100644 --- a/objects.h +++ b/objects.h @@ -21,6 +21,7 @@ void appendinscription(object_t *o, char *text); void applyobmod(object_t *o, obmod_t *om); int blessob(object_t *o); void brightflash(cell_t *centre, int range, lifeform_t *immunelf); +int canbepoisoned(enum OBTYPE oid); object_t *canstackob(obpile_t *op, object_t *match); object_t *canstacknewot(obpile_t *op, objecttype_t *match); int changemat(object_t *o, enum MATERIAL mat); @@ -140,6 +141,7 @@ void killob(object_t *o); void killobpile(obpile_t *o); void killoc(objectclass_t *oc); void killot(objecttype_t *ot); +int knockbackob(object_t *o, int dir, int howfar, int power, lifeform_t *pusher); lifeform_t *makeanimated(lifeform_t *lf, object_t *o, int level); void makeduller(object_t *o, int howmuch); void makeknown(enum OBTYPE otid); @@ -170,7 +172,7 @@ void setinscription(object_t *o, char *text); void shufflehiddennames(void); object_t *splitob(object_t *o); int takedamage(object_t *o, unsigned int howmuch, int damtype); -int fireat(lifeform_t *thrower, object_t *o, cell_t *where, int speed, object_t *firearm); +int fireat(lifeform_t *thrower, object_t *o, int amt, cell_t *where, int speed, object_t *firearm); void timeeffectsob(object_t *o); void turnoff(lifeform_t *lf, object_t *o); void turnon(lifeform_t *lf, object_t *o); diff --git a/spell.c b/spell.c index 8ea52a7..090569b 100644 --- a/spell.c +++ b/spell.c @@ -25,17 +25,55 @@ extern WINDOW *msgwin; extern job_t *firstjob; -int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target) { +int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target, flag_t *cwflag) { char username[BUFLEN]; + char killername[BUFLEN]; + char targetname[BUFLEN]; char buf[BUFLEN]; + int power = 0,needgrab = B_FALSE; + char damstr[BUFLEN]; + objecttype_t *ot; + flag_t *f; getlfname(user, username); + real_getlfname(user,killername, B_FALSE); + + // defaults + strcpy(damstr,""); + power = 0; + needgrab = B_FALSE; + + if (cwflag && strlen(cwflag->text)) { + texttospellopts(cwflag->text, &power, damstr, &needgrab); + } + + // get more options from ablity itself... + ot = findot(abilid); + if (ot) { + if (hasflag(ot->flags, F_NEEDSGRAB)) { + needgrab = B_TRUE; + } + } + + if (needgrab) { + // target is whoever we are grabbing + f = lfhasflag(user, F_GRABBING); + if (f) { + target = findlf(NULL, f->val[0]); + } else { + if (isplayer(user)) msg("You need to grab someone first!"); + return B_TRUE; + } + } + if (target) { + getlfname(target, targetname); + } + if (abilid == OT_A_GRAB) { char dirch; flag_t *f; - char targetname[BUFLEN]; f = lfhasflag(user, F_GRABBING); if (f) { @@ -81,12 +119,13 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef } else { addflag(user->flags, F_GRABBING, target->id, NA, NA, NULL); addflag(target->flags, F_GRABBEDBY, user->id, NA, NA, NULL); + // damage? + if (strlen(damstr)) { + losehp(target, roll(damstr), DT_CRUSH, user, killername); + } } taketime(user, getactspeed(user)); } else if (abilid == OT_A_CRUSH) { - flag_t *f; - lifeform_t *grabee; - char gbname[BUFLEN]; int dam = 0; if (isimmobile(user)) { @@ -94,42 +133,39 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef return B_TRUE; } + // shouldn't be able to happen! + /* f = lfhasflag(user, F_GRABBING); if (!f) { if (isplayer(user)) msg("You need to hold someone before using this ability."); return B_TRUE; } - grabee = findlf(NULL, f->val[0]); + */ - assert(grabee); - getlfname(grabee, gbname); - // announce - if (cansee(player, grabee)) { - msg("%s squeeze%s %s tightly!", username, isplayer(user) ? "" : "s", gbname); + if (cansee(player, target)) { + msg("%s squeeze%s %s tightly!", username, isplayer(user) ? "" : "s", targetname); } // victim gets a skilcheck to avoid damage... - if (skillcheckvs(grabee, SC_STR, 0, user, SC_STR, 1)) { - if (cansee(player, grabee)) { + if (skillcheckvs(target, SC_STR, 0, user, SC_STR, 1)) { + if (cansee(player, target)) { // broke free - killflagsofid(grabee->flags, F_GRABBEDBY); + killflagsofid(target->flags, F_GRABBEDBY); killflagsofid(user->flags, F_GRABBING); } } else { - char killername[BUFLEN]; int str; // determine damage baesd on crusher's strength str = getattr(user, A_STR); dam = modifybystat((str/2), user, A_STR); // announce - if (cansee(player, grabee)) { - msg("%s %s being crushed!", gbname, isplayer(grabee) ? "are" : "is"); + if (cansee(player, target)) { + msg("%s %s being crushed!", targetname, isplayer(target) ? "are" : "is"); } - real_getlfname(user,killername, B_FALSE); - losehp(grabee, dam, DT_CRUSH, user, killername); + losehp(target, dam, DT_CRUSH, user, killername); } taketime(user, getactspeed(user)); } else if (abilid == OT_A_JUMP) { @@ -276,6 +312,20 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef } addtempflag(user->flags, F_SPRINTING, B_TRUE, NA, NA, NULL, howlong); + } else if (abilid == OT_A_STINGACID) { + validateabillf(user, abilid, &target); + if (!target) return B_TRUE; + getlfname(target, targetname); + + if (cansee(player, target)) { + msg("%s inject%s acid into %s!", username, + isplayer(user) ? "" : "s", + targetname); + } + losehp(target, roll(damstr), DT_ACID, user, killername); + // cause ongoing pain for 2 turns + addtempflag(target->flags, F_PAIN, DT_ACID, NA, NA, damstr, 2); + taketime(user, getactspeed(user)); } else if (abilid == OT_A_LEARN) { skill_t *sk; char ch = 'a'; @@ -405,18 +455,12 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef if (!isplayer(user)) { return B_TRUE; } - if (isplayer(user)) { + if (!haslos(user, user->cell)) { msg("You can't inspect anything, since you can't see!"); return B_TRUE; } - // blind? - if (isblind(user)) { - msg("You must be able to see before you can inspect something."); - return B_TRUE; - } - // ask what to inspect o = askobject(user->pack, "Inspect which object", NULL, AO_NOTKNOWN); if (!o) { @@ -429,6 +473,18 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef return B_TRUE; } + // can only inspect certain types of things + switch (o->type->obclass->id) { + case OC_SCROLL: + case OC_BOOK: + case OC_WAND: + case OC_RING: + break; + default: + msg("This doesn't seem to be a standard kind of item."); + return B_TRUE; + } + // failed this already? if (lfhasflagval(user, F_FAILEDINSPECT, o->type->id, NA, NA, NULL)) { msg("You won't be able to recognise this until you are more experienced."); @@ -442,6 +498,20 @@ int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifef rarity = 0; } difficulty = 25 + ((100 - rarity) / 5); + switch (o->type->obclass->id) { + case OC_SCROLL: + difficulty += 2; break; + case OC_BOOK: + difficulty += 4; break; + case OC_WAND: + difficulty += 6; break; + case OC_RING: + difficulty += 8; break; + default: + break; + } + + slev = getskill(user, SK_RESEARCH); switch (slev) { case PR_INEPT: @@ -482,6 +552,9 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ char buf[BUFLEN]; char castername[BUFLEN]; int rv = B_FALSE; + objecttype_t *sp; + + sp = findot(spellid); getlfname(caster, castername); @@ -501,6 +574,17 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } } + if (hasflag(sp->flags, F_ONGOING)) { + if (lfhasflagval(caster, F_BOOSTSPELL, spellid, NA, NA, NULL)) { + // cancel it. + stopspell(caster, spellid); + return B_FALSE; + } else { + addflag(caster->flags, F_BOOSTSPELL, spellid, NA, NA, NULL); + } + } + + // switch based on spell effects... if (spellid == OT_S_ABSORBMETAL) { int i; float totalmass = 0; @@ -517,18 +601,16 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ totalmass = 0; // destroy WORN metal objects by the caster (not CARRIED ones) - if (!hasmr(caster)) { - for (o = caster->pack->first ; o ; o = o->next) { - if (isequipped(o) && ismetal(o->material->id)) { - takedamage(o, 9999, DT_DIRECT); - if (hasflag(o->flags, F_DEAD)) { - totalmass += getobweight(o); - } + for (o = caster->pack->first ; o ; o = o->next) { + if (isequipped(o) && ismetal(o->material->id)) { + takedamage(o, 9999, DT_DIRECT); + if (hasflag(o->flags, F_DEAD)) { + totalmass += getobweight(o); } } - // destroy objects right away - removedeadobs(caster->pack); } + // destroy objects right away + removedeadobs(caster->pack); // handle cell under the caster for (o = caster->cell->obpile->first ; o ; o = o->next) { @@ -556,7 +638,9 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } // destroy objects right away removedeadobs(targcell->obpile); - if (targcell->lf && !hasmr(targcell->lf)) { + + + if (targcell->lf && !skillcheck(targcell->lf, SC_RESISTMAG, 20 + power, 0)) { // destroy only WORN metal objects, not CARRIED ones for (o = targcell->lf->pack->first ; o ; o = o->next) { if (isequipped(o) && ismetal(o->material->id)) { @@ -572,25 +656,40 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } if (totalmass > 0) { - if (hasmr(caster)) { - if (isplayer(caster)) { - msg("You feel a surge of magic, but it quickly dampens."); - } - } else { - float max; - // heal 1 mp per kilo - howmuch = floor(totalmass); + float max; + // heal 1 mp per kilo + howmuch = floor(totalmass); - // maximum based on power - max = 40 + (power*10); - - if (howmuch > max) howmuch = max; + // maximum based on power + max = 40 + (power*10); + + if (howmuch > max) howmuch = max; - gainmp(caster, howmuch); - } + gainmp(caster, howmuch); } else { fizzle(caster); } + } else if (spellid == OT_S_AIRBLAST) { + int dir; + object_t *o,*nexto; + if (!validatespellcell(caster, &targcell, TT_MONSTER, B_TRUE, spellid, power)) return B_TRUE; + target = targcell->lf; + + if (cansee(player, caster)) { + if (seenbyplayer) *seenbyplayer = B_TRUE; + msg("%s emit%s a powerful blast of air!", castername, isplayer(caster) ? "" : "s"); + } + + dir = getdirtowards(caster->cell, targcell, target, B_FALSE); + // lfs + if (target) { + knockback(target, dir, power, caster); + } + // objects + for (o = targcell->obpile->first ;o ; o = nexto) { + nexto = o->next; + if (!hasflag(o->flags, F_NOPICKUP)) knockbackob(o, dir, power, power, caster); + } } else if (spellid == OT_S_ANIMATEDEAD) { int i; object_t *o,*nexto; @@ -669,7 +768,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ return B_FALSE; } - if (hasmr(target) || skillcheck(target, A_IQ, 24, -power)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { failed = B_TRUE; } @@ -694,12 +793,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ fizzle(caster); } } else if (spellid == OT_S_BLINK) { - if (hasmr(caster)) { - if (isplayer(caster)) { - msg("You feel a momentary tug."); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - } else if (!caster->nlos) { + if (!caster->nlos) { // can't see anywhere fizzle(caster); } else { @@ -1034,7 +1128,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ target = targcell->lf; if (targcell->lf) { - if (hasmr(targcell->lf)) { + if (skillcheck(targcell->lf, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(targcell->lf)) { msg("You flicker."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -1345,52 +1439,53 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } else { // monsters can't id things! } + } else if (spellid == OT_S_FLIGHT) { + flag_t *f; + // always targetted at caster + targcell = caster->cell; + target = caster; + + f = addtempflag(caster->flags, F_FLYING, B_TRUE, NA, NA, NULL, FROMSPELL); + f->obfrom = spellid; } else if (spellid == OT_S_FREEZEOB) { object_t *o; if (targob) { o = targob; } else { - if (hasmr(caster)) { - if (isplayer(caster)) { - msg("Your hands feel cold for a second."); + // rings? + o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_RIGHTHAND, NA, NA, NULL); + if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_LEFTHAND, NA, NA, NULL); + // gloves? + if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_HANDS, NA, NA, NULL); + // weapon? + if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_WEAPON, NA, NA, NULL); + if (o) { + // at high power, warn... + if (isplayer(caster) && (power > 5)) { + char obname[BUFLEN]; + char ch; + getobname(o, obname, o->amt); + msg("Your %s start%s glowing bright blue!", obname, (o->amt == 1) ? "s" : ""); + more(); + ch = askchar("Abort your spell?", "yn","y", B_TRUE); + if (ch == 'y') { + msg("You release your spell into the air."); + return B_FALSE; + } + } + } else { + // next thing touched + addflag(caster->flags, F_FREEZINGTOUCH, 1, NA, NA, NULL); + if (caster->controller == C_PLAYER) { + msg("Your hands begin to glow blue!"); + if (seenbyplayer) *seenbyplayer = B_TRUE; + } else if (cansee(player, caster)) { + getlfname(caster, buf); + msg("%s's hands begin to glow blue!", buf); + if (seenbyplayer) *seenbyplayer = B_TRUE; } return B_FALSE; - } else { - // rings? - o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_RIGHTHAND, NA, NA, NULL); - if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_LEFTHAND, NA, NA, NULL); - // gloves? - if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_HANDS, NA, NA, NULL); - // weapon? - if (!o) o = hasobwithflagval(caster->pack, F_EQUIPPED, BP_WEAPON, NA, NA, NULL); - if (o) { - // at high power, warn... - if (isplayer(caster) && (power > 5)) { - char obname[BUFLEN]; - char ch; - getobname(o, obname, o->amt); - msg("Your %s start%s glowing bright blue!", obname, (o->amt == 1) ? "s" : ""); - more(); - ch = askchar("Abort your spell?", "yn","y", B_TRUE); - if (ch == 'y') { - msg("You release your spell into the air."); - return B_FALSE; - } - } - } else { - // next thing touched - addflag(caster->flags, F_FREEZINGTOUCH, 1, NA, NA, NULL); - if (caster->controller == C_PLAYER) { - msg("Your hands begin to glow blue!"); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } else if (cansee(player, caster)) { - getlfname(caster, buf); - msg("%s's hands begin to glow blue!", buf); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - return B_FALSE; - } } } @@ -1453,7 +1548,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } } else if (spellid == OT_S_GASEOUSFORM) { target = caster; - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You feel momentarily insubstantial."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -1483,7 +1578,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ if (seenbyplayer) *seenbyplayer = B_TRUE; } - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target) || haslos(player, target->cell)) { getlfname(target, buf); msg("%s blur%s for a moment.",buf, isplayer(target) ? "" : "s"); @@ -1499,15 +1594,6 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ flag_t *f; target = caster; - if (hasmr(target)) { - if (isplayer(target) || haslos(player, target->cell)) { - getlfname(target, buf); - msg("%s %s briefly healthier.",buf, isplayer(target) ? "feel" : "looks"); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - return B_FALSE; - } - // cure certain bad effects if (killflagsofid(target->flags, F_PAIN)) { donesomething = B_TRUE; @@ -1539,7 +1625,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } donesomething = B_TRUE; } - f = lfhasflag(target, F_FOODPOISONED); + f = lfhasflag(target, F_POISONED); if (f) { killflag(f); donesomething = B_TRUE; @@ -1555,14 +1641,6 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ int donesomething = B_FALSE; flag_t *f; target = caster; - if (hasmr(target)) { - if (isplayer(target) || haslos(player, target->cell)) { - getlfname(target, buf); - msg("%s %s briefly healthier.",buf, isplayer(target) ? "feel" : "looks"); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - return B_FALSE; - } // cure bad effects instead of healing if (killflagsofid(target->flags, F_PAIN)) { @@ -1592,7 +1670,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } donesomething = B_TRUE; } - f = lfhasflag(target, F_FOODPOISONED); + f = lfhasflag(target, F_POISONED); if (f) { killflag(f); donesomething = B_TRUE; @@ -1654,7 +1732,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ for (l = caster->cell->map->lf ; l ; l = l->next) { if (l != caster) { - if (hasmr(l)) { + if (skillcheck(l, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(l)) { msg("Luckily, the evil doesn't seem to harm you."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -1776,18 +1854,16 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ totalmass = 0; // destroy WORN metal objects by the caster (not CARRIED ones) - if (!hasmr(caster)) { - for (o = caster->pack->first ; o ; o = o->next) { - if (isequipped(o) && ismetal(o->material->id)) { - takedamage(o, 9999, DT_DIRECT); - if (hasflag(o->flags, F_DEAD)) { - totalmass += getobweight(o); - } + for (o = caster->pack->first ; o ; o = o->next) { + if (isequipped(o) && ismetal(o->material->id)) { + takedamage(o, 9999, DT_DIRECT); + if (hasflag(o->flags, F_DEAD)) { + totalmass += getobweight(o); } } - // destroy objects right away - removedeadobs(caster->pack); } + // destroy objects right away + removedeadobs(caster->pack); // handle cell under the caster for (o = caster->cell->obpile->first ; o ; o = o->next) { @@ -1815,7 +1891,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } // destroy objects right away removedeadobs(targcell->obpile); - if (targcell->lf && !hasmr(targcell->lf)) { + if (targcell->lf && !skillcheck(targcell->lf, SC_RESISTMAG, 20 + power, 0)) { // destroy only WORN metal objects, not CARRIED ones for (o = targcell->lf->pack->first ; o ; o = o->next) { if (isequipped(o) && ismetal(o->material->id)) { @@ -1831,16 +1907,10 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } if (totalmass > 0) { - if (hasmr(caster)) { - if (isplayer(caster)) { - msg("You feel momentarily healthier, but the feeling passes."); - } - } else { - // heal 2 hp per kilo - howmuch = floor(totalmass) * 2; - howmuch *= (power/3); // modify for power - gainhp(caster, howmuch); - } + // heal 2 hp per kilo + howmuch = floor(totalmass) * 2; + howmuch *= (power/3); // modify for power + gainhp(caster, howmuch); } else { fizzle(caster); } @@ -1884,7 +1954,41 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ // 4 is the same as ST_TITANIC strength // 10 = gun speed - fireat(caster, targob, targcell, 8 + (power / 2) , NULL); + fireat(caster, targob, 1, targcell, 8 + (power / 2) , NULL); + } else if (spellid == OT_S_PARALYZE) { + int howlong; + int saved = B_FALSE; + if (!validatespelllf(caster, &target)) return B_TRUE; + + if (lfhasflag(target, F_PARALYZED)) { + fizzle(caster); + return B_TRUE; + } + + + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { + saved = B_TRUE; + } else if (skillcheck(target, SC_STR, 20 + power, 0)) { + saved = B_TRUE; + } + + if (saved) { + if (isplayer(target)) { + msg("You stiffen momentarily."); + if (seenbyplayer) *seenbyplayer = B_TRUE; + } else if (haslos(player, target->cell)) { + getlfname(target, buf); + msg("%s stiffens momentarily.", buf); + if (seenbyplayer) *seenbyplayer = B_TRUE; + } + return B_FALSE; + } + howlong = power*2; + + addtempflag(target->flags, F_PARALYZED, B_TRUE, NA, NA, NULL, howlong); + if (isplayer(target) || haslos(player, target->cell)) { + if (seenbyplayer) *seenbyplayer = B_TRUE; + } } else if (spellid == OT_S_PAIN) { int failed = B_FALSE; // ask for target @@ -1896,8 +2000,9 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } // make this a constitution skill check ? - //if (hasmr(target) || skillcheck(caster, A_IQ, -5)) { - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { + failed = B_TRUE; + } else if (skillcheck(target, SC_CON, 20 + power, 0)) { failed = B_TRUE; } @@ -1916,7 +2021,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } else { int howlong = 7; howlong = getspellduration(3,5,blessed) + (power/2); - addtempflag(target->flags, F_PAIN, B_TRUE, NA, NA, NULL, howlong); + addtempflag(target->flags, F_PAIN, DT_MAGIC, NA, NA, "2d4+2", howlong); } } else { fizzle(caster); @@ -1924,27 +2029,41 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } else if (spellid == OT_S_PETRIFY) { if (!validatespelllf(caster, &target)) return B_TRUE; + // some thigns can't be stoned + if (!lfcanbestoned(target)) { + fizzle(caster); + return B_FALSE; + } else if (lfhasflag(target, F_BEINGSTONED)) { + fizzle(caster); + return B_FALSE; + } + // savingthrow - if (hasmr(target) || skillcheck(target, SC_IQ, 30, -power)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0) || skillcheck(target, SC_CON, 30 + power, 0)) { if (haslos(player, target->cell)) { char lfname[BUFLEN]; getlfname(target, lfname); - msg("%s glows grey momentarily.", lfname); + msg("%s glow%s grey momentarily.", lfname, isplayer(target) ? "" : "s"); if (seenbyplayer) *seenbyplayer = B_TRUE; } return B_TRUE; } - if (!stone(target)) { - // successful - if (haslos(player, target->cell)) { - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - } else { - // failed! - fizzle(caster); + // successful + if (haslos(player, target->cell)) { + if (seenbyplayer) *seenbyplayer = B_TRUE; } + addflag(target->flags, F_BEINGSTONED, 2, NA, NA, NULL); + } else if (spellid == OT_S_PSYARMOUR) { + flag_t *f; + // always targetted at caster + targcell = caster->cell; + target = caster; + + f = addtempflag(caster->flags, F_ARBOOST, power*3, NA, NA, NULL, FROMSPELL); + f->obfrom = spellid; } else if (spellid == OT_S_PULLMETAL) { + int donesomething = B_FALSE; if (!validatespellcell(caster, &targcell,TT_OBJECT, B_TRUE, spellid, power)) return B_TRUE; if (targcell->lf) { @@ -1953,56 +2072,63 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ int gotmetal = B_FALSE; float metalweight = 0; object_t *wep; + + donesomething = B_FALSE; // if they are weilding a metal weapon... wep = getweapon(targcell->lf); - if (wep && ismetal(wep->material->id)) { + if (wep && ismetal(wep->material->id) && !lfhasflag(caster, F_NOPACK)) { // pull their weapon from them pullobto(wep, caster); - } else { - // if they're wearing metal... - for (o = targcell->lf->pack->first ; o ; o = o->next) { - if (ismetal(o->material->id)) { - flag_t *f; - f = isequipped(o); - if ((f->val[0] != BP_WEAPON) && (f->val[0] != BP_SECWEAPON)) { - gotmetal = B_TRUE; - metalweight += getobweight(o); - break; - } + donesomething = B_TRUE; + } + + + // if they're wearing metal... + for (o = targcell->lf->pack->first ; o ; o = o->next) { + if (ismetal(o->material->id)) { + flag_t *f; + f = isequipped(o); + if ((f->val[0] != BP_WEAPON) && (f->val[0] != BP_SECWEAPON)) { + gotmetal = B_TRUE; + metalweight += getobweight(o); + break; } } - if (gotmetal) { - // include the target lf's weight since we will be pulling on them - target = targcell->lf; - metalweight += getlfweight(target, B_WITHOBS); + } + if (gotmetal) { + donesomething = B_TRUE; + // include the target lf's weight since we will be pulling on them + target = targcell->lf; + metalweight += getlfweight(target, B_WITHOBS); - if (hasmr(target)) { - failed = B_TRUE; - } else if (getobpileweight(caster->pack) + metalweight <= getmaxcarryweight(caster)) { - // they get pulled towards caster - failed = pullnextto(target, caster->cell); - } else { - // caster gets pulled towards them - failed = pullnextto(caster, target->cell); - } + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { + failed = B_TRUE; + } else if (getobpileweight(caster->pack) + metalweight <= getmaxcarryweight(caster)) { + // they get pulled towards caster + failed = pullnextto(target, caster->cell); + } else { + // caster gets pulled towards them + failed = pullnextto(caster, target->cell); + } + if (isplayer(target) || haslos(player, target->cell)) { + if (seenbyplayer) *seenbyplayer = B_TRUE; + } + + if (failed) { if (isplayer(target) || haslos(player, target->cell)) { + char buf[BUFLEN]; + getlfname(target, buf); + msg("%s %s pulled forward slightly.", buf, isplayer(target) ? "are" : "is"); if (seenbyplayer) *seenbyplayer = B_TRUE; } - - if (failed) { - if (isplayer(target) || haslos(player, target->cell)) { - char buf[BUFLEN]; - getlfname(target, buf); - msg("%s %s pulled forward slightly.", buf, isplayer(target) ? "are" : "is"); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - return B_FALSE; - } - } else { - fizzle(caster); + return B_FALSE; } + } + + if (!donesomething) { + fizzle(caster); } } else if (targcell->obpile->first) { // no lifeform there targob = NULL; @@ -2052,16 +2178,6 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ if ((newdepth < min) || (newdepth > max)) { fizzle(caster); - } else if (hasmr(caster)) { - if (isplayer(caster)) { - msg("You see a flicker nearby."); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } else if (cansee(player, caster)) { - getlfname(caster, buf); - msg("You see a flicker near %s."); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - return B_FALSE; } else { map_t *newmap; cell_t *newcell,*srccell; @@ -2185,7 +2301,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } addtempflag(target->flags, F_INVISIBLE, B_TRUE, NA, NA, NULL, howlong); if (willannounce) { - msg("%s vanishes!",targname); + msg("%s flicker%s then vanishes!",targname, isplayer(target) ? "" : "s"); } } else if (spellid == OT_S_KNOCK) { object_t *o; @@ -2204,17 +2320,17 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ takedamage(o, 999, DT_DIRECT); if (seenbyplayer) *seenbyplayer = B_TRUE; } - } else if (targcell->lf && (targcell->lf != caster)) { - int dir; - target = targcell->lf; - dir = getdirtowards(caster->cell, targcell, target, B_FALSE); - if (cansee(caster, target)) { - if (seenbyplayer) *seenbyplayer = B_TRUE; - } - knockback(target, dir, 2, caster); } else { fizzle(caster); } + } else if (spellid == OT_S_LEVITATION) { + flag_t *f; + // always targetted at caster + targcell = caster->cell; + target = caster; + + f = addtempflag(caster->flags, F_LEVITATING, B_TRUE, NA, NA, NULL, FROMSPELL); + f->obfrom = spellid; } else if (spellid == OT_S_LIGHT) { lifeform_t *l; @@ -2294,7 +2410,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ if (target) { int howlong = 15; - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You feel momentarily heavier."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2307,10 +2423,18 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } else { fizzle(caster); } + } else if (spellid == OT_S_GRAVLOWER) { + flag_t *f; + // always targetted at caster + targcell = caster->cell; + target = caster; + + f = addtempflag(caster->flags, F_DTIMMUNE, DT_FALL, NA, NA, NULL, FROMSPELL); + f->obfrom = spellid; } else if (spellid == OT_S_PASSWALL) { int howlong = 7; target = caster; - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You feel momentarily insubstantial."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2339,7 +2463,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ return B_TRUE; } - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You feel momentarily different."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2408,7 +2532,12 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ int howlong; if (!validatespelllf(caster, &target)) return B_TRUE; - if (hasmr(target)) { + if (lfhasflag(target, F_ASLEEP)) { + fizzle(caster); + return B_TRUE; + } + + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You yawn."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2419,7 +2548,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } return B_FALSE; } - howlong = getspellduration(5,15,blessed) + (power/2); + howlong = getspellduration(5,10,blessed) + (power/2); addtempflag(target->flags, F_ASLEEP, B_TRUE, NA, NA, NULL, howlong); if (isplayer(target) || haslos(player, target->cell)) { if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2428,7 +2557,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ int howlong = 15; if (!validatespelllf(caster, &target)) return B_TRUE; - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You feel momentarily slower."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2472,7 +2601,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ // target is always the caster target = caster; - if (hasmr(target)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { if (isplayer(target)) { msg("You flicker."); if (seenbyplayer) *seenbyplayer = B_TRUE; @@ -2598,7 +2727,7 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ } else { // otherwise throw it there - but speed is based on // caster's INTELLIGENCE, not strength like normal. - fireat(caster, targob, targcell, getthrowspeed(getattr(caster, A_IQ)), NULL); + fireat(caster, targob, targob->amt, targcell, power, NULL); // note that we use fireat() rather than throwat() to avoid // calling taketime() twice. } @@ -2633,13 +2762,10 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ // ask for target if (!validatespelllf(caster, &target)) return B_TRUE; - if (hasmr(target)) { - if (isplayer(target)) { - msg("You feel momentarily weaker."); - if (seenbyplayer) *seenbyplayer = B_TRUE; - } else if (haslos(player, target->cell)) { + if (skillcheck(target, SC_RESISTMAG, 20 + power, 0)) { + if (cansee(player, target)) { getlfname(target, buf); - msg("%s looks momentarily weaker.", buf); + msg("%s %s momentarily weaker.", buf, isplayer(target) ? "feel" : "looks"); if (seenbyplayer) *seenbyplayer = B_TRUE; } return B_FALSE; @@ -2647,8 +2773,24 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_ if (target) { int howlong = 15; - howlong = getspellduration(10,20,blessed) + power; - addtempflag(target->flags, F_ATTRMOD, A_STR, -6, NA, NULL, howlong); + flag_t *f; + + // already weakaned? + for (f = target->flags->first; f ; f = f->next) { + if ((f->id == F_ATTRMOD) && (f->val[0] == A_STR) && (f->obfrom == OT_S_WEAKEN)) { + if (cansee(player, target)) { + getlfname(target, buf); + msg("%s %s momentarily weaker.", buf, isplayer(target) ? "feel" : "looks"); + if (seenbyplayer) *seenbyplayer = B_TRUE; + } + return B_FALSE; + } + } + + howlong = getspellduration(5,10,blessed) + power; + f = addtempflag(target->flags, F_ATTRMOD, A_STR, -power, NA, NULL, howlong); + f->obfrom = OT_S_WEAKEN; + if (seenbyplayer) *seenbyplayer = B_TRUE; } else { fizzle(caster); @@ -2851,11 +2993,22 @@ char *getspellname(enum OBTYPE spellid, lifeform_t *lf, char *buf) { } int getspellpower(lifeform_t *lf, enum OBTYPE spellid) { - int power; + int power = 0; int statmod; int spelllev; int skill; int max = 10; + flag_t *f; + + // first: can we WILL this to occur? if so, we might have a set + // spellpower + f = lfhasflagval(lf, F_CANWILL, spellid, NA, NA, NULL); + if (f && strlen(f->text)) { + texttospellopts(f->text, &power, NULL, NULL); + if (power > 0) { + return power; + } + } // statmod is -1 to 1 statmod = getstatmod(lf, A_IQ); @@ -2922,6 +3075,7 @@ int getspellrange(enum OBTYPE spellid, int power) { switch (spellid) { case OT_S_BURNINGWAVE: + // base range for this spell is 3 range += (power/3); default: break; @@ -2979,6 +3133,78 @@ void pullobto(object_t *o, lifeform_t *lf) { } } + +void stopallspells(lifeform_t *lf) { + flag_t *f,*nextf; + + for (f = lf->flags->first ; f ; f = nextf) { + nextf = f->next; + if (f->id == F_BOOSTSPELL) { + stopspell(lf, f->val[0]); + } + } +} + +void stopspell(lifeform_t *caster, enum OBTYPE spellid) { + flag_t *f,*nextf; + + for (f = caster->flags->first ; f ; f = nextf) { + nextf = f->next; + if ((f->id == F_BOOSTSPELL) && (f->val[0] == spellid)) { + killflag(f); + } else if ((f->lifetime == FROMSPELL) && (f->obfrom == spellid)) { + killflag(f); + } + } + // remove any other specific effects based on spell type. +} + +lifeform_t *validateabillf(lifeform_t *user, enum OBTYPE aid, lifeform_t **target) { + objecttype_t *ot; + int maxrange; + flag_t *f; + + if (*target) { + return *target; + } + ot = findot(aid); + f = hasflag(ot->flags, F_RANGE); + if (f) { + maxrange = f->val[0]; + } else { + maxrange = UNLIMITED; + } + + + // ask for a target lifeform + if (isplayer(user)) { + cell_t *where; + char buf[BUFLEN]; + sprintf(buf, "Where will you target your %s?",ot->name); + where = askcoords(buf, TT_MONSTER); + if (where) { + if (!haslf(where)) { + msg("There is nobody there!"); + return NULL; + } + if (maxrange != UNLIMITED) { + if (getcelldist(user->cell,where) > maxrange) { + msg("That location is out of range!"); + return NULL; + } + } + *target = haslf(where); + } else { + msg("Cancelled."); + return NULL; + } + } else { + // TODO: fill in monster code? + return NULL; + } + return *target; +} + cell_t *validatespellcell(lifeform_t *caster, cell_t **targcell, int targtype, int needlof, enum OBTYPE spellid, int power) { int maxrange = UNLIMITED; int done = B_FALSE; @@ -3089,7 +3315,7 @@ int getiqreq(enum OBTYPE oid) { } */ -int getmpcost(enum OBTYPE oid) { +int getmpcost(lifeform_t *lf, enum OBTYPE oid) { flag_t *f; objecttype_t *ot; int cost = 0; @@ -3097,6 +3323,16 @@ int getmpcost(enum OBTYPE oid) { if (!ot) { return 0; } + + if (lf) { + if (lfhasflagval(lf, F_BOOSTSPELL, oid, NA, NA, NULL)) { + return 0; // ie. deactivating it + } + if (lfhasflagval(lf, F_CANWILL, oid, NA, NA, NULL)) { + return 0; // ie. deactivating it + } + } + f = hasflag(ot->flags, F_MPCOST); if (f) { cost = f->val[0]; diff --git a/spell.h b/spell.h index 72c5a5f..779e9d9 100644 --- a/spell.h +++ b/spell.h @@ -2,11 +2,11 @@ #define __SPELLS_H #include "defs.h" -int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target); +int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target, flag_t *cwflag); int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_t *target, object_t *targob, cell_t *targcell, int blessed, int *seenbyplayer); void fizzle(lifeform_t *caster); //int getiqreq(enum OBTYPE oid); -int getmpcost(enum OBTYPE oid); +int getmpcost(lifeform_t *lf, enum OBTYPE oid); enum SKILL getschoolskill(enum SPELLSCHOOL ss); int getspellduration(int min,int max,int blessed); int getspelllevel(enum OBTYPE spellid); @@ -16,6 +16,9 @@ int getspellpower(lifeform_t *lf, enum OBTYPE spellid); enum SPELLSCHOOL getspellschool(enum OBTYPE spellid); int getspellrange(enum OBTYPE spellid, int power); void pullobto(object_t *o, lifeform_t *lf); +void stopspell(lifeform_t *caster, enum OBTYPE spellid); +void stopallspells(lifeform_t *lf); +lifeform_t *validateabillf(lifeform_t *user, enum OBTYPE aid, lifeform_t **target); cell_t *validatespellcell(lifeform_t *caster, cell_t **targcell, int targtype, int needlof, enum OBTYPE spellid, int power); lifeform_t *validatespelllf(lifeform_t *caster, lifeform_t **lf); #endif diff --git a/text.c b/text.c index 71378ba..f03efb4 100644 --- a/text.c +++ b/text.c @@ -444,6 +444,61 @@ int texttodice(char *text, int *ndice, int *nsides, int *bonus) { return B_FALSE; } +void texttospellopts(char *text, int *power, char *damstr, int *needgrab) { + char *p; + int n; + char *argname[] = { + "pw:", + "dam:", + "needgrab:", + NULL, + }; + void *argval[] = { + power, + damstr, + needgrab, + NULL, + }; + char argtype[] = { + 'i', + 's', + 'b', + '\0', + }; + + // defaults + if (power) *power = 0; + if (damstr) strcpy(damstr, ""); + if (needgrab) *needgrab = B_FALSE; + + // for each arg + for (n = 0; argname[n]; n++) { + // search for it in text... + for (p = text ; *p ; p++) { + if (!strncmp(p, argname[n], strlen(argname[n])) ) { + char localval[BUFLEN]; + char *valfull; + + strcpy(localval, p + strlen(argname[n])); + valfull = strtok(localval, ";"); + if (valfull) { + if (argval[n]) { + if (argtype[n] == 'i') { + *((int *)argval[n]) = atoi(valfull); + } else if (argtype[n] == 'b') { + *((int *)argval[n]) = atoi(valfull) ? B_TRUE : B_FALSE; + } else if (argtype[n] == 's') { + strcpy((char *)argval[n], valfull); + } + } + break; + } + } + } + } +} + + char *you(lifeform_t *lf) { if (isplayer(lf)) { return "You"; diff --git a/text.h b/text.h index ff8f8b9..8e83a8f 100644 --- a/text.h +++ b/text.h @@ -18,6 +18,7 @@ char *strrep(char *text, char *oldtok, char *newtok, int *rv); char *dostrrep(char* in, char** out, char* oldtok, char* newtok, int *rv); int strpixmatch(char *haystack, char *needle); int texttodice(char *text, int *ndice, int *nsides, int *bonus); +void texttospellopts(char *text, int *power, char *damstr, int *needgrab); char *you(lifeform_t *lf); char *you_l(lifeform_t *lf); char *your(lifeform_t *lf);