Suggestion (and possible bug): Make Corvettes Their Own Entity Type

Currently, what makes a Corvette a Corvette (in terms of whether abilities can target it) is not it's entity type, but it's role type...I think it would be nice if Corvettes were their own entity type instead of being classed as Frigates...

While it is great that we have a new object class to use in ability target filters, Corvette "objects" must always be frigates with the Corvette role type...so, if we wanted to mod in 3 Corvettes per faction, or change existing ships (like LFs) to the Corvette object type, all these ships have to carry with them the Corvette role type...

More importantly, any ability affecting frigates invariably affects Corvettes, so there is no way to have abilities discriminate between corvettes and frigate object types...

I am not entirely sure how this affects the AI's use of these ships...for combat ships, the damage tables guide target selection so that isn't too problematic...as for non-combat ships, having to always include this Corvette roletype with Corvette objects could be problematic...a colony ship, for example, that had the Corvette role type might not prioritize colonization or neutral grabbing properly...

Even if it isn't so much problematic now, if the Devs tweak the AI and how it uses corvettes, then modding attempts to have more Corvette objects in a faction may hit a wall when trying to get the AI to use them properly...

Modding purposes aside, was it by design that any ability that targets frigates invariably affects Corvettes?  Seems a little one-sided that you can have abilities like flak burst attack only corvette role-type objects, but not prevent abilities from hitting them...seems to me this was by accident since abilities that already target frigates also list Corvettes as a target object (seems a little redundant to me)...

 

31,730 views 39 replies
Reply #1 Top

Actually there are abilities explicitly naming corvettes for the viable targets. Though I never checked if they really can't be targeted by abilities without that tag, but at least I assumed that not every ability was viable to be cast at a corvette?

Reply #2 Top

I modded flak burst to target Frigates instead of corvettes to test this...it did damage to all frigates, including corvettes...

Reply #3 Top

Hmmm..I was seeing that they are their own new entity type.  Are you modding Diplomacy files and using them in Rebellion or the Rebellion files themselves?

Reply #4 Top

I am definitely using Rebellion Files...

You will note that the Corvettes have different file names that begin with "Corvette..." instead of "Frigate..."

However, the very beginning of the file clearly states: entityType "Frigate"

I tested this conclusion of mine two different ways:

  1. Changed the Kol's Flak Burst to target Frigates and Fighters instead of Corvettes and Fighters...still did damage to corvettes...
  2. Changed the accuracy debuff in asteroid belts to not affect corvettes (but still have it affect frigates)...corvettes still suffered from the accuracy debuff...
This is a huge problem in my opinion as it seems like devs clearly intended for the frigate object not to include corvettes (why else would they have abilities target both?  That seems redundant)...you could argue it was for string purposes since the target filter also prompts strings to appear under in-game ability descriptions...but that seems unlikely, as you could simply replace some strings with "Frigates/Corvettes" instead of just "Frigates"...

 

 

Reply #5 Top

Maybe Corvettes are just intended to be like frigates, just with some differences. They are built at a frigate factory are they not?

Reply #6 Top

Yes...but why make them a new Object for target filtering if it is simply redundant?  Look at the abilities...every ability AFAIK that has "Frigate" as an object it can target also has "Corvette" as an object it can target (I'm talking about the actual entity files, not the in-game text)....why do this if adding "Frigate" to the target list inherently includes Corvettes?  It's silly...it's redundant...and it makes me think this wasn't intentional....

Reply #7 Top

Looking at those entity files you make a valid point. Maybe the dev's weren't certain of how to put the Corvettes into the game and made that new object in case they changed their minds on how to build them. I don't have a clue if that's actually what happened though...

Reply #8 Top

I'm not sure either...I'm really hoping they make corvettes a new entity type...that would be awesome...even if they don't though, maybe this was just overlooked?  Or maybe for some odd reason it was supposed to be like this...

Reply #9 Top

Has to be intentional, if they were intended to be their own entity type they'd have to have their own factory type, which they do not have.

Reply #10 Top

A simple boolean IsCorvette might be a nice line to add to the frigate entities. If true for targetting purposes it is only a corvette and not a frigate. If false it is a standard frigate that won't be affected by abilities that target corvettes only. That way they could still be built from the frigate factory and have all the attributes of frigates without needing an entirely new entity type.

Reply #11 Top

That's a really good point...still though, makes me wonder why the redundancy with the targeting filter...

Reply #12 Top

Quoting GoaFan77, reply 10
A simple boolean IsCorvette might be a nice line to add to the frigate entities. If true for targetting purposes it is only a corvette and not a frigate. If false it is a standard frigate that won't be affected by abilities that target corvettes only. That way they could still be built from the frigate factory and have all the attributes of frigates without needing an entirely new entity type.

I agree...I think this would be the best and easiest way to do this...

Reply #13 Top

Quoting Lavo_2, reply 9
Has to be intentional, if they were intended to be their own entity type they'd have to have their own factory type, which they do not have.

A factory for one ship doesn't make much sense. Besides, there isn't any more room on the UI, the titan factory took the last build slot. o_O

Reply #14 Top

There are several files showing them as specific target classes.

Reply #15 Top

Quoting Sinperium, reply 14
There are several files showing them as specific target classes.

They are a target class but not an entity type. They count as frigates and corvettes, which seems to be a bug unless the Devs wanted all abilities that affect frigates to affect corvettes (read almost anything).

Reply #16 Top

Everything but flak isn't it?  If so then I'd say it's probably intentional.

Reply #17 Top

Quoting Pyrusmg, reply 16
Everything but flak isn't it?  If so then I'd say it's probably intentional.

I don't understand what you mean...flak ships are frigates....

Reply #18 Top

Quoting Seleuceia, reply 4
I tested this conclusion of mine two different ways: 

If a corvette lists the entity type as 'frigate', and you're thinking it should be 'corvette'.... did you try it? (ie mod a corvette to have entity type 'corvette')

Will it not work? and then, what happens when you take it to your modded asteroid field?

 

This could help figure out if it is intentional or not.

Reply #19 Top

The entity type has to be something that the .exe will recognize...it is not simply something that we, modders, can add...

The 1st or 2nd line in every entity file indicates the entity type so the game engine knows what txt lines to expect while reading the file...

 

 

Reply #20 Top

So, you're saying you've tried changing it to 'corvette', but it doesn't work? I'm not saying "create the entity type 'corvette'". I'm saying, "have you found out for sure that it doesn't exist?"

Reply #21 Top

If you do that, you'll get the "Failed to convert 'Corvette' to an enum value" error....

Reply #22 Top

Ok, tanks.

Just want to make sure it wasn't that simple of a fix.

Reply #23 Top

I agree.  Corvettes should have their own button on the main interface as well.

Reply #24 Top

... that's not what this thread was about...

Reply #25 Top

Well, if they were there own entity type then presumably they would have to have their own structure (and therefore UI button) to build them...