Deliantra-Client

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

          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).

DC/Item.pm  view on Meta::CPAN

                  ["$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

DC/UI.pm  view on Meta::CPAN

      }

      $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;

DC/UI.pm  view on Meta::CPAN

   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

pod/ui.pod  view on Meta::CPAN

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.360 second using v1.01-cache-2.11-cpan-364913b4093 )