Esempio n. 1
0
 public void SetUp(IActorPart actor)
 {
     backpack?.RemoveOnAddItemListener(AddNewItem);
     backpack?.RemoveOnRemoveItemListener(RemoveItem);
     backpack = actor.GetBackpack();
     panel.Init(this);
     Start();
     backpack.AddOnAddItemListener(AddNewItem);
     backpack.AddOnRemoveItemListener(RemoveItem);
     gearUI.SetUp(actor.GetGear());
 }
Esempio n. 2
0
 public void ChangeOperation(Item item, IActorPart part)
 {
     if (part.GetGear().GetEquipSlotName(equipment) != String.EquipSlotName.None)
     {
         opt.Change("取下", TakeOffItem, ChangeOperation, CollectItem);
     }
     else
     {
         opt.Change("装备", EquipItem, ChangeOperation);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// launch forward the direction
 /// </summary>
 /// <param name="direction"></param>
 public void Launch(IActorPart src, Vector2 start_pos, Vector2 direction, int layer, float speed_rate = 1, float damage_rate = 1)
 {
     this.src                = src;
     gameObject.layer        = layer;
     this.transform.position = start_pos;
     if (beforeDamage == null)
     {
         beforeDamage = new DamageEvent();
     }
     beforeDamage.AddListener((damager, damageable) => damager.damage = (int)(damager.damage * damage_rate));
     ObjectInit();
     move_motor.FaceToDirectionImmediately(direction);
     move_motor.speed *= speed_rate;
 }
Esempio n. 4
0
 public void UseItem(IActorPart actor)
 {
     operations[0]?.callBack?.Invoke(this, actor.GetBackpack());
     if (consumable)
     {
         this.number--;
         if (number <= 0)
         {
             actor.GetBackpack().RemoveItem(this);
             Destroy(this);
             Destroy(gameObject);
         }
     }
 }
Esempio n. 5
0
        public void BindItem(IActorPart item_owner, Item item)
        {
            item_name.text  = item.GetName();
            item_desc.text  = item.GetDescription();
            item_attr.text  = item.GetAttribute();
            item_type.text  = item.GetItemType();
            item_img.sprite = item.GetImage().sprite;
            item_img.color  = item.GetImage().color;
            int       i        = 0;
            IBackpack backpack = item_owner.GetBackpack();

            foreach (ItemOperation op in item.GetOperations())
            {
                UIButton btn;
                if (i < buttons.Count)
                {
                    btn = buttons[i];
                }
                else
                {
                    btn = Instantiate(btn_prototype, buttons_group.transform);
                    buttons.Add(btn);
                }
                btn.SetText(op.operation_name);
                switch (op.tag)
                {
                default:
                case OperationOverTag.Default:
                    btn.SetOnclick(() => op.callBack.Invoke(item, backpack));
                    break;

                case OperationOverTag.Close_Info_After_Op:
                    btn.SetOnclick(() => { op.callBack.Invoke(item, backpack); Hide(); });
                    break;

                case OperationOverTag.Close_Backpack_After_Op:
                    btn.SetOnclick(() => { op.callBack.Invoke(item, backpack); Hide(); backpackUI.Hide(); });
                    break;
                }
                btn.Show();
                i++;
            }
            for (; i < buttons.Count; i++)
            {
                buttons[i].Hide();
            }
        }
Esempio n. 6
0
 private void OnTriggerStay2D(Collider2D other)
 {
     if (auto_collect)
     {
         IActorPart actor = other.gameObject.GetComponent <IActorPart>();
         if (actor != null)
         {
             CollectBy(actor.GetBackpack());
         }
     }
     else
     if (InputManager.GetCollectDown())
     {
         IActorPart actor = other.gameObject.GetComponent <IActorPart>();
         if (actor != null)
         {
             CollectBy(actor.GetBackpack());
         }
     }
 }
Esempio n. 7
0
 protected void TakeOffItem(Item item, IActorPart part)
 {
     part.GetGear().TakeOff(equipment);
 }
Esempio n. 8
0
 protected void EquipItem(Item item, IActorPart part)
 {
     part.GetGear().Equip(equipment);
 }