# Monster Strategies have optional parameters that you can adjust to
# tweak the AI behaviors. Each strategy is displayed followed by {}.
# Inside the {} is a list of the properties and what their default values
# are.
# 
# If you add the optional parameters inside a Monster, they will be adopted
# for that specific AI pattern.
# 
# For example, if you wanted to add a longer wait time to a mob's RUN_TOWARDS
# strategy, you would write this:
# 
# ==========================================
# ==========================================
# 
# 0
# {
# 	Name = Green Slime
# 	Health = 10
# 	Attack = 5
# 
# 	CollisionDmg = 5
# 
# 	MoveSpd = 110
# 	Size = 80
# 
# 	Strategy = Run Towards
# 	WaitTime = 5
# 
# [....Cut for length purposes]
# 
# ==========================================
# ==========================================
# ==========================================
# 
# The document below shows that WaitTime is 2 by default, but this will make the
# mob adopt a 5 second wait time.
MonsterStrategy
{
	Run Towards
	{
		# How long to wait before attempting to path again.
		WaitTime = 3
		# How far the monster will travel before reassessing for a new path.
		MaxDistance = 999999
		# 1 of X chance to stop after bumping into something.
		BumpStopChance = 5

		# How long to wait before deciding to perform a Jump. Set to -1 to disable jumping.
		JumpTimer = -1.0
		# How much damage the jump attack does. Uses the monster's attack stat if set to -1.
		JumpAttackDamage = -1
		# How far the player gets knocked back if hit.
		JumpKnockbackFactor = 0.0
		# How fast to move during a jump attack.
		JumpMoveSpd = 100
		# How long the monster is in the air for.
		JumpDelayTime = 1.2
		# How long the monster waits after landing.
		JumpRecoveryTime = 2.0
		# How much time a jump will be pre-telegraphed.
		JumpWarningIndicatorTime = 1.0
		# Distance to jump up into the sky. A higher value causes it to launch up and down seemingly faster.
		JumpHeight = 750
		# Maximum distance the player can be away from the enemy for a jump to occur.
		MaxPlayerJumpEngageDistance = 900
		# How much time remaining for the jump target being locked into place.
		JumpLockinTargetTime = 0.0

	}
	Shoot Afar
	{
		# How far away the monster attempts to distance itself from the player
		Range = 700
		# If the player is farther than this distance, close in on them.
		CloseInRange = 850
		# How often the enemy shoots.
		ShootingSpeed = 1
		BulletSpeed = 300
		BulletSize = 20
		BulletColor = 37, 131, 112, 255
	}
	Turret
	{
		# How far away the monster starts shooting from
		Range = 800
		# How often the enemy shoots.
		ShootingSpeed = 2
		BulletSpeed = 450
		BulletSize = 30
		BulletColor = 0, 255, 0, 255
	}
	# The Slime King Boss script.
	Slime King
	{
		# Which phase to start on. Should be 1 most of the time.
		StartPhase = 1
		# How much time a jump will be pre-telegraphed.
		JumpWarningIndicatorTime = 1.0
		# Distance to jump up into the sky. A higher value causes it to launch up and down seemingly faster.
		JumpHeight = 900
		ProjectileDamage = 10
		JumpAttackDamage = 20
		JumpMoveSpd = 75
		# How far the player gets knocked back if hit.
		JumpKnockbackFactor = 250

		BulletSpd = 350

		Phase1
		{
			Size = 800
			ShootRepeatTime = 4.0
			ShootRingCount = 3
			# Amount of time between each set of rings.
			ShootRingDelay = 0.2
			RingBulletCount = 16
			# In degrees.
			RingOffset = 10.0
			JumpAfter = 4 shots
			AirborneTime = 3.0
			LandingRecoveryTime = 2.0
			# How much time remaining for the jump target being locked into place.
			JumpLockinTargetTime = 0.0
		}
		Phase2
		{
			Size = 600
			# Percentage of health to transition to Phase 2
			Change = 75%
			MonsterSpawnOnChange = Red Slime, 2
			ShootRate = 1.0
			ShootProjectileCount = 3
			ShootCount = 5
			ShootAngleSpread = 45
			JumpChargeTime = 5.0
			JumpAfter = 5 shots
			JumpCount = 3

			# Argument 0 is jump time.
			# Argument 1 is move speed.
			# Argument 2 is locked-in target time.

            Jump[1] = 1.8, 45, 0.0
			Jump[2] = 1.2, 70, 0.0
            Jump[3] = 0.7, 1900, 0.5
		}
		Phase3
		{
			Size = 400
			# Percentage of health to transition to Phase 3
			Change = 50%
			MonsterSpawnOnChange = Red Slime, 2

			PhaseRecoveryTime = 2.0

			ShootRate = 0.5
			ShootProjectileCount = 3
			ShootAngleSpread = 45
			JumpMoveSpd = 80
			JumpDelayTime = 1.2
			JumpRecoveryTime = 2.0
			# How much time remaining for the jump target being locked into place.
			JumpLockinTargetTime = 0.0
		}
		Phase4
		{
			Size = 200
			# Percentage of health to transition to Phase 4
			Change = 25%
			MonsterSpawnOnChange = Blue Slime, 2
			# Percentage of normal move spd the Slime King will move.
			MoveSpdModifier = 50%
			ShootRate = 0.1
			RandomOffsetAngle = 35

			RunAwayTime = 2.5
			WaitTime = 1.0

			JumpDuration = 3.0
			JumpDistance = 1000

			# How much time remaining for the jump target being locked into place.
			JumpLockinTargetTime = 0.0
		}
		Phase5
		{
			SizeLossPerHit=50%
			IframeTimePerHit = 1.0
			MoveSpdModified = 50%
			# Percentage of health to transition to Phase 5
			Change = 0%
		}
	}
	Run Away
	{
		# How far away the monster attempts to distance itself from the player
		Range = 700
		# If the player is farther than this distance, close in on them.
		CloseInRange = 850
	}
	Frog
	{
		# How close the frog has to get to the player before beginning its attack.
		Range = 350

		# How long to wait after getting in range and locking on to the player, before firing tongue.
		Lockon Wait Time = 1.5s

		# How long the tongue attack lasts for.
		Attack Duration = 1.0s

		# Max range of the tongue attack.
		Tongue Max Range = 450

		# How long to wait before starting its seeking phase over again.
		Attack Recovery Time = 0.5s

		# The color of the tongue RGBA
		Tongue Color = 95,23,31,255

		# A multiplier for the knockback strength of the tongue. (1 is quite small)
		Tongue Knockback Strength = 2
	}
	Wolf
	{
		# How close the wolf has to be to lock on and charge the player.
		Lockon Range = 400

		# The speed boost percentage to increase by during the charge.
		Lockon Speed Boost = 15%

		# Time waiting after charging.
		Charge Recovery Time = 1.0s

		# The speed boost percentage to increase by and the duration while disengaging.
		Disengage Speed Boost = 30%, 3s

		# The distance to disengage the player.
		Disengage Range = 800

		# The amount of time to spend disengaged.
		Disengage Duration = 3.0s
	}
	Bear
	{
		# How close the bear has to get to begin its attack.
		Attack Range = 120

		# How long the bear charges up its attack.
		Chargeup Time = 1.3s

		# How large the range of the attack is.
		Smash Attack Diameter = 160

		# How long to wait in animation time before the attack hits.
		Attack Animation Wait Time = 0.6s

		# How long the duration of the knockup is.
		Attack Knockup Duration = 0.7s

		# Sets how much knockback the attack will have.
		Attack Knockback Amount = 0.0
	}
	# The Ursule, Mother of Bears Boss script
	Ursule
	{
		# Which phase to start on. Should be 1 most of the time.
		StartPhase = 1

		# The maximum amount of time to spend trying to run to the center of the map.
		Run To Center Max Time = 10.0s

		# The overlay sprite to use for transitioning to later phases.
		Overlay Sprite = monsters/Ursule Mother of Bears2.png

		# Number of wisp patterns that exist.
		Wisp Pattern Count = 9

		Wisp Pattern 0
		{
			Row[0] = .O...O..
			Row[1] = O...O...
			Row[2] = ...O...O
			Row[3] = ..O...O.
			Row[4] = .O...O..
			Row[5] = O...O...
		}
		Wisp Pattern 1
		{
			Row[0] = ........
			Row[1] = O.O.O.O.
			Row[2] = ........
			Row[3] = .O.O.O.O
			Row[4] = ........
			Row[5] = O.O.O.O.
		}
		Wisp Pattern 2
		{
			Row[0] = O......O
			Row[1] = ........
			Row[2] = ........
			Row[3] = ...OO...
			Row[4] = ..O..O..
			Row[5] = .O....O.
		}
		Wisp Pattern 3
		{
			Row[0] = .O....O.
			Row[1] = O......O
			Row[2] = ........
			Row[3] = ..O..O..
			Row[4] = ..O..O..
			Row[5] = ...OO...
		}
		Wisp Pattern 4
		{
			Row[0] = ........
			Row[1] = ......O.
			Row[2] = ..O.....
			Row[3] = .....O..
			Row[4] = .O......
			Row[5] = ........
		}
		Wisp Pattern 5
		{
			Row[0] = O.O.O.O.
			Row[1] = O.O.O.O.
			Row[2] = ........
			Row[3] = ........
			Row[4] = .O.O.O.O
			Row[5] = .O.O.O.O
		}
		Wisp Pattern 6
		{
			Row[0] = ........
			Row[1] = ........
			Row[2] = ........
			Row[3] = OOO..OOO
			Row[4] = ........
			Row[5] = ........
		}
		Wisp Pattern 7
		{
			Row[0] = .OO..OO.
			Row[1] = O......O
			Row[2] = ...O....
			Row[3] = ..O.....
			Row[4] = .O......
			Row[5] = O...OOOO
		}
		Wisp Pattern 8
		{
			Row[0] = ........
			Row[1] = ...OO...
			Row[2] = ..OOOO..
			Row[3] = ..OOOO..
			Row[4] = ...OO...
			Row[5] = ........
		}

		Phase 1
		{
			# The amount of time it takes for the fur transformation to take place.
			Fur Change Color Time = 2.0s

			# Maximum amount of time the boss takes to run towards the center before giving up and continuing through Phase 2.
			Run to Center Time = 10.0s

			# Number of stomps to perform before doing a run towards the player.
			Stomp Count = 3

			# Amount of time to run towards the player.
			Run Time = 2.0s

			# Provide a speed boost amount during the run.
			Run Speed Boost = 0%
		}
		Phase 2
		{
			# Percentage of health to transition to Phase 2
			Change = 80%

			# Percentage of damage reduced on the bear while the barrier is active.
			Barrier Damage Reduction = 100%

			# Amount of time the environment fades out to pitch black.
			Environment Fade-out Time = 0.4s

			# Amount of time for the environment to fade in with the new color.
			Environment Fade-in Time = 2.0s

			# New fade-in environment color.
			Environment Fade-in Color = 87, 82, 255, 255

			# The amount of range sight the player has with the new environment.
			Environment Fade-in Range = 400

			# Wisp size in pixels.
			Wisp Size = 24,24

			# Speed at which the wisp moves downwards.
			Wisp Speed = 90
			
			# Wisp Hitbox radius size in pixels.
			Wisp Hitbox Radius = 8

			# RGBA value of the wisp.
			Wisp Color = 247, 157, 0, 255

			# There are 6 rows of wisps and we want them to spawn outside the arena
			# - (6 * Wisp Height) = How far above the arena to spawn.
			Wisp Pattern Spawn Y = -144

			# Amount of time the wisp fades out after hitting the player.
			Wisp Fadeout Time = 0.3s

			# How much time (in seconds) to wait between each pattern spawn.
			# 100% speed means it takes 6 seconds for all the wisps to move entirely down.
			# "Wisp Pattern Spawn Y" / Speed determines time between spawns.
			Wisp Pattern Spawn Wait Time = 2.0s

			# This value is either Bag or Random. Bag means every pattern gets selected once before re-cycling. Random is truly random with potential repeats.
			Wisp Pattern Random Selection = Bag

			# How many patterns to spawn before continuing to Phase 3.
			Wisp Pattern Spawn Count = 9

			# Wait for the wisp count to be at or below this value before proceeding to Phase 3.
			Wisp Count Phase Change Wait = 8.0s
		}
		Phase 3
		{
			# Amount of time the environment fades out to pitch black.
			Environment Fade-out Time = 0.4s

			# Amount of time for the environment to fade in with the new color.
			Environment Fade-in Time = 2.0s

			# New fade-in environment color.
			Environment Fade-in Color = 255, 255, 255, 255

			# Minimum range the bear will decide to charge the player.
			Charge Range = 450

			# Amount of time the bear spends preparing to charge.
			Charge Cast Time = 0.3s

			# If for some reason the charge takes longer than this to reach the target, the charge will end.
			Charge Max Run Time = 5.0s

			# Amount of speed to gain during the charge attack.
			Charge Speed Boost = 200%

			# Cooldown time of the charge attack.
			Charge Attack Cooldown = 15.0s

			# Amount of damage to deal on impact during a charge attack.
			Charge Attack Damage = 30

			# Amount of knockback to cause to the player when hit by the charging attack.
			Charge Attack Knockback Strength = 3.5

			# Number of stomps to perform before doing a run towards the player.
			Stomp Count = 3

			# Amount of time to run towards the player.
			Run Time = 2.0s

			# Provide a speed boost amount during the run.
			Run Speed Boost = 0%
		}
		Phase 4
		{
			# Maximum amount of time the boss takes to run towards the center before giving up and continuing through Phase 2.
			Run to Center Time = 10.0s

			# Percentage of health to transition to Phase 4
			Change = 50%

			# Amount of time the environment fades out to pitch black.
			Environment Fade-out Time = 0.4s

			# Amount of time for the environment to fade in with the new color.
			Environment Fade-in Time = 2.0s

			# New fade-in environment color.
			Environment Fade-in Color = 255, 82, 82, 255

			# The amount of range sight the player has with the new environment.
			Environment Fade-in Range = 400

			# Wisp size in pixels.
			Wisp Size = 24,24

			# Wisp Hitbox radius size in pixels.
			Wisp Hitbox Radius = 8

			# Speed at which the wisp moves downwards.
			Wisp Speed = 95

			# RGBA value of the wisp.
			Wisp Color = 247, 95, 0, 255

			# There are 6 rows of wisps and we want them to spawn outside the arena
			# - (6 * Wisp Height) = How far above the arena to spawn.
			Wisp Pattern Spawn Y = -144

			# Amount of time the wisp fades out after hitting the player.
			Wisp Fadeout Time = 0.3s

			# How much time (in seconds) to wait between each pattern spawn.
			# 100 speed means it takes 1.44 seconds for 6 rows of wisps to move down
			# "Wisp Pattern Spawn Y" / Speed determines time between spawns.
			Wisp Pattern Spawn Wait Time = 1.9s

			# This value is either Bag or Random. Bag means every pattern gets selected once before re-cycling. Random is truly random with potential repeats.
			Wisp Pattern Random Selection = Random

			# How long it takes for remaining wisps on the field to fade out when the boss dies.
			End Wisp Fadeout Time = 0.4s
		}
	}
	NPC
	{
		# How much to offset the text for the Interaction input display.
		Interaction Display Offset = 0,-16

		# Amount of time for the interaction display input to fade in/out.
		Interaction Display Ease in Timer = 0.5s

		# The maximum distance from the player that the NPC can be to interact with them.
		Interaction Distance = 200
	}
}