Better weapon ODF organization/linking?

Post ideas and suggestions on new features or improvements here.
posted on March 19th, 2014, 9:58 am
So I'm gonna use an example to illustrate what I'm thinking.


Right now each weapon uses quite a few files. For every weapon you have to have a basic weapon file and an ordinance file, even if the only difference between the weapons is a sprite used or fire sound.

So I was thinking - why not separate the stuff? You'd have the basic launcher .odf, the ordinance .odf and any extra parameters - all called from the ship.odf.


So instead of :

weapon5 = "battlephot"

You'd have:

weapon5 = "launcher1" "photono" (launcher and ordinance specified separately)

Or, ideally:

weapon5 = "launcher1" "photono", "pfwea2.waw" (technically it might be even possible to add a sprite here, but better to leave that i the ordinance. O heck , add fire sound to the ordinance!)


So the basic launcher files dictates things like rate of fire (preferable saved shots would be defined here too?). Ordinance defines damage, seek time, appearance, etc..
Lastly the sound file for fireing is specified.

This enables ships to easily share the same launchers (even between races), and ends up with less files and at the same time makes it easier to edit and mix and match.
Less clutter and it makes more sense.
posted on March 19th, 2014, 1:26 pm
And another thing that the current game code handles...poorly. Targeting accuracy/damage exception.

At the moment they are defined in the weapon file, with an entire list of ship .odf files to which different values apply.
Yet looking at that list, sets of values keep repeating.

So instead of having the weapon have accuracy 1 by listing all battleships of all races, why not just list the battleship TYPE as an exception?
The battleship/cruiser/destroyer can be a good differentiating criteria, and it's far simpler and cleaner than updating entire lists for every weapon every time something changes or a new ship is added.
One could even use other criteria, such as race (useful for anti-borg or anti-8742 weapons)


Alternatively, increased mobility (reduced chance to hit) and armor (reduced damage) could be handled within the ship.odf (of inside battle.odf, cruise1.odf, etc..)

evasion = 0.2 would reduce the chance to hit of every weapon (except specials) by 0.2.
So a weapon with a 0.75 chance to hit shooting at a ship with 0.2 evasion would have a 55% chance of hitting

Likewise, one can handle increased toughness in a ship file - instead of having a list of alternate damages - by having a damage reduction value.

Simpler, less clutter.
posted on March 19th, 2014, 5:45 pm
TrashMan wrote:So instead of :

weapon5 = "battlephot"

You'd have:

weapon5 = "launcher1" "photono" (launcher and ordinance specified separately)

I like this general idea. One thing to keep in mind is that it should be compatible with stock, so I would suggest that it be structured like so:
weapon5 = "battlephot"
weaponhardpoints5 = "hp01" "hp02" "hp03"
weaponordnance5 = "photono"

In this example, weaponordnanceX would override the ordnance specified in the corresponding weaponX when given a value. This would allow the modder to choose which system they want, and old mods would still be easy to convert to FO without redoing every weapon on every ship and station.

There is still a problem with the weapon icon tooltips, though. Another line (weapontooltipX?) could solve that by overriding the tooltip, but that may be a few too many lines for a single weapon.

TrashMan wrote:So instead of having the weapon have accuracy 1 by listing all battleships of all races, why not just list the battleship TYPE as an exception?
The battleship/cruiser/destroyer can be a good differentiating criteria, and it's far simpler and cleaner than updating entire lists for every weapon every time something changes or a new ship is added.

This would probably require new class labels to work, since things like cruisers don't actually exist code-wise (everything is simply a "craft"), but it's a good idea. Once again, it should still be compatible with stock, so if you do something like set cruisers to 0.7, you should still be able to set a specific cruiser as 0.8 in the same list. ODF name trumps class label, basically.

TrashMan wrote:evasion = 0.2 would reduce the chance to hit of every weapon (except specials) by 0.2.
So a weapon with a 0.75 chance to hit shooting at a ship with 0.2 evasion would have a 55% chance of hitting

I don't like this idea. It looks good on the surface, but there are problems when you think more about it. What if you want a ship that dodges pulses well, but can't shake a torpedo?
posted on March 19th, 2014, 6:15 pm
Different evasion value for different weapon types?

evadetorp = 0.1
evadepulse = 0.2
evadebeam = 0
posted on March 19th, 2014, 7:13 pm
That might work. Unfortunately, FO's pulses are currently coded as UniTorpedoes so they would need a new classlabel, like UniPulse, but I think they should get a new classlabel anyway.

Also, having them be multiplicative rather than additive or subtractive may be a good idea. For instance, a weapon with a hitchance of 0.7 targeting a ship with evasion 0.5 would result in 35% chance to hit rather than 20% and a hitchance of 0.5 against the same ship would be a 25% chance to hit. This way an inaccurate weapon doesn't suddenly lose all chance to hit against the more evasive ships. In the other direction, hitchance 0.7 with evasion 1.1 would result in 77% chance.
posted on March 19th, 2014, 9:59 pm
Hmmm...that might work better.
But I'd say it depends on the accuracy and evasion range.
IMHO, you shouldn't really have horribly innacurate weapon in ST.
posted on March 19th, 2014, 10:40 pm
Probably not, but there are non-Trek mods for FO, like Sigma. And then there are fighters to consider.
Reply

Who is online

Users browsing this forum: No registered users and 8 guests