SHARE
TWEET

Untitled

a guest Dec 8th, 2019 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Windows.Forms;
  2.  
  3. namespace Digger
  4. {
  5.     public class Terrain : ICreature
  6.     {
  7.         public CreatureCommand Act(int x, int y)
  8.         {
  9.             return new CreatureCommand();
  10.         }
  11.  
  12.         public bool DeadInConflict(ICreature conflictedObject)
  13.         {
  14.             return true;
  15.         }
  16.  
  17.         public int GetDrawingPriority()
  18.         {
  19.             return 100;
  20.         }
  21.  
  22.         public string GetImageFileName()
  23.         {
  24.             return "Terrain.png";
  25.         }
  26.     }
  27.  
  28.     public class Player : ICreature
  29.     {
  30.         public static bool CanGo(int x, int y, int offsetX, int offsetY)
  31.         {
  32.             return !(x + offsetX > Game.MapWidth - 1 || x + offsetX < 0
  33.                 || y + offsetY > Game.MapHeight - 1 || y + offsetY < 0
  34.                 || Game.Map[x + offsetX, y + offsetY] is Sack);
  35.         }
  36.  
  37.         public CreatureCommand Act(int x, int y)
  38.         {
  39.             if (Game.KeyPressed == Keys.Up && CanGo(x, y, 0, -1))
  40.             {
  41.                 return new CreatureCommand { DeltaX = 0, DeltaY = -1 };
  42.             }
  43.             if (Game.KeyPressed == Keys.Down && CanGo(x, y, 0, 1))
  44.             {
  45.                 return new CreatureCommand { DeltaX = 0, DeltaY = 1 };
  46.             }
  47.             if (Game.KeyPressed == Keys.Left && CanGo(x, y, -1, 0))
  48.             {
  49.                 return new CreatureCommand { DeltaX = -1, DeltaY = 0 };
  50.             }
  51.             if (Game.KeyPressed == Keys.Right && CanGo(x, y, 1, 0))
  52.             {
  53.                 return new CreatureCommand { DeltaX = 1, DeltaY = 0};
  54.             }
  55.             return new CreatureCommand();
  56.         }
  57.  
  58.         public bool DeadInConflict(ICreature conflictedObject)
  59.         {
  60.             if (conflictedObject is Sack)
  61.             {
  62.                 return true;
  63.             }
  64.             return false;
  65.         }
  66.  
  67.         public int GetDrawingPriority()
  68.         {
  69.             return 10;
  70.         }
  71.  
  72.         public string GetImageFileName()
  73.         {
  74.             return "Digger.png";
  75.         }
  76.     }
  77.  
  78.     public class Sack : ICreature
  79.     {
  80.         private int downCount = 0;
  81.  
  82.         public CreatureCommand Act(int x, int y)
  83.         {
  84.             if (y != Game.MapHeight - 1 &&
  85.             (Game.Map[x, y + 1] is null || (Game.Map[x, y + 1] is Player && downCount > 0)))
  86.             {
  87.                 downCount++;
  88.                 return new CreatureCommand { DeltaX = 0, DeltaY = 1 };
  89.             }
  90.             if (downCount > 1)
  91.             {
  92.                 return new CreatureCommand { DeltaX = 0, DeltaY = 0, TransformTo = new Gold()};
  93.             }
  94.             if (y != Game.MapHeight - 1 && !(Game.Map[x, y + 1] is null))
  95.             {
  96.                 downCount = 0;
  97.             }
  98.             return new CreatureCommand();
  99.         }
  100.  
  101.         public bool DeadInConflict(ICreature conflictedObject)
  102.         {
  103.             return false;
  104.         }
  105.  
  106.         public int GetDrawingPriority()
  107.         {
  108.             return 5;
  109.         }
  110.  
  111.         public string GetImageFileName()
  112.         {
  113.             return "Sack.png";
  114.         }
  115.     }
  116.  
  117.     public class Gold : ICreature
  118.     {
  119.         public CreatureCommand Act(int x, int y)
  120.         {
  121.             return new CreatureCommand();
  122.         }
  123.  
  124.         public bool DeadInConflict(ICreature conflictedObject)
  125.         {
  126.             if (conflictedObject is Player)
  127.             {
  128.                 Game.Scores += 10;
  129.                 return true;
  130.             }
  131.             return false; ;
  132.         }
  133.  
  134.         public int GetDrawingPriority()
  135.         {
  136.             return 50;
  137.         }
  138.  
  139.         public string GetImageFileName()
  140.         {
  141.             return "Gold.png";
  142.         }
  143.     }
  144. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top