Merge branch 'master' into crow

This commit is contained in:
TrilbySpaceClone
2019-11-22 05:48:36 -05:00
81 changed files with 373 additions and 120 deletions
+6 -3
View File
@@ -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)
+1
View File
@@ -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)
+6 -4
View File
@@ -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")
+2
View File
@@ -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
+9 -2
View File
@@ -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
View File
@@ -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)
+2
View File
@@ -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
+17 -2
View File
@@ -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>")
+5 -5
View File
@@ -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)
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+26 -24
View File
@@ -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
+2 -2
View File
@@ -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
+4 -5
View File
@@ -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
+5 -1
View File
@@ -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)
+1 -1
View File
@@ -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
-4
View File
@@ -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
+10 -10
View File
@@ -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)
+1 -1
View File
@@ -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")
+11 -11
View File
@@ -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 -4
View File
@@ -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)
+2 -2
View File
@@ -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
+9 -6
View File
@@ -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 = ..()
+4 -3
View File
@@ -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
+6 -7
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
+7 -1
View File
@@ -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))
+1 -1
View File
@@ -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
+4
View File
@@ -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**************************/
+1
View File
@@ -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)
+1 -1
View File
@@ -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))
+1 -1
View File
@@ -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
+5
View File
@@ -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"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 KiB

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.