ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/schmorp-neko.ext
(Generate patch)

Comparing deliantra/server/ext/schmorp-neko.ext (file contents):
Revision 1.1 by root, Fri Dec 15 19:29:18 2006 UTC vs.
Revision 1.8 by root, Sun May 4 08:55:52 2008 UTC

1#! perl 1#! perl # depends=irc
2 2
3# archetype nekosan 3# archetype nekosan
4
5sub teleport {
6 my ($pl, $map, $x, $y) = @_;
7
8 my $portal = cf::object::new "exit";
9
10 $portal->slaying ($map);
11 $portal->stats->hp ($x);
12 $portal->stats->sp ($y);
13
14 $portal->apply ($pl);
15
16 $portal->destroy;
17}
18 4
19sub find_target_player { 5sub find_target_player {
20 my ($obj) = @_; 6 my ($obj) = @_;
21 7
22 my ($time, $pl) = (time + 120, undef); 8 my ($time, $pl) = (time + 120, undef);
62 $spell->last_sp (100); # fill sp 48 $spell->last_sp (100); # fill sp
63 $spell->last_grace (100); # fill gr 49 $spell->last_grace (100); # fill gr
64 $spell->attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE); 50 $spell->attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE);
65 51
66 $pl->message ("(Neko-san makes strange noises)"); 52 $pl->message ("(Neko-san makes strange noises)");
67 $pl->cast_spell ($self, $dir, $spell); 53 $pl->cast_heal ($self, $spell, 0);
68 54
69 $spell->destroy; 55 $spell->destroy;
70 } 56 }
71 57
72 } else { 58 } else {
73 # check for fish in his inv and steal it 59 # check for fish in his inv and steal it
74 if (my $fish = (grep $_->arch->name eq "fishfood", $pl->inv)[0]) { 60 if (my $fish = (grep $_->arch->archname eq "fishfood", $pl->inv)[0]) {
75 # add force 61 # add force
76 my $gave_fish = cf::object::new "force"; 62 my $gave_fish = cf::object::new "force";
77 $gave_fish->slaying ("schmorp-neko-gave-fish"); 63 $gave_fish->slaying ("schmorp-neko-gave-fish");
78 $gave_fish->speed (0); 64 $gave_fish->speed (0);
79 $gave_fish->insert_ob_in_ob ($pl); 65 $pl->insert ($gave_fish);
80 66
81 # remove fish 67 # remove fish
82 $fish->destroy; 68 $fish->destroy;
83 69
84 # be nice 70 # be nice
111 $hitter->{neko_attack} = 0; 97 $hitter->{neko_attack} = 0;
112 } 98 }
113 99
114 $hitter->{neko_last_attack} = time; 100 $hitter->{neko_last_attack} = time;
115 $hitter->{neko_attack}++ 101 $hitter->{neko_attack}++
116 or ext::schmorp_irc::do_notice "Neko-san was attacked by ". $hitter->name . "!\n"; 102 or ext::irc::do_notice "Neko-san was attacked by ". $hitter->name . "!\n";
117 103
118 $hitter->message ("Meoow! (Please do not hurt me)") 104 $hitter->message ("Meoow! (Please do not hurt me)")
119 if !($hitter->{neko_attack} & 15); 105 if !($hitter->{neko_attack} & 15);
120 106
121 if ($hitter->{neko_attack} > 512) { 107 if ($hitter->{neko_attack} > 512) {
122 $hitter->{neko_attack} -= 128; 108 $hitter->{neko_attack} -= 128;
123 $hitter->message ("Neko-san is suddenly gone!"); 109 $hitter->message ("Neko-san is suddenly gone!");
124 teleport $hitter, "/scorn/misc/scorn_illusions", 15, 7; 110 $hitter->goto ("/scorn/misc/scorn_illusions", 15, 7);
125 $hitter->message ("You hear strange noises all around you..."); 111 $hitter->message ("You hear strange noises all around you...");
126 $hitter->message ("You feel dumb."); 112 $hitter->message ("You feel dumb.");
127 } 113 }
128 } else { 114 } else {
129# $hitter->stats->hp (-1); 115# $hitter->stats->hp (-1);
134} 120}
135 121
136sub on_say { 122sub on_say {
137 my ($self, $pl, $msg) = @_; 123 my ($self, $pl, $msg) = @_;
138 124
139 ext::schmorp_irc::do_notice (sprintf "[Neko-fon] %s: %s\n", $pl->ob->name, $msg); 125 ext::irc::do_notice (sprintf "[Neko-fon] %s: %s\n", $pl->ob->name, $msg);
140} 126}
141 127
142cf::register_attachment "Nekosan", package => __PACKAGE__; 128cf::object::attachment "Nekosan", package => __PACKAGE__;
143 129

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines