From The Mana World
Assumptions
- There is a set of one on one PvP arena maps
- PvP arena maps have the no_save flag set
- one on one maps are 50 x 50 tiles
- There are 4 possible start positions on a one on one map
- They should be somewhat equally far from each other
- A player is warped to a random start position on the map
- Only one fame match per day per character
- You can play for fame or money
- You can play for 0 money as a practice map
- You can only invoke the related atcommands from the Hurnscald map
Registration
Players are registered for the PVP ladder automatically at lvl80
- Their ELO is set to 1000
- Their PLAYED_ONE_ON_ONE_FAME_MATCHES is set to 0
- Their PLAYED_ONE_ON_ONE_MONEY_MATCHES is set to 0
- They are considered a newbie until they have played 20 fame matches (this 20 match separation comes from the ELO specification)
- Newbies are not shown on the ladder, even though they have a real ELO
- Newbies can only challenge newbies
- After 20 fame matches a player is ranked and shows up on the ladder
- They are considered a newbie until they have played 20 fame matches (this 20 match separation comes from the ELO specification)
Challenging
- @challenge <nick> <map> <'fame'|amount_money>
- Fails if
- Challenged player does not exist
- Challenged player is not at least lvl80
- Challenged player does not have enough money for the money challenge
- Both players are not in the same newbie/ranked status
- Both players are not on the Hurnscald map
- Either player has LAST_PLAYED_ONE_ON_ONE_FAME_MATCH == today
- The challenged player is notified by a server message of challenging player rank, ELO (fame) and amount of played fame and money matches
- The challenged player has 5min to respond to the challenge or the challenge expires
- The server message to the challenged player repeats every minute
- Fails if
Accepting / declining a challenge
- @accept_challenge (@ac ?)
- @decline_challenge (@dc ?)
A challenge is accepted
- If any ladder maps are currently free (recheck every 1min)
- Their status in the queue for the particular map should be announced to them every 1min
- Upon succesfully starting a match, set the appropriate LAST_PLAYED_*_MATCH (YYYY-MM-DD) for both players
- Set PLAYED_*_MATCHES++
- Give a countdown of 10 seconds to both players as whispers and warp them to the map
- Start a countdown of 5 minutes upon the match starting
End of battle
- After result calculation, announcement and a 30 second wait period, warp players out and free the map lock
- If 5 minutes are full and both players are alive
- -100 ELO (fame) static penalty for both, no real ELO calculation
- A player disconnects or times out or dies
- Remaining player wins, count new ELO (fame) for both