merentha_mudos_v1/
merentha_mudos_v1/bin/
merentha_mudos_v1/lib/cfg/
merentha_mudos_v1/lib/cfg/races/
merentha_mudos_v1/lib/cmds/abilities/
merentha_mudos_v1/lib/cmds/actions/
merentha_mudos_v1/lib/cmds/spells/
merentha_mudos_v1/lib/daemon/include/
merentha_mudos_v1/lib/daemon/services/
merentha_mudos_v1/lib/doc/
merentha_mudos_v1/lib/doc/building/
merentha_mudos_v1/lib/doc/help/classes/
merentha_mudos_v1/lib/doc/help/general/
merentha_mudos_v1/lib/doc/help/races/
merentha_mudos_v1/lib/doc/help/skills/
merentha_mudos_v1/lib/doc/help/stats/
merentha_mudos_v1/lib/doc/man/efuns/
merentha_mudos_v1/lib/doc/man/lfuns/
merentha_mudos_v1/lib/doc/news/
merentha_mudos_v1/lib/doc/old/
merentha_mudos_v1/lib/doc/old/concepts/
merentha_mudos_v1/lib/doc/old/lpc/constructs/
merentha_mudos_v1/lib/doc/old/lpc/types/
merentha_mudos_v1/lib/domains/ROOMS/
merentha_mudos_v1/lib/domains/obj/armour/
merentha_mudos_v1/lib/domains/obj/monsters/
merentha_mudos_v1/lib/domains/obj/other/
merentha_mudos_v1/lib/domains/obj/weapons/
merentha_mudos_v1/lib/realms/petrarch/
merentha_mudos_v1/lib/save/daemons/
merentha_mudos_v1/lib/save/rid/
merentha_mudos_v1/lib/save/users/a/
merentha_mudos_v1/lib/save/users/p/
merentha_mudos_v1/lib/save/users/t/
merentha_mudos_v1/lib/std/login/
merentha_mudos_v1/lib/std/obj/
merentha_mudos_v1/v22.2b12m1/
merentha_mudos_v1/v22.2b12m1/ChangeLog.old/
merentha_mudos_v1/v22.2b12m1/Win32/
merentha_mudos_v1/v22.2b12m1/compat/
merentha_mudos_v1/v22.2b12m1/compat/simuls/
merentha_mudos_v1/v22.2b12m1/include/
merentha_mudos_v1/v22.2b12m1/mudlib/
merentha_mudos_v1/v22.2b12m1/testsuite/
merentha_mudos_v1/v22.2b12m1/testsuite/clone/
merentha_mudos_v1/v22.2b12m1/testsuite/command/
merentha_mudos_v1/v22.2b12m1/testsuite/data/
merentha_mudos_v1/v22.2b12m1/testsuite/etc/
merentha_mudos_v1/v22.2b12m1/testsuite/include/
merentha_mudos_v1/v22.2b12m1/testsuite/inherit/
merentha_mudos_v1/v22.2b12m1/testsuite/inherit/master/
merentha_mudos_v1/v22.2b12m1/testsuite/log/
merentha_mudos_v1/v22.2b12m1/testsuite/single/
merentha_mudos_v1/v22.2b12m1/testsuite/single/tests/compiler/
merentha_mudos_v1/v22.2b12m1/testsuite/single/tests/efuns/
merentha_mudos_v1/v22.2b12m1/testsuite/single/tests/operators/
merentha_mudos_v1/v22.2b12m1/testsuite/u/
merentha_mudos_v1/v22.2b12m1/tmp/
// Petrarch
// Merentha Lib 1.0
// <fireball>  sample magic attack spell

int command() {
    object at;
    int dam;

    if(this_player()->query_class()!="mage") return notify_fail("Only mages can cast fireballs.\n");
    at=this_player()->query_current_attacker();
    message("magic", "You summon up the magic to cast a giant ball of fire.", this_player());
    message("magic", this_player()->query_cap_name()+" concentrates on a magic spell.",environment(this_player()),({this_player(),at}));
    if(at) {
	if(random(this_player()->query_skill_level("attack"))<random(at->query_skill_level("defense"))) dam=0;
        else dam=this_player()->query_skill_level("attack magic");
	this_player()->set_casting(2);
	this_player()->set_casting_damage(dam);
	this_player()->set_magic_casting(({
	    "Your fireball his "+at->query_cap_name()+".", 
	    "A fireball from "+this_player()->query_cap_name()+" burns you badly.",
	    this_player()->query_cap_name()+" hits "+at->query_cap_name()+" with a ball of fire."
	  }));
                if (dam>0) {
                   this_player()->use_skill("attack magic",(dam<100?dam/2:50));
                } else {
                   at->use_skill("defense", 10);
                }
    } else {
	message("magic", "You release a ball of fire into the sky.", this_player());
	message("magic", this_player()->query_cap_name()+" releases a ball of fire into the sky.",environment(this_player()),({this_player(),at}));
	message("magic", "A magistic fireball flies overhead.", users());
    }
    return 1;
}

string help() {
    return "Syntax: fireball\n\nThis powerful command of the magi allows the caster to create and fire off a magical ball of fire.  When used in combat the fireball will be directed at the enemy.";
}