Things that iterate cells avoid grabbing abstract cells (like Ethereal stomachs) (#92987)

## About The Pull Request

Anything that iterates contents for all cells now use a new helper,
`get_all_cells`, which only checks equipped items and storage contents
for cells, rather than... everything

This means we avoid grabbing abstract cells, and thus avoid this

<img width="676" height="113" alt="image"
src="https://github.com/user-attachments/assets/955f38e5-7428-477d-ab6a-dcc338960c99"
/>

Note: 

This means these random recharge-all objects (like Xenobio stuff) no
longer recharges Ethereals
If we want these objects recharging Ethereals, we should *probably* add
a bespoke interaction

## Changelog

🆑 Melbert
fix: Things that recharge "all cells on your person" now avoid
recharging Ethereal stomachs, and thus, will no longer cause spontaneous
overcharge or weird chat messages
/🆑
This commit is contained in:
MrMelbert
2025-09-15 16:38:54 -07:00
committed by GitHub
parent cae3148ad7
commit 8a4613b980
6 changed files with 28 additions and 21 deletions
@@ -108,7 +108,7 @@
return
var/list/batteries = list()
for(var/obj/item/stock_parts/power_store/cell in owner.get_all_contents())
for(var/obj/item/stock_parts/power_store/cell in owner.get_all_cells())
if(cell.used_charge())
batteries += cell