• Content Count

  • Joined

  • Last visited

Community Reputation

69 Excellent

1 Follower

About Whoneedspacee

  • Rank
    Junior Member

Recent Profile Visitors

535 profile views
  1. For those interested about the plethora of bugs associated with this boss, this run would've come much sooner but I was dealing with a very strange bug that I had to solve out before I could continue. Essentially the dragonfly was despawning despite me clearly being within the arena bounds, after doing some code diving I came to the conclusion that the only way this could be occuring was if the home location of the dragonfly changed during the fight. After writing a quick mod to debug I found out that when you pan flute the dragonfly, or I assume sleep it in general, it's home location changes. I assume this might apply to several other bosses which makes me wonder to the extent of how it could be abused. In the case of dragonfly you can now essentially chain pan flute to pull him anywhere in the map, if he is pulled far enough away from his magma pools then the lavae he spawns will all be spawned on top of him and he won't move when spawning them. Due to the changing location, this is why I would reset after every lavae pack in this video by dragging it to the center and then pan fluting it there. Hope that is interesting, my only hope if that if you do something cool with this knowledge that you share it back with us here as well.
  2. As always enjoyable to push the bounds of minimal resources, nice to essentially extend it to all other characters as well by using Wes without balloons.
  3. So not sure if you're still wondering about the fluctuating attack speed in Don't Starve Together but I've recently been trying to a Dragonfly Wes Speedkill w/o healing or any cheese, and it's been bugging me so I modded the game and did a bit of research, finding your old thread in the process.

    After writing the mod which gives me the difference in time between attacks I noticed that it didn't seem to be random and fluctuated between two specific values.

    0.46666669100523 seconds

    0.43333335593343 seconds

    These values would be consistently printed out no matter what world I went to, the only thing I can assume is somehow a tick is being skipped or something, I don't really know.

    Another thing I discovered is that on certain worlds the attack speed seemingly never changes, or does so very slowly, whether fast or slow, and on other worlds it changes slowly as in mid fight, or changes literally every 10 seconds and it's impossible to fight Dragonfly properly.

    I tested to see if it was tied to any entity counts or frames values and I was also on local, but that didn't seem to have any affect at all.

    I don't really have any other answers but I just thought it was very interesting that it seems to only pick these two specific values no matter what I tried, so it seems less random than I initially thought.

  4. There is a race condition between the lavae waves resetting their spawn values on line 105 of rampingspawner.lua, and the lavae dying to enrage event on line 47 of rampingspawner.lua, an easy fix is to either run the timer on line 105 after the event push on line 47, or just delete the timer on line 105 as it is unnecessary. I've attached a modmain below which only comments out the timer, and it works perfectly fine because of the health triggers already resetting the spawns. modmain.lua
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.