mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Adds an icon for non-abstract nodrop items (#29452)
This commit is contained in:
@@ -760,3 +760,5 @@ do { \
|
||||
|
||||
#define DIRECT_EXPLOSIVE_TRAP_DEFUSE 1
|
||||
#define DIRECT_EXPLOSIVE_TRAP_IGNORE 2
|
||||
|
||||
#define NODROP_TOGGLE "toggle"
|
||||
|
||||
@@ -460,22 +460,30 @@
|
||||
. = ..()
|
||||
if(!handcuff_overlay)
|
||||
var/state = (slot_id == ITEM_SLOT_RIGHT_HAND) ? "markus" : "gabrielle"
|
||||
handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state)
|
||||
handcuff_overlay = image(icon = 'icons/mob/screen_gen.dmi', icon_state = state)
|
||||
|
||||
if(hud && hud.mymob)
|
||||
if(iscarbon(hud.mymob))
|
||||
var/mob/living/carbon/C = hud.mymob
|
||||
if(C.handcuffed)
|
||||
. += handcuff_overlay
|
||||
if(!hud || !hud.mymob)
|
||||
return
|
||||
|
||||
var/obj/item/organ/external/hand = C.get_organ("[slot_id == ITEM_SLOT_LEFT_HAND ? "l" : "r"]_hand")
|
||||
if(!isalien(C) && (!hand || !hand.is_usable()))
|
||||
. += blocked_overlay
|
||||
if(iscarbon(hud.mymob))
|
||||
var/mob/living/carbon/C = hud.mymob
|
||||
if(C.handcuffed)
|
||||
. += handcuff_overlay
|
||||
|
||||
if(slot_id == ITEM_SLOT_LEFT_HAND && hud.mymob.hand)
|
||||
var/obj/item/organ/external/hand = C.get_organ("[slot_id == ITEM_SLOT_LEFT_HAND ? "l" : "r"]_hand")
|
||||
if(!isalien(C) && (!hand || !hand.is_usable()))
|
||||
. += blocked_overlay
|
||||
|
||||
if(slot_id == ITEM_SLOT_LEFT_HAND)
|
||||
if(hud.mymob.hand)
|
||||
. += "hand_active"
|
||||
else if(slot_id == ITEM_SLOT_RIGHT_HAND && !hud.mymob.hand)
|
||||
if(hud.mymob.l_hand && (hud.mymob.l_hand.flags & NODROP) && !(hud.mymob.l_hand.flags & ABSTRACT))
|
||||
. += "locked_l"
|
||||
else if(slot_id == ITEM_SLOT_RIGHT_HAND)
|
||||
if(!hud.mymob.hand)
|
||||
. += "hand_active"
|
||||
if(hud.mymob.r_hand && (hud.mymob.r_hand?.flags & NODROP) && !(hud.mymob.r_hand.flags & ABSTRACT))
|
||||
. += "locked"
|
||||
|
||||
/atom/movable/screen/inventory/hand/Click()
|
||||
// At this point in client Click() code we have passed the 1/10 sec check and little else
|
||||
|
||||
@@ -1414,7 +1414,7 @@
|
||||
B.desc = "Sometimes, someone's just gotta die."
|
||||
var/obj/item/radio/headset/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.flags |= NODROP
|
||||
R.set_nodrop(TRUE, H)
|
||||
|
||||
/datum/outfit/admin/honksquad
|
||||
name = "Honksquad"
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
return FALSE
|
||||
|
||||
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
|
||||
magichead.flags |= NODROP | DROPDEL //curses!
|
||||
magichead.flags |= DROPDEL //curses!
|
||||
magichead.set_nodrop(TRUE)
|
||||
magichead.flags_inv = null //so you can still see their face
|
||||
magichead.voicechange = TRUE //NEEEEIIGHH
|
||||
target.visible_message( "<span class='danger'>[target]'s face lights up in fire, and after the event a horse's head takes its place!</span>", \
|
||||
|
||||
@@ -85,7 +85,7 @@ CONTENTS:
|
||||
combat_armor = getArmor(arglist(combat_armor))
|
||||
|
||||
/obj/item/clothing/suit/armor/abductor/vest/proc/toggle_nodrop()
|
||||
flags ^= NODROP
|
||||
set_nodrop(NODROP_TOGGLE, loc)
|
||||
if(ismob(loc))
|
||||
to_chat(loc, "<span class='notice'>Your vest is now [flags & NODROP ? "locked" : "unlocked"].</span>")
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
var/obj/item/clothing/suit/armor/abductor/vest/V = locate() in H
|
||||
if(V)
|
||||
console.vest = V
|
||||
V.flags |= NODROP
|
||||
V.set_nodrop(TRUE, H)
|
||||
|
||||
var/obj/item/abductor/gizmo/G = locate() in H.get_item_by_slot(ITEM_SLOT_BACK)
|
||||
if(G)
|
||||
|
||||
@@ -1109,7 +1109,8 @@
|
||||
if(ishuman(user))
|
||||
to_chat(user, "<font size='15' color='red'><b>HOR-SIE HAS RISEN</b></font>")
|
||||
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
|
||||
magichead.flags |= NODROP | DROPDEL //curses!
|
||||
magichead.flags |= DROPDEL //curses!
|
||||
magichead.set_nodrop(TRUE, magichead.loc)
|
||||
magichead.flags_inv = null //so you can still see their face
|
||||
magichead.voicechange = TRUE //NEEEEIIGHH
|
||||
if(!user.drop_item_to_ground(user.wear_mask))
|
||||
|
||||
@@ -144,7 +144,8 @@
|
||||
new /obj/effect/hallucination/delusion(get_turf(victim), victim, 'icons/mob/mob.dmi', "daemon")
|
||||
|
||||
var/obj/item/chainsaw/doomslayer/chainsaw = new(victim.loc)
|
||||
chainsaw.flags |= NODROP | DROPDEL
|
||||
chainsaw.flags |= DROPDEL
|
||||
chainsaw.set_nodrop(TRUE, victim)
|
||||
victim.drop_l_hand()
|
||||
victim.drop_r_hand()
|
||||
victim.put_in_hands(chainsaw)
|
||||
|
||||
@@ -1068,3 +1068,15 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
|
||||
/// Changes the speech verb when wearing this item if a value is returned
|
||||
/obj/item/proc/change_speech_verb()
|
||||
return
|
||||
|
||||
/obj/item/proc/set_nodrop(set_value, user)
|
||||
switch(set_value)
|
||||
if(TRUE)
|
||||
flags |= NODROP
|
||||
if(FALSE)
|
||||
flags &= ~NODROP
|
||||
if(NODROP_TOGGLE)
|
||||
flags ^= NODROP
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.update_hands_hud()
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
user.put_in_hands(A)
|
||||
A.add_fingerprint(user)
|
||||
if(src.flags & NODROP)
|
||||
A.flags |= NODROP
|
||||
A.set_nodrop(TRUE)
|
||||
|
||||
|
||||
/obj/item/electropack/proc/handle_shock()
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
do_attack_animation(master, used_item = src)
|
||||
master.emote("scream")
|
||||
master.remove_status_effect(STATUS_EFFECT_HISGRACE)
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, master)
|
||||
master.Weaken(6 SECONDS)
|
||||
master.adjustBruteLoss(1000)
|
||||
playsound(master, 'sound/effects/splat.ogg', 100, FALSE)
|
||||
@@ -251,25 +251,25 @@
|
||||
update_stats()
|
||||
|
||||
/obj/item/his_grace/proc/update_stats()
|
||||
var/mob/living/master = get_atom_on_turf(src, /mob/living)
|
||||
if(ascended) // Ascended is set to a specific bloodthirst anyways
|
||||
force = initial(force) + force_bonus
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, master)
|
||||
return
|
||||
|
||||
flags &= ~NODROP
|
||||
var/mob/living/master = get_atom_on_turf(src, /mob/living)
|
||||
set_nodrop(FALSE, master)
|
||||
switch(bloodthirst)
|
||||
if(HIS_GRACE_CONSUME_OWNER to HIS_GRACE_FALL_ASLEEP)
|
||||
if(HIS_GRACE_CONSUME_OWNER > prev_bloodthirst)
|
||||
master.visible_message("<span class='userdanger'>[src] enters a frenzy!</span>")
|
||||
if(HIS_GRACE_STARVING to HIS_GRACE_CONSUME_OWNER)
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, master)
|
||||
if(HIS_GRACE_STARVING > prev_bloodthirst)
|
||||
master.visible_message("<span class='boldwarning'>[src] is starving!</span>", "<span class='his_grace big'>[src]'s bloodlust overcomes you. [src] must be fed, or you will become His meal.\
|
||||
[force_bonus < 15 ? " And still, His power grows.":""]</span>")
|
||||
force_bonus = max(force_bonus, 15)
|
||||
if(HIS_GRACE_FAMISHED to HIS_GRACE_STARVING)
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, master)
|
||||
if(HIS_GRACE_FAMISHED > prev_bloodthirst)
|
||||
master.visible_message("<span class='warning'>[src] is very hungry!</span>", "<span class='his_grace big'>Spines sink into your hand. [src] must feed immediately.\
|
||||
[force_bonus < 10 ? " His power grows.":""]</span>")
|
||||
|
||||
@@ -349,26 +349,26 @@
|
||||
|
||||
/obj/item/rcd/suicide_act(mob/living/user)
|
||||
user.Immobilize(10 SECONDS) // You cannot move.
|
||||
flags |= NODROP // You cannot drop. You commit to die.
|
||||
set_nodrop(TRUE, user)
|
||||
if(mode == MODE_DECON)
|
||||
user.visible_message("<span class='suicide'>[user] points [src] at [user.p_their()] chest and pulls the trigger. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
var/datum/rcd_act/remove_user/act = new()
|
||||
if(!act.try_act(user, src, user))
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
return SHAME
|
||||
user.visible_message("<span class='suicide'>[user] deconstructs [user.p_themselves()] with [src]!</span>")
|
||||
for(var/obj/item/W in user) // Do not delete all their stuff.
|
||||
user.drop_item_to_ground(W) // Dump everything on the floor instead.
|
||||
flags &= ~NODROP // NODROP must be removed so the RCD doesn't get dusted along with them. Having this come after the unequipping puts the RCD on top of the pile of stuff.
|
||||
set_nodrop(FALSE, user)
|
||||
user.dust() // (held items fall to the floor when dusting).
|
||||
return OBLITERATION
|
||||
|
||||
user.visible_message("<span class='suicide'>[user] puts the barrel of [src] into [user.p_their()] mouth and pulls the trigger. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
if(!interact_with_atom(get_turf(src), user, TRUE))
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
return SHAME
|
||||
user.visible_message("<span class='suicide'>[user] explodes as [src] builds a structure inside [user.p_them()]!</span>")
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
user.gib()
|
||||
return OBLITERATION
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/obj/item/grenade/syndieminibomb/fake/attack_self__legacy__attackchain(mob/user)
|
||||
if(!active)
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, user)
|
||||
to_chat(user, "<span class='userdanger'>As you activate the bomb, it emits a substance that sticks to your hand! It won't come off!</span>")
|
||||
to_chat(user, "<span class='sans'>Uh oh.</span>")
|
||||
. = ..()
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
icon_state = "disintegrate"
|
||||
item_state = "disintegrate"
|
||||
desc = "This hand of yours glows with an awesome power!"
|
||||
flags = ABSTRACT | NODROP| DROPDEL
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
hitsound = 'sound/weapons/sear.ogg'
|
||||
damtype = BURN
|
||||
|
||||
@@ -23,18 +23,18 @@
|
||||
if(!gripped)
|
||||
gripped = TRUE
|
||||
to_chat(user, "You tighten your grip on [src], ensuring you won't drop it.")
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, user)
|
||||
ADD_TRAIT(src, TRAIT_SKIP_EXAMINE, "knuckledusters")
|
||||
else
|
||||
gripped = FALSE
|
||||
to_chat(user, "You relax your grip on [src].")
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
REMOVE_TRAIT(src, TRAIT_SKIP_EXAMINE, "knuckledusters")
|
||||
|
||||
/obj/item/melee/knuckleduster/dropped(mob/user, silent)
|
||||
. = ..()
|
||||
gripped = FALSE
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
REMOVE_TRAIT(src, TRAIT_SKIP_EXAMINE, "knuckledusters")
|
||||
|
||||
/obj/item/melee/knuckleduster/attack__legacy__attackchain(mob/living/target, mob/living/user)
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
to_chat(user, "<span class='notice'>[src] currently has no tank attached to it.</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>As you detach [thetank] from [src], the fist unlocks.</span>")
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, user)
|
||||
tank.forceMove(get_turf(user))
|
||||
user.put_in_hands(tank)
|
||||
tank = null
|
||||
@@ -84,8 +84,7 @@
|
||||
to_chat(user, "<span class='notice'>As you hook [thetank] up to [src], the fist locks into place around your arm.</span>")
|
||||
tank = thetank
|
||||
thetank.forceMove(src)
|
||||
flags |= NODROP
|
||||
|
||||
set_nodrop(TRUE, user)
|
||||
|
||||
/obj/item/melee/powerfist/attack__legacy__attackchain(mob/living/target, mob/living/user)
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
|
||||
@@ -430,7 +430,7 @@
|
||||
if(zip_time)
|
||||
slowdown = 1
|
||||
if(antidrop_on_zip)
|
||||
flags ^= NODROP
|
||||
set_nodrop(NODROP_TOGGLE, user)
|
||||
update_icon(UPDATE_ICON_STATE)
|
||||
return
|
||||
|
||||
@@ -439,7 +439,7 @@
|
||||
for(var/obj/item/storage/container in src)
|
||||
container.hide_from_all() // Hide everything inside the bag too
|
||||
if(antidrop_on_zip)
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, user)
|
||||
update_icon(UPDATE_ICON_STATE)
|
||||
|
||||
/obj/item/storage/backpack/duffel/update_icon_state()
|
||||
|
||||
@@ -571,10 +571,10 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/butcher_chainsaw/proc/wield() //you can't disarm an active chainsaw, you crazy person.
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, loc)
|
||||
|
||||
/obj/item/butcher_chainsaw/proc/unwield()
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, loc)
|
||||
|
||||
// SINGULOHAMMER
|
||||
/obj/item/singularityhammer
|
||||
@@ -878,7 +878,7 @@
|
||||
user.visible_message("<span class='warning'>[user] deploys [W] from [user.p_their()] wrists in a shower of sparks!</span>", "<span class='notice'>You deploy [W] from your wrists!</span>", "<span class='warning'>You hear the shower of sparks!</span>")
|
||||
user.put_in_hands(W)
|
||||
on_cooldown = TRUE
|
||||
flags |= NODROP
|
||||
set_nodrop(TRUE, user)
|
||||
addtimer(CALLBACK(src, PROC_REF(reboot)), 2 MINUTES)
|
||||
if(world.time > next_spark_time)
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
@@ -900,7 +900,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/proc/reboot()
|
||||
on_cooldown = FALSE
|
||||
flags &= ~NODROP
|
||||
set_nodrop(FALSE, loc)
|
||||
atom_say("Internal plasma canisters recharged. Gloves sufficiently cooled")
|
||||
|
||||
/// Max number of atoms a broom can sweep at once
|
||||
|
||||
@@ -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...")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Reference in New Issue
Block a user