This is my Phased Torpedo Script, copy it into one of your own Torpedo scripts and you shoud be good to go. Rename it to what ever you want, you will need FTECH for it to work.
###############################################################################
# Filename: PoleronTorp.py
# By: Andy
###############################################################################
# This torpedo uses the FTA mod...
#
# it actually passes through shields and damages whatever subsystem it was
# targeted at
#
# please refer to the bottom of this file for details on changing effects
###############################################################################
import App
pWeaponLock = {}
###############################################################################
# Args: pTorp - the torpedo, ready to be filled-in
#
# Return: zero
###############################################################################
def Create(pTorp):
kCoreColor = App.TGColorA()
kCoreColor.SetRGBA(222.0 / 255.0, 222.0 / 255.0, 253.0 / 255.0, 1.000000)
kGlowColor = App.TGColorA()
kGlowColor.SetRGBA(61.0 / 201.0, 98.0 / 255.0, 239.0 / 255.0, 1.000000)
pTorp.CreateTorpedoModel(
"data/Textures/Tactical/TorpedoFlares.tga",
kCoreColor,
0.1,
0.8,
"data/Textures/Tactical/TorpedoCore.tga",
kCoreColor,
0.1,
0.2,
0.1,
"data/Textures/Tactical/TorpedoCore.tga",
kGlowColor,
400,
0.3,
0.05)
pTorp.SetDamage( GetDamage() )
pTorp.SetDamageRadiusFactor(0.50)
pTorp.SetGuidanceLifetime( GetGuidanceLifetime() )
pTorp.SetMaxAngularAccel( GetMaxAngularAccel() )
# Multiplayer specific stuff. Please, if you create a new torp
# type. modify the SpeciesToTorp.py file to add the new type.
import Multiplayer.SpeciesToTorp
pTorp.SetNetType (Multiplayer.SpeciesToTorp.QUANTUM)
return(0)
def GetLaunchSpeed():
return(32.0)
def GetLaunchSound():
return("ZZ_Shockwave")
def GetPowerCost():
return(33.0)
def GetName():
return("Phased")
def GetDamage():
return 0.00001
# Sets the minimum damage the torpedo will do
def GetMinDamage():
return 170
# Sets the percentage of damage the torpedo will do
def GetPercentage():
return 0.25
def GetGuidanceLifetime():
return 9.0
def GetMaxAngularAccel():
return 0.10
def TargetHit(pObject, pEvent):
global pWeaponLock
pTorp=App.Torpedo_Cast(pEvent.GetSource())
pShip=App.ShipClass_Cast(pEvent.GetDestination())
if (pTorp==None) or (pShip==None):
return
try:
id=pTorp.GetObjID()
pSubsystem=pWeaponLock[id]
del pWeaponLock[id]
except:
pSubsystem=pShip.GetHull()
if (pSubsystem==None):
return
Dmg=pSubsystem.GetMaxCondition()*GetPercentage()
if (Dmg<GetMinDamage()):
Dmg=GetMinDamage()
if (pSubsystem.GetCondition()>Dmg):
pSubsystem.SetCondition(pSubsystem.GetCondition()-Dmg)
else:
pShip.DestroySystem(pSubsystem)
return
def WeaponFired(pObject, pEvent):
global pWeaponLock
pTorp=App.Torpedo_Cast(pEvent.GetSource())
pTube=App.TorpedoTube_Cast(pEvent.GetDestination())
if (pTorp==None) or (pTube==None):
return
pShip=pTube.GetParentShip()
if (pShip==None):
return
try:
pWeaponLock[pTorp.GetObjID()]=pShip.GetTargetSubsystem()
except:
return
return