Skip to main content
Code Review

Return to Question

replaced http://codereview.stackexchange.com/ with https://codereview.stackexchange.com/
Source Link

what do you think about this code? It's upgraded version of: Classes representing items in an RPG game Classes representing items in an RPG game

what do you think about this code? It's upgraded version of: Classes representing items in an RPG game

what do you think about this code? It's upgraded version of: Classes representing items in an RPG game

Tweeted twitter.com/StackCodeReview/status/814226480951652356
Source Link
TKK
  • 375
  • 2
  • 9

Mini RPG equipment code

what do you think about this code? It's upgraded version of: Classes representing items in an RPG game

using System;
using System.Collections.Generic;
public class Item
{
 public string Name { get; protected set; }
 public int Cost { get; protected set; }
 public override string ToString()
 {
 return "Name: " + Name + "\nCost: " + Cost;
 }
 
 public Item(string name, int cost)
 {
 Name = name;
 Cost = cost;
 }
}
public abstract class SpecialItem : Item
{
 public virtual int GetSpecialProperty { get; }
 public override string ToString() { return base.ToString() + "\nDamages/ArmorPts/HungryRestorePts: " + GetSpecialProperty; }
 public SpecialItem(string name, int cost) : base(name, cost) { }
}
public abstract class ElementalsItem : SpecialItem
{
 public int Fire { get; protected set; }
 public int Water { get; protected set; }
 public int Earth { get; protected set; }
 public int Wind { get; protected set; }
 public override string ToString()
 {
 return base.ToString()
 + "\nFire Damages/Resistance: " + Fire
 + "\nWater Damages/Resistance: " + Water
 + "\nEarth Damages/Resistance: " + Earth
 + "\nWind Damages/Resistance: " + Wind;
 }
 protected ElementalsItem(string name, 
 int cost,
 int fire, 
 int water,
 int earth, 
 int wind)
 : base(name, cost)
 {
 Fire = fire;
 Water = water;
 Earth = earth;
 Wind = wind;
 }
}
public class Weapon : ElementalsItem
{
 public int Damages { get; private set; }
 public override int GetSpecialProperty { get { return Damages; }}
 public override string ToString() { return base.ToString(); }
 public Weapon(string name,
 int cost,
 int damages,
 int fireDamages = 0,
 int waterDamages = 0, 
 int earthDamages = 0,
 int windDamages = 0)
 : base(name, cost, fireDamages, waterDamages, earthDamages, windDamages)
 {
 Damages = damages;
 }
}
public class Armor : ElementalsItem
{
 public int ArmorPts { get; private set; }
 public override int GetSpecialProperty { get { return ArmorPts; }}
 public override string ToString() { return base.ToString(); }
 public Armor(string name,
 int cost,
 int armorPts,
 int fireResistance = 0,
 int waterResistance = 0,
 int earthResistance = 0,
 int windResistance = 0) 
 : base(name, cost, fireResistance, waterResistance, earthResistance, windResistance)
 {
 ArmorPts = armorPts;
 }
}
public class Food : SpecialItem
{
 public int HungryRestorePts { get; private set; }
 public override int GetSpecialProperty { get { return HungryRestorePts; }}
 public override string ToString() { return base.ToString(); }
 public Food(string name, int cost, int hungryRestorePts) : base(name, cost)
 {
 HungryRestorePts = hungryRestorePts;
 }
}
class Equipment
{
 public static void Test()
 {
 List<Item> items = new List<Item>();
 items.AddRange(new Item[] { new Item("Stone", 1),
 new Armor("Steel Helmet", 80, 10),
 new Weapon("Great Sword", 120, 80),
 new Armor("Storm Cuirass", 1000, 120, 0, 0, 0, 60),
 new Weapon("Fire Spear", 1400, 60, 0, 80, 0, 0),
 new Food("Apple", 5, 10) });
 foreach(Item i in items)
 {
 Console.WriteLine(i.ToString());
 Console.WriteLine();
 }
 }
}
lang-cs

AltStyle によって変換されたページ (->オリジナル) /