Sure, you could do that. You just need a container object for "items" and then you can check it to see if it holds various special gear.
Are you familiar with container classes? If so, have you already selected one for storing items?
I'm not too familiar with container classes as I just started learning programming language a week ago. But I kind of figured it out, but then approached it a different way.
I am completely stumped on this problem. I went through debugging it, but I can't find the problem. When you go to save the game it saves whether you have or don't have hasEquipOne and hasEquipTwo as a bool.
By default bonusDefense is 0. Then I go an load the game it reads that hasEquipOne is true then proceeds to CheckEquips. Since hasEquipOne is true hero.bonusDefense is increased by 10 though when I go to check my hero's stats bonusDefense is 0.
Options.cs - related to Loading
public void Load(Hero hero)
{
Hero myhero;
myhero = new Hero();
bool done = false;
string item;
StreamReader file = new StreamReader(@"C:\Users\Key\Documents\Visual Studio 2010\Projects\TextBasedGame\Saves\PlayerData.dat");
hero.Id = file.ReadLine();
hero.Level = int.Parse(file.ReadLine());
hero.CurrentHealth = int.Parse(file.ReadLine());
hero.MaxHealth = int.Parse(file.ReadLine());
hero.CurrentMagic = int.Parse(file.ReadLine());
hero.MaxMagic = int.Parse(file.ReadLine());
hero.baseStrength = int.Parse(file.ReadLine());
hero.baseDefense = int.Parse(file.ReadLine());
hero.Exp = int.Parse(file.ReadLine());
hero.Gold = int.Parse(file.ReadLine());
hero.PhysicalDamage = int.Parse(file.ReadLine());
Store.hasEquipOne = bool.Parse(file.ReadLine());
Store.hasEquipTwo = bool.Parse(file.ReadLine());
while (done == false)
{
item = file.ReadLine();
if (item != null)
{
hero.items.Add(item);
}
else
{
done = true;
}
}
file.Close();
Stats.CheckEquips(myhero);
Stats.CheckSet(myhero);
Console.WriteLine("Game Loaded");
Console.ReadLine();
}
Hero.cs
using System;
using System.Collections.Generic;
namespace TextBasedGame
{
public class Stats
{
public static void PrintStats(Hero hero)
{
Console.Clear();
Console.Write(@"
_____________
Stats Sheet
_____________
Name: {0}
Level: {1}
Hp: {2}/{3}
Mp: {4}/{5}
Attack: {6}
Strength: {7} (+{8})
Defense: {9} (+{10})
Exp: {11}
Gold: {12}
_____________
Equipment
_____________
Items:
", hero.Id, hero.Level, hero.CurrentHealth, hero.MaxHealth, hero.CurrentMagic, hero.MaxMagic, hero.PhysicalDamage, hero.baseStrength, hero.bonusStrength, hero.baseDefense, hero.bonusDefense, hero.Exp, hero.Gold);
foreach (string item in hero.items)
{
Console.WriteLine(item);
}
while (hero.Id == null || hero.Id == "" || hero.Id == " ")
{
Console.Clear();
Console.WriteLine("Choose a name for your hero.");
hero.Id = Console.ReadLine();
}
Console.WriteLine();
Console.ReadLine();
Console.Clear();
}
public static void CheckEquips(Hero hero)
{
if (Store.hasEquipOne == true)
{
hero.bonusDefense += 10;
}
if (Store.hasEqupTwo == true)
{
hero.bonusDefense += 10;
}
else
{
hero.bonusDefense = hero.bonusDefense;
}
}
public static void CheckSet(Hero hero)
{
if (Store.hasEquipOne == true && Store.hasEquipTwo == true)
{
hero.bonusDefense += 10;
}
else
{
hero.bonusDefense = hero.bonusDefense;
}
}
}
}