コード例 #1
0
        private static string BattleRound(ICharacter char1, ICharacter char2, ICombatHandler combatHandler)
        {
            var attackResultsChar1 = AttackSequence(char1, char2, combatHandler);
            var attackResultsChar2 = AttackSequence(char2, char1, combatHandler);

            return(attackResultsChar1 + attackResultsChar2);
        }
コード例 #2
0
        public void SetUp()
        {
            _mockChar1    = new Mock <ICharacter>();
            _mockChar2    = new Mock <ICharacter>();
            _mockDice     = new Mock <IDiceRoller>();
            combatHandler = new CombatHandler(_mockDice.Object);

            _mockChar1.Setup(c => c.Strength).Returns(16);
            _mockChar2.Setup(c => c.Constitution).Returns(14);
        }
コード例 #3
0
ファイル: Unit.cs プロジェクト: simooo93/Exams
 protected Unit(int x, int y, string name, ICombatHandler combatHandler,int range,int attackPoints, int healthPoints, int defensePoints, int energyPoints)
 {
     this.X = x;
     this.Y = y;
     this.Name = name;
     this.Range = range;
     this.AttackPoints = attackPoints;
     this.HealthPoints = healthPoints;
     this.DefensePoints = defensePoints;
     this.EnergyPoints = energyPoints;
     this.CombatHandler = combatHandler;
 }
コード例 #4
0
 public Mage(int x, int y, string name, int range, int attackPoints, int healthPoints, int defensePoints, int energyPoints, ICombatHandler combatHandler)
 {
     AttackPoints = 80;
     DefensePoints = 40;
     X = x;
     Y = y;
     Name = name;
     Range = 2;
     HealthPoints = 80;
     EnergyPoints = 120;
     CombatHandler = combatHandler;
 }
コード例 #5
0
        private static void BattleRound(ICharacter char1, ICharacter char2, ICombatHandler combatHandler, int roundNumber)
        {
            Console.WriteLine();
            Console.WriteLine(string.Format("Round {0}", roundNumber));
            Console.WriteLine();

            ShowLife(char1);
            ShowLife(char2);
            Console.WriteLine();

            AttackSequence(char1, char2, combatHandler);
            AttackSequence(char2, char1, combatHandler);
        }
コード例 #6
0
ファイル: Unit.cs プロジェクト: zlatkovtv/SoftUni_OOP
 protected Unit(int x, int y, string name, int range, int attackPoints, int healthPoints, int defensePoints, int energyPoints, ICombatHandler combatHandler, UnitType type)
 {
     X = x;
     Y = y;
     Name = name;
     Range = range;
     AttackPoints = attackPoints;
     HealthPoints = healthPoints;
     DefensePoints = defensePoints;
     EnergyPoints = energyPoints;
     CombatHandler = combatHandler;
     Type = type;
 }
コード例 #7
0
        private static void AttackSequence(ICharacter attacker, ICharacter defender, ICombatHandler combatHandler)
        {
            var damageTaken = combatHandler.GetAttackRoundDamage(attacker, defender);

            defender.TakeDamage(damageTaken);

            Console.WriteLine(string.Format("{0} attacks!", attacker.Name));
            System.Threading.Thread.Sleep(1000);
            Console.WriteLine(combatHandler.LastAttackStatus);
            if (damageTaken > 0)
            {
                Console.WriteLine(string.Format("{0} has lost {1} life points.", defender.Name, damageTaken));
            }
            Console.WriteLine();
        }
コード例 #8
0
 private static void DoBattle(ICharacter char1, ICharacter char2, ICombatHandler combatHandler, int roundNumber)
 {
     while (combatHandler.AreCharactersAlive(char1, char2))
     {
         roundNumber += 1;
         BattleRound(char1, char2, combatHandler);
     }
     if (char1.Life < 1)
     {
         PlayHeroDeathRattle(char1);
     }
     else
     {
         PlayVillainDeathRattle(char2);
     }
 }
コード例 #9
0
 protected Unit(int x, int y,
                string name,
                int attackPoints,
                int healthPoints,
                int defensePoints,
                int energyPoints,
                int range,
                ICombatHandler combatHandler)
 {
     this.X                  = x;
     this.Y                  = y;
     this.Name               = name;
     this.HealthPoints       = healthPoints;
     this.AttackPoints       = attackPoints;
     this.DefensePoints      = defensePoints;
     this.EnergyPoints       = energyPoints;
     this.Range              = range;
     this.CombatHandler      = combatHandler;
     this.CombatHandler.Unit = this;
 }
コード例 #10
0
        private static string AttackSequence(ICharacter attacker, ICharacter defender, ICombatHandler combatHandler)
        {
            var damageTaken = combatHandler.GetAttackRoundDamage(attacker, defender);

            defender.TakeDamage(damageTaken);

            var sb = new StringBuilder();

            sb.Append(string.Format("{0} attacks!", attacker.Name));
            sb.Append("\n");
            sb.Append(combatHandler.LastAttackStatus);
            if (damageTaken > 0)
            {
                sb.AppendLine(string.Format("{0} has lost {1} life points.", defender.Name, damageTaken));
            }
            sb.Append("\n");
            return(sb.ToString());
        }
コード例 #11
0
ファイル: Mage.cs プロジェクト: simooo93/Exams
 public Mage(int x, int y, string name, ICombatHandler combatHandler)
     : base(x, y, name, combatHandler, MageRange, MageAttackPoints, MageHealthPoints, MageDefensePoints, MageEnergyPoints)
 {
 }
コード例 #12
0
ファイル: Warrior.cs プロジェクト: simooo93/Exams
 public Warrior(int x, int y, string name, ICombatHandler combatHandler )
     : base(x, y, name, combatHandler, WarriorRange, WarriorAttackPoints, WarriorHealthPoints, WarriorDefensePoints, WarriorEnergyPoints)
 {
 }
コード例 #13
0
 public MoveExecutioner(ICombatHandler combatHandler, IMovement movement)
 {
     _movement      = movement;
     _combatHandler = combatHandler;
 }
コード例 #14
0
 public Engine(IInputReader reader, IOutputWriter writer, IBlobFactory blobFactory, IBehaviourFactory behaviourFactory, IAttackFactory attackFactory, ICombatHandler combataHandler)
 {
     this.Reader           = reader;
     this.Writer           = writer;
     this.BlobFactory      = blobFactory;
     this.BehaviourFactory = behaviourFactory;
     this.AttackFactory    = attackFactory;
     this.CombatHandler    = combataHandler;
     this.CommandExecutor  = new CommandExecutor(this);
 }
コード例 #15
0
ファイル: IceGiant.cs プロジェクト: simooo93/Exams
 public IceGiant(int x, int y, string name, ICombatHandler combatHandler)
     : base(x, y, name, combatHandler, IceGiantRange, IceGiantAttackPoints, IceGiantHealthPoints, IceGiantDefensePoints, IceGiantEnergyPoints)
 {
 }
コード例 #16
0
 public void Setup()
 {
     layer          = Substitute.For <ILayer>();
     _combatHandler = new CombatHandler();
 }