2177 {
2178
2179 if (!other_item ||
GetType() != other_item.GetType() || (
IsFullQuantity() && other_item.GetQuantity() > 0) || other_item ==
this)
2180 return false;
2181
2182 if (GetHealthLevel() == GameConstants.STATE_RUINED || other_item.GetHealthLevel() == GameConstants.STATE_RUINED)
2183 return false;
2184
2185
2187 return false;
2188
2189
2190 Magazine mag = Magazine.Cast(this);
2191 if (mag)
2192 {
2193 if (mag.GetAmmoCount() >= mag.GetAmmoMax())
2194 return false;
2195
2196 if (stack_max_limit)
2197 {
2198 Magazine other_mag = Magazine.Cast(other_item);
2199 if (other_item)
2200 {
2201 if (mag.GetAmmoCount() + other_mag.GetAmmoCount() > mag.GetAmmoMax())
2202 return false;
2203 }
2204
2205 }
2206 }
2207 else
2208 {
2209
2211 return false;
2212
2214 return false;
2215 }
2216
2217 PlayerBase player = null;
2218 if (CastTo(player, GetHierarchyRootPlayer()))
2219 {
2220 if (player.GetInventory().HasAttachment(this))
2221 return false;
2222
2223 if (player.IsItemsToDelete())
2224 return false;
2225 }
2226
2227 if (reservation_check && (GetInventory().HasInventoryReservation(this, null) || other_item.GetInventory().HasInventoryReservation(other_item, null)))
2228 return false;
2229
2230 int slotID;
2232 if (GetInventory().GetCurrentAttachmentSlotInfo(slotID,
slotName) && GetHierarchyParent().GetInventory().GetSlotLock(slotID))
2233 return false;
2234
2235 return true;
2236 }
eBleedingSourceType GetType()
PlayerSpawnPreset slotName
override float GetQuantity()
override int GetQuantityMax()
bool can_this_be_combined