37% Less Galaxy Gunship (#596)

* galaxy gunship incoming damage reduction modifier

* health damage, not shield damage
This commit is contained in:
Fate-JH 2020-10-02 15:10:13 -04:00 committed by GitHub
parent fcb2635730
commit e4664d1727
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 110 additions and 34 deletions

View file

@ -5582,7 +5582,7 @@ object GlobalDefinitions {
fury.Damageable = true fury.Damageable = true
fury.Repairable = true fury.Repairable = true
fury.RepairIfDestroyed = false fury.RepairIfDestroyed = false
fury.MaxShields = 130 + 1 fury.MaxShields = 130
fury.Seats += 0 -> new SeatDefinition() fury.Seats += 0 -> new SeatDefinition()
fury.Seats(0).Bailable = true fury.Seats(0).Bailable = true
fury.Seats(0).ControlledWeapon = 1 fury.Seats(0).ControlledWeapon = 1
@ -5601,7 +5601,7 @@ object GlobalDefinitions {
quadassault.Damageable = true quadassault.Damageable = true
quadassault.Repairable = true quadassault.Repairable = true
quadassault.RepairIfDestroyed = false quadassault.RepairIfDestroyed = false
quadassault.MaxShields = 130 + 1 quadassault.MaxShields = 130
quadassault.Seats += 0 -> new SeatDefinition() quadassault.Seats += 0 -> new SeatDefinition()
quadassault.Seats(0).Bailable = true quadassault.Seats(0).Bailable = true
quadassault.Seats(0).ControlledWeapon = 1 quadassault.Seats(0).ControlledWeapon = 1
@ -5620,7 +5620,7 @@ object GlobalDefinitions {
quadstealth.Damageable = true quadstealth.Damageable = true
quadstealth.Repairable = true quadstealth.Repairable = true
quadstealth.RepairIfDestroyed = false quadstealth.RepairIfDestroyed = false
quadstealth.MaxShields = 130 + 1 quadstealth.MaxShields = 130
quadstealth.CanCloak = true quadstealth.CanCloak = true
quadstealth.Seats += 0 -> new SeatDefinition() quadstealth.Seats += 0 -> new SeatDefinition()
quadstealth.Seats(0).Bailable = true quadstealth.Seats(0).Bailable = true
@ -5639,7 +5639,7 @@ object GlobalDefinitions {
two_man_assault_buggy.Damageable = true two_man_assault_buggy.Damageable = true
two_man_assault_buggy.Repairable = true two_man_assault_buggy.Repairable = true
two_man_assault_buggy.RepairIfDestroyed = false two_man_assault_buggy.RepairIfDestroyed = false
two_man_assault_buggy.MaxShields = 250 + 1 two_man_assault_buggy.MaxShields = 250
two_man_assault_buggy.Seats += 0 -> new SeatDefinition() two_man_assault_buggy.Seats += 0 -> new SeatDefinition()
two_man_assault_buggy.Seats(0).Bailable = true two_man_assault_buggy.Seats(0).Bailable = true
two_man_assault_buggy.Seats += 1 -> new SeatDefinition() two_man_assault_buggy.Seats += 1 -> new SeatDefinition()
@ -5660,7 +5660,7 @@ object GlobalDefinitions {
skyguard.Damageable = true skyguard.Damageable = true
skyguard.Repairable = true skyguard.Repairable = true
skyguard.RepairIfDestroyed = false skyguard.RepairIfDestroyed = false
skyguard.MaxShields = 200 + 1 skyguard.MaxShields = 200
skyguard.Seats += 0 -> new SeatDefinition() skyguard.Seats += 0 -> new SeatDefinition()
skyguard.Seats(0).Bailable = true skyguard.Seats(0).Bailable = true
skyguard.Seats += 1 -> new SeatDefinition() skyguard.Seats += 1 -> new SeatDefinition()
@ -5682,7 +5682,7 @@ object GlobalDefinitions {
threemanheavybuggy.Damageable = true threemanheavybuggy.Damageable = true
threemanheavybuggy.Repairable = true threemanheavybuggy.Repairable = true
threemanheavybuggy.RepairIfDestroyed = false threemanheavybuggy.RepairIfDestroyed = false
threemanheavybuggy.MaxShields = 340 + 1 threemanheavybuggy.MaxShields = 340
threemanheavybuggy.Seats += 0 -> new SeatDefinition() threemanheavybuggy.Seats += 0 -> new SeatDefinition()
threemanheavybuggy.Seats(0).Bailable = true threemanheavybuggy.Seats(0).Bailable = true
threemanheavybuggy.Seats += 1 -> new SeatDefinition() threemanheavybuggy.Seats += 1 -> new SeatDefinition()
@ -5709,7 +5709,7 @@ object GlobalDefinitions {
twomanheavybuggy.Damageable = true twomanheavybuggy.Damageable = true
twomanheavybuggy.Repairable = true twomanheavybuggy.Repairable = true
twomanheavybuggy.RepairIfDestroyed = false twomanheavybuggy.RepairIfDestroyed = false
twomanheavybuggy.MaxShields = 360 + 1 twomanheavybuggy.MaxShields = 360
twomanheavybuggy.Seats += 0 -> new SeatDefinition() twomanheavybuggy.Seats += 0 -> new SeatDefinition()
twomanheavybuggy.Seats(0).Bailable = true twomanheavybuggy.Seats(0).Bailable = true
twomanheavybuggy.Seats += 1 -> new SeatDefinition() twomanheavybuggy.Seats += 1 -> new SeatDefinition()
@ -5731,7 +5731,7 @@ object GlobalDefinitions {
twomanhoverbuggy.Damageable = true twomanhoverbuggy.Damageable = true
twomanhoverbuggy.Repairable = true twomanhoverbuggy.Repairable = true
twomanhoverbuggy.RepairIfDestroyed = false twomanhoverbuggy.RepairIfDestroyed = false
twomanhoverbuggy.MaxShields = 320 + 1 twomanhoverbuggy.MaxShields = 320
twomanhoverbuggy.Seats += 0 -> new SeatDefinition() twomanhoverbuggy.Seats += 0 -> new SeatDefinition()
twomanhoverbuggy.Seats(0).Bailable = true twomanhoverbuggy.Seats(0).Bailable = true
twomanhoverbuggy.Seats += 1 -> new SeatDefinition() twomanhoverbuggy.Seats += 1 -> new SeatDefinition()
@ -5753,7 +5753,7 @@ object GlobalDefinitions {
mediumtransport.Damageable = true mediumtransport.Damageable = true
mediumtransport.Repairable = true mediumtransport.Repairable = true
mediumtransport.RepairIfDestroyed = false mediumtransport.RepairIfDestroyed = false
mediumtransport.MaxShields = 500 + 1 mediumtransport.MaxShields = 500
mediumtransport.Seats += 0 -> new SeatDefinition() mediumtransport.Seats += 0 -> new SeatDefinition()
mediumtransport.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax mediumtransport.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
mediumtransport.Seats += 1 -> new SeatDefinition() mediumtransport.Seats += 1 -> new SeatDefinition()
@ -5782,7 +5782,7 @@ object GlobalDefinitions {
battlewagon.Damageable = true battlewagon.Damageable = true
battlewagon.Repairable = true battlewagon.Repairable = true
battlewagon.RepairIfDestroyed = false battlewagon.RepairIfDestroyed = false
battlewagon.MaxShields = 500 + 1 battlewagon.MaxShields = 500
battlewagon.Seats += 0 -> new SeatDefinition() battlewagon.Seats += 0 -> new SeatDefinition()
battlewagon.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax battlewagon.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
battlewagon.Seats += 1 -> new SeatDefinition() battlewagon.Seats += 1 -> new SeatDefinition()
@ -5814,7 +5814,7 @@ object GlobalDefinitions {
thunderer.Damageable = true thunderer.Damageable = true
thunderer.Repairable = true thunderer.Repairable = true
thunderer.RepairIfDestroyed = false thunderer.RepairIfDestroyed = false
thunderer.MaxShields = 500 + 1 thunderer.MaxShields = 500
thunderer.Seats += 0 -> new SeatDefinition() thunderer.Seats += 0 -> new SeatDefinition()
thunderer.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax thunderer.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
thunderer.Seats += 1 -> new SeatDefinition() thunderer.Seats += 1 -> new SeatDefinition()
@ -5843,7 +5843,7 @@ object GlobalDefinitions {
aurora.Damageable = true aurora.Damageable = true
aurora.Repairable = true aurora.Repairable = true
aurora.RepairIfDestroyed = false aurora.RepairIfDestroyed = false
aurora.MaxShields = 500 + 1 aurora.MaxShields = 500
aurora.Seats += 0 -> new SeatDefinition() aurora.Seats += 0 -> new SeatDefinition()
aurora.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax aurora.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
aurora.Seats += 1 -> new SeatDefinition() aurora.Seats += 1 -> new SeatDefinition()
@ -5872,7 +5872,7 @@ object GlobalDefinitions {
apc_tr.Damageable = true apc_tr.Damageable = true
apc_tr.Repairable = true apc_tr.Repairable = true
apc_tr.RepairIfDestroyed = false apc_tr.RepairIfDestroyed = false
apc_tr.MaxShields = 1200 + 1 apc_tr.MaxShields = 1200
apc_tr.Seats += 0 -> new SeatDefinition() apc_tr.Seats += 0 -> new SeatDefinition()
apc_tr.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax apc_tr.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
apc_tr.Seats += 1 -> new SeatDefinition() apc_tr.Seats += 1 -> new SeatDefinition()
@ -5923,7 +5923,7 @@ object GlobalDefinitions {
apc_nc.Damageable = true apc_nc.Damageable = true
apc_nc.Repairable = true apc_nc.Repairable = true
apc_nc.RepairIfDestroyed = false apc_nc.RepairIfDestroyed = false
apc_nc.MaxShields = 1200 + 1 apc_nc.MaxShields = 1200
apc_nc.Seats += 0 -> new SeatDefinition() apc_nc.Seats += 0 -> new SeatDefinition()
apc_nc.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax apc_nc.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
apc_nc.Seats += 1 -> new SeatDefinition() apc_nc.Seats += 1 -> new SeatDefinition()
@ -5974,7 +5974,7 @@ object GlobalDefinitions {
apc_vs.Damageable = true apc_vs.Damageable = true
apc_vs.Repairable = true apc_vs.Repairable = true
apc_vs.RepairIfDestroyed = false apc_vs.RepairIfDestroyed = false
apc_vs.MaxShields = 1200 + 1 apc_vs.MaxShields = 1200
apc_vs.Seats += 0 -> new SeatDefinition() apc_vs.Seats += 0 -> new SeatDefinition()
apc_vs.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax apc_vs.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
apc_vs.Seats += 1 -> new SeatDefinition() apc_vs.Seats += 1 -> new SeatDefinition()
@ -6025,7 +6025,7 @@ object GlobalDefinitions {
lightning.Damageable = true lightning.Damageable = true
lightning.Repairable = true lightning.Repairable = true
lightning.RepairIfDestroyed = false lightning.RepairIfDestroyed = false
lightning.MaxShields = 400 + 1 lightning.MaxShields = 400
lightning.Seats += 0 -> new SeatDefinition() lightning.Seats += 0 -> new SeatDefinition()
lightning.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax lightning.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
lightning.Seats(0).ControlledWeapon = 1 lightning.Seats(0).ControlledWeapon = 1
@ -6045,7 +6045,7 @@ object GlobalDefinitions {
prowler.Damageable = true prowler.Damageable = true
prowler.Repairable = true prowler.Repairable = true
prowler.RepairIfDestroyed = false prowler.RepairIfDestroyed = false
prowler.MaxShields = 960 + 1 prowler.MaxShields = 960
prowler.Seats += 0 -> new SeatDefinition() prowler.Seats += 0 -> new SeatDefinition()
prowler.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax prowler.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
prowler.Seats += 1 -> new SeatDefinition() prowler.Seats += 1 -> new SeatDefinition()
@ -6070,7 +6070,7 @@ object GlobalDefinitions {
vanguard.Damageable = true vanguard.Damageable = true
vanguard.Repairable = true vanguard.Repairable = true
vanguard.RepairIfDestroyed = false vanguard.RepairIfDestroyed = false
vanguard.MaxShields = 1080 + 1 vanguard.MaxShields = 1080
vanguard.Seats += 0 -> new SeatDefinition() vanguard.Seats += 0 -> new SeatDefinition()
vanguard.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax vanguard.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
vanguard.Seats += 1 -> new SeatDefinition() vanguard.Seats += 1 -> new SeatDefinition()
@ -6091,7 +6091,7 @@ object GlobalDefinitions {
magrider.Damageable = true magrider.Damageable = true
magrider.Repairable = true magrider.Repairable = true
magrider.RepairIfDestroyed = false magrider.RepairIfDestroyed = false
magrider.MaxShields = 840 + 1 magrider.MaxShields = 840
magrider.Seats += 0 -> new SeatDefinition() magrider.Seats += 0 -> new SeatDefinition()
magrider.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax magrider.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
magrider.Seats(0).ControlledWeapon = 2 magrider.Seats(0).ControlledWeapon = 2
@ -6115,7 +6115,7 @@ object GlobalDefinitions {
ant.Damageable = true ant.Damageable = true
ant.Repairable = true ant.Repairable = true
ant.RepairIfDestroyed = false ant.RepairIfDestroyed = false
ant.MaxShields = 400 + 1 ant.MaxShields = 400
ant.Seats += 0 -> new SeatDefinition() ant.Seats += 0 -> new SeatDefinition()
ant.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax ant.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
ant.MountPoints += 1 -> 0 ant.MountPoints += 1 -> 0
@ -6135,7 +6135,7 @@ object GlobalDefinitions {
ams.Damageable = true ams.Damageable = true
ams.Repairable = true ams.Repairable = true
ams.RepairIfDestroyed = false ams.RepairIfDestroyed = false
ams.MaxShields = 1000 + 1 // Temporary - original value is 600 + 1 ams.MaxShields = 1000 // Temporary - original value is 600 + 1
ams.Seats += 0 -> new SeatDefinition() ams.Seats += 0 -> new SeatDefinition()
ams.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax ams.Seats(0).ArmorRestriction = SeatArmorRestriction.NoReinforcedOrMax
ams.MountPoints += 1 -> 0 ams.MountPoints += 1 -> 0
@ -6160,7 +6160,7 @@ object GlobalDefinitions {
router.Damageable = true router.Damageable = true
router.Repairable = true router.Repairable = true
router.RepairIfDestroyed = false router.RepairIfDestroyed = false
router.MaxShields = 800 + 1 router.MaxShields = 800
router.Seats += 0 -> new SeatDefinition() router.Seats += 0 -> new SeatDefinition()
router.MountPoints += 1 -> 0 router.MountPoints += 1 -> 0
router.Utilities += 1 -> UtilityType.teleportpad_terminal router.Utilities += 1 -> UtilityType.teleportpad_terminal
@ -6183,7 +6183,7 @@ object GlobalDefinitions {
switchblade.Damageable = true switchblade.Damageable = true
switchblade.Repairable = true switchblade.Repairable = true
switchblade.RepairIfDestroyed = false switchblade.RepairIfDestroyed = false
switchblade.MaxShields = 350 + 1 switchblade.MaxShields = 350
switchblade.Seats += 0 -> new SeatDefinition() switchblade.Seats += 0 -> new SeatDefinition()
switchblade.Seats(0).ControlledWeapon = 1 switchblade.Seats(0).ControlledWeapon = 1
switchblade.Weapons += 1 -> scythe switchblade.Weapons += 1 -> scythe
@ -6207,7 +6207,7 @@ object GlobalDefinitions {
flail.Damageable = true flail.Damageable = true
flail.Repairable = true flail.Repairable = true
flail.RepairIfDestroyed = false flail.RepairIfDestroyed = false
flail.MaxShields = 480 + 1 flail.MaxShields = 480
flail.Seats += 0 -> new SeatDefinition() flail.Seats += 0 -> new SeatDefinition()
flail.Seats(0).ControlledWeapon = 1 flail.Seats(0).ControlledWeapon = 1
flail.Weapons += 1 -> flail_weapon flail.Weapons += 1 -> flail_weapon
@ -6229,7 +6229,7 @@ object GlobalDefinitions {
mosquito.Damageable = true mosquito.Damageable = true
mosquito.Repairable = true mosquito.Repairable = true
mosquito.RepairIfDestroyed = false mosquito.RepairIfDestroyed = false
mosquito.MaxShields = 133 + 1 mosquito.MaxShields = 133
mosquito.CanFly = true mosquito.CanFly = true
mosquito.Seats += 0 -> new SeatDefinition() mosquito.Seats += 0 -> new SeatDefinition()
mosquito.Seats(0).Bailable = true mosquito.Seats(0).Bailable = true
@ -6251,7 +6251,7 @@ object GlobalDefinitions {
lightgunship.Damageable = true lightgunship.Damageable = true
lightgunship.Repairable = true lightgunship.Repairable = true
lightgunship.RepairIfDestroyed = false lightgunship.RepairIfDestroyed = false
lightgunship.MaxShields = 200 + 1 lightgunship.MaxShields = 200
lightgunship.CanFly = true lightgunship.CanFly = true
lightgunship.Seats += 0 -> new SeatDefinition() lightgunship.Seats += 0 -> new SeatDefinition()
lightgunship.Seats(0).Bailable = true lightgunship.Seats(0).Bailable = true
@ -6274,7 +6274,7 @@ object GlobalDefinitions {
wasp.Damageable = true wasp.Damageable = true
wasp.Repairable = true wasp.Repairable = true
wasp.RepairIfDestroyed = false wasp.RepairIfDestroyed = false
wasp.MaxShields = 103 + 1 wasp.MaxShields = 103
wasp.CanFly = true wasp.CanFly = true
wasp.Seats += 0 -> new SeatDefinition() wasp.Seats += 0 -> new SeatDefinition()
wasp.Seats(0).Bailable = true wasp.Seats(0).Bailable = true
@ -6296,7 +6296,7 @@ object GlobalDefinitions {
liberator.Damageable = true liberator.Damageable = true
liberator.Repairable = true liberator.Repairable = true
liberator.RepairIfDestroyed = false liberator.RepairIfDestroyed = false
liberator.MaxShields = 500 + 1 liberator.MaxShields = 500
liberator.CanFly = true liberator.CanFly = true
liberator.Seats += 0 -> new SeatDefinition() liberator.Seats += 0 -> new SeatDefinition()
liberator.Seats(0).ControlledWeapon = 3 liberator.Seats(0).ControlledWeapon = 3
@ -6326,7 +6326,7 @@ object GlobalDefinitions {
vulture.Damageable = true vulture.Damageable = true
vulture.Repairable = true vulture.Repairable = true
vulture.RepairIfDestroyed = false vulture.RepairIfDestroyed = false
vulture.MaxShields = 500 + 1 vulture.MaxShields = 500
vulture.CanFly = true vulture.CanFly = true
vulture.Seats += 0 -> new SeatDefinition() vulture.Seats += 0 -> new SeatDefinition()
vulture.Seats(0).ControlledWeapon = 3 vulture.Seats(0).ControlledWeapon = 3
@ -6358,7 +6358,7 @@ object GlobalDefinitions {
dropship.Repairable = true dropship.Repairable = true
dropship.RepairDistance = 20 dropship.RepairDistance = 20
dropship.RepairIfDestroyed = false dropship.RepairIfDestroyed = false
dropship.MaxShields = 1000 + 1 dropship.MaxShields = 1000
dropship.CanFly = true dropship.CanFly = true
dropship.Seats += 0 -> new SeatDefinition() dropship.Seats += 0 -> new SeatDefinition()
dropship.Seats += 1 -> new SeatDefinition() dropship.Seats += 1 -> new SeatDefinition()
@ -6416,12 +6416,12 @@ object GlobalDefinitions {
dropship.DamageUsing = DamageCalculations.AgainstAircraft dropship.DamageUsing = DamageCalculations.AgainstAircraft
galaxy_gunship.Name = "galaxy_gunship" galaxy_gunship.Name = "galaxy_gunship"
galaxy_gunship.MaxHealth = 9500 //Temporary - original value is 6000 galaxy_gunship.MaxHealth = 6000
galaxy_gunship.Damageable = true galaxy_gunship.Damageable = true
galaxy_gunship.Repairable = true galaxy_gunship.Repairable = true
galaxy_gunship.RepairDistance = 20 galaxy_gunship.RepairDistance = 20
galaxy_gunship.RepairIfDestroyed = false galaxy_gunship.RepairIfDestroyed = false
galaxy_gunship.MaxShields = 1200 + 1 galaxy_gunship.MaxShields = 1200
galaxy_gunship.CanFly = true galaxy_gunship.CanFly = true
galaxy_gunship.Seats += 0 -> new SeatDefinition() galaxy_gunship.Seats += 0 -> new SeatDefinition()
galaxy_gunship.Seats += 1 -> new SeatDefinition() galaxy_gunship.Seats += 1 -> new SeatDefinition()
@ -6455,6 +6455,7 @@ object GlobalDefinitions {
galaxy_gunship.Subtract.Damage1 = 7 galaxy_gunship.Subtract.Damage1 = 7
galaxy_gunship.JackingDuration = Array(0, 60, 20, 10) galaxy_gunship.JackingDuration = Array(0, 60, 20, 10)
galaxy_gunship.DamageUsing = DamageCalculations.AgainstAircraft galaxy_gunship.DamageUsing = DamageCalculations.AgainstAircraft
galaxy_gunship.Modifiers = DamageModifiers.GalaxyGunshipReduction(0.63f)
lodestar.Name = "lodestar" lodestar.Name = "lodestar"
lodestar.MaxHealth = 5000 lodestar.MaxHealth = 5000
@ -6462,7 +6463,7 @@ object GlobalDefinitions {
lodestar.Repairable = true lodestar.Repairable = true
lodestar.RepairDistance = 20 lodestar.RepairDistance = 20
lodestar.RepairIfDestroyed = false lodestar.RepairIfDestroyed = false
lodestar.MaxShields = 1000 + 1 lodestar.MaxShields = 1000
lodestar.CanFly = true lodestar.CanFly = true
lodestar.Seats += 0 -> new SeatDefinition() lodestar.Seats += 0 -> new SeatDefinition()
lodestar.MountPoints += 1 -> 0 lodestar.MountPoints += 1 -> 0
@ -6491,7 +6492,7 @@ object GlobalDefinitions {
phantasm.Damageable = true phantasm.Damageable = true
phantasm.Repairable = true phantasm.Repairable = true
phantasm.RepairIfDestroyed = false phantasm.RepairIfDestroyed = false
phantasm.MaxShields = 500 + 1 phantasm.MaxShields = 500
phantasm.CanCloak = true phantasm.CanCloak = true
phantasm.CanFly = true phantasm.CanFly = true
phantasm.Seats += 0 -> new SeatDefinition() phantasm.Seats += 0 -> new SeatDefinition()

View file

@ -1,6 +1,7 @@
// Copyright (c) 2020 PSForever // Copyright (c) 2020 PSForever
package net.psforever.objects.vital.damage package net.psforever.objects.vital.damage
import net.psforever.objects.GlobalDefinitions
import net.psforever.objects.ballistics._ import net.psforever.objects.ballistics._
import net.psforever.objects.equipment.ChargeFireModeDefinition import net.psforever.objects.equipment.ChargeFireModeDefinition
import net.psforever.objects.vital.DamageType import net.psforever.objects.vital.DamageType
@ -371,6 +372,27 @@ object DamageModifiers {
} }
} }
/**
* The input value degrades (lessens)
* to the percentage of its original value
* if the target is a vehicle with no shields.
* Mainly used for the `galaxy_gunship` vehicle.
* @see `ResolvedProjectile`
*/
case class GalaxyGunshipReduction(multiplier: Float) extends Mod {
def Calculate: DamageModifiers.Format = formula
private def formula(damage: Int, data: ResolvedProjectile): Int = {
data.target match {
case v: VehicleSource
if v.Definition == GlobalDefinitions.galaxy_gunship && v.Shields == 0 =>
(damage * multiplier).toInt
case _ =>
damage
}
}
}
/* Functions */ /* Functions */
/** /**

View file

@ -353,6 +353,59 @@ class DamageCalculationsTests extends Specification {
damage < 100 mustEqual true damage < 100 mustEqual true
} }
"galaxy gunship reduction (target is galaxy_gunship, no shields)" in {
val vehicle = Vehicle(GlobalDefinitions.galaxy_gunship)
val resfprojectile = ResolvedProjectile(
ProjectileResolution.Hit,
projectile,
SourceEntry(vehicle),
vehicle.DamageModel,
Vector3(5, 0, 0)
)
val damage = DamageModifiers.GalaxyGunshipReduction(0.63f).Calculate(100, resfprojectile)
damage == 63 mustEqual true
}
"galaxy gunship reduction (target is galaxy_gunship)" in {
val vehicle = Vehicle(GlobalDefinitions.galaxy_gunship)
vehicle.Shields = 1
val resfprojectile = ResolvedProjectile(
ProjectileResolution.Hit,
projectile,
SourceEntry(vehicle),
vehicle.DamageModel,
Vector3(5, 0, 0)
)
val damage = DamageModifiers.GalaxyGunshipReduction(0.63f).Calculate(100, resfprojectile)
damage == 100 mustEqual true
}
"galaxy gunship reduction (target is vehicle, but not a galaxy_gunship)" in {
val resfprojectile = ResolvedProjectile(
ProjectileResolution.Hit,
projectile,
SourceEntry(target),
target.DamageModel,
Vector3(5, 0, 0)
)
val damage = DamageModifiers.GalaxyGunshipReduction(0.63f).Calculate(100, resfprojectile)
damage == 100 mustEqual true
}
"galaxy gunship reduction (target is not a vehicle)" in {
val tplayer =
Player(Avatar(0, "TestCharacter2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
val resfprojectile = ResolvedProjectile(
ProjectileResolution.Hit,
projectile,
SourceEntry(tplayer),
tplayer.DamageModel,
Vector3(5, 0, 0)
)
val damage = DamageModifiers.GalaxyGunshipReduction(0.63f).Calculate(100, resfprojectile)
damage == 100 mustEqual true
}
"extract a complete damage profile" in { "extract a complete damage profile" in {
val result1 = DamageModifiers.RadialDegrade.Calculate( val result1 = DamageModifiers.RadialDegrade.Calculate(
AgainstVehicle(proj_prof) + AgainstVehicle(wep_prof), AgainstVehicle(proj_prof) + AgainstVehicle(wep_prof),