mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-21 20:14:31 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into sync
# Conflicts: # code/game/mecha/mech_fabricator.dm
This commit is contained in:
@@ -57,10 +57,18 @@
|
||||
display_name = "tie, blue with clip"
|
||||
path = /obj/item/clothing/accessory/blue_clip
|
||||
|
||||
/datum/gear/accessory/tie/blue_long
|
||||
display_name = "tie, blue long"
|
||||
path = /obj/item/clothing/accessory/blue_long
|
||||
|
||||
/datum/gear/accessory/tie/red
|
||||
display_name = "tie, red"
|
||||
path = /obj/item/clothing/accessory/red
|
||||
|
||||
/datum/gear/accessory/tie/red_clip
|
||||
display_name = "tie, red with clip"
|
||||
path = /obj/item/clothing/accessory/red_clip
|
||||
|
||||
/datum/gear/accessory/tie/red_long
|
||||
display_name = "tie, red long"
|
||||
path = /obj/item/clothing/accessory/red_long
|
||||
@@ -137,6 +145,30 @@
|
||||
display_name = "scarf, striped blue"
|
||||
path = /obj/item/clothing/accessory/stripedbluescarf
|
||||
|
||||
/datum/gear/accessory/suitjacket
|
||||
display_name = "suit jacket, tan"
|
||||
path = /obj/item/clothing/accessory/tan_jacket
|
||||
|
||||
/datum/gear/accessory/suitjacket/charcoal
|
||||
display_name = "suit jacket, charcoal"
|
||||
path = /obj/item/clothing/accessory/charcoal_jacket
|
||||
|
||||
/datum/gear/accessory/suitjacket/navy
|
||||
display_name = "suit jacket, navy blue"
|
||||
path = /obj/item/clothing/accessory/navy_jacket
|
||||
|
||||
/datum/gear/accessory/suitjacket/burgundy
|
||||
display_name = "suit jacket, burgundy"
|
||||
path = /obj/item/clothing/accessory/burgundy_jacket
|
||||
|
||||
/datum/gear/accessory/suitjacket/checkered
|
||||
display_name = "suit jacket, checkered"
|
||||
path = /obj/item/clothing/accessory/checkered_jacket
|
||||
|
||||
/datum/gear/accessory/suitvest
|
||||
display_name = "suit vest"
|
||||
path = /obj/item/clothing/accessory/vest
|
||||
|
||||
/datum/gear/accessory/brown_vest
|
||||
display_name = "webbing, engineering"
|
||||
path = /obj/item/clothing/accessory/storage/brown_vest
|
||||
|
||||
@@ -84,6 +84,14 @@
|
||||
name = "blue tie with a clip"
|
||||
icon_state = "bluecliptie"
|
||||
|
||||
/obj/item/clothing/accessory/blue_long
|
||||
name = "blue long tie"
|
||||
icon_state = "bluelongtie"
|
||||
|
||||
/obj/item/clothing/accessory/red_clip
|
||||
name = "red tie with a clip"
|
||||
icon_state = "redcliptie"
|
||||
|
||||
/obj/item/clothing/accessory/red_long
|
||||
name = "red long tie"
|
||||
icon_state = "redlongtie"
|
||||
|
||||
@@ -337,12 +337,50 @@
|
||||
|
||||
return impact
|
||||
|
||||
/datum/seed/proc/generate_name()
|
||||
var/prefix = ""
|
||||
var/name = ""
|
||||
if(prob(50)) //start with a prefix.
|
||||
//These are various plant/mushroom genuses.
|
||||
//I realize these might not be entirely accurate, but it could facilitate RP.
|
||||
var/list/possible_prefixes
|
||||
if(seed_noun == "cuttings" || seed_noun == "seeds" || (seed_noun == "nodes" && prob(50)))
|
||||
possible_prefixes = list("amelanchier", "saskatoon",
|
||||
"magnolia", "angiosperma", "osmunda", "scabiosa", "spigelia", "psydrax", "chastetree",
|
||||
"strychnos", "treebine", "caper", "justica", "ragwortus", "everlasting", "combretum",
|
||||
"loganiaceae", "gelsemium", "logania", "sabadilla", "neuburgia", "canthium", "rytigynia",
|
||||
"chaste", "vitex", "cissus", "capparis", "senecio", "curry", "cycad", "liverwort", "charophyta",
|
||||
"glaucophyte", "pinidae", "vascular", "embryophyte", "lillopsida")
|
||||
else
|
||||
possible_prefixes = list("bisporus", "bitorquis", "campestris", "crocodilinus", "agaricus",
|
||||
"armillaria", "matsutake", "mellea", "ponderosa", "auricularia", "auricala",
|
||||
"polytricha", "boletus", "badius", "edulis", "mirabilis", "zelleri",
|
||||
"calvatia", "gigantea", "clitopilis", "prumulus", "entoloma", "abortivum",
|
||||
"suillus", "tuber", "aestivum", "volvacea", "delica", "russula", "rozites")
|
||||
|
||||
possible_prefixes |= list("butter", "shad", "sugar", "june", "wild", "rigus", "curry", "hard", "soft", "dark", "brick", "stone", "red", "brown",
|
||||
"black", "white", "paper", "slippery", "honey", "bitter")
|
||||
prefix = pick(possible_prefixes)
|
||||
|
||||
var/num = rand(2,5)
|
||||
var/list/possible_name = list("rhon", "cus", "quam", "met", "eget", "was", "reg", "zor", "fra", "rat", "sho", "ghen", "pa",
|
||||
"eir", "lip", "sum", "lor", "em", "tem", "por", "invi", "dunt", "ut", "la", "bore", "mag", "na",
|
||||
"al", "i", "qu", "yam", "er", "at", "sed", "di", "am", "vol", "up", "tua", "at", "ve", "ro", "eos",
|
||||
"et", "ac", "cus")
|
||||
for(var/i in 1 to num)
|
||||
var/syl = pick(possible_name)
|
||||
possible_name -= syl
|
||||
name += syl
|
||||
|
||||
if(prefix)
|
||||
name = "[prefix] [name]"
|
||||
seed_name = name
|
||||
display_name = name
|
||||
|
||||
//Creates a random seed. MAKE SURE THE LINE HAS DIVERGED BEFORE THIS IS CALLED.
|
||||
/datum/seed/proc/randomize()
|
||||
|
||||
roundstart = 0
|
||||
seed_name = "strange plant" // TODO: name generator.
|
||||
display_name = "strange plants" // TODO: name generator.
|
||||
mysterious = 1
|
||||
seed_noun = pick("spores","nodes","cuttings","seeds")
|
||||
|
||||
@@ -390,49 +428,18 @@
|
||||
var/additional_chems = rand(0,5)
|
||||
|
||||
if(additional_chems)
|
||||
var/list/possible_chems = list(
|
||||
"woodpulp",
|
||||
"bicaridine",
|
||||
"hyperzine",
|
||||
"cryoxadone",
|
||||
"blood",
|
||||
"water",
|
||||
"potassium",
|
||||
"plasticide",
|
||||
"mutationtoxin",
|
||||
"docilitytoxin",
|
||||
"inaprovaline",
|
||||
"space_drugs",
|
||||
"paroxetine",
|
||||
"mercury",
|
||||
"sugar",
|
||||
"radium",
|
||||
"ryetalyn",
|
||||
"alkysine",
|
||||
"thermite",
|
||||
"tramadol",
|
||||
"cryptobiolin",
|
||||
"dermaline",
|
||||
"dexalin",
|
||||
"phoron",
|
||||
"synaptizine",
|
||||
"impedrezene",
|
||||
"hyronalin",
|
||||
"peridaxon",
|
||||
"toxin",
|
||||
"rezadone",
|
||||
"ethylredoxrazine",
|
||||
"slimejelly",
|
||||
"cyanide",
|
||||
"mindbreaker",
|
||||
"stoxin"
|
||||
|
||||
var/list/banned_chems = list(
|
||||
"adminordrazine",
|
||||
"nutriment"
|
||||
)
|
||||
|
||||
for(var/x=1;x<=additional_chems;x++)
|
||||
if(!possible_chems.len)
|
||||
break
|
||||
var/new_chem = pick(possible_chems)
|
||||
possible_chems -= new_chem
|
||||
|
||||
var/new_chem = pick(chemical_reagents_list)
|
||||
if(new_chem in banned_chems)
|
||||
continue
|
||||
banned_chems += new_chem
|
||||
chems[new_chem] = list(rand(1,10),rand(10,20))
|
||||
|
||||
if(prob(90))
|
||||
@@ -487,6 +494,8 @@
|
||||
set_trait(TRAIT_MATURATION,rand(5,15))
|
||||
set_trait(TRAIT_PRODUCTION,get_trait(TRAIT_MATURATION)+rand(2,5))
|
||||
|
||||
generate_name()
|
||||
|
||||
//Returns a key corresponding to an entry in the global seed list.
|
||||
/datum/seed/proc/get_mutant_variant()
|
||||
if(!mutants || !mutants.len || get_trait(TRAIT_IMMUTABLE) > 0) return 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Update name.
|
||||
if(seed)
|
||||
if(mechanical)
|
||||
name = "[base_name] (#[seed.uid])"
|
||||
name = "[base_name] ([seed.seed_name])"
|
||||
else
|
||||
name = "[seed.seed_name]"
|
||||
else
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
recipes += new/datum/stack_recipe("[display_name] stool", /obj/item/weapon/stool, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] chair", /obj/structure/bed/chair, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] double bed", /obj/structure/bed/double, 4, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
|
||||
|
||||
if(hardness>50)
|
||||
recipes += new/datum/stack_recipe("[display_name] fork", /obj/item/weapon/material/kitchen/utensil/fork/plastic, 1, on_floor = 1, supplied_material = "[name]")
|
||||
|
||||
@@ -43,7 +43,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
|
||||
"Bland" = "ghost",
|
||||
"Robed-B" = "ghost1",
|
||||
"Robed-BAlt" = "ghost2",
|
||||
"Corgi" = "ghostian",
|
||||
"Corgi" = "corgi",
|
||||
"King" = "ghostking",
|
||||
"Shade" = "shade",
|
||||
"Hecate" = "ghost-narsie",
|
||||
@@ -65,7 +65,15 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
|
||||
"Pink Elemental" = "magicPink",
|
||||
"Orange Elemental" = "magicOrange",
|
||||
"Green Elemental" = "magicGreen",
|
||||
"Daemon" = "daemon"
|
||||
"Daemon" = "daemon",
|
||||
"Guard Spider" = "guard",
|
||||
"Hunter Spider" = "hunter",
|
||||
"Nurse Spider" = "nurse",
|
||||
"Carp" = "carp",
|
||||
"Space Bear" = "bear",
|
||||
"Rogue Drone" = "drone",
|
||||
"ED-209" = "ed209",
|
||||
"Beepsky" = "secbot"
|
||||
)
|
||||
|
||||
/mob/observer/dead/New(mob/body)
|
||||
@@ -817,6 +825,7 @@ mob/observer/dead/MayRespawn(var/feedback = 0)
|
||||
set name = "Choose Sprite"
|
||||
|
||||
icon = 'icons/mob/ghost.dmi'
|
||||
overlays.Cut()
|
||||
var/choice
|
||||
var/finalized = "No"
|
||||
while(finalized == "No" && src.client)
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
/obj/item/device/mmi/digital/posibrain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer.
|
||||
|
||||
if(src.brainmob && src.brainmob.key) return
|
||||
world.log << "Resetting Posibrain: [brainmob][brainmob ? ", [brainmob.key]" : ""]"
|
||||
|
||||
src.searching = 0
|
||||
icon_state = "posibrain"
|
||||
|
||||
@@ -36,12 +36,13 @@
|
||||
animate_tail_stop()
|
||||
|
||||
//Handle brain slugs.
|
||||
var/obj/item/organ/external/head = get_organ(BP_HEAD)
|
||||
var/obj/item/organ/external/Hd = get_organ(BP_HEAD)
|
||||
var/mob/living/simple_animal/borer/B
|
||||
|
||||
for(var/I in head.implants)
|
||||
if(istype(I,/mob/living/simple_animal/borer))
|
||||
B = I
|
||||
if(Hd)
|
||||
for(var/I in Hd.implants)
|
||||
if(istype(I,/mob/living/simple_animal/borer))
|
||||
B = I
|
||||
if(B)
|
||||
if(!B.ckey && ckey && B.controlling)
|
||||
B.ckey = ckey
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
if(synthetic) return synthetic //Your synthetic-ness is not going away
|
||||
var/obj/item/organ/external/T = organs_by_name[BP_TORSO]
|
||||
if(T && T.robotic >= ORGAN_ROBOT)
|
||||
src.verbs += /mob/living/carbon/human/proc/self_diagnostics
|
||||
var/datum/robolimb/R = all_robolimbs[T.model]
|
||||
synthetic = R
|
||||
return synthetic
|
||||
|
||||
@@ -145,4 +145,27 @@
|
||||
|
||||
qdel(src)
|
||||
|
||||
/mob/living/carbon/human/proc/self_diagnostics()
|
||||
set name = "Self-Diagnostics"
|
||||
set desc = "Run an internal self-diagnostic to check for damage."
|
||||
set category = "IC"
|
||||
|
||||
if(stat == DEAD) return
|
||||
|
||||
src << "<span class='notice'>Performing self-diagnostic, please wait...</span>"
|
||||
sleep(50)
|
||||
var/output = "<span class='notice'>Self-Diagnostic Results:\n</span>"
|
||||
|
||||
for(var/obj/item/organ/external/EO in organs)
|
||||
if(EO.brute_dam || EO.burn_dam)
|
||||
output += "[EO.name] - <span class='warning'>[EO.burn_dam + EO.brute_dam > ROBOLIMB_REPAIR_CAP ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[EO.name] - <span style='color:green;'>OK</span>\n"
|
||||
|
||||
for(var/obj/item/organ/IO in internal_organs)
|
||||
if(IO.damage)
|
||||
output += "[IO.name] - <span class='warning'>[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[IO.name] - <span style='color:green;'>OK</span>\n"
|
||||
|
||||
src << output
|
||||
|
||||
@@ -70,6 +70,8 @@ var/list/organ_cache = list()
|
||||
blood_DNA[dna.unique_enzymes] = dna.b_type
|
||||
if(internal)
|
||||
holder.internal_organs |= src
|
||||
else
|
||||
species = all_species["Human"]
|
||||
|
||||
/obj/item/organ/proc/set_dna(var/datum/dna/new_dna)
|
||||
if(new_dna)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
var/list/wounds = list() // wound datum list.
|
||||
var/number_wounds = 0 // number of wounds, which is NOT wounds.len!
|
||||
var/obj/item/organ/external/parent // Master-limb.
|
||||
var/list/children // Sub-limbs.
|
||||
var/list/children = list() // Sub-limbs.
|
||||
var/list/internal_organs = list() // Internal organs of this body part
|
||||
var/sabotaged = 0 // If a prosthetic limb is emagged, it will detonate when it fails.
|
||||
var/list/implants = list() // Currently implanted objects.
|
||||
@@ -1275,7 +1275,6 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
// Give them a new cell.
|
||||
owner.internal_organs_by_name["cell"] = new /obj/item/organ/internal/cell(owner,1)
|
||||
|
||||
|
||||
/obj/item/organ/external/groin
|
||||
name = "lower body"
|
||||
organ_tag = BP_GROIN
|
||||
|
||||
@@ -47,17 +47,20 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Bishop"
|
||||
desc = "This limb has a white polymer casing with blue holo-displays."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/bishop_alt1
|
||||
company = "Bishop - Glyph"
|
||||
desc = "This limb has a white polymer casing with blue holo-displays."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/bishop_monitor
|
||||
company = "Bishop Monitor"
|
||||
desc = "Bishop Cybernetics' unique spin on a popular prosthetic head model. The themes conflict in an intriguing way."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_styles = standard_monitor_styles
|
||||
|
||||
@@ -65,11 +68,13 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Hesphiastos"
|
||||
desc = "This limb has a militaristic black and green casing with gold stripes."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/hesphiastos_alt1
|
||||
company = "Hesphiastos - Frontier"
|
||||
desc = "A rugged prosthetic head featuring the standard Hesphiastos theme, a visor and an external display."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_styles = "blank=hesphiastos_alt_off;\
|
||||
pink=hesphiastos_alt_pink;\
|
||||
@@ -83,6 +88,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Hesphiastos Monitor"
|
||||
desc = "Hesphiastos' unique spin on a popular prosthetic head model. It looks rugged and sturdy."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_styles = standard_monitor_styles
|
||||
|
||||
@@ -90,37 +96,42 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Morpheus"
|
||||
desc = "This limb is simple and functional; no effort has been made to make it look human."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
monitor_styles = standard_monitor_styles
|
||||
|
||||
/datum/robolimb/morpheus_alt1
|
||||
company = "Morpheus - Zenith"
|
||||
desc = "This limb is simple and functional; no effort has been made to make it look human."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
unavailable_at_chargen = null
|
||||
|
||||
/datum/robolimb/veymed
|
||||
lifelike = 1
|
||||
blood_color = "#CCCCCC"
|
||||
company = "Vey-Med"
|
||||
desc = "This high quality limb is nearly indistinguishable from an organic one."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/veymed/veymed_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
lifelike = 1
|
||||
blood_color = "#CCCCCC"
|
||||
|
||||
/datum/robolimb/wardtakahashi
|
||||
company = "Ward-Takahashi"
|
||||
desc = "This limb features sleek black and white polymers."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/wardtakahashi_alt1
|
||||
company = "Ward-Takahashi - Shroud"
|
||||
desc = "This limb features sleek black and white polymers. This one looks more like a helmet of some sort."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/wardtakahashi_monitor
|
||||
company = "Ward-Takahashi Monitor"
|
||||
desc = "Ward-Takahashi's unique spin on a popular prosthetic head model. It looks sleek and modern."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_styles = standard_monitor_styles
|
||||
|
||||
@@ -128,17 +139,20 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Xion"
|
||||
desc = "This limb has a minimalist black and red casing."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/xion/xion_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/xion_alt1
|
||||
company = "Xion Mfg. - Breach"
|
||||
desc = "This limb has a minimalist black and red casing. Looks a bit menacing."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/xion_monitor
|
||||
company = "Xion Mfg. Monitor"
|
||||
desc = "Xion Mfg.'s unique spin on a popular prosthetic head model. It looks and minimalist and utilitarian."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
monitor_styles = standard_monitor_styles
|
||||
|
||||
@@ -146,3 +160,38 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
company = "Zeng-Hu"
|
||||
desc = "This limb has a rubbery fleshtone covering with visible seams."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/obj/item/weapon/disk/limb
|
||||
name = "Limb Blueprints"
|
||||
desc = "A disk containing the blueprints for prosthetics."
|
||||
icon = 'icons/obj/cloning.dmi'
|
||||
icon_state = "datadisk2"
|
||||
var/company = ""
|
||||
|
||||
//I'm normally opposed to relative pathing, but pls.
|
||||
bishop
|
||||
company = "Bishop"
|
||||
|
||||
hesphiastos
|
||||
company = "Hesphiastos"
|
||||
|
||||
morpheus
|
||||
company = "Morpheus"
|
||||
|
||||
veymed
|
||||
company = "Vey-Med"
|
||||
|
||||
wardtakahashi
|
||||
company = "Ward-Takahashi"
|
||||
|
||||
xion
|
||||
company = "Xion"
|
||||
|
||||
zenghu
|
||||
company = "Zeng-Hu"
|
||||
|
||||
/obj/item/weapon/disk/limb/New(var/newloc)
|
||||
..()
|
||||
if(company)
|
||||
name = "[company] [initial(name)]"
|
||||
|
||||
@@ -206,60 +206,6 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/weapon/storage/part_replacer
|
||||
sort_string = "CBAAA"
|
||||
|
||||
/datum/design/item/powercell
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
|
||||
/datum/design/item/powercell/AssembleDesignName()
|
||||
name = "Power cell model ([item_name])"
|
||||
|
||||
/datum/design/item/powercell/AssembleDesignDesc()
|
||||
if(build_path)
|
||||
var/obj/item/weapon/cell/C = build_path
|
||||
desc = "Allows the construction of power cells that can hold [initial(C.maxcharge)] units of energy."
|
||||
|
||||
/datum/design/item/powercell/Fabricate()
|
||||
var/obj/item/weapon/cell/C = ..()
|
||||
C.charge = 0 //shouldn't produce power out of thin air.
|
||||
return C
|
||||
|
||||
/datum/design/item/powercell/basic
|
||||
name = "basic"
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
id = "basic_cell"
|
||||
req_tech = list(TECH_POWER = 1)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
|
||||
build_path = /obj/item/weapon/cell
|
||||
category = "Misc"
|
||||
sort_string = "DAAAA"
|
||||
|
||||
/datum/design/item/powercell/high
|
||||
name = "high-capacity"
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
id = "high_cell"
|
||||
req_tech = list(TECH_POWER = 2)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 60)
|
||||
build_path = /obj/item/weapon/cell/high
|
||||
category = "Misc"
|
||||
sort_string = "DAAAB"
|
||||
|
||||
/datum/design/item/powercell/super
|
||||
name = "super-capacity"
|
||||
id = "super_cell"
|
||||
req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70)
|
||||
build_path = /obj/item/weapon/cell/super
|
||||
category = "Misc"
|
||||
sort_string = "DAAAC"
|
||||
|
||||
/datum/design/item/powercell/hyper
|
||||
name = "hyper-capacity"
|
||||
id = "hyper_cell"
|
||||
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 400, "gold" = 150, "silver" = 150, "glass" = 70)
|
||||
build_path = /obj/item/weapon/cell/hyper
|
||||
category = "Misc"
|
||||
sort_string = "DAAAD"
|
||||
|
||||
/datum/design/item/hud
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
@@ -651,7 +597,7 @@ other types of metals and chemistry for reagents).
|
||||
name = "Positronic brain"
|
||||
id = "posibrain"
|
||||
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 6, TECH_BLUESPACE = 2, TECH_DATA = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
build_type = PROTOLATHE | PROSFAB
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 500, "phoron" = 500, "diamond" = 100)
|
||||
build_path = /obj/item/device/mmi/digital/posibrain
|
||||
category = "Misc"
|
||||
@@ -661,7 +607,7 @@ other types of metals and chemistry for reagents).
|
||||
name = "Man-machine interface"
|
||||
id = "mmi"
|
||||
req_tech = list(TECH_DATA = 2, TECH_BIO = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
build_type = PROTOLATHE | PROSFAB
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500)
|
||||
build_path = /obj/item/device/mmi
|
||||
category = "Misc"
|
||||
@@ -671,7 +617,7 @@ other types of metals and chemistry for reagents).
|
||||
name = "Radio-enabled man-machine interface"
|
||||
id = "mmi_radio"
|
||||
req_tech = list(TECH_DATA = 2, TECH_BIO = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
build_type = PROTOLATHE | PROSFAB
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 1200, "glass" = 500)
|
||||
build_path = /obj/item/device/mmi/radio_enabled
|
||||
category = "Misc"
|
||||
@@ -946,6 +892,13 @@ CIRCUITS BELOW
|
||||
build_path = /obj/item/weapon/circuitboard/mechfab
|
||||
sort_string = "HABAE"
|
||||
|
||||
/datum/design/circuit/prosfab
|
||||
name = "prosthetics fabricator"
|
||||
id = "prosfab"
|
||||
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
build_path = /obj/item/weapon/circuitboard/prosthetics
|
||||
sort_string = "HABAF"
|
||||
|
||||
/datum/design/circuit/mech_recharger
|
||||
name = "mech recharger"
|
||||
id = "mech_recharger"
|
||||
|
||||
@@ -1,101 +1,8 @@
|
||||
/datum/design/item/mechfab
|
||||
build_type = MECHFAB
|
||||
category = "Misc"
|
||||
category = "Other"
|
||||
req_tech = list(TECH_MATERIAL = 1)
|
||||
|
||||
/datum/design/item/mechfab/robot
|
||||
category = "Robot"
|
||||
|
||||
//if the fabricator is a mech fab pass the manufacturer info over to the robot part constructor
|
||||
/datum/design/item/mechfab/robot/Fabricate(var/newloc, var/fabricator)
|
||||
if(istype(fabricator, /obj/machinery/mecha_part_fabricator))
|
||||
var/obj/machinery/mecha_part_fabricator/mechfab = fabricator
|
||||
return new build_path(newloc, mechfab.manufacturer)
|
||||
return ..()
|
||||
|
||||
/datum/design/item/mechfab/robot/exoskeleton
|
||||
name = "Robot exoskeleton"
|
||||
id = "robot_exoskeleton"
|
||||
build_path = /obj/item/robot_parts/robot_suit
|
||||
time = 50
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 50000)
|
||||
|
||||
/datum/design/item/mechfab/robot/torso
|
||||
name = "Robot torso"
|
||||
id = "robot_torso"
|
||||
build_path = /obj/item/robot_parts/chest
|
||||
time = 35
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 40000)
|
||||
|
||||
/datum/design/item/mechfab/robot/head
|
||||
name = "Robot head"
|
||||
id = "robot_head"
|
||||
build_path = /obj/item/robot_parts/head
|
||||
time = 35
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 25000)
|
||||
|
||||
/datum/design/item/mechfab/robot/l_arm
|
||||
name = "Robot left arm"
|
||||
id = "robot_l_arm"
|
||||
build_path = /obj/item/robot_parts/l_arm
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/mechfab/robot/r_arm
|
||||
name = "Robot right arm"
|
||||
id = "robot_r_arm"
|
||||
build_path = /obj/item/robot_parts/r_arm
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/mechfab/robot/l_leg
|
||||
name = "Robot left leg"
|
||||
id = "robot_l_leg"
|
||||
build_path = /obj/item/robot_parts/l_leg
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
/datum/design/item/mechfab/robot/r_leg
|
||||
name = "Robot right leg"
|
||||
id = "robot_r_leg"
|
||||
build_path = /obj/item/robot_parts/r_leg
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
/datum/design/item/mechfab/robot/component
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 5000)
|
||||
|
||||
/datum/design/item/mechfab/robot/component/binary_communication_device
|
||||
name = "Binary communication device"
|
||||
id = "binary_communication_device"
|
||||
build_path = /obj/item/robot_parts/robot_component/binary_communication_device
|
||||
|
||||
/datum/design/item/mechfab/robot/component/radio
|
||||
name = "Radio"
|
||||
id = "radio"
|
||||
build_path = /obj/item/robot_parts/robot_component/radio
|
||||
|
||||
/datum/design/item/mechfab/robot/component/actuator
|
||||
name = "Actuator"
|
||||
id = "actuator"
|
||||
build_path = /obj/item/robot_parts/robot_component/actuator
|
||||
|
||||
/datum/design/item/mechfab/robot/component/diagnosis_unit
|
||||
name = "Diagnosis unit"
|
||||
id = "diagnosis_unit"
|
||||
build_path = /obj/item/robot_parts/robot_component/diagnosis_unit
|
||||
|
||||
/datum/design/item/mechfab/robot/component/camera
|
||||
name = "Camera"
|
||||
id = "camera"
|
||||
build_path = /obj/item/robot_parts/robot_component/camera
|
||||
|
||||
/datum/design/item/mechfab/robot/component/armour
|
||||
name = "Armour plating"
|
||||
id = "armour"
|
||||
build_path = /obj/item/robot_parts/robot_component/armour
|
||||
|
||||
/datum/design/item/mechfab/ripley
|
||||
category = "Ripley"
|
||||
|
||||
@@ -316,60 +223,6 @@
|
||||
time = 60
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 50000, "uranium" = 10000)
|
||||
|
||||
/datum/design/item/robot_upgrade
|
||||
build_type = MECHFAB
|
||||
time = 12
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
category = "Cyborg Upgrade Modules"
|
||||
|
||||
/datum/design/item/robot_upgrade/rename
|
||||
name = "Rename module"
|
||||
desc = "Used to rename a cyborg."
|
||||
id = "borg_rename_module"
|
||||
build_path = /obj/item/borg/upgrade/rename
|
||||
|
||||
/datum/design/item/robot_upgrade/reset
|
||||
name = "Reset module"
|
||||
desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot."
|
||||
id = "borg_reset_module"
|
||||
build_path = /obj/item/borg/upgrade/reset
|
||||
|
||||
/datum/design/item/robot_upgrade/restart
|
||||
name = "Emergency restart module"
|
||||
desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online."
|
||||
id = "borg_restart_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 5000)
|
||||
build_path = /obj/item/borg/upgrade/restart
|
||||
|
||||
/datum/design/item/robot_upgrade/vtec
|
||||
name = "VTEC module"
|
||||
desc = "Used to kick in a robot's VTEC systems, increasing their speed."
|
||||
id = "borg_vtec_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 5000)
|
||||
build_path = /obj/item/borg/upgrade/vtec
|
||||
|
||||
/datum/design/item/robot_upgrade/tasercooler
|
||||
name = "Rapid taser cooling module"
|
||||
desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
|
||||
id = "borg_taser_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 2000, "diamond" = 500)
|
||||
build_path = /obj/item/borg/upgrade/tasercooler
|
||||
|
||||
/datum/design/item/robot_upgrade/jetpack
|
||||
name = "Jetpack module"
|
||||
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
|
||||
id = "borg_jetpack_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "phoron" = 15000, "uranium" = 20000)
|
||||
build_path = /obj/item/borg/upgrade/jetpack
|
||||
|
||||
/datum/design/item/robot_upgrade/syndicate
|
||||
name = "Illegal upgrade"
|
||||
desc = "Allows for the construction of lethal upgrades for cyborgs."
|
||||
id = "borg_syndicate_module"
|
||||
req_tech = list(TECH_COMBAT = 4, TECH_ILLEGAL = 3)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 15000, "diamond" = 10000)
|
||||
build_path = /obj/item/borg/upgrade/syndicate
|
||||
|
||||
/datum/design/item/mecha_tracking
|
||||
name = "Exosuit tracking beacon"
|
||||
build_type = MECHFAB
|
||||
@@ -407,7 +260,7 @@
|
||||
name = "Cable layer"
|
||||
id = "mech_cable_layer"
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/tool/cable_layer
|
||||
|
||||
|
||||
/datum/design/item/mecha/flaregun
|
||||
name = "Flare launcher"
|
||||
id = "mecha_flare_gun"
|
||||
|
||||
@@ -0,0 +1,297 @@
|
||||
/datum/design/item/prosfab
|
||||
build_type = PROSFAB
|
||||
category = "Misc"
|
||||
req_tech = list(TECH_MATERIAL = 1)
|
||||
|
||||
/datum/design/item/prosfab/pros
|
||||
category = "Prosthetics"
|
||||
|
||||
// Make new external organs and make 'em robotish
|
||||
/datum/design/item/prosfab/pros/Fabricate(var/newloc, var/fabricator)
|
||||
if(istype(fabricator, /obj/machinery/pros_fabricator))
|
||||
var/obj/machinery/pros_fabricator/prosfab = fabricator
|
||||
var/obj/item/organ/O = new build_path(newloc)
|
||||
O.species = all_species["Human"]
|
||||
O.robotize(prosfab.manufacturer)
|
||||
O.dna = new/datum/dna() //Uuughhhh... why do I have to do this?
|
||||
O.dna.ResetUI()
|
||||
O.dna.ResetSE()
|
||||
spawn(10) //Limbs love to flop around. Who am I to deny them?
|
||||
O.dir = 2
|
||||
return O
|
||||
return ..()
|
||||
|
||||
// Deep Magic for the torso since it needs to be a new mob
|
||||
/datum/design/item/prosfab/pros/torso/Fabricate(var/newloc, var/fabricator)
|
||||
if(istype(fabricator, /obj/machinery/pros_fabricator))
|
||||
var/obj/machinery/pros_fabricator/prosfab = fabricator
|
||||
var/mob/living/carbon/human/H = new(newloc,"Human")
|
||||
H.stat = DEAD
|
||||
H.gender = gender
|
||||
for(var/obj/item/organ/external/EO in H.organs)
|
||||
if(EO.organ_tag == BP_TORSO || EO.organ_tag == BP_GROIN)
|
||||
continue //Roboticizing a torso does all the children and wastes time, do it later
|
||||
else
|
||||
EO.remove_rejuv()
|
||||
|
||||
for(var/obj/item/organ/external/O in H.organs)
|
||||
O.species = all_species["Human"]
|
||||
O.robotize(prosfab.manufacturer)
|
||||
O.dna = new/datum/dna()
|
||||
O.dna.ResetUI()
|
||||
O.dna.ResetSE()
|
||||
|
||||
H.real_name = "Synthmorph #[rand(100,999)]"
|
||||
H.name = H.real_name
|
||||
H.dir = 2
|
||||
return H
|
||||
|
||||
//////////////////// Prosthetics ////////////////////
|
||||
/datum/design/item/prosfab/pros/torso
|
||||
time = 35
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 10000, "plasteel" = 2000)
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_DATA = 3)
|
||||
var/gender = MALE
|
||||
|
||||
/datum/design/item/prosfab/pros/torso/male
|
||||
name = "FBP torso (M)"
|
||||
id = "pros_torso_m"
|
||||
build_path = /obj/item/organ/external/chest
|
||||
gender = MALE
|
||||
|
||||
/obj/item/organ/external/chest/f //To satisfy Travis. :|
|
||||
|
||||
/datum/design/item/prosfab/pros/torso/female
|
||||
name = "FBP torso (F)"
|
||||
id = "pros_torso_f"
|
||||
build_path = /obj/item/organ/external/chest/f
|
||||
gender = FEMALE
|
||||
|
||||
/datum/design/item/prosfab/pros/head
|
||||
name = "Prosthetic head"
|
||||
id = "pros_head"
|
||||
build_path = /obj/item/organ/external/head
|
||||
time = 30
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 25000, "glass" = 5000, "plasteel" = 1000)
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_DATA = 3)
|
||||
|
||||
/datum/design/item/prosfab/pros/l_arm
|
||||
name = "Prosthetic left arm"
|
||||
id = "pros_l_arm"
|
||||
build_path = /obj/item/organ/external/arm
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/prosfab/pros/l_hand
|
||||
name = "Prosthetic left hand"
|
||||
id = "pros_l_hand"
|
||||
build_path = /obj/item/organ/external/hand
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/pros/l_leg
|
||||
name = "Prosthetic left leg"
|
||||
id = "pros_l_leg"
|
||||
build_path = /obj/item/organ/external/leg
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
/datum/design/item/prosfab/pros/l_foot
|
||||
name = "Prosthetic left foot"
|
||||
id = "pros_l_foot"
|
||||
build_path = /obj/item/organ/external/foot
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/pros/r_arm
|
||||
name = "Prosthetic right arm"
|
||||
id = "pros_r_arm"
|
||||
build_path = /obj/item/organ/external/arm/right
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/prosfab/pros/r_hand
|
||||
name = "Prosthetic right hand"
|
||||
id = "pros_r_hand"
|
||||
build_path = /obj/item/organ/external/hand/right
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/pros/r_leg
|
||||
name = "Prosthetic right leg"
|
||||
id = "pros_r_leg"
|
||||
build_path = /obj/item/organ/external/leg/right
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
/datum/design/item/prosfab/pros/r_foot
|
||||
name = "Prosthetic right foot"
|
||||
id = "pros_r_foot"
|
||||
build_path = /obj/item/organ/external/foot/right
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/pros/cell
|
||||
name = "Prosthetic powercell"
|
||||
id = "pros_cell"
|
||||
build_path = /obj/item/organ/internal/cell
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 4000, "plasteel" = 2000)
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
|
||||
|
||||
/datum/design/item/prosfab/pros/eyes
|
||||
name = "Prosthetic eyes"
|
||||
id = "pros_eyes"
|
||||
build_path = /obj/item/organ/internal/eyes/robot
|
||||
time = 15
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 7500, "glass" = 7500)
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
|
||||
|
||||
//////////////////// Cyborg Parts ////////////////////
|
||||
/datum/design/item/prosfab/cyborg
|
||||
category = "Cyborg Parts"
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 5000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/exoskeleton
|
||||
name = "Robot exoskeleton"
|
||||
id = "robot_exoskeleton"
|
||||
build_path = /obj/item/robot_parts/robot_suit
|
||||
time = 50
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 50000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/torso
|
||||
name = "Robot torso"
|
||||
id = "robot_torso"
|
||||
build_path = /obj/item/robot_parts/chest
|
||||
time = 35
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 40000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/head
|
||||
name = "Robot head"
|
||||
id = "robot_head"
|
||||
build_path = /obj/item/robot_parts/head
|
||||
time = 35
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 25000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/l_arm
|
||||
name = "Robot left arm"
|
||||
id = "robot_l_arm"
|
||||
build_path = /obj/item/robot_parts/l_arm
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/r_arm
|
||||
name = "Robot right arm"
|
||||
id = "robot_r_arm"
|
||||
build_path = /obj/item/robot_parts/r_arm
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 18000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/l_leg
|
||||
name = "Robot left leg"
|
||||
id = "robot_l_leg"
|
||||
build_path = /obj/item/robot_parts/l_leg
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/r_leg
|
||||
name = "Robot right leg"
|
||||
id = "robot_r_leg"
|
||||
build_path = /obj/item/robot_parts/r_leg
|
||||
time = 20
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 15000)
|
||||
|
||||
|
||||
//////////////////// Cyborg Internals ////////////////////
|
||||
/datum/design/item/prosfab/cyborg/component
|
||||
category = "Cyborg Internals"
|
||||
build_type = PROSFAB
|
||||
time = 12
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/binary_communication_device
|
||||
name = "Binary communication device"
|
||||
id = "binary_communication_device"
|
||||
build_path = /obj/item/robot_parts/robot_component/binary_communication_device
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/radio
|
||||
name = "Radio"
|
||||
id = "radio"
|
||||
build_path = /obj/item/robot_parts/robot_component/radio
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/actuator
|
||||
name = "Actuator"
|
||||
id = "actuator"
|
||||
build_path = /obj/item/robot_parts/robot_component/actuator
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/diagnosis_unit
|
||||
name = "Diagnosis unit"
|
||||
id = "diagnosis_unit"
|
||||
build_path = /obj/item/robot_parts/robot_component/diagnosis_unit
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/camera
|
||||
name = "Camera"
|
||||
id = "camera"
|
||||
build_path = /obj/item/robot_parts/robot_component/camera
|
||||
|
||||
/datum/design/item/prosfab/cyborg/component/armour
|
||||
name = "Armour plating"
|
||||
id = "armour"
|
||||
build_path = /obj/item/robot_parts/robot_component/armour
|
||||
|
||||
|
||||
//////////////////// Cyborg Modules ////////////////////
|
||||
/datum/design/item/prosfab/robot_upgrade
|
||||
category = "Cyborg Modules"
|
||||
build_type = PROSFAB
|
||||
time = 12
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/rename
|
||||
name = "Rename module"
|
||||
desc = "Used to rename a cyborg."
|
||||
id = "borg_rename_module"
|
||||
build_path = /obj/item/borg/upgrade/rename
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/reset
|
||||
name = "Reset module"
|
||||
desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot."
|
||||
id = "borg_reset_module"
|
||||
build_path = /obj/item/borg/upgrade/reset
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/restart
|
||||
name = "Emergency restart module"
|
||||
desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online."
|
||||
id = "borg_restart_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 5000)
|
||||
build_path = /obj/item/borg/upgrade/restart
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/vtec
|
||||
name = "VTEC module"
|
||||
desc = "Used to kick in a robot's VTEC systems, increasing their speed."
|
||||
id = "borg_vtec_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 5000)
|
||||
build_path = /obj/item/borg/upgrade/vtec
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/tasercooler
|
||||
name = "Rapid taser cooling module"
|
||||
desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
|
||||
id = "borg_taser_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 80000, "glass" = 6000, "gold" = 2000, "diamond" = 500)
|
||||
build_path = /obj/item/borg/upgrade/tasercooler
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/jetpack
|
||||
name = "Jetpack module"
|
||||
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
|
||||
id = "borg_jetpack_module"
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "phoron" = 15000, "uranium" = 20000)
|
||||
build_path = /obj/item/borg/upgrade/jetpack
|
||||
|
||||
/datum/design/item/prosfab/robot_upgrade/syndicate
|
||||
name = "Illegal upgrade"
|
||||
desc = "Allows for the construction of lethal upgrades for cyborgs."
|
||||
id = "borg_syndicate_module"
|
||||
req_tech = list(TECH_COMBAT = 4, TECH_ILLEGAL = 3)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 15000, "diamond" = 10000)
|
||||
build_path = /obj/item/borg/upgrade/syndicate
|
||||
@@ -424,6 +424,20 @@
|
||||
if(M.brainmob && M.brainmob.mind)
|
||||
M.brainmob.mind.transfer_to(target)
|
||||
|
||||
spawn(0) //Name yourself on your own damn time
|
||||
var/new_name = ""
|
||||
while(!new_name)
|
||||
if(!target) return
|
||||
var/try_name = input(target,"Pick a name for your new form!", "New Name", target.name)
|
||||
var/clean_name = sanitizeName(try_name)
|
||||
if(clean_name)
|
||||
var/okay = alert(target,"New name will be '[clean_name]', ok?", "Cancel", "Ok")
|
||||
if(okay == "Ok")
|
||||
new_name = clean_name
|
||||
|
||||
target.name = new_name
|
||||
target.real_name = target.name
|
||||
|
||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
user.visible_message("<span class='warning'>[user]'s hand slips.</span>", \
|
||||
"<span class='warning'>Your hand slips.</span>")
|
||||
|
||||
@@ -12,12 +12,12 @@ Slime definitions, Life and New live here.
|
||||
icon_living = "slime adult"
|
||||
icon_dead = "slime adult dead"
|
||||
internal_vol = 200
|
||||
mut_max = 200
|
||||
mut_max = 50
|
||||
mutable = COLORMUT
|
||||
var/is_child = 1
|
||||
var/cores = 3
|
||||
var/growthcounter = 0
|
||||
var/growthpoint = 150 //At what point they grow up.
|
||||
var/growthpoint = 50 //At what point they grow up.
|
||||
var/shiny = 0
|
||||
move_to_delay = 17 //Slimes shouldn't be able to go faster than humans.
|
||||
default_chems = list("slimejelly" = 5)
|
||||
|
||||
@@ -41,11 +41,19 @@
|
||||
var/datum/xeno/traits/trait_info
|
||||
var/datum/reagents/prod_reagents
|
||||
var/targetName
|
||||
var/growth_level
|
||||
var/growth_max
|
||||
if(istype(target,/obj/structure/table))
|
||||
return ..()
|
||||
else if(istype(target,/mob/living/simple_animal/xeno))
|
||||
|
||||
var/mob/living/simple_animal/xeno/X = target
|
||||
if(istype(X, /mob/living/simple_animal/xeno/slime))
|
||||
var/mob/living/simple_animal/xeno/slime/S = X
|
||||
if(S.is_child)
|
||||
growth_level = S.growthcounter
|
||||
growth_max = S.growthpoint
|
||||
|
||||
targetName = X.name
|
||||
trait_info = X.traitdat
|
||||
|
||||
@@ -101,6 +109,16 @@
|
||||
dat += "It bears characteristics that indicate susceptibility to damage.<br>"
|
||||
else
|
||||
dat += "It bears no characters indicating resilience to damage.<br>"
|
||||
|
||||
if(growth_max)
|
||||
if(growth_level < 25)
|
||||
dat += "It appears to be far to growing up.<br>"
|
||||
else if(growth_level > 40)
|
||||
dat += "It appears to be close to growing up.<br>"
|
||||
else
|
||||
dat += "It appears to be growing.<br>"
|
||||
else
|
||||
dat += "It appears to be fully grown.<br>"
|
||||
|
||||
if(trait_info.get_trait(TRAIT_XENO_COLDRES))
|
||||
if(trait_info.get_trait(TRAIT_XENO_COLDRES) < 10)
|
||||
|
||||
Reference in New Issue
Block a user