コード例 #1
0
        public void NestedInventoriesSerializeAndDeserializeCorrectly()
        {
            var outerInventory = InventoryComponent.Create(20);

            var waterskin = Entity.Create("waterskinId", "waterskinName");

            waterskin.AddComponent(StorableComponent.Create());
            var waterskinInventory = InventoryComponent.Create(10);

            var nested = Entity.Create("nestedId", "nestedName");

            nested.AddComponent(StorableComponent.Create());

            waterskinInventory.AddEntity(nested);
            waterskin.AddComponent(waterskinInventory);

            outerInventory.AddEntity(waterskin);

            string saved        = outerInventory.Save();
            var    newComponent = InventoryComponent.Create(saved);

            Assert.Equal("waterskinId", newComponent._StoredEntities[0].EntityId);
            Assert.Equal("waterskinName", newComponent._StoredEntities[0].EntityName);
            Assert.NotNull(newComponent._StoredEntities[0].GetComponent <StorableComponent>());
            Assert.Equal("nestedId", newComponent._StoredEntities[0].GetComponent <InventoryComponent>()._StoredEntities[0].EntityId);
            Assert.Equal("nestedName", newComponent._StoredEntities[0].GetComponent <InventoryComponent>()._StoredEntities[0].EntityName);
        }
コード例 #2
0
        public void IncludesEntityGroup()
        {
            var         component    = InventoryComponent.Create(0);
            JsonElement deserialized = JsonSerializer.Deserialize <JsonElement>(component.Save());

            Assert.Equal(InventoryComponent.ENTITY_GROUP, deserialized.GetProperty("EntityGroup").GetString());
        }
コード例 #3
0
        public static Entity CreatePlayerEntity(int currentTick)
        {
            var e = CreateEntity(Guid.NewGuid().ToString(), "player");

            var statusEffectTrackerComponent = StatusEffectTrackerComponent.Create();

            e.AddComponent(ActionTimeComponent.Create(currentTick));
            e.AddComponent(CollisionComponent.Create(blocksMovement: true, blocksVision: false));
            e.AddComponent(DefenderComponent.Create(baseDefense: 0, maxHp: 100, isInvincible: false));
            e.AddComponent(DisplayComponent.Create(_texPlayerPath, "It's you!", false, ENTITY_Z_INDEX));
            e.AddComponent(InventoryComponent.Create(inventorySize: 26));
            e.AddComponent(OnDeathComponent.Create(new List <string>()
            {
                OnDeathEffectType.PLAYER_DEFEAT
            }));
            e.AddComponent(PlayerComponent.Create());
            e.AddComponent(SpeedComponent.Create(baseSpeed: 100));
            e.AddComponent(statusEffectTrackerComponent);
            e.AddComponent(XPTrackerComponent.Create(levelUpBase: 200, levelUpFactor: 150));

            return(e);
        }
コード例 #4
0
        public void SerializesAndDeserializesCorrectly()
        {
            var component = InventoryComponent.Create(91);

            var battery = EntityBuilder.CreateItemByEntityDefId(EntityDefId.ITEM_EXTRA_BATTERY);

            component.AddEntity(battery);
            var ductTape = EntityBuilder.CreateItemByEntityDefId(EntityDefId.ITEM_DUCT_TAPE);

            component.AddEntity(ductTape);
            var battery2 = EntityBuilder.CreateItemByEntityDefId(EntityDefId.ITEM_EXTRA_BATTERY);

            component.AddEntity(battery2);

            string saved        = component.Save();
            var    newComponent = InventoryComponent.Create(saved);

            Assert.Equal(component.InventorySize, newComponent.InventorySize);
            Assert.Equal(component.InventoryUsed, newComponent.InventoryUsed);
            var componentItems = new List <Entity>(component.StoredItems);
            var newItems       = new List <Entity>(newComponent.StoredItems);

            Assert.Equal(componentItems[0].EntityId, newItems[0].EntityId);
            Assert.True(newItems[0].GetComponent <UseEffectBoostPowerComponent>() != null);
            Assert.Equal(componentItems[0].GetComponent <UseEffectBoostPowerComponent>().Duration,
                         newItems[0].GetComponent <UseEffectBoostPowerComponent>().Duration);

            Assert.Equal(componentItems[1].EntityId, newItems[1].EntityId);
            Assert.True(newItems[1].GetComponent <UseEffectHealComponent>() != null);
            Assert.Equal(componentItems[1].GetComponent <UseEffectHealComponent>().Healpower,
                         newItems[1].GetComponent <UseEffectHealComponent>().Healpower);

            Assert.Equal(componentItems[2].EntityId, newItems[2].EntityId);
            Assert.True(newItems[2].GetComponent <UseEffectBoostPowerComponent>() != null);
            Assert.Equal(componentItems[2].GetComponent <UseEffectBoostPowerComponent>().Duration,
                         newItems[2].GetComponent <UseEffectBoostPowerComponent>().Duration);
        }