// I am being lazy and making the return a string. public string SetWeapon <W>() where W : AbstractWeapon { // Store what weapon WAS equipped. string ret = "null"; System.Type t; if (weapon != null) { t = weapon.GetType(); if (t == typeof(DaggerWeapon)) { ret = "dagger"; } else if (t == typeof(LongswordWeapon)) { ret = "longsword"; } else if (t == typeof(GunWeapon)) { ret = "gun"; } } // We don't need this weapon anymore. Destroy(weapon); weapon = gameObject.AddComponent <W>() as AbstractWeapon; // I am being lazy and making the return a string. t = weapon.GetType(); if (t == typeof(DaggerWeapon)) { weaponSprite.SendMessage("EquipWeapon", "dagger"); } else if (t == typeof(LongswordWeapon)) { weaponSprite.SendMessage("EquipWeapon", "longsword"); } else if (t == typeof(GunWeapon)) { weaponSprite.SendMessage("EquipWeapon", "gun"); } return(ret); }
public override bool Equals(AbstractWeapon other) { if (this._name.Equals(other.Name) && other.GetType() == this.GetType()) { return true; } else { return false; } }