ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/nimbus.ext
(Generate patch)

Comparing deliantra/maps/perl/nimbus.ext (file contents):
Revision 1.6 by root, Tue Mar 21 00:51:03 2006 UTC vs.
Revision 1.7 by root, Tue Mar 21 02:06:23 2006 UTC

87 $ob->message ("\n"); 87 $ob->message ("\n");
88 88
89 0 89 0
90} 90}
91 91
92sub teleport {
93 my ($pl, $map, $x, $y) = @_;
94
95 return if $pl->ob->map->path eq $map
96 && abs ($pl->ob->x - $x) <= 1
97 && abs ($pl->ob->y - $y) <= 1;
98
99 my $portal = cf::object::new "exit";
100
101 $portal->set_slaying ($map);
102 $portal->set_hp ($x);
103 $portal->set_sp ($y);
104
105 $portal->apply ($pl->ob);
106
107 $portal->free;
108}
109
92sub on_trigger { 110sub on_trigger {
93 my ($event) = @_; 111 my ($event) = @_;
94 my $options = $event->{options}; 112 my $options = $event->{options};
95 my $ob = $event->{activator}; 113 my $ob = $event->{activator};
96 my $pl = $ob->contr; 114 my $pl = $ob->contr;
97 my @savebed; 115 my @savebed;
98 116
99 warn "trigger $options $ob->{nimbus_save}\n";#d#
100 warn $ob->name;
101
102 if (my $save = delete $ob->{in_nimbus}) { 117 if (my $save = delete $ob->{in_nimbus}) {
103 @savebed = @{$save->{savebed}}; 118 @savebed = @{$save->{savebed}};
104 119
105 if ($options eq "restore" || 1) { 120 if ($options eq "restore") {
106 $ob->message ("The gods acknowledge your success.\n"); 121 $ob->message ("The gods acknowledge your success.\n");
107 stats_set $ob->stats, $save->{stats}; 122 stats_set $ob->stats, $save->{stats};
108 stats_set $pl->orig_stats, $save->{orig_stats}; 123 stats_set $pl->orig_stats, $save->{orig_stats};
109 $ob->player_lvl_adj; # update overall level 124 $ob->player_lvl_adj; # update overall level
110 skills_set $ob, $save->{skill_exp}; 125 skills_set $ob, $save->{skill_exp};
118 133
119 $pl->set_savebed (@savebed); 134 $pl->set_savebed (@savebed);
120 135
121 my $map = $ob->map; 136 my $map = $ob->map;
122 137
123 $ob->teleport (cf::map::get_map $savebed[0], $savebed[1], $savebed[2]); 138 teleport $pl, @savebed;
124 139
140 # should make this a temporary map and let cf deal with it
141 unlink $map->path;
142 unlink $map->path . ".cfperl";
125 $map->delete_map; 143 $map->delete_map;
144
145 $pl->play_sound_player_only (cf::SOUND_PLAYER_DIES);
126 146
127 $ob->message ("You feel as if you woke up from a dream.\n"); 147 $ob->message ("You feel as if you woke up from a dream.\n");
128 $ob->message ("You have a headache.\n"); 148 $ob->message ("You have a headache.\n");
129 $ob->message ("Maybe you should have a drink.\n"); 149 $ob->message ("Maybe you should have a drink.\n");
130 150

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines