using System;
enum DamageType {Slashing, Piercing};
class Weapon
{
public DamageType DamageType { get; set; }
public int WeaponDamage { get; set; }
}
static class WeaponRepository
{
public static Weapon Sword()
{
return new Weapon{ DamageType = DamageType.Slashing, WeaponDamage = 12 };
}
public static Weapon Dagger()
{
return new Weapon{ DamageType = DamageType.Piercing, WeaponDamage = 4 };
}
}
public class Test
{
public static void Main()
{
Weapon sword = WeaponRepository.Sword();
Weapon dagger = WeaponRepository.Dagger();
Console.WriteLine("Sword's damage is {0}", sword.WeaponDamage); // 12
Console.WriteLine("Dagger's damage is {0}", dagger.WeaponDamage); // 4
// TODO
// player = new Player;
// player.Hand = sword;
// player.Inventory.put(dagger);
}
}
dXNpbmcgU3lzdGVtOwoKZW51bSBEYW1hZ2VUeXBlIHtTbGFzaGluZywgUGllcmNpbmd9OwoKY2xhc3MgV2VhcG9uCnsKCXB1YmxpYyBEYW1hZ2VUeXBlIERhbWFnZVR5cGUgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIGludCBXZWFwb25EYW1hZ2UgeyBnZXQ7IHNldDsgfQp9CgpzdGF0aWMgY2xhc3MgV2VhcG9uUmVwb3NpdG9yeQp7CglwdWJsaWMgc3RhdGljIFdlYXBvbiBTd29yZCgpCgl7CgkJcmV0dXJuIG5ldyBXZWFwb257IERhbWFnZVR5cGUgPSBEYW1hZ2VUeXBlLlNsYXNoaW5nLCBXZWFwb25EYW1hZ2UgPSAxMiB9OwoJfQoKCXB1YmxpYyBzdGF0aWMgV2VhcG9uIERhZ2dlcigpCgl7CgkJcmV0dXJuIG5ldyBXZWFwb257IERhbWFnZVR5cGUgPSBEYW1hZ2VUeXBlLlBpZXJjaW5nLCBXZWFwb25EYW1hZ2UgPSA0IH07Cgl9Cn0KCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlXZWFwb24gc3dvcmQgPSBXZWFwb25SZXBvc2l0b3J5LlN3b3JkKCk7CgkJV2VhcG9uIGRhZ2dlciA9IFdlYXBvblJlcG9zaXRvcnkuRGFnZ2VyKCk7CgkJCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlN3b3JkJ3MgZGFtYWdlIGlzIHswfSIsIHN3b3JkLldlYXBvbkRhbWFnZSk7CS8vIDEyCgkJQ29uc29sZS5Xcml0ZUxpbmUoIkRhZ2dlcidzIGRhbWFnZSBpcyB7MH0iLCBkYWdnZXIuV2VhcG9uRGFtYWdlKTsgLy8gNAoJCQoJCS8vIFRPRE8KCQkvLyBwbGF5ZXIgPSBuZXcgUGxheWVyOwoJCS8vIHBsYXllci5IYW5kID0gc3dvcmQ7CgkJLy8gcGxheWVyLkludmVudG9yeS5wdXQoZGFnZ2VyKTsKCX0KfQo=