Fixed issue where removing the power cell would prevent certain checks
on robot components. Also cleaned up
/mob/living/silicon/robot/proc/use_power(), moved code related to status
for better SRP. Added a line to the examine text to hint that the borg
can still move without power.
Sorry for all of this being in a single commit, things got screwed up
with git.
While browsing through my server's code looking for possible exploits to fix, i noticed the following :
The autolathe can be used to duplicate any and all objs.
The faulty code accepts any refID from the usr without a safetycheck to see if the requested obj is in the autolathe_recipes list.
This works "only" on objs because it will trigger a runtime error if the object has no material vars.
The default buildcost values for obj are zero, so it always goes through the materials-check, but it would not be sufficient to plug this exploit at this point.
The trivial fix is to have a check to see if the given refID is in the autolathe_recipes list, although a datum-based construction method would probably be more robust.
As basically identical autolathe code appears to be used in Baycode , /tg/, /vg/, Para, and all other builds i could look at, i assumed this exploit has been undetected since Goon.
And indeed, the faulty code is present in Gooncode rev4407 and has been ever since.
It may look like Supply, Operations, Hospitality and Miscellaneous might
not be filled enough with choices, but I'll see about making a huge
cargo update on dev.
The E-bow with the stun is currently the most powerful weapon in the game. Stuns on hit, causes immediate damage, unlimited ammo with recharge, and the stun is not affected by armor. You can viably stunlock someone to death just by occasionally shooting them without running out of ammo. Horrible design and it warrants an immediate removal until I finish my E-bow changes later.
Removes del(giver) from pipeline/merge(), turf/assume_air() and
atom/assume_air().
Thanks to valzargaming on reddit/github for pointing it out.
fixes#4717
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Comments erroneously stated that a value of 0.002 would convert 1000
watts to 20 charge per tick, when in reality 1000*0.002 = 2 not 20.
Similarly for CHARGELEVEL.
This was probably bound to happen either way the previous version was based upon a faulty understanding of how the areas worked this is much more robust and only messes with the master areas
and master areas needing power updates call power updates for the each of it's child areas. Also added where messing with SMESes called for an update on all areas power consumption, probably
not required but doing so either way.
We also rebuild the active_areas list every 5 minutes, if you get a engineer that wants to build a new area off of the station with APC's set rebuild_all_areas in the master controller and it will
update instantly, otherwise wait 5 minutes. The only downside to this 5 minutes is you might get free energy until that area becomes active.