mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Fixes multiple protean issues. (Outfitting, species loss / add, suit assimilation, and you can be a ninja now) (#5947)
## About The Pull Request Fixes some really long standing Protean issues and minorly refractors Protean suit assimilation to be on the species datum. This also fixes antag selection like ninjas not functioning properly. You can be a protean ninja now. ## Why It's Good For The Game I think bugs are bad. ## Proof Of Testing I tested everything I can think of, <img width="1199" height="534" alt="image" src="https://github.com/user-attachments/assets/6906815b-5810-4ec2-bf9a-f928c636b1eb" /> ## Changelog 🆑 fix: Proteans can now be outfitted properly. fix: Suit assimilation no longer drops modules on the floor and it should act more sane. fix: Losing your species no longer deletes your items in storage or your assimilated suit. fix: Gaining the protean species allows you to properly be a Protean. fix: You can now be mid-round antag spawn as a Protean without being broken. fix: As a protean ninja, you can now emag doors and hack borgs. code: Minorly refactored suit assimilation. Please report any issues. /🆑
This commit is contained in:
@@ -626,36 +626,37 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/mod/control/proc/install(obj/item/mod/module/new_module, mob/user, silent = FALSE) // Bubber Edit: Silent = FALSE
|
||||
. = FALSE // BUBBER EDIT
|
||||
for(var/obj/item/mod/module/old_module as anything in modules)
|
||||
if(is_type_in_list(new_module, old_module.incompatible_modules) || is_type_in_list(old_module, new_module.incompatible_modules))
|
||||
if(user && !silent) // Bubber Edit: Silent arg
|
||||
balloon_alert(user, "incompatible with [old_module]!")
|
||||
playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return FALSE //Bubber Edit: Return False
|
||||
return
|
||||
var/complexity_with_module = complexity
|
||||
complexity_with_module += new_module.complexity
|
||||
if(complexity_with_module > complexity_max)
|
||||
if(user && !silent) // Bubber Edit: Silent arg
|
||||
if(user && !silent)
|
||||
balloon_alert(user, "above complexity max!")
|
||||
playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return FALSE //Bubber Edit: Return False
|
||||
return
|
||||
if(!new_module.has_required_parts(mod_parts))
|
||||
if(user && !silent) // Bubber Edit: Silent arg
|
||||
balloon_alert(user, "lacking required parts!")
|
||||
playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return FALSE //Bubber Edit:
|
||||
return
|
||||
if(!new_module.can_install(src))
|
||||
if(user && !silent) // Bubber Edit: Silent arg
|
||||
balloon_alert(user, "can't install!")
|
||||
playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return FALSE // Bubber edit: Return False
|
||||
return
|
||||
if(SEND_SIGNAL(src, COMSIG_MOD_TRY_INSTALL_MODULE, new_module, user) & MOD_ABORT_INSTALL)
|
||||
return
|
||||
if(SEND_SIGNAL(new_module, COMSIG_MODULE_TRY_INSTALL, src, user) & MOD_ABORT_INSTALL)
|
||||
return
|
||||
finish_install(new_module, user)
|
||||
return finish_install(new_module, user, silent) // BUBBER EDIT: Adds a return and silent arg.
|
||||
|
||||
/obj/item/mod/control/proc/finish_install(obj/item/mod/module/new_module, mob/user)
|
||||
/obj/item/mod/control/proc/finish_install(obj/item/mod/module/new_module, mob/user, silent = FALSE) // Bubber edit: Silent = FALSE
|
||||
new_module.forceMove(src)
|
||||
modules += new_module
|
||||
complexity += new_module.complexity
|
||||
@@ -666,7 +667,7 @@
|
||||
if(active && new_module.has_required_parts(mod_parts, need_active = TRUE))
|
||||
new_module.on_part_activation()
|
||||
new_module.part_activated = TRUE
|
||||
if(user) // Bubber Edit: Silent Arg
|
||||
if(user && !silent) // Bubber Edit: Silent Arg
|
||||
balloon_alert(user, "[new_module] added")
|
||||
playsound(src, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return TRUE // Bubber Edit: Return True
|
||||
|
||||
Reference in New Issue
Block a user