GithubHelp home page GithubHelp logo

ultimaxna's People

Contributors

aatu avatar ceridan avatar darklotus avatar denizsokmen avatar eskymak avatar fdsprod avatar gitter-badger avatar gtozzi avatar hifi avatar msx752 avatar mustys avatar orsi avatar patriksamueltauchim avatar robertdeclaux avatar saschakp avatar sgorman avatar slayde1970 avatar smjert avatar tormentedemu avatar vodacek avatar zanedubya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ultimaxna's Issues

Mouse button input should match Classic Client.

As a player, I expect UltimaXNA's single/double click handling to match the same functionality in the classic client. As part of this Issue, the client should be able to choose which mouse button is the 'command' input button, and which is the 'move' input button.

By default, the values should be:

LMB: Command button.

  • Click on...
    • Ground: No effect.
    • StaticItem: Pop-up with name of clicked item.
    • Item [FN1]: Request Context-Menu for the targeted Item.
    • Mobile: Request Context-Menu for the targeted Mobile.
  • Click-Drag on... [FN2]
    • Ground: No effect.
    • StaticItem: No effect.
    • Item: Attempt to pick up.
    • Mobile: Create new mini-mobile-status Gump for the targeted Mobile.
  • Double-Click on...
    • Ground: No effect.
    • StaticItem: No effect.
    • Item: Send Double-Click packet for the targeted Item.
    • Mobile: Set LastTarget == targeted Mobile. If in WarMode, set Attacking == true.

RMB: Move button.

  • Click: If not facing direction of Click, turn to face that direction. If already facing, move one tile.
  • Click-Hold: turn to face direction and move in the specified direction.

FN1: Note that 'Items' are all Items that are not StaticItems.
FN2: Click-Hold for .5 seconds is equivalent to Click-Drag.

Combat movement for enemies

In UltimaXNA, enemies occasionally move without first changing their facing. When this happens, the client should update the facing first.

Move to MonoGame

Why not to port this from XNA to MonoGame? https://github.com/mono/MonoGame
If you don't know MonoGame is Open source XNA implementation that add support to many other platforms like Linux, android, iOS etc. It would be great to have it here!

Thank you Eskymak for letting me know about his project!

Footstep noises.

As a player, hearing footstep noises helps me associate how fast I am moving - as well as other (potentially hostile!) players. Footsteps should be audible for any mobile that is onscreen.

Cleanup targeting code.

Targeting code is spread in at least three different modules:

  • UltimaWorld.Controller.WorldClient
  • UltimaGUI.UltimaCursor
  • Controller.WorldInput

Let's either:

  • Consolidate all targeting code into a single class: UltimaWorld.Controller.Targetting
  • Create a MVC for the MouseCursor. Model handles state, View handles display, and Controller handles input and network.

Toggling warmode moves client.

As a player, when I toggle warmode (with tab, or using the paperdoll interface), I expect that I will be toggled into warmode. What I don't expect is that I will suddenly move as well! Obviously there is some bug in MobileMovement that is causing the client to send incorrect move requests to the server.

Hair is incorrectly hued.

Yesterday i tested after Fixing hues commit there was no problem, after the walking changes i have this strange problem.

ekran goruntusu 38

GUI should ignore brackets when entered by the player in a textbox.

What steps will reproduce the problem?

  1. Type 'Helloworld' in the chat box.

What is the expected output? What do you see instead?
In most if not all situations, the player should not be able to enter HTML code. We should always escape html characters that have been entered by the user.

Options menu and Macros

Basic options menu
Full feature equal of default client's macro manager and macros needed.

Inform player when UO client is too recent to be used.

More recent versions of the UO client have changed the data formats so that UltimaXNA cannot read it. We should indicate this and close the program gracefully, as opposed to failing to read the files and crashing.

New Entity/MapObject model.

Currently, the Map contains Tiles, which contain MapObjects. Each frame, each Entity adds (or updates?) its MapObject within the associated Tile. Then, on draw, the Tile draws all of its MapObjects.

The dual Entity / MapObject is unnecessary, and an artifact of my implementing Clint's XNA renderer (he used MapObjects, and I pretty much bolted on his code to the client without considering how to re-implement the way it worked to better fit the client's code).

Instead, each Entity should belong to/exist within one MapTile, and on draw, the MapTile should be able to ask the Entity for its 'EntityView' object, which describes how that entity should be drawn.

In short:
Old Model:
OnUpdate: Each entity creates a MapObject, which is added to Tile.
OnDraw: Tile draws all MapObjects.
New Model:
OnUpdate: nothing.
OnDraw: Tile requests a EntityView for each Entity within that Tile, and draws these EntityViews.

item hue change

When server sends new item packet (0x1A) with changed hue game doesn't update this information.

Overhead chat and labels.

When a client sends a local chat message, that chat message should appear
above the sending player's avatar.

This overhead class could later be extended to include: targeting indicators,
health bars, nameplates, and a variety of other important additions to the
UI.

As part of this feature, rewrite text rendering to use a sprite batch object, and allow clicking on text to select the object that spawned the text.

Client is not showing dialogs

Client is not showing dialogs, fully working dialog system needed. (tested on sphere server, wanted to work on sphere server)

I meant gumps, an example double clicking on runebook (with 2.0.3 origin client first ss, with ultimaxna secound ss)
ekran goruntusu 9
ekran goruntusu 7

Spell effects displayed in the world.

The client does not yet support the built-in UO particle effects, which are
used for spells (amongst other things). The client should be able to support
these.

An easy way to generate a particle effect as a test is to use the [tele
command on RunUO: this will generate a cloudy effect at both your start and
destination location.

"Show all" labels with Ctrl+Shift.

Hold down the Ctrl key and Shift key to have the names of all nearby objects and targets appear (handy for reaching else unreachable items and targets).

Please post your HueTest debug screen (Ctrl-D at login).

For some reason, UltimaXNA is not huing entities correctly, but only on some clients. I'm trying to figure out why that might be. To test whether the UI SpriteBatch and shader are displaying hues incorrectly, I implemented a HueTest debug screen, which you can display by hitting Ctrl-D at the Login screen.

Would everyone please post a screenshot of your HueTest screen?

Better selection of small objects.

What steps will reproduce the problem?

  1. Put some small object or object with transparent pixels on the ground (e.g. black pearl or spider silk)
  2. Try to pick it up.
  3. Fail.

What is the expected output? What do you see instead?

  • Objects should be easier to pick up from the world.

Skills scroll

Skills scroll - a client side gump that lists all skills that you can train. Skills are separated by category and further separated by active/passive. All trainable skills listed.

Shadows for mobiles.

As a player, mobiles without shadows seem to be moving in the air. Adding shadows would make it clear that the mobiles are, in fact, on the ground.

Implement DeferredRendering strategy

As with any isometric game, Ultima Online has problems with rendered objects being overdrawn by subsequently rendered objects. This is easiest to see with large mobiles (dragons), particularly where their associated texture are large in the y dimension (such as when dragons travel north - their tails extend far into the y-dimension beyond the tile which they occupy).

I am uncertain how Ultima Online handles this problem, but I believe it (a) renders objects in columns of 44 pixels, and (b) renders each column of each object in the tile which its texture extends furthest into. You can see this for yourself if you locking down a dragon in a custom house, and placing walls below it (in the +x, +y direction).

I am considering what kind of DeferredRendering strategy would be best for UltimaXNA. Any input would be helpful.

Huing issues.

Hues are handled differently by different objects. We should investigate huing and figure out how to make it match the legacy client.

Handling more versions of UO installed

After 1a75f6d, UltimaXNA prefers "Ultima Online Classic" installation directory, even if UOML directory was found before.
Since latest UO installer (was in wiki before) installs UO as "Ultima Online Classic", this version is not compatible with UltimaXNA, causing it not to load due to file format.

I would probably:

  • use first found UO installation - and look for most likely compatible version first
  • remove possible incompatible version keys from search
  • look for most likely incompatible version first, so they will get replaced by versions with high compatibilty, if found after them

Moving effects display.

Right now, MovingEffects do not actually move through the world - they just despawn. They need to animate moving from source to target. Question: at what speed should they move?

Weather effects

As a player, I like seeing those little rain and snow particles. We should implement these.

Movement packets not sent at correct rates.

The XNA client moves at the correct rate compared to the legacy client, but does not send movement messages at the correct rate. The correct frequencies are:

1/.4 seconds while walking.
1/.2 seconds while running or riding a trotting mount.
1/.1 seconds while riding a galloping mount.

WorldDraw order bugs.

The problem is that tiles are drawn one after the other, and any tiles drawn after a
large object like a dragon will inevitably overwrite it. I've fixed this for medium-
sized objects by making objects draw on the tile at (x+1, y+1) relative to their
situation. This is a kludge and creates its own bugs (for example, try walking
diagonally behind a sign post or a street lamp; you'll appear to be walking on top it
instead!)

The legacy client solves this problem by splitting up graphics that are wider than
one tile into multiple horizontal subgraphics and assigns each of those to a seperate
tile. It also seperates graphics vertically based on the (center) variable... any
pixels below the center of the image are split into seperate images.

So, take the dragon for example: it's four tiles wide, 80 pixels high, and has a
center of, say, -20. The dragon graphic would be split into 8 graphics: four across
for the tiles, 60 pixels high on the tiles row where it is centered, and 20 pixels
high on the tiles row at (x+1, y+1).

Even this is not perfect, and will present bugs in crowded environments (I only
figured out how the legacy client does this by creating a custom house, locking down
a dragon in the middle, and then creating walls until I saw overdraw artifacts where
the graphic splits were occurring). However, if we're going to stick with the current
TileEngine, this may be the best way to do it.

However, if/when we rewrite the TileEngine to use full 3D, this will no longer be a
problem because we'll be able to manage the z values much better.

Solution for VS2010?

Hello,

can you please provide solution file for VS2010 like it was until now?

Thanks

Czech font rendering issue

Font rendering is not correct in gumps HTML elements (body tags). Also czech capital letters are rendered in wrong location, see picture:
font-rend
Same issue exists in GumpStudio tool I suspect that this can be caused by ultima.dll.

Missing items in PlayerGump

Reported by fwiffo2k:

What steps will reproduce the problem?

  1. equipping an entire plate armor

What is the expected output? What do you see instead?
I did expect to see a gump with all the items I can see in the character as it moves, but instead the PLATEARMS are missing, so there is a defect in gump visualization.

Window resize / maximize support.

As a player, I want to be able to change the dimensions of the Ultima Online client window.

  1. Like the classic client, UltimaXNA should start at a resolution of 640x480. While the client is logging in, it is locked to this resolution.
  2. Once in the world, the player should be able to resize the window at any time. This includes the ability to maximize / restore the window.
  3. When the client enters the world, the client should resize / move itself to the last position it occupied when playing in the world.

Char creation gump recently bugged.

Somewhere between 19e0813 and 1a75f6d (the latest commit), the character creation gump became bugged. In the latest commit, the skill selection gump all but disappears after selecting a character's skill from a drop down menu.

Death animation crash

While casting energy bolt client crashes but i think it's releated to death animation when horse dies client crashes.

ekran goruntusu 65

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.