Merge branch 'master' into crow
@@ -29,8 +29,8 @@ SUBSYSTEM_DEF(vis_overlays)
|
||||
return
|
||||
|
||||
//the "thing" var can be anything with vis_contents which includes images
|
||||
/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha=255)
|
||||
. = "[icon]|[iconstate]|[layer]|[plane]|[dir]|[alpha]"
|
||||
/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha = 255, add_appearance_flags = NONE)
|
||||
. = "[icon]|[iconstate]|[layer]|[plane]|[dir]|[alpha]|[add_appearance_flags]"
|
||||
var/obj/effect/overlay/vis/overlay = vis_overlay_cache[.]
|
||||
if(!overlay)
|
||||
overlay = new
|
||||
@@ -40,6 +40,7 @@ SUBSYSTEM_DEF(vis_overlays)
|
||||
overlay.plane = plane
|
||||
overlay.dir = dir
|
||||
overlay.alpha = alpha
|
||||
overlay.appearance_flags |= add_appearance_flags
|
||||
vis_overlay_cache[.] = overlay
|
||||
else
|
||||
overlay.unused = 0
|
||||
@@ -64,10 +65,12 @@ SUBSYSTEM_DEF(vis_overlays)
|
||||
UnregisterSignal(thing, COMSIG_ATOM_DIR_CHANGE)
|
||||
|
||||
/datum/controller/subsystem/vis_overlays/proc/rotate_vis_overlay(atom/thing, old_dir, new_dir)
|
||||
if(old_dir == new_dir)
|
||||
return
|
||||
var/rotation = dir2angle(old_dir) - dir2angle(new_dir)
|
||||
var/list/overlays_to_remove = list()
|
||||
for(var/i in thing.managed_vis_overlays)
|
||||
var/obj/effect/overlay/vis/overlay = i
|
||||
add_vis_overlay(thing, overlay.icon, overlay.icon_state, overlay.layer, overlay.plane, turn(overlay.dir, rotation))
|
||||
add_vis_overlay(thing, overlay.icon, overlay.icon_state, overlay.layer, overlay.plane, turn(overlay.dir, rotation), overlay.alpha, overlay.appearance_flags)
|
||||
overlays_to_remove += overlay
|
||||
remove_vis_overlay(thing, overlays_to_remove)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not
|
||||
var/help_verb
|
||||
var/no_guns = FALSE
|
||||
var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist.
|
||||
var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts
|
||||
|
||||
/datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/datum/martial_art/boxing
|
||||
name = "Boxing"
|
||||
id = MARTIALART_BOXING
|
||||
pacifism_check = FALSE //Let's pretend pacifists can boxe the heck out of other people, it only deals stamina damage right now.
|
||||
|
||||
/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
to_chat(A, "<span class='warning'>Can't disarm while boxing!</span>")
|
||||
@@ -16,14 +17,15 @@
|
||||
|
||||
var/atk_verb = pick("left hook","right hook","straight punch")
|
||||
|
||||
var/damage = rand(5, 8) + A.dna.species.punchdamagelow
|
||||
if(!damage)
|
||||
var/damage = rand(10, 13)
|
||||
var/extra_damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh)
|
||||
if(extra_damage == A.dna.species.punchdamagelow)
|
||||
playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1)
|
||||
D.visible_message("<span class='warning'>[A] has attempted to [atk_verb] [D]!</span>", \
|
||||
"<span class='userdanger'>[A] has attempted to [atk_verb] [D]!</span>", null, COMBAT_MESSAGE_RANGE)
|
||||
log_combat(A, D, "attempted to hit", atk_verb)
|
||||
return 0
|
||||
|
||||
return TRUE
|
||||
damage += extra_damage
|
||||
|
||||
var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
|
||||
var/armor_block = D.run_armor_check(affecting, "melee")
|
||||
|
||||
@@ -124,6 +124,8 @@
|
||||
add_to_streak("G",D)
|
||||
if(check_streak(A,D))
|
||||
return TRUE
|
||||
if(A == D) // no self grab.
|
||||
return FALSE
|
||||
if(A.grab_state >= GRAB_AGGRESSIVE)
|
||||
D.grabbedby(A, 1)
|
||||
else
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
owner.visible_message("<span class='danger'>[owner] assumes a neutral stance.</span>", "<b><i>Your next attack is cleared.</i></b>")
|
||||
H.mind.martial_art.streak = ""
|
||||
else
|
||||
if(HAS_TRAIT(H, TRAIT_PACIFISM))
|
||||
to_chat(H, "<span class='warning'>You don't want to harm other people!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] assumes the Neck Chop stance!</span>", "<b><i>Your next attack will be a Neck Chop.</i></b>")
|
||||
H.mind.martial_art.streak = "neck_chop"
|
||||
|
||||
@@ -36,6 +39,9 @@
|
||||
owner.visible_message("<span class='danger'>[owner] assumes a neutral stance.</span>", "<b><i>Your next attack is cleared.</i></b>")
|
||||
H.mind.martial_art.streak = ""
|
||||
else
|
||||
if(HAS_TRAIT(H, TRAIT_PACIFISM))
|
||||
to_chat(H, "<span class='warning'>You don't want to harm other people!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] assumes the Leg Sweep stance!</span>", "<b><i>Your next attack will be a Leg Sweep.</i></b>")
|
||||
H.mind.martial_art.streak = "leg_sweep"
|
||||
|
||||
@@ -53,6 +59,9 @@
|
||||
owner.visible_message("<span class='danger'>[owner] assumes a neutral stance.</span>", "<b><i>Your next attack is cleared.</i></b>")
|
||||
H.mind.martial_art.streak = ""
|
||||
else
|
||||
if(HAS_TRAIT(H, TRAIT_PACIFISM))
|
||||
to_chat(H, "<span class='warning'>You don't want to harm other people!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] assumes the Lung Punch stance!</span>", "<b><i>Your next attack will be a Lung Punch.</i></b>")
|
||||
H.mind.martial_art.streak = "quick_choke"//internal name for lung punch
|
||||
|
||||
@@ -145,8 +154,6 @@
|
||||
return 1
|
||||
|
||||
/datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
var/obj/item/I = null
|
||||
if(prob(60))
|
||||
I = D.get_active_held_item()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/datum/martial_art/psychotic_brawling
|
||||
name = "Psychotic Brawling"
|
||||
id = MARTIALART_PSYCHOBRAWL
|
||||
pacifism_check = FALSE //Quite uncontrollable and unpredictable, people will still end up harming others with it.
|
||||
|
||||
/datum/martial_art/psychotic_brawling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
return psycho_attack(A,D)
|
||||
|
||||
@@ -105,6 +105,8 @@
|
||||
add_to_streak("G",D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
if(A == D) //no self grab stun
|
||||
return FALSE
|
||||
if(A.grab_state >= GRAB_AGGRESSIVE)
|
||||
D.grabbedby(A, 1)
|
||||
else
|
||||
|
||||
@@ -49,6 +49,9 @@
|
||||
if(owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You can't WRESTLE while you're OUT FOR THE COUNT.</span>")
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_PACIFISM))
|
||||
to_chat(owner, "<span class='warning'>You are too HIPPIE to WRESTLE other living beings!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] prepares to BODY SLAM!</span>", "<b><i>Your next attack will be a BODY SLAM.</i></b>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.mind.martial_art.streak = "slam"
|
||||
@@ -61,6 +64,9 @@
|
||||
if(owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You can't WRESTLE while you're OUT FOR THE COUNT.</span>")
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_PACIFISM))
|
||||
to_chat(owner, "<span class='warning'>You are too HIPPIE to WRESTLE other living beings!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] prepares to THROW!</span>", "<b><i>Your next attack will be a THROW.</i></b>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.mind.martial_art.streak = "throw"
|
||||
@@ -73,6 +79,9 @@
|
||||
if(owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You can't WRESTLE while you're OUT FOR THE COUNT.</span>")
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_PACIFISM))
|
||||
to_chat(owner, "<span class='warning'>You are too HIPPIE to WRESTLE other living beings!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] prepares to KICK!</span>", "<b><i>Your next attack will be a KICK.</i></b>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.mind.martial_art.streak = "kick"
|
||||
@@ -85,6 +94,9 @@
|
||||
if(owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You can't WRESTLE while you're OUT FOR THE COUNT.</span>")
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_PACIFISM))
|
||||
to_chat(owner, "<span class='warning'>You are too HIPPIE to WRESTLE other living beings!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] prepares to STRIKE!</span>", "<b><i>Your next attack will be a STRIKE.</i></b>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.mind.martial_art.streak = "strike"
|
||||
@@ -97,6 +109,9 @@
|
||||
if(owner.incapacitated())
|
||||
to_chat(owner, "<span class='warning'>You can't WRESTLE while you're OUT FOR THE COUNT.</span>")
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_PACIFISM))
|
||||
to_chat(owner, "<span class='warning'>You are too HIPPIE to WRESTLE other living beings!</span>")
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner] prepares to LEG DROP!</span>", "<b><i>Your next attack will be a LEG DROP.</i></b>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.mind.martial_art.streak = "drop"
|
||||
@@ -433,8 +448,8 @@
|
||||
/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
if(A.pulling == D)
|
||||
return 1
|
||||
if(A.pulling == D || A == D) // don't stun grab yoursel
|
||||
return FALSE
|
||||
A.start_pulling(D)
|
||||
D.visible_message("<span class='danger'>[A] gets [D] in a cinch!</span>", \
|
||||
"<span class='userdanger'>[A] gets [D] in a cinch!</span>")
|
||||
|
||||
@@ -28,16 +28,16 @@
|
||||
var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters
|
||||
var/list/chameleon_extras //extra types for chameleon outfit changes, mostly guns
|
||||
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
//to be overridden for customization depending on client prefs,species etc
|
||||
return
|
||||
|
||||
/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
//to be overridden for toggling internals, id binding, access etc
|
||||
return
|
||||
|
||||
/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
pre_equip(H, visualsOnly)
|
||||
/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
pre_equip(H, visualsOnly, preference_source)
|
||||
|
||||
//Start with uniform,suit,backpack for additional slots
|
||||
if(uniform)
|
||||
@@ -103,7 +103,7 @@
|
||||
var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit
|
||||
HS.ToggleHelmet()
|
||||
|
||||
post_equip(H, visualsOnly)
|
||||
post_equip(H, visualsOnly, preference_source)
|
||||
|
||||
if(!visualsOnly)
|
||||
apply_fingerprints(H)
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
/datum/outfit/syndicate/clownop/no_crystals
|
||||
tc = 0
|
||||
|
||||
/datum/outfit/syndicate/clownop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/syndicate/clownop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
/datum/outfit/syndicate/no_crystals
|
||||
tc = 0
|
||||
|
||||
/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.set_frequency(FREQ_SYNDICATE)
|
||||
R.freqlock = TRUE
|
||||
|
||||
@@ -162,31 +162,33 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
|
||||
/obj/item/pda/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(equipped)
|
||||
if(equipped || !user.client)
|
||||
return
|
||||
if(user.client)
|
||||
background_color = user.client.prefs.pda_color
|
||||
switch(user.client.prefs.pda_style)
|
||||
if(MONO)
|
||||
font_index = MODE_MONO
|
||||
font_mode = FONT_MONO
|
||||
if(SHARE)
|
||||
font_index = MODE_SHARE
|
||||
font_mode = FONT_SHARE
|
||||
if(ORBITRON)
|
||||
font_index = MODE_ORBITRON
|
||||
font_mode = FONT_ORBITRON
|
||||
if(VT)
|
||||
font_index = MODE_VT
|
||||
font_mode = FONT_VT
|
||||
else
|
||||
font_index = MODE_MONO
|
||||
font_mode = FONT_MONO
|
||||
var/pref_skin = GLOB.pda_reskins[user.client.prefs.pda_skin]
|
||||
if(icon != pref_skin)
|
||||
icon = pref_skin
|
||||
update_icon(FALSE, TRUE)
|
||||
equipped = TRUE
|
||||
update_style(user.client)
|
||||
|
||||
/obj/item/pda/proc/update_style(client/C)
|
||||
background_color = C.prefs.pda_color
|
||||
switch(C.prefs.pda_style)
|
||||
if(MONO)
|
||||
font_index = MODE_MONO
|
||||
font_mode = FONT_MONO
|
||||
if(SHARE)
|
||||
font_index = MODE_SHARE
|
||||
font_mode = FONT_SHARE
|
||||
if(ORBITRON)
|
||||
font_index = MODE_ORBITRON
|
||||
font_mode = FONT_ORBITRON
|
||||
if(VT)
|
||||
font_index = MODE_VT
|
||||
font_mode = FONT_VT
|
||||
else
|
||||
font_index = MODE_MONO
|
||||
font_mode = FONT_MONO
|
||||
var/pref_skin = GLOB.pda_reskins[C.prefs.pda_skin]
|
||||
if(icon != pref_skin)
|
||||
icon = pref_skin
|
||||
update_icon(FALSE, TRUE)
|
||||
equipped = TRUE
|
||||
|
||||
/obj/item/pda/proc/update_label()
|
||||
name = "PDA-[owner] ([ownjob])" //Name generalisation
|
||||
|
||||
@@ -239,8 +239,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
|
||||
/obj/item/storage/toolbox/gold_real
|
||||
name = "golden toolbox"
|
||||
desc = "A larger then normal toolbox made of gold plated plastitanium."
|
||||
item_state = "gold"
|
||||
icon_state = "gold"
|
||||
item_state = "toolbox_gold"
|
||||
has_latches = FALSE
|
||||
force = 16 // Less then a spear
|
||||
throwforce = 14
|
||||
@@ -266,7 +266,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
|
||||
name = "golden toolbox"
|
||||
desc = "A gold plated toolbox, fancy and harmless due to the gold plating being on cardboard!"
|
||||
icon_state = "gold"
|
||||
item_state = "gold"
|
||||
item_state = "toolbox_gold"
|
||||
has_latches = FALSE
|
||||
force = 0
|
||||
throwforce = 0
|
||||
|
||||
@@ -23,3 +23,4 @@
|
||||
new /obj/item/circuitboard/machine/techfab/department/cargo(src)
|
||||
new /obj/item/storage/photo_album/QM(src)
|
||||
new /obj/item/circuitboard/machine/ore_silo(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/qm(src)
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
new /obj/item/storage/photo_album/CE(src)
|
||||
new /obj/item/storage/lockbox/medal/engineering(src)
|
||||
new /obj/item/construction/rcd/loaded/upgraded(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/ce(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
name = "electrical supplies locker"
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
new /obj/item/circuitboard/machine/techfab/department/medical(src)
|
||||
new /obj/item/storage/photo_album/CMO(src)
|
||||
new /obj/item/storage/lockbox/medal/medical(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/cmo(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/animal
|
||||
name = "animal control"
|
||||
|
||||
@@ -30,3 +30,4 @@
|
||||
new /obj/item/door_remote/research_director(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/science(src)
|
||||
new /obj/item/storage/photo_album/RD(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/rd(src)
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
new /obj/item/door_remote/civillian(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/service(src)
|
||||
new /obj/item/storage/photo_album/HoP(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/hop(src)
|
||||
/obj/structure/closet/secure_closet/hos
|
||||
name = "\proper head of security's locker"
|
||||
req_access = list(ACCESS_HOS)
|
||||
@@ -94,6 +95,7 @@
|
||||
new /obj/item/pinpointer/nuke(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/security(src)
|
||||
new /obj/item/storage/photo_album/HoS(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/hos(src)
|
||||
/obj/structure/closet/secure_closet/warden
|
||||
name = "\proper warden's locker"
|
||||
req_access = list(ACCESS_ARMORY)
|
||||
|
||||
@@ -423,7 +423,7 @@
|
||||
implants = list(/obj/item/implant/weapons_auth)
|
||||
id = /obj/item/card/id/syndicate
|
||||
|
||||
/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.faction |= ROLE_SYNDICATE
|
||||
|
||||
/obj/effect/mob_spawn/human/syndicate/battlecruiser
|
||||
|
||||
@@ -9,11 +9,13 @@
|
||||
armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20)
|
||||
var/obj/item/holosign_creator/projector
|
||||
|
||||
/obj/structure/holosign/New(loc, source_projector)
|
||||
/obj/structure/holosign/Initialize(mapload, source_projector)
|
||||
. = ..()
|
||||
if(source_projector)
|
||||
projector = source_projector
|
||||
projector.signs += src
|
||||
..()
|
||||
alpha = 0
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it
|
||||
|
||||
/obj/structure/holosign/Destroy()
|
||||
if(projector)
|
||||
@@ -71,10 +73,8 @@
|
||||
desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out."
|
||||
icon_state = "holo_firelock"
|
||||
density = FALSE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
anchored = TRUE
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
layer = ABOVE_MOB_LAYER
|
||||
alpha = 150
|
||||
|
||||
/obj/structure/holosign/barrier/atmos/Initialize()
|
||||
@@ -100,7 +100,6 @@
|
||||
desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines."
|
||||
icon_state = "holo_medical"
|
||||
alpha = 125 //lazy :)
|
||||
layer = ABOVE_MOB_LAYER
|
||||
var/force_allaccess = FALSE
|
||||
var/buzzcd = 0
|
||||
|
||||
|
||||
@@ -6,12 +6,16 @@
|
||||
armor = list("melee" = 100, "bullet" = 80, "laser" = 80, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50)
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
|
||||
/obj/structure/plasticflaps/opaque
|
||||
opacity = TRUE
|
||||
|
||||
/obj/structure/plasticflaps/Initialize()
|
||||
. = ..()
|
||||
alpha = 0
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it
|
||||
|
||||
/obj/structure/plasticflaps/examine(mob/user)
|
||||
. = ..()
|
||||
if(anchored)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
for(var/obj/item/abductor/gizmo/G in B.contents)
|
||||
console.AddGizmo(G)
|
||||
|
||||
/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(!visualsOnly)
|
||||
link_to_console(H)
|
||||
@@ -49,7 +49,7 @@
|
||||
/obj/item/abductor/gizmo = 1
|
||||
)
|
||||
|
||||
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(!visualsOnly)
|
||||
var/obj/item/implant/abductor/beamplant = new
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
r_pocket = /obj/item/ammo_box/magazine/recharge/ctf
|
||||
r_hand = /obj/item/gun/ballistic/automatic/laser/ctf
|
||||
|
||||
/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE)
|
||||
/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/list/no_drops = list()
|
||||
@@ -529,7 +529,7 @@
|
||||
r_hand = /obj/item/gun/energy/laser/instakill/blue
|
||||
shoes = /obj/item/clothing/shoes/jackboots/fast
|
||||
|
||||
/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.set_frequency(FREQ_CTF_RED)
|
||||
@@ -537,7 +537,7 @@
|
||||
R.independent = TRUE
|
||||
H.dna.species.stunmod = 0
|
||||
|
||||
/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.set_frequency(FREQ_CTF_BLUE)
|
||||
|
||||
@@ -440,7 +440,7 @@
|
||||
uniform = /obj/item/clothing/under/pants/youngfolksjeans
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -2299,10 +2299,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
character.shirt_color = shirt_color
|
||||
character.socks_color = socks_color
|
||||
|
||||
|
||||
character.backbag = backbag
|
||||
character.jumpsuit_style = jumpsuit_style
|
||||
|
||||
var/datum/species/chosen_species
|
||||
if(!roundstart_checks || (pref_species.id in GLOB.roundstart_races))
|
||||
chosen_species = pref_species.type
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/radio/headset/headset_cent/alt
|
||||
|
||||
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
/obj/item/gun/energy/e_gun=1)
|
||||
l_pocket = /obj/item/switchblade
|
||||
|
||||
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
/datum/outfit/ert/commander/alert
|
||||
name = "ERT Commander - Amber Alert"
|
||||
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/alert
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
backpack_contents = list(/obj/item/storage/box/engineer=1,\
|
||||
@@ -76,7 +76,7 @@
|
||||
/obj/item/gun/energy/e_gun/stun=1,\
|
||||
/obj/item/melee/baton/loaded=1)
|
||||
|
||||
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
/datum/outfit/ert/security/alert
|
||||
name = "ERT Security - Amber Alert"
|
||||
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/sec
|
||||
backpack_contents = list(/obj/item/storage/box/engineer=1,\
|
||||
/obj/item/storage/box/handcuffs=1,\
|
||||
@@ -120,7 +120,7 @@
|
||||
/obj/item/reagent_containers/hypospray/combat=1,\
|
||||
/obj/item/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
@@ -166,7 +166,7 @@
|
||||
/obj/item/gun/energy/e_gun=1,\
|
||||
/obj/item/construction/rcd/loaded=1)
|
||||
|
||||
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
@@ -214,7 +214,7 @@
|
||||
l_hand = /obj/item/storage/toolbox/plastitanium
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
|
||||
/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
@@ -238,7 +238,7 @@
|
||||
l_hand = /obj/item/clipboard
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
/obj/item/reagent_containers/hypospray/combat/heresypurge=1,
|
||||
/obj/item/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
belt = /obj/item/tank/internals/emergency_oxygen/double
|
||||
id = /obj/item/card/id/gold
|
||||
|
||||
/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
H.fully_replace_character_name(H.real_name, "Santa Claus")
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
l_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
backpack_contents = list(/obj/item/stack/tile/plasteel=6)
|
||||
|
||||
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
/datum/outfit/pirate/space/captain
|
||||
head = /obj/item/clothing/head/helmet/space/pirate
|
||||
|
||||
/datum/outfit/pirate/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/pirate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.faction |= "pirate"
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
@@ -125,7 +125,7 @@
|
||||
id = /obj/item/card/id
|
||||
r_hand = /obj/item/twohanded/fireaxe
|
||||
|
||||
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
r_pocket = /obj/item/scalpel
|
||||
r_hand = /obj/item/twohanded/fireaxe
|
||||
|
||||
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
|
||||
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
|
||||
for(var/obj/item/I in H.held_items)
|
||||
@@ -170,7 +170,7 @@
|
||||
id = /obj/item/card/id/syndicate
|
||||
belt = /obj/item/pda/heads
|
||||
|
||||
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
U.attach_accessory(new /obj/item/clothing/accessory/waistcoat(H))
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
back = /obj/item/storage/backpack/satchel/leather
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
back = /obj/item/storage/backpack/satchel/leather
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
back = /obj/item/storage/backpack
|
||||
backpack_contents = list(/obj/item/storage/box=1)
|
||||
|
||||
/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -325,7 +325,7 @@
|
||||
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -349,7 +349,7 @@
|
||||
r_hand = /obj/item/gun/ballistic/automatic/tommygun
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
/obj/item/flashlight=1,\
|
||||
/obj/item/grenade/plastic/x4=1)
|
||||
|
||||
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
ears = /obj/item/radio/headset
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/vr/pre_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/vr/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.dna.species.before_equip_job(null, H)
|
||||
|
||||
/datum/outfit/vr/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/vr/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
var/obj/item/card/id/id = H.wear_id
|
||||
if (istype(id))
|
||||
id.access |= get_all_accesses()
|
||||
@@ -25,9 +25,10 @@
|
||||
backpack_contents = list(/obj/item/storage/box/syndie=1,\
|
||||
/obj/item/kitchen/knife/combat/survival)
|
||||
|
||||
/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
. = ..()
|
||||
var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, H.key, 80)
|
||||
var/key = H.key ? H.key : preference_source ? preference_source.key : null
|
||||
var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, key, 80)
|
||||
H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK)
|
||||
var/obj/item/implant/weapons_auth/W = new
|
||||
W.implant(H)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var/list/vv_values
|
||||
var/list/stored_access
|
||||
|
||||
/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly)
|
||||
/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.delete_equipment() //Applying VV to wrong objects is not reccomended.
|
||||
. = ..()
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
GLOB.custom_outfits += O
|
||||
to_chat(usr,"Outfit registered, use select equipment to equip it.")
|
||||
|
||||
/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly)
|
||||
/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
. = ..()
|
||||
//Apply VV
|
||||
for(var/slot in vv_values)
|
||||
|
||||
@@ -519,6 +519,16 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/captain
|
||||
icon_state = "winterhood_captain"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hop
|
||||
name = "head of personnel's winter coat"
|
||||
icon_state = "coathop"
|
||||
item_state = "coathop"
|
||||
armor = list("melee" = 5, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 5, "rad" = 0, "fire" = 0, "acid" = 5)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/hop
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/hop
|
||||
icon_state = "winterhood_hop"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security
|
||||
name = "security winter coat"
|
||||
icon_state = "coatsecurity"
|
||||
@@ -533,6 +543,20 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/security
|
||||
icon_state = "winterhood_security"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hos
|
||||
name = "head of security's winter coat"
|
||||
icon_state = "coathos"
|
||||
item_state = "coathos"
|
||||
armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 15, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 55)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/hos
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hos/Initialize()
|
||||
. = ..()
|
||||
allowed = GLOB.security_wintercoat_allowed
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/hos
|
||||
icon_state = "winterhood_hos"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/medical
|
||||
name = "medical winter coat"
|
||||
icon_state = "coatmedical"
|
||||
@@ -544,6 +568,39 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/medical
|
||||
icon_state = "winterhood_medical"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cmo
|
||||
name = "chief medical officer's winter coat"
|
||||
icon_state = "coatcmo"
|
||||
item_state = "coatcmo"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
||||
armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/cmo
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/cmo
|
||||
icon_state = "winterhood_cmo"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/chemistry
|
||||
name = "chemistry winter coat"
|
||||
icon_state = "coatchemistry"
|
||||
item_state = "coatchemistry"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 30, "acid" = 45)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/chemistry
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/chemistry
|
||||
icon_state = "winterhood_chemistry"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/viro
|
||||
name = "virology winter coat"
|
||||
icon_state = "coatviro"
|
||||
item_state = "coatviro"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/viro
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/viro
|
||||
icon_state = "winterhood_viro"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/science
|
||||
name = "science winter coat"
|
||||
icon_state = "coatscience"
|
||||
@@ -555,6 +612,49 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/science
|
||||
icon_state = "winterhood_science"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/robotics
|
||||
name = "robotics winter coat"
|
||||
icon_state = "coatrobotics"
|
||||
item_state = "coatrobotics"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/screwdriver, /obj/item/crowbar, /obj/item/wrench, /obj/item/stack/cable_coil, /obj/item/weldingtool, /obj/item/multitool)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/robotics
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/robotics
|
||||
icon_state = "winterhood_robotics"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/genetics
|
||||
name = "genetics winter coat"
|
||||
icon_state = "coatgenetics"
|
||||
item_state = "coatgenetics"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/genetics
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/genetics
|
||||
icon_state = "winterhood_genetics"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/rd
|
||||
name = "research director's winter coat"
|
||||
icon_state = "coatrd"
|
||||
item_state = "coatrd"
|
||||
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 5,"energy" = 0, "bomb" = 15, "bio" = 5, "rad" = 5, "fire" = 0, "acid" = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/rd
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/rd
|
||||
icon_state = "winterhood_rd"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/ce
|
||||
name = "chief engineer's winter coat"
|
||||
icon_state = "coatce"
|
||||
item_state = "coatce"
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 30, "fire" = 35, "acid" = 45)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/ce
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/ce
|
||||
icon_state = "winterhood_ce"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering
|
||||
name = "engineering winter coat"
|
||||
icon_state = "coatengineer"
|
||||
@@ -585,6 +685,26 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/hydro
|
||||
icon_state = "winterhood_hydro"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cosmic
|
||||
name = "cosmic winter coat"
|
||||
icon_state = "coatcosmic"
|
||||
item_state = "coatcosmic"
|
||||
allowed = list(/obj/item/flashlight)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/cosmic
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/cosmic
|
||||
icon_state = "winterhood_cosmic"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/janitor
|
||||
name = "janitors winter coat"
|
||||
icon_state = "coatjanitor"
|
||||
item_state = "coatjanitor"
|
||||
allowed = list(/obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/storage/fancy/cigarettes, /obj/item/lighter,/obj/item/grenade/chem_grenade,/obj/item/lightreplacer,/obj/item/flashlight,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/spray,/obj/item/soap,/obj/item/holosign_creator,/obj/item/key/janitor,/obj/item/melee/flyswatter,/obj/item/paint/paint_remover,/obj/item/storage/bag/trash,/obj/item/reagent_containers/glass/bucket)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/janitor
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/janitor
|
||||
icon_state = "winterhood_janitor"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cargo
|
||||
name = "cargo winter coat"
|
||||
icon_state = "coatcargo"
|
||||
@@ -594,6 +714,15 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/cargo
|
||||
icon_state = "winterhood_cargo"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/qm
|
||||
name = "quartermaster's winter coat"
|
||||
icon_state = "coatqm"
|
||||
item_state = "coatqm"
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/qm
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/qm
|
||||
icon_state = "winterhood_qm"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner
|
||||
name = "mining winter coat"
|
||||
icon_state = "coatminer"
|
||||
|
||||
@@ -158,3 +158,31 @@
|
||||
time = 50
|
||||
always_availible = TRUE
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/wintercoat_cosmic
|
||||
name = "Cosmic Winter Coat"
|
||||
result = /obj/item/clothing/suit/hooded/wintercoat/cosmic
|
||||
reqs = list(/obj/item/clothing/suit/hooded/wintercoat = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/captain = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hop = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hos = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/rd = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/ce = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cmo = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/qm = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/robotics = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/science = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/genetics = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/chemistry = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/medical = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/viro = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/janitor = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cargo = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hydro = 1,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner = 1)
|
||||
time = 60
|
||||
always_availible = TRUE
|
||||
category = CAT_CLOTHING
|
||||
|
||||
@@ -101,8 +101,9 @@
|
||||
//Equip the rest of the gear
|
||||
H.dna.species.before_equip_job(src, H, visualsOnly)
|
||||
|
||||
if(outfit_override || outfit)
|
||||
H.equipOutfit(outfit_override ? outfit_override : outfit, visualsOnly)
|
||||
var/datum/outfit/job/O = outfit_override || outfit
|
||||
if(O)
|
||||
H.equipOutfit(O, visualsOnly, preference_source) //mob doesn't have a client yet.
|
||||
|
||||
H.dna.species.after_equip_job(src, H, visualsOnly)
|
||||
|
||||
@@ -177,8 +178,8 @@
|
||||
|
||||
var/pda_slot = SLOT_BELT
|
||||
|
||||
/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
switch(H.backbag)
|
||||
/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
switch(preference_source?.prefs.backbag)
|
||||
if(GBACKPACK)
|
||||
back = /obj/item/storage/backpack //Grey backpack
|
||||
if(GSATCHEL)
|
||||
@@ -196,7 +197,7 @@
|
||||
|
||||
//converts the uniform string into the path we'll wear, whether it's the skirt or regular variant
|
||||
var/holder
|
||||
if(H.jumpsuit_style == PREF_SKIRT)
|
||||
if(preference_source && preference_source.prefs.jumpsuit_style == PREF_SKIRT)
|
||||
holder = "[uniform]/skirt"
|
||||
if(!text2path(holder))
|
||||
holder = "[uniform]"
|
||||
@@ -204,7 +205,7 @@
|
||||
holder = "[uniform]"
|
||||
uniform = text2path(holder)
|
||||
|
||||
/datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -232,6 +233,8 @@
|
||||
PDA.owner = H.real_name
|
||||
PDA.ownjob = J.title
|
||||
PDA.update_label()
|
||||
if(preference_source && !PDA.equipped) //PDA's screen color, font style and look depend on client preferences.
|
||||
PDA.update_style(preference_source)
|
||||
|
||||
/datum/outfit/job/get_chameleon_disguise_info()
|
||||
var/list/types = ..()
|
||||
|
||||
@@ -28,15 +28,16 @@ Assistant
|
||||
name = "Assistant"
|
||||
jobtype = /datum/job/assistant
|
||||
|
||||
/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT
|
||||
if (CONFIG_GET(flag/grey_assistants))
|
||||
if(H.jumpsuit_style == PREF_SUIT)
|
||||
if(suited)
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
else
|
||||
uniform = /obj/item/clothing/under/skirt/color/grey
|
||||
else
|
||||
if(H.jumpsuit_style == PREF_SUIT)
|
||||
if(suited)
|
||||
uniform = /obj/item/clothing/under/color/random
|
||||
else
|
||||
uniform = /obj/item/clothing/under/skirt/color/random
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CLOWN
|
||||
|
||||
|
||||
/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
. = ..()
|
||||
H.apply_pref_name("clown", M.client)
|
||||
|
||||
/datum/outfit/job/clown
|
||||
name = "Clown"
|
||||
jobtype = /datum/job/clown
|
||||
@@ -48,11 +43,15 @@
|
||||
|
||||
chameleon_extras = /obj/item/stamp/clown
|
||||
|
||||
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
H.fully_replace_character_name(H.real_name, pick(GLOB.clown_names)) //rename the mob AFTER they're equipped so their ID gets updated properly.
|
||||
var/client/C = H.client || preference_source
|
||||
if(C)
|
||||
H.apply_pref_name("clown", C) //rename the mob AFTER they're equipped so their ID gets updated properly.
|
||||
else
|
||||
H.fully_replace_character_name(H.real_name, pick(GLOB.clown_names))
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.dna.add_mutation(SMILE)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
mask = /obj/item/clothing/mask/fakemoustache/italian
|
||||
backpack_contents = list(/obj/item/sharpener = 1)
|
||||
|
||||
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
var/datum/job/cook/J = SSjob.GetJobType(jobtype)
|
||||
if(J) // Fix for runtime caused by invalid job being passed
|
||||
@@ -39,7 +39,7 @@
|
||||
if(!visualsOnly)
|
||||
J.cooks++
|
||||
|
||||
/datum/outfit/job/cook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/cook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
/obj/item/barcodescanner = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
chameleon_extras = list(/obj/item/gun/ballistic/revolver/detective, /obj/item/clothing/glasses/sunglasses)
|
||||
|
||||
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
var/obj/item/clothing/mask/cigarette/cig = H.wear_mask
|
||||
if(istype(cig)) //Some species specfic changes can mess this up (plasmamen)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
chameleon_extras = /obj/item/stamp/law
|
||||
|
||||
|
||||
/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
satchel = /obj/item/storage/backpack/mime
|
||||
|
||||
|
||||
/datum/outfit/job/mime/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/mime/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
@@ -47,3 +47,9 @@
|
||||
H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null))
|
||||
H.mind.miming = 1
|
||||
|
||||
var/client/C = H.client || preference_source
|
||||
if(C)
|
||||
H.apply_pref_name("mime", C)
|
||||
else
|
||||
H.fully_replace_character_name(H.real_name, pick(GLOB.mime_names))
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
/obj/item/gun/energy/kinetic_accelerator=1,\
|
||||
/obj/item/stack/marker_beacon/ten=1)
|
||||
|
||||
/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -37,6 +37,9 @@
|
||||
new /obj/item/clothing/gloves/color/black(src)
|
||||
new /obj/item/clothing/gloves/color/black(src)
|
||||
new /obj/item/clothing/gloves/color/black(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/miner(src) //yes, even both mining locker types
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/miner(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/miner(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/miner
|
||||
name = "miner's equipment"
|
||||
@@ -61,6 +64,7 @@
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/survivalcapsule(src)
|
||||
new /obj/item/assault_pod/mining(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/miner(src) //because you know you want it
|
||||
|
||||
|
||||
/**********************Shuttle Computer**************************/
|
||||
|
||||
@@ -170,6 +170,7 @@
|
||||
stop_pulling()
|
||||
if(HAS_TRAIT(src, TRAIT_PACIFISM))
|
||||
to_chat(src, "<span class='notice'>You gently let go of [throwable_mob].</span>")
|
||||
return
|
||||
adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring
|
||||
var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors
|
||||
var/turf/end_T = get_turf(target)
|
||||
|
||||
@@ -339,8 +339,10 @@
|
||||
apply_damage(damage, BRUTE, affecting, armor_block)
|
||||
|
||||
/mob/living/carbon/human/mech_melee_attack(obj/mecha/M)
|
||||
|
||||
if(M.occupant.a_intent == INTENT_HARM)
|
||||
if(HAS_TRAIT(M.occupant, TRAIT_PACIFISM))
|
||||
to_chat(M.occupant, "<span class='warning'>You don't want to harm other living beings!</span>")
|
||||
return
|
||||
M.do_attack_animation(src)
|
||||
if(M.damtype == "brute")
|
||||
step_away(src,M,15)
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
var/shirt_color = "FFFFFF"
|
||||
var/socks = "Nude" //Which socks the player wants
|
||||
var/socks_color = "FFFFFF"
|
||||
var/backbag = DBACKPACK //Which backpack type the player has chosen.
|
||||
var/jumpsuit_style = PREF_SUIT //suit/skirt
|
||||
|
||||
//Equipment slots
|
||||
var/obj/item/wear_suit = null
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
sec_hud_set_security_status()
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE)
|
||||
/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE, client/preference_source)
|
||||
var/datum/outfit/O = null
|
||||
|
||||
if(ispath(outfit))
|
||||
@@ -263,7 +263,7 @@
|
||||
if(!O)
|
||||
return 0
|
||||
|
||||
return O.equip(src, visualsOnly)
|
||||
return O.equip(src, visualsOnly, preference_source)
|
||||
|
||||
|
||||
//delete all equipment without dropping anything
|
||||
|
||||
@@ -1479,7 +1479,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
|
||||
/datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
if(!attacker_style && HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='warning'>You don't want to harm [target]!</span>")
|
||||
return FALSE
|
||||
if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit
|
||||
@@ -1681,6 +1681,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
return
|
||||
if(M.mind)
|
||||
attacker_style = M.mind.martial_art
|
||||
if(attacker_style?.pacifism_check && HAS_TRAIT(M, TRAIT_PACIFISM)) // most martial arts are quite harmful, alas.
|
||||
attacker_style = null
|
||||
if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK))
|
||||
log_combat(M, H, "attempted to touch")
|
||||
H.visible_message("<span class='warning'>[M] attempted to touch [H]!</span>")
|
||||
|
||||
@@ -92,6 +92,9 @@
|
||||
|
||||
/mob/living/mech_melee_attack(obj/mecha/M)
|
||||
if(M.occupant.a_intent == INTENT_HARM)
|
||||
if(HAS_TRAIT(M.occupant, TRAIT_PACIFISM))
|
||||
to_chat(M.occupant, "<span class='warning'>You don't want to harm other living beings!</span>")
|
||||
return
|
||||
M.do_attack_animation(src)
|
||||
if(M.damtype == "brute")
|
||||
step_away(src,M,15)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
implants = list(/obj/item/implant/explosive)
|
||||
|
||||
|
||||
/datum/outfit/ninja/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/ninja/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(istype(H.wear_suit, suit))
|
||||
var/obj/item/clothing/suit/space/space_ninja/S = H.wear_suit
|
||||
if(istype(H.belt, belt))
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
id = /obj/item/card/id/syndicate/anyone
|
||||
implants = list(/obj/item/implant/weapons_auth)
|
||||
|
||||
/datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.faction |= ROLE_SYNDICATE
|
||||
|
||||
/obj/effect/mob_spawn/human/lavaland_syndicate/comms
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
products = list(/obj/item/clothing/glasses/hud/diagnostic = 3,
|
||||
/obj/item/clothing/under/rank/roboticist = 3,
|
||||
/obj/item/clothing/under/rank/roboticist/skirt = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/robotics = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat = 3,
|
||||
/obj/item/clothing/shoes/sneakers/black = 3,
|
||||
/obj/item/clothing/gloves/fingerless = 3,
|
||||
@@ -258,6 +259,7 @@
|
||||
vend_reply = "Thank you for using the JaniDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/janitor = 2,
|
||||
/obj/item/clothing/under/rank/janitor/skirt = 2,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/janitor = 3,
|
||||
/obj/item/cartridge/janitor = 3,
|
||||
/obj/item/clothing/gloves/color/black = 2,
|
||||
/obj/item/clothing/head/soft/purple = 2,
|
||||
@@ -340,6 +342,7 @@
|
||||
vend_reply = "Thank you for using the ChemDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/chemist = 3,
|
||||
/obj/item/clothing/under/rank/chemist/skirt = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/chemistry = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/chemist = 3,
|
||||
/obj/item/storage/backpack/chemistry = 3,
|
||||
@@ -359,6 +362,7 @@
|
||||
vend_reply = "Thank you for using the GeneDrobe!"
|
||||
products = list(/obj/item/clothing/under/rank/geneticist = 3,
|
||||
/obj/item/clothing/under/rank/geneticist/skirt = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/genetics = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/genetics = 3,
|
||||
/obj/item/storage/backpack/genetics = 3,
|
||||
@@ -376,6 +380,7 @@
|
||||
vend_reply = "Thank you for using the ViroDrobe"
|
||||
products = list(/obj/item/clothing/under/rank/virologist = 3,
|
||||
/obj/item/clothing/under/rank/virologist/skirt = 3,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/viro = 3,
|
||||
/obj/item/clothing/shoes/sneakers/white = 3,
|
||||
/obj/item/clothing/suit/toggle/labcoat/virologist = 3,
|
||||
/obj/item/clothing/mask/surgical = 3,
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghommie (original PR by nicbn and Menshin)"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "You can click on things that are under flaps or holo barriers."
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixed the little issue of PDA skins not updating on job equip."
|
||||
- tweak: "Anomaly Crystals of the clowning type will now rename the victim to their clown name preference when triggered, instead of giving them a random clown name."
|
||||
@@ -0,0 +1,6 @@
|
||||
author: "Seris02"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Added nine winter coats"
|
||||
- imageadd: "added images for the winter coats"
|
||||
- tweak: "adds the mining winter coat to mining wardrobes and mining lockers"
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "dzahlus"
|
||||
delete-after: True
|
||||
changes:
|
||||
- soundadd: "added a new gun sounds"
|
||||
- sounddel: "removed an old gun sounds"
|
||||
@@ -0,0 +1,7 @@
|
||||
author: "Fox McCloud, Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixes being able to mech-punch other mobs, as a pacifist"
|
||||
- bugfix: "Fixes being able to hurt people, as a pacifist, by throwing them into a wall or other mob, or by using most martial arts (save for the unpredictable psychotic brawl, and the stamina-damage-only boxing)."
|
||||
- balance: "Buffs boxing to outdamage natural stamina regeneration. Made the chance of outright missing your opponent actually possible."
|
||||
- tweak: "Pacifists can now engage in the (laughably not harmful) sweet sweet art of boxing now."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "GrayRachnid"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixes golden toolbox missing inhand sprite"
|
||||
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 379 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 369 KiB After Width: | Height: | Size: 387 KiB |