Deliantra-Client
view release on metacpan or search on metacpan
this really is a bug that needs fixing inside pango.
- include a japanese font (Mona, selected for license and size) with the distribution.
- include our own fonts.conf file, to speed up startup and to be able to control
font selection.
- change confusing login successful message to "connect to server successful".
- update BDB and EV in win32 builds to work around the event loop creation bug.
- fall back to blocking dns resolve before using a hardcoded address.
2.03 Tue Jan 20 14:54:30 CET 2009
- move experience label, progress bars and slot info to the menubar.
- move toplevel menu into a menu popup.
- use fontsize for chekcbox size requests to get a better layout.
- autopickup spellbooks, skillscrolls and valuables by default.
- automatically save config/layout on exit and add config options
to Setup=>Client to control this.
- fix positioning of popup windows.
- move autopickup enable (formerly inhibit) to menubar.
- correctly display face changes for inventory objects.
- verify databases if we are the first process to register, to
detect corruption as is common on windows (but not limited to
windows, unfortunately).
- fall back to backup config file if main config file cannot be parsed.
- reduce shimmering during smooth scrolls.
- rely on AnyEvent to work around totally broken windows vista
tcp/ip subsystem once more (where getpeername returns fantasy
ports).
["$move_prefix <n>",
sub {
do_n_dialog (sub { $::CONN->send ("move $targ $self->{tag} $_[0]") })
}
]
)
),
["bind <i>apply $shortname</i> to a key" => sub { DC::Macro::quick_macro ["apply $self->{name}"] }],
);
DC::UI::Menu->new (items => \@menu_items)->popup ($ev);
}
1
};
my $tooltip_std =
"<small>"
. "Left click - examine item\n"
. "Shift-Left click - " . ($self->{container} ? "move or drop" : "take") . " item\n"
. "Middle click - apply\n"
DC/Macro.pm view on Meta::CPAN
(new DC::UI::Menu
items => [
["Edit" => sub { $edit_macro->($macro) }],
["Invoke" => sub { execute ($macro) }],
["Delete" => sub {
# might want to use grep instead
splice @{$::PROFILE->{macro}}, $idx, 1, ();
$refresh->();
}],
],
)->popup ($ev);
} else {
return 0;
}
1
};
$macrolist->add_at (0, $y, new DC::UI::Label
text => trigger_to_string $macro,
tooltip => $tooltip_trigger . $tooltip_common,
DC/MapWidget.pm view on Meta::CPAN
&::open_quit_dialog;
} else {
exit;
}
}
],
;
(new DC::UI::Menu
items => \@items,
)->popup ($ev);
}
1
}
sub invoke_button_up {
my ($self, $ev, $x, $y) = @_;
delete $self->{motion};
DC/MapWidget.pm view on Meta::CPAN
},
on_button_down => sub {
my ($entry, $ev, $x, $y) = @_;
if ($ev->{button} == 3) {
(new DC::UI::Menu
items => [
["bind <i>" . (DC::asxml $self->{select}) . "</i> to a key"
=> sub { DC::Macro::quick_macro [$self->{select}], sub { $entry->grab_focus } }]
],
)->popup ($ev);
return 1;
}
0
},
on_key_down => sub {
my ($entry, $ev) = @_;
my $self = $entry->{parent}{parent};
if ($ev->{sym} == 13) {
DC/Protocol.pm view on Meta::CPAN
sub ext_ws_a {
my ($self, %ass) = @_;
# everything that has a name, wether conceivably useful or not
my %wkw = (
root => $DC::UI::ROOT,
tooltip => $DC::UI::TOOLTIP,
mapwidget => $::MAPWIDGET,
menubar => $::MENUBAR,
menupopup => $::MENUPOPUP,
pickup_enable => $::PICKUP_ENABLE,
buttonbar => $::BUTTONBAR,
metaserver => $::METASERVER,
buttonbar => $::BUTTONBAR,
login_button => $::LOGIN_BUTTON,
quit_dialog => $::QUIT_DIALOG,
host_entry => $::HOST_ENTRY,
metaserver => $::METASERVER,
server_info => $::SERVER_INFO,
DC/Protocol.pm view on Meta::CPAN
$::CONN->user_send ("ready_skill $name");
} elsif ($ev->{button} == 2) {
$::CONN->user_send ("use_skill $name");
} elsif ($ev->{button} == 3) {
my $shortname = DC::shorten $name, 14;
(new DC::UI::Menu
items => [
["bind <i>ready_skill $shortname</i> to a key" => sub { DC::Macro::quick_macro ["ready_skill $name"] }],
["bind <i>use_skill $shortname</i> to a key" => sub { DC::Macro::quick_macro ["use_skill $name"] }],
],
)->popup ($ev);
} else {
return 0;
}
1
};
my $sw = $self->{skillwid}{$idx} ||= [
# exp
(new DC::UI::Label
}
$self->{item}{$widget} = $item;
$self->{vbox}->add ($widget);
}
$self
}
# popup given the event (must be a mouse button down event currently)
sub popup {
my ($self, $ev) = @_;
$self->emit ("popdown");
# maybe save $GRAB? must be careful about events...
$GRAB = $self;
$self->{button} = $ev->{button};
$self->show;
my ($self, $ev) = @_;
my @menu_items;
for (@{ $self->{options} }) {
my ($value, $title, $tooltip) = @$_;
push @menu_items, [$tooltip || $title, sub { $self->set_value ($value) }];
}
DC::UI::Menu->new (items => \@menu_items)->popup ($ev);
}
sub _set_value {
my ($self, $value) = @_;
my ($item) = grep $_->[0] eq $value, @{ $self->{options} };
$item ||= $self->{options}[0]
or return;
$self->{value} = $item->[0];
DC/UI/SpellList.pm view on Meta::CPAN
$::CONN->user_send ("cast $spell->{name}");
} elsif ($ev->{button} == 2) {
$::CONN->user_send ("invoke $spell->{name}");
} elsif ($ev->{button} == 3) {
my $shortname = DC::shorten $spell->{name}, 14;
(new DC::UI::Menu
items => [
["bind <i>cast $shortname</i> to a key" => sub { DC::Macro::quick_macro ["cast $spell->{name}"] }],
["bind <i>invoke $shortname</i> to a key" => sub { DC::Macro::quick_macro ["invoke $spell->{name}"] }],
],
)->popup ($ev);
} else {
return 0;
}
1
};
my $tooltip = (DC::asxml $spell->{message}) . $TOOLTIP_ALL;
#TODO: add path info to tooltip
bin/deliantra view on Meta::CPAN
}
}],
]);
$BUTTONBAR->add (new DC::UI::Button text => "Menuâ¦",
tooltip => "Shows the main menu",
on_button_down => sub {
my ($self, $ev) = @_;
local $ev->{x} = 0;
local $ev->{y} = 0;
$MENUPOPUP->popup ($ev);
},
);
$MENUBAR->add ($GAUGES->{exp} = new DC::UI::ExperienceProgress
padding_x => 6,
padding_y => 3,
tooltip => "This progress bar shows your overall experience and your progress towards the next character level.",
template => " Exp: 888,888,888,888 (lvl 188) ",
);
pod/faq.pod view on Meta::CPAN
You can only use them in tiles that are buildable. These tiles are found in
guild storages, and in some apartments.
=head3 How can I Prepare/Improve/Enchant Weapons?
This is done in two steps: first you have to I<prepare> your weapon
for the desired number of enchantments, then you apply the enchanments
(weapons remember how many times they can be enchanted further).
To prepare a weapon, wield it and L<mark> (e.g. using the popup menu in
the inventory) it. Then, as a sacrifice, drop some diamonds on the floor
then read the I<Prepare Weapon> scroll. The square root of the total
number of diamonds sacrificed this way determines the number of
enchantments the weapon accepts: one diamond for one enchanment, nine
diamonds for three enchantments, 100 diamonds for ten enchantments,
and so on.
Remember, once you prepare the weapon, it can only be wielded by you.
After that, you can apply improvement and enchantnment scrolls:
pod/manual.pod view on Meta::CPAN
This will ignite for example a torch or thaw an icecube with a B<flint &
steel> L<$ARCH/flint_and_steel.x11>, which is B<required to be in your
inventory> for this to work.
=item inscribe
This will let you write on something (eg. scrolls) with a B<pen>
L<$ARCH/stylus.x11>, which is I<required to be in your inventory> for this
to work.
When you click on this context menu entry a small popup window will open
where you can type in what you want to inscribe.
=item rename
This lets you rename an item. When you click on this context menu entry
a small popup window will open and let you type in the new name for the
item.
=item apply
This L<applies|command/apply> an object.
=item lock/unlock
=item drop/put/take all
approach. You can get your first quests in the B<palace> or at the B<quest
master>.
=head2 Arrows
You can buy B<unlimited> amounts of arrows in specialized archer shops.
=head2 Binding
It is vital to B<bind> keys to some actions, such as applying healing
potion to a key. You can do that by using the right-mouse-button popup
menu on items, skills and spells, but also by recording a macro, or by
writing it by hand.
=head1 X<tooltip>Tooltips
This section contains some of the tooltips of the Deliantra client.
=head2 X<modifier_box>Keyboard Modifiers
( run in 1.963 second using v1.01-cache-2.11-cpan-364913b4093 )