Advertisement
Guest User

Warrior Attack

a guest
Nov 18th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.67 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Strict
  4. {
  5.  
  6.     enum AttackType { Normal, Heavy, EnergyBlast}
  7.     enum Button { Z, X, C}
  8.     enum PlayerValue { Hp, Xp}
  9.  
  10.     class MainClass
  11.     {
  12.  
  13.         struct Warrior
  14.         {
  15.             public string name;
  16.             public int hp;
  17.             public int xp;
  18.  
  19.         }
  20.  
  21.         static bool Attack(ref Warrior attacker, ref Warrior defender)
  22.         {
  23.             int atkValue = 0;
  24.             AttackType atkType;
  25.             bool isDead = false;
  26.  
  27.             atkType = AskForAtkType();
  28.  
  29.             switch (atkType)
  30.             {
  31.                 case AttackType.Normal:
  32.                     atkValue = 100;
  33.                     break;
  34.                 case AttackType.Heavy:
  35.                     atkValue = 200;
  36.                     break;
  37.                 case AttackType.EnergyBlast:
  38.                     atkValue = 150;
  39.                     break;
  40.                 default:
  41.                     break;
  42.             }
  43.  
  44.             defender.hp = defender.hp - atkValue;
  45.  
  46.             if(defender.hp <= 0)
  47.             {
  48.                 isDead = true;
  49.             }
  50.  
  51.             return isDead;
  52.  
  53.         }
  54.  
  55.         static AttackType AskForAtkType(AttackType atkType = AttackType.Normal)
  56.         {
  57.             char command;
  58.  
  59.             do
  60.             {
  61.                 PrintRow();
  62.                 Console.WriteLine("Scegli un attacco: ");
  63.                 for (int i = 0; i < 3; i++)
  64.                 {
  65.                     Console.WriteLine($"{i}) {(Button)i} ({(AttackType)i})");
  66.                 }
  67.  
  68.             } while (!char.TryParse(Console.ReadLine().ToLower(), out command) && (command != 'z' || command != 'x' || command != 'c'));
  69.  
  70.             switch (command)
  71.             {
  72.                 case 'z':
  73.                     atkType = AttackType.Normal;
  74.                     break;
  75.                 case 'x':
  76.                     atkType = AttackType.Heavy;
  77.                     break;
  78.                 case 'c':
  79.                     atkType = AttackType.EnergyBlast;
  80.                     break;
  81.                 default:
  82.                     break;
  83.             }
  84.  
  85.             return atkType;
  86.         }
  87.  
  88.  
  89.         static void PrintRow()
  90.         {
  91.             for (int i = 0; i < 40; i++)
  92.             {
  93.                 if(i == 0 || i == 39)
  94.                 {
  95.                     Console.Write("*");
  96.                 }
  97.                 else
  98.                 {
  99.                     Console.Write("=");
  100.                 }
  101.             }
  102.  
  103.             Console.Write("\n");
  104.         }
  105.  
  106.  
  107.         public static void Main(string[] args)
  108.         {
  109.             var player = new Warrior();
  110.             var defender = new Warrior();
  111.             int xp = 100;
  112.  
  113.             player.xp = 0;
  114.             player.hp = 500;
  115.             player.name = "Player";
  116.  
  117.             defender.xp = 0;
  118.             defender.hp = 500;
  119.             defender.name = "Defender";
  120.  
  121.             do
  122.             {
  123.                 Console.Clear();
  124.  
  125.                 Console.WriteLine($"{player.name}: \n Hp: {player.hp}\n Xp: {player.xp}");
  126.                 Console.WriteLine($"{defender.name}: \n Hp: {defender.hp}\n Xp: {defender.xp}");
  127.  
  128.  
  129.             } while (!Attack(ref player, ref defender));
  130.  
  131.             if (defender.hp < 0)
  132.             {
  133.                 defender.hp = 0;
  134.             }
  135.  
  136.             Console.Clear();
  137.  
  138.             player.xp += xp;
  139.  
  140.             Console.WriteLine($"{player.name}: \n Hp: {player.hp}\n Xp: {player.xp}");
  141.             Console.WriteLine($"{defender.name}: \n Hp: {defender.hp}\n Xp: {defender.xp}");
  142.             PrintRow();
  143.  
  144.             Console.WriteLine($"{defender.name} is dead! You gained {xp} Xp.");
  145.  
  146.         }
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement