mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 04:27:35 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into turfs
# Conflicts: # icons/mob/feet.dmi # paradise.dme
This commit is contained in:
@@ -720,7 +720,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
/mob/dead/observer/proc/updateghostimages()
|
||||
if(!client)
|
||||
return
|
||||
if(!ghostvision)
|
||||
if(seedarkness || !ghostvision)
|
||||
client.images -= ghost_images
|
||||
else
|
||||
//add images for the 60inv things ghosts can normally see when darkness is enabled so they can see them now
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
|
||||
|
||||
var/global/list/boo_phrases=list(
|
||||
GLOBAL_LIST_INIT(boo_phrases, list(
|
||||
"You feel a chill run down your spine.",
|
||||
"You think you see a figure in your peripheral vision.",
|
||||
"What was that?",
|
||||
@@ -9,16 +7,17 @@ var/global/list/boo_phrases=list(
|
||||
"Something doesn't feel right...",
|
||||
"You feel a presence in the room.",
|
||||
"It feels like someone's standing behind you.",
|
||||
)
|
||||
))
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/boo
|
||||
name = "Boo!"
|
||||
desc = "Fuck with the living."
|
||||
|
||||
ghost = 1
|
||||
ghost = TRUE
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
starts_charged = FALSE
|
||||
clothes_req = 0
|
||||
stat_allowed = 1
|
||||
invocation = ""
|
||||
@@ -27,26 +26,4 @@ var/global/list/boo_phrases=list(
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/boo/cast(list/targets, mob/user = usr)
|
||||
for(var/turf/T in targets)
|
||||
for(var/atom/A in T.contents)
|
||||
|
||||
// Bug humans
|
||||
if(ishuman(A))
|
||||
var/mob/living/carbon/human/H = A
|
||||
if(H && H.client)
|
||||
to_chat(H, "<i>[pick(boo_phrases)]</i>")
|
||||
|
||||
// Flicker unblessed lights in range
|
||||
if(istype(A,/obj/machinery/light))
|
||||
var/obj/machinery/light/L = A
|
||||
if(L)
|
||||
L.flicker()
|
||||
|
||||
// OH GOD BLUE APC (single animation cycle)
|
||||
if(istype(A, /obj/machinery/power/apc))
|
||||
A:spookify()
|
||||
|
||||
if(istype(A, /obj/machinery/status_display))
|
||||
A:spookymode=1
|
||||
|
||||
if(istype(A, /obj/machinery/ai_status_display))
|
||||
A:spookymode=1
|
||||
T.get_spooked()
|
||||
|
||||
@@ -206,9 +206,13 @@
|
||||
if("hiss", "hisses")
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> hisses[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/unathihiss.ogg', 50, 0) //Credit to Jamius (freesound.org) for the sound.
|
||||
m_type = 2
|
||||
if(!muzzled)
|
||||
message = "<B>[src]</B> hisses[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/unathihiss.ogg', 50, 0) //Credit to Jamius (freesound.org) for the sound.
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> makes a weak hissing noise."
|
||||
m_type = 2
|
||||
|
||||
if("quill", "quills")
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
@@ -2003,6 +2003,9 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
genemutcheck(src, block, null, MUTCHK_FORCED)
|
||||
dna.UpdateSE()
|
||||
|
||||
/mob/living/carbon/human/get_spooked()
|
||||
to_chat(src, "<span class='whisper'>[pick(GLOB.boo_phrases)]</span>")
|
||||
|
||||
/mob/living/carbon/human/extinguish_light()
|
||||
// Parent function handles stuff the human may be holding
|
||||
..()
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
return has_organ("chest")
|
||||
if(slot_wear_id)
|
||||
// the only relevant check for this is the uniform check
|
||||
return 1
|
||||
return TRUE
|
||||
if(slot_wear_pda)
|
||||
return 1
|
||||
return TRUE
|
||||
if(slot_l_ear)
|
||||
return has_organ("head")
|
||||
if(slot_r_ear)
|
||||
@@ -70,9 +70,9 @@
|
||||
if(slot_s_store)
|
||||
return has_organ("chest")
|
||||
if(slot_in_backpack)
|
||||
return 1
|
||||
return TRUE
|
||||
if(slot_tie)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
// The actual dropping happens at the mob level - checks to prevent drops should
|
||||
// come here
|
||||
@@ -421,56 +421,34 @@
|
||||
|
||||
/mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = 0)
|
||||
switch(dna.species.handle_can_equip(I, slot, disable_warning, src))
|
||||
if(1) return 1
|
||||
if(2) return 0 //if it returns 2, it wants no normal handling
|
||||
|
||||
if(1) return TRUE
|
||||
if(2) return FALSE //if it returns 2, it wants no normal handling
|
||||
if(!has_organ_for_slot(slot))
|
||||
return FALSE
|
||||
|
||||
if(istype(I, /obj/item/clothing/under) || istype(I, /obj/item/clothing/suit))
|
||||
if(FAT in mutations)
|
||||
//testing("[M] TOO FAT TO WEAR [src]!")
|
||||
if(!(I.flags_size & ONESIZEFITSALL))
|
||||
if(!disable_warning)
|
||||
to_chat(src, "<span class='alert'>You're too fat to wear the [I].</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
switch(slot)
|
||||
if(slot_l_hand)
|
||||
if(l_hand)
|
||||
return 0
|
||||
return !incapacitated()
|
||||
return !l_hand && !incapacitated()
|
||||
if(slot_r_hand)
|
||||
if(r_hand)
|
||||
return 0
|
||||
return !incapacitated()
|
||||
return !r_hand && !incapacitated()
|
||||
if(slot_wear_mask)
|
||||
if(wear_mask)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_MASK))
|
||||
return 0
|
||||
return 1
|
||||
return !wear_mask && (I.slot_flags & SLOT_MASK)
|
||||
if(slot_back)
|
||||
if(back)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_BACK))
|
||||
return 0
|
||||
return 1
|
||||
return !back && (I.slot_flags & SLOT_BACK)
|
||||
if(slot_wear_suit)
|
||||
if(wear_suit)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_OCLOTHING))
|
||||
return 0
|
||||
return 1
|
||||
return !wear_suit && (I.slot_flags & SLOT_OCLOTHING)
|
||||
if(slot_gloves)
|
||||
if(gloves)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_GLOVES))
|
||||
return 0
|
||||
return 1
|
||||
return !gloves && (I.slot_flags & SLOT_GLOVES)
|
||||
if(slot_shoes)
|
||||
if(shoes)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_FEET))
|
||||
return 0
|
||||
return 1
|
||||
return !shoes && (I.slot_flags & SLOT_FEET)
|
||||
if(slot_belt)
|
||||
if(belt)
|
||||
return 0
|
||||
@@ -482,39 +460,15 @@
|
||||
return
|
||||
return 1
|
||||
if(slot_glasses)
|
||||
if(glasses)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_EYES))
|
||||
return 0
|
||||
return 1
|
||||
return !glasses && (I.slot_flags & SLOT_EYES)
|
||||
if(slot_head)
|
||||
if(head)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_HEAD))
|
||||
return 0
|
||||
return 1
|
||||
return !head && (I.slot_flags & SLOT_HEAD)
|
||||
if(slot_l_ear)
|
||||
if(l_ear)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_EARS))
|
||||
return 0
|
||||
if((I.slot_flags & SLOT_TWOEARS) && r_ear )
|
||||
return 0
|
||||
return 1
|
||||
return !l_ear && (I.slot_flags & SLOT_EARS) && !((I.slot_flags & SLOT_TWOEARS) && r_ear)
|
||||
if(slot_r_ear)
|
||||
if(r_ear)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_EARS))
|
||||
return 0
|
||||
if((I.slot_flags & SLOT_TWOEARS) && l_ear)
|
||||
return 0
|
||||
return 1
|
||||
return !r_ear && (I.slot_flags & SLOT_EARS) && !((I.slot_flags & SLOT_TWOEARS) && l_ear)
|
||||
if(slot_w_uniform)
|
||||
if(w_uniform)
|
||||
return 0
|
||||
if(!(I.slot_flags & SLOT_ICLOTHING))
|
||||
return 0
|
||||
return 1
|
||||
return !w_uniform && (I.slot_flags & SLOT_ICLOTHING)
|
||||
if(slot_wear_id)
|
||||
if(wear_id)
|
||||
return 0
|
||||
@@ -583,17 +537,9 @@
|
||||
return 1
|
||||
return 0
|
||||
if(slot_handcuffed)
|
||||
if(handcuffed)
|
||||
return 0
|
||||
if(!istype(I, /obj/item/restraints/handcuffs))
|
||||
return 0
|
||||
return 1
|
||||
return !handcuffed && istype(I, /obj/item/restraints/handcuffs)
|
||||
if(slot_legcuffed)
|
||||
if(legcuffed)
|
||||
return 0
|
||||
if(!istype(I, /obj/item/restraints/legcuffs))
|
||||
return 0
|
||||
return 1
|
||||
return !legcuffed && istype(I, /obj/item/restraints/legcuffs)
|
||||
if(slot_in_backpack)
|
||||
if(back && istype(back, /obj/item/storage/backpack))
|
||||
var/obj/item/storage/backpack/B = back
|
||||
|
||||
@@ -59,6 +59,8 @@
|
||||
genemutcheck(H, MONKEYBLOCK, null, MUTCHK_FORCED)
|
||||
|
||||
/datum/species/monkey/handle_can_equip(obj/item/I, slot, disable_warning = 0, mob/living/carbon/human/user)
|
||||
if(!user.has_organ_for_slot(slot))
|
||||
return 2
|
||||
switch(slot)
|
||||
if(slot_l_hand)
|
||||
if(user.l_hand)
|
||||
|
||||
@@ -377,8 +377,9 @@
|
||||
else
|
||||
data_core.manifest_inject(character)
|
||||
SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
||||
AnnounceArrival(character, rank, join_message)
|
||||
AddEmploymentContract(character)
|
||||
if(!IsAdminJob(rank))
|
||||
AnnounceArrival(character, rank, join_message)
|
||||
AddEmploymentContract(character)
|
||||
|
||||
if(!thisjob.is_position_available() && thisjob in SSjobs.prioritized_jobs)
|
||||
SSjobs.prioritized_jobs -= thisjob
|
||||
|
||||
Reference in New Issue
Block a user