--- deliantra/server/ext/schmorp-neko.ext 2010/04/22 12:50:24 1.9 +++ deliantra/server/ext/schmorp-neko.ext 2012/10/01 01:43:39 1.10 @@ -99,7 +99,7 @@ $hitter->{neko_last_attack} = AE::now; $hitter->{neko_attack}++ - or ext::irc::do_notice "Neko-san was attacked by ". $hitter->name . "!\n"; + or ext::irc::do_notice "Neko-san was attacked by " . $hitter->name . "!\n"; $hitter->message ("Meoow! (Please do not hurt me)") if !($hitter->{neko_attack} & 15); @@ -125,5 +125,28 @@ ext::irc::do_notice (sprintf "[Neko-fon] %s: %s\n", $pl->ob->name, $msg); } +sub on_infect { + my ($self, $type, $disease) = @_; + + my $owner = $disease->owner; + + if ($owner && $owner->type == cf::PLAYER) { + ext::irc::do_notice "Neko-san was diseased by " . $owner->name . " with " . $type->name . "!\n"; + warn "Neko-san was diseased by " . $owner->name . " with " . $type->name . "!\n"; + $disease->remove; + $disease->level ($disease->level + 10); + $disease->magic (0); + $disease->stats->maxsp (1); + $disease->last_heal (1); + $disease->set_owner (undef); + $owner->insert ($disease); + $owner->message ("You have a funny feeling."); + } else { + $disease->destroy; + } + + cf::override; +} + cf::object::attachment "Nekosan", package => __PACKAGE__;