* refactoring escape menu to allow pop back to menu
* refactors escape menu to allow exiting the game
* fixes bug causing player to not be removed on game exit
* Use integer directions for rotating map entities
* Manage composite directly in npc
* Player manages its own composite
* Split up animation mode types
Players, monsters, objects all have their own types
* Clean up AnimatedEntity
* Rename AnimatedEntity -> Object
* Keep the object txt record on hand in Object
* Add InventoryItemMisc struct
* Add GetMiscItemByCode function
* Implement InventoryItem interface for InventoryItemMisc
* Add rings and amulets to the example items loading.
* Fix Y of LeftHand and RightHand equipment slots.
* Add "Ripolak" name to CONTRIBUTORS
* Remove double item
* Add basic EquipmentSlot struct
* Add Load function to EquipmentSlot
* Move EquipmentSlot struct to inventory_grid.go
* Add equipmentSlots arg to ItemGrid struct
* Add basic rendering of equipment slots.
* Change rendering of equipment slots to simply use their static x and y
* Add ChangeEquippedSlot function
* Add initialization to all equipped slots types.
* Fix Y locations of equipment slots
* Move default equipment slots to a genEquipmentSlotsMap function.
* Change Item to item
* Fix coordinates
* Change usage of string to EquippedSlotType when dealing with different slots in rendering.
* Fix import error
* Remove neck example
* Add loading sprites of equipped items.
* Clean code in Inventory rendering
* Clean code in Inventory rendering
* Clean code in Inventory rendering
* Change default items that get rendered.
* Change default items that get rendered.
* Add width and height to EquipementSlot struct
* Fill in width and height to current equipment slots.
* Fix Y setting of equipment slots
* Rename variables for clean code.
* Change handling nil itemSprite to condition instead of loop return.
* Split Render function to 2 functions.
* Add TODO
* Change comment to start with capital I
* Handles Click and Hovers on most game control elements.
Creates a new type of "Actionable" which includes most of the bottom
bar elements. Then handles both "Click" and "Hover" into a separate
handler function.
At the moment, hover does nothing but routes correctly. Click logs
the corresponding actionable.
Known issues:
- Not capturing button press on click (meaning player will move).
- Basic touch detection, could be a more fancy QuadTree like struct.
- Since the visual frames used are not just the actionable, the actual
x, y coordinates of the actionable need to be entered statically. Changes
in resolution would probably affect this.
* Renaming vars for code consistency and readability
* Improve run/walk/neutral animation handling. Initial parsing of LevelDetail records. Support for holding mouse buttons.
- Run/walk/neutral positions now map to a different animation mode(and speed) depending if in or out of town.
- Run/walk toggle which can be activated/deactivated with R key.
- Temporary(and incorrect) loading and mapping for LevelDetails records.
- Zone change label which shows the level name from LevelDetailsRecord when the player enters a different zone.
- Allow holding mouse left/right button to repeatedly generate an action.
* Remove duplicate load of LevelDetails. Replace numbers in zone change logic with their corresponding RegionIdType
* Move zone change check at the correct place
Co-authored-by: Presiyan Ivanov <presiyan-ivanov@users.noreply.github.com>
* camera offset for ui panels :
added maprenderer viewport to be aligned left or right
calling alignement on keyPress in game_controls
* check if already aligned
* fix bugs
-forgot to assign alignement
-defaultScreenRect instead of screenRect because of issue mentionned in original comment
* remove config.json and replace go.mod line
* removing duplicate import of d2common
replacing all dh to d2common
* remove useless breaks from switch statement
* better range when value unused + prettying import
* item_affix rewrite
using return values instead of pointer references in arguments
* ebiten deprecated calls
* small fixes
* camera offset for ui panels :
added maprenderer viewport to be aligned left or right
calling alignement on keyPress in game_controls
* check if already aligned
* fix bugs
-forgot to assign alignement
-defaultScreenRect instead of screenRect because of issue mentionned in original comment
* remove config.json and replace go.mod line
* update with new renderer and escape menu
* Handle up/down/enter keys and reset menu on toggle
Signed-off-by: William Claude <w.claude@thebeat.co>
* Add sound when selecting an item
Signed-off-by: William Claude <w.claude@thebeat.co>
* Reorganise code and remove unused things (YAGNI)
Signed-off-by: William Claude <w.claude@thebeat.co>
* Group properties
Signed-off-by: William Claude <w.claude@thebeat.co>
* Use switch statements instead of IFs
Signed-off-by: William Claude <w.claude@thebeat.co>
* Prevent opening the escape menu over hero stats or inventory
Signed-off-by: William Claude <w.claude@thebeat.co>
* camera offset for ui panels :
added maprenderer viewport to be aligned left or right
calling alignement on keyPress in game_controls
* check if already aligned
Crashes were due to missing translation. This PR temporarily replaces the translateString calls for the default string directly.
in `select_hero_class.go` there is a level of indirection before the call to translateString, and for this reason, its `panic` call got temporarily diverted.
* Switched to json formatted characters
* Added infrastructure for networking
* Minor updates.
* more updates for map engine/rendering
* More map engine changes and fixes
* WIP: Add support for missiles
Break AnimatedEntity into two parts to support single and composite animations. Summon misssiles on right click.
* Break animated entity down further
Move npc only logic to npc struct, reduce duplication in map entities
* Change a bunch of int32s to int
* Switch to a 2d array for looking up subtile flags
Also fix up the walkableArea generation
* Check correct tiletype for walls
And fix the subtile tooltip text.