mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
if the cerberus damages a non-vehicle or a vehicle that does not fly, the damage is reduced by anywhere between 1 and 4
This commit is contained in:
parent
a4b7e77d9d
commit
9bd9cb0eac
|
|
@ -1783,7 +1783,7 @@ object GlobalDefinitionsProjectile {
|
||||||
spitfire_aa_ammo_projectile.Lifespan = 5f
|
spitfire_aa_ammo_projectile.Lifespan = 5f
|
||||||
ProjectileDefinition.CalculateDerivedFields(spitfire_aa_ammo_projectile)
|
ProjectileDefinition.CalculateDerivedFields(spitfire_aa_ammo_projectile)
|
||||||
spitfire_aa_ammo_projectile.Modifiers = List(
|
spitfire_aa_ammo_projectile.Modifiers = List(
|
||||||
//FlakHit,
|
CerberusTurretWrongTarget,
|
||||||
FlakBurst,
|
FlakBurst,
|
||||||
MaxDistanceCutoff
|
MaxDistanceCutoff
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
// Copyright (c) 2020 PSForever
|
// Copyright (c) 2020 PSForever
|
||||||
package net.psforever.objects.vital.projectile
|
package net.psforever.objects.vital.projectile
|
||||||
|
|
||||||
|
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.sourcing.PlayerSource
|
import net.psforever.objects.sourcing.{PlayerSource, VehicleSource}
|
||||||
import net.psforever.objects.vital.base._
|
import net.psforever.objects.vital.base._
|
||||||
import net.psforever.objects.vital.damage.DamageModifierFunctions
|
import net.psforever.objects.vital.damage.DamageModifierFunctions
|
||||||
import net.psforever.objects.vital.interaction.DamageInteraction
|
import net.psforever.objects.vital.interaction.DamageInteraction
|
||||||
|
|
@ -354,6 +355,19 @@ case object ShieldAgainstRadiation extends ProjectileDamageModifiers.Mod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** The Cerberus turret can not target any entities besides flying vehicles.
|
||||||
|
* An exception to this rule, however, happens when retaliating against something that damaged it first. */
|
||||||
|
case object CerberusTurretWrongTarget extends ProjectileDamageModifiers.Mod {
|
||||||
|
def calculate(damage: Int, data: DamageInteraction, cause: ProjectileReason): Int = {
|
||||||
|
data.target match {
|
||||||
|
case v: VehicleSource if GlobalDefinitions.isFlightVehicle(v.Definition) =>
|
||||||
|
damage
|
||||||
|
case _ =>
|
||||||
|
damage - (math.random() * 3d).toInt - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Functions */
|
/* Functions */
|
||||||
object ProjectileDamageModifierFunctions {
|
object ProjectileDamageModifierFunctions {
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue