public void ThrowItem(AbstractEntity thrower, int destX, int destY)
        {
            MobDataComponent mdc = (MobDataComponent)thrower.GetComponent(nameof(MobDataComponent));

            if (mdc == null || mdc.actionPoints > 0)
            {
                mdc.actionPoints -= 50;
                CanCarryComponent ccc = (CanCarryComponent)thrower.GetComponent(nameof(CanCarryComponent));
                if (ccc.CurrentItem != null)
                {
                    PositionComponent pos = (PositionComponent)ccc.CurrentItem.GetComponent(nameof(PositionComponent));
                    this.mapData.map[pos.x, pos.y].Add(ccc.CurrentItem);

                    this.gameLog.Add($"{ccc.CurrentItem.name} thrown.");

                    ccc.RemoveItem(ccc.CurrentItem);
                }
            }
        }
        public void DropItem(AbstractEntity unit, AbstractEntity item, List <AbstractEntity> mapSquare)
        {
            MobDataComponent mdc = (MobDataComponent)unit.GetComponent(nameof(MobDataComponent));

            if (mdc == null || mdc.actionPoints > 0)
            {
                mdc.actionPoints -= 20;
                CanCarryComponent  ccc     = (CanCarryComponent)unit.GetComponent(nameof(CanCarryComponent));
                PositionComponent  unitpos = (PositionComponent)item.GetComponent(nameof(PositionComponent));
                PositionComponent  itempos = (PositionComponent)item.GetComponent(nameof(PositionComponent));
                CarryableComponent cc      = (CarryableComponent)item.GetComponent(nameof(CarryableComponent));
                if (ccc.GetItems().Contains(item))
                {
                    ccc.RemoveItem(item);
                    cc.carrier = null;
                    mapSquare.Add(item);
                    itempos.x = unitpos.x;
                    itempos.y = unitpos.y;
                }
            }
        }