public GameMapGenerator(List <T> players) { if (players.Count <= 1 || players.Count > 12) { throw new ArgumentException("Number of players should be between 2 and 12!"); } _players = players; _entityFactory = new EntityFactory(); if (_players.Count == 4) { _powerUpGenerator = new DistanceBasedPowerUpGenerator(_entityFactory); } else { _powerUpGenerator = new RandomPowerUpGenerator(_entityFactory); } if (_players.Count <= 4) { MapSize = MapSizes.Small; } else if (_players.Count <= 8) { MapSize = MapSizes.Meduim; } else { MapSize = MapSizes.Large; } }
private void mapToolStripMenuItem_Click(object sender, EventArgs e) { if (sender is ToolStripMenuItem) { Maps map = (Maps)Enum.Parse(typeof(Maps), (string)(sender as ToolStripMenuItem).Tag); SetLocation(map, MapSizes.GetSize(map).Width / 2, MapSizes.GetSize(map).Height / 2); } }
public GameMap GenerateGameMap(MapSizes mapSize) { var mapSizeNumber = GetMapSize(mapSize); var playerOneName = _players[0].Name; var playerTwoName = _players[1].Name; var gameMap = new GameMap(playerOneName, playerTwoName, mapSizeNumber, mapSizeNumber); GeneratePlayers(gameMap); return(gameMap); }
private void Img_MouseDown(object sender, MouseEventArgs e) { var mapSize = MapSizes.GetSize((int)m_Map); var x = e.X * mapSize.Width / Img.Width; var y = e.Y * mapSize.Height / Img.Height; Pandora.Map.Map = m_Map; Pandora.Map.Center = new Point(x, y); }
private void Img_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { Size mapSize = MapSizes.GetSize((int)m_Map); int x = e.X * mapSize.Width / Img.Width; int y = e.Y * mapSize.Height / Img.Height; Pandora.Map.Map = m_Map; Pandora.Map.Center = new Point(x, y); }
// Start is called before the first frame update void Start() { if (setMapSizeScript) { mapSize = setMapSizeScript.SetMapSize(mapSize); } //Debug.Log("Starting Generate Map, Time in sec: " + Time.realtimeSinceStartup); GenerateMap(); //Debug.Log("finished Generate Map, Time in sec: " + Time.realtimeSinceStartup); }
public void PrepareGame(List <Player> players, MapSizes mapSize) { _gameMap = new GameMapGenerator(players).GenerateGameMap(mapSize); _gameComplete = false; _players = players; foreach (var player in _players) { player.CommandListener += player_CommandListener; } Logger.LogInfo("\tOK!"); }
private int GetMapSize(MapSizes mapSize) { switch (mapSize) { case MapSizes.Small: return(Settings.Default.SmallMapSize); case MapSizes.Medium: return(Settings.Default.MediumMapSize); default: return(Settings.Default.LargeMapSize); } }
private void locationsTreeView_AfterSelect(object sender, TreeViewEventArgs e) { object tag = locationsTreeView.SelectedNode.Tag; if (tag == null) { nameTextBox.Enabled = false; colorButton.Enabled = false; mapComboBox.Enabled = false; xNumericUpDown.Enabled = false; yNumericUpDown.Enabled = false; zNumericUpDown.Enabled = false; return; } else if (tag is ParentNode) { ParentNode node = tag as ParentNode; colorButton.Enabled = true; colorButton.BackColor = node.Color; nameTextBox.Text = node.Name; mapComboBox.Enabled = false; mapComboBox.SelectedIndex = -1; xNumericUpDown.Enabled = false; yNumericUpDown.Enabled = false; zNumericUpDown.Enabled = false; } else if (tag is ChildNode) { ChildNode node = tag as ChildNode; xNumericUpDown.Maximum = MapSizes.GetSize((int)node.Map).Width; yNumericUpDown.Maximum = MapSizes.GetSize((int)node.Map).Height; colorButton.Enabled = true; colorButton.BackColor = node.Color; nameTextBox.Text = node.Name; mapComboBox.Enabled = true; mapComboBox.SelectedIndex = (int)node.Map; xNumericUpDown.Enabled = true; xNumericUpDown.Value = node.X; yNumericUpDown.Enabled = true; yNumericUpDown.Value = node.Y; zNumericUpDown.Enabled = true; zNumericUpDown.Value = node.Z; } }
private void AddSpawns(Bitmap bmp) { var xscale = bmp.Width / (double)MapSizes.GetSize((int)m_Map).Width; var yscale = bmp.Height / (double)MapSizes.GetSize((int)m_Map).Height; var color = Pandora.Profile.Travel.SpawnColor; foreach (SpawnEntry spawn in SpawnData.SpawnProvider.Spawns) { if (spawn.Map == (int)m_Map) { var x = (int)(spawn.X * xscale); var y = (int)(spawn.Y * yscale); if (x >= 0 && y >= 0 && x < bmp.Width && y < bmp.Height) { bmp.SetPixel(x, y, color); } } } }
public GeneralTabViewModel(List <DowMap> addonMaps) { addonMaps.Sort(MapSort); AddonMaps = new ToggleItemListViewModel <DowMap>("Addon Maps"); AddonMaps.SetItems(addonMaps.Select(map => new ToggleItemViewModel <DowMap>(true) { Label = $"{map.Name} [{map.Size}]", Item = map })); Maps = new ToggleItemListViewModel <DowMap>("Maps"); Rules = new ToggleItemListViewModel <GameRule>("Win Conditions"); RefreshForMod = ReactiveCommand.CreateFromTask(async(int id) => { var(maps, rules) = await Observable.Start(() => { using var store = new ModsDataStore(); return(store.GetMaps(id).ToList(), store.GetRules(id).ToList()); }, RxApp.TaskpoolScheduler); maps.Sort(MapSort); Maps.SetItems(maps.Select(map => new ToggleItemViewModel <DowMap>(true) { Label = $"{map.Name} [{map.Size}]", Item = map })); Rules.SetItems(rules.Where(rule => rule.IsWinCondition) .Select(rule => new ToggleItemViewModel <GameRule>(true) { Label = rule.Name, Item = rule })); }); var sizeToToggle = new Dictionary <int, ToggleItemViewModel <int> >(); var playerToToggle = new Dictionary <int, ToggleItemViewModel <int> >(); ToggleMapPlayerFilter = ReactiveCommand.Create((ToggleItemViewModel <int> player) => { foreach (var map in Maps.Items.Concat(AddonMaps.Items)) { if (map.Item.Players == player.Item && sizeToToggle.GetValueOrDefault(map.Item.Size) is ToggleItemViewModel <int> size && size.IsToggled) { map.IsEnabled = player.IsToggled; } } }); ToggleMapSizeFilter = ReactiveCommand.Create((ToggleItemViewModel <int> size) => { foreach (var map in Maps.Items.Concat(AddonMaps.Items)) { if (map.Item.Size == size.Item && playerToToggle.GetValueOrDefault(map.Item.Players) is ToggleItemViewModel <int> players && players.IsToggled) { map.IsEnabled = size.IsToggled; } } }); foreach (var players in Enumerable.Range(2, 7)) { var item = new ToggleItemViewModel <int>(true) { Label = $"{players}p", Item = players }; MapTypes.Add(item); playerToToggle.Add(players, item); item.WhenAnyValue(x => x.IsToggled) .DistinctUntilChanged() .Select(x => item) .InvokeCommand(ToggleMapPlayerFilter); } foreach (int size in Enum.GetValues(typeof(MapSize))) { var item = new ToggleItemViewModel <int>(true) { Label = size.ToString(), Item = size }; MapSizes.Add(item); sizeToToggle.Add(size, item); item.WhenAnyValue(x => x.IsToggled) .DistinctUntilChanged() .Select(x => item) .InvokeCommand(ToggleMapSizeFilter); } this.WhenAnyValue(x => x.Mod) .Where(mod => mod != null) .Select(mod => mod.Id) .DistinctUntilChanged() .InvokeCommand(RefreshForMod); }
/// <summary> /// Paint the image and the clients /// </summary> protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (m_Image == null) { return; } var xBlocks = MapSizes.GetSize(m_Map).Width / 32; var yBlocks = MapSizes.GetSize(m_Map).Height / 32; m_Grid = new bool[xBlocks, yBlocks]; m_Table.Clear(); foreach (var client in m_Clients) { if (client.Map == m_Map) { var x = client.X / 32; var y = client.Y / 32; m_Grid[x, y] = true; // Issue 10 - Update the code to Net Framework 3.5 - http://code.google.com/p/pandorasbox3/issues/detail?id=10 - Smjert List <ClientEntry> current; m_Table.TryGetValue(new Point(x, y), out current); // Issue 10 - End if (current != null) { current.Add(client); } else { // Issue 10 - Update the code to Net Framework 3.5 - http://code.google.com/p/pandorasbox3/issues/detail?id=10 - Smjert current = new List <ClientEntry>(); current.Add(client); // Issue 10 - End m_Table[new Point(x, y)] = current; } } } // Draw the image e.Graphics.DrawImage(m_Image, 8, 40, m_Image.Width, m_Image.Height); // Draw the backgrounds for (var x = 0; x < xBlocks; x++) { for (var y = 0; y < yBlocks; y++) { if (m_Grid[x, y]) { // Issue 10 - Update the code to Net Framework 3.5 - http://code.google.com/p/pandorasbox3/issues/detail?id=10 - Smjert Point p; if (m_Table.ContainsKey(p = new Point(x, y))) { var count = m_Table[p].Count; Brush backGridBrush = new SolidBrush(Color.Yellow); // Draw this background e.Graphics.FillRectangle(backGridBrush, 8 + x * 4, 40 + y * 4, 4, 4); backGridBrush.Dispose(); } // Issue 10 - End } } } }