[MODULAR][NO-GBP] (Hopefully) Fixes Hard Deletes with NIFs (#21354)

* this (should) fix things.

* Update nifsofts.dm

* I've been waiting for this!
This commit is contained in:
Pinta
2023-06-04 23:38:08 -04:00
committed by GitHub
parent 200667bef7
commit b424a993fd
4 changed files with 9 additions and 10 deletions
@@ -327,7 +327,7 @@
return FALSE
loaded_nifsofts += loaded_nifsoft
loaded_nifsoft.parent_nif = src
loaded_nifsoft.parent_nif = WEAKREF(src)
loaded_nifsoft.linked_mob = linked_mob
rewards_points += (loaded_nifsoft.rewards_points_rate * loaded_nifsoft.purchase_price)
@@ -68,18 +68,17 @@
if(active)
activate()
if(!parent_nif)
return ..()
linked_mob = null
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif
installed_nif.loaded_nifsofts.Remove(src)
parent_nif = null
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif.resolve()
if(installed_nif)
installed_nif.loaded_nifsofts.Remove(src)
return ..()
/// Activates the parent NIFSoft
/datum/nifsoft/proc/activate()
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif.resolve()
if(installed_nif.broken)
installed_nif.balloon_alert(installed_nif.linked_mob, "your NIF is broken")
@@ -111,7 +110,7 @@
///Refunds the activation cost of a NIFSoft.
/datum/nifsoft/proc/refund_activation_cost()
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif
var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif.resolve()
installed_nif.change_power_level(-activation_cost)
///Removes the cooldown from a NIFSoft
@@ -22,7 +22,7 @@
soulcatcher_action.Grant(linked_mob)
soulcatcher_action.parent_nifsoft = WEAKREF(src)
var/obj/item/organ/internal/cyberimp/brain/nif/target_nif = parent_nif
var/obj/item/organ/internal/cyberimp/brain/nif/target_nif = parent_nif.resolve()
var/datum/component/soulcatcher/new_soulcatcher = target_nif.AddComponent(/datum/component/soulcatcher/nifsoft)
for(var/room in saved_soulcatcher_rooms)
@@ -128,7 +128,7 @@
if(ishuman(usr))
var/mob/living/carbon/human/human_user = usr
var/datum/nifsoft/soulcatcher/soulcatcher_nifsoft = human_user.find_nifsoft(/datum/nifsoft/soulcatcher)
if(soulcatcher_nifsoft && (parent != soulcatcher_nifsoft.parent_nif))
if(soulcatcher_nifsoft && (parent != soulcatcher_nifsoft.parent_nif.resolve()))
var/datum/component/soulcatcher/nifsoft_soulcatcher = soulcatcher_nifsoft.linked_soulcatcher.resolve()
if(istype(nifsoft_soulcatcher))
available_rooms.Add(nifsoft_soulcatcher.soulcatcher_rooms)