Code Monkey home page Code Monkey logo

crpg's People

Contributors

brainbirb avatar dependabot[bot] avatar eckom89 avatar falcomfr avatar gergotha avatar grughub avatar havena avatar mewtlu avatar mrmendo avatar muparadzi avatar namidaka avatar or2e avatar petro-poroshenko avatar rogerdin13 avatar thbolijn avatar thradok avatar unrated avatar verdie-g avatar winnie1069667084 avatar yeldur 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

Watchers

 avatar  avatar

crpg's Issues

Add observability (metrics/logs)

To have some observability on the servers:

  • add a metrics interface to Crpg.Common
  • add a DataDog implementation of this interface in Crpg.Infrastructure using @verdie-g credentials
  • inject the implementation in Crpg.Web
  • replace RequestLogger with a RequestMetrics

Add F.A.Q on the front page

  • how to create a new character?
  • I've renamed my steam account and a new character level 1 was created, how can I play with my original character?
  • what is retiring?
  • what is respecialization?
  • can I host my own game server?
  • is the project open-source?
  • how can I help?
  • how can I donate?

Add skills to character

Take simple player character skills filter out non-combat ones. Here is what I've seen:

  • Agility doesn't exist anymore but Perception and Endurance were introduced
  • Weapon masteries still exist
  • Most skills don't exist anymore and the only existing one that seem related to combat are Riding and Athletics

Make game jwt short-lived

Game servers will communicate with the API using a dedicated JWT. If the latter get stolen, the attacker can give gold and experience to anyone. To avoid that, a game JWT should contain a custom claim with the IP address of the server. On each request, this address should be checked.

Implement get user from game

When an user logs in on a server, the latter needs to make a call to the api to get or create the user with his character. First, we need to investigate if we can get the Steam ID of the connected user.

Item filters

GET /items return all items. Add filters to the query:

  • not owned
  • weapon type
  • pagination

Automate importing items

For now, items are imported using the ItemObject.Deserialize method from MountAndBlade dlls. It's working well but it doesn't have the item icons. To generate them you need to call TableauCacheManager.BeginCreateItemTexture but it has a dependency on the engine. Add a "Dump Items" entry in the game main menu that would call both ItemObject.Deserialize and TableauCacheManager.BeginCreateItemTexture to write a file containing everything needed.

Move item stats in its own component

List of item stats (damage, armor, ...) is used in Shop.vue but also several times in the select item modal in Characters.vue. It needs to be extracted in a component so it can be reused.

Rework characters service

characters-service.ts contains big switch on ItemSlot. This need to be replaced by a dictionary ItemSlot -> ItemSlotInfo where ItemSlotInfo contains:

  • a getter on character (c: Character, slot: ItemSlot) : Item
  • a setter on character (c: Character: slot: ItemSlot, item: Item): void
  • ItemType[] fitting in the slot

Scale item values

Items are taken from the game, the import script is in the Cli project. The lowest value is 69 (nice) but the highest one is 189399. Find a scaling factor so all values are right. After a quick look, it seems like only crafted items are extremely expensive so a different factor could be used for them.

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.