Daenks/Meridian59_103 — pull request #15 by M59Gar (2013-11-14 22:46:16+00:00)
Title: New Quest System Foundation

Bounty Quests are new timed passive objects that check for certain conditions and then reward players if they are met before the deadline. They update the player with a report whenever the condition is progressed - for example, kill 10 mummies in the next 57 minutes and receive 5 inkies, after a mummy kill, will report kill 9 mummies in the next 55 minutes and receive 5 inkies.

Currently, I've created Monster Bounties and Item Bounties. One checks for a certain number of kills of specific monsters (and is basically the default Bounty Quest), and one checks for the picking up of a certain number or kind of item.

I also implemented admin commands to give bounties to players in a room, or all players online. I can see great uses for this during admin-run events, such as giving all players in the room "Kill 1 dark angel in the next 5 minutes and receive a steel torc" during an invasion. Automatically handles giving out a prize and also directs players to get involved.

If this is accepted, the next step includes Return Bounties, where a player gives an item to a specific NPC (a 'classic quest') and Builder Bounties, where players are rewarded for manually building their characters (designed to not reward firewall/bait power builders). There can also be integration of bounties into the game itself. For example, NPCs could give them, or players could grab them from a special globe or something. I've seen games that simply hand out random bounties to players who are out in the world, and that could be interesting, too. It would give players something to do, especially if bounty rewards come to include Building Tokens that can be turned in for %s or HPs.

Such Building Tokens given by random Bounty Quests could basically allow alternate building paths that are more interesting. Run around pursuing quests and building your spells and health... sounds like a good alternative to sitting in one place grinding.