… | |
… | |
5 | sub teleport { |
5 | sub teleport { |
6 | my ($pl, $map, $x, $y) = @_; |
6 | my ($pl, $map, $x, $y) = @_; |
7 | |
7 | |
8 | my $portal = cf::object::new "exit"; |
8 | my $portal = cf::object::new "exit"; |
9 | |
9 | |
10 | $portal->set_slaying ($map); |
10 | $portal->slaying ($map); |
11 | $portal->set_hp ($x); |
11 | $portal->hp ($x); |
12 | $portal->set_sp ($y); |
12 | $portal->sp ($y); |
13 | |
13 | |
14 | $portal->apply ($pl); |
14 | $portal->apply ($pl); |
15 | |
15 | |
16 | $portal->free; |
16 | $portal->free; |
17 | } |
17 | } |
… | |
… | |
51 | $pl->{neko_next_cast} = time + 40 + rand 60; |
51 | $pl->{neko_next_cast} = time + 40 + rand 60; |
52 | |
52 | |
53 | # so heal her |
53 | # so heal her |
54 | my $spell = cf::object::new "spell_heal"; |
54 | my $spell = cf::object::new "spell_heal"; |
55 | |
55 | |
56 | $spell->set_sp (0); # makes casting work |
56 | $spell->sp (0); # makes casting work |
57 | $spell->set_gp (0); # on unholy/nomagic ground |
57 | $spell->gp (0); # on unholy/nomagic ground |
58 | |
58 | |
59 | $spell->set_hp (0); |
59 | $spell->hp (0); |
60 | $spell->set_dam (($pl->maxhp - $pl->hp) * 0.5); # normal hp heal |
60 | $spell->dam (($pl->maxhp - $pl->hp) * 0.5); # normal hp heal |
61 | $spell->set_food (50); # fill food |
61 | $spell->food (50); # fill food |
62 | $spell->set_last_sp (100); # fill sp |
62 | $spell->last_sp (100); # fill sp |
63 | $spell->set_last_grace (100); # fill gr |
63 | $spell->last_grace (100); # fill gr |
64 | $spell->set_attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE); |
64 | $spell->attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE); |
65 | |
65 | |
66 | $pl->message ("(Neko-san makes strange noises)"); |
66 | $pl->message ("(Neko-san makes strange noises)"); |
67 | $pl->cast_spell ($self, $dir, $spell); |
67 | $pl->cast_spell ($self, $dir, $spell); |
68 | |
68 | |
69 | $spell->free; |
69 | $spell->free; |
… | |
… | |
72 | } else { |
72 | } else { |
73 | # check for fish in his inv and steal it |
73 | # check for fish in his inv and steal it |
74 | if (my $fish = (grep $_->archetype->name eq "fishfood", $pl->inv)[0]) { |
74 | if (my $fish = (grep $_->archetype->name eq "fishfood", $pl->inv)[0]) { |
75 | # add force |
75 | # add force |
76 | my $gave_fish = cf::object::new "force"; |
76 | my $gave_fish = cf::object::new "force"; |
77 | $gave_fish->set_slaying ("schmorp-neko-gave-fish"); |
77 | $gave_fish->slaying ("schmorp-neko-gave-fish"); |
78 | $gave_fish->set_speed (0); |
78 | $gave_fish->speed (0); |
79 | $gave_fish->insert_ob_in_ob ($pl); |
79 | $gave_fish->insert_ob_in_ob ($pl); |
80 | |
80 | |
81 | # remove fish |
81 | # remove fish |
82 | $fish->remove; |
82 | $fish->remove; |
83 | $fish->free; |
83 | $fish->free; |