… | |
… | |
19 | } |
19 | } |
20 | |
20 | |
21 | sub find_target_player { |
21 | sub find_target_player { |
22 | my ($obj) = @_; |
22 | my ($obj) = @_; |
23 | |
23 | |
24 | my ($time, $pl) = (time + 30, undef); |
24 | my ($time, $pl) = (time + 120, undef); |
25 | |
25 | |
26 | for (map $_->ob, cf::player::list) { |
26 | for (map $_->ob, cf::player::list) { |
27 | next unless $obj->on_same_map_as ($_); |
27 | next unless $obj->on_same_map_as ($_); |
28 | |
28 | |
29 | my $ptime = List::Util::max $_->{neko_next_pester}, $_->{neko_next_cast}; |
29 | my $ptime = List::Util::max $_->{neko_next_pester}, $_->{neko_next_cast}; |
… | |
… | |
53 | $pl->{neko_next_cast} = time + 40 + rand 60; |
53 | $pl->{neko_next_cast} = time + 40 + rand 60; |
54 | |
54 | |
55 | # so heal her |
55 | # so heal her |
56 | my $spell = cf::object::new "spell_heal"; |
56 | my $spell = cf::object::new "spell_heal"; |
57 | |
57 | |
58 | $spell->set_sp (0); # makes casting work |
58 | $spell->set_sp (0); # makes casting work |
59 | $spell->set_gp (0); # on unholy/nomagic ground |
59 | $spell->set_gp (0); # on unholy/nomagic ground |
60 | |
60 | |
61 | $spell->set_hp (0); |
61 | $spell->set_hp (0); |
62 | $spell->set_dam ($pl->maxhp - $pl->hp); # normal hp heal |
62 | $spell->set_dam (($pl->maxhp - $pl->hp) * 0.5); # normal hp heal |
63 | $spell->set_food (999); # fill food |
63 | $spell->set_food (50); # fill food |
64 | $spell->set_last_sp (9999); # fill sp |
64 | $spell->set_last_sp (100); # fill sp |
65 | $spell->set_last_grace (9999); # fill gr |
65 | $spell->set_last_grace (100); # fill gr |
66 | $spell->set_attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE); |
66 | $spell->set_attacktype (cf::AT_CONFUSION | cf::AT_POISON | cf::AT_BLIND | cf::AT_DISEASE); |
67 | |
67 | |
68 | $pl->message ("(Neko-san makes strange noises)"); |
68 | $pl->message ("(Neko-san makes strange noises)"); |
69 | $pl->cast_spell ($data->{who}, $dir, $spell); |
69 | $pl->cast_spell ($data->{who}, $dir, $spell); |
70 | |
70 | |