final_realms_fluffos_v1/
final_realms_fluffos_v1/bin/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/ChangeLog.old/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/Win32/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/simuls/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/clone/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/command/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/data/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/etc/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/master/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/log/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/compiler/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/efuns/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/operators/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/u/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/tmp/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/windows/
final_realms_fluffos_v1/lib/baseobs/guilds/
final_realms_fluffos_v1/lib/baseobs/misc/
final_realms_fluffos_v1/lib/baseobs/races/shadows/
final_realms_fluffos_v1/lib/cmds/god/
final_realms_fluffos_v1/lib/cmds/handlers/
final_realms_fluffos_v1/lib/cmds/handlers/cmds/
final_realms_fluffos_v1/lib/d/heaven/
final_realms_fluffos_v1/lib/d/heaven/heaven/ave/
final_realms_fluffos_v1/lib/d/mudlib/
final_realms_fluffos_v1/lib/d/newbie/
final_realms_fluffos_v1/lib/d/newbie/docs/
final_realms_fluffos_v1/lib/d/newbie/drow/armour/
final_realms_fluffos_v1/lib/d/newbie/drow/items/
final_realms_fluffos_v1/lib/d/newbie/drow/mobs/
final_realms_fluffos_v1/lib/d/newbie/drow/oldmobs/
final_realms_fluffos_v1/lib/d/newbie/drow/weapons/
final_realms_fluffos_v1/lib/d/newbie/duergar/weapons/
final_realms_fluffos_v1/lib/d/newbie/dwarf/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/cafe/
final_realms_fluffos_v1/lib/d/newbie/elf/chars/equip/
final_realms_fluffos_v1/lib/d/newbie/elf/items/armours/
final_realms_fluffos_v1/lib/d/newbie/elf/items/obj/
final_realms_fluffos_v1/lib/d/newbie/elf/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/quick_fix/
final_realms_fluffos_v1/lib/d/newbie/gnome/armour/
final_realms_fluffos_v1/lib/d/newbie/gnome/buildings/
final_realms_fluffos_v1/lib/d/newbie/gnome/items/
final_realms_fluffos_v1/lib/d/newbie/gnome/npcs/clones/
final_realms_fluffos_v1/lib/d/newbie/gnome/rooms/northrooms/
final_realms_fluffos_v1/lib/d/newbie/gnome/weapons/
final_realms_fluffos_v1/lib/d/newbie/goblin/armour/
final_realms_fluffos_v1/lib/d/newbie/goblin/items/
final_realms_fluffos_v1/lib/d/newbie/grads/log/
final_realms_fluffos_v1/lib/d/newbie/grads/npcs/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/cave1/
final_realms_fluffos_v1/lib/d/newbie/grads/temp/
final_realms_fluffos_v1/lib/d/newbie/guests/weapons/
final_realms_fluffos_v1/lib/d/newbie/half-elf/items/
final_realms_fluffos_v1/lib/d/newbie/half-elf/newroomss/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/castle/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/drows/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/savannah/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/secret/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/town/
final_realms_fluffos_v1/lib/d/newbie/halfling/
final_realms_fluffos_v1/lib/d/newbie/halfling/misc/
final_realms_fluffos_v1/lib/d/newbie/halfling/rooms/cave/
final_realms_fluffos_v1/lib/d/newbie/human/
final_realms_fluffos_v1/lib/d/newbie/human/armour/
final_realms_fluffos_v1/lib/d/newbie/human/monsters/
final_realms_fluffos_v1/lib/d/newbie/human/obj/
final_realms_fluffos_v1/lib/d/newbie/human/weapons/
final_realms_fluffos_v1/lib/d/newbie/lizard/armour/
final_realms_fluffos_v1/lib/d/newbie/lizard/items/
final_realms_fluffos_v1/lib/d/newbie/lizard/underwater/
final_realms_fluffos_v1/lib/d/newbie/lizard/weapons/
final_realms_fluffos_v1/lib/d/newbie/logs/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/rooms/
final_realms_fluffos_v1/lib/d/newbie/newelf/
final_realms_fluffos_v1/lib/d/newbie/newelf/chars/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/recopied/
final_realms_fluffos_v1/lib/d/newbie/newelf/obj/
final_realms_fluffos_v1/lib/d/newbie/newelf/quest_docs./
final_realms_fluffos_v1/lib/d/newbie/newken/
final_realms_fluffos_v1/lib/d/newbie/newken/chars/
final_realms_fluffos_v1/lib/d/newbie/newken/misc/
final_realms_fluffos_v1/lib/d/newbie/newken/npcs/
final_realms_fluffos_v1/lib/d/newbie/newken/obj/
final_realms_fluffos_v1/lib/d/newbie/newliz/
final_realms_fluffos_v1/lib/d/newbie/newliz/cave/
final_realms_fluffos_v1/lib/d/newbie/newliz/npcs/
final_realms_fluffos_v1/lib/d/newbie/orc/items/misc/
final_realms_fluffos_v1/lib/d/newbie/orc/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/orc/tower/
final_realms_fluffos_v1/lib/d/vehicle/
final_realms_fluffos_v1/lib/doc/
final_realms_fluffos_v1/lib/doc/driver/
final_realms_fluffos_v1/lib/doc/driver/concepts/
final_realms_fluffos_v1/lib/doc/driver/driver/
final_realms_fluffos_v1/lib/doc/driver/efuns/arrays/
final_realms_fluffos_v1/lib/doc/driver/efuns/bitstrings/
final_realms_fluffos_v1/lib/doc/driver/efuns/communication/
final_realms_fluffos_v1/lib/doc/driver/efuns/core/
final_realms_fluffos_v1/lib/doc/driver/efuns/debugging/
final_realms_fluffos_v1/lib/doc/driver/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/driver/efuns/interactive/
final_realms_fluffos_v1/lib/doc/driver/efuns/mappings/
final_realms_fluffos_v1/lib/doc/driver/efuns/objects/
final_realms_fluffos_v1/lib/doc/driver/efuns/security/
final_realms_fluffos_v1/lib/doc/driver/efuns/strings/
final_realms_fluffos_v1/lib/doc/driver/efuns/system/
final_realms_fluffos_v1/lib/doc/driver/efuns/types/
final_realms_fluffos_v1/lib/doc/driver/lpc/constructs/
final_realms_fluffos_v1/lib/doc/driver/lpc/types/
final_realms_fluffos_v1/lib/doc/driver/platforms/
final_realms_fluffos_v1/lib/doc/lpc/
final_realms_fluffos_v1/lib/doc/mail/
final_realms_fluffos_v1/lib/doc/man/
final_realms_fluffos_v1/lib/doc/man/html/
final_realms_fluffos_v1/lib/doc/man/html/applies/
final_realms_fluffos_v1/lib/doc/man/html/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/html/driver/
final_realms_fluffos_v1/lib/doc/man/html/efuns/
final_realms_fluffos_v1/lib/doc/man/html/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/html/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/html/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/html/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/html/efuns/general/
final_realms_fluffos_v1/lib/doc/man/html/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/
final_realms_fluffos_v1/lib/doc/man/local/applies/
final_realms_fluffos_v1/lib/doc/man/local/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/local/applies/master/
final_realms_fluffos_v1/lib/doc/man/local/concepts/
final_realms_fluffos_v1/lib/doc/man/local/defines/
final_realms_fluffos_v1/lib/doc/man/local/driver/
final_realms_fluffos_v1/lib/doc/man/local/efuns/
final_realms_fluffos_v1/lib/doc/man/local/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/local/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/local/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/local/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/local/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/local/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/local/efuns/general/
final_realms_fluffos_v1/lib/doc/man/local/efuns/interactive/
final_realms_fluffos_v1/lib/doc/man/local/efuns/internals/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/local/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/objects/
final_realms_fluffos_v1/lib/doc/man/local/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/efuns/sockets/
final_realms_fluffos_v1/lib/doc/man/local/efuns/strings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/system/
final_realms_fluffos_v1/lib/doc/man/local/historical/
final_realms_fluffos_v1/lib/doc/man/local/lfun/QC/
final_realms_fluffos_v1/lib/doc/man/local/lfun/events/
final_realms_fluffos_v1/lib/doc/man/local/lfun/monster/
final_realms_fluffos_v1/lib/doc/man/local/lfun/properties/
final_realms_fluffos_v1/lib/doc/man/local/lpc/
final_realms_fluffos_v1/lib/doc/man/local/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/local/lpc/types/
final_realms_fluffos_v1/lib/doc/man/local/standards/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/basic/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/intermediate/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/concepts/
final_realms_fluffos_v1/lib/doc/man/mudos/driver/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/general/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mixed/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/types/
final_realms_fluffos_v1/lib/doc/races/
final_realms_fluffos_v1/lib/doc/races/old_race/
final_realms_fluffos_v1/lib/global/virtual/
final_realms_fluffos_v1/lib/global/wiz_backup/
final_realms_fluffos_v1/lib/net/config/
final_realms_fluffos_v1/lib/net/daemon/chars/
final_realms_fluffos_v1/lib/net/inherit/
final_realms_fluffos_v1/lib/net/intermud3/
final_realms_fluffos_v1/lib/net/intermud3/cmds/
final_realms_fluffos_v1/lib/net/intermud3/save/
final_realms_fluffos_v1/lib/net/intermud3/services/
final_realms_fluffos_v1/lib/net/obj/
final_realms_fluffos_v1/lib/net/old/
final_realms_fluffos_v1/lib/net/old/intermud/
final_realms_fluffos_v1/lib/net/old/intermud/adm/
final_realms_fluffos_v1/lib/net/old/intermud/services/
final_realms_fluffos_v1/lib/net/old/intermud/udp/
final_realms_fluffos_v1/lib/net/virtual/
final_realms_fluffos_v1/lib/obj/b_day/
final_realms_fluffos_v1/lib/obj/chars/
final_realms_fluffos_v1/lib/obj/handlers/lists/
final_realms_fluffos_v1/lib/obj/handlers/useless/
final_realms_fluffos_v1/lib/obj/monsters/
final_realms_fluffos_v1/lib/obj/roomgen/
final_realms_fluffos_v1/lib/obj/soul/
final_realms_fluffos_v1/lib/obj/vegetation/
final_realms_fluffos_v1/lib/obj/weapons/oldsys/
final_realms_fluffos_v1/lib/open/
final_realms_fluffos_v1/lib/players/g/
final_realms_fluffos_v1/lib/releasefiles/d/heaven/
final_realms_fluffos_v1/lib/releasefiles/d/mudlib/
final_realms_fluffos_v1/lib/releasefiles/d/newbie/
final_realms_fluffos_v1/lib/releasefiles/doc/
final_realms_fluffos_v1/lib/releasefiles/players/g/
final_realms_fluffos_v1/lib/releasefiles/save/
final_realms_fluffos_v1/lib/releasefiles/save/environ/
final_realms_fluffos_v1/lib/releasefiles/save/roomgen/
final_realms_fluffos_v1/lib/releasefiles/secure/
final_realms_fluffos_v1/lib/releasefiles/w/
final_realms_fluffos_v1/lib/releasefiles/w/god/
final_realms_fluffos_v1/lib/room/
final_realms_fluffos_v1/lib/save/
final_realms_fluffos_v1/lib/save/environ/
final_realms_fluffos_v1/lib/save/roomgen/
final_realms_fluffos_v1/lib/scripts/
final_realms_fluffos_v1/lib/secure/crerem/
final_realms_fluffos_v1/lib/secure/dom/
final_realms_fluffos_v1/lib/secure/log/
final_realms_fluffos_v1/lib/secure/misc/
final_realms_fluffos_v1/lib/std/adnd/
final_realms_fluffos_v1/lib/std/commands/shadows/
final_realms_fluffos_v1/lib/std/creator/
final_realms_fluffos_v1/lib/std/curses/
final_realms_fluffos_v1/lib/std/curses/old_sys/
final_realms_fluffos_v1/lib/std/curses/shadows/
final_realms_fluffos_v1/lib/std/dom/
final_realms_fluffos_v1/lib/std/effects/
final_realms_fluffos_v1/lib/std/effects/healing/
final_realms_fluffos_v1/lib/std/effects/other/
final_realms_fluffos_v1/lib/std/effects/poisons/
final_realms_fluffos_v1/lib/std/environ/
final_realms_fluffos_v1/lib/std/guilds/
final_realms_fluffos_v1/lib/std/guilds/priests/samples/
final_realms_fluffos_v1/lib/std/guilds/wizards/
final_realms_fluffos_v1/lib/std/living/baldy/
final_realms_fluffos_v1/lib/std/living/divstuff/
final_realms_fluffos_v1/lib/std/paran/
final_realms_fluffos_v1/lib/std/poisons/
final_realms_fluffos_v1/lib/std/poisons/shadows/
final_realms_fluffos_v1/lib/std/poisons/weapons/
final_realms_fluffos_v1/lib/std/race_groups/
final_realms_fluffos_v1/lib/std/room/
final_realms_fluffos_v1/lib/std/room/old/
final_realms_fluffos_v1/lib/std/rooms/
final_realms_fluffos_v1/lib/std/shadows/
final_realms_fluffos_v1/lib/std/shadows/test_shad/
final_realms_fluffos_v1/lib/std/socket/
final_realms_fluffos_v1/lib/std/spells/
final_realms_fluffos_v1/lib/std/vaults/
final_realms_fluffos_v1/lib/tmp/
final_realms_fluffos_v1/lib/w/
final_realms_fluffos_v1/lib/w/god/
final_realms_fluffos_v1/old/
final_realms_fluffos_v1/win32/
//  Inheritable dragon base file by the hand of Dwimmerlaik
//  with invaluable aid from Radix.

//  I would greatly appreciate if you were to refrain from
//  making any changes to this file unless I know about it.
//  Dread Dwimmerlaik

inherit "obj/monster";

#define AN attacker->query_cap_name()
#define DN defender->query_cap_name()

void set_age(int i);   /* This MUST be set first */
void set_color(string str);
void set_breath_type(string type);
void set_breath_damage(int d);
void set_breath_chance(int c);
void set_in_lair(int l);
void set_breath_mess(string str);
void set_target_mess(string str);
void create_dragon();

string color,
       breath_mess,    /*  what the room sees  */
       target_mess,    /* what the target sees */
       breath_type;
int BASE,
    age,  x, l,
    breath_dam,
    breath_chance,
    in_lair;

void set_age(int i)  {
  switch(i)  {
    case(1) :
    case(2) :
    case(3) :
    case(4) :
    case(5) :
    case(6) :
    case(7) :
    case(8) :
    case(9) :
    case(10) :
    case(11) :
    case(12) :
      age = i;
    break;
    default : age = 4;
  }
}  /*  set_age()  */

void set_color(string str)  {
  switch(str)  {

    case("black") :
      color = str;
      BASE = 12;
       set_align(3000);
       set_ethics(1000);
      if(age == 1)  {  set_level(17);   }
      if(age >= 2 && age <= 3)  {  set_level(20);   }
      if(age >= 4 && age <= 5)  {  set_level(23);   }
      if(age >= 6 && age <= 7)  {  set_level(26);   }
      if(age >= 8 && age <= 9)  {  set_level(29);   }
      if(age >= 10 && age <= 11)  {  set_level(32);   }
      if(age == 12)  {  set_level(35);   }
      break;

    case("blue") :
      color = str;
      BASE = 14;
       set_align(3000);
       set_ethics(-1000);
      if(age == 1)  {  set_level(22);   }
      if(age >= 2 && age <= 3)  {  set_level(25);   }
      if(age >= 4 && age <= 5)  {  set_level(28);   }
      if(age >= 6 && age <= 7)  {  set_level(31);   }
      if(age >= 8 && age <= 9)  {  set_level(34);   }
      if(age >= 10 && age <= 11)  {  set_level(37);   }
      if(age == 12)  {  set_level(40);   }
      break;

    case("brass") :
      color = str;
      BASE = 12;
       set_align(-200);
       set_ethics(1000);
      if(age == 1)  {  set_level(17);   }
      if(age >= 2 && age <= 3)  {  set_level(20);   }
      if(age >= 4 && age <= 5)  {  set_level(23);   }
      if(age >= 6 && age <= 7)  {  set_level(26);   }
      if(age >= 8 && age <= 9)  {  set_level(29);   }
      if(age >= 10 && age <= 11)  {  set_level(32);   }
      if(age == 12)  {  set_level(35);   }
      break;

    case("bronze") :
      color = str;
      BASE = 14;
       set_align(-3000);
       set_ethics(-2000);
      if(age == 1)  {  set_level(22);   }
      if(age >= 2 && age <= 3)  {  set_level(25);   }
      if(age >= 4 && age <= 5)  {  set_level(28);   }
      if(age >= 6 && age <= 7)  {  set_level(31);   }
      if(age >= 8 && age <= 9)  {  set_level(34);   }
      if(age >= 10 && age <= 11)  {  set_level(37);   }
      if(age == 12)  {  set_level(40);  }
      break;

    case("copper") :
      color = str;
      BASE = 13;
       set_align(-1500);
       set_ethics(1500);
      if(age == 1)  {  set_level(20);   }
      if(age >= 2 && age <= 3)  {  set_level(23);   }
      if(age >= 4 && age <= 5)  {  set_level(26);   }
      if(age >= 6 && age <= 7)  {  set_level(29);   }
      if(age >= 8 && age <= 9)  {  set_level(32);   }
      if(age >= 10 && age <= 11)  {  set_level(35);   }
      if(age == 12)  {  set_level(38);   }
      break;

    case("gold") :
      color = str;
      BASE = 16;
       set_align(-5500);
       set_ethics(-5500);
      if(age == 1)  {  set_level(32);   }
      if(age >= 2 && age <= 3)  {  set_level(35);   }
      if(age >= 4 && age <= 5)  {  set_level(38);   }
      if(age >= 6 && age <= 7)  {  set_level(41);   }
      if(age >= 8 && age <= 9)  {  set_level(44);   }
      if(age >= 10 && age <= 11)  {  set_level(47);   }
      if(age == 12)  {  set_level(50);   }
      break;

    case("green") :
      color = str;
      BASE = 13;
       set_align(3000);
       set_ethics(-1500);
      if(age == 1)  {  set_level(20);   }
      if(age >= 2 && age <= 3)  {  set_level(23);   }
      if(age >= 4 && age <= 5)  {  set_level(26);   }
      if(age >= 6 && age <= 7)  {  set_level(29);   }
      if(age >= 8 && age <= 9)  {  set_level(32);   }
      if(age >= 10 && age <= 11)  {  set_level(35);   }
      if(age == 12)  {  set_level(38);   }
      break;

    case("red") :
      color = str;
      BASE = 15;
       set_align(5500);
       set_ethics(5500);
      if(age == 1)  {  set_level(27);   }
      if(age >= 2 && age <= 3)  {  set_level(30);   }
      if(age >= 4 && age <= 5)  {  set_level(33);   }
      if(age >= 6 && age <= 7)  {  set_level(36);   }
      if(age >= 8 && age <= 9)  {  set_level(39);   }
      if(age >= 10 && age <= 11)  {  set_level(42);   }
      if(age == 12)  {  set_level(45);   }
      break;

    case("silver") :
      color = str;
      BASE = 15;
       set_align(-2500);
       set_ethics(-1500);
      if(age == 1)  {  set_level(27);   }
      if(age >= 2 && age <= 3)  {  set_level(30);   }
      if(age >= 4 && age <= 5)  {  set_level(33);   }
      if(age >= 6 && age <= 7)  {  set_level(36);   }
      if(age >= 8 && age <= 9)  {  set_level(39);   }
      if(age >= 10 && age <= 11)  {  set_level(42);   }
      if(age == 12)  {  set_level(45);   }
      break;

    case("white") :
      color = str;
      BASE = 11;
       set_align(3000);
       set_ethics(3000);
      if(age == 1)  {  set_level(12);   }
      if(age >= 2 && age <= 3)  {  set_level(15);   }
      if(age >= 4 && age <= 5)  {  set_level(18);   }
      if(age >= 6 && age <= 7)  {  set_level(21);   }
      if(age >= 8 && age <= 9)  {  set_level(24);   }
      if(age >= 10 && age <= 11)  {  set_level(27);   }
      if(age == 12)  {  set_level(30);   }
      break;

    default : color = "green";
  }
}  /*  set_color()  */

void set_breath_type(string type) {
  switch(type) {

    case("acid") :
    case("air") :
    case("cold") :
    case("electrical") :
    case("fire") :
    case("magic") :
    case("magical") :
    case("poison") :
      breath_type = type;
      break;
    default : 
      if(color == "black")   breath_type = "acid"; 
      if(color == "blue")    breath_type = "electrical"; 
      if(color == "brass")   breath_type = "fire"; 
      if(color == "bronze")  breath_type = "electrical"; 
      if(color == "copper")  breath_type = "acid"; 
      if(color == "gold")    breath_type = "fire"; 
      if(color == "green")   breath_type = "poison"; 
      if(color == "red")     breath_type = "fire"; 
      if(color == "silver")  breath_type = "cold"; 
      if(color == "white")   breath_type = "cold"; 
  }
}  /*  set_breath_type()  */

void set_in_lair(int l) {
  switch(l) {
    case(0) :
      set_aggressive(0);
      in_lair = l;
      break;
    case(1) :
      set_aggressive(2);
      adjust_tmp_str(20);
      adjust_tmp_dex(20);
      in_lair = l;
      break;
    default : in_lair = 0;
  }
}  /*  set_in_lair()  */

void set_breath_damage(int d) {  breath_dam = d; }

void set_breath_chance(int c) {  breath_chance = c; }

void set_breath_mess(string str) {  breath_mess = str; }

void set_target_mess(string str)  {  target_mess = str;  }

void create_dragon()  {
   set_name(color+" dragon");
   set_short(capitalize(color)+" Dragon");
   set_long("This "+query_short()+" is looking rather testy.\n\n");

   adjust_tmp_damage_bon(age);
   set_random_stats(12, 15+random(age));
   set_gender(0);
   set_race("dragon");
 
   add_alias("dragon");
   add_alias("Dragon");
   set_main_plural(color+" dragons");
   add_plural("dragons");
   add_plural("Dragons");
   set_max_hp( ((BASE + age) * 70) + random(500) );
   set_gp(1000);
   set_cha((random(30)) + (random(age)));
   set_kill_xp((BASE * age) * 150);
   set_thac0(100 - (BASE * age));
   set_ac(200 - ((BASE * age) + random(100)));
   set_main_plural(query_short()+"s");

   set_breath_mess("\nThe dragon leans forward and gouts its "
                   "fearsome breath!!\n\n");
   set_target_mess("\nYou have been gouted upon!!\n\n");
   set_breath_damage(50);
   set_breath_chance(30);
   set_breath_type(" ");

   add_property(breath_type, 100);
}  /*  create_dragon()  */

int unarmed_attack(object target,object me) {
  object *att;
  att = (object*)me->query_attacker_list();
  monster::unarmed_attack(att[random(sizeof(att))],me);
  monster::unarmed_attack(att[random(sizeof(att))],me);
  monster::unarmed_attack(att[random(sizeof(att))],me);
}  /*  unarmed_attack()  */

mixed valid_attack() {
  int two = random(2);
  int three = random(3);
  int four = random(4);
  int five = random(5);
  int BREATH = random(100);
  int CHANCE = breath_chance;
  int GP = attacker->query_gp();
  int TYPE = attacker->query_breath_type();

if(BREATH >= 100 - CHANCE)  {
  if(GP >= 20)  {
      if(x == 0)    {
          say("%^BOLD%^"+AN+" rears its head back and its eyes roll "
                    "over white.\n\n%^RESET%^");
          x = x + 1; }
      else if(x == 1)    {
          x = 0;
          say("%^BOLD%^YELLOW%^"+breath_mess+"%^RESET%^");
          tell_object(defender,sprintf("%-=*s",defender->query_cols(),
                      "%^BOLD%^RED%^"+target_mess+"%^RESET%^"));
          attacker->adjust_gp(-20);
        breath_dam=(breath_dam*(100-(int)defender->query_property(TYPE)))/100;
          defender->adjust_hp(-(age + random(breath_dam)));    }
        }
    }

    return([
      "knee"  :({AN+" slashes "+DN+" with its claws.\n",
                 "You slash "+DN+".\n",
                 AN+" slashes you with its claws.\n"}),
      "punch" :({AN+" slashes "+DN+" with its claws.\n",
                 "You slash "+DN+".\n",
                 AN+" slashes you with its claws.\n"}),
      "kick"  :({AN+" bites a gaping wound into "+DN+".\n",
                 "You bite "+DN+".\n",
                 AN+" bites a gaping wound into you.\n"})  ]);
}  /*  valid_attack()  */

string query_dragon_title(string i)  {
  switch(i)  {
    case(1) :
      return("hatchling");
      break;
    case(2) :
      return("very young");
      break;
    case(3) :
      return("young");
      break;
    case(4) :
      return("juvenile");
      break;
    case(5) :
      return("young adult");
      break;
    case(6) :
      return("adult");
      break;
    case(7) :
      return("mature adult");
      break;
    case(8) :
      return("old");
      break;
    case(9) :
      return("very old");
      break;
    case(10) :
      return("venerable");
      break;
    case(11) :
      return("wyrm");
      break;
    case(12) :
      return("great wyrm");
      break;
  }
}  /*  query_dragon_title()  */

int query_dragon() { return(1); }
string query_color() { return(color); }
string query_dragon_color() { return(color); }
string query_race() { return("dragon"); }
string query_breath_type() {  return (breath_type); }
int query_breath_damage() {  return (breath_dam); }
int query_breath_chance() {  return (breath_chance); }
int query_in_lair() { return (in_lair); }
string query_breath_mess() {  return (breath_mess); }
string query_target_mess() {  return (target_mess); }


/*************************************************************
**************************************************************
** Note to anyone wishing to use dragon.c to create a beast **
** of dragonkind....                                        **

If you are going to use dragon.c, please look through it and
be familiar with what everything does. Set everything that is
settable. EVERYTHING.

X) : Dread Dwimmerlaik

 ((=========================================================))
        Use this as a psuedo-guide when using dragon.c
                  Dwimmerlaik : Nov. 21, 1995
 ((=========================================================))

inherit "/obj/dragon.c";

void setup() {

  set_name("Ted the raging red dragon");
  add_alias("ted");

  set_age(6);    Settable ages are 1 through 12 ( 1 being a hatchling
                 12 being a greaty wyrm );  Age presets thac0 and level
                 Age MUST be set first.

  set_color("red");  Settable colors are : black, blue, brass, bronze,
                     copper, gold, green, red, silver and white. Evil
                     dragons are actual colors, good dragons are the
                     metal colors, i.e. brass, gold, etc.

  create_dragon();  This must be set to make this monster a dragon. Adds
                    defaults, attacks and special attacks. Also adds logical
                    aliases and plurals, i.e. dragon, dragons, etc.

  set_breath_type("fire");  Settable types are : acid, cold, electrical,
                            fire, magic, magical, poison. Must set this
                             so that player resistances may be taken into
                             account when hit with the dragon's breath
                             weapon.

  set_breath_damage(150);  Can be set to anything. This is the maximum
                           amount of damage a breath weapon can do in
                           one strike. Damage for this case would be
                           1 - 150 (*not counting possible player
                                     resistances*)

  set_breath_chance(50);  Can be set from 1 - 100. Quite simply, the
                          higher the number, the greater the frequency
                          of times the dragon employs the breath weapon.

  set_in_lair(1);  Can be set either 0 or 1. If set to 1, the dragon will
                   be aggressive to those who enter into the room it is in,
                   otherwise it will sit dormant.

  set_breath_mess("\nThe dragon rears back and gouts his breath!!\n\n");
           This sets the message that the room sees when a
           dragon employs its breath weapon.

  set_target_mess("\nOw! That hurt!!\n\n");
           This sets the message that the target of the breath
           weapon sees.

  ********----  Now comes the traditional stuff ----********
  ********----  note that create_dragon(); has  ----********
  ********----     defaults for most of this    ----********

  set_short("ted the raging red dragon");
  set_long("\nYup.. it's a dragon.\n\n");

*******************************************************************
******************************************************************/