mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-02 21:42:41 +00:00
Merge branch 'master' into fourth_week_preparation_and_fixes
# Conflicts: # code/game/jobs/faction/zavodskoi.dm
This commit is contained in:
@@ -169,6 +169,11 @@
|
||||
|
||||
return output
|
||||
|
||||
/proc/sanitize_readd_odd_symbols(var/input)
|
||||
input = replacetext(input, "'", "\'")
|
||||
input = replacetext(input, """, "\"")
|
||||
return input
|
||||
|
||||
#undef NO_CHARS_DETECTED
|
||||
#undef SPACES_DETECTED
|
||||
#undef SYMBOLS_DETECTED
|
||||
@@ -499,6 +504,13 @@
|
||||
t = replacetext(t, "\[/small\]", "</font>")
|
||||
t = replacetext(t, "\[station\]", current_map.station_name)
|
||||
|
||||
var/regex/redacted_text = new(@"(\[redacted\])(.*?)(\[\/redacted\])", "g")
|
||||
while (redacted_text.Find(t))
|
||||
var/new_content = ""
|
||||
for(var/i = 1 to length(redacted_text.group[2]))
|
||||
new_content += "|"
|
||||
t = replacetext(t, redacted_text.match, "<span class='redacted'>[new_content]</span>")
|
||||
|
||||
// A break for signature customization code to use this proc as well.
|
||||
if (limited)
|
||||
return t
|
||||
|
||||
@@ -8,27 +8,48 @@
|
||||
military force across the Orion Spur. They are the main corporation found in the Empire of
|
||||
Dominia, and are at the forefront of weapons development technology.
|
||||
</p>
|
||||
<p>Zavodskoi Interstellar employees can be in the following departments:
|
||||
<ul>
|
||||
<li><b>Security</b>
|
||||
<li><b>Research</b>
|
||||
<li><b>Engineering</b>
|
||||
</ul></p>
|
||||
"}
|
||||
|
||||
<p>Some character examples are:
|
||||
<ul>
|
||||
<li><b>Surgical Specialist</b>: Unit to unit Zavodskoi ships the most firearms and weapons compared
|
||||
to any other corporation in the known galaxy and you're proud of it, but know the business comes with
|
||||
its hazards. Your medical experience has allowed you to survive the closing of many genetics testing
|
||||
centers during the recent transfer of leadership, and you know it. Zeng-Hu may have a reputation for
|
||||
being the best in the Orion Spur, but they are in the past - Zavodskoi is the future. You are a
|
||||
professional through-and-through, and consider yourself a (literal) cut above whatever washouts
|
||||
NanoTrasen can hire as surgeons. Just remember, you need to prove that you're better than Zeng-Hu.
|
||||
We need these medical contracts, lest we have to cut back the medical division just like the genetics one.</li>
|
||||
<li><b>Personal Security Professional</b>: Excellent customer service and client
|
||||
care is why Zavodskoi's private security personnel win security contracts and
|
||||
you know this. A cut above the rest, you are clear, calm, concise and polite when
|
||||
working. As a security force you were voted the most professional private security
|
||||
force to work for and as such, you have corporate standards to uphold! The protection
|
||||
of Zavodskoi staff is your first priority, but every member of the crew
|
||||
should be treated as a valued customer. After all, imagine how bad it would look to
|
||||
the shareholders if you were found beating a drunk like some kind of NanoTrasen officer.
|
||||
The reputation would last, but your career certainly wouldn't.</li>
|
||||
</ul></p>"}
|
||||
title_suffix = "Zavod"
|
||||
|
||||
allowed_role_types = ZAVOD_ROLES
|
||||
allowed_role_types = list(
|
||||
/datum/job/visitor,
|
||||
/datum/job/officer,
|
||||
/datum/job/warden,
|
||||
/datum/job/scientist,
|
||||
/datum/job/roboticist,
|
||||
/datum/job/surgeon,
|
||||
/datum/job/representative
|
||||
)
|
||||
|
||||
allowed_species_types = list(
|
||||
/datum/species/human,
|
||||
/datum/species/skrell,
|
||||
/datum/species/unathi,
|
||||
/datum/species/diona,
|
||||
/datum/species/machine,
|
||||
/datum/species/bug = TRUE,
|
||||
/datum/species/bug/type_b = TRUE,
|
||||
/datum/species/bug/type_e = TRUE,
|
||||
/datum/species/machine
|
||||
/datum/species/bug/type_e = TRUE
|
||||
)
|
||||
|
||||
job_species_blacklist = list(
|
||||
@@ -43,102 +64,51 @@
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR,
|
||||
SPECIES_VAURCA_BREEDER,
|
||||
SPECIES_VAURCA_BULWARK
|
||||
)
|
||||
)
|
||||
|
||||
titles_to_loadout = list(
|
||||
"Security Officer" = /datum/outfit/job/officer/zavodskoi,
|
||||
"Surgeon" = /datum/outfit/job/doctor/zavodskoi,
|
||||
"Warden" = /datum/outfit/job/warden/zavodskoi,
|
||||
"Security Cadet" = /datum/outfit/job/intern_sec/zavodskoi,
|
||||
"Investigator" =/datum/outfit/job/forensics/zavodskoi,
|
||||
"Scientist" = /datum/outfit/job/scientist/zavodskoi,
|
||||
"Xenobiologist" = /datum/outfit/job/scientist/zavodskoi/xenobio,
|
||||
"Xenobotanist" = /datum/outfit/job/scientist/zavodskoi,
|
||||
"Lab Assistant" = /datum/outfit/job/intern_sci/zavodskoi,
|
||||
"Xenoarcheologist"= /datum/outfit/job/scientist/xenoarcheologist/zavodskoi,
|
||||
"Engineer" = /datum/outfit/job/engineer/zavodskoi,
|
||||
"Atmospheric Technician" = /datum/outfit/job/atmos/zavodskoi,
|
||||
"Engineering Apprentice" = /datum/outfit/job/intern_eng/zavodskoi,
|
||||
"Phoron Researcher" = /datum/outfit/job/scientist/zavodskoi,
|
||||
"Xenoarcheologist" = /datum/outfit/job/scientist/zavodskoi,
|
||||
"Anomalist" = /datum/outfit/job/scientist/zavodskoi,
|
||||
"Roboticist" = /datum/outfit/job/roboticist/zavodskoi,
|
||||
"Biomechanical Engineer" = /datum/outfit/job/roboticist/zavodskoi,
|
||||
"Mechatronic Engineer" = /datum/outfit/job/roboticist/zavodskoi,
|
||||
"Corporate Liaison" = /datum/outfit/job/representative/zavodskoi
|
||||
)
|
||||
|
||||
/datum/outfit/job/officer/zavodskoi
|
||||
name = "Security Officer - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/security/zavod
|
||||
uniform = /obj/item/clothing/under/rank/security/zavodskoi
|
||||
id = /obj/item/card/id/zavodskoi/sec
|
||||
head = /obj/item/clothing/head/beret/security/zavodskoi/alt
|
||||
|
||||
/datum/outfit/job/warden/zavodskoi
|
||||
name = "Warden - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/warden/zavod
|
||||
uniform = /obj/item/clothing/under/rank/security/zavodskoi
|
||||
id = /obj/item/card/id/zavodskoi/sec
|
||||
head = /obj/item/clothing/head/warden/zavod
|
||||
|
||||
/datum/outfit/job/intern_sec/zavodskoi
|
||||
name = "Security Cadet - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/cadet/zavod
|
||||
id = /obj/item/card/id/zavodskoi/sec
|
||||
suit = null
|
||||
head = /obj/item/clothing/head/beret/security/zavodskoi/alt
|
||||
|
||||
/datum/outfit/job/forensics/zavodskoi
|
||||
name = "Investigator - Zavodskoi Interstellar"
|
||||
|
||||
id = /obj/item/card/id/zavodskoi/sec
|
||||
uniform = /obj/item/clothing/under/det/zavod
|
||||
suit = /obj/item/clothing/suit/storage/det_jacket/zavod
|
||||
head = null
|
||||
|
||||
/datum/outfit/job/scientist/zavodskoi
|
||||
name = "Scientist - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/scientist/zavod
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
suit = null
|
||||
|
||||
/datum/outfit/job/scientist/zavodskoi/xenobio
|
||||
name = "Xenobiologist - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/scientist/xenobio/zavod
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
suit = null
|
||||
|
||||
/datum/outfit/job/scientist/xenoarcheologist/zavodskoi
|
||||
name = "Xenoarcheologist - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/xenoarcheologist/zavod
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
suit = null
|
||||
|
||||
/datum/outfit/job/intern_sci/zavodskoi
|
||||
name = "Lab Assistant - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/scientist/intern/zavod
|
||||
uniform = /obj/item/clothing/under/rank/zavodskoi/research
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
|
||||
/datum/outfit/job/engineer/zavodskoi
|
||||
name = "Engineer - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/engineer/zavod
|
||||
/datum/outfit/job/roboticist/zavodskoi
|
||||
name = "Roboticist - Zavodskoi Interstellar"
|
||||
uniform = /obj/item/clothing/under/rank/zavodskoi/research
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
|
||||
/datum/outfit/job/atmos/zavodskoi
|
||||
name = "Atmospheric Technician - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/atmospheric_technician/zavod
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
|
||||
/datum/outfit/job/intern_eng/zavodskoi
|
||||
name = "Engineering Apprentice - Zavodskoi Interstellar"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/engineer/apprentice/zavod
|
||||
/datum/outfit/job/doctor/zavodskoi
|
||||
name = "Physician - Zavodskoi Interstellar"
|
||||
uniform = /obj/item/clothing/under/rank/zavodskoi/research
|
||||
id = /obj/item/card/id/zavodskoi
|
||||
|
||||
/datum/outfit/job/representative/zavodskoi
|
||||
@@ -153,4 +123,4 @@
|
||||
/obj/item/device/camera = 1,
|
||||
/obj/item/gun/projectile/pistol = 1,
|
||||
/obj/item/stamp/zavodskoi = 1
|
||||
)
|
||||
)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
var/mob/living/carbon/human/attached = null
|
||||
var/mode = 1 // 1 is injecting, 0 is taking blood.
|
||||
var/toggle_stop = 1
|
||||
var/transfer_amount = REM
|
||||
var/obj/item/reagent_containers/beaker = null
|
||||
var/blood_message_sent = FALSE
|
||||
@@ -104,6 +105,16 @@
|
||||
beaker.reagents.trans_to_mob(attached, transfer_amount, CHEM_BLOOD)
|
||||
update_icon()
|
||||
|
||||
if(toggle_stop) // Automatically detaches if the blood volume is at 100%
|
||||
if(beaker.reagents.has_reagent(/decl/reagent/blood) && attached.get_blood_volume() >= 100)
|
||||
visible_message("[icon2html(src, viewers(get_turf(src)))] \The <b>[src]</b> flashes a warning light, disengaging from [attached] automatically!")
|
||||
playsound(src, 'sound/machines/buzz-two.ogg', 50)
|
||||
src.attached = null
|
||||
src.update_icon()
|
||||
blood_message_sent = FALSE
|
||||
update_icon()
|
||||
return
|
||||
|
||||
// Take blood
|
||||
else
|
||||
var/amount = REAGENTS_FREE_SPACE(beaker.reagents)
|
||||
@@ -148,6 +159,22 @@
|
||||
mode = !mode
|
||||
to_chat(usr, "[src] is now [mode ? "injecting" : "taking blood"].")
|
||||
|
||||
/obj/machinery/iv_drip/verb/toggle_stop()
|
||||
set category = "Object"
|
||||
set name = "Toggle Stop"
|
||||
set src in view(1)
|
||||
|
||||
if(!isliving(usr))
|
||||
to_chat(usr, SPAN_WARNING("You can't do that."))
|
||||
return
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
toggle_stop = !toggle_stop
|
||||
usr.visible_message("<b>[usr]</b> toggles \the [src]'s automatic stop mode [toggle_stop ? "on" : "off"]", SPAN_NOTICE("You toggle \the [src]'s automatic stop mode [toggle_stop ? "on" : "off"]."))
|
||||
playsound(usr, 'sound/machines/click.ogg', 50)
|
||||
|
||||
/obj/machinery/iv_drip/examine(mob/user)
|
||||
..(user)
|
||||
if (!(user in view(2)) && user!=src.loc) return
|
||||
|
||||
@@ -1199,30 +1199,31 @@
|
||||
vend_id = "battlemonsters"
|
||||
products = list(
|
||||
/obj/item/book/manual/wiki/battlemonsters = 10,
|
||||
/obj/item/battle_monsters/wrapped/basic = 5,
|
||||
/obj/item/battle_monsters/wrapped = 10,
|
||||
/obj/item/battle_monsters/wrapped/pro = 10,
|
||||
/obj/item/battle_monsters/wrapped/species = 4, //Human monsters
|
||||
/obj/item/battle_monsters/wrapped/species/lizard = 4, //Reptile Monsters
|
||||
/obj/item/battle_monsters/wrapped/species/cat = 4, //Feline Monsters
|
||||
/obj/item/battle_monsters/wrapped/species/ant = 4, //Ant Monsters
|
||||
/obj/item/battle_monsters/wrapped/rare = 4
|
||||
/obj/item/battle_monsters/wrapped/basic = 20,
|
||||
/obj/item/battle_monsters/wrapped = 20,
|
||||
/obj/item/battle_monsters/wrapped/pro = 20,
|
||||
/obj/item/battle_monsters/wrapped/species = 10, //Human monsters
|
||||
/obj/item/battle_monsters/wrapped/species/lizard = 10, //Reptile Monsters
|
||||
/obj/item/battle_monsters/wrapped/species/cat = 10, //Feline Monsters
|
||||
/obj/item/battle_monsters/wrapped/species/ant = 10, //Ant Monsters
|
||||
/obj/item/battle_monsters/wrapped/rare = 10
|
||||
)
|
||||
prices = list(
|
||||
/obj/item/book/manual/wiki/battlemonsters = 12,
|
||||
/obj/item/battle_monsters/wrapped = 100,
|
||||
/obj/item/battle_monsters/wrapped/pro = 75,
|
||||
/obj/item/battle_monsters/wrapped/species = 100,
|
||||
/obj/item/battle_monsters/wrapped/species/lizard = 125,
|
||||
/obj/item/battle_monsters/wrapped/species/cat = 125,
|
||||
/obj/item/battle_monsters/wrapped/species/ant = 125,
|
||||
/obj/item/battle_monsters/wrapped/rare = 200
|
||||
/obj/item/battle_monsters/wrapped/species = 50,
|
||||
/obj/item/battle_monsters/wrapped/species/lizard = 50,
|
||||
/obj/item/battle_monsters/wrapped/species/cat = 50,
|
||||
/obj/item/battle_monsters/wrapped/species/ant = 50,
|
||||
/obj/item/battle_monsters/wrapped/rare = 100
|
||||
)
|
||||
contraband = list(
|
||||
/obj/item/battle_monsters/wrapped/legendary = 4
|
||||
/obj/item/battle_monsters/wrapped/legendary = 5
|
||||
)
|
||||
premium = list(
|
||||
/obj/item/coin/battlemonsters = 10
|
||||
)
|
||||
restock_items = 0
|
||||
restock_items = FALSE
|
||||
random_itemcount = FALSE
|
||||
light_color = COLOR_BABY_BLUE
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
icon_state = ""
|
||||
var/coming_state = "blood1"
|
||||
var/going_state = "blood2"
|
||||
var/updated_tracks = 0
|
||||
|
||||
// dir = id in stack
|
||||
var/list/setdirs = list(
|
||||
@@ -97,7 +96,6 @@
|
||||
track = new /datum/fluidtrack(b, footprint_color, t)
|
||||
stack.Add(track)
|
||||
setdirs["[b]"] = stack.Find(track)
|
||||
updated_tracks |= b
|
||||
updated=1
|
||||
|
||||
// GOING BIT (shift up 4)
|
||||
@@ -114,7 +112,6 @@
|
||||
track= new /datum/fluidtrack(b, footprint_color, t)
|
||||
stack.Add(track)
|
||||
setdirs["[b]"] = stack.Find(track)
|
||||
updated_tracks |= b
|
||||
updated = 1
|
||||
|
||||
dirs |= comingdir|realgoing
|
||||
@@ -146,7 +143,6 @@
|
||||
track.overlay = I
|
||||
stack[stack_idx] = track
|
||||
add_overlay(I)
|
||||
updated_tracks = 0 // Clear our memory of updated tracks.
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/footprints
|
||||
name = "wet footprints"
|
||||
@@ -157,6 +153,13 @@
|
||||
going_state = "human2"
|
||||
amount = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/footprints/barefoot
|
||||
desc = "They look like still wet tracks left by bare feet."
|
||||
drydesc = "They look like dried tracks left by bare feet."
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/footprints/barefoot/del_dry/dry()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/wheels
|
||||
name = "wet tracks"
|
||||
dryname = "dried tracks"
|
||||
@@ -194,4 +197,4 @@
|
||||
desc = "A still-wet trail left by someone crawling."
|
||||
drydesc = "A dried trail left by someone crawling."
|
||||
coming_state = "trail1"
|
||||
going_state = "trail2"
|
||||
going_state = "trail2"
|
||||
|
||||
@@ -14,12 +14,9 @@
|
||||
/obj/item/clothing/ring,
|
||||
/obj/item/device/flashlight/pen,
|
||||
/obj/item/seeds,
|
||||
/obj/item/stack/medical,
|
||||
/obj/item/coin,
|
||||
/obj/item/stack/dice,
|
||||
/obj/item/disk,
|
||||
/obj/item/implanter,
|
||||
/obj/item/flame/lighter,
|
||||
/obj/item/flame/match,
|
||||
/obj/item/lipstick,
|
||||
/obj/item/haircomb,
|
||||
@@ -27,17 +24,12 @@
|
||||
/obj/item/paper_bundle,
|
||||
/obj/item/pen,
|
||||
/obj/item/photo,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/item/reagent_containers/pill,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/screwdriver,
|
||||
/obj/item/stamp,
|
||||
/obj/item/device/paicard,
|
||||
/obj/item/device/encryptionkey,
|
||||
/obj/item/fluff,
|
||||
/obj/item/storage/business_card_holder,
|
||||
/obj/item/clothing/head/bandana,
|
||||
/obj/item/sample
|
||||
)
|
||||
slot_flags = SLOT_ID
|
||||
|
||||
@@ -77,7 +77,14 @@
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
|
||||
do_climb(usr)
|
||||
if(can_climb(usr))
|
||||
do_climb(usr)
|
||||
|
||||
/obj/structure/handle_middle_mouse_click(mob/user)
|
||||
if(can_climb(user))
|
||||
do_climb(usr)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/MouseDrop_T(mob/target, mob/user)
|
||||
|
||||
|
||||
@@ -437,6 +437,7 @@
|
||||
new /obj/item/gun/energy/xray(src)
|
||||
new /obj/item/clothing/accessory/holster/armpit/brown(src)
|
||||
new /obj/item/gun/energy/crossbow/largecrossbow(src)
|
||||
new /obj/item/melee/energy/sword/red(src)
|
||||
|
||||
/obj/structure/closet/crate/secure/gear_loadout/ninja/techno
|
||||
associated_hardsuit = /obj/item/rig/light/offworlder/techno/ninja
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
climbable = TRUE
|
||||
layer = OBJ_LAYER
|
||||
anchored = FALSE
|
||||
|
||||
flags = ON_BORDER
|
||||
obj_flags = OBJ_FLAG_ROTATABLE
|
||||
|
||||
build_amt = 2
|
||||
@@ -278,35 +280,49 @@
|
||||
/obj/structure/railing/ex_act(severity)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/railing/can_climb(var/mob/living/user, climb_dir, post_climb_check=0)
|
||||
/obj/structure/railing/can_climb(var/mob/living/user, post_climb_check=0)
|
||||
. = ..()
|
||||
var/turf/dest = get_step(user, climb_dir)
|
||||
if(. && get_turf(user) == get_turf(src))
|
||||
if(turf_is_crowded(TRUE) || !user.Adjacent(dest) || turf_contains_dense_objects(dest) && get_turf(src) != dest)
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/turf/destination_turf = get_destination_turf(user)
|
||||
|
||||
if(destination_turf.density)
|
||||
to_chat(user, SPAN_DANGER("You can't climb into \the [destination_turf]."))
|
||||
return FALSE
|
||||
|
||||
if(!Adjacent(destination_turf))
|
||||
to_chat(user, SPAN_DANGER("You can't climb there, the way is blocked."))
|
||||
return FALSE
|
||||
|
||||
for(var/atom/A in destination_turf.contents - src)
|
||||
if(A.density && !(A.flags & ON_BORDER))
|
||||
to_chat(user, SPAN_DANGER("You can't climb there, the way is blocked."))
|
||||
return FALSE
|
||||
|
||||
/obj/structure/railing/do_climb(mob/living/user)
|
||||
var/climb_dir = get_dir(user, src)
|
||||
if(get_turf(src) == get_turf(user))
|
||||
climb_dir = src.dir
|
||||
if(!can_climb(user, climb_dir))
|
||||
return
|
||||
return TRUE
|
||||
|
||||
/obj/structure/railing/do_climb(mob/living/user)
|
||||
user.visible_message(SPAN_WARNING("\The [user] starts climbing over \the [src]!"))
|
||||
LAZYADD(climbers, user)
|
||||
|
||||
if(!do_after(user, 50))
|
||||
if(!do_after(user, 2 SECONDS))
|
||||
LAZYREMOVE(climbers, user)
|
||||
return
|
||||
|
||||
if(!can_climb(user, climb_dir, post_climb_check = TRUE))
|
||||
if(!can_climb(user, post_climb_check = TRUE))
|
||||
LAZYREMOVE(climbers, user)
|
||||
return
|
||||
|
||||
user.forceMove(get_step(user, climb_dir))
|
||||
var/turf/destination_turf = get_destination_turf(user)
|
||||
user.forceMove(destination_turf)
|
||||
user.visible_message(SPAN_WARNING("\The [user] climbs over \the [src]!"))
|
||||
LAZYREMOVE(climbers, user)
|
||||
|
||||
if(!anchored || material.is_brittle())
|
||||
take_damage(maxhealth) // Fatboy
|
||||
take_damage(maxhealth) // Fatboy
|
||||
|
||||
/obj/structure/railing/proc/get_destination_turf(var/mob/user)
|
||||
. = get_turf(src) // by default, we pop into the turf the railing's on
|
||||
if(get_turf(user) == . || !(get_dir(src, user) & dir)) // if the user's inside our turf or behind us, go in front of us
|
||||
. = get_step(src, dir)
|
||||
|
||||
@@ -246,36 +246,9 @@ var/const/enterloopsanity = 100
|
||||
|
||||
H.update_inv_shoes(TRUE)
|
||||
|
||||
if(istype(AM, /mob/living/carbon/human))
|
||||
if(tracks_footprint && ishuman(AM))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
// Tracking blood
|
||||
var/list/footprint_DNA = list()
|
||||
var/footprint_color
|
||||
var/will_track = FALSE
|
||||
if(H.shoes)
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(istype(S))
|
||||
S.handle_movement(src, H.m_intent == M_RUN ? TRUE : FALSE)
|
||||
if(S.track_footprint)
|
||||
if(S.blood_DNA)
|
||||
footprint_DNA = S.blood_DNA
|
||||
footprint_color = S.blood_color
|
||||
S.track_footprint--
|
||||
will_track = TRUE
|
||||
else
|
||||
if(H.track_footprint)
|
||||
if(H.feet_blood_DNA)
|
||||
footprint_DNA = H.feet_blood_DNA
|
||||
footprint_color = H.footprint_color
|
||||
H.track_footprint--
|
||||
will_track = TRUE
|
||||
|
||||
if(tracks_footprint && will_track)
|
||||
add_tracks(H.species.get_move_trail(H), footprint_DNA, H.dir, 0, footprint_color) // Coming
|
||||
var/turf/simulated/from = get_step(H, reverse_direction(H.dir))
|
||||
if(istype(from) && from)
|
||||
from.add_tracks(H.species.get_move_trail(H), footprint_DNA, 0, H.dir, footprint_color) // Going
|
||||
footprint_DNA = null
|
||||
H.species.deploy_trail(H, src)
|
||||
|
||||
..()
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.change_appearance(APPEARANCE_ALL, H, TRUE, H.generate_valid_species(), null, default_state, src)
|
||||
var/getName = sanitize(input(H, "Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN)
|
||||
var/getName = sanitizeName(sanitize_readd_odd_symbols(sanitize(input(H, "Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN)))
|
||||
if(getName)
|
||||
H.real_name = getName
|
||||
H.name = getName
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/battle_monsters/wrapped/species
|
||||
name = "battle monsters human boosterpack"
|
||||
desc = "A battle monsters 10 card boosterpack, containing exclusively human monsters."
|
||||
contained_cards = 10
|
||||
desc = "A battle monsters 15 card boosterpack, containing exclusively human monsters."
|
||||
contained_cards = 15
|
||||
var/list/species = list(
|
||||
"human_male" = 1,
|
||||
"human_female" = 1,
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
/obj/item/battle_monsters/wrapped/species/lizard
|
||||
name = "battle monsters reptilian boosterpack"
|
||||
desc = "A battle monsters 10 card boosterpack, containing exclusively reptilian monsters."
|
||||
desc = "A battle monsters 15 card boosterpack, containing exclusively reptilian monsters."
|
||||
species = list(
|
||||
"dragon" = 0.5,
|
||||
"dragon_hybrid" = 0.25,
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/obj/item/battle_monsters/wrapped/species/cat
|
||||
name = "battle monsters feline boosterpack"
|
||||
desc = "A battle monsters 10 card boosterpack, containing exclusively feline monsters."
|
||||
desc = "A battle monsters 15 card boosterpack, containing exclusively feline monsters."
|
||||
species = list(
|
||||
"catman" = 1,
|
||||
"catwoman" = 1
|
||||
@@ -50,8 +50,8 @@
|
||||
|
||||
/obj/item/battle_monsters/wrapped/species/ant
|
||||
name = "battle monsters insect boosterpack"
|
||||
desc = "A battle monsters 10 card boosterpack, containing exclusively insect monsters."
|
||||
desc = "A battle monsters 15 card boosterpack, containing exclusively insect monsters."
|
||||
species = list(
|
||||
"antman" = 1,
|
||||
"antwoman" = 0.25
|
||||
)
|
||||
)
|
||||
|
||||
@@ -50,24 +50,24 @@
|
||||
|
||||
/obj/item/battle_monsters/wrapped/pro
|
||||
name = "battle monsters booster pack"
|
||||
desc = "A pack of 10 rare battle monster cards, with a chance of having legendary cards."
|
||||
desc = "A pack of 15 rare battle monster cards, with a chance of having legendary cards."
|
||||
icon_state = "pack2"
|
||||
contained_cards = 10
|
||||
contained_cards = 15
|
||||
rarity_max = BATTLE_MONSTERS_RARITY_UNCOMMON
|
||||
rarity_min = BATTLE_MONSTERS_RARITY_LEGENDARY
|
||||
|
||||
/obj/item/battle_monsters/wrapped/rare
|
||||
name = "battle monsters rare booster pack"
|
||||
desc = "A pack of 10 ultra-rare battle monster cards."
|
||||
desc = "A pack of 15 ultra-rare battle monster cards."
|
||||
icon_state = "pack2"
|
||||
contained_cards = 10
|
||||
contained_cards = 15
|
||||
rarity_max = BATTLE_MONSTERS_RARITY_RARE
|
||||
rarity_min = BATTLE_MONSTERS_RARITY_LEGENDARY
|
||||
|
||||
/obj/item/battle_monsters/wrapped/legendary
|
||||
name = "battle monsters rare booster pack"
|
||||
desc = "A pack of 4 legendary battle monster cards."
|
||||
name = "battle monsters legendary booster pack"
|
||||
desc = "A pack of 8 legendary battle monster cards."
|
||||
icon_state = "pack2"
|
||||
contained_cards = 4
|
||||
contained_cards = 8
|
||||
rarity_max = BATTLE_MONSTERS_RARITY_LEGENDARY
|
||||
rarity_min = BATTLE_MONSTERS_RARITY_LEGENDARY
|
||||
rarity_min = BATTLE_MONSTERS_RARITY_LEGENDARY
|
||||
|
||||
@@ -253,7 +253,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
++ind
|
||||
if(ind > 1)
|
||||
out += ", "
|
||||
out += "\tMechanical [organ_name]"
|
||||
var/datum/robolimb/R
|
||||
if(pref.rlimb_data[name] && all_robolimbs[pref.rlimb_data[name]])
|
||||
R = all_robolimbs[pref.rlimb_data[name]]
|
||||
else
|
||||
R = basic_robolimb
|
||||
out += "\t[R.company] Mechanical [organ_name]"
|
||||
else if(status == "nymph")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
@@ -732,7 +737,28 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if("Assisted")
|
||||
pref.organ_data[organ_name] = "assisted"
|
||||
if("Mechanical")
|
||||
|
||||
var/tmp_species = pref.species ? pref.species : SPECIES_HUMAN
|
||||
var/list/usable_manufacturers = list()
|
||||
for(var/company in internal_robolimbs)
|
||||
var/datum/robolimb/M = chargen_robolimbs[company]
|
||||
if(!(tmp_species in M.species_can_use))
|
||||
continue
|
||||
usable_manufacturers[company] = M
|
||||
if(!usable_manufacturers.len)
|
||||
return
|
||||
var/choice = input(user, "Which manufacturer do you wish to use for this organ?") as null|anything in usable_manufacturers
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
|
||||
var/datum/robolimb/R = all_robolimbs[choice]
|
||||
if(!(organ_name in R.allowed_internal_organs))
|
||||
alert(user, "You can not select this manufacturer for this organ.")
|
||||
return
|
||||
pref.rlimb_data[organ_name] = choice
|
||||
pref.organ_data[organ_name] = "mechanical"
|
||||
|
||||
if("Removed")
|
||||
pref.organ_data[organ_name] = "removed"
|
||||
|
||||
|
||||
@@ -165,6 +165,15 @@
|
||||
desc = "Super comfortable white shoes, capable of keeping you on your feet during any station-wide disaster."
|
||||
icon = 'icons/clothing/kit/captain_white.dmi'
|
||||
|
||||
/obj/item/clothing/under/rank/captain/white_dress
|
||||
name = "captain's white dress"
|
||||
desc = "The white variant of feminine fashion for the style conscious captain."
|
||||
icon = 'icons/clothing/kit/captain_white.dmi'
|
||||
icon_state = "uniform_fem"
|
||||
item_state = "uniform_fem"
|
||||
worn_state = "uniform_fem"
|
||||
is_open = -1
|
||||
|
||||
/obj/item/storage/briefcase/nt/captain_white
|
||||
name = "captain white uniform briefcase"
|
||||
desc = "An NT-branded briefcase containing various pieces of the captain's white uniform, for use when wine spillage is unlikely."
|
||||
@@ -173,7 +182,8 @@
|
||||
/obj/item/clothing/head/caphat/cap/white = 1,
|
||||
/obj/item/clothing/under/rank/captain/white = 1,
|
||||
/obj/item/clothing/gloves/captain/white = 1,
|
||||
/obj/item/clothing/shoes/captain/white = 1
|
||||
/obj/item/clothing/shoes/captain/white = 1,
|
||||
/obj/item/clothing/under/rank/captain/white_dress = 1
|
||||
)
|
||||
|
||||
// Formal
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Light rigs are not space-capable, but don't suffer excessive slowdown or sight issues when depowered.
|
||||
// Light rigs are not space-capable, but don't suffer excessive slowdown or sight issues when depowered.
|
||||
/obj/item/rig/light
|
||||
name = "light suit control module"
|
||||
desc = "A lighter, less armored hardsuit."
|
||||
@@ -14,8 +14,9 @@
|
||||
energy = ARMOR_MELEE_MINOR,
|
||||
bomb = ARMOR_BOMB_PADDED
|
||||
)
|
||||
emp_protection = 10
|
||||
slowdown = 0
|
||||
emp_protection = 100
|
||||
slowdown = -1
|
||||
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_UNATHI, BODYTYPE_SKRELL, BODYTYPE_VAURCA)
|
||||
item_flags = THICKMATERIAL
|
||||
offline_slowdown = 0
|
||||
offline_vision_restriction = 0
|
||||
@@ -94,7 +95,8 @@
|
||||
/obj/item/rig_module/vision,
|
||||
/obj/item/rig_module/teleporter,
|
||||
/obj/item/rig_module/actuators/combat,
|
||||
/obj/item/rig_module/device/door_hack
|
||||
/obj/item/rig_module/device/door_hack,
|
||||
/obj/item/rig_module/fabricator/energy_net
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -2148,7 +2148,7 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
|
||||
|
||||
/obj/item/clothing/suit/storage/toggle/fluff/sezrak_coat //red Domelkoan Coat - Sezrak Han'san - captaingecko
|
||||
name = "red Domelkoan Coa"
|
||||
name = "red Domelkoan Coat"
|
||||
desc = "A warm coat made in Domelkos. This red coat is stuffed with yupmi fur and made out of reinforced cloth-like synthetic materials, both to keep the wearer warm in the cold winters of \
|
||||
Moroz, and to resist all but the rougher treatments... All the while remaining good-looking enough. Both shoulders on this coat feature the standard of the Han'san clan-house, presented in a \
|
||||
gilded color."
|
||||
@@ -2223,7 +2223,7 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
icon_state = "quoro_suit"
|
||||
item_state = "quoro_suit"
|
||||
contained_sprite = TRUE
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/accessory/poncho/shouldercape/qeblak/zeng/fluff/eden_cloak // Zeng-Hu Jargon division cloak - Eden Li - Huntime
|
||||
name = "Zeng-Hu cloak: Jargon Division"
|
||||
@@ -2233,3 +2233,14 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
icon_state = "ZH_cape_custom"
|
||||
item_state = "ZH_cape_custom"
|
||||
|
||||
/obj/item/clothing/head/welding/fluff/akara_mask //Steel Face Mask - Akara Seuseisak - aticius
|
||||
name = "steel face mask"
|
||||
desc = "A slab of steel that has been hammered into the shape of a full-face mask with crude tools. It seems quite old and an appreciable layer of rust has built up."
|
||||
icon = 'icons/obj/custom_items/akara_mask.dmi'
|
||||
icon_override = 'icons/obj/custom_items/akara_mask.dmi'
|
||||
icon_state = "akara_mask"
|
||||
item_state = "akara_mask"
|
||||
contained_sprite = TRUE
|
||||
action_button_name = "Adjust mask"
|
||||
flash_protection = FLASH_PROTECTION_NONE
|
||||
tint = TINT_NONE
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
/decl/emote/human/stopsway,
|
||||
/decl/emote/audible/lizard_bellow,
|
||||
/decl/emote/audible/hiss,
|
||||
/decl/emote/audible/growl,
|
||||
/decl/emote/audible/hiss/short
|
||||
/decl/emote/audible/hiss/long,
|
||||
/decl/emote/audible/growl
|
||||
)
|
||||
pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/roar, /decl/emote/audible/whimper, /decl/emote/audible/moan) = 70,
|
||||
|
||||
@@ -241,14 +241,14 @@
|
||||
|
||||
/decl/emote/audible/growl
|
||||
key = "growl"
|
||||
emote_message_3p_target = "USER growls softly at TARGET."
|
||||
emote_message_3p = "USER growls softly."
|
||||
emote_message_3p_target = "USER growls at TARGET."
|
||||
emote_message_3p = "USER growls."
|
||||
emote_sound = 'sound/voice/Lizardgrowl.ogg'
|
||||
|
||||
/decl/emote/audible/hiss/short
|
||||
/decl/emote/audible/hiss/long
|
||||
key = "hiss2"
|
||||
emote_message_3p_target = "USER hisses softly at TARGET."
|
||||
emote_message_3p = "USER hisses softly."
|
||||
emote_message_3p_target = "USER hisses loudly at TARGET!"
|
||||
emote_message_3p = "USER hisses loudly!"
|
||||
emote_sound = 'sound/voice/lizardhiss2.ogg'
|
||||
|
||||
/decl/emote/audible/lizard_bellow
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
for(var/mob/living/carbon/human/H in shuffle(living_mob_list))
|
||||
if((H.client && H.stat != DEAD) && (!player_is_antag(H.mind)))
|
||||
var/obj/item/organ/internal/appendix/A = H.internal_organs_by_name[BP_APPENDIX]
|
||||
if(!istype(A) || (A && A.inflamed))
|
||||
if(!istype(A) || (A && A.inflamed && !(A.status & ORGAN_ROBOT)))
|
||||
continue
|
||||
A.inflamed = 1
|
||||
A.update_icon()
|
||||
|
||||
@@ -356,6 +356,10 @@ h1.alert, h2.alert {color: #a4bad6;}
|
||||
.tajaran_signlang {color: #cc2c2c;}
|
||||
.skrell {color: #00CED1;}
|
||||
.vaurca {color: #b9b943;}
|
||||
.vaurca_zora {color: #c74444;}
|
||||
.vaurca_cthur {color: #438eb9;}
|
||||
.vaurca_klax {color: #43b97e;}
|
||||
.vaurca_liidra {color: #af43b9;}
|
||||
.soghun {color: #2cad2c;}
|
||||
.solcom {color: #5f5fd4;}
|
||||
.elyran {color: #e2bb4e;}
|
||||
|
||||
@@ -353,6 +353,10 @@ h1.alert, h2.alert {color: #000080;}
|
||||
.tajaran_signlang {color: #941C1C;}
|
||||
.skrell {color: #00CED1;}
|
||||
.vaurca {color: #9e9e39;}
|
||||
.vaurca_zora {color: #9e3939;}
|
||||
.vaurca_cthur {color: #39719e;}
|
||||
.vaurca_klax {color: #399e4a;}
|
||||
.vaurca_liidra {color: #b350b3;}
|
||||
.soghun {color: #228B22;}
|
||||
.solcom {color: #22228B;}
|
||||
.elyran {color: #c79322;}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
list(
|
||||
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] barricade", /obj/structure/barricade, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] railing", /obj/structure/railing, BUILD_AMT, time = 50, one_per_turf = FALSE, on_floor = TRUE, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] railing", /obj/structure/railing, BUILD_AMT, time = 25, one_per_turf = FALSE, on_floor = TRUE, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] stool", /obj/structure/bed/stool, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] chair", /obj/structure/bed/stool/chair, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]"),
|
||||
new /datum/stack_recipe("[display_name] bed", /obj/structure/bed, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]"),
|
||||
|
||||
@@ -348,17 +348,10 @@ var/list/holder_mob_icon_cache = list()
|
||||
sync(contained)
|
||||
|
||||
/obj/item/holder/proc/sync(var/mob/living/M)
|
||||
dir = SOUTH
|
||||
cut_overlays()
|
||||
icon = M.icon
|
||||
icon_state = M.icon_state
|
||||
item_state = M.item_state
|
||||
color = M.color
|
||||
name = M.name
|
||||
desc = M.desc
|
||||
overlays |= M.overlays
|
||||
|
||||
update_held_icon()
|
||||
overlays = M.overlays
|
||||
dir = M.dir
|
||||
reagents = M.reagents
|
||||
|
||||
//#TODO-MERGE
|
||||
//Port the reduced-duplication holder method from baystation upstream:
|
||||
|
||||
@@ -223,9 +223,9 @@
|
||||
log_say("[key_name(speaker)] : ([name]) [message]",ckey=key_name(speaker))
|
||||
|
||||
if(!speaker_mask)
|
||||
speaker_mask = speaker.name
|
||||
speaker_mask = speaker.real_name
|
||||
|
||||
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span>[format_message(message, get_spoken_verb(message))]</span></i>"
|
||||
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span>[format_message(message, get_spoken_verb(message), speaker_mask)]</span></i>"
|
||||
|
||||
if(isvaurca(speaker))
|
||||
speaker.custom_emote(VISIBLE_MESSAGE, "[pick("twitches their antennae", "twitches their antennae rhythmically")].")
|
||||
@@ -240,6 +240,22 @@
|
||||
if(istype(player,/mob/abstract/observer) || ((src in player.languages && !within_jamming_range(player)) || check_special_condition(player)))
|
||||
to_chat(player, msg)
|
||||
|
||||
/datum/language/bug/format_message(message, verb, speaker_mask)
|
||||
var/message_color = colour
|
||||
var/list/speaker_surname = splittext(speaker_mask, " ")
|
||||
switch(speaker_surname[2])
|
||||
if("Zo'ra")
|
||||
message_color = "vaurca_zora"
|
||||
if("C'thur")
|
||||
message_color = "vaurca_cthur"
|
||||
if("K'lax")
|
||||
message_color = "vaurca_klax"
|
||||
if("Lii'dra")
|
||||
message_color = "vaurca_liidra"
|
||||
if(copytext(message, 1, 2) == "!")
|
||||
return " projects <span class='message'><span class='[message_color]'>[copytext(message, 2)]</span></span>"
|
||||
return "[verb], <span class='message'><span class='[message_color]'>\"[capitalize(message)]\"</span></span>"
|
||||
|
||||
/datum/language/bug/check_special_condition(var/mob/other)
|
||||
if(istype(other, /mob/living/silicon))
|
||||
return 1
|
||||
|
||||
@@ -122,7 +122,10 @@
|
||||
if ("assisted")
|
||||
I.mechassist()
|
||||
if ("mechanical")
|
||||
I.robotize()
|
||||
if (rlimb_data[name])
|
||||
I.robotize(rlimb_data[name])
|
||||
else
|
||||
I.robotize()
|
||||
if ("removed")
|
||||
qdel(I)
|
||||
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
|
||||
var/pass_flags = 0
|
||||
|
||||
var/obj/effect/decal/cleanable/blood/tracks/move_trail = /obj/effect/decal/cleanable/blood/tracks/footprints // What marks are left when walking
|
||||
var/obj/effect/decal/cleanable/blood/tracks/move_trail = /obj/effect/decal/cleanable/blood/tracks/footprints/barefoot // What marks are left when walking
|
||||
|
||||
var/default_h_style = "Bald"
|
||||
var/default_f_style = "Shaved"
|
||||
@@ -637,6 +637,35 @@
|
||||
/datum/species/proc/can_breathe_water()
|
||||
return FALSE
|
||||
|
||||
/datum/species/proc/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
|
||||
var/list/trail_info = list()
|
||||
if(H.shoes)
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(istype(S))
|
||||
S.handle_movement(T, H.m_intent == M_RUN ? TRUE : FALSE)
|
||||
if(S.track_footprint)
|
||||
if(S.blood_DNA)
|
||||
trail_info["footprint_DNA"] = S.blood_DNA
|
||||
trail_info["footprint_color"] = S.blood_color
|
||||
S.track_footprint--
|
||||
else
|
||||
if(H.track_footprint)
|
||||
if(H.feet_blood_DNA)
|
||||
trail_info["footprint_DNA"] = H.feet_blood_DNA
|
||||
trail_info["footprint_color"] = H.footprint_color
|
||||
H.track_footprint--
|
||||
|
||||
return trail_info
|
||||
|
||||
/datum/species/proc/deploy_trail(var/mob/living/carbon/human/H, var/turf/T)
|
||||
var/list/trail_info = handle_trail(H, T)
|
||||
if(length(trail_info))
|
||||
var/track_path = trail_info["footprint_type"]
|
||||
T.add_tracks(track_path ? track_path : H.species.get_move_trail(H), trail_info["footprint_DNA"], H.dir, 0, trail_info["footprint_color"]) // Coming
|
||||
var/turf/simulated/from = get_step(H, reverse_direction(H.dir))
|
||||
if(istype(from))
|
||||
from.add_tracks(track_path ? track_path : H.species.get_move_trail(H), trail_info["footprint_DNA"], 0, H.dir, trail_info["footprint_color"]) // Going
|
||||
|
||||
/datum/species/proc/get_move_trail(var/mob/living/carbon/human/H)
|
||||
if(H.lying)
|
||||
return /obj/effect/decal/cleanable/blood/tracks/body
|
||||
|
||||
@@ -94,6 +94,18 @@
|
||||
zombie_type = SPECIES_ZOMBIE_SKRELL
|
||||
bodyfall_sound = /decl/sound_category/bodyfall_skrell_sound
|
||||
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
|
||||
|
||||
/datum/species/skrell/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
|
||||
var/list/trail_info = ..()
|
||||
if(!length(trail_info) && !H.shoes)
|
||||
var/list/blood_data = REAGENT_DATA(H.vessel, /decl/reagent/blood)
|
||||
trail_info["footprint_DNA"] = list(blood_data["blood_DNA"] = blood_data["blood_type"])
|
||||
trail_info["footprint_color"] = rgb(H.r_skin, H.g_skin, H.b_skin, 25)
|
||||
trail_info["footprint_type"] = /obj/effect/decal/cleanable/blood/tracks/footprints/barefoot/del_dry // makes skrellprints del on dry
|
||||
|
||||
return trail_info
|
||||
|
||||
/datum/species/skrell/handle_post_spawn(mob/living/carbon/human/H)
|
||||
..()
|
||||
H.set_psi_rank(PSI_COERCION, PSI_RANK_OPERANT)
|
||||
|
||||
@@ -109,6 +109,8 @@
|
||||
BP_EYES = /obj/item/organ/internal/eyes/unathi
|
||||
)
|
||||
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
|
||||
|
||||
pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/wheeze, /decl/emote/audible/roar, /decl/emote/audible/bellow) = 80,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/wheeze, /decl/emote/audible/hiss) = 50,
|
||||
|
||||
@@ -55,7 +55,8 @@
|
||||
var/id_card_type = /obj/item/card/id/synthetic
|
||||
|
||||
var/list/possible_accents = list(ACCENT_TTS, ACCENT_CETI, ACCENT_GIBSON, ACCENT_SOL, ACCENT_LUNA, ACCENT_MARTIAN, ACCENT_VENUS, ACCENT_VENUSJIN, ACCENT_JUPITER, ACCENT_COC, ACCENT_ELYRA, ACCENT_ERIDANI,
|
||||
ACCENT_SILVERSUN_EXPATRIATE, ACCENT_KONYAN, ACCENT_EARTH)
|
||||
ACCENT_SILVERSUN_EXPATRIATE, ACCENT_KONYAN, ACCENT_EARTH, ACCENT_PERSEPOLIS, ACCENT_MEDINA, ACCENT_AEMAQ, ACCENT_NEWSUEZ, ACCENT_DAMASCUS, ACCENT_ERIDANI, ACCENT_PHONG,
|
||||
ACCENT_VISEGRAD, ACCENT_HIMEO, ACCENT_PLUTO)
|
||||
|
||||
// Misc
|
||||
uv_intensity = 175 //Lights cast by robots have reduced effect on diona
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
return
|
||||
attacker.visible_message("<span class='danger'>[attacker] thrusts [attacker.get_pronoun("his")] head into [target]'s skull!</span>")
|
||||
|
||||
var/damage = 20
|
||||
var/damage = 15
|
||||
if(attacker.mob_size >= 10)
|
||||
damage += min(attacker.mob_size, 20)
|
||||
|
||||
|
||||
@@ -63,16 +63,31 @@
|
||||
. += "[get_wound_severity(get_scarring_level())] scarring"
|
||||
|
||||
/obj/item/organ/internal/is_usable()
|
||||
return ..() && !is_broken()
|
||||
if(robotize_type)
|
||||
var/datum/robolimb/R = all_robolimbs[robotize_type]
|
||||
if(!R.malfunctioning_check(owner))
|
||||
return TRUE
|
||||
else
|
||||
return ..() && !is_broken()
|
||||
|
||||
/obj/item/organ/internal/proc/is_damaged()
|
||||
return damage > 0
|
||||
|
||||
/obj/item/organ/internal/robotize()
|
||||
/obj/item/organ/internal/robotize(var/company = "Unbranded")
|
||||
..()
|
||||
min_bruised_damage += 5
|
||||
min_broken_damage += 10
|
||||
|
||||
if(company)
|
||||
model = company
|
||||
var/datum/robolimb/R = all_robolimbs[company]
|
||||
|
||||
if(R)
|
||||
if(robotic_sprite)
|
||||
icon_state = "[initial(icon_state)]-[R.internal_organ_suffix]"
|
||||
|
||||
robotize_type = company
|
||||
|
||||
/obj/item/organ/internal/proc/getToxLoss()
|
||||
if(BP_IS_ROBOTIC(src))
|
||||
return damage * 0.5
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/organ/internal/appendix/process()
|
||||
..()
|
||||
if(inflamed && owner)
|
||||
if(inflamed && owner && !(status & ORGAN_ROBOT))
|
||||
inflamed++
|
||||
if(prob(5))
|
||||
if(owner.can_feel_pain())
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
organ_tag = BP_EYES
|
||||
parent_organ = BP_HEAD
|
||||
robotic_name = "optical sensors"
|
||||
robotic_sprite = "eyes-prosthetic"
|
||||
max_damage = 45
|
||||
relative_size = 5
|
||||
var/list/eye_colour = list(0,0,0)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
parent_organ = BP_CHEST
|
||||
dead_icon = "heart-off"
|
||||
robotic_name = "circulatory pump"
|
||||
robotic_sprite = "heart-prosthetic"
|
||||
toxin_type = CE_CARDIOTOXIC
|
||||
|
||||
max_damage = 45
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
organ_tag = BP_KIDNEYS
|
||||
parent_organ = BP_GROIN
|
||||
robotic_name = "prosthetic kidneys"
|
||||
robotic_sprite = "kidneys-prosthetic"
|
||||
min_bruised_damage = 25
|
||||
min_broken_damage = 45
|
||||
max_damage = 70
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
organ_tag = BP_LIVER
|
||||
parent_organ = BP_GROIN
|
||||
robotic_name = "toxin filter"
|
||||
robotic_sprite = "liver-prosthetic"
|
||||
toxin_type = CE_HEPATOTOXIC
|
||||
min_bruised_damage = 25
|
||||
min_broken_damage = 55
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
organ_tag = BP_LUNGS
|
||||
parent_organ = BP_CHEST
|
||||
robotic_name = "gas exchange system"
|
||||
robotic_sprite = "lungs-prosthetic"
|
||||
min_bruised_damage = 30
|
||||
min_broken_damage = 45
|
||||
toxin_type = CE_PNEUMOTOXIC
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/organ/internal/eyes/night
|
||||
name = "light sensitive eyes"
|
||||
desc = "A pair of Tajaran eyes accustomed to the low light conditions of Adhomai."
|
||||
icon_state = "tajaran_eyes"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
action_button_name = "Activate Low Light Vision"
|
||||
default_action_type = /datum/action/item_action/organ/night_eyes
|
||||
relative_size = 8
|
||||
@@ -109,31 +109,31 @@
|
||||
/obj/item/organ/internal/stomach/tajara
|
||||
name = "reinforced stomach"
|
||||
desc = "A Tajara stomach adapted to help the body conserve energy during digestion."
|
||||
icon_state = "tajaran_stomach"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
stomach_volume = 80
|
||||
|
||||
/obj/item/organ/internal/lungs/tajara
|
||||
name = "insulated lungs"
|
||||
desc = "A pair of Tajaran lungs that help preserve the warmth of the air while breathing."
|
||||
icon_state = "tajaran_lungs"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/liver/tajara
|
||||
desc = "An alien liver capable of filtering Adhomian toxins and chemicals."
|
||||
icon_state = "tajaran_liver"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/heart/tajara
|
||||
desc = "A robust heart capable of helping to preserve body temperature through blood circulation."
|
||||
icon_state = "tajaran_heart"
|
||||
dead_icon = "tajaran_heart"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/kidneys/tajara
|
||||
desc = "Alien kidneys adapted to the Tajaran physiology."
|
||||
icon_state = "tajaran_kidneys"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/brain/tajara
|
||||
icon_state = "tajaran_brain"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/appendix/tajara
|
||||
name = "fat reservoir"
|
||||
icon_state = "tajaran_appendix"
|
||||
icon = 'icons/obj/organs/tajara_organs.dmi'
|
||||
desc = "An Adhomian organ that stores fat and nutrients for the winter."
|
||||
possible_modifications = list("Normal","Assisted","Mechanical", "Removed")
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
/obj/item/organ/internal/stomach/unathi
|
||||
name = "massive gizzard"
|
||||
desc = "A much larger stomach than what humans have. Looks to belong to a carnivore."
|
||||
icon_state = "unathi_stomach"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/brain/unathi
|
||||
icon_state = "unathi_brain"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/lungs/unathi
|
||||
name = "large lungs"
|
||||
desc = "A pair of two large lungs belonging to Unathi, similar in appearance to yet much larger than Human lungs."
|
||||
icon_state = "unathi_lungs"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/heart/unathi
|
||||
name = "large heart"
|
||||
desc = "A single large heart almost triple the size of your hand, used to effectively pump blood throughout a body without transporting much heat. It looks to have only one ventricle."
|
||||
icon_state = "unathi_heart"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/liver/unathi
|
||||
icon_state = "unathi_liver"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/kidneys/unathi
|
||||
icon_state = "unathi_kidneys"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/eyes/unathi
|
||||
name = "reptilian eyes"
|
||||
desc = "A pair of reptilian eyes. The pupil is slit and never dialating; you can almost feel it staring at you."
|
||||
icon_state = "unathi_eyes"
|
||||
icon = 'icons/obj/organs/unathi_organs.dmi'
|
||||
@@ -1,8 +1,8 @@
|
||||
/obj/item/organ/internal/eyes/night/vaurca
|
||||
name = "vaurcaesian eyes"
|
||||
desc = "A set of four vaurcaesian eyes, adapted to the low or no light tunnels of Sedantis."
|
||||
icon_state = "eyes_vaurca"
|
||||
robotic_sprite = null
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
robotic_sprite = FALSE
|
||||
vision_color = /datum/client_color/vaurca
|
||||
vision_mechanical_color = /datum/client_color/monochrome
|
||||
eye_emote = "'s eyes gently shift."
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
organ_tag = BP_STOMACH
|
||||
parent_organ = BP_GROIN
|
||||
robotic_name = "digestive pump"
|
||||
robotic_sprite = "stomach-prosthetic"
|
||||
var/datum/reagents/metabolism/ingested
|
||||
var/next_cramp = 0
|
||||
var/should_process_alcohol = TRUE
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/organ
|
||||
name = "organ"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon = 'icons/obj/organs/organs.dmi'
|
||||
drop_sound = 'sound/items/drop/flesh.ogg'
|
||||
pickup_sound = 'sound/items/pickup/flesh.ogg'
|
||||
default_action_type = /datum/action/item_action/organ
|
||||
@@ -31,8 +31,9 @@
|
||||
var/robotic = 0 //For being a robot
|
||||
var/robotize_type // If set, this organ type will automatically be roboticized with this manufacturer.
|
||||
var/robotic_name
|
||||
var/robotic_sprite
|
||||
var/robotic_sprite = TRUE
|
||||
var/emp_coeff = 1 //coefficient for damages taken by EMP, if the organ is robotic.
|
||||
var/model
|
||||
|
||||
//Lists.
|
||||
var/list/transplant_data
|
||||
@@ -361,10 +362,10 @@
|
||||
robotic = ROBOTIC_MECHANICAL
|
||||
status = ORGAN_ROBOT
|
||||
status |= ORGAN_ASSISTED
|
||||
drop_sound = 'sound/items/drop/metalweapon.ogg'
|
||||
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
|
||||
if(robotic_name)
|
||||
name = robotic_name
|
||||
if(robotic_sprite)
|
||||
icon_state = robotic_sprite
|
||||
|
||||
/obj/item/organ/proc/mechassist() //Used to add things like pacemakers, etc
|
||||
robotize()
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
var/icon_name = null
|
||||
var/body_part = null
|
||||
var/icon_position = 0
|
||||
var/model
|
||||
|
||||
var/damage_state = "00"
|
||||
|
||||
//Damage variables.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
var/global/list/all_robolimbs = list()
|
||||
var/global/list/internal_robolimbs = list()
|
||||
var/global/list/chargen_robolimbs = list()
|
||||
var/global/list/fabricator_robolimbs = list()
|
||||
var/global/datum/robolimb/basic_robolimb
|
||||
@@ -12,6 +13,8 @@ var/global/datum/robolimb/basic_robolimb
|
||||
chargen_robolimbs[R.company] = R
|
||||
if(R.fabricator_available)
|
||||
fabricator_robolimbs[R.company] = R
|
||||
if(R.allows_internal)
|
||||
internal_robolimbs[R.company] = R
|
||||
|
||||
/datum/robolimb
|
||||
var/company = "Unbranded" // Shown when selecting the limb.
|
||||
@@ -39,6 +42,9 @@ var/global/datum/robolimb/basic_robolimb
|
||||
var/brute_mod = 0.9 //how resistant is this mode to brute damage
|
||||
var/burn_mod = 1.1 //how resistant is this mode to burn damage
|
||||
var/fabricator_available = FALSE //if you can print this limb in the robotics fabricator
|
||||
var/internal_organ_suffix = "prosthetic" //this is used to define the icon
|
||||
var/list/allowed_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)//what organs can be augmented by this brand
|
||||
var/allows_internal = TRUE
|
||||
|
||||
/datum/robolimb/proc/malfunctioning_check()
|
||||
return FALSE
|
||||
@@ -49,6 +55,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
icon = 'icons/mob/human_races/ipc/r_ind_bishop.dmi'
|
||||
linked_frame = SPECIES_IPC_BISHOP
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/hesphaistos
|
||||
company = PROSTHETIC_HI
|
||||
@@ -56,6 +63,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
icon = 'icons/mob/human_races/ipc/r_ind_hephaestus.dmi'
|
||||
linked_frame = SPECIES_IPC_G2
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/zenghu
|
||||
company = PROSTHETIC_ZH
|
||||
@@ -63,6 +71,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
icon = 'icons/mob/human_races/ipc/r_ind_zenghu.dmi'
|
||||
linked_frame = SPECIES_IPC_ZENGHU
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/xion
|
||||
company = PROSTHETIC_XMG
|
||||
@@ -70,6 +79,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
icon = 'icons/mob/human_races/ipc/r_ind_xion.dmi'
|
||||
linked_frame = SPECIES_IPC_XION
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/ipc
|
||||
company = PROSTHETIC_IPC
|
||||
@@ -79,6 +89,7 @@ var/global/datum/robolimb/basic_robolimb
|
||||
paintable = 1
|
||||
linked_frame = SPECIES_IPC
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/industrial
|
||||
company = PROSTHETIC_IND
|
||||
@@ -87,12 +98,14 @@ var/global/datum/robolimb/basic_robolimb
|
||||
unavailable_at_chargen = 1
|
||||
linked_frame = SPECIES_IPC_G1
|
||||
fabricator_available = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/terminator
|
||||
company = PROSTHETIC_HK
|
||||
desc = "A ludicrously expensive and EMP shielded component, these types of limbs are best suited for highly specialized cyborgs."
|
||||
icon = 'icons/mob/human_races/ipc/r_terminator.dmi'
|
||||
unavailable_at_chargen = 1
|
||||
unavailable_at_chargen = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/human
|
||||
company = PROSTHETIC_SYNTHSKIN
|
||||
@@ -103,19 +116,23 @@ var/global/datum/robolimb/basic_robolimb
|
||||
fabricator_available = TRUE
|
||||
paintable = TRUE
|
||||
lifelike = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/autakh
|
||||
company = PROSTHETIC_AUTAKH
|
||||
desc = "This limb has been designed by the Aut'akh unathi sect."
|
||||
icon = 'icons/mob/human_races/unathi/r_autakh.dmi'
|
||||
species_can_use = list(SPECIES_UNATHI)
|
||||
paintable = 1
|
||||
paintable = TRUE
|
||||
allows_internal = FALSE
|
||||
|
||||
/datum/robolimb/tesla
|
||||
company = PROSTHETIC_TESLA
|
||||
desc = "A limb designed to be used by the People's Republic of Adhomai Tesla Brigade. This civilian version is issued to disabled veterans and civilians."
|
||||
icon = 'icons/mob/human_races/tajara/tesla_limbs.dmi'
|
||||
species_can_use = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
|
||||
internal_organ_suffix = "tesla"
|
||||
allowed_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH, BP_APPENDIX)
|
||||
|
||||
/datum/robolimb/tesla/malfunctioning_check(var/mob/living/carbon/human/H)
|
||||
var/obj/item/organ/internal/augment/tesla/T = H.internal_organs_by_name[BP_AUG_TESLA]
|
||||
@@ -128,4 +145,5 @@ var/global/datum/robolimb/basic_robolimb
|
||||
company = PROSTHETIC_VAURCA
|
||||
desc = "This limb design is from old Sedantis, still manufactured by the Hives when providing maintenace to most of the basic Vaurcesian bioforms."
|
||||
icon = 'icons/mob/human_races/vaurca/r_vaurcalimbs.dmi'
|
||||
species_can_use = list(SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR)
|
||||
species_can_use = list(SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR)
|
||||
allows_internal = FALSE
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/item/organ/internal/augment
|
||||
name = "augment"
|
||||
icon = 'icons/obj/organs/augments.dmi'
|
||||
icon_state = "augment"
|
||||
parent_organ = BP_CHEST
|
||||
organ_tag = "augment"
|
||||
@@ -11,6 +12,7 @@
|
||||
SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2, SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL)
|
||||
robotic_sprite = FALSE
|
||||
var/cooldown = 150
|
||||
var/action_button_icon = "augment"
|
||||
var/activable = FALSE
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
/obj/item/organ/internal/heart/skrell
|
||||
icon_state = "skrell_heart-on"
|
||||
dead_icon = "skrell_heart-off"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/lungs/skrell
|
||||
icon_state = "lungs_skrell"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/kidneys/skrell
|
||||
icon_state = "kidney_skrell"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/eyes/skrell
|
||||
icon_state = "eyes_skrell"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/liver/skrell
|
||||
icon_state = "liver_skrell"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/brain/skrell
|
||||
icon_state = "brain_skrell"
|
||||
icon = 'icons/obj/organs/skrell_organs.dmi'
|
||||
|
||||
/obj/item/organ/external/head/skrell
|
||||
var/obj/item/storage/internal/skrell/storage
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
/obj/item/organ/internal/heart/vaurca
|
||||
name = "double heart system"
|
||||
desc = "A double heart capable of pushing blood in an open circulatory system."
|
||||
icon_state = "vaurca_heart_d-on"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
organ_tag = BP_HEART
|
||||
parent_organ = BP_CHEST
|
||||
dead_icon = "vaurca_heart_d-off"
|
||||
max_damage = 90 //two hearts = stronger hearts
|
||||
|
||||
/obj/item/organ/internal/lungs/vaurca
|
||||
icon_state = "lungs_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/kidneys/vaurca
|
||||
icon_state = "kidney_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/kidneys/vaurca/robo
|
||||
icon_state = "kidney_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
organ_tag = BP_VAURCA_KIDNEYS
|
||||
robotic = ROBOTIC_MECHANICAL
|
||||
robotic_name = null
|
||||
robotic_sprite = null
|
||||
robotic_sprite = FALSE
|
||||
|
||||
/obj/item/organ/internal/liver/vaurca/robo
|
||||
icon_state = "liver_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
organ_tag = BP_VAURCA_LIVER
|
||||
robotic = ROBOTIC_MECHANICAL
|
||||
robotic_name = null
|
||||
robotic_sprite = null
|
||||
robotic_sprite = FALSE
|
||||
|
||||
/obj/item/organ/internal/liver/vaurca
|
||||
icon_state = "liver_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/stomach/vaurca
|
||||
/obj/item/organ/internal/stomach/vaurca
|
||||
name = "private stomach"
|
||||
icon_state = "stomach_vaurca"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/appendix/vaurca
|
||||
/obj/item/organ/internal/appendix/vaurca
|
||||
name = "social stomach"
|
||||
desc = "A vestigial organ that stores food for throphallaxis. It has not seen a practical use since the rise of modern Hives."
|
||||
icon_state = "vaurca_appendix"
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/internal/brain/vaurca
|
||||
name = "vaurca brain"
|
||||
desc = "The brain of a Vaurca, being similar to that of an insect; and that of a mammal."
|
||||
icon_state = "brain_vaurca"
|
||||
desc = "The brain of a Vaurca, being similar to that of an insect; and that of a mammal."
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
|
||||
/obj/item/organ/vaurca/reservoir
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
name = BP_PHORON_RESERVOIR
|
||||
organ_tag = BP_PHORON_RESERVOIR
|
||||
parent_organ = BP_CHEST
|
||||
@@ -52,6 +52,7 @@
|
||||
robotic = ROBOTIC_ASSISTED
|
||||
|
||||
/obj/item/organ/vaurca/filtrationbit
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
name = BP_FILTRATION_BIT
|
||||
organ_tag = BP_FILTRATION_BIT
|
||||
parent_organ = BP_HEAD
|
||||
@@ -59,6 +60,7 @@
|
||||
robotic = ROBOTIC_MECHANICAL
|
||||
|
||||
/obj/item/organ/vaurca/neuralsocket
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
name = BP_NEURAL_SOCKET
|
||||
organ_tag = BP_NEURAL_SOCKET
|
||||
icon_state = "neural_socket"
|
||||
@@ -90,6 +92,7 @@ obj/item/organ/vaurca/neuralsocket/process()
|
||||
..()
|
||||
|
||||
/obj/item/organ/vaurca/preserve
|
||||
icon = 'icons/obj/organs/vaurca_organs.dmi'
|
||||
name = BP_PHORON_RESERVE
|
||||
organ_tag = BP_PHORON_RESERVE
|
||||
parent_organ = BP_CHEST
|
||||
|
||||
@@ -25,6 +25,7 @@ Pen and crayon commands
|
||||
\[i\] - \[/i\] : Makes the text italic.
|
||||
\[u\] - \[/u\] : Makes the text underlined.
|
||||
\[large\] - \[/large\] : Increases the size of the text.
|
||||
\[redacted\] - \[/redacted\] : Covers the text in an unbreachable black box.
|
||||
\[sign\] : Inserts a signature of your name in a foolproof way.
|
||||
\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.
|
||||
\[date\] : Inserts today's station date.
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
desc_info = "Autoinjectors are spent after using them. To re-use, use a screwdriver to open the back panel, then simply pour any desired reagent inside. Use in-hand, or click it while it's in your active hand to prepare it for reuse."
|
||||
icon_state = "autoinjector"
|
||||
item_state = "autoinjector"
|
||||
slot_flags = SLOT_EARS
|
||||
var/name_label
|
||||
var/spent = TRUE
|
||||
amount_per_transfer_from_this = 5
|
||||
@@ -296,4 +297,4 @@
|
||||
/obj/item/reagent_containers/hypospray/combat/empty
|
||||
name = "combat hypospray"
|
||||
desc = "A sleek black hypospray. Its needle has the ability to bypass armor."
|
||||
reagents_to_add = FALSE
|
||||
reagents_to_add = FALSE
|
||||
|
||||
Reference in New Issue
Block a user