using System;
namespace MyProgram
{
class MainClass
{
static void Main()
{
string Version = "1.0";
Console.WriteLine("====================");
Console.WriteLine("Virtual Rifle - v{0}", Version);
Console.WriteLine("====================\n");
Rifle rifle1 = new Rifle(5, 25);
rifle1.ShowWeapStats();
rifle1.PickUpAmmo(5);
rifle1.ShowWeapStats();
rifle1.Shoot();
rifle1.Shoot();
rifle1.Shoot();
rifle1.ShowWeapStats();
rifle1.Reload();
rifle1.ShowWeapStats();
for(int i = 0; i < 6; i++) {
rifle1.Shoot();
}
rifle1.ShowWeapStats();
rifle1.Reload();
rifle1.ShowWeapStats();
}
}
}
using System;
namespace MyProgram
{
public class Rifle
{
// Member variables
// ================
private static int MaxAmmoCap = 5;
private static int MaxLoadout = 30;
public int CurrAmmo = 0;
public int Loadout = 0;
// Custom Constructor
// ==================
public Rifle()
{
SetDefaults();
}
public Rifle(int CurrAmmo, int Loadout)
{
if(CurrAmmo <= MaxAmmoCap && Loadout <= MaxLoadout){
this.CurrAmmo = CurrAmmo;
this.Loadout = Loadout;
}
else {
SetDefaults();
}
}
// Member Methods
// ==============
private void SetDefaults()
{
this.CurrAmmo = MaxAmmoCap;
this.Loadout = MaxLoadout;
}
public void ShowWeapStats()
{
Console.WriteLine("[Stats] Current Ammo: {0} --- Loadout: {1}",
this.CurrAmmo, this.Loadout);
}
public void Shoot()
{
if(this.CurrAmmo == 0) {
Console.WriteLine(" *** Click! *** No Ammo!");
}
else {
this.CurrAmmo -= 1;
Console.WriteLine(" *** Bang! Clack Clack! ***");
}
}
public void Reload()
{
if(this.Loadout > 0 && this.CurrAmmo < MaxAmmoCap) {
while (this.CurrAmmo < MaxAmmoCap) {
if(this.Loadout == 0) {
break;
}
else {
this.Loadout -= 1;
this.CurrAmmo += 1;
}
}
Console.WriteLine(" *** Clack! Clack! *** Reloaded!");
}
else if(this.Loadout == 0) {
Console.WriteLine("[Warning] No ammo left!");
}
else if(this.CurrAmmo == MaxAmmoCap) {
Console.WriteLine("[Warning] Fully loaded!");
}
}
public void PickUpAmmo(int ExtraAmmo)
{
int Picked = 0;
if(this.Loadout == MaxLoadout) {
Console.WriteLine("[Warning] No need for extra ammo!");
}
else {
while(this.Loadout < MaxLoadout && ExtraAmmo != 0) {
ExtraAmmo -= 1;
this.Loadout += 1;
Picked += 1;
}
Console.WriteLine("[Picked] +{0} Ammo!", Picked);
}
}
}
}