예제 #1
0
    public void ApplyData(ItemData data)
    {
        if (Player.Local == null)
        {
            return;
        }

        // TODO:
        // Because of this, and the UpdateData method, attachment data is useless and non-funtional.
        string[] keys = new string[]
        {
            "Sight Attachment",
            "Magazine Attachment",
            "Under Barrel Attachment",
            "Muzzle Attachment"
        };
        GameObject player = Player.Local.gameObject;

        foreach (var key in keys)
        {
            if (data.ContainsKey(key))
            {
                Item       item = Item.GetItem(data.Get <string>(key));
                Attachment a    = item.GetComponent <Attachment>();
                SetAttachment(player, a.Type, a, null);
            }
        }
    }
예제 #2
0
    public void UpdateData(ItemData data)
    {
        Attachment a;
        Dictionary <AttachmentType, string> dic = new Dictionary <AttachmentType, string>();

        dic.Add(AttachmentType.MAGAZINE, "Magazine Attachment");
        dic.Add(AttachmentType.MUZZLE, "Muzzle Attachment");
        dic.Add(AttachmentType.SIGHT, "Sight Attachment");
        dic.Add(AttachmentType.UNDER_BARREL, "Under Barrel Attachment");

        foreach (var pair in dic)
        {
            a = GetCurrentAttachment(pair.Key);
            if (a != null)
            {
                data.Update(pair.Value, a.Item.Prefab);
            }
            else
            {
                if (data.ContainsKey(pair.Value))
                {
                    data.Remove(pair.Value);
                }
            }
        }
    }
예제 #3
0
 public Item(ItemId id, float range = 0)
 {
     Id = id;
     if (ItemData.ContainsKey(Id))
     {
         ItemInfo = ItemData[Id];
     }
     Range = range;
 }
예제 #4
0
 public void SetDataDefaults(ItemData data)
 {
     data.Update("Bullet In Chamber", true);
     if (data.ContainsKey("Bullets In Magazine"))
     {
         int bullets = data.Get <int>("Bullets In Magazine");
         data.Update("Bullets In Magazine", --bullets);
     }
 }
예제 #5
0
 public void UpdateData(ItemData data)
 {
     if (PreventExploit)
     {
         data.Update("Shot Timer", timeRemainingOnShot);
     }
     else
     {
         if (data.ContainsKey("Shot Timer"))
         {
             data.Remove("Shot Timer");
         }
     }
 }