Advertisement
Fidru

Untitled

Jun 18th, 2024
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.82 KB | None | 0 0
  1.  
  2.             var stats = new Stat[] {
  3.                 new Stat ()
  4.                 {
  5.                     Name = "Str",
  6.                     Value = 10,
  7.                     IsPrimaryStat = true
  8.                 },
  9.                 new Stat ()
  10.                 {
  11.                     Name = "Dex",
  12.                     Value = 10,
  13.                 },
  14.                 new Stat ()
  15.                 {
  16.                     Name = "Int",
  17.                     Value = 5
  18.                 },
  19.                 new Stat ()
  20.                 {
  21.                     Name = "Hp",
  22.                     Value = 20
  23.                 }
  24.             };
  25.  
  26.  
  27.             var inventory = new List<IWeapon>
  28.             {
  29.                 new Dagger(5, 100) { Name = "Bronze Dagger" },
  30.                 new Staff(5, 100) { Name = "Wooden Stick" },
  31.                 new Dagger(15, 500) { Name = "Iron Dagger" }
  32.             };
  33.             var sortedInventory = inventory.OrderBy(x => x.SortOrder).ToList();
  34.  
  35.             var player = new Player()
  36.             {
  37.                 Name = "Cool Name",
  38.                 Stats = stats,
  39.                 Inventory = sortedInventory,
  40.                 Weapon = sortedInventory.First()
  41.             };
  42.             var goblin1 = new Enemy()
  43.             {
  44.                 Name = "Goblin 1",
  45.                 Stats = stats,
  46.                 Inventory = sortedInventory, //items that can be dropped
  47.                 Weapon = sortedInventory.Last()
  48.             };
  49.             var goblin2 = new Enemy()
  50.             {
  51.                 Name = "Goblin 2",
  52.                 Stats = stats,
  53.                 Inventory = sortedInventory, //items that can be dropped
  54.                 Weapon = sortedInventory.Last()
  55.             };
  56.  
  57.  
  58.             // play game
  59.             var players = new List<IPlayer>() { player, goblin1, goblin2 };
  60.             var fightingOrder = players.OrderBy(x => x.Speed).ToList();
  61.  
  62.  
  63.             while (fightingOrder.Any(x => x is IPlayer && x.HP > 0)
  64.                 && fightingOrder.Any(x => x is IEnemy && x.HP > 0))
  65.             {
  66.                 foreach (var fighter in fightingOrder)
  67.                 {
  68.                     IPlayer opponent = null;
  69.  
  70.                     var test = fightingOrder.FirstOrDefault(x => x.GetType() != fighter.GetType());
  71.  
  72.                     if (fighter is IPlayer)
  73.                     {
  74.                         //let player select enemy, skill,
  75.                         opponent = fightingOrder.FirstOrDefault(x => x is IEnemy);
  76.                     }
  77.                     if (fighter is IEnemy)
  78.                     {
  79.                         opponent = fightingOrder.FirstOrDefault(x => x is IPlayer);  
  80.                     }
  81.                    
  82.                     fighter.Attack(opponent);
  83.                 }
  84.  
  85.                 fightingOrder = fightingOrder.Where(x => x.HP > 0).ToList();
  86.             }
  87.  
  88.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement