GithubHelp home page GithubHelp logo

mofr / diablerie Goto Github PK

View Code? Open in Web Editor NEW
866.0 44.0 197.0 38.61 MB

Diablo 2 reimplementation on unity

License: MIT License

C# 81.95% ShaderLab 10.49% HLSL 0.96% GLSL 6.61%
unity unity2d diablo2 diablo-ii diablo remaster linux game mpq clone

diablerie's People

Contributors

liberodark avatar mofr avatar plug13 avatar sovietmade 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

diablerie's Issues

Footsteps sounds

  • trigger footstep sound periodically, disregard animation timeline
  • take into account dt1 sound index
  • depends on the unit and equip

Unique items

  • Parse UniqueItems.txt
  • Item name
  • Generate items properties
  • Override inventory graphics
  • Override flippy graphics
  • Override sounds
  • Use rarity
  • Rare drop fallback
  • Apply level requirement

Implement belt

Subtasks:

  • create UI
  • expand UI on pointer over
  • toggle UI expand on tilde pressing
  • manual items placement
  • automatic picked up items placement
  • items highlighting
  • items tooltips
  • usage hotkeys
  • different belt sizes (depth)
  • don't forget already belted items when switching to a less capable belt
  • inventory convinence hotkeys (Shift+LMB to put items to the belt)

Check out misc.txt: http://d2mods.info/index.php?ind=reviews&op=entry_view&iden=317
Fields: belt, beltable

Separate collision map layer for dropped items

Items collide with themself only, here is a screenshot from original:
image

In the current implementation, it collides with missiles and characters, which is very inconvenient and confusing.

Gold

Implement gold as a value rather than dummy item.

  • Find a place to store gold amount in item/pickup
  • Display gold amount in pickup text
  • Gold amount generation during item drop
  • Different gold piles/flippy depending on amount (1-99, 100-499, 500-4999, 5000-...)
  • Find a place to store gold amount (may be Character class, and rename existing Character to Creature or Pawn)
  • Display current balance as text in inventory
  • Drop gold button

Fix characters animation speed

Currently character animations speed are ugly dispatched in the COF.Load function.
Need to figure out exact formula to calculate creatures animation speed.
It does involve all animations which can be modified somehow in the game: attack, walk, run, cast, etc.
It doesn't related to idle/neutral animations.

Implement DC6 loader

Currently DC6 loader loads first frame of first direction only. It needs to be fully implemented the same way as DCC does, including frames offsets and correct sprites creation/positioning.

Implement rain effect

  • Visual effect, raindrops
  • Sound effect
  • Intensity levels
  • Day/night variations
  • Use LevelInfo.room property (no rain in caves)

Implement level warps

Already implemented:

  • parsing from txt files
  • positioning in the world space
  • selection
  • activation trigger

Need to implement:

  • actual hero transition

Implement loot highlighting (Alt button)

  • Make the labels highlightable with mouse hover
  • Implement clicking behavior on the labels (the same as clicking on loot directly)
  • Layout the labels so that they do not overlap
  • Pool labels
  • Fix bug when labels are overlapped
  • Regression: Do not highlight through the inventory
  • Allow player movement when the cursor is over a loot label
  • Regression: entities should not be selectable/interactable through the HUD and inventory
  • Tech debt: Show label only for loot on the screen
  • Tech debt: Do not exceed screen bounds
  • Bug: labels are changing positions on the first frame of Alt-click
  • Optimize for a lot of dropped items (>500)
  • Improvement: Limit the number of labels and implement some kind of filter
  • Improvement: Layout horizontally in addition to vertical

Non-colliding tiles

Some tiles are not colliding. Examples: Akara hut, wagon at the south of town.

Floating simulation window

Currently, whole world is simulated every frame. It's not feasible to compute when all levels will be created. Also, CollisionMap will not fit into the memory.
Need to do:

  • Simulate only part of the world near the player/camera
  • Store only simulated part of the world in the collision map
  • Upgrade WorldRenderer so that it renders only visible part of the world

Monsters sounds

  • attack and weapon
  • get hit
  • death
  • init
  • taunt
  • neutral
  • footsteps

Fix overlapping characters

Characters shouldn't overlap while moving. Also characters should use more CollisionMap cells (only one at the moment).

Implement COF triggers

COF files contain information about which frame should trigger some event (perform attack, launch missile etc). Currently COFAnimator triggers on the middle frame of animation sequence.

Hit sounds

weapons.txt, skills.txt, missiles.txt and may be some others have HitClass property which should be mapped to particular sounds from Sounds.txt.

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.