2143 {
2144
2145 if (!other_item ||
GetType() != other_item.GetType() || (
IsFullQuantity() && other_item.GetQuantity() > 0) || other_item ==
this)
2146 return false;
2147
2148 if (GetHealthLevel() == GameConstants.STATE_RUINED || other_item.GetHealthLevel() == GameConstants.STATE_RUINED)
2149 return false;
2150
2151
2153 return false;
2154
2155
2156 Magazine mag = Magazine.Cast(this);
2157 if (mag)
2158 {
2159 if (mag.GetAmmoCount() >= mag.GetAmmoMax())
2160 return false;
2161
2162 if (stack_max_limit)
2163 {
2164 Magazine other_mag = Magazine.Cast(other_item);
2165 if (other_item)
2166 {
2167 if (mag.GetAmmoCount() + other_mag.GetAmmoCount() > mag.GetAmmoMax())
2168 return false;
2169 }
2170
2171 }
2172 }
2173 else
2174 {
2175
2177 return false;
2178
2180 return false;
2181 }
2182
2183 PlayerBase player = null;
2184 if (CastTo(player, GetHierarchyRootPlayer()))
2185 {
2186 if (player.GetInventory().HasAttachment(this))
2187 return false;
2188
2189 if (player.IsItemsToDelete())
2190 return false;
2191 }
2192
2193 if (reservation_check && (GetInventory().HasInventoryReservation(this, null) || other_item.GetInventory().HasInventoryReservation(other_item, null)))
2194 return false;
2195
2196 int slotID;
2198 if (GetInventory().GetCurrentAttachmentSlotInfo(slotID,
slotName) && GetHierarchyParent().GetInventory().GetSlotLock(slotID))
2199 return false;
2200
2201 return true;
2202 }
eBleedingSourceType GetType()
PlayerSpawnPreset slotName
override float GetQuantity()
override int GetQuantityMax()
bool can_this_be_combined