Adds an icon for non-abstract nodrop items (#29452)

This commit is contained in:
Contrabang
2025-06-07 13:25:01 +00:00
committed by GitHub
parent 74e1c13e64
commit f9e95a2b1d
35 changed files with 114 additions and 86 deletions
@@ -36,7 +36,9 @@
if(!weapon_ref)
create_new_weapon()
weapon_ref.flags |= (ABSTRACT | NODROP) // Just in case the item doesn't start with both of these, or somehow loses them.
// Just in case the item doesn't start with both of these, or somehow loses them.
weapon_ref.flags |= ABSTRACT
weapon_ref.set_nodrop(TRUE, user)
if(HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || (user.get_active_hand() && !user.drop_item()))
flayer.send_swarm_message("We cannot manifest [weapon_ref] into our active hand...")
+3 -3
View File
@@ -32,7 +32,7 @@
if(security_lock)
security_lock = FALSE
locked = FALSE
flags &= ~NODROP
set_nodrop(FALSE, loc)
desc += " This one appears to be broken."
return TRUE
else
@@ -46,7 +46,7 @@
else if(ACCESS_BRIG in user.get_access())
to_chat(user, "<span class='warning'>The muzzle unlocks with a click.</span>")
locked = FALSE
flags &= ~NODROP
set_nodrop(FALSE, loc)
return TRUE
to_chat(user, "<span class='warning'>You must be wearing a security ID card or have one in your inactive hand to remove the muzzle.</span>")
@@ -55,7 +55,7 @@
/obj/item/clothing/mask/muzzle/proc/do_lock(mob/living/carbon/human/user)
if(security_lock)
locked = TRUE
flags |= NODROP
set_nodrop(TRUE, loc)
return TRUE
return FALSE
@@ -216,7 +216,7 @@
/obj/item/clothing/shoes/magboots/vox/attack_self__legacy__attackchain(mob/user)
if(magpulse)
flags &= ~NODROP
set_nodrop(FALSE, loc)
to_chat(user, "You relax your deathgrip on the flooring.")
else
//make sure these can only be used when equipped.
@@ -226,7 +226,7 @@
if(H.shoes != src)
to_chat(user, "<span class='warning'>You will have to put on [src] before you can do that.</span>")
return
flags |= NODROP //kinda hard to take off magclaws when you are gripping them tightly.
set_nodrop(TRUE, loc) //kinda hard to take off magclaws when you are gripping them tightly.
to_chat(user, "You dig your claws deeply into the flooring, bracing yourself.")
to_chat(user, "It would be hard to take off [src] without relaxing your grip first.")
return ..()
@@ -238,7 +238,7 @@
user.visible_message("[src] go limp as they are removed from [usr]'s feet.", "[src] go limp as they are removed from your feet.")
magpulse = FALSE
no_slip = FALSE
flags &= ~NODROP
set_nodrop(FALSE, loc)
/obj/item/clothing/shoes/magboots/vox/examine(mob/user)
. = ..()
@@ -138,9 +138,9 @@
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helmet")
helmet = user.head
helmet.flags |= NODROP
helmet.set_nodrop(TRUE, loc)
helmet.suit = src
flags |= NODROP
set_nodrop(TRUE, loc)
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner")
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver")
to_chat(user, "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view")
@@ -169,11 +169,11 @@
to_chat(user, "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver")
to_chat(user, "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner")
to_chat(user, "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet")
helmet.flags &= ~NODROP
helmet.set_nodrop(FALSE, loc)
helmet.suit = null
helmet = null
to_chat(user, "logout")
flags &= ~NODROP
set_nodrop(FALSE, loc)
cooldown = world.time + cooldowntime * 1.5
activated = FALSE
activating = FALSE
+1 -1
View File
@@ -269,7 +269,7 @@
C.name = "Sax"
C.real_name = "Sax"
var/obj/item/clothing/head/det_hat/D = new
D.flags |= NODROP
D.set_nodrop(TRUE, loc)
C.place_on_head(D)
C.visible_message("<span class='notice'>[C] suddenly winks into existence at [user]'s feet!</span>")
to_chat(user, "<span class='danger'>[src] crumbles to dust in your hands!</span>")
@@ -264,8 +264,8 @@
user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER
user.add_atom_colour(BERSERK_COLOUR, TEMPORARY_COLOUR_PRIORITY)
ADD_TRAIT(user, TRAIT_CHUNKYFINGERS, BERSERK_TRAIT)
flags |= NODROP
suit.flags |= NODROP
set_nodrop(TRUE)
suit.set_nodrop(TRUE, loc)
berserk_active = TRUE
START_PROCESSING(SSobj, src)
@@ -284,8 +284,8 @@
user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, BERSERK_COLOUR)
REMOVE_TRAIT(user, TRAIT_CHUNKYFINGERS, BERSERK_TRAIT)
flags &= ~NODROP
suit.flags &= ~NODROP
set_nodrop(FALSE)
suit.set_nodrop(FALSE)
STOP_PROCESSING(SSobj, src)
/datum/action/item_action/berserk_mode
@@ -396,7 +396,7 @@
qdel(src) // Oh no! Oh well a new rod will be made from the STATUS_EFFECT_HIPPOCRATIC_OATH
return
flags |= NODROP // Readd the nodrop
set_nodrop(TRUE, loc)
var/mob/living/carbon/human/H = owner
var/limb_regrown = FALSE
@@ -139,7 +139,7 @@
target.equip_to_slot_if_possible(src, ITEM_SLOT_MASK, FALSE, TRUE)
if(!sterile)
M.KnockDown(impregnation_time + 2 SECONDS)
flags |= NODROP //You can't take it off until it dies... or figures out you're an IPC.
set_nodrop(TRUE, loc) //You can't take it off until it dies... or figures out you're an IPC.
GoIdle() //so it doesn't jump the people that tear it off
var/obj/structure/bed/nest/our_nest = M.buckled
@@ -149,7 +149,7 @@
return TRUE
/obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target)
flags &= ~NODROP
set_nodrop(FALSE, loc)
if(!target || target.stat == DEAD || loc != target) //was taken off or something
return
@@ -244,9 +244,11 @@
if(ITEM_SLOT_LEFT_HAND)
l_hand = I
update_inv_l_hand()
update_hands_hud()
if(ITEM_SLOT_RIGHT_HAND)
r_hand = I
update_inv_r_hand()
update_hands_hud()
if(ITEM_SLOT_BELT)
belt = I
update_inv_belt()
@@ -20,7 +20,7 @@
/datum/superheroes/proc/fixflags(mob/living/carbon/human/H)
for(var/obj/item/W in H.get_all_slots())
W.flags |= NODROP
W.set_nodrop(TRUE, H)
/datum/superheroes/proc/assign_mutations(mob/living/carbon/human/H)
var/list/default_mutations = list(GLOB.regenerateblock, GLOB.breathlessblock, GLOB.coldblock)
@@ -51,7 +51,7 @@
W.icon_state = "lifetimeid"
W.SetOwnerInfo(H)
W.UpdateName()
W.flags |= NODROP
W.set_nodrop(TRUE, H)
H.equip_to_slot_or_del(W, ITEM_SLOT_ID)
H.regenerate_icons()
@@ -233,7 +233,7 @@
W.access = list(ACCESS_MAINT_TUNNELS)
W.assignment = "Greyshirt"
W.rank = "Greyshirt"
W.flags |= NODROP
W.set_nodrop(TRUE, W.loc)
W.SetOwnerInfo(target)
W.UpdateName()
target.equip_to_slot_or_del(W, ITEM_SLOT_ID)
@@ -138,7 +138,7 @@
/obj/item/robot_module/proc/fix_modules()
for(var/item in modules)
var/obj/item/I = item
I.flags |= NODROP
I.set_nodrop(TRUE)
I.mouse_opacity = MOUSE_OPACITY_OPAQUE
/**
@@ -184,7 +184,7 @@
I.forceMove(src)
modules += I
I.flags |= NODROP
I.set_nodrop(TRUE)
I.mouse_opacity = MOUSE_OPACITY_OPAQUE
if(requires_rebuild)
@@ -49,7 +49,7 @@
remove_from_all_data_huds()
var/obj/item/card/id/access_card = new (src)
access_card.access = get_all_accesses()//THERE IS NO ESCAPE
access_card.flags |= NODROP
access_card.set_nodrop(TRUE)
invalid_area_typecache = typecacheof(invalid_area_typecache)
Manifest()
if(!current_victim)
+2 -2
View File
@@ -81,7 +81,7 @@
overslot.forceMove(part)
RegisterSignal(part, COMSIG_ATOM_EXITED, PROC_REF(on_overslot_exit))
if(wearer.equip_to_slot_if_possible(part, part.slot_flags, disable_warning = TRUE))
part.flags |= NODROP
part.set_nodrop(TRUE)
if(mass)
return TRUE
wearer.visible_message("<span class='notice'>[wearer]'s [part.name] deploy[part.p_s()] with a mechanical hiss.</span>",
@@ -103,7 +103,7 @@
return FALSE
to_chat(user, "<span class='warning'>You already have retracted there!</span>")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
part.flags &= ~NODROP
part.set_nodrop(FALSE)
wearer.transfer_item_to(part, src, force = TRUE)
if(overslotting_parts[part])
UnregisterSignal(part, COMSIG_ATOM_EXITED)
+10 -10
View File
@@ -55,12 +55,12 @@ Contents:
suitShoes = user.shoes
suitOccupant = user
flags |= NODROP
suitHood.flags |= NODROP
suitMask.flags |= NODROP
suitGloves.flags |= NODROP
set_nodrop(TRUE)
suitHood.set_nodrop(TRUE)
suitMask.set_nodrop(TRUE)
suitGloves.set_nodrop(TRUE)
suitGloves.pickpocket = 1
suitShoes.flags |= NODROP
suitShoes.set_nodrop(TRUE)
suitShoes.slowdown = -2
icon_state = (user.gender == MALE ? "s-ninjan" : "s-ninjanf")
@@ -70,12 +70,12 @@ Contents:
return 1
else
flags &= ~NODROP
suitHood.flags &= ~NODROP
suitMask.flags &= ~NODROP
suitGloves.flags &= ~NODROP
set_nodrop(FALSE)
suitHood.set_nodrop(FALSE)
suitMask.set_nodrop(FALSE)
suitGloves.set_nodrop(FALSE)
suitGloves.pickpocket = 0
suitShoes.flags &= ~NODROP
suitShoes.set_nodrop(FALSE)
suitShoes.slowdown = -1
icon_state = "s-ninja"
suitGloves.icon_state = "s-ninja"
+1 -1
View File
@@ -107,7 +107,7 @@
holder = item
holder.flags |= NODROP
holder.set_nodrop(TRUE, owner)
holder.resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
holder.slot_flags = null
holder.w_class = WEIGHT_CLASS_HUGE
@@ -62,14 +62,14 @@
if(owner.l_hand.flags & NODROP)
l_hand_ignore = TRUE
else
owner.l_hand.flags |= NODROP
owner.l_hand.set_nodrop(TRUE, owner)
l_hand_ignore = FALSE
if(r_hand_obj)
if(owner.r_hand.flags & NODROP)
r_hand_ignore = TRUE
else
owner.r_hand.flags |= NODROP
owner.r_hand.set_nodrop(TRUE, owner)
r_hand_ignore = FALSE
if(!l_hand_obj && !r_hand_obj)
@@ -116,9 +116,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_drop/proc/release_items()
active = FALSE
if(!l_hand_ignore && l_hand_obj)
l_hand_obj.flags &= ~NODROP
l_hand_obj.set_nodrop(FALSE, owner)
if(!r_hand_ignore && r_hand_obj)
r_hand_obj.flags &= ~NODROP
r_hand_obj.set_nodrop(FALSE, owner)
/obj/item/organ/internal/cyberimp/brain/anti_drop/remove(mob/living/carbon/M, special = 0)
if(active)
@@ -210,7 +210,7 @@
/obj/item/organ/external/hand/proc/update_hand_missing()
// we need to come back to this once the hand is actually removed/dead
if(!owner) // Rather not have this trigger on already remove limbs
if(!owner) // Rather not have this trigger on already removed limbs
return
addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living/carbon/human, update_hands_hud), 0))