public void GenerateNewScene(ISceneForSceneGenerator scene, IEnumerable <IPlayer> players, int seed) { Tile[][] sceneTiles = scene.SetupEmptyTileSet(20, 20); for (int x = 0; x < sceneTiles.Length; x++) { for (int y = 0; y < sceneTiles[x].Length; y++) { scene.CreateTile(tileSet[x, y], x, y, null); } } List <IPlayer> tempPlayers = players.ToList(); if (tempPlayers.Count != 2) { throw new ArgumentException("Players count should be 2", "players"); } for (int i = 0; i < 2; i++) { if (tempPlayers[i].KeyActorsGen.Count > 5) { throw new ArgumentException("Actors count should be less than 5. Thrown on player " + tempPlayers[i].Id, "players.keyActors"); } Player tempScenePlayer = GeneratorHelper.ConvertExternalPlayerFromGeneration(scene, tempPlayers[i], i); for (int j = 0; j < tempPlayers[i].KeyActorsGen.Count; j++) { tempScenePlayer.KeyActors.Add(GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempScenePlayer, sceneTiles[1 + (i * 17)][2 + (j * 2)], tempPlayers[i].KeyActorsGen[j], null)); } } }
public static Actor ConvertExternalActorFromGeneration(ISceneForSceneGenerator scene, Player player, Tile target, ForExternalUse.Generation.ObjectInterfaces.IActor actor, float?z) { Actor newActor = scene.CreateActor( player, actor.ExternalId, actor.NativeId, new RoleModelNative(scene.NativeManager, null, actor.Strength, actor.Willpower, actor.Constitution, actor.Speed, actor.ActionPointsIncome, actor.AttackingSkillName, actor.SkillNames.ToArray()), target, null, null, z); if (actor.StartBuffs != null) { foreach (string buffName in actor.StartBuffs) { newActor.BuffManager.AddBuff(new Buff(newActor.BuffManager, scene.NativeManager.GetBuffNative(buffName), null, null)); } } return(newActor); }
public void GenerateNewScene(ISceneForSceneGenerator scene, IEnumerable <IPlayer> players, int seed) { var positions = DefaultSceneForDuel.FillScene(scene, out Tile[][] sceneTiles); List <IPlayer> tempPlayers = players.ToList(); if (tempPlayers.Count != 2) { throw new ArgumentException("Players count should be 2", "players"); } var iterator = 0; var tempPlayersForScene = tempPlayers.Select(player => { iterator++; if (player.KeyActorsGen.Count != 3) { throw new ArgumentException("Actors count should be 3. Thrown on player " + player.Id, "players.keyActors"); } return(GeneratorHelper.ConvertExternalPlayerFromGeneration(scene, player, iterator)); }).ToList(); tempPlayersForScene[0].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[0].x][positions[0].y], tempPlayers[0].KeyActorsGen[0], null)); tempPlayersForScene[0].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[1].x][positions[1].y], tempPlayers[0].KeyActorsGen[1], null)); tempPlayersForScene[0].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[2].x][positions[2].y], tempPlayers[0].KeyActorsGen[2], null)); tempPlayersForScene[1].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[3].x][positions[3].y], tempPlayers[1].KeyActorsGen[0], null)); tempPlayersForScene[1].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[4].x][positions[4].y], tempPlayers[1].KeyActorsGen[1], null)); tempPlayersForScene[1].KeyActors.Add( GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[5].x][positions[5].y], tempPlayers[1].KeyActorsGen[2], null)); }
public static Player ConvertExternalPlayerFromGeneration(ISceneForSceneGenerator scene, ForExternalUse.Generation.ObjectInterfaces.IPlayer player, int?team) { return(scene.CreatePlayer(player.Id, player.UserId, team)); }