public static void PutOn(DressableAsset asset, SlotType slotType, PersonageModel personage)
        {
            if (!CanDress(asset, slotType))
            {
                UnityEngine.Debug.LogError(string.Format("Can't put on item {0} to slot {1}. Their slot types aren't matched!!! Item is destined for following slots {2}", asset.Classname, slotType.ToString(), string.Join(",", asset.OccupiedSlots)));
                return;
            }

            if (G.self.user_inventory.GetItemAmount(asset.Classname) < 1)
            {
                UnityEngine.Debug.LogError(string.Format("Can't put on item {0}. User don't have enough items", asset.Classname));
                return;
            }

            if (personage.TryGetConflictSlotItems(asset, out List <SlotItem> conflictItems))
            {
                for (int i = 0; i < conflictItems.Count; i++)
                {
                    TakeOff(conflictItems[i], personage);
                }
            }

            G.self.user_inventory.Decrease(asset.Classname);
            personage.PutOnItem(slotType, asset);
        }
Exemple #2
0
 public void Init(PersonageModel personageModel)
 {
     personage_model                = personageModel;
     personage_model.OnPutOnItem   += OnPutOnItem;
     personage_model.OnTakeOffItem += OnTakeOffItem;
     InitializeItems();
 }
 internal void Clear()
 {
     _personage_model.OnPutOnItem   -= OnPutOnSlotItem;
     _personage_model.OnTakeOffItem -= OnTakeOffSlotItem;
     _slot_item       = null;
     _personage_model = null;
     dragable_item.Clear();
 }
    public void Init(PersonageModel personageModel, Transform dragTransform, SlotItem slotItem = null)
    {
        _slot_item                      = slotItem;
        _personage_model                = personageModel;
        _personage_model.OnPutOnItem   += OnPutOnSlotItem;
        _personage_model.OnTakeOffItem += OnTakeOffSlotItem;
        dragable_item.Init(this, _transform, dragTransform);

        UpdateView();
    }
        public static void TakeOff(SlotType slotType, PersonageModel personage)
        {
            if (!personage.GetSlotItem(slotType, out SlotItem slotItem))
            {
                UnityEngine.Debug.LogError(string.Format("Can't take off item {0}. User personage don't dress this item"));
                return;
            }

            TakeOff(slotItem, personage);
        }
Exemple #6
0
    public void Dispose()
    {
        if (personage_model == null)
        {
            return;
        }

        personage_model.OnPutOnItem   -= OnPutOnItem;
        personage_model.OnTakeOffItem -= OnTakeOffItem;
        personage_model = null;
    }
Exemple #7
0
 private void Init()
 {
     self = this;
     asset_resource_manager     = new ResourceManager <Asset>();
     personage_resource_manager = new ResourceManager <Personage>();
     window_manager             = new WindowManager();
     user_inventory             = new UserInventory();
     personage = new PersonageModel(personage_resource_manager.GetResource("Human"));
     FillUserInventory();
     InitPersonage();
 }
    internal void Init(InventoryItemModel inventoryItem, PersonageModel personageModel, Transform dragTransform)
    {
        _inventory_item             = inventoryItem;
        _personage_model            = personageModel;
        _inventory_item.OnIncrease += OnIncrease;
        _inventory_item.OnDecrease += OnDecrease;

        icon_img.sprite  = _inventory_item.Asset.Icon;
        icon_img.enabled = true;
        amount_tf.text   = _inventory_item.Amount.ToString();

        dragable_item.Init(this, _transform, dragTransform);

        gameObject.SetActive(true);
    }
 private static void TakeOff(SlotItem slotItem, PersonageModel personage)
 {
     G.self.user_inventory.Increase(slotItem.Asset.Classname);
     personage.TakeOffItem(slotItem);
 }
 public void Init(PersonageModel personageModel, UserInventory userInventory)
 {
     _personage_model = personageModel;
     _user_inventory  = userInventory;
 }