Last active
October 17, 2024 23:29
-
-
Save nulleqcodes/a70f84830f0e0c2dbf09891698c726be to your computer and use it in GitHub Desktop.
Playing Around Four
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ---mobdefinition_Fusion Nexus--- | |
| Prefab :: colossus | |
| Range Behavior :: [[Medium Ranged]] | |
| Abilities :: [[Fusion Beam]] [[Nexus Pulse]] [[Dispersal Wave]] [[Convergence Field]] [[Polarity Shift]] | |
| Bounding Box :: 0 2.73 2.5 3.0 | |
| Speed :: 175 | |
| Type :: Boss | |
| Loot :: [[FusionNexus]] | |
| ---ability_Fusion Beam--- | |
| Bullet Definition :: [[fusionbeam]] | |
| VFX Cast :: trigger:Beam | |
| Lock Time :: 1.5 | |
| Max Range :: 100.0 | |
| ---bulletdef_fusionbeam--- | |
| sprite Laser_14 | |
| color 5 | |
| potency 150 | |
| fire 230 relative 0 | |
| piercing 100 | |
| sprite Basic | |
| color 5 | |
| potency 50 | |
| repeat bullets:10 speed:8 angle:-20 maxAngle:20 delay:3 directionType:relative | |
| wait 60 | |
| vanish | |
| ---ability_Nexus Pulse--- | |
| Bullet Definition :: [[nexuspulse]] | |
| VFX Cast :: trigger:Attack* | |
| Lock Time :: 1.0 | |
| Max Range :: 100.0 | |
| ---bulletdef_nexuspulse--- | |
| sprite CirclePool 5 | |
| potency 100 | |
| fire 0 relative 0 | |
| aoeexplosion | |
| radius 5 | |
| timedFill 30 | |
| damageEvery 10 | |
| wait 30 | |
| vfx ColossusExplosion 5 | |
| wait 1 | |
| vanish | |
| sprite Basic | |
| color 2 | |
| potency 75 | |
| radial bullets:36 speed:6 | |
| wait 90 | |
| vanish | |
| ---ability_Dispersal Wave--- | |
| Bullet Definition :: [[dispersalwave]] | |
| VFX Cast :: trigger:RangeAttack* | |
| Lock Time :: 1.0 | |
| ---bulletdef_dispersalwave--- | |
| sprite Basic | |
| color 1 | |
| potency 50 | |
| repeat bullets:5 speed:3 angle:-60 maxAngle:60 directionType:relative | |
| wait 90 | |
| vanish | |
| wait 5 | |
| repeat bullets:5 speed:4 angle:-60 maxAngle:60 directionType:relative | |
| wait 75 | |
| vanish | |
| wait 5 | |
| repeat bullets:5 speed:5 angle:-60 maxAngle:60 directionType:relative | |
| wait 60 | |
| vanish | |
| ---ability_Convergence Field--- | |
| Bullet Definition :: [[convergencefield]] | |
| VFX Cast :: trigger:Buff* | |
| Lock Time :: 2.0 | |
| Max Range :: 100.0 | |
| ---bulletdef_convergencefield--- | |
| sprite CirclePool 4 | |
| potency -50 | |
| fire 0 relative 0 | |
| aoepool | |
| radius 4 | |
| damageEvery 30 | |
| damageFriendly | |
| wait 300 | |
| vanish | |
| sprite Basic | |
| color 3 | |
| potency 25 | |
| repeat bullets:36 speed:2 angle:0 maxAngle:360 delay:5 | |
| wait 290 | |
| vanish | |
| ---ability_Polarity Shift--- | |
| Bullet Definition :: [[polarityshift]] | |
| VFX Cast :: trigger:Buff* | |
| Lock Time :: 1.5 | |
| Max Range :: 100.0 | |
| ---bulletdef_polarityshift--- | |
| sprite CirclePool 6 | |
| potency 0 | |
| fire 0 relative 0 | |
| aoeexplosion | |
| radius 6 | |
| timedFill 60 | |
| wait 60 | |
| fire polarityburstout | |
| vanish | |
| ---bulletdef_polarityburstout--- | |
| sprite Basic | |
| color 4 | |
| potency 100 | |
| radial bullets:36 speed:8 | |
| wait 60 | |
| vanish | |
| wait 5 | |
| sprite Basic | |
| color 4 | |
| potency 100 | |
| radial bullets:36 speed:6 | |
| wait 60 | |
| vanish | |
| wait 5 | |
| sprite Basic | |
| color 4 | |
| potency 100 | |
| radial bullets:36 speed:4 | |
| wait 60 | |
| vanish | |
| ---script_colossus_Monster--- | |
| resetVars := func() { | |
| scriptVars["phase"] = 1 | |
| scriptVars["timeSinceFusionBeam"] = 0.0 | |
| scriptVars["timeSinceNexusPulse"] = 0.0 | |
| scriptVars["timeSinceDispersalWave"] = 0.0 | |
| scriptVars["timeSinceConvergenceField"] = 0.0 | |
| scriptVars["timeSincePolarityShift"] = 0.0 | |
| scriptVars["convergenceActive"] = false | |
| scriptVars["convergenceTimer"] = 0.0 | |
| } | |
| if !isDead { | |
| if is_undefined(scriptVars["phase"]) { | |
| resetVars() | |
| } | |
| if targetEntityId > 0 && castingAction == 0 { | |
| scriptVars["timeSinceFusionBeam"] += delta | |
| scriptVars["timeSinceNexusPulse"] += delta | |
| scriptVars["timeSinceDispersalWave"] += delta | |
| scriptVars["timeSinceConvergenceField"] += delta | |
| scriptVars["timeSincePolarityShift"] += delta | |
| currentHealth := getPoints(myEntityId, "hp", "current") | |
| maxHealth := getPoints(myEntityId, "hp", "max") | |
| if currentHealth < maxHealth * 0.5 && scriptVars["phase"] == 1 { | |
| scriptVars["phase"] = 2 | |
| setSpeed(myEntityId, 225) | |
| } | |
| if scriptVars["convergenceActive"] { | |
| scriptVars["convergenceTimer"] += delta | |
| if scriptVars["convergenceTimer"] >= 10.0 { | |
| scriptVars["convergenceActive"] = false | |
| scriptVars["convergenceTimer"] = 0.0 | |
| } | |
| } | |
| if scriptVars["phase"] == 1 { | |
| if scriptVars["timeSinceFusionBeam"] > 6.0 { | |
| useAbilityAtTarget(myEntityId, "Fusion Beam", targetEntityId, 1.0) | |
| scriptVars["timeSinceFusionBeam"] = 0.0 | |
| } else if scriptVars["timeSinceNexusPulse"] > 8.0 { | |
| useAbilityAtPosition(myEntityId, "Nexus Pulse", entityPosition(myEntityId)) | |
| scriptVars["timeSinceNexusPulse"] = 0.0 | |
| } else if scriptVars["timeSinceDispersalWave"] > 5.0 && !scriptVars["convergenceActive"] { | |
| useAbilityAtTarget(myEntityId, "Dispersal Wave", targetEntityId, 1.5) | |
| scriptVars["timeSinceDispersalWave"] = 0.0 | |
| } else if scriptVars["timeSinceConvergenceField"] > 15.0 { | |
| useAbilityAtPosition(myEntityId, "Convergence Field", randomPositionInCurrentRoom(myEntityId, 4.0)) | |
| scriptVars["timeSinceConvergenceField"] = 0.0 | |
| scriptVars["convergenceActive"] = true | |
| scriptVars["convergenceTimer"] = 0.0 | |
| } | |
| } else { | |
| if scriptVars["timeSinceFusionBeam"] > 5.0 { | |
| useAbilityAtTarget(myEntityId, "Fusion Beam", targetEntityId, 1.0) | |
| scriptVars["timeSinceFusionBeam"] = 0.0 | |
| } else if scriptVars["timeSinceNexusPulse"] > 7.0 { | |
| useAbilityAtPosition(myEntityId, "Nexus Pulse", entityPosition(myEntityId)) | |
| scriptVars["timeSinceNexusPulse"] = 0.0 | |
| } else if scriptVars["timeSinceDispersalWave"] > 4.0 && !scriptVars["convergenceActive"] { | |
| useAbilityAtTarget(myEntityId, "Dispersal Wave", targetEntityId, 1.5) | |
| scriptVars["timeSinceDispersalWave"] = 0.0 | |
| } else if scriptVars["timeSinceConvergenceField"] > 12.0 { | |
| useAbilityAtPosition(myEntityId, "Convergence Field", randomPositionInCurrentRoom(myEntityId, 4.0)) | |
| scriptVars["timeSinceConvergenceField"] = 0.0 | |
| scriptVars["convergenceActive"] = true | |
| scriptVars["convergenceTimer"] = 0.0 | |
| } else if scriptVars["timeSincePolarityShift"] > 20.0 { | |
| useAbilityAtPosition(myEntityId, "Polarity Shift", entityPosition(myEntityId)) | |
| scriptVars["timeSincePolarityShift"] = 0.0 | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment