Skip to content

Instantly share code, notes, and snippets.

@rileydutton
Last active March 18, 2025 14:28
Show Gist options
  • Save rileydutton/5b36281beda85e08a2deb67551c55b3f to your computer and use it in GitHub Desktop.
Save rileydutton/5b36281beda85e08a2deb67551c55b3f to your computer and use it in GitHub Desktop.
---mobdefinition_Speedrun---
ID :: speedrun
Prefab :: colossus
Range Behavior :: Melee Ranged
Abilities :: [[Swift Strike]] [[Rapid Shot]] [[Dash Attack]] [[Speed Burst]]
Bounding Box :: 0 2.73 2.5 3.0
Speed :: 1200
Type :: Boss
Loot :: [[Speedrun]]
---loottable_Speedrun---
[[16 Rocket Boots]] @ 2.0
[[27 Wyld Luck]] @ 3.0
---ability_Swift Strike---
Bullet Definition :: [[swiftstrike]]
VFX Cast :: trigger:Attack*
Lock Time :: 0.25
Cast Time :: 0.25
---bulletdef_swiftstrike---
sprite Custom_10
color 3
potency 75
nway speed:12 bullets:3 spread:20 angle:0 directionType:relative
---ability_Rapid Shot---
Bullet Definition :: [[rapidshot]]
VFX Cast :: trigger:Shoot*
Lock Time :: 0.5
Cast Time :: 0.05
---bulletdef_rapidshot---
sprite Custom_11
color 4
potency 50
line speed:15 bullets:6 delay:2 angle:0 directionType:relative
---ability_Dash Attack---
Bullet Definition :: [[dashattack]]
VFX Charging :: trigger:Charge*
Lock Time :: 0.25
---bulletdef_dashattack---
sprite CirclePool 2
potency 100
fire 0 relative 0
aoeexplosion
radius 2
timedFill 15
damageEvery 15
wait 15
vfx SmallBombExplosion 5
wait 1
vanish
wait 1
sprite Basic
color 1
potency 50
radial bullets:12 speed:8
---ability_Speed Burst---
Bullet Definition :: [[speedburst]]
VFX Cast :: trigger:SpinAttack*
Lock Time :: 0.5
Max Range :: 100.0
---bulletdef_speedburst---
sprite BluePool 2
potency 50
repeat bullets:8 angleChange:45 angle:0 directionType:relative speed:8
aoedot
damageEvery 10
vfx ShockPool
wait 10
speed 0
fire burstpool
wait 1
vanish
---bulletdef_burstpool---
sprite Basic
color 5
potency 25
radial bullets:8 speed:4
wait 30
vanish
---script_speedrun_Monster---
resetVars := func() {
scriptVars["timeSinceSwiftStrike"] = 0.0
scriptVars["timeSinceRapidShot"] = 0.0
scriptVars["timeSinceDashAttack"] = 0.0
scriptVars["timeSinceSpeedBurst"] = 0.0
}
if !isDead {
if is_undefined(scriptVars["timeSinceSwiftStrike"]) {
resetVars()
}
if targetEntityId > 0 && castingAction == 0 {
scriptVars["timeSinceSwiftStrike"] += delta
scriptVars["timeSinceRapidShot"] += delta
scriptVars["timeSinceDashAttack"] += delta
scriptVars["timeSinceSpeedBurst"] += delta
if scriptVars["timeSinceSwiftStrike"] > 2.0 {
useAbilityAtTarget(myEntityId, "Swift Strike", targetEntityId, 1.0)
scriptVars["timeSinceSwiftStrike"] = 0.0
}
if scriptVars["timeSinceRapidShot"] > 0.8 {
useAbilityAtTarget(myEntityId, "Rapid Shot", targetEntityId, 1.0)
scriptVars["timeSinceRapidShot"] = 0.0
}
if scriptVars["timeSinceDashAttack"] > 4.0 {
useAbilityAtTarget(myEntityId, "Dash Attack", targetEntityId, 1.0)
scriptVars["timeSinceDashAttack"] = 0.0
}
if scriptVars["timeSinceSpeedBurst"] > 6.0 {
useAbilityAtPosition(myEntityId, "Speed Burst", randomPositionInCurrentRoom(myEntityId, 3.0))
scriptVars["timeSinceSpeedBurst"] = 0.0
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment