コード例 #1
0
        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);
        }
コード例 #2
0
 public Llama(uint channelIndex, SupplyDropLlama drop)
 {
     Id                = channelIndex;
     Looted            = drop.Looted;
     LandingLocation   = drop.FinalDestination;
     Location          = drop.ReplicatedMovement?.Location;
     HasSpawnedPickups = drop.bHasSpawnedPickups;
 }
コード例 #3
0
        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;
            }
        }