The open source repository for the action RPG game in development by Sig Productions titled 'Adventures in Lestoria'! https://forums.lestoria.net
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
AdventuresInLestoria/Adventures in Lestoria/assets/config/MonsterStrategies.txt

844 lines
22 KiB

# 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 = 2.0
# 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
}
Boar
{
Closein Range = 700
Backpedal Range = 400
# Number of times the boar scratches the ground before charging.
# The amount of time this takes is also dependent on the animation speed (extra animation 0)
Ground Scratch Count = 2
Charge Movespeed = 130%
Charge Distance = 900
# Amount of time to wait after charging before returning to Move Phase.
Charge Recovery Time = 0.3s
Backpedal Movespeed = 50%
Charge Knockback Amount = 1.4
}
Goblin Dagger
{
# Distance from player to run to before swinging weapon.
Attack Spacing = 50
# Stab Attack windup time
Stab Windup Time = 0.3s
# Amount of time where nothing happens after an attack.
Attack Recovery Time = 1.0s
# Number of pixels from the dagger's center that the player would be hit by.
Dagger Hit Radius = 12
# Number of pixels of reach the dagger stab has.
Dagger Stab Distance = 2
Dagger Stab Knockback = 100
# How long between each dagger stab frame.
Dagger Frame Duration = 0.1s
# Slash Attack windup time
Slash Windup Time = 0.4s
# Number of pixels of reach the dagger slash has from the monster.
Dagger Slash Distance = 6
Dagger Slash Knockback = 75
# Offset for the dagger stab effect per direction from the monster's center.
Dagger Up Offset = 5,-4
Dagger Down Offset = -5,5
Dagger Right Offset = 4,4
Dagger Left Offset = -2,4
}
Goblin Bow
{
Attack Reload Time = 2.0s
# How long it takes to prepare the attack once an attack is queued.
Attack Windup Time = 1.0s
Arrow Spd = 350
Arrow Hitbox Radius = 8
# When the monster will attempt to run away from target.
Run Away Range = 500
# Chooses a random direction within the confines of this range, stays within it.
Random Direction Range = 500,700
# Does not move and shoots from anywhere in these ranges.
Stand Still and Shoot Range = 700,1000
# Anything outside the max "Stand Still and Shoot Range" will cause the monster to move towards the target instead.
# The perception level indicates how accurate the bow user's shots become over time. Perception can be between 0-90. A perception level of 90 should never miss. This doesn't necessarily mean lower numbers will miss, just that it doesn't auto-correct for error as much.
Starting Perception Level = 0
# Every shot taken, the bow user's perception level will increase by this amount.
Perception Level Increase = 2.5
Maximum Perception Level = 45
}
Goblin Boar Rider
{
# Which monster spawns on death of the boar.
Spawned Monster = Goblin (Bow)
Imposed Monster Offset = 0,-10
Imposed Monster Animations = GOBLIN_BOW_MOUNTED_0,GOBLIN_BOW_MOUNTED_1,GOBLIN_BOW_MOUNTED_2,GOBLIN_BOW_MOUNTED_3,GOBLIN_BOW_ATTACK_0,GOBLIN_BOW_ATTACK_1,GOBLIN_BOW_ATTACK_2,GOBLIN_BOW_ATTACK_3,
###################
# Goblin Bow Stuff
###################
Attack Reload Time = 2.0s
# How long it takes to prepare the attack once an attack is queued.
Attack Windup Time = 1.0s
Arrow Spd = 350
Arrow Hitbox Radius = 8
# The perception level indicates how accurate the bow user's shots become over time. Perception can be between 0-90. A perception level of 90 should never miss. This doesn't necessarily mean lower numbers will miss, just that it doesn't auto-correct for error as much.
Starting Perception Level = 0
# Every shot taken, the bow user's perception level will increase by this amount.
Perception Level Increase = 2.5
Maximum Perception Level = 45
#######################
# END Goblin Bow Stuff
#######################
###################
### Boar Stuff
###################
Closein Range = 700
Backpedal Range = 400
# Number of times the boar scratches the ground before charging.
# The amount of time this takes is also dependent on the animation speed (extra animation 0)
Ground Scratch Count = 2
Charge Movespeed = 130%
Charge Distance = 900
# Amount of time to wait after charging before returning to Move Phase.
Charge Recovery Time = 0.3s
Backpedal Movespeed = 50%
Charge Knockback Amount = 140
###################
### End Boar Stuff
###################
}
Goblin Bomb
{
# Only throw the bomb when the player is within this range.
Bomb Max Range = 800
# How long between each bomb throw.
Bomb Reload Time = 4.0s
# How long until the bomb explodes.
Bomb Detonation Time = 3.5s
# Range of the bomb.
Bomb Radius = 300
Bomb Knockback Factor = 200
Bomb Starting Z = 12
Bomb Gravity = -20.0
# How high the bounce of the bomb is after hitting the ground.
Bomb Elasticity = 0.4
# How much distance (in pixels) to vary the bomb toss (+/-)
Bomb Distance Variation = 32
Bomb Fadeout Time = 0.3s
}
Hawk
{
Wing Flap Frequency = 0.8s
# Amount of Z (in pixels) the Hawk flies at.
Flight Height = 48px
# Amount of Z (in pixels) higher or lower the Hawk chooses to fly at.
Flight Height Variance = 8px
# 0-X% application of a slowdown debuff to vary the speeds of each Hawk.
Flight Speed Variance = 20%
# How far from the player the Hawk circles around.
Flight Distance = 240px
Flight Oscillation Amount = 1.5px
# Dropdown/Rising speed in pixels per second while attacking.
Attack Z Speed = 160px/s
Flight Charge Cooldown = 8s
Attack Wait Time = 1s
}
Stone Elemental
{
# Amount of time between attacks.
Attack Wait Time = 2s
# Minimum Distance the Stone Elemental will always perform a dive
Auto Dive Range = 1200
Stone Pillar Cast Time = 3s
# NOTE: Stone Pillar's size and lifetime is determined in Monsters.txt
# RGBA
Stone Pillar Spell Circle Color = 40, 40, 40, 80
Stone Pillar Spell Insignia Color = 144, 137, 160, 255
# Degrees/sec. Positive is CW, Negative is CCW.
Stone Pillar Spell Circle Rotation Spd = -30
# Degrees/sec. Positive is CW, Negative is CCW.
Stone Pillar Spell Insignia Rotation Spd = 50
Rock Toss Track Time = 1s
Rock Toss Wait Time = 2s
Rock Toss Bullet Speed = 400
Rock Radius = 4
Rock Toss Damage = 52
# Distance in units.
Rock Toss Max Spawn Distance = 100
Burrow Wait Time = 1s
# Provide a minimum and maximum distance
Burrow Teleport Distance = 400,700
Burrow Ring Bullet Count = 16
Burrow Ring Bullet Speed = 100
Burrow Ring Bullet Damage = 26
Burrow Ring Bullet Size = 8
# RGBA
Burrow Ring Bullet Color = 200, 203, 206, 255
}
Do Nothing
{
}
Major Hawk
{
# The Major Hawk strategy does everything the normal Hawk strategy does
# But is tuned such that when it's the only one spawned it gains a more aggressive pattern.
# The name of the monster to count for aggressive check.
Aggressive Name Check = Major Hawk
# Number of Major Hawks on the field to start using "aggressive" tactics.
Aggressive Hawk Count = 1
Flight Charge Cooldown = 3s
}
Zephy
{
Basic Hawk Spawn Time = 10s
Basic Hawk Spawn Radius = 1000
# In units/sec
Fly Rise/Fall Speed = 400
Flight Oscillation Amount = 1.5px
Fly Across Attack
{
Poop Damage = 25
# X,Y
Left Edge Start Pos = 1512, 1608
# X,Y
Right Edge Start Pos = 2520, 1608
Move Speed Multiplier = 1.0x
Attack Frequency = 0.33s
# Defined in units/sec
Attack Y Speed = 150
}
Tornado Attack
{
# Landing point for the attack. Defaults to Arena Center.
Landing Area = 2040, 1752
Attack Duration = 9s
Knockup Duration = 0.7s
Knockback Amount = 10
Tornado Fade-In Time = 0.5s
Tornados
{
# For each Ring: Distance from Boss in Units, # of tornados, Rotation Speed (degrees/sec).
# Freely add/subtract rings to create or remove more tornados.
Ring 1 = 100, 2, 90
Ring 2 = 235, 3, -60
Ring 3 = 370, 5, 40
Ring 4 = 505, 8, -20
Ring 5 = 640, 12, 10
Ring 6 = 775, 18, -7
}
}
Wind Attack
{
# In Units
Fly Up Height = 700
Left Landing Site = 1608, 1728
Right Landing Site = 2472, 1728
Wind Overlay Sprite = "wind_vignette.png"
Wind Overlay Color = 64, 64, 64, 255
Wind Streak Spawn Rate = 0.15s
# In pixels/sec
Wind Streak Speed Range = 24px/s, 128px/s
Wind Streak Lifetime Range = 2s, 8s
}
}
}