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

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
Untitled
Posts: 334
Joined: Thu Apr 18, 2013 5:04 am

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

Post 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.
User avatar
worldendDominator
Posts: 283
Joined: Sun May 17, 2015 9:39 am

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

Post 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?
Untitled
Posts: 334
Joined: Thu Apr 18, 2013 5:04 am

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

Post 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 all

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;
		}
	}
}
User avatar
worldendDominator
Posts: 283
Joined: Sun May 17, 2015 9:39 am

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

Post 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.
User avatar
Rtma
Posts: 31
Joined: Sat Apr 08, 2017 9:55 am

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

Post by Rtma »

Experiencing an error.
here
It's the bottom two lines, how do you fix this?
User avatar
Nems
Posts: 660
Joined: Wed Jan 12, 2005 1:09 pm
Graphics Processor: nVidia with Vulkan support
Location: Your forum thread

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

Post 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
You do not have the required permissions to view the files attached to this post.
User avatar
Mikk-
Posts: 2272
Joined: Tue Jun 30, 2009 1:31 pm
Location: Somewhere off Kanagawa

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

Post by Mikk- »

v2.9 is here! It's a small one this time, mainly bug fixes and tweaks to bundles.
Spoiler: Changelog
Download here
User avatar
Nems
Posts: 660
Joined: Wed Jan 12, 2005 1:09 pm
Graphics Processor: nVidia with Vulkan support
Location: Your forum thread

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

Post 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.
You do not have the required permissions to view the files attached to this post.
AvzinElkein
Posts: 607
Joined: Wed Nov 17, 2010 6:35 pm

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

Post by AvzinElkein »

Also, health/armor bonuses dropped by champions count towards item total for some reason (in Heretic at least).
User avatar
Nems
Posts: 660
Joined: Wed Jan 12, 2005 1:09 pm
Graphics Processor: nVidia with Vulkan support
Location: Your forum thread

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

Post by Nems »

Another suggestion: I think Champion Mutation Chance should also have an option to be set based on difficulty alongside Champion Spawn Chance.
User avatar
Mikk-
Posts: 2272
Joined: Tue Jun 30, 2009 1:31 pm
Location: Somewhere off Kanagawa

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

Post 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.
OmegaZeroXIII
Posts: 17
Joined: Mon Mar 01, 2021 4:09 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

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

Post 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.
User avatar
Mikk-
Posts: 2272
Joined: Tue Jun 30, 2009 1:31 pm
Location: Somewhere off Kanagawa

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

Post by Mikk- »

What version of GzDOOM are you using? The current version of Champions requires GZDoom 4.5.0.
nakedraptor
Posts: 7
Joined: Sat Mar 13, 2021 8:42 pm

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

Post by nakedraptor »

Hey, I got an error when loading this with Corruption Cards. Game crashed after spawning in new monsters:

https://media.discordapp.net/attachment ... height=111

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

Thanks!
Valencer9
Posts: 8
Joined: Tue May 04, 2021 3:18 am
Graphics Processor: ATI/AMD (Modern GZDoom)

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

Post 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.

Return to “Gameplay Mods”