Jump to content

Dragonfly Bug


Whoneedspacee
  • Pending

 

 

This is still an issue, the code checks out after I just checked it, still in the same spot.  I still have this bug, and you can check numerous videos for it, the fact that the dragonfly enraging or not is totally random is pretty annoying. LAVAE_LIFESPAWN and wave_time are both 30 seconds, so the lavae can die literally just after the task checks, and the dragonfly goes back to the same default pattern it had which is spawning more lavae again.


Steps to Reproduce
Just trying to fight dragonfly with friends, wanted to find a consistent method to enrage it since it was necessary for our strategy but it always seemed to randomly enrage. Thought it had someone to do with distance from the dragonfly but it turned out I just got lucky and couldn't recreate it consistently. Got angry and went into the code to find out what made it enrage and it's totally random.



User Feedback


To reiterate, if _OnSpawnTask in line 105 of rampingspawner.lua is run and DoWave increases the number of lavae to be spawned before the if 
statement in OnLavaeDeath line 346 of dragonfly.lua, the game will recognize that the dragonfly is spawning things and not proceed.

However, if DoWave occurs after the if statement, the if statements stop and cancel methods will just stop the lavae from spawning and enrage the dragonfly.

Of course you definitely understand more about this than me but I thought you'd be busy with the updates and I was interested in spending an hour looking at code I'd never look at again and barely understand.


A simple fix might be to just check if the last lavae died in OnSpawnDeath of rampingspawner.lua and remove the if statement from dragonfly entirely, 
so if the lavae dies and is the last one it is gauranteed that OnLavaeDeath will cancel the spawns and enrage the dragonfly.

Of course there's probably something wrong with my fix or maybe you just don't want your code to look like trash, but I do want to help in any way seeing as you guys are probably busy with other updates.

Not totally sure how it works or if DoWave could run after the stop or reset in that case you'd want to say it can't spawn lavae if it's enraged but I have no idea how it selects **** to run.

Edited by 657866_1452791454

Share this comment


Link to comment
Share on other sites

Wait no, I'm so confused. After checking through the code I'm not even sure why the delayed task is running the DoWave() function, because after the health trigger it'll run the rampingspawner start function anyways and reset everything, there's literally 0 point in having it.

I created a mod to test changing things around and I can't see any reason why that delayed task is there to be honest. I'll come back to write after more testing.

Conclusion : After more testing and looking at the code more, I've pretty much concluded that there's no reason for the delayed task on line 105 of rampingspawner to exist at all, the wave will always reset properly once the dragonfly reaches the health triggers and the delayed task only exists to trick the if statement for enraging the dragonfly. I commented out line 105 of rampingspawner and the dragonfly functioned exactly as he was supposed to with no errors. Unless of course you wanted it so if something cancelled out the enraging like sleep before he actually enraged then he would start spawning lavae, not sure what was intended though.

Edited by 657866_1452791454

Share this comment


Link to comment
Share on other sites

If you want it so when someone makes dragonfly sleep before he enrages or some other method to stop him from enraging he goes back to spawning lavae, why didn't you just put it so if the event is cancelled THEN it runs the start spawning method.

Share this comment


Link to comment
Share on other sites

I'm not sure what this action node stuff is where it's determining constantly whether or not it can spawn **** and then sending out that it should be spawning stuff, but I've been testing a bit and all you have to do is remove the timer on 105 of ramping spawner, then when you check if you can transformfire, if you can't then just call dowave to reset the lavae spawns and cause the dragonfly to spawn lavae again. It's functionally the same boss without the bug, if you wanted it to be 50/50 as well to be the exact same as it is now, just add a random number generator to your if statement.

The code is makes no sense to someone at a glance, it's broken.

Share this comment


Link to comment
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...