Request: Damage DLL/SO

For collaboration on developing the mod capabilities of VS; request new features, report bugs, or suggest improvements

Moderator: Mod Contributor

javier
Bounty Hunter
Bounty Hunter
Posts: 137
Joined: Tue Jan 31, 2006 12:46 am

Post by javier »

Here it is a small patch to put in top of the previous one. It defines a new configuration variable "phase_only_mask" under physics section.
If set to "true", the mask only applies to phase damage, leaving out direct damage. This way, lower tech weapons could keep doing damage to capital ships shields, but its possible phase damage gets nullified.

If not defined, defaults to false.
You do not have the required permissions to view the files attached to this post.
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Post by TBeholder »

javier wrote: Reserve high order bit of the mask to damages not made by weapons. A shield with this bit on will not suffer damage from collisions.
(puzzled): but is it not the same type of damage which is caused by all kinetic weapons ? Autocannons, and suchlike ? And even explosions ?
safemode wrote:before we would start making use of this I think it's important to document what the masks actually refer to when it comes to the units (weapons,etc) that they cover.

Meaning, I think we should assign ranges a name and put certain weapons in that range, and make certain ships shields / hulls part of those ranges. All of that needs to be detailed and mapped out or we'll have a mess of trying to figure out which ship should have what mask to "balance" correctly with this damage system.
But is it really necessary to resolve weapons and defences one-by-one ? Would not effect-by-effect work better and have much less messy setup ? After all, there's less effects than implementations: all lasers are much the same, etc. So if one shield of this class stops ray, another will too, though maybe more or less effectively. Instead of classifying dozen similar beams in one category, just assign them different damages of the same 2-3 damagetypes, and it will be obvious what works vs. what.
safemode wrote: I take it, the patch can handle that. Or are you organizing along a different mode that has nothing to do with the physics (real or not) of the weapons/shields/hulls.
javier wrote:Here it is a small patch to put in top of the previous one. It defines a new configuration variable "phase_only_mask" under physics section.
If set to "true", the mask only applies to phase damage, leaving out direct damage.
May i suggest to consider "before we would start making use of this" another option instead: list of damages with single type each ? This way instead of "all or nothing", effect can be countered, neutralized or ignored by shield or armor or whatever partially, while others left intact, it's quite flexible.
E.g. something like: laser pulse with "damagetype=impact damage=X1; damagetype=heat damage=Y1", plasma bolt with "damagetype=impact damage=X2; damagetype=currents damage=Y2; damagetype=heat damage=Z2", neutron beam with "damagetype=particlepenetrating damage=X3; damagetype=inducedrad damage=Y3; damagetype=heat damage=Z3", and so on, with different comonents.
Processed in sequence, so latter passes through defence only as much as former. If laser blasts armor only after dropping shield, it gives less heat, if 1/10 of plasmabolt's second damage passes shield, it does not explodes armor at all and upsets ship's electronics much less than it could, and if neutron beam is stopped completely, it tries to make shield radioactive (shield just cancels this type of damage), then causes mild heat irradiation, which is applied to shield (but this damage partially bypasses it).
The same would happen if weapon causes damage of single type, but this damagetype in turn causes proportional secondary damage (which can do the same).
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
javier
Bounty Hunter
Bounty Hunter
Posts: 137
Joined: Tue Jan 31, 2006 12:46 am

Post by javier »

Turbo Beholder wrote:
javier wrote: Reserve high order bit of the mask to damages not made by weapons. A shield with this bit on will not suffer damage from collisions.
(puzzled): but is it not the same type of damage which is caused by all kinetic weapons ? Autocannons, and suchlike ? And even explosions ?
Not necessarily. The patch modifies the invocation of damage calculation methods only from weapons methods. All other possible invocations are left as they were. The reserved bit is defined as a default parameter in the called method. This should allow playing with weapons and shields interaction without messing with what happens if two vessels run into each other.
Turbo Beholder wrote:
safemode wrote:before we would start making use of this I think it's important to document what the masks actually refer to when it comes to the units (weapons,etc) that they cover.

Meaning, I think we should assign ranges a name and put certain weapons in that range, and make certain ships shields / hulls part of those ranges. All of that needs to be detailed and mapped out or we'll have a mess of trying to figure out which ship should have what mask to "balance" correctly with this damage system.
But is it really necessary to resolve weapons and defences one-by-one ? Would not effect-by-effect work better and have much less messy setup ? After all, there's less effects than implementations: all lasers are much the same, etc. So if one shield of this class stops ray, another will too, though maybe more or less effectively. Instead of classifying dozen similar beams in one category, just assign them different damages of the same 2-3 damagetypes, and it will be obvious what works vs. what.
I'm not very worried about this. There is not such large amount of weapons and shields to make it unworkable, and the kind of categorization you suggest is less flexible. It is only a matter of some planning before making the changes.
Turbo Beholder wrote:
safemode wrote: I take it, the patch can handle that. Or are you organizing along a different mode that has nothing to do with the physics (real or not) of the weapons/shields/hulls.
javier wrote:Here it is a small patch to put in top of the previous one. It defines a new configuration variable "phase_only_mask" under physics section.
If set to "true", the mask only applies to phase damage, leaving out direct damage.
May i suggest to consider "before we would start making use of this" another option instead: list of damages with single type each ? This way instead of "all or nothing", effect can be countered, neutralized or ignored by shield or armor or whatever partially, while others left intact, it's quite flexible.
E.g. something like: laser pulse with "damagetype=impact damage=X1; damagetype=heat damage=Y1", plasma bolt with "damagetype=impact damage=X2; damagetype=currents damage=Y2; damagetype=heat damage=Z2", neutron beam with "damagetype=particlepenetrating damage=X3; damagetype=inducedrad damage=Y3; damagetype=heat damage=Z3", and so on, with different comonents.
Processed in sequence, so latter passes through defence only as much as former. If laser blasts armor only after dropping shield, it gives less heat, if 1/10 of plasmabolt's second damage passes shield, it does not explodes armor at all and upsets ship's electronics much less than it could, and if neutron beam is stopped completely, it tries to make shield radioactive (shield just cancels this type of damage), then causes mild heat irradiation, which is applied to shield (but this damage partially bypasses it).
The same would happen if weapon causes damage of single type, but this damagetype in turn causes proportional secondary damage (which can do the same).
I took this full or nothing approach completely on purpose because I didn't find a simpler way to get some effects I feel there were needed. Your suggestion implies much more deeper changes on the code. And believe me, while the changes on weapons classes are relatively simple to make, I found missiles to be a big mess.
Briefly speaking, if you are considering different kinds of damages, you will have to put different resistance values to shields and armors for each of those kinds, what means more new columns in units.csv, and a big change in the damage calculation methods.

There is one value in units.csv, shield_leak, that, to some extent, could help in getting the kind of effect you're writing about.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Missiles are annoying because it's not the missile that does the damage, at least not in this game, it's the explosion.

Ideally, we would have

Beams(energy), Bolts(energy), Bullets(matter), explosions(undirected energy), radiation (undirected energy)

All a missile is is a transport for the explosion. A ship is another transport. So a missile is just a ship. Then we'd use the explosion class to alter it's behavior per type we want to transport in the missile.

That's how it ought to be.
Ed Sweetman endorses this message.
TBeholder
Elite Venturer
Elite Venturer
Posts: 753
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Post by TBeholder »

javier wrote: I'm not very worried about this. There is not such large amount of weapons and shields to make it unworkable
...and 640K ought to... ;)
javier wrote:and the kind of categorization you suggest is less flexible. It is only a matter of some planning before making the changes.
What for example it does not allows which is available with masks ?
javier wrote: I took this full or nothing approach completely on purpose because I didn't find a simpler way to get some effects I feel there were needed.
Perhaps it's enough for some specific effect you needed this time, but why not make this a bit more universal way and resolve with the same mechanism other effects, like ablation coating vs. heating ?
javier wrote:And believe me, while the changes on weapons classes are relatively simple to make, I found missiles to be a big mess.
Then change is needed all the more ?..
javier wrote: Briefly speaking, if you are considering different kinds of damages, you will have to put different resistance values to shields and armors for each of those kinds,
Shields and armors also can be reduced to basic types with 1-2 effects in different proportions.
javier wrote: what means more new columns in units.csv,
Only if you want to make them one-by-one and all in one place. :) Otherwise, 1 value referring to 1 extra file like weapon_list.xml or turretsize.txt. If weapons' specific properties are not dumped in this big pile, why shields must ?
javier wrote: and a big change in the damage calculation methods.
Is it worse than assigning unique stats to weapons in weapon_list.xml ?
javier wrote:There is one value in units.csv, shield_leak, that, to some extent, could help in getting the kind of effect you're writing about.
But how ?
safemode wrote:missile is just a ship. Then we'd use the explosion class to alter it's behavior per type we want to transport in the missile.
That's how it ought to be.
More accurately, ship is a missile. ;) I would say that missile just carries single weapon of short-range, self-destructing type. And beguiling missile's proximity detonator so it would explode too far is the same as confusing ship's rangefinder to make it miss when using kinetic weapons. BTW, drones are not bad idea either (why hellspawn is alone?).
With the difference in that missile can be dependent on other entities (using semiactive homing guidance or remote control instead of stand-alone active radar). But then, why not guide missile by entire flightgroup, not only ship of origin ? And drones can be as much mothership-dependent as missiles.
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
Post Reply