public BattleViewModel() { Title = "MellowFoxBattle"; SelectedCharacters = new ObservableCollection <Character>(); //Title = "Characters"; //Not showing up on the screen DatasetChars = new ObservableCollection <Character>(); DatasetMons = new ObservableCollection <Monster>(); DatasetItems = new ObservableCollection <Item>(); LoadDataCommand = new Command(async() => await ExecuteLoadDataCommand()); //battle engine BattleEngine = new BattleEngine(); // Load Data ExecuteLoadDataCommand().GetAwaiter().GetResult(); MessagingCenter.Subscribe <SelectCharacters, Character>(this, "AddSelectedCharacter", async(obj, data) => { SelectedListAdd(data); }); MessagingCenter.Subscribe <SelectCharacters, Character>(this, "RemoveSelectedCharacter", async(obj, data) => { SelectedListRemove(data); }); }
public void BattleEngine_AutoBattle_With_No_Initial_Characters_Should_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); // Add new myCharacters in automaticaly // Characters are Level 1 // Monsters are Level 1 // Monsters will kill Characters in round 1. // Turn off random numbers // For a hit on everything... GameGlobals.SetForcedRandomNumbers(1, 20); // Needs to be 20 so monsters always score a hit... MasterDataStore.ForceDataRestoreAll(); myBattleEngine.AutoBattle(); // Reset GameGlobals.ToggleRandomState(); var Actual = myBattleEngine.BattleScore; Assert.AreNotEqual(1, Actual.RoundCount, "Round Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(null, Actual, "Score Object " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ExperienceGainedTotal, "Experience " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.TurnCount, "Turn Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ScoreTotal, "Score Total " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.ItemsDroppedList, "Items Dropped " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.MonstersKilledList, "Monsters Killed " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.CharacterAtDeathList, "Character List " + TestContext.CurrentContext.Test.Name); }
/// <summary> /// Setup Console and battle engine /// </summary> private static void Init() { Console.TreatControlCAsInput = false; Console.CancelKeyPress += CtrlCHandler; Console.CursorVisible = false; Console.Title = "Sharp Robots"; // Change the console size Console.WindowWidth = ScreenWidth; Console.WindowHeight = ScreenHeight; _battleEngine = new BattleEngine(); // Determine proper scaling ratio from the robots world coordinates to the screen coordinates // Screen width 80 / Battle Field width 1000 = 0.08 // Screen height 24 / Battle Field height 1000 = 0.024 _scaleX = (double)ArenaWidth / Arena.ArenaWidth; _scaleY = (double)ArenaHeight / Arena.ArenaHeight; // Render the right Wall for (int y = 0; y < ArenaHeight; y++) { Console.SetCursorPosition(ArenaWidth, y); Console.Write("|"); } }
public void Setup() { Engine = new BattleEngine(); //Start the Engine in AutoBattle Mode Engine.StartBattle(true); }
public void Setup() { Engine = new BattleEngine(); Engine.Round = new RoundEngine(); Engine.Round.Turn = new TurnEngine(); //Engine.StartBattle(true); // Start engine in auto battle mode }
/// <summary> /// Jump to the Dungeon /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async void AutobattleButton_Clicked(object sender, EventArgs e) { // Run the Autobattle simulation from here // Call to the Score Page //await Navigation.PushModalAsync(new NavigationPage(new ScorePage())); // Battle testing List <CharacterModel> testFighter = new List <CharacterModel>(); //testFighter.Add(new CharacterModel //{ // Name = "The Delinquent", // MaxHealth = 20, // CurrentHealth = 20, // Level = 1, // Description = "The mischief class skipper. Low in defense but high in attack", // ImageURI = "https://clipartart.com/images/sleeping-at-school-clipart.png", // DefenseAttribute = 1, // OffenseAttribute = 2, // SpeedAttribute = 1, // Skill = CreatureSkillEnum.None, // //Equipments = equipments //}); BattleEngine battle = new BattleEngine(); battle.Referee.AutoBattleEnabled = true; battle.startBattle(); }
// Constructor. public BattleViewModel() { Title = "Battle"; SelectedCharacters = new ObservableCollection <Character>(); AvailableCharacters = new ObservableCollection <Character>(); SelectedMonsters = new ObservableCollection <Monster>(); LoadDataCommand = new Command(async() => await ExecuteLoadDataCommand()); BattleEngine = new BattleEngine(); BattleEngine.BattleEngineClearData(); // Load Data ExecuteLoadDataCommand().GetAwaiter().GetResult(); MessagingCenter.Subscribe <OpeningPage, Character>(this, "AddSelectedCharacter", async(obj, data) => { SelectedListAdd(data); }); MessagingCenter.Subscribe <OpeningPage, Character>(this, "RemoveSelectedCharacter", async(obj, data) => { SelectedListRemove(data); }); }
public void BattleEngine_Instantiate_Should_Pass() { // Can create a new battle engine... var Actual = new BattleEngine(); Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name); }
public void BattleEngine_StartBattle_With_Six_Characters_Should_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); var myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myBattleEngine.CharacterList.Add(myCharacter); myBattleEngine.StartBattle(true); var Actual = myBattleEngine.GetAutoBattleState(); var Expected = true; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
private void HandleCharacterSelectionMessage(String address, AbstractMessage message) { CharacterSelectionMessage characterSelectionMessage = (CharacterSelectionMessage)message; Player currentPlayer = controller.GetPlayer(IPAddress.Parse(address)); currentPlayer.ClearCharacters(); foreach (String rootName in characterSelectionMessage.SelectedCharacters) { currentPlayer.AddCharacter(Bundle.Characters[rootName]); } foreach (Player player in controller.GetPlayers()) { if (player.GetCharacters().Count == 0) { controller.Server.SendData(currentPlayer.IPAddress, new WaitingOponentMessage()); return; } } BattleEngine.Initialize(controller.GetLocalPlayer(), controller.GetRemotePlayer()); StartGameMessage startGameMessage = new StartGameMessage(); serverStatus = ServerStatus.WaitingCharacterPosition; controller.Server.SendToAll(startGameMessage); }
public Form1(BattleEngine battleEngine) { this.battleEngine = battleEngine; battleEngine.StartBattle(); InitializeComponent(); ResetMenus(); }
/// <summary> /// /// </summary> public SharpRobotsGame() { _graphics = new GraphicsDeviceManager(this); _battleEngine = new BattleEngine(); Content.RootDirectory = "Content"; _graphics.PreferredBackBufferWidth = _currentWidth; _graphics.PreferredBackBufferHeight = _currentHeight; }
public ManualBattlePage(BattleEngine lastBattleEngine, RoundEnum lastRoundResult) { myBattleEngine = lastBattleEngine; BindingContext = myBattleEngine; RoundResult = lastRoundResult; InitializeComponent(); }
public void Init(BattleEngine.Game game) { this.game = game; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); this.battle_form = new BattleForm(this.game); this.game.BattleGui = this; }
public void BattleEngine_AutoBattle_With_Six_Characters_Should_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); var myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 1"; myCharacter.ScaleLevel(1); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 2"; myCharacter.ScaleLevel(2); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 3"; myCharacter.ScaleLevel(3); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 4"; myCharacter.ScaleLevel(4); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 5"; myCharacter.ScaleLevel(5); myBattleEngine.CharacterList.Add(myCharacter); myCharacter = new Character(DefaultModels.CharacterDefault()); myCharacter.Name = "Fighter 6"; myCharacter.ScaleLevel(6); myBattleEngine.CharacterList.Add(myCharacter); // Turn off random numbers // For a hit on everything... GameGlobals.SetForcedRandomNumbers(1, 20); myBattleEngine.AutoBattle(); // Reset GameGlobals.ToggleRandomState(); var Actual = myBattleEngine.BattleScore; Assert.AreNotEqual(null, Actual, "Score Object " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ExperienceGainedTotal, "Experience " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.RoundCount, "Round Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.TurnCount, "Turn Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ScoreTotal, "Score Total " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.ItemsDroppedList, "Items Dropped " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.MonstersKilledList, "Monsters Killed " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.CharacterAtDeathList, "Character List " + TestContext.CurrentContext.Test.Name); }
public void BattleEngine_AutoBattle_With_Characters_Level_2_Should_Level_Up_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); // Turn off random numbers // For a hit on everything... GameGlobals.SetForcedRandomNumbers(1, 20); // Needs to be 20 so monsters always score a hit... MasterDataStore.ForceDataRestoreAll(); // Add new Characters in automaticaly // Characters are Level 2 // Monsters are Level 1 // Characters have weapons... // Use 6 existing Characters. This will go for a few rounds. var myLevel = 3; var myCharacter = myBattleEngine.GetRandomCharacter(myLevel, myLevel); myCharacter.Attribute.MaxHealth = 100; myCharacter.Attribute.CurrentHealth = 100; // Set them just below the next level, so they level up... myCharacter.ExperienceTotal = LevelTable.Instance.LevelDetailsList[myLevel + 1].Experience - 1; for (var count = 1; count < 7; count++) { var myNewCharacter = new Character(myCharacter); myNewCharacter.Name = "Fighter " + count; myBattleEngine.CharacterList.Add(myNewCharacter); } var TempDamageBonusValue = GameGlobals.ForceCharacterDamangeBonusValue; // Make myCharacter s hit really really hard... GameGlobals.ForceCharacterDamangeBonusValue = 100; myBattleEngine.AutoBattle(); // Reset GameGlobals.ToggleRandomState(); GameGlobals.ForceCharacterDamangeBonusValue = TempDamageBonusValue; var Actual = myBattleEngine.BattleScore; Assert.AreNotEqual(1, Actual.RoundCount, "Round Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(null, Actual, "Score Object " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ExperienceGainedTotal, "Experience " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.TurnCount, "Turn Count " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(0, Actual.ScoreTotal, "Score Total " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.ItemsDroppedList, "Items Dropped " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.MonstersKilledList, "Monsters Killed " + TestContext.CurrentContext.Test.Name); Assert.AreNotEqual(string.Empty, Actual.CharacterAtDeathList, "Character List " + TestContext.CurrentContext.Test.Name); }
public void Setup() { Engine = new BattleEngine(); Engine.Round.ClearLists(); //Start the Engine in AutoBattle Mode Engine.StartBattle(true); }
public ManualBattlePage() { myBattleEngine = new BattleEngine(); BattleEngineInit(); BindingContext = myBattleEngine; RoundResult = RoundEnum.Unknown; InitializeComponent(); }
public void Setup() { Engine = new BattleEngine(); //Start the Engine in AutoBattle Mode Engine.StartBattle(true); //EngineViewModel.Engine.BattleSettingsModel.CharacterHitEnum = HitStatusEnum.Default; //EngineViewModel.Engine.BattleSettingsModel.MonsterHitEnum = HitStatusEnum.Default; }
public void Setup() { Engine = new BattleEngine(); Engine.Round.ClearLists(); //Start the Engine in AutoBattle Mode Engine.StartBattle(true); BattleEngineViewModel.Instance.SetBattleEngineToKoenig(); }
/// <summary> /// /// </summary> public MainForm() { InitializeComponent(); _gameEventTimer = new Timer { Interval = 35, Enabled = true }; _gameEventTimer.Tick += NextGameFrame; _battleEngine = new BattleEngine(); Init(); }
public void BattleEngine_StartBattle_Flag_Should_Pass() { // Can create a new battle engine... var myBattleEngine = new BattleEngine(); myBattleEngine.StartBattle(true); var Actual = myBattleEngine.GetAutoBattleState(); var Expected = true; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void BattleEngine_StartBattle_With_No_Characters_Should_Skip() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); var Actual = myBattleEngine.StartBattle(false); var Expected = false; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void AutoBattleEngine_AddCharactersToBattle_Count_is_6_Should_Pass() { // Arrange var myEngine = new BattleEngine(); var Expected = true; // Act var Actual = myEngine.AddCharactersToBattle(); // Assert that it's not null. Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
private void HandleCharacterPositionMessage(String address, AbstractMessage message) { CharacterPositionMessage characterPositionMessage = (CharacterPositionMessage)message; Player currentPlayer = controller.GetPlayer(IPAddress.Parse(address)); if (serverStatus != ServerStatus.WaitingCharacterPosition || currentPlayer.Ready) { return; } foreach (String characterName in characterPositionMessage.CharactersPosition.Keys) { currentPlayer.GetCharacter(characterName).MapLocation = characterPositionMessage.CharactersPosition[characterName]; } foreach (Player player in controller.GetPlayers()) { if (player.IPAddress != currentPlayer.IPAddress) { controller.Server.SendData(player.IPAddress, message); } } currentPlayer.Ready = true; bool ready = true; foreach (Player player in controller.GetPlayers()) { if (!player.Ready) { ready = false; } } if (ready) { StartBattleMessage startBattleMessage = new StartBattleMessage(); BattleEngine battleEngine = BattleEngine.GetInstance(); serverStatus = ServerStatus.Game; battleEngine.NextCharacterTurn(); startBattleMessage.Turn = new Turn(battleEngine.ActualCharacter.RootName, battleEngine.ActualPlayer, false); startBattleMessage.Affects = ConvertEffectsToArray(battleEngine.ProcessSpecialAbilities()); controller.Server.SendToAll(startBattleMessage); battleEngine.ClearAffects(); } }
public void BattleEngine_AddCharactersToBattle_With_No_Characters_Should_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); var Return = myBattleEngine.AddCharactersToBattle(); var Actual = myBattleEngine.CharacterList.Count; var Expected = 6; Assert.AreEqual(true, Return, " Pass Fail " + TestContext.CurrentContext.Test.Name); Assert.AreEqual(Expected, Actual, " Count " + TestContext.CurrentContext.Test.Name); }
private void HandleActionMessage(String address, AbstractMessage message) { Player currentPlayer = controller.GetPlayer(IPAddress.Parse(address)); BattleEngine battleEngine = BattleEngine.GetInstance(); ActionMessage actionMessage = (ActionMessage)message; UpdateMessage updateMesssage = new UpdateMessage(); // Valide o jogador: Caso não seja o turno do jogador, descarte a mensagem if (currentPlayer.Name != battleEngine.ActualPlayer) { return; } actionMessage.PlayerName = currentPlayer.Name; if (actionMessage is ActionMessageFinish) { ActionMessageFinish finishMessage = (ActionMessageFinish)actionMessage; battleEngine.LastAction = LastAction.Passed; } else if (actionMessage is ActionMessageWalk) { ActionMessageWalk walkMessage = (ActionMessageWalk)actionMessage; walkMessage.Actor = battleEngine.ActualCharacter.RootName; battleEngine.ActualCharacterHasWalked = true; battleEngine.LastAction = LastAction.Walked; } else if (actionMessage is ActionMessageAttack) { ActionMessageAttack attackMessage = (ActionMessageAttack)actionMessage; attackMessage.Actor = battleEngine.ActualCharacter.RootName; AttackEvent attackEvent = battleEngine.ProcessAttack(attackMessage.TargetPlayer, attackMessage.Target); attackMessage.Damage = attackEvent.Damage; attackMessage.CounterAttack = attackEvent.CounterAttack; attackMessage.CounterDamage = attackEvent.CounterDamage; battleEngine.LastAction = LastAction.Attacked; } actionMessage.PlayerName = currentPlayer.Name; updateMesssage.Action = actionMessage; controller.Server.SendToAll(updateMesssage); foreach (Player player in controller.GetPlayers()) { player.Ready = false; } }
public void BattleEngine_AutoBattle_With_No_Characters_Should_Fail() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); // Clear the dataset... CharactersViewModel.Instance.Dataset.Clear(); var Actual = myBattleEngine.AutoBattle(); var Expected = false; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void MovePlayerToTarget(BattleEngine.Player.Player p, double distance, BattleEngine.Player.Player t) { Location pl = this.player_locations[p]; Location tl = this.player_locations[t]; int dx = Convert.ToInt32(distance/2.0); int dy = Convert.ToInt32(distance) - dx; if (pl.X < tl.X) pl.X += Convert.ToInt32(dx); else pl.X -= Convert.ToInt32(dx); if (pl.Y < tl.Y) pl.Y += Convert.ToInt32(dy); else pl.Y -= Convert.ToInt32(dy); }
void Awake() { Instance = this; Parameters.JumpingGravity = -8 * Parameters.JumpingHeight / (Parameters.JumpingTime * Parameters.JumpingTime); Screen.sleepTimeout = SleepTimeout.NeverSleep; if (UManager.Instance)//联机模式 { IsHost = false; } else//单机测试模式 { IsHost = true; var go = PrefabHelper.InstantiateAndReset(PlayerUnitPrefab, null); } }
public void BattleEngine_EndBattle_Should_Pass() { MockForms.Init(); // Can create a new battle engine... var myBattleEngine = new BattleEngine(); myBattleEngine.StartBattle(true); myBattleEngine.EndBattle(); var Actual = myBattleEngine.BattleRunningState(); var Expected = false; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
protected override void Initialize() { if (isOnline) { client = new NetworkClient(this); } anim = new List <SceneAnimation>(); engine = new BattleEngine(); ai = new Badai(this); engine.Player2.ActiveCreature.CreatureType.BaseStats[CreatureStats.PACE] -= 1; engine.Player2.ActiveCreature.CreatureType.BaseStats[CreatureStats.AWE] -= 1; base.Initialize(); }
public BattleForm(BattleEngine.Game game) { InitializeComponent(); this.game = game; this.game.Console = this; }
public void RemovePlayer(BattleEngine.Player.Player player) { this.players.Remove (player.Name); this.Console.ConsoleWriteLine (player.Summarize () + " removed"); }
private void attack(BattleEngine.Player.Player source, BattleEngine.Player.Player target) { string details = string.Format ("<u>Round {0}</u>: <i>{1}</i> is <b>attacking</b> <i>{2}</i>", this.round, source.Name, target.Name); this.BattleGui.ShowAttackDialog (details); Location sloc = this.GameMap.GetPlayerOnMap (source); Location tloc = this.GameMap.GetPlayerOnMap (target); double dist = sloc.DistanceTo (tloc); int range = source.GetAttribute ("Range").Current; if ((double)dist <= range) { int attackroll = source.ThrowForAttack (); int defenseroll = target.ThrowForDefense (); this.Console.ConsoleWrite (string.Format ("\t\"{0}\" attack rolls {1} at a distance of {2} with range {3}", source.Name, attackroll, dist, range)); this.Console.ConsoleWrite (string.Format (" : \"{0}\" defense rolls {1}", target.Name, defenseroll)); if (attackroll >= defenseroll) { this.Console.ConsoleWrite (" HIT"); int power = source.RollDamage (); this.Console.ConsoleWrite (string.Format (" for {0} damage", power)); int armor = target.GetAttribute("Armor").Current; int damage = armor - power; if (damage < 0) { target.TakeDamage (damage); this.Console.ConsoleWriteLine(string.Format(" \"{0}\" took {1} damage leaving {2} armor", target.Name, damage, target.GetAttribute("Armor").Current)); } else { this.Console.ConsoleWriteLine(string.Format(" \"{0}\" took no damage \"{1}\" could not penetrate armor of {2}", target.Name, source.Name, target.GetAttribute ("Armor").Current)); } } else { this.Console.ConsoleWriteLine (" MISSED"); } } else { this.Console.ConsoleWriteLine (string.Format ("\tOUT OF RANGE: \"{0}\" is {1} meters away from \"{2}\"", target.Name, dist, source.Name)); int move = source.GetAttribute ("Speed").Current; this.Console.ConsoleWriteLine (string.Format ("{0} closing {1} meters", source.Name, move)); this.GameMap.MovePlayerToTarget (source, move, target); } }
public void SetPlayerOnMap(BattleEngine.Player.Player p, Location l) { this.check_location_bounds (l); this.player_locations.Add (p, l); }
public Location GetPlayerOnMap(BattleEngine.Player.Player p) { return this.player_locations[p]; }
private BattleEngine.Player.Player pick_target_by_shortest_distance(BattleEngine.Player.Player source) { List<BattleEngine.Player.Player> potential_targets = new List<BattleEngine.Player.Player>(); foreach (BattleEngine.Player.Player p in this.players.Values) { if ((source != p) && (!p.IsDead())) potential_targets.Add (p); } if (potential_targets.Count < 1) throw new Exception ("No potential targets!"); Location myloc = this.GameMap.GetPlayerOnMap (source); Dictionary<BattleEngine.Player.Player, double> distances = new Dictionary<BattleEngine.Player.Player, double>(); foreach (BattleEngine.Player.Player target in potential_targets) { Location tgtloc = this.GameMap.GetPlayerOnMap(target); distances.Add (target, myloc.DistanceTo (tgtloc)); } double lowest_dist = (double)(this.GameMap.Length + this.GameMap.Width + this.GameMap.Height) * 2; BattleEngine.Player.Player target_player = null; foreach (KeyValuePair<BattleEngine.Player.Player, double> kvp in distances) { this.Console.ConsoleWriteLine (string.Format("\"{0}\" distance to \"{1}\" is {2}", source.Name, kvp.Key.Name, kvp.Value)); if (kvp.Value < lowest_dist) { lowest_dist = kvp.Value; target_player = kvp.Key; } } return target_player; }
private void roll_players_attributes(BattleEngine.Player.Player p) { int min_stat = 8; double total = 0.0; int rolls = 0; double seeking = (6.0 * (double)min_stat); while (total < seeking) { rolls++; total = (double) p.RollAttributes(this.RandomEngine); } }
public BattleRenderer(BattleEngine engine) { _engine = engine; }
public void AddPlayer(BattleEngine.Player.Player player) { this.players.Add (player.Name, player); this.Console.ConsoleWriteLine (player.Summarize ()); }