Page 14 of 15

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Mon Jan 04, 2021 6:03 pm
by Untitled
BUG: When running with LegenDoomLite, and if "Legendaries over time" is enabled, monsters sometimes activate their champion ability in an infinite loop on going legendary - spawning an infinite pillar of coloured fire that doesn't go away, which causes immense lag. For certain effects, it also makes the effect itself go infinite - the teleporter champion going infinite results in an infinite chain teleport that makes the monster essentially impossible to catch.

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Tue Jan 05, 2021 6:09 am
by worldendDominator
Can't say anything about the first part, but as for the teleport chain: those champions have something like 1 second cooldown between teleports if legendary, is that what you're experiencing? Or is it actually broken?

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Fri Jan 08, 2021 12:36 am
by Untitled
worldendDominator wrote:Can't say anything about the first part, but as for the teleport chain: those champions have something like 1 second cooldown between teleports if legendary, is that what you're experiencing? Or is it actually broken?


It's actually broken, but I've finally figured out why. (Also, here's some screenshots of the bug: https://imgur.com/a/mV0YA54)

Basically, in delayer.txt, during the Tick() function, the champion_LDoomDelayer gives the champion_BaseController to given monsters if they're legendary, but the only check to see if it should give the controller is if A: the monster is legendary and B: if the level time is greater than 3. This means that if a monster is legendary, if the monster goes legendary post-start (to be honest I don't know why this is the case), the base controller is given to the monster once per tic, which means that the legendary effects trigger once per tic - for some effects, this will cause it to immediately activate, which results in the infinite 1-tic teleport chain.

This is what it should be, with comments:
Code: Select allExpand view
class champion_LDoomDelayer : thinker {
   actor holder;
   class<thinker> champColor;
   int controllerID;
   
   bool colours;
   bool icons;
   bool particles;
   bool bundles;
   
   bool given; //This is new.
   
   double icon_scale;
   double icon_alpha;

   int mutationchance;
   int mutation;
   
   bool ld_dormant;
   bool ld_boost;
   bool ld_additive;
   
   override void Tick() {
      super.Tick();
      
      if (level.time >= 3) {
         string ldtoken = "LDLegendaryMonsterToken";
         if (holder &&  holder.CountInv(ldtoken)) {
            holder.A_GiveInventory("champion_PersistentInfo");
            let info = champion_PersistentInfo(holder.FindInventory("champion_PersistentInfo"));
            
            if (info) {
               info.c = champColor;
               info.i = controllerID;
            }
            
            let controller = champion_BaseController(new(champColor));
            if (controller && !given) { //So it can't activate if already given.
               controller.champion         = holder;
               
               controller.colours         = colours;
               controller.icons         = icons;
               controller.particles      = particles;
               controller.bundles         = bundles;
               controller.mutationchance   = mutationchance;
               controller.mutation         = mutation;
               controller.legend         = true;
               controller.ld_dormant      = ld_dormant;
               controller.ld_boost         = ld_boost;
               
               controller.icon_scale      = icon_scale;
               controller.icon_alpha      = icon_alpha;
               
               given = true; //Set to given to make sure the base controller is only instantiated once!
            }
         }
      if(ld_additive)
         return;
         
         self.Destroy();
         return;
      }
   }
}

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Fri Jan 08, 2021 3:07 am
by worldendDominator
Untitled wrote:It's actually broken, but I've finally figured out why. (Also, here's some screenshots of the bug: https://imgur.com/a/mV0YA54)

Basically, in delayer.txt, during the Tick() function, the champion_LDoomDelayer gives the champion_BaseController to given monsters if they're legendary, but the only check to see if it should give the controller is if A: the monster is legendary and B: if the level time is greater than 3. This means that if a monster is legendary, if the monster goes legendary post-start (to be honest I don't know why this is the case), the base controller is given to the monster once per tic, which means that the legendary effects trigger once per tic - for some effects, this will cause it to immediately activate, which results in the infinite 1-tic teleport chain.

Oh. I guess that's on me (I wrote that part of the code). Thanks for pointing out.

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Sun Jan 24, 2021 7:09 am
by Rtma
Experiencing an error.
here
It's the bottom two lines, how do you fix this?

Re: [v2.8] CHAMPIONS [update 19/12/20]

PostPosted: Mon Feb 08, 2021 12:15 am
by Nems
I believe I encountered the same crash as Rtma did. Gonna turn off blue in the meantime.

EDIT: The monster that caused this crash was a Pain Elemental. On top of having the blue effect, some of the lost souls it spit out would gain champion attributes. I don't know if that's intentional or contributed to my crash or what but I wanted to update what caused my crash before I forgot.

EDIT 2: Just thought of a feature suggestion regarding compatibility with LegenDoom Lite: Instead of having every legendary monster become a champion as well, have a slider that can be set that determines the likelihood of a legendary monster also become a champion so that the player can fight just legendaries as well as legendary champions, if that makes sense.

EDIT 3: Not sure if this is a bug or intentional but the Airborne mutation icon (balloon on a strong) is still visible even with icons turned off. Personally I'd like to see it not show up with icons turned off for aesthetic consistency (that and I don't think the other mutation types have icons associated with them [yet]). :P

Re: [v2.9] CHAMPIONS [update 26/02/21]

PostPosted: Fri Feb 26, 2021 12:16 pm
by Mikk-
v2.9 is here! It's a small one this time, mainly bug fixes and tweaks to bundles.

Spoiler: Changelog


Download here

Re: [v2.9] CHAMPIONS [update 26/02/21]

PostPosted: Sat Feb 27, 2021 8:34 pm
by Nems
Still getting a VM Abort regarding the Blue Champions. This time it was a Lost Soul that was the culprit. I think killing it is what caused it.

If you like I could spend some time brainstorming something different for Blue. I'll also continue playtesting the other changes in 2.9 for you.

Re: [v2.9] CHAMPIONS [update 26/02/21]

PostPosted: Sun Feb 28, 2021 12:05 pm
by AvzinElkein
Also, health/armor bonuses dropped by champions count towards item total for some reason (in Heretic at least).

Re: [v2.9] CHAMPIONS [update 26/02/21]

PostPosted: Fri Mar 05, 2021 9:51 pm
by Nems
Another suggestion: I think Champion Mutation Chance should also have an option to be set based on difficulty alongside Champion Spawn Chance.

Re: [v2.9.1] CHAMPIONS [update 09/03/21]

PostPosted: Tue Mar 09, 2021 9:17 am
by Mikk-
Minor bugfix this update, nothing new or huge. Also some minor optimisation, download link is in the main post.

Nems wrote:Another suggestion: I think Champion Mutation Chance should also have an option to be set based on difficulty alongside Champion Spawn Chance.

I'm planning on tweaking how the spawn chance works, the difficulty based option hasn't been touched in a long ole time. I'm thinking of an adaptive spawn chance, i.e. the more levels you complete the more chance there will be champions, and the more chance of mutations, too.

Re: [v2.9.1] CHAMPIONS [update 09/03/21]

PostPosted: Tue Mar 09, 2021 1:40 pm
by OmegaZeroXIII
i have this error with the latest update. I do not know why it happens and I have used the mod in its version .666 with the legendoom lite and I did not skip this error

Script error, "mk-champions[20210309].pk3:zscript/champions/champs/champ_silver.txt" line 49:
Named argument Species not found.

Re: [v2.9.1] CHAMPIONS [update 09/03/21]

PostPosted: Tue Mar 09, 2021 1:45 pm
by Mikk-
What version of GzDOOM are you using? The current version of Champions requires GZDoom 4.5.0.

Re: [v2.9.1] CHAMPIONS [update 09/03/21]

PostPosted: Tue Mar 23, 2021 7:25 am
by nakedraptor
Hey, I got an error when loading this with Corruption Cards. Game crashed after spawning in new monsters:

https://media.discordapp.net/attachments/740028265762259016/823602294082895892/unknown.png?width=960&height=111

Not sure if this is something you'd want to fix

Thanks!

Re: [v2.9.1] CHAMPIONS [update 09/03/21]

PostPosted: Tue May 04, 2021 3:34 am
by Valencer9
There's a really weird bug when this and Combined Arms are both loaded. When you use the artificer class's pistol altfire it also damages the player.