reactivating maelstrom availability; restore damage dealing potential to the maelstrom grenades; changing damage profile to 'no radial degrade'

This commit is contained in:
Fate-JH 2025-11-30 22:15:47 -05:00
parent 049e8a2293
commit 64b86a984e
4 changed files with 16 additions and 8 deletions

View file

@ -55,7 +55,7 @@ add_property lasher holstertime 750
add_property lasher_projectile_ap lasher_projectile_ap false
add_property lasher_projectile_ap lasher_projectile true
add_property lightgunship maxhealth 855
add_property maelstrom allowed false
add_property maelstrom allowed true
add_property maelstrom equiptime 1000
add_property maelstrom holstertime 1000
add_property magcutter equiptime 250

View file

@ -132,7 +132,10 @@ class WeaponAndProjectileLogic(val ops: WeaponAndProjectileOperations, implicit
}
//...
if (list.isEmpty) {
ops.handleProxyDamage(pkt.projectile_guid, pkt.hit_info.map(_.hit_pos).getOrElse(Vector3.Zero))
ops.handleProxyDamage(pkt.projectile_guid, pkt.hit_info.map(_.hit_pos).getOrElse(Vector3.Zero)).foreach {
case (target, proxy, hitPos, _) =>
ops.resolveProjectileInteraction(target, proxy, DamageResolution.Hit, hitPos)
}
}
}
}
@ -182,7 +185,10 @@ class WeaponAndProjectileLogic(val ops: WeaponAndProjectileOperations, implicit
}
}
//...
ops.handleProxyDamage(pkt.projectile_uid, pkt.projectile_pos)
ops.handleProxyDamage(pkt.projectile_uid, pkt.projectile_pos).foreach {
case (target, proxy, hitPos, _) =>
ops.resolveProjectileInteraction(target, proxy, DamageResolution.Splash, hitPos)
}
}
}

View file

@ -8,8 +8,8 @@ import net.psforever.objects.serverobject.{CommonMessages, PlanetSideServerObjec
import net.psforever.objects.{BoomerDeployable, BoomerTrigger, Player, SpecialEmp, Tool, Vehicle}
import net.psforever.objects.vital.base.{DamageResolution, DamageType}
import net.psforever.objects.zones.{Zone, ZoneProjectile}
import net.psforever.packet.game.{AIDamage, AvatarGrenadeStateMessage, ChangeAmmoMessage, ChangeFireModeMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, HitMessage, LashMessage, LongRangeProjectileInfoMessage, OrbitalStrikeWaypointMessage, ProjectileStateMessage, ReloadMessage, SplashHitMessage, TriggerEffectMessage, TriggeredEffectLocation, UplinkRequest, UplinkRequestType, UplinkResponse, WeaponDelayFireMessage, WeaponDryFireMessage, WeaponFireMessage, WeaponLazeTargetPositionMessage}
import net.psforever.types.{ValidPlanetSideGUID, Vector3}
import net.psforever.packet.game.{AIDamage, AvatarGrenadeStateMessage, ChangeAmmoMessage, ChangeFireModeMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, HitMessage, LashMessage, LongRangeProjectileInfoMessage, ProjectileStateMessage, ReloadMessage, SplashHitMessage, UplinkRequest, WeaponDelayFireMessage, WeaponDryFireMessage, WeaponFireMessage, WeaponLazeTargetPositionMessage}
import net.psforever.types.Vector3
object WeaponAndProjectileLogic {
def apply(ops: WeaponAndProjectileOperations): WeaponAndProjectileLogic = {
@ -153,6 +153,7 @@ class WeaponAndProjectileLogic(val ops: WeaponAndProjectileOperations, implicit
ops.handleProxyDamage(pkt.projectile_guid, pkt.hit_info.map(_.hit_pos).getOrElse(Vector3.Zero)).foreach {
case (target, proxy, hitPos, _) =>
ops.checkForHitPositionDiscrepancy(proxy.GUID, hitPos, target)
ops.resolveProjectileInteraction(target, proxy, DamageResolution.Hit, hitPos)
}
}
}
@ -207,6 +208,7 @@ class WeaponAndProjectileLogic(val ops: WeaponAndProjectileOperations, implicit
ops.handleProxyDamage(pkt.projectile_uid, pkt.projectile_pos).foreach {
case (target, proxy, hitPos, _) =>
ops.checkForHitPositionDiscrepancy(proxy.GUID, hitPos, target)
ops.resolveProjectileInteraction(target, proxy, DamageResolution.Splash, hitPos)
}
}

View file

@ -12,7 +12,7 @@ import net.psforever.objects.definition.converter.{
import net.psforever.objects.equipment.{ArmorSiphonRepairHost, EffectTarget, TargetValidation}
import net.psforever.objects.serverobject.aura.Aura
import net.psforever.objects.vital.base.DamageType
import net.psforever.objects.vital.damage.{RadialDegrade, StandardDamageProfile}
import net.psforever.objects.vital.damage.{RadialDegrade, SameHit, StandardDamageProfile}
import net.psforever.objects.vital.etc.{
ArmorSiphonMaxDistanceCutoff,
ExplosionDamagesOnlyAbove,
@ -1054,7 +1054,7 @@ object GlobalDefinitionsProjectile {
maelstrom_grenade_projectile.Lifespan = 2f
maelstrom_grenade_projectile.DamageProxy = 464 //maelstrom_grenade_damager
ProjectileDefinition.CalculateDerivedFields(maelstrom_grenade_projectile)
maelstrom_grenade_projectile.Modifiers = RadialDegrade
maelstrom_grenade_projectile.Modifiers = SameHit
maelstrom_grenade_projectile_contact.Name = "maelstrom_grenade_projectile_contact"
// TODO for later, maybe : set_resource_parent maelstrom_grenade_projectile_contact game_objects maelstrom_grenade_projectile
@ -1069,7 +1069,7 @@ object GlobalDefinitionsProjectile {
maelstrom_grenade_projectile_contact.Lifespan = 15f
maelstrom_grenade_projectile_contact.DamageProxy = 464 //maelstrom_grenade_damager
ProjectileDefinition.CalculateDerivedFields(maelstrom_grenade_projectile_contact)
maelstrom_grenade_projectile_contact.Modifiers = RadialDegrade
maelstrom_grenade_projectile_contact.Modifiers = SameHit
maelstrom_stream_projectile.Name = "maelstrom_stream_projectile"
maelstrom_stream_projectile.Damage0 = 15