# 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
	}
	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
		}
		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.
			Jump[1] = 2.0, 75
			Jump[2] = 0.3, 850
			Jump[3] = 1.2, 70
		}
		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 = 140
			JumpDelayTime = 0.5
			JumpRecoveryTime = 2.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
		}
		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
	}
	# 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

		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 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%

			# Speed at which the wisp moves downwards.
			Wisp Speed = 100%

			# 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
			Wisp Pattern Spawn Y = -144

			# 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 Wait Time = 6.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 = 0
		}
		Phase 3
		{
			# Minimum range the bear will decide to charge the player.
			Charge Range = 700

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

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

			# 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 = 2.5
		}
		Phase 4
		{
			# Percentage of health to transition to Phase 4
			Change = 50%

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

			# Speed at which the wisp moves downwards.
			Wisp Speed = 130%

			# 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
			Wisp Pattern Spawn Y = -144

			# How much time (in seconds) to wait between each pattern spawn.
			# 130% speed means it takes 4.61 seconds for all the wisps to move entirely down.
			Wisp Pattern Spawn Wait Time = 4.61s

			# 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
		}
	}
}