SHARE
TWEET

Untitled

a guest Aug 12th, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.Xna.Framework;
  5.  
  6. namespace KnownledgeReview6___part2
  7. {
  8.     class Box
  9.     {
  10.         const int DEFAULT_HEALTH = 100;
  11.         const int WALL_DAMAGE = 10;
  12.  
  13.         private Point position;
  14.         private Point velocity;
  15.         private List<ConsoleColor> colour = new List<ConsoleColor>() { ConsoleColor.Green, ConsoleColor.Yellow, ConsoleColor.Red };
  16.         private char character;
  17.         private int health = DEFAULT_HEALTH;
  18.         /*
  19.         public Box()
  20.         {
  21.             colour.Add(ConsoleColor.Green);
  22.             colour.Add(ConsoleColor.Yellow);
  23.             colour.Add(ConsoleColor.Red);
  24.         }*/
  25.  
  26.  
  27.         #region properties
  28.  
  29.         public Point Position
  30.         {
  31.             get { return position; }
  32.             set { position = value; }
  33.         }
  34.  
  35.         public Point Velocity
  36.         {
  37.             get { return velocity; }
  38.             set { velocity = value; }
  39.         }
  40.  
  41.         /*public ConsoleColor Colour
  42.         {
  43.             get { return colour; }
  44.             set { colour = value; }
  45.         }*/
  46.  
  47.         public char Character
  48.         {
  49.             get { return character; }
  50.             set { character = value; }
  51.         }
  52.  
  53.         public int Health
  54.         {
  55.             get { return health; }
  56.         }
  57.  
  58.         #endregion
  59.  
  60.         #region methods
  61.  
  62.         public void Update()
  63.         {
  64.             position.X += velocity.X;
  65.             position.Y += velocity.Y;
  66.  
  67.             CheckWallCollision();
  68.         }
  69.  
  70.         public void Draw()
  71.         {
  72.             Console.ForegroundColor = colour[CurrentColour()];
  73.             Console.SetCursorPosition(position.X, position.Y);
  74.             Console.Write(character);
  75.         }
  76.  
  77.         public void TakeDamage(int damage)
  78.         {
  79.             health -= damage;
  80.             if (health < 0)
  81.                 health = 0;
  82.         }
  83.  
  84.         private void CheckWallCollision()
  85.         {
  86.             if (position.X < 0)
  87.             {
  88.                 position.X = 0;
  89.                 velocity.X *= -1;
  90.                 ProcessWallHit();
  91.             }
  92.             else if (position.X > Console.WindowWidth - 1) // -2 offset incase text wrapping
  93.             {
  94.                 position.X = Console.WindowWidth - 1;
  95.                 velocity.X *= -1;
  96.                 ProcessWallHit();
  97.             }
  98.  
  99.             if (position.Y < 0)
  100.             {
  101.                 position.Y = 0;
  102.                 velocity.Y *= -1;
  103.                 ProcessWallHit();
  104.             }
  105.             else if (position.Y > Console.WindowHeight - 1) // -2 offset incase text wrapping
  106.             {
  107.                 position.Y = Console.WindowHeight - 1;
  108.                 velocity.Y *= -1;
  109.                 ProcessWallHit();
  110.             }
  111.         }
  112.  
  113.         private void ProcessWallHit()
  114.         {
  115.             TakeDamage(WALL_DAMAGE);
  116.            
  117.         }
  118.  
  119.         private int CurrentColour()
  120.         {
  121.             int CurrentColour = health / DEFAULT_HEALTH - 1;
  122.             return CurrentColour;
  123.         }
  124.  
  125.         #endregion
  126.  
  127.     }
  128. }
RAW Paste Data
Top