public void LlamaTest() { var llama = new SupplyDropLlama() { FinalDestination = new FVector(1, 2, 3), Looted = true }; builder.UpdateLlama(1, llama); builder.Build(replay); var addedLlama = replay.MapData.Llamas.First(); Assert.Equal(1u, addedLlama.Id); Assert.Equal(llama.Looted, addedLlama.Looted); Assert.Equal(llama.FinalDestination, addedLlama.LandingLocation); var newLlama = new SupplyDropLlama() { FinalDestination = new FVector(3, 2, 1) }; builder.UpdateLlama(1, newLlama); Assert.Equal(llama.FinalDestination, addedLlama.LandingLocation); builder.UpdateLlama(2, newLlama); builder.Build(replay); Assert.Equal(2, replay.MapData.Llamas.Count); }
public Llama(uint channelIndex, SupplyDropLlama drop) { Id = channelIndex; Looted = drop.Looted; LandingLocation = drop.FinalDestination; Location = drop.ReplicatedMovement?.Location; HasSpawnedPickups = drop.bHasSpawnedPickups; }
public void UpdateLlama(uint channelIndex, SupplyDropLlama supplyDropLlama) { if (!_llamas.TryGetValue(channelIndex, out var llama)) { llama = new Llama(channelIndex, supplyDropLlama); MapData.Llamas.Add(llama); _llamas.Add(channelIndex, llama); return; } if (supplyDropLlama.Looted) { llama.Looted = true; llama.LootedTime = ReplicatedWorldTimeSeconds; } if (supplyDropLlama.bHasSpawnedPickups) { llama.HasSpawnedPickups = true; } }