obviously completely incomplete



to launch a new actor...
...called xxx

make sure in xxx.lua
	actor[cp_actor_name]		= "xxx"
and in level.lua
		local apo = ACTOR_PreLaunch( "xxx" )
are the same
		apo:launch()	actually launch



all xxx_inertia = 0.0 - 1.0
if	_min _max are the same then no randomness

actor[cp_health_type]			= health_chunk_regain, health_damagable, health_damagable_check_parent, health_no_damage_check_parent_and_drop




c_print( ticker, "boo", name )
whatever or as many as you like

c_change_bitmap( "old.bmp", "new.bmp" )
must be called before	c_preload_model( actor ) in .lua




c_add_a_path( name, type, edge_percent )
type = 0.0 or -1.0 = reverse

	c_add_a_path( "edge_path", 0.0, 70.0 )

or
c_add_a_path( name, type, scale_x, scale_y, angle, offset_x, offset_y, seq )
type = 0.0 or -1.0 = reverse
	or positive num to skip the actor forward a point

	local path = {
	30.0, 30.0, 0.0,
	-30.0, 30.0, 0.0,
	-30.0, -30.0, 0.0,
	30.0, -30.0, 0.0,
	}

	c_add_a_path( "square", 0.0, 100.0, 100.0, 0.0, 0.0, 0.0, path )




c_add_flock_type( min_delay, max_delay, edge_inner_percent, edge_outer_percent )

add up to 8, when launched actor will join a random flock
the flock position will move after min_max delay




c_set_random_anim( anim_name, min_anim_speed, max_anim_speed, min_delay, max_delay )

min_anim, max_anim in percent
min_delay, max_delay in seconds

if the values are the same then no randomness

	c_set_random_anim( "eyebeem", 75.0, 125.0, 1.0, 2.0 )

	will play eyebeem
		at a random speed between 75 and 125 percent
		after a random delay of between 1 and 2 seconds




c_set_use_anim_for( movement, anim_name, min_anim_speed, max_anim_speed )

movement = "move_forward", "turn_left", "turn_right"

min_anim, max_anim in percent

if the values are the same then no randomness

	c_set_use_anim_for( "move_forward", "breath", 100.0, 150.0 )

	will play breath
		at a random speed between 100 and 150 percent
		to move forward




c_add_particle_to_anim( anim_name, bone_name, particle_name )

	c_add_particle_to_anim( "blink", "eyesbone", "testparticle" )




c_add_sound_to_anim( anim_name, sound_name )
optional , loopy ) = 1 play one only and wait until finished before playing another

	c_add_sound_to_anim( "blink", "testsound" )




c_add_sound_to_event( event_name, sound_name )
optional , loopy ) = 1 play one only and wait until finished before playing another

event_name = "hit_null_bone", "hit_active_bone", "hit_fence"
	c_add_sound_to_event( "hit_active_bone", "nill_hit" )




c_add_trail_to_bone( bone_name, size_scale, num_frames, r, g, b, a )

num_frames = 100 is 1 second
	c_add_trail_to_bone( "eyesbone", 100.0, 100, 55, 155, 255, 255 )




c_add_some_wheels( left_wheel_bone_name, right_wheel_bone_name,
						actor_moves_angle_multiplier, actor_turns_angle_multiplier )
	c_add_some_wheels( "wheel-l", "wheel-r", 12.0, 1.0 )




c_add_fizz_between( fizz_name, actor1_name, bone1_name, actor2_name, bone2_name,
						type, fizz_scale, min_dist, max_dist, on_off_time )

type = "barrier_damage_gamer", "visual_warning"




c_add_fizz_to_room( fizz_name, actor1_name, bone1_name, actor2_name, bone2_name,
						fizz_scale, hue_shift )

actorX_name = actually bone name of 'fence' + actor name
boneX_name = of the above attached actor to attach fizz to
fizz_scale = in percent
hue_shift (0-360) (verts only)
( always just a barrier )

	c_room_attach( "pylon-1_1", "pylon23", 100.0, 100.0, 100.0, 0.0 )
	c_room_attach( "pylon-1_1", "pylon24", 100.0, 100.0, 100.0, 0.0 )
	c_add_fizz_to_room( "fizz1", "pylon23_pylon-1_1", "cylinder01", "pylon24_pylon-1_1", "cylinder01", 100.0, 0.0 )

	will attach a fizz from bone 'cylinder01' of "pylon-1_1" attached to "pylon23" to
	bone 'cylinder01' of "pylon-1_1" attached to "pylon24"




c_add_a_weapon( name, gun_bone_name, shaft_bone_name, fire_anim_name,
			flare_exp_name,	flare_exp_scale, gun_type, aim_delay, bullet_scale,
			barrel_offset, no_shoot_dist, no_shoot_angle,
			reload_random, reload_sequence... )

flare_exp_scale & bullet_scale in percent, in relation to parent
reload_random in percent +/- amount

* now looks like *
	local boo = WEAPON_preload( "bullet3_spray" )
	boo[w_gun_bone_name]		= "bodymesh"
	boo[w_shaft_bone_name]		= "bodymesh"
	boo[w_fire_anim_name]		= "fire"
	boo[w_aim_anim_name]		= "aim"
	boo[w_flare_exp_name]		= "robo_yellow_flare"
	boo[w_flare_exp_scale]		= 600.0
	boo[w_gun_type]				= "no_bone_aim", "actor_body_aim", "fire_from_bone", "around_only_aim", "around_and_updown_aim"
	boo[w_aim_delay]			= 1.0
	boo[w_bullet_scale]			= 75.0
	boo[w_barrel_offset]		= 2.0
	boo[w_no_shoot_dist]		= 0.0
	boo[w_no_shoot_angle]		= 0.0
	boo[w_recoil_angle]			= 0.0
	boo[w_recoil_dist]			= 0.0
	boo[w_reload_random]		= 10.0
	local seq = { 1.0, 0.2, 9.0 }	(difference)
	WEAPON_add( boo, seq )

if w_gun_type = "around_only_aim"	w_aim_delay controls how often an aim is taken
if w_gun_type = "actor_body_aim"	w_aim_delay is a time delay to allow the actor to turn
otherwise no effect

also waits for fire_anim to finish before doing anything




c_set_use_explosion_for( event, exp_name,
					align, radius_scale, force,
					min_exp_scale, max_exp_scale, seq )

event = "bye_bye", "emerge", "submerge", "mutate"
		"hit_active_bone", "hit_null_bone"	( for weapons )
	= also "bye_bye_bonename" bonename from hierarchy
	= also "bye_bye_damagable" for final bye_bye of beasts with damagable parts

align = exp_no_align, exp_align ( aligns exp with actor that made me )
a random radius ( scale of actor radius ) to trigger from
force to apply if beastie in main sphere 0-50% full force 50-100% tapers off
min_exp_scale, max_exp_scale in percent
seq = delay and number
seq = { 0.0, 0.1, 0.2 }		(increments)
will trigger 3 explosions with delays of 0.0, 0.1, 0.2 seconds

	c_set_use_explosion_for( "bye_bye", "exp1", exp_no_align, 9.0, 0.0, 100.0, 150.0, seq )




c_add_particle_to_explosion( exp_name, anim_name, bone_name, particle_name )

	c_add_particle_to_explosion( "exp1", "blink", "eyesbone", "testparticle" )




c_add_sound_to_explosion( exp_name, anim_name, sound_name )
optional , loopy ) = 1 play one only and wait until finished before playing another

	c_add_sound_to_explosion( "exp1", "blink", "testsound" )




c_set_trigger_state( condition, min_condition_value, max_condition_value, actor_info )

condition = "my_health", "my_time_alive", "player_dist_less_than"(least last), "count_extended_children"
actor_info = table

	c_set_trigger_state( "my_time_alive", 5.0, 9.0, actor )

	will change state between 5 & 9 secs of being alive

or

condition = "more_beasties_active", "less_beasties_active",
actor_info = table

	c_set_trigger_state( "more_beasties_active", "beastie_name", 5.0, 9.0, actor )

	will change state when there are more than between 5 & 9 "beastie_name"s active




c_set_trigger_mutate( mutate_name, condition, min_condition_value, max_condition_value,
				min_use_value, max_use_value,
				min_scale, max_scale )

mutate_name = new actor
			or = "byebye"
condition (individual) = "my_health", "my_health__warp", "my_time_alive",
							"track_beastie_dist_less_than" (least last),
							"my_health__change_parent", "my_health__change_child"
condition (collective) = "beasties_time_alive" ,
_use_value = how many to create
_scale of new actor in percent

* after condition is met and a new actor(s) created, the parent is removed, except "_warp"

	c_set_trigger_mutate( "merger_small", "my_health", 0.0, 0.0, 2, 2, 100.0, 100.0 )

	will trigger 2 new "merger_small" s when health has got to 0.0




c_set_trigger_spawn( mutate_name, anim_name, bone_name,
				condition_value1, condition_value2, condition_value3, condition_value4 )

mutate_name = new actor
anim_name = anim of laucher to check
bone_name = bone to attach spawn to until released
condition_value1 = percent of above anim done to create a spawn
condition_value2 = delay before creating next in seconds
condition_value3 = delay before releasing in seconds
condition_value4 = dist which if > 0.0, check not a spawn already made within this dist

( _use_value = how many to create, _scale of new actor in percent
now in actor .lua )

* the parent remains

	c_set_trigger_spawn( "floater_spawn_1", "breath", "mainbone", 25.0, 0.1, 3.0, 0.0 )

	will trigger one "floater_spawn_1" when "breath"  has done 25% attached to "mainbone"
	will then release it into the wild after 3 seconds




* below are only for rooms *

c_room_attach( actor_name, bone_name, scale_x, scale_y, scale_z, hue_shift )

attach an actor_name to bone_name of the room
scale in percent
hue_shift (0-360) (verts only)

	c_room_attach( "pylon-1_1", "pylon01", 100.0, 100.0, 100.0, 0.0 )
