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);
            });
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }
Example #5
0
 public void Setup()
 {
     Engine            = new BattleEngine();
     Engine.Round      = new RoundEngine();
     Engine.Round.Turn = new TurnEngine();
     //Engine.StartBattle(true);   // Start engine in auto battle mode
 }
Example #6
0
        /// <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);
            });
        }
Example #8
0
        public void BattleEngine_Instantiate_Should_Pass()
        {
            // Can create a new battle engine...
            var Actual = new BattleEngine();

            Assert.AreNotEqual(null, Actual, TestContext.CurrentContext.Test.Name);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
 public Form1(BattleEngine battleEngine)
 {
     this.battleEngine = battleEngine;
     battleEngine.StartBattle();
     InitializeComponent();
     ResetMenus();
 }
Example #12
0
 /// <summary>
 ///
 /// </summary>
 public SharpRobotsGame()
 {
     _graphics             = new GraphicsDeviceManager(this);
     _battleEngine         = new BattleEngine();
     Content.RootDirectory = "Content";
     _graphics.PreferredBackBufferWidth  = _currentWidth;
     _graphics.PreferredBackBufferHeight = _currentHeight;
 }
Example #13
0
        public ManualBattlePage(BattleEngine lastBattleEngine, RoundEnum lastRoundResult)
        {
            myBattleEngine = lastBattleEngine;
            BindingContext = myBattleEngine;
            RoundResult    = lastRoundResult;

            InitializeComponent();
        }
Example #14
0
 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;
 }
Example #15
0
        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);
        }
Example #16
0
        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);
        }
Example #17
0
        public void Setup()
        {
            Engine = new BattleEngine();

            Engine.Round.ClearLists();

            //Start the Engine in AutoBattle Mode
            Engine.StartBattle(true);
        }
Example #18
0
        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();
        }
Example #21
0
        /// <summary>
        ///
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            _gameEventTimer = new Timer {
                Interval = 35, Enabled = true
            };
            _gameEventTimer.Tick += NextGameFrame;
            _battleEngine         = new BattleEngine();

            Init();
        }
Example #22
0
        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);
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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();
            }
        }
Example #26
0
        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);
        }
Example #27
0
        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;
            }
        }
Example #28
0
        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);
        }
Example #29
0
 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);
 }
Example #30
0
 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);
     }
 }
Example #31
0
 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);
     }
 }
Example #32
0
        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);
        }
Example #33
0
        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();
        }
Example #34
0
 public BattleForm(BattleEngine.Game game)
 {
     InitializeComponent();
     this.game = game;
     this.game.Console = this;
 }
Example #35
0
 public void RemovePlayer(BattleEngine.Player.Player player)
 {
     this.players.Remove (player.Name);
     this.Console.ConsoleWriteLine (player.Summarize () + " removed");
 }
Example #36
0
 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);
     }
 }
Example #37
0
 public void SetPlayerOnMap(BattleEngine.Player.Player p, Location l)
 {
     this.check_location_bounds (l);
     this.player_locations.Add (p, l);
 }
Example #38
0
 public Location GetPlayerOnMap(BattleEngine.Player.Player p)
 {
     return this.player_locations[p];
 }
Example #39
0
 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;
 }
Example #40
0
 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);
     }
 }
Example #41
0
 public BattleRenderer(BattleEngine engine)
 {
     _engine = engine;
 }
Example #42
0
 public void AddPlayer(BattleEngine.Player.Player player)
 {
     this.players.Add (player.Name, player);
     this.Console.ConsoleWriteLine (player.Summarize ());
 }