Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/AeroMessages
14 changes: 14 additions & 0 deletions UdpHosts/GameServer/Controllers/Vehicle/BaseController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,20 @@ public void MovementInput(INetworkClient client, IPlayer player, ulong entityId,
}
}

[MessageID((byte)Commands.ReceiveCollisionDamage)]
public void ReceiveCollisionDamage(INetworkClient client, IPlayer player, ulong entityId, GamePacket packet)
{
var query = packet.Unpack<ReceiveCollisionDamage>();
client.AssignedShard.Entities.TryGetValue(entityId & 0xffffffffffffff00, out IEntity entity);
if (entity == null)
{
return;
}

var vehicle = entity as Entities.Vehicle.VehicleEntity;
vehicle.ReceiveCollisionDamage(query.ShortTime, query.HaveEntity, query.CollidedWithEntity);
}

[MessageID((byte)Commands.SetWaterLevelAndDesc)]
public void SetWaterLevelAndDesc(INetworkClient client, IPlayer player, ulong entityId, GamePacket packet)
{
Expand Down
10 changes: 5 additions & 5 deletions UdpHosts/GameServer/Entities/Character/CharacterEntity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1217,7 +1217,7 @@ private void InitFields()
AttributeCategories2 = Array.Empty<StatsData>()
};

EnergyParams = new EnergyParamsData { Max = 1000.0f, Delay = 500, Recharge = 156.0f, Time = Shard.CurrentTime };
EnergyParams = new EnergyParamsData { Max = 10000.0f, Delay = 500, Recharge = 1560.0f, Time = Shard.CurrentTime };
ScopeBubble = new ScopeBubbleInfoData { Layer = 0, Unk2 = 0 };
SpawnPose = new CharacterSpawnPose
{
Expand Down Expand Up @@ -1376,11 +1376,11 @@ private void InitControllers()

Character_CombatController = new CombatController
{
RunSpeedMultProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
FwdRunSpeedMultProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
JumpHeightMultProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
RunSpeedMultProp = new StatMultiplierData { Value = 3.0f, Time = Shard.CurrentTime },
FwdRunSpeedMultProp = new StatMultiplierData { Value = 2.0f, Time = Shard.CurrentTime },
JumpHeightMultProp = new StatMultiplierData { Value = 5.0f, Time = Shard.CurrentTime },
AirControlMultProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
ThrustStrengthMultProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
ThrustStrengthMultProp = new StatMultiplierData { Value = 5.0f, Time = Shard.CurrentTime },
ThrustAirControlProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
FrictionProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
AmmoConsumptionProp = new StatMultiplierData { Value = 1.0f, Time = Shard.CurrentTime },
Expand Down
35 changes: 34 additions & 1 deletion UdpHosts/GameServer/Entities/Vehicle/VehicleEntity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,15 @@ public VehicleEntity(IShard shard, ulong eid, CharacterEntity owner = null)
InitFields();
InitViews();
InitControllers();
/* InitCommand(); */
}

public BaseController Vehicle_BaseController { get; set; }
public CombatController Vehicle_CombatController { get; set; }
public ObserverView Vehicle_ObserverView { get; set; }
public CombatView Vehicle_CombatView { get; set; }
public MovementView Vehicle_MovementView { get; set; }

public ReceiveCollisionDamage Vehicle_ReceiveCollisionDamage { get; set; } = new ReceiveCollisionDamage();
public INetworkPlayer ControllingPlayer { get; set; }
public bool IsPlayerControlled => ControllingPlayer != null;
public INetworkPlayer OwningPlayer { get; set; }
Expand Down Expand Up @@ -123,6 +124,7 @@ public VehicleEntity(IShard shard, ulong eid, CharacterEntity owner = null)
{ 8, 0 },
};

// public EntityId WhoDid { get; set; }
public SpawnPoseData SpawnPose { get; set; }
public Vector3 SpawnVelocity { get; set; } = Vector3.Zero;
public CurrentPoseData CurrentPose { get; set; }
Expand All @@ -141,7 +143,9 @@ public VehicleEntity(IShard shard, ulong eid, CharacterEntity owner = null)
public byte EffectsFlags { get; set; }
public byte SinFlags { get; set; }
public byte SinFlagsPrivate { get; set; }
// public byte Impact { get; set; }

// public ushort ImpactTime { get; set; }
public ushort StatusEffectsChangeTime_0 { get; set; }
public ushort StatusEffectsChangeTime_1 { get; set; }
public ushort StatusEffectsChangeTime_2 { get; set; }
Expand Down Expand Up @@ -346,6 +350,22 @@ public void SetSpawnVelocity(Vector3 newValue)
}
}

/* public void ReceiveCollisionDamage(ushort newShortTime, byte newHaveEntity, EntityId collidedWithEntity)
{
ImpactTime = newShortTime;
Impact = newHaveEntity;
WhoDid = collidedWithEntity;
Vehicle_ReceiveCollisionDamage.ShortTime = newShortTime;
Vehicle_ReceiveCollisionDamage.HaveEntity = newHaveEntity;
Vehicle_ReceiveCollisionDamage.CollidedWithEntity = collidedWithEntity;
if (Vehicle_ReceiveCollisionDamage != null)
{
Vehicle_ReceiveCollisionDamage.ShortTime = ImpactTime;
Vehicle_ReceiveCollisionDamage.HaveEntity = Impact;
Vehicle_ReceiveCollisionDamage.CollidedWithEntity = collidedWithEntity;
}
} */

public void SetWaterLevelAndDesc(byte newValue)
{
WaterLevelAndDesc = newValue;
Expand Down Expand Up @@ -593,6 +613,16 @@ private void InitFields()
ScopeBubble = new ScopeBubbleInfoData { Layer = 0, Unk2 = 0 };
}

/* private void InitCommand()
{
Vehicle_ReceiveCollisionDamage = new ReceiveCollisionDamage()
{
ShortTime = 0,
HaveEntity = 0,
CollidedWithEntity = new EntityId { Backing = 0 }
};
} */

private void InitControllers()
{
Vehicle_BaseController = new BaseController()
Expand Down Expand Up @@ -696,6 +726,9 @@ private void InitViews()
SinFlagsProp = SinFlags,
SinFactionsAcquiredByProp = null,
SinTeamsAcquiredByProp = null,
/* ImpactProp = Impact,
ImpactTimeProp = ImpactTime,
ColliededWithEntityProp = WhoDid, */
WaterLevelAndDescProp = WaterLevelAndDesc,
EffectsFlagsProp = EffectsFlags,
SinCardTypeProp = 0,
Expand Down
1 change: 1 addition & 0 deletions UdpHosts/GameServer/StaticDB/SDBUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@ public class VehicleInfoResult
public uint DeathAbility;
public float MaxHitPoints;
public uint DamageResponse;
public List<DamageComponentDef> ReceiveCollisionDamage;
public uint StatusFxId;
public List<TurretComponentDef> Turrets;
public List<DeployableComponentDef> Deployables;
Expand Down
Loading