Skip to content

Functionality draft

Tibor Zauko edited this page Dec 17, 2018 · 15 revisions

Trainer can:

  • log in with username and password
  • "catch" (create new) Pokemon
    • includes viewing a list of Pokemon Species for selecting species of the "caught" pokemon
  • rename (update nickname) Pokemon
  • train Pokemon
    • increase level (by at least 1)
    • evolve - update species to next step in evolution tree
  • release (delete) Pokemon
  • view Pokemon (their or other trainers teams)
    • includes listing all trainers for the case of viewing teams of other trainers
  • create a new gym challenge (against a gym which they haven't challenged yet)
  • reopen a lost challenge (rechallenge a gym)
  • gift Pokemon to other trainer (update trainer id)
    • includes listing all trainers
  • change their password
  • each trainer can change only their own Pokemon - gifting a Pokemon removes it from their management

Gym Leader can:

  • do all things a trainer can, except create a challenge against their own gym
    • if an outstanding challenge exists for a gym and the trainer then becomes the gym leader, the challenge should automatically be deleted
    • if a closed (won/lost) challenge exists for a gym and the trainer then becomes the gym leader, the challenge should be preserved, however, the gym leader should be prevented from modifying this challenge
  • gym leader is distinguished from ordinary trainer only by their trainer profile/entity appearing as gym leader in one of the gyms
  • view challenges against their gym
  • close an outstanding challenge (set its state from WAITING_TO_ACCEPT to WON or LOST)
  • (on discovery of serious breach of the pokemon league rules) change state of challenge between WON and REVOKED
  • set the specialization of a gym in a pokemon type according to their preference (including null for no specialization/mixed)

Admin can:

  • do all things a trainer can
  • admin is distinguished from ordinary trainer by a set flag (boolean) in their trainer profile/entity
  • Create and delete gyms
  • Appoint gym leaders (update the gym)
    • on appointment, the gyms specialization should reset to null
    • one trainer can lead only one gym
  • create, update (excl. evolutionary data) and delete pokemon species
    • the usual species rules apply (unique species name, must have primary type, can have a secondary type that must be different from primary)
  • update pokemon species
  • give/revoke admin rights from others

Challenge status:

Only the following challenge status changes are allowed.

  • from WON to REVOKED
  • from LOST to WAITING_TO_ACCEPT
  • from REVOKED to WON
  • from WAITING_TO_ACCEPT to WON or LOST
Clone this wiki locally