Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public interface IWeapon
- {
- float MinDamage { get; set; }
- float MaxDamage { get; set; }
- void Fire();
- }
- public class BaseItem { }
- public class BaseWeapon : BaseItem, IWeapon
- {
- public float minDamage;
- public float maxDamage;
- public BaseWeapon(float minDamage, float maxDamage)
- {
- this.minDamage = minDamage;
- this.maxDamage = maxDamage;
- }
- // IWeapon implementation
- public float MinDamage { get { return minDamage; } set { minDamage = value; } }
- public float MaxDamage { get { return maxDamage; } set { maxDamage = value; } }
- public void Fire() { Debug.Log("Fired"); }
- }
- public class BaseTest : MonoBehaviour
- {
- public List<BaseItem> playerInventory = new List<BaseItem>();
- void Start()
- {
- playerInventory.Add(new BaseItem());
- playerInventory.Add(new BaseWeapon(0f, 10f));
- playerInventory.Add(new BaseWeapon(0f, 20f));
- foreach (BaseItem item in playerInventory)
- {
- IWeapon weapon = item as IWeapon;
- if (weapon != null)
- {
- Debug.Log("Found weapon with max damage of " + weapon.MaxDamage);
- weapon.Fire();
- }
- else
- {
- Debug.Log("Not a weapon.");
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment