Stardog

Untitled

Mar 15th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.22 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. public interface IWeapon
  6. {
  7.     float MinDamage { get; set; }
  8.     float MaxDamage { get; set; }
  9.     void Fire();
  10. }
  11.  
  12. public class BaseItem { }
  13.  
  14. public class BaseWeapon : BaseItem, IWeapon
  15. {
  16.     public float minDamage;
  17.     public float maxDamage;
  18.  
  19.     public BaseWeapon(float minDamage, float maxDamage)
  20.     {
  21.         this.minDamage = minDamage;
  22.         this.maxDamage = maxDamage;
  23.     }
  24.  
  25.     // IWeapon implementation
  26.     public float MinDamage { get { return minDamage; } set { minDamage = value; } }
  27.     public float MaxDamage { get { return maxDamage; } set { maxDamage = value; } }
  28.     public void Fire() { Debug.Log("Fired"); }
  29. }
  30.  
  31. public class BaseTest : MonoBehaviour
  32. {
  33.     public List<BaseItem> playerInventory = new List<BaseItem>();
  34.  
  35.     void Start()
  36.     {
  37.         playerInventory.Add(new BaseItem());
  38.         playerInventory.Add(new BaseWeapon(0f, 10f));
  39.         playerInventory.Add(new BaseWeapon(0f, 20f));
  40.  
  41.         foreach (BaseItem item in playerInventory)
  42.         {
  43.             IWeapon weapon = item as IWeapon;
  44.  
  45.             if (weapon != null)
  46.             {
  47.                 Debug.Log("Found weapon with max damage of " + weapon.MaxDamage);
  48.                 weapon.Fire();
  49.             }
  50.             else
  51.             {
  52.                 Debug.Log("Not a weapon.");
  53.             }
  54.         }
  55.     }
  56.  
  57. }
Add Comment
Please, Sign In to add comment