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); }
public void IncludesEntityGroup() { var component = InventoryComponent.Create(0); JsonElement deserialized = JsonSerializer.Deserialize <JsonElement>(component.Save()); Assert.Equal(InventoryComponent.ENTITY_GROUP, deserialized.GetProperty("EntityGroup").GetString()); }
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); }
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); }