private void AddTree(Coordinates position) { var treeEntityId = GenerateId(); var spawnRotation = (uint)Mathf.CeilToInt((float)rand.NextDouble() * 360); snapshotEntities.Add(treeEntityId, EntityTemplateFactory.CreateTreeTemplate(position, spawnRotation)); }
private void AddHQs() { for (int teamId = 0; teamId < SimulationSettings.TeamHQLocations.Length; teamId++) { var hqentityId = GenerateId(); snapshotEntities.Add(hqentityId, EntityTemplateFactory.CreateHQEntitySnapShotTemplate(SimulationSettings.TeamHQLocations[teamId], 0, (uint)teamId)); } }
private void SpawnNpcsAroundPosition(Coordinates position, uint team) { float totalNpcs = SimulationSettings.HQStartingWizardsCount + SimulationSettings.HQStartingLumberjacksCount; float radiusFromHQ = SimulationSettings.HQSpawnRadius; for (int i = 0; i < totalNpcs; i++) { float x = radiusFromHQ * Mathf.Cos((i / totalNpcs) * 2 * Mathf.PI); float z = radiusFromHQ * Mathf.Sin((i / totalNpcs) * 2 * Mathf.PI); Coordinates coordinates = (position.ToVector3() + new Vector3(x, 0, z)).ToCoordinates(); if (i < SimulationSettings.HQStartingLumberjacksCount) { snapshotEntities.Add(GenerateId(), EntityTemplateFactory.CreateNPCLumberjackTemplate(coordinates, team)); } else { snapshotEntities.Add(GenerateId(), EntityTemplateFactory.CreateNPCWizardSnapshotTemplate(coordinates, team)); } } }
private void AddSimulationManagerEntity() { snapshotEntities.Add(GenerateId(), EntityTemplateFactory.CreateSimulationManagerEntitySnapshotTemplate(teamList)); }