/**************************************************************************************************
 * Program:		New Miracles for Black & White 2
 * Purpose:		Globals.txt holds all the variables, constants, and scripts needed across all
 * 					miracles.
 * Author:		Bill
 * Version: 	0
 * Date: 		Feb 2 2020
**************************************************************************************************/
//-------------------------------------------Scripts-----------------------------------------------
define script NMs_LaunchObject(obj)
//------------------------------------------Constants----------------------------------------------
define NMs_TRUE 			= 1
define NMs_FALSE 			= 0
define NMs_MATHTHING		= 57.294

define NMs_NUMMIRACLES		= 13
define NMs_MIRACLETYPES		= 6

//Array definitions
define NMs_MIR2D			= 8
define NMs_MIRDEF			= 104 //NMs_NUMMIRACLES * NMs_MIR2D
//Array Elements:
define NMs_MIRSYMBOL		= 0
define NMs_MIRTYPE			= 1
define NMs_MIRTOTEM			= 2
define NMs_MIROBJ1			= 3
define NMs_MIROBJ2			= 4
define NMs_VISIBLE			= 5
define NMs_MANA				= 6

//Miracle Types
define NMs_NONE				= 0
define NMs_WHEAT			= 1
define NMs_ANIMALS			= 2
define NMs_FOREST			= 3
define NMs_ORE				= 4
define NMs_LIGHT			= 5
define NMs_LAVA				= 6

//Launching Settings
global VTX_DEGREES_MIN		= 0
global VTX_DEGREES_MAX		= 360
global VTX_DISTANCE_MIN 	= 3
global VTX_DISTANCE_MAX 	= 5
global VTX_HEIGHT_MIN 		= 5
global VTX_HEIGHT_MAX 		= 10
global VTX_SPEED_MIN 		= 30
global VTX_SPEED_MAX 		= 40

//-------------------------------------------Globals-----------------------------------------------
//NMs_Miracles - A 2D array used to store 
//	[Miracle Index][0:Symbol, 1:Type, 2:Totem Index, 3:Object 1, 4:Object 2, 5:Hidden, 6:Mana]
global NMs_Miracles[NMs_MIRDEF]
global NMs_MiracleCount = 0

global pwrOverride = 0

//--------------------------------------------Code-------------------------------------------------
begin script NMs_LaunchObject(obj)
	tarX = 0
	tarY = 0
	tarZ = 0
	sp = 0
	deg = 0
	dist = 0
	vis = 0
start 
	//Some calculations first
	deg = number from VTX_DEGREES_MIN to VTX_DEGREES_MAX
	dist = number from VTX_DISTANCE_MIN to VTX_DISTANCE_MAX
	tarX = (get SCRIPT_OBJECT_PROPERTY_TYPE_XPOS of obj) + (dist/NMs_MATHTHING) * cos (deg)
	tarZ = (get SCRIPT_OBJECT_PROPERTY_TYPE_ZPOS of obj) + (dist/NMs_MATHTHING) * sin (deg)
	tarY = (land height at {tarX, tarZ}) + (number from VTX_HEIGHT_MIN to VTX_HEIGHT_MAX)
	sp = number from VTX_SPEED_MIN to VTX_SPEED_MAX
	
	//Launch object
	set obj velocity heading {tarX,tarY,tarZ} speed sp
end script NMs_LaunchObject