Giter Club home page Giter Club logo

letmeout's Introduction

Let Me Out!

My Roguelike attempt - in progress

Main assumptions:
- only pure Java
- turn-based
- highly randomized
- d20 based fight model

Current progress:
- working random map generator based on game of life and flood fill
- gui interface implemented (swing)
- player movement mechanism introduced
- enemies position calculation algorithm
- moving and chasing enemies (path finding by A*)
- fog of war
- effect Layer
- fight logic + fight log + combat locking mode + special attacks
- equipment with potions and items + equipment log + item description view
- inventory (equipping, unequipping, counting bonus from items)
- basic treasure find mechanism + item collection bootstrap form txt files
- Locations Manager - map of levels, with a local file cashing (Java NIO), Loading level map'n'params form text file
- Basic experience and lvl management for player

Quick Gameplay:

gameplay
https://youtu.be/FUlfJNOFLCI

alt text

alt text

Want to participate? Just let me know!

letmeout's People

Contributors

pawelkapl avatar

Watchers

 avatar  avatar

letmeout's Issues

[code smell] meaningfull comparisions

Such comparisions can be more meaningfull, by extracting logic to oneliner, but named method. It's easier to read and understand such code, as well as it speed up reading and finding the line we are interested in. It will be also visible on stack trace.
ex more meaningfull and undestandable comparisions:

        if (!withinHeightBoundaries(height)) {
            height = 25;
        }
        if (isNotWithinWithBoundaries(width)) {
            width = 100;
        }

https://github.com/darkonion/RoguelikeGwiezdnaFlota/blob/3ca3b69ece35b0ced4056e34e9183b11b9e4792e/src/main/java/data/terrains/Cave.java#L21

https://github.com/darkonion/RoguelikeGwiezdnaFlota/blob/3ca3b69ece35b0ced4056e34e9183b11b9e4792e/src/main/java/data/terrains/Cave.java#L24

[test] enchantments

Test will give false positives: https://github.com/darkonion/RoguelikeGwiezdnaFlota/blob/522f3941edf043fdddcd1beca2f38ba5db857908/src/test/java/data/equipment/EquipmentTest.java#L62

  • according to other tests, there can be 4 items in equipment, you are reaching for 9th.
  • you didn't check if adding and removing were successful. The equipment might been full or other items and didn't add, nor remove amour.
  • Finally there's assertNull,

You can split by char: ' ', it will be faster.
https://github.com/darkonion/RoguelikeGwiezdnaFlota/blob/522f3941edf043fdddcd1beca2f38ba5db857908/src/test/java/data/equipment/EquipmentTest.java#L78

This test might give false negative:
https://github.com/darkonion/RoguelikeGwiezdnaFlota/blob/522f3941edf043fdddcd1beca2f38ba5db857908/src/test/java/data/equipment/EquipmentTest.java#L83
First assert, or make sure that there's expected number of HP. Then assert that healing potion added what it supposed to add. If you ever change default player HP, this will fail with false negative. You already set hp on line 10. it can be used again, in this test.
the same goes for last test useLargePotion

Door bug - to fix

There is a tiny, little chance that randomly placed doors can cover the only access to the rest of the cave in location. Steping on doors means that you are changing location, so this could lead to cut off piece of a map.

[Improve] error logging

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.