separated aggravation behavior and uara management behavior; moved files into packages and deleted old files

This commit is contained in:
FateJH 2020-08-12 20:59:13 -04:00
parent a79fc6bd2f
commit 89d7aea633
16 changed files with 451 additions and 514 deletions

View file

@ -8,7 +8,7 @@ import net.psforever.objects.definition._
import net.psforever.objects.definition.converter._
import net.psforever.objects.equipment._
import net.psforever.objects.inventory.InventoryTile
import net.psforever.objects.serverobject.aggravated.Aura
import net.psforever.objects.serverobject.aura.Aura
import net.psforever.objects.serverobject.doors.DoorDefinition
import net.psforever.objects.serverobject.generator.GeneratorDefinition
import net.psforever.objects.serverobject.implantmech.ImplantTerminalMechDefinition

View file

@ -14,7 +14,7 @@ import net.psforever.objects.equipment.{Equipment, EquipmentSize, EquipmentSlot,
import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem}
import net.psforever.objects.serverobject.PlanetSideServerObject
import net.psforever.objects.serverobject.affinity.FactionAffinity
import net.psforever.objects.serverobject.aggravated.AuraContainer
import net.psforever.objects.serverobject.aura.AuraContainer
import net.psforever.objects.vital.resistance.ResistanceProfile
import net.psforever.objects.vital.{DamageResistanceModel, Vitality}
import net.psforever.objects.zones.ZoneAware

View file

@ -7,7 +7,7 @@ import net.psforever.objects.inventory.{Container, GridInventory, InventoryItem,
import net.psforever.objects.serverobject.mount.Mountable
import net.psforever.objects.serverobject.PlanetSideServerObject
import net.psforever.objects.serverobject.affinity.FactionAffinity
import net.psforever.objects.serverobject.aggravated.AuraContainer
import net.psforever.objects.serverobject.aura.AuraContainer
import net.psforever.objects.serverobject.deploy.Deployment
import net.psforever.objects.serverobject.hackable.Hackable
import net.psforever.objects.serverobject.structures.AmenityOwner

View file

@ -8,7 +8,8 @@ import net.psforever.objects.ballistics.{PlayerSource, ResolvedProjectile}
import net.psforever.objects.equipment._
import net.psforever.objects.inventory.{GridInventory, InventoryItem}
import net.psforever.objects.loadouts.Loadout
import net.psforever.objects.serverobject.aggravated.AuraEffectBehavior
import net.psforever.objects.serverobject.aggravated.AggravatedBehavior
import net.psforever.objects.serverobject.aura.AuraEffectBehavior
import net.psforever.objects.serverobject.containable.{Containable, ContainableBehavior}
import net.psforever.objects.vital.{PlayerSuicide, Vitality}
import net.psforever.objects.serverobject.{CommonMessages, PlanetSideServerObject}
@ -32,6 +33,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
with JammableBehavior
with Damageable
with ContainableBehavior
with AggravatedBehavior
with AuraEffectBehavior {
def JammableObject = player
@ -39,6 +41,8 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
def ContainerObject = player
def AggravatedObject = player
def AuraTargetObject = player
private[this] val log = org.log4s.getLogger(player.Name)
@ -58,11 +62,13 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
lockerControlAgent ! akka.actor.PoisonPill
player.avatar.locker.Actor = Default.Actor
EndAllEffects()
EndAllAggravation()
}
def receive: Receive =
jammableBehavior
.orElse(takesDamage)
.orElse(aggravatedBehavior)
.orElse(auraBehavior)
.orElse(containerBehavior)
.orElse {
@ -554,7 +560,11 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
if (Damageable.CanJammer(target, cause)) {
TryJammerEffectActivate(target, cause)
}
TryAggravationEffect(cause)
TryAggravationEffect(cause) match {
case Some(aggravation) =>
StartAuraEffect(aggravation.effect_type, aggravation.timing.duration)
case _ => ;
}
} else {
DestructionAwareness(target, Some(cause))
}
@ -609,6 +619,8 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
target.Die
//aura effects cancel
EndAllEffects()
//aggravation cancel
EndAllAggravation()
//unjam
CancelJammeredSound(target)
CancelJammeredStatus(target)

View file

@ -10,7 +10,8 @@ import net.psforever.objects.inventory.{GridInventory, InventoryItem}
import net.psforever.objects.serverobject.CommonMessages
import net.psforever.objects.serverobject.mount.{Mountable, MountableBehavior}
import net.psforever.objects.serverobject.affinity.{FactionAffinity, FactionAffinityBehavior}
import net.psforever.objects.serverobject.aggravated.AuraEffectBehavior
import net.psforever.objects.serverobject.aggravated.AggravatedBehavior
import net.psforever.objects.serverobject.aura.AuraEffectBehavior
import net.psforever.objects.serverobject.containable.{Containable, ContainableBehavior}
import net.psforever.objects.serverobject.damage.Damageable.Target
import net.psforever.objects.serverobject.damage.DamageableVehicle
@ -54,11 +55,12 @@ class VehicleControl(vehicle: Vehicle)
with JammableMountedWeapons
with ContainableBehavior
with AntTransferBehavior
with AggravatedBehavior
with AuraEffectBehavior {
//make control actors belonging to utilities when making control actor belonging to vehicle
vehicle.Utilities.foreach({ case (_, util) => util.Setup })
def MountableObject = vehicle
def CargoObject = vehicle
@ -79,6 +81,8 @@ class VehicleControl(vehicle: Vehicle)
def AuraTargetObject = vehicle
def AggravatedObject = vehicle
if(vehicle.Definition == GlobalDefinitions.ant) {
findChargeTargetFunc = Vehicles.FindANTChargingSource
findDischargeTargetFunc = Vehicles.FindANTDischargingTarget
@ -101,6 +105,7 @@ class VehicleControl(vehicle: Vehicle)
util().Actor = Default.Actor
}
EndAllEffects()
EndAllAggravation()
}
def Enabled: Receive =
@ -109,6 +114,7 @@ class VehicleControl(vehicle: Vehicle)
.orElse(cargoBehavior)
.orElse(jammableBehavior)
.orElse(takesDamage)
.orElse(aggravatedBehavior)
.orElse(auraBehavior)
.orElse(canBeRepairedByNanoDispenser)
.orElse(containerBehavior)
@ -592,7 +598,11 @@ class VehicleControl(vehicle: Vehicle)
cause: ResolvedProjectile,
amount: Int
): Unit = {
TryAggravationEffect(cause)
TryAggravationEffect(cause) match {
case Some(aggravation) =>
StartAuraEffect(aggravation.effect_type, aggravation.timing.duration)
case _ => ;
}
super.DamageAwareness(target, cause, amount)
}
@ -602,6 +612,8 @@ class VehicleControl(vehicle: Vehicle)
): Unit = {
//aura effects cancel
EndAllEffects()
//aggravation cancel
EndAllAggravation()
super.DestructionAwareness(target, cause)
}
}

View file

@ -255,7 +255,7 @@ object GamePacketOpcode extends Enumeration {
// 0x68
case 0x68 => game.DroppodFreefallingMessage.decode
case 0x69 => game.AvatarFirstTimeEventMessage.decode
case 0x6a => noDecoder(AggravatedDamageMessage)
case 0x6a => game.AggravatedDamageMessage.decode
case 0x6b => game.TriggerSoundMessage.decode
case 0x6c => game.LootItemMessage.decode
case 0x6d => game.VehicleSubStateMessage.decode