public void SpawnRandomModule(int x, int y, int z) { ShipModule module = _wrapper.ShipModuleRepository.GetAll <ShipModule>(f => f.Id != null).OrderBy(o => Guid.NewGuid()).Take(1).First(); SpaceLoot loot = new SpaceLoot(); loot.X = x; loot.Y = y; loot.Z = z; loot.ShipModules.Add(module); _wrapper.SpaceLootRepository.AddOne(loot); }
public bool TractorSpecificLoot(Ship ship, string itemType, Guid itemId) { int itemsLooted = 0; var result = _wrapper.SpaceLootRepository.GetAll <SpaceLoot>(f => f.X == ship.X && f.Y == ship.Y && f.Z == ship.Z); _wrapper.SpaceLootRepository.DeleteMany <SpaceLoot>(result); List <SpaceLoot> spaceLootsToWrite = new List <SpaceLoot>(); foreach (var item in result) { SpaceLoot spaceLoot = new SpaceLoot(); spaceLoot.X = item.X; spaceLoot.Y = item.Y; spaceLoot.Z = item.Z; spaceLoot.ShipModules = new List <ShipModule>(); foreach (var module in item.ShipModules) { if (module.Id == itemId) { BankedShipModule lootedModule = new BankedShipModule(); lootedModule.PlayerId = ship.PlayerId; lootedModule.ShipId = ship.Id; lootedModule.ShipModule = module; _wrapper.SpaceLootRepository.AddOneAsync <BankedShipModule>(lootedModule); itemsLooted++; } else { spaceLoot.ShipModules.Add(module); } } spaceLootsToWrite.Add(spaceLoot); } _wrapper.SpaceLootRepository.AddMany <SpaceLoot>(spaceLootsToWrite); if (itemsLooted > 0) { return(true); } else { return(false); } }