示例#1
0
    public void Use(InteractManager user, UsableArgs args = null)
    {
        Armor        a  = ScriptableObject.Instantiate(armorPrefab as ScriptableObject) as Armor;
        ArmorManager am = user.GetComponentInChildren <ArmorManager>();

        switch (a.Slot)
        {
        case ArmorSlot.Head:
            am.Head = a;
            break;

        case ArmorSlot.Neck:
            am.Neck = a;
            break;

        case ArmorSlot.Shoulders:
            am.Shoulders = a;
            break;

        case ArmorSlot.Chest:
            am.Chest = a;
            break;

        case ArmorSlot.Back:
            am.Back = a;
            break;

        case ArmorSlot.Wirst:
            am.Wirst = a;
            break;

        case ArmorSlot.Hands:
            am.Hands = a;
            break;

        case ArmorSlot.Waist:
            am.Waist = a;
            break;

        case ArmorSlot.Legs:
            am.Legs = a;
            break;

        case ArmorSlot.Feets:
            am.Feets = a;
            break;

        case ArmorSlot.Ring:
            am.Ring = a;
            break;

        case ArmorSlot.Trinket:
            am.Trinket = a;
            break;
        }

        user.gameObject.GetComponentInChildren <IContainer>().RemoveItem(this);
        Destroy(this.gameObject);
    }
示例#2
0
 public void Use(InteractManager manager, UsableArgs args)
 {
     if (args != null && args is EquipWeaponArgs)
     {
         Use(manager, args as EquipWeaponArgs);
     }
     else
     {
         Use(manager, new EquipWeaponArgs(EquipWeaponArgs.Hand.MainHand));
     }
 }
示例#3
0
    public void Use(InteractManager manager, UsableArgs args)
    {
        HealthManager playerHM = GetComponentInParent <HealthManager>();

        if (playerHM != null)
        {
            playerHM.Heal(10.0f);
        }

        manager.gameObject.GetComponentInChildren <PlayerContainer>().RemoveItem(this);
        Destroy(this.gameObject);
    }
示例#4
0
    public void Use(InteractManager user, UsableArgs args = null)
    {
        if (transferUI != null)
        {
            transferUI.OpenUI(user.GetComponentInChildren <IContainer>(), this);
        }

        if (openClip != null)
        {
            AudioManager.PlaySfx(openClip, transform);
        }
    }
示例#5
0
    public void Use(InteractManager manager, UsableArgs args)
    {
        if (closed)
        {
            animator.SetTrigger("DoorOpen");
        }
        else
        {
            animator.SetTrigger("DoorClose");
        }

        closed = !closed;
    }
示例#6
0
    public void Use(InteractManager user, UsableArgs args = null)
    {
        IRangedWeaponAmmo a  = ScriptableObject.Instantiate(ammo as ScriptableObject) as IRangedWeaponAmmo;
        WeaponManager     wp = user.GetComponentInChildren <WeaponManager>();

        wp.CurrentAmmos = a;

        if (ammoLeft >= 0)
        {
            a.AmmoLeft = ammoLeft;
        }

        user.gameObject.GetComponentInChildren <IContainer>().RemoveItem(this);
        Destroy(this.gameObject);
    }
示例#7
0
 public void Use(InteractManager user, UsableArgs args)
 {
     if (pickedItemPrefab != null)
     {
         IContainer container = user.gameObject.GetComponentInChildren <IContainer>();
         GameObject itemgo    = GameObject.Instantiate(pickedItemPrefab, Vector3.zero, Quaternion.identity) as GameObject;
         IItem      item      = itemgo.GetComponent <IItem>();
         if (item != null)
         {
             item.OnPickup(this);
             if (container != null && container.AddItem(item))
             {
                 GameObject.Destroy(this.gameObject);
             }
         }
     }
 }
示例#8
0
 public virtual void Use(InteractManager user, UsableArgs args = null)
 {
     onUse.Invoke(user);
 }