Sandbox RPG module -- TODO
==========================

* projectiles
** dedicated sound channels
** fly sound, diesound, firesound, etc

* weapons
** implement melee
** implement ranged weapon attacks
*** knock arrow and draw back when holding click?

* spells
** check for friendly targets and enemies?
** implement cast delay

* game logic
** characters partrolling the world
** scripted events. such as on_approach, on_hit, on_drop, on_death, etc
*** set rpgactor and rpgselected aliases for the above for scripts
*** implement cubescript to engine hooks, such as r_distance
*** implement script functions, such as trigger, die, respawn, etc
*** implement r_get functions for retriving specific values, or many values
*** Implement r_mod functions, for applying a delta to various stats and values
*** Implement group and spawn ids for simplifying scripts (repsectively defined in definition and spawn ent)

* Experience points
** level * level * 1000 == the experience needed to levelup
** totalexp earned can be found via: level * (2 * level -1) * 1000
** (level * 2.5) (level + 1) == the experience a creature of a specific level will give
** experience is reset on levelup

/*
experience points are reset upon level up; deleveling is not allowed (unless temporary via negative effects)
exp is the exp needed to level up;
kill is the exp per kill (if the kill is of said level)
ktl is the kills of said level needed to levelup.
the division eqns simplify to  (400x) ∕ (x + 1); doing a lim to infinity will give us (400x) / x, so those of a very high level will need to kill almost 400 creatures of their level to level up

the values, with the exception of 0 are calcuated via the formulae

level	exp	kill	ktl
0	0	1	0
1	1000	5	200
2	4000	15	266
3	9000	30	300
4	16000	50	320
5	25000	75	333
6	36000	105	342
7	49000	140	350
8	64000	180	355
9	81000	225	360
10	100000	275	363
*/

* Inventory
** preview effects of weapons and other items, when used and equipped, etc
** add stackable items

* NPC interaction
** Quests
** Trade
*** Allow simultaneous trade.
*** Only ask to confirm the amount of items if quantity > 1
**** common batches for munition, say 24 arrows a pop?
** Life loops, inventory updates, etc
** Talk
*** voice samples
*** script variables, do additional things if items are found or certain values equal certain things

* Quests
** Allow multiple conditions, and pathways
** rewards, allow a selection?

* HUD
** make the displayed colour for the ai's hostility vary on the character's friendliness

* GUI
** stat point distribution
** display information of the items
*** stats needed
*** stat boosts

* Spells
** All those that complain about not being implemented
** transformations/polymorph, change models temporarily with a temporary stat (anti)boost
** additional spells
*** Stun
*** Poison type? (fall under water category?)
** effects to show presence; particles?

* Skills
** implement use
** implement experience and leveling
*** use same calculations as for leveling? but with * 100 instead of * 1000 ?
*** have them gain exp on a difficulty of use scenario?

* AI
** Adapt quin's
*** needs to respect friendliness towards others
*** needs to attack back if attacked by a friendly
*** needs to help friends in distress
** analytical
*** retreats on low health or very strong opponents
*** fights to the bitter end
*** tries to equip things, ie try to avoid fighting unarmed unless they'd perform better unarmed
*** some greedier fellows, chanse after trinkets and loot?
*** factions?

