Skip to content

Instantly share code, notes, and snippets.

@nulleqcodes
Last active November 28, 2024 18:27
Show Gist options
  • Save nulleqcodes/4026839e13b20f8d2f850bb7ac0652be to your computer and use it in GitHub Desktop.
Save nulleqcodes/4026839e13b20f8d2f850bb7ac0652be to your computer and use it in GitHub Desktop.
---mobdefinition_Wyld Boss---
ID :: bulletdemo
Prefab :: colossus
Range Behavior :: [[Stationary]]
Abilities :: [[Level One]] [[Level Two]] [[Level Three]] [[Level Four]]
Bounding Box :: 0 2.73 2.5 3.0
Type :: Boss
---ability_Level One---
Bullet Definition :: [[levelone]]
VFX Cast :: trigger:Attack*
---bulletdef_levelone---
sprite Basic
color 3
potency 50
radial bullets:5 speed:3 angle:0 directionType:absolute
wait 120
vanish
---ability_Level Two---
Bullet Definition :: [[leveltwo]]
VFX Cast :: trigger:Attack*
---bulletdef_leveltwo---
// ~100 bullets in waves of different colors and patterns
sprite Custom_11
color 5
potency 50
// First wave - outward spiral
repeat bullets:25 speed:3 angle:0 angleChange:14.4 directionType:absolute
wait 240
vanish
wait 10
// Second wave - inward counter-spiral
sprite Lance_14
color 2
repeat bullets:25 speed:5 angle:7.2 angleChange:-14.4 directionType:absolute
wait 240
vanish
wait 10
// Third wave - crossing pattern
sprite Basic
color 1
nway speed:6 bullets:25 spread:180 angle:0 directionType:absolute
wait 10
nway speed:6 bullets:25 spread:180 angle:90 directionType:absolute
---ability_Level Three---
Bullet Definition :: [[levelthree]]
VFX Cast :: trigger:Attack*
---bulletdef_levelthree---
// ~500 bullets in multiple colorful phases
// First phase - expanding rings
sprite Custom_10
color 4
potency 50
repeat bullets:4 angleChange:90 angle:0 directionType:absolute
fire levelthreering
wait 20
// Second phase - spiral swarm
sprite Lance_14
color 2
repeat bullets:100 speed:4 angle:0 angleChange:3.6 directionType:absolute
wait 240
vanish
wait 10
// Third phase - criss-cross waves
sprite Basic
color 1
repeat bullets:100 speed:3 angle:0 angleChange:45 delay:2 directionType:absolute
wait 240
vanish
wait 10
// Final phase - dense spiral
sprite Custom_11
color 5
repeat bullets:100 speed:5 angle:15 angleChange:3.6 directionType:absolute
wait 240
vanish
---bulletdef_levelthreering---
sprite Basic
potency 50
radial bullets:25 speed:3 directionType:absolute angle:0
wait 10
speed 6
wait 240
vanish
---ability_Level Four---
Bullet Definition :: [[levelfour]]
VFX Cast :: trigger:Attack*
---bulletdef_levelfour---
// ~1000 bullets in complex waves
// Initial burst
sprite Custom_11
color 5
potency 50
radial bullets:100 speed:2 angle:0 directionType:absolute
wait 240
vanish
wait 10
// Spiral streams
sprite Lance_14
color 2
repeat bullets:200 speed:4 angle:0 angleChange:1.8 directionType:absolute
wait 240
vanish
wait 10
// Counter-rotating rings
sprite Basic
color 3
repeat bullets:100 speed:3 angle:0 angleChange:3.6 directionType:absolute
wait 240
vanish
repeat bullets:100 speed:3 angle:180 angleChange:-3.6 directionType:absolute
wait 240
vanish
wait 10
// Dense crossing waves
sprite Custom_10
color 1
repeat bullets:250 speed:5 angle:0 angleChange:45 delay:1 directionType:absolute
wait 240
vanish
wait 10
// Final spiral burst
sprite Custom_7
color 4
repeat bullets:250 speed:6 angle:15 angleChange:1.44 directionType:absolute
wait 240
vanish
---script_bulletdemo_Monster---
if !isDead {
if is_undefined(scriptVars["currentLevel"]) {
scriptVars["currentLevel"] = 1
scriptVars["timeSinceAttack"] = 0.0
}
scriptVars["timeSinceAttack"] += delta
if scriptVars["timeSinceAttack"] >= 8.0 {
clearBulletsForEntity(myEntityId)
if scriptVars["currentLevel"] == 1 {
useAbilityAtPosition(myEntityId, "Level One", entityPosition(myEntityId))
} else if scriptVars["currentLevel"] == 2 {
useAbilityAtPosition(myEntityId, "Level Two", entityPosition(myEntityId))
} else if scriptVars["currentLevel"] == 3 {
useAbilityAtPosition(myEntityId, "Level Three", entityPosition(myEntityId))
} else if scriptVars["currentLevel"] == 4 {
useAbilityAtPosition(myEntityId, "Level Four", entityPosition(myEntityId))
}
scriptVars["currentLevel"] += 1
if scriptVars["currentLevel"] > 4 {
scriptVars["currentLevel"] = 1
}
scriptVars["timeSinceAttack"] = 0.0
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment