Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Api v1.0.0 #10

Open
wants to merge 41 commits into
base: api-v0.0.0
Choose a base branch
from
Open

Api v1.0.0 #10

wants to merge 41 commits into from

Conversation

tivvit
Copy link
Member

@tivvit tivvit commented Jul 9, 2023

Please take a look at the API spec api/dungeonsandtrolls.swagger.json (https://petstore.swagger.io/?url=https://raw.githubusercontent.com/gdg-garage/dungeons-and-trolls/master/api/dungeonsandtrolls.swagger.json#/DungeonsAndTrolls/DungeonsAndTrolls_Cast)

I am not saying it is already perfect, but the main ideas are there, and we may discuss those. Please use comments in this PR (in the swagger or origin proto files) or issues linking to the file.

Thanks!

@malytomas
Copy link
Member

cancelling a review finishes the review instead. good job github 🤦

@malytomas
Copy link
Member

i think this will be better handled in a live discussion. the scope is large, and i would appreciate some introduction into it from you..

@tivvit
Copy link
Member Author

tivvit commented Jul 18, 2023

Notes based on in-person discussion

Runes

  • spells - an area of effect, teleport (location is in the API)
    • add spell which is cast to coordinates
  • should runes be equipped
  • runes may be omitted and spells will be bound to gear - which needs to be solved during generation (light armor with strong spells and vice versa)
  • effect is bound to character or to ground

Ideas

  • Legendary items (drop) - destructed on death
  • maybe add jewelry as another type of armor (in the enum)
  • drop skill points in favor of using xp directly (like a currency)
  • scale spells depending on attributes
  • inventory is optional
  • teleport to town from anywhere
  • teleport from town only each 5 levels (they have to unlocked)
  • maze levels
  • resistances - add physical and handle all resistances are the same
  • resistances should not be in percentages and not linear
  • defensive skills
  • visual type for monsters
  • Limit to one potion
  • Drop potion on kill
  • Duration of potion
  • Potion is one use skill
  • Skills may change attributes
  • Let's skip potions - use runes instead of that - to gain mana and heal
  • all skills have cost in attributes and may change attributes (like health, mana, but also strength)
  • Friendly fire solves so many problems @curusarn
  • character - should contain all the effects which are currently on it

Attributes

  • use maps instead of list of pairs
  • Add willpower, luck
  • vitality -> endurance
  • secondary attributes - calculated from the attributes - may be used as requirements or for other computations
  • Base attributes are health, mana and maybe stamina (used for physical activities like attack and jump)

Items

  • merge weapons and armor - add damage to armor
  • Visual type and equip type
  • oneHand - remove
  • dot - minDamage and maxDamage
  • rename - damage over time to effect

RPC

  • how to comunicate with the generator (long running server, with tcp and json api)

Movement

  • stairs
    • when you step on stairs - teleport (same for portals)
    • Optional coordinates where it leads

API

  • /attack - remove - will be used as spell provided by item
  • /buy - should buy a list
  • /attack - /skill - extend api to support AOE, teleport
    • skill Id
    • target or monsterId
    • attribute of skill - requires line of sight
    • could be combined with some move
  • /drink - multiple potions?
  • /move - could be a skill - do not use level
  • /assign attribute - missing in api and values
  • /pickup + items on the ground - later
  • /yell limited size - replace id to names
  • /monsters are actually not necessary
  • /commands - bulk is ok
  • /game - optional fields - return distances, line of sight, fow
  • transactional - fail everything or all ok (validate on send)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants