Author Topic: KM Sovereign Phaser issue  (Read 597 times)

Offline Ryanv1

  • Posts: 2
  • Cookies: 0
KM Sovereign Phaser issue
« on: February 26, 2018, 01:54:42 PM »
Hello, I've got KM working for singleplayer and im having a blast with it, but one annoying thing is the Sovereign's phasers, both on sp and quickbattle, only fire for a second and then shut off again, rather than the constant stream of every other ship's phasers. is there a way to fix this?

Offline Morgan

  • Moderator
  • Posts: 1340
  • Cookies: 65535
Re: KM Sovereign Phaser issue
« Reply #1 on: February 26, 2018, 05:59:07 PM »
The Sovereign's phasers in KM are burst phasers - meaning they firing short bursts with high damage.  To change it you'd need to adjust the phasers in the hardpoint.

Offline Ryanv1

  • Posts: 2
  • Cookies: 0
Re: KM Sovereign Phaser issue
« Reply #2 on: February 26, 2018, 06:07:35 PM »
I see, and can I do such a thing without breaking everything? and if so how?

Offline Morgan

  • Moderator
  • Posts: 1340
  • Cookies: 65535
Re: KM Sovereign Phaser issue
« Reply #3 on: February 27, 2018, 10:55:55 AM »
I see, and can I do such a thing without breaking everything? and if so how?
You can.  I'll give you a quick walk-through on how to do it because it can be a bit picky.

First of all, you need to go into the Sovereign's hardpoint file.  In KM, the editable file will be in your BC directory under "src/scripts/ships/hardpoints/Sovereign.py".  Open that up in Notepad and scroll down to one of the phaser arrays - it should look something like this:

Code: [Select]
VeryVentVentralPhaser = App.PhaserProperty_Create("Very VentVentral Phaser")

VeryVentVentralPhaser.SetMaxCondition(1000.000000)
VeryVentVentralPhaser.SetCritical(0)
VeryVentVentralPhaser.SetTargetable(1)
VeryVentVentralPhaser.SetPrimary(1)
VeryVentVentralPhaser.SetPosition(0.002336, 0.131266, -0.277486)
VeryVentVentralPhaser.SetPosition2D(23.000000, 80.000000)
VeryVentVentralPhaser.SetRepairComplexity(7.000000)
VeryVentVentralPhaser.SetDisabledPercentage(0.750000)
VeryVentVentralPhaser.SetRadius(0.050000)
VeryVentVentralPhaser.SetDumbfire(1)
VeryVentVentralPhaser.SetWeaponID(1)
VeryVentVentralPhaser.SetGroups(1)
VeryVentVentralPhaser.SetDamageRadiusFactor(0.150000)
VeryVentVentralPhaser.SetIconNum(363)
VeryVentVentralPhaser.SetIconPositionX(65.000000)
VeryVentVentralPhaser.SetIconPositionY(74.000000)
VeryVentVentralPhaser.SetIconAboveShip(0)
VeryVentVentralPhaser.SetFireSound("FedBurst")
VeryVentVentralPhaser.SetMaxCharge(1.000000)
VeryVentVentralPhaser.SetMaxDamage(1200.000000)
VeryVentVentralPhaser.SetMaxDamageDistance(100.000000)
VeryVentVentralPhaser.SetMinFiringCharge(1.000000)
VeryVentVentralPhaser.SetNormalDischargeRate(200.000000)
VeryVentVentralPhaser.SetRechargeRate(0.400000)
VeryVentVentralPhaser.SetIndicatorIconNum(511)
VeryVentVentralPhaser.SetIndicatorIconPositionX(59.000000)
VeryVentVentralPhaser.SetIndicatorIconPositionY(69.000000)
VeryVentVentralPhaserForward = App.TGPoint3()
VeryVentVentralPhaserForward.SetXYZ(0.000000, 0.000000, -1.000000)
VeryVentVentralPhaserUp = App.TGPoint3()
VeryVentVentralPhaserUp.SetXYZ(0.000000, -1.000000, 0.000000)
VeryVentVentralPhaser.SetOrientation(VeryVentVentralPhaserForward, VeryVentVentralPhaserUp)
VeryVentVentralPhaser.SetWidth(0.229000)
VeryVentVentralPhaser.SetLength(0.215900)
VeryVentVentralPhaser.SetArcWidthAngles(-0.698132, 0.698132)
VeryVentVentralPhaser.SetArcHeightAngles(-0.698132, 0.698132)
VeryVentVentralPhaser.SetPhaserTextureStart(0)
VeryVentVentralPhaser.SetPhaserTextureEnd(7)
VeryVentVentralPhaser.SetPhaserWidth(0.300000)
kColor = App.TGColorA()
kColor.SetRGBA(1.000000, 0.501961, 0.000000, 1.000000)
VeryVentVentralPhaser.SetOuterShellColor(kColor)
kColor.SetRGBA(1.000000, 0.501961, 0.247059, 1.000000)
VeryVentVentralPhaser.SetInnerShellColor(kColor)
kColor.SetRGBA(1.000000, 1.000000, 0.000000, 1.000000)
VeryVentVentralPhaser.SetOuterCoreColor(kColor)
kColor.SetRGBA(1.000000, 1.000000, 0.501961, 1.000000)
VeryVentVentralPhaser.SetInnerCoreColor(kColor)
VeryVentVentralPhaser.SetNumSides(6)
VeryVentVentralPhaser.SetMainRadius(0.070000)
VeryVentVentralPhaser.SetTaperRadius(0.010000)
VeryVentVentralPhaser.SetCoreScale(0.350000)
VeryVentVentralPhaser.SetTaperRatio(0.250000)
VeryVentVentralPhaser.SetTaperMinLength(5.000000)
VeryVentVentralPhaser.SetTaperMaxLength(30.000000)
VeryVentVentralPhaser.SetLengthTextureTilePerUnit(0.500000)
VeryVentVentralPhaser.SetPerimeterTile(1.000000)
VeryVentVentralPhaser.SetTextureSpeed(2.000000)
VeryVentVentralPhaser.SetTextureName("data/phaser.tga")
App.g_kModelPropertyManager.RegisterLocalTemplate(VeryVentVentralPhaser)

The lines that say "SetMaxCharge", "SetMinFiringCharge", and "SetNormalDischargeRate" are all the things that control how long the phaser fires.  For my Federation ships, I usually set it to about 1.5 seconds - it gives a good balance of the burst effect we've seen on screen while also giving a bit of a longer shot.  If you want to go a bit longer, two second bursts work well too.

Change the afore mentioned lines to something like this:

Code: [Select]
VeryVentVentralPhaser.SetMaxCharge(1.500000)
VeryVentVentralPhaser.SetMaxDamage(1200.000000)
VeryVentVentralPhaser.SetMaxDamageDistance(100.000000)
VeryVentVentralPhaser.SetMinFiringCharge(1.000000)
VeryVentVentralPhaser.SetNormalDischargeRate(1.000000)

That will give you a 1.5 second burst.  Or if you want it longer change "SetMaxCharge" to 2.000000 instead of 1.500000.

You'll need to repeat this process for ALL phaser strips in the hardpoint; they're individually set.  When you're done, save the file as "Sovereign.py" into your BC "scripts/ships/hardpoints" folder (NOT in the SRC folder).

That's the quick and dirty way to change it.  If you have any questions feel free to ask!