Merge pull request #2 from tgstation/master

updates master
This commit is contained in:
Supermichael777
2015-09-12 12:14:56 -04:00
29 changed files with 1555 additions and 1226 deletions
+22 -12
View File
@@ -48,10 +48,10 @@
if(amt > 0 && has_space(amt))
var/total_amount_saved = total_amount
if(material_type)
for(var/datum/material/M in materials)
if(M.material_type == material_type)
M.amount += amt
total_amount += amt
var/datum/material/M = materials[material_type]
if(M)
M.amount += amt
total_amount += amt
else
for(var/datum/material/M in materials)
M.amount += amt
@@ -93,21 +93,21 @@
//For consuming material
//mats is a list of types of material to use and the corresponding amounts, example: list(MAT_METAL=100, MAT_GLASS=200)
/datum/material_container/proc/use_amount(list/mats)
/datum/material_container/proc/use_amount(list/mats, multiplier=1)
if(!mats || !mats.len)
return 0
var/datum/material/M
for(var/MAT in materials)
M = materials[MAT]
if(M.amount < mats[MAT])
if(M.amount < (mats[MAT] * multiplier))
return 0
var/total_amount_save = total_amount
for(var/MAT in materials)
M = materials[MAT]
M.amount -= mats[MAT]
total_amount -= mats[MAT]
M.amount -= mats[MAT] * multiplier
total_amount -= mats[MAT] * multiplier
return total_amount_save - total_amount
@@ -124,7 +124,9 @@
//For spawning mineral sheets; internal use only
/datum/material_container/proc/retrieve(sheet_amt, datum/material/M)
if(sheet_amt > 0 && M.amount >= (sheet_amt * MINERAL_MATERIAL_AMOUNT))
if(sheet_amt > 0)
if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT))
sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT)
var/count = 0
while(sheet_amt > MAX_STACK_SIZE)
@@ -159,6 +161,17 @@
/datum/material_container/proc/has_space(amt = 0)
return (total_amount + amt) <= max_amount
/datum/material_container/proc/has_materials(list/mats, multiplier=1)
if(!mats || !mats.len)
return 0
var/datum/material/M
for(var/MAT in mats)
M = materials[MAT]
if(M.amount < (mats[MAT] * multiplier))
return 0
return 1
/datum/material_container/proc/amount2sheet(amt)
if(amt >= MINERAL_MATERIAL_AMOUNT)
return round(amt / MINERAL_MATERIAL_AMOUNT)
@@ -173,9 +186,6 @@
var/datum/material/M = materials[material_type]
return M ? M.amount : 0
/datum/material_container/proc/can_insert(obj/item/I)
return get_item_material_amount(I)
//returns the amount of material relevant to this container;
//if this container does not support glass, any glass in 'I' will not be taken into account
/datum/material_container/proc/get_item_material_amount(obj/item/I)
+75
View File
@@ -0,0 +1,75 @@
/datum/outfit
var/name = "Naked"
var/uniform = null
var/suit = null
var/back = null
var/belt = null
var/gloves = null
var/shoes = null
var/head = null
var/mask = null
var/ears = null
var/glasses = null
var/id = null
var/l_pocket = null
var/r_pocket = null
var/suit_store = null
var/r_hand = null
var/l_hand = null
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H)
//to be overriden for customization depending on client prefs,species etc
return
/datum/outfit/proc/post_equip(mob/living/carbon/human/H)
//to be overriden for toggling internals, id binding, access etc
return
/datum/outfit/proc/equip(mob/living/carbon/human/H)
pre_equip(H)
//Start with uniform,suit,backpack for additional slots
if(uniform)
H.equip_to_slot_or_del(new uniform(H),slot_w_uniform)
if(suit)
H.equip_to_slot_or_del(new suit(H),slot_wear_suit)
if(back)
H.equip_to_slot_or_del(new back(H),slot_back)
if(belt)
H.equip_to_slot_or_del(new belt(H),slot_belt)
if(gloves)
H.equip_to_slot_or_del(new gloves(H),slot_gloves)
if(shoes)
H.equip_to_slot_or_del(new shoes(H),slot_shoes)
if(head)
H.equip_to_slot_or_del(new head(H),slot_head)
if(mask)
H.equip_to_slot_or_del(new mask(H),slot_wear_mask)
if(ears)
H.equip_to_slot_or_del(new ears(H),slot_ears)
if(glasses)
H.equip_to_slot_or_del(new glasses(H),slot_glasses)
if(id)
H.equip_to_slot_or_del(new id(H),slot_wear_id)
if(l_pocket)
H.equip_to_slot_or_del(new l_pocket(H),slot_l_store)
if(r_pocket)
H.equip_to_slot_or_del(new r_pocket(H),slot_r_store)
if(suit_store)
H.equip_to_slot_or_del(new suit_store(H),slot_s_store)
if(l_hand)
H.put_in_l_hand(new l_hand(H))
if(r_hand)
H.put_in_r_hand(new r_hand(H))
for(var/path in backpack_contents)
var/number = backpack_contents[path]
for(var/i=0,i<number,i++)
H.equip_to_slot_or_del(new path(H),slot_in_backpack)
post_equip(H)
return 1
+13 -8
View File
@@ -12,13 +12,7 @@ Assistant
selection_color = "#dddddd"
access = list() //See /datum/job/assistant/get_access()
minimal_access = list() //See /datum/job/assistant/get_access()
/datum/job/assistant/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
if (config.grey_assistants)
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/random(H), slot_w_uniform)
outfit = /datum/outfit/job/assistant
/datum/job/assistant/get_access()
if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set
@@ -32,4 +26,15 @@ Assistant
total_positions = config.assistant_cap
spawn_positions = config.assistant_cap
return 1
return 0
return 0
/datum/outfit/job/assistant
name = "Assistant"
/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H)
..()
if (config.grey_assistants)
uniform = /obj/item/clothing/under/color/grey
else
uniform = /obj/item/clothing/under/color/random
+40 -31
View File
@@ -14,29 +14,37 @@ Captain
req_admin_notify = 1
minimal_player_age = 14
default_id = /obj/item/weapon/card/id/gold
default_pda = /obj/item/device/pda/captain
default_headset = /obj/item/device/radio/headset/heads/captain
default_backpack = /obj/item/weapon/storage/backpack/captain
default_satchel = /obj/item/weapon/storage/backpack/satchel_cap
outfit = /datum/outfit/job/captain
access = list() //See get_access()
minimal_access = list() //See get_access()
/datum/job/captain/equip_items(mob/living/carbon/human/H)
var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/captain(H)
/datum/job/captain/get_access()
return get_all_accesses()
/datum/outfit/job/captain
name = "Captain"
id = /obj/item/weapon/card/id/gold
belt = /obj/item/device/pda/captain
ears = /obj/item/device/radio/headset/heads/captain
uniform = /obj/item/clothing/under/rank/captain
suit = /obj/item/clothing/suit/armor/vest/capcarapace
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/caphat
backpack_contents = list(/obj/item/weapon/storage/box/silver_ids=1,\
/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/captain
satchel = /obj/item/weapon/storage/backpack/satchel_cap
/datum/outfit/job/captain/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/clothing/under/U = H.w_uniform
U.attachTie(new /obj/item/clothing/tie/medal/gold/captain())
H.equip_to_slot_or_del(U, slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/capcarapace(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/caphat(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses)
//Equip ID box & telebaton
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/silver_ids(H.back), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
//Implant him
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
@@ -44,9 +52,6 @@ Captain
minor_announce("Captain [H.real_name] on deck!")
/datum/job/captain/get_access()
return get_all_accesses()
/*
Head of Personnel
*/
@@ -63,9 +68,7 @@ Head of Personnel
req_admin_notify = 1
minimal_player_age = 10
default_id = /obj/item/weapon/card/id/silver
default_pda = /obj/item/device/pda/heads/hop
default_headset = /obj/item/device/radio/headset/heads/hop
outfit = /datum/outfit/job/hop
access = list(access_security, access_sec_doors, access_court, access_weapons,
access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,
@@ -81,13 +84,19 @@ Head of Personnel
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom)
/datum/job/hop/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_personnel(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/hopcap(H), slot_head)
/datum/outfit/job/hop
name = "Head of Personnel"
//Equip ID box & telebaton
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
id = /obj/item/weapon/card/id/silver
belt = /obj/item/device/pda/heads/hop
ears = /obj/item/device/radio/headset/heads/hop
uniform = /obj/item/clothing/under/rank/head_of_personnel
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/hopcap
backpack_contents = list(/obj/item/weapon/storage/box/ids=1,\
/obj/item/weapon/melee/classic_baton/telescopic=1)
announce_head(H, list("Supply", "Service")) //tell underlings (suuply/service) they have a head
/datum/outfit/job/hop/post_equip(mob/living/carbon/human/H)
..()
announce_head(H, list("Supply", "Service"))
+77 -61
View File
@@ -12,17 +12,20 @@ Quartermaster
supervisors = "the head of personnel"
selection_color = "#d7b088"
default_pda = /obj/item/device/pda/quartermaster
default_headset = /obj/item/device/radio/headset/headset_cargo
outfit = /datum/outfit/job/quartermaster
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
/datum/job/qm/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
/datum/outfit/job/quartermaster
name = "Quartermaster"
belt = /obj/item/device/pda/quartermaster
ears = /obj/item/device/radio/headset/headset_cargo
uniform = /obj/item/clothing/under/rank/cargo
shoes = /obj/item/clothing/shoes/sneakers/brown
glasses = /obj/item/clothing/glasses/sunglasses
l_hand = /obj/item/weapon/clipboard
/*
Cargo Technician
@@ -38,15 +41,18 @@ Cargo Technician
supervisors = "the quartermaster and the head of personnel"
selection_color = "#dcba97"
default_pda = /obj/item/device/pda/cargo
default_headset = /obj/item/device/radio/headset/headset_cargo
outfit = /datum/outfit/job/cargo_tech
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting, access_mineral_storeroom)
/datum/job/cargo_tech/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
/datum/outfit/job/cargo_tech
name = "Cargo Technician"
belt = /obj/item/device/pda/cargo
ears = /obj/item/device/radio/headset/headset_cargo
uniform = /obj/item/clothing/under/rank/cargotech
/*
Shaft Miner
@@ -62,23 +68,25 @@ Shaft Miner
supervisors = "the quartermaster and the head of personnel"
selection_color = "#dcba97"
default_pda = /obj/item/device/pda/shaftminer
default_headset = /obj/item/device/radio/headset/headset_cargo
default_backpack = /obj/item/weapon/storage/backpack/industrial
default_satchel = /obj/item/weapon/storage/backpack/satchel_eng
default_storagebox = /obj/item/weapon/storage/box/engineer
outfit = /datum/outfit/job/miner
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
minimal_access = list(access_mining, access_mining_station, access_mailsorting, access_mineral_storeroom)
/datum/job/mining/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
/datum/outfit/job/miner
name = "Shaft Miner"
H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/mining_voucher(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/patch/styptic(H), slot_l_store)
belt = /obj/item/device/pda/shaftminer
ears = /obj/item/device/radio/headset/headset_cargo
uniform = /obj/item/clothing/under/rank/miner
l_pocket = /obj/item/weapon/reagent_containers/pill/patch/styptic
backpack_contents = list(/obj/item/weapon/crowbar=1,\
/obj/item/weapon/storage/bag/ore=1,\
/obj/item/weapon/mining_voucher=1)
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel_eng
box = /obj/item/weapon/storage/box/engineer
/*
Bartender
@@ -94,21 +102,20 @@ Bartender
supervisors = "the head of personnel"
selection_color = "#bbe291"
default_pda = /obj/item/device/pda/bar
default_headset = /obj/item/device/radio/headset/headset_srv
outfit = /datum/outfit/job/bartender
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons)
minimal_access = list(access_bar)
/datum/job/bartender/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack)
/datum/outfit/job/bartender
name = "Bartender"
belt = /obj/item/device/pda/bar
ears = /obj/item/device/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/bartender
suit = /obj/item/clothing/suit/armor/vest
backpack_contents = list(/obj/item/ammo_casing/shotgun/beanbag=4)
/*
Cook
@@ -123,26 +130,30 @@ Cook
spawn_positions = 1
supervisors = "the head of personnel"
selection_color = "#bbe291"
var/global/cooks = 0 //Counts cooks amount
var/cooks = 0 //Counts cooks amount
default_pda = /obj/item/device/pda/cook
default_headset = /obj/item/device/radio/headset/headset_srv
outfit = /datum/outfit/job/cook
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue)
minimal_access = list(access_kitchen, access_morgue)
/datum/job/cook/equip_items(mob/living/carbon/human/H)
cooks += 1
/datum/outfit/job/cook
name = "Cook"
belt = /obj/item/device/pda/cook
ears = /obj/item/device/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/toggle/chef
head = /obj/item/clothing/head/chefhat
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H)
..()
var/datum/job/cook/J = SSjob.GetJob(H.job)
J.cooks++
if(J.cooks>1)//Cooks
suit = /obj/item/clothing/suit/apron/chef
head = /obj/item/clothing/head/soft/mime
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
switch(cooks)
if(1)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/chef(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(H), slot_head)
else
H.equip_to_slot_or_del(new /obj/item/clothing/suit/apron/chef(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/soft/mime(H), slot_head)
/*
Botanist
@@ -158,18 +169,21 @@ Botanist
supervisors = "the head of personnel"
selection_color = "#bbe291"
default_pda = /obj/item/device/pda/botanist
default_headset = /obj/item/device/radio/headset/headset_srv
outfit = /datum/outfit/job/botanist
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning.
minimal_access = list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning.
/datum/job/hydro/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/analyzer/plant_analyzer(H), slot_s_store)
/datum/outfit/job/botanist
name = "Botanist"
belt = /obj/item/device/pda/botanist
ears = /obj/item/device/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/hydroponics
suit = /obj/item/clothing/suit/apron
gloves =/obj/item/clothing/gloves/botanic_leather
suit_store = /obj/item/device/analyzer/plant_analyzer
/*
Janitor
@@ -186,12 +200,14 @@ Janitor
selection_color = "#bbe291"
var/global/janitors = 0
default_pda = /obj/item/device/pda/janitor
default_headset = /obj/item/device/radio/headset/headset_srv
outfit = /datum/outfit/job/janitor
access = list(access_janitor, access_maint_tunnels)
minimal_access = list(access_janitor, access_maint_tunnels)
/datum/job/janitor/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
/datum/outfit/job/janitor
name = "Janitor"
belt = /obj/item/device/pda/janitor
ears = /obj/item/device/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/janitor
+65 -47
View File
@@ -12,25 +12,32 @@ Clown
supervisors = "the head of personnel"
selection_color = "#dddddd"
default_pda = /obj/item/device/pda/clown
default_backpack = /obj/item/weapon/storage/backpack/clown
default_satchel = /obj/item/weapon/storage/backpack/clown
outfit = /datum/outfit/job/clown
access = list(access_theatre)
minimal_access = list(access_theatre)
/datum/job/clown/equip_items(mob/living/carbon/human/H)
H.fully_replace_character_name(H.real_name, pick(clown_names)) // Give him a temporary random name to prevent identity revealing
/datum/outfit/job/clown
name = "Clown"
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(H), slot_r_store)
belt = /obj/item/device/pda/clown
uniform = /obj/item/clothing/under/rank/clown
shoes = /obj/item/clothing/shoes/clown_shoes
mask = /obj/item/clothing/mask/gas/clown_hat
l_pocket = /obj/item/weapon/bikehorn
r_pocket = /obj/item/toy/crayon/rainbow
backpack_contents = list(/obj/item/weapon/stamp/clown=1,/obj/item/weapon/reagent_containers/spray/waterflower=1)
H.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(H, 50), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/stamp/clown(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/waterflower(H), slot_in_backpack)
backpack = /obj/item/weapon/storage/backpack/clown
satchel = /obj/item/weapon/storage/backpack/clown
/datum/outfit/job/clown/pre_equip(mob/living/carbon/human/H)
..()
H.fully_replace_character_name(H.real_name, pick(clown_names))
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H)
..()
new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(H.back, 50)
H.dna.add_mutation(CLOWNMUT)
H.rename_self("clown")
@@ -49,24 +56,30 @@ Mime
supervisors = "the head of personnel"
selection_color = "#dddddd"
default_pda = /obj/item/device/pda/mime
default_backpack = /obj/item/weapon/storage/backpack/mime
default_satchel = /obj/item/weapon/storage/backpack/mime
outfit = /datum/outfit/job/mime
access = list(access_theatre)
minimal_access = list(access_theatre)
/datum/job/mime/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/mime(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/white(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/mime(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/suspenders(H), slot_wear_suit)
/datum/outfit/job/mime
name = "Mime"
H.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/toy/crayon/mime(H), slot_in_backpack)
belt = /obj/item/device/pda/mime
uniform = /obj/item/clothing/under/rank/mime
mask = /obj/item/clothing/mask/gas/mime
gloves = /obj/item/clothing/gloves/color/white
head = /obj/item/clothing/head/beret
suit = /obj/item/clothing/suit/suspenders
l_pocket = /obj/item/weapon/bikehorn
r_pocket = /obj/item/toy/crayon/rainbow
backpack_contents = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing=1,\
/obj/item/toy/crayon/mime=1)
backpack = /obj/item/weapon/storage/backpack/mime
satchel = /obj/item/weapon/storage/backpack/mime
/datum/outfit/job/mime/post_equip(mob/living/carbon/human/H)
..()
if(H.mind)
H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null))
H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null))
@@ -88,17 +101,19 @@ Librarian
supervisors = "the head of personnel"
selection_color = "#dddddd"
default_pda = /obj/item/device/pda/librarian
outfit = /datum/outfit/job/librarian
access = list(access_library)
minimal_access = list(access_library)
/datum/job/librarian/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/librarian(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/books(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/weapon/barcodescanner(H), slot_r_store)
H.equip_to_slot_or_del(new /obj/item/device/laser_pointer(H), slot_l_store)
/datum/outfit/job/librarian
name = "Librarian"
belt = /obj/item/device/pda/librarian
uniform = /obj/item/clothing/under/rank/librarian
l_hand = /obj/item/weapon/storage/bag/books
r_pocket = /obj/item/weapon/barcodescanner
l_pocket = /obj/item/device/laser_pointer
/*
Lawyer
@@ -113,25 +128,28 @@ Lawyer
spawn_positions = 2
supervisors = "the head of personnel"
selection_color = "#dddddd"
var/global/lawyers = 0 //Counts lawyer amount
var/lawyers = 0 //Counts lawyer amount
default_pda = /obj/item/device/pda/lawyer
default_headset = /obj/item/device/radio/headset/headset_sec
outfit = /datum/outfit/job/lawyer
access = list(access_lawyer, access_court, access_sec_doors)
minimal_access = list(access_lawyer, access_court, access_sec_doors)
/datum/job/lawyer/equip_items(mob/living/carbon/human/H)
lawyers += 1
/datum/outfit/job/lawyer
name = "Lawyer"
switch(lawyers)
if(1)
H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/bluesuit(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/lawyer(H), slot_wear_suit)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/purpsuit(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/lawyer/purple(H), slot_wear_suit)
belt = /obj/item/device/pda/lawyer
ears = /obj/item/device/radio/headset/headset_sec
uniform = /obj/item/clothing/under/lawyer/bluesuit
suit = /obj/item/clothing/suit/toggle/lawyer
shoes = /obj/item/clothing/shoes/laceup
l_hand = /obj/item/weapon/storage/briefcase
l_pocket = /obj/item/device/laser_pointer
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/laser_pointer(H), slot_l_store)
/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H)
..()
var/datum/job/lawyer/J = SSjob.GetJob(H.job)
J.lawyers++
if(J.lawyers>1)
uniform = /obj/item/clothing/under/lawyer/purpsuit
suit = /obj/item/clothing/suit/toggle/lawyer/purple
+9 -4
View File
@@ -13,14 +13,19 @@ Chaplain
supervisors = "the head of personnel"
selection_color = "#dddddd"
default_pda = /obj/item/device/pda/chaplain
outfit = /datum/outfit/job/chaplain
access = list(access_morgue, access_chapel_office, access_crematorium)
minimal_access = list(access_morgue, access_chapel_office, access_crematorium)
/datum/job/chaplain/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
/datum/outfit/job/chaplain
name = "Chaplain"
belt = /obj/item/device/pda/chaplain
uniform = /obj/item/clothing/under/rank/chaplain
/datum/outfit/job/chaplain/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H)
var/new_religion = "Christianity"
+48 -37
View File
@@ -14,13 +14,7 @@ Chief Engineer
req_admin_notify = 1
minimal_player_age = 7
default_id = /obj/item/weapon/card/id/silver
default_pda = /obj/item/device/pda/heads/ce
default_pda_slot = slot_l_store
default_headset = /obj/item/device/radio/headset/heads/ce
default_backpack = /obj/item/weapon/storage/backpack/industrial
default_satchel = /obj/item/weapon/storage/backpack/satchel_eng
default_storagebox = /obj/item/weapon/storage/box/engineer
outfit = /datum/outfit/job/ce
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
@@ -31,17 +25,27 @@ Chief Engineer
access_heads, access_construction, access_sec_doors, access_minisat,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_mineral_storeroom)
/datum/job/chief_engineer/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black/ce(H), slot_gloves)
/datum/outfit/job/ce
name = "Chief Engineer"
//Equip telebaton
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
id = /obj/item/weapon/card/id/silver
belt = /obj/item/weapon/storage/belt/utility/full
l_pocket = /obj/item/device/pda/heads/ce
ears = /obj/item/device/radio/headset/heads/ce
uniform = /obj/item/clothing/under/rank/chief_engineer
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/hardhat/white
gloves = /obj/item/clothing/gloves/color/black/ce
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
announce_head(H, list("Engineering")) //tell underlings (engineering radio) they have a head
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel_eng
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
/datum/outfit/job/ce/post_equip(mob/living/carbon/human/H)
..()
announce_head(H, list("Engineering"))
/*
Station Engineer
@@ -57,24 +61,28 @@ Station Engineer
supervisors = "the chief engineer"
selection_color = "#fff5cc"
default_pda = /obj/item/device/pda/engineering
default_pda_slot = slot_l_store
default_headset = /obj/item/device/radio/headset/headset_eng
default_backpack = /obj/item/weapon/storage/backpack/industrial
default_satchel = /obj/item/weapon/storage/backpack/satchel_eng
default_storagebox = /obj/item/weapon/storage/box/engineer
outfit = /datum/outfit/job/engineer
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_atmospherics, access_tcomsat)
minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_tcomsat)
/datum/job/engineer/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/device/t_scanner(H), slot_r_store)
/datum/outfit/job/engineer
name = "Station Engineer"
belt = /obj/item/weapon/storage/belt/utility/full
l_pocket = /obj/item/device/pda/engineering
ears = /obj/item/device/radio/headset/headset_eng
uniform = /obj/item/clothing/under/rank/engineer
shoes = /obj/item/clothing/shoes/workboots
head = /obj/item/clothing/head/hardhat
r_pocket = /obj/item/device/t_scanner
backpack = /obj/item/weapon/storage/backpack/industrial
satchel = /obj/item/weapon/storage/backpack/satchel_eng
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
/*
Atmospheric Technician
@@ -90,17 +98,20 @@ Atmospheric Technician
supervisors = "the chief engineer"
selection_color = "#fff5cc"
default_pda = /obj/item/device/pda/atmos
default_pda_slot = slot_l_store
default_headset = /obj/item/device/radio/headset/headset_eng
default_storagebox = /obj/item/weapon/storage/box/engineer
outfit = /datum/outfit/job/atmos
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_external_airlocks, access_construction, access_atmospherics)
minimal_access = list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction)
/datum/job/atmos/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/analyzer(H), slot_r_store)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/atmostech/(H), slot_belt)
/datum/outfit/job/atmos
name = "Atmospheric Technician"
belt = /obj/item/weapon/storage/belt/utility/atmostech
l_pocket = /obj/item/device/pda/atmos
ears = /obj/item/device/radio/headset/headset_eng
uniform = /obj/item/clothing/under/rank/atmospheric_technician
r_pocket = /obj/item/device/t_scanner
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
+43 -42
View File
@@ -39,63 +39,26 @@
//If you have the use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.)
var/minimal_player_age = 0
//Job specific items
var/default_id = /obj/item/weapon/card/id //this is just the looks of it
var/default_pda = /obj/item/device/pda
var/default_pda_slot = slot_belt
var/default_headset = /obj/item/device/radio/headset
var/default_backpack = /obj/item/weapon/storage/backpack
var/default_satchel = /obj/item/weapon/storage/backpack/satchel_norm
var/default_storagebox= /obj/item/weapon/storage/box/survival
var/outfit = null
//Only override this proc
/datum/job/proc/equip_items(mob/living/carbon/human/H)
//Or this proc
/datum/job/proc/equip_backpack(mob/living/carbon/human/H)
var/obj/item/weapon/storage/backpack/BPK
if(H.backbag == 1) //Backpack
BPK = new default_backpack(H)
else //Satchel
BPK = new default_satchel(H)
new default_storagebox(BPK)
H.equip_to_slot_or_del(BPK, slot_back,1)
//But don't override this
/datum/job/proc/equip(mob/living/carbon/human/H)
if(!H)
return 0
//Equip backpack
equip_backpack(H)
//Equip the rest of the gear
if(H.dna)
H.dna.species.before_equip_job(src, H)
equip_items(H)
if(outfit)
H.equipOutfit(outfit)
if(H.dna)
H.dna.species.after_equip_job(src, H)
//Equip ID
var/obj/item/weapon/card/id/C = new default_id(H)
C.access = get_access()
C.registered_name = H.real_name
C.assignment = H.job
C.update_label()
H.equip_to_slot_or_del(C, slot_wear_id)
//Equip PDA
var/obj/item/device/pda/PDA = new default_pda(H)
PDA.owner = H.real_name
PDA.ownjob = H.job
PDA.update_label()
H.equip_to_slot_or_del(PDA, default_pda_slot)
//Equip headset
H.equip_to_slot_or_del(new src.default_headset(H), slot_ears)
/datum/job/proc/apply_fingerprints(mob/living/carbon/human/H)
if(!istype(H))
return
@@ -169,8 +132,46 @@
/datum/job/proc/config_check()
return 1
/datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
/datum/outfit/job
name = "Standard Gear"
uniform = /obj/item/clothing/under/color/grey
id = /obj/item/weapon/card/id
ears = /obj/item/device/radio/headset
belt = /obj/item/device/pda
back = /obj/item/weapon/storage/backpack
shoes = /obj/item/clothing/shoes/sneakers/black
var/backpack = /obj/item/weapon/storage/backpack
var/satchel = /obj/item/weapon/storage/backpack/satchel_norm
var/box = /obj/item/weapon/storage/box/survival
var/pda_slot = slot_belt
/datum/outfit/job/pre_equip(mob/living/carbon/human/H)
if(H.backbag == 1) //Backpack
back = backpack
else //Satchel
back = satchel
backpack_contents[box] = 1
/datum/outfit/job/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/C = H.wear_id
var/datum/job/J = SSjob.GetJob(H.job) // Not sure the best idea
C.access = J.get_access()
C.registered_name = H.real_name
C.assignment = H.job
C.update_label()
H.sec_hud_set_ID()
var/obj/item/device/pda/PDA = H.get_item_by_slot(pda_slot)
PDA.owner = H.real_name
PDA.ownjob = H.job
PDA.update_label()
/datum/outfit/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
spawn(4) //to allow some initialization
if(announcement_systems.len)
var/obj/machinery/announcement_system/announcer = pick(announcement_systems)
announcer.announce("NEWHEAD", H.real_name, H.job, channels)
announcer.announce("NEWHEAD", H.real_name, H.job, channels)
+64 -45
View File
@@ -14,11 +14,7 @@ Chief Medical Officer
req_admin_notify = 1
minimal_player_age = 7
default_id = /obj/item/weapon/card/id/silver
default_pda = /obj/item/device/pda/heads/cmo
default_headset = /obj/item/device/radio/headset/heads/cmo
default_backpack = /obj/item/weapon/storage/backpack/medic
default_satchel = /obj/item/weapon/storage/backpack/satchel_med
outfit = /datum/outfit/job/cmo
access = list(access_medical, access_morgue, access_genetics, access_heads, access_mineral_storeroom,
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
@@ -27,14 +23,24 @@ Chief Medical Officer
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
access_keycard_auth, access_sec_doors)
/datum/job/cmo/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/cmo(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
/datum/outfit/job/cmo
name = "Chief Medical Officer"
id = /obj/item/weapon/card/id/silver
belt = /obj/item/device/pda/heads/cmo
ears = /obj/item/device/radio/headset/heads/cmo
uniform = /obj/item/clothing/under/rank/chief_medical_officer
shoes = /obj/item/clothing/shoes/sneakers/brown
suit = /obj/item/clothing/suit/toggle/labcoat/cmo
l_hand = /obj/item/weapon/storage/firstaid/regular
suit_store = /obj/item/device/flashlight/pen
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel_med
/datum/outfit/job/cmo/post_equip(mob/living/carbon/human/H)
..()
announce_head(H, list("Medical")) //tell underlings (medical radio) they have a head
/*
@@ -51,20 +57,24 @@ Medical Doctor
supervisors = "the chief medical officer"
selection_color = "#ffeef0"
default_pda = /obj/item/device/pda/medical
default_headset = /obj/item/device/radio/headset/headset_med
default_backpack = /obj/item/weapon/storage/backpack/medic
default_satchel = /obj/item/weapon/storage/backpack/satchel_med
outfit = /datum/outfit/job/doctor
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
minimal_access = list(access_medical, access_morgue, access_surgery)
/datum/job/doctor/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
/datum/outfit/job/doctor
name = "Medical Doctor"
belt = /obj/item/device/pda/medical
ears = /obj/item/device/radio/headset/headset_med
uniform = /obj/item/clothing/under/rank/medical
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat
l_hand = /obj/item/weapon/storage/firstaid/regular
suit_store = /obj/item/device/flashlight/pen
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel_med
/*
Chemist
@@ -80,16 +90,19 @@ Chemist
supervisors = "the chief medical officer"
selection_color = "#ffeef0"
default_pda = /obj/item/device/pda/chemist
default_headset = /obj/item/device/radio/headset/headset_med
outfit = /datum/outfit/job/chemist
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
minimal_access = list(access_medical, access_chemistry, access_mineral_storeroom)
/datum/job/chemist/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/chemist(H), slot_wear_suit)
/datum/outfit/job/chemist
name = "Chemist"
belt = /obj/item/device/pda/chemist
ears = /obj/item/device/radio/headset/headset_med
uniform = /obj/item/clothing/under/rank/chemist
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat/chemist
/*
Geneticist
@@ -105,17 +118,20 @@ Geneticist
supervisors = "the chief medical officer and research director"
selection_color = "#ffeef0"
default_pda = /obj/item/device/pda/geneticist
default_headset = /obj/item/device/radio/headset/headset_medsci
outfit = /datum/outfit/job/geneticist
access = list(access_medical, access_morgue, access_chemistry, access_virology, access_genetics, access_research, access_xenobiology, access_robotics, access_mineral_storeroom, access_tech_storage)
minimal_access = list(access_medical, access_morgue, access_genetics, access_research)
/datum/job/geneticist/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/genetics(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
/datum/outfit/job/geneticist
name = "Geneticist"
belt = /obj/item/device/pda/geneticist
ears = /obj/item/device/radio/headset/headset_medsci
uniform = /obj/item/clothing/under/rank/geneticist
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat/genetics
suit_store = /obj/item/device/flashlight/pen
/*
Virologist
@@ -131,18 +147,21 @@ Virologist
supervisors = "the chief medical officer"
selection_color = "#ffeef0"
default_pda = /obj/item/device/pda/viro
default_headset = /obj/item/device/radio/headset/headset_med
default_backpack = /obj/item/weapon/storage/backpack/medic
default_satchel = /obj/item/weapon/storage/backpack/satchel_med
outfit = /datum/outfit/job/virologist
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
minimal_access = list(access_medical, access_virology, access_mineral_storeroom)
/datum/job/virologist/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
/datum/outfit/job/virologist
name = "Virologist"
belt = /obj/item/device/pda/viro
ears = /obj/item/device/radio/headset/headset_med
uniform = /obj/item/clothing/under/rank/virologist
mask = /obj/item/clothing/mask/surgical
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat/virologist
suit_store = /obj/item/device/flashlight/pen
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel_med
+38 -24
View File
@@ -14,9 +14,7 @@ Research Director
req_admin_notify = 1
minimal_player_age = 7
default_id = /obj/item/weapon/card/id/silver
default_pda = /obj/item/device/pda/heads/rd
default_headset = /obj/item/device/radio/headset/heads/rd
outfit = /datum/outfit/job/rd
access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_teleporter, access_sec_doors,
@@ -29,14 +27,24 @@ Research Director
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
access_tech_storage, access_minisat)
/datum/job/rd/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/laser_pointer(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
/datum/outfit/job/rd
name = "Research Director"
id = /obj/item/weapon/card/id/silver
belt = /obj/item/device/pda/heads/rd
ears = /obj/item/device/radio/headset/heads/rd
uniform = /obj/item/clothing/under/rank/research_director
shoes = /obj/item/clothing/shoes/sneakers/brown
suit = /obj/item/clothing/suit/toggle/labcoat
l_hand = /obj/item/weapon/clipboard
l_pocket = /obj/item/device/laser_pointer
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
backpack = /obj/item/weapon/storage/backpack/medic
satchel = /obj/item/weapon/storage/backpack/satchel_med
/datum/outfit/job/rd/post_equip(mob/living/carbon/human/H)
..()
announce_head(H, list("Science")) //tell underlings (science radio) they have a head
/*
@@ -53,16 +61,19 @@ Scientist
supervisors = "the research director"
selection_color = "#ffeeff"
default_pda = /obj/item/device/pda/toxins
default_headset = /obj/item/device/radio/headset/headset_sci
outfit = /datum/outfit/job/scientist
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage, access_genetics)
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom)
/datum/job/scientist/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat/science(H), slot_wear_suit)
/datum/outfit/job/scientist
name = "Scientist"
belt = /obj/item/device/pda/toxins
ears = /obj/item/device/radio/headset/headset_sci
uniform = /obj/item/clothing/under/rank/scientist
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat/science
/*
Roboticist
@@ -78,15 +89,18 @@ Roboticist
supervisors = "research director"
selection_color = "#ffeeff"
default_pda = /obj/item/device/pda/roboticist
default_headset = /obj/item/device/radio/headset/headset_sci
default_pda_slot = slot_l_store
outfit = /datum/outfit/job/roboticist
access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research, access_mineral_storeroom, access_xenobiology, access_genetics)
minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research, access_mineral_storeroom)
/datum/job/roboticist/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
/datum/outfit/job/roboticist
name = "Roboticist"
belt = /obj/item/weapon/storage/belt/utility/full
l_pocket = /obj/item/device/pda/roboticist
ears = /obj/item/device/radio/headset/headset_sci
uniform = /obj/item/clothing/under/rank/roboticist
suit = /obj/item/clothing/suit/toggle/labcoat
pda_slot = slot_l_store
+153 -134
View File
@@ -20,11 +20,7 @@ Head of Security
req_admin_notify = 1
minimal_player_age = 14
default_id = /obj/item/weapon/card/id/silver
default_pda = /obj/item/device/pda/heads/hos
default_headset = /obj/item/device/radio/headset/heads/hos/alt
default_backpack = /obj/item/weapon/storage/backpack/security
default_satchel = /obj/item/weapon/storage/backpack/satchel_sec
outfit = /datum/outfit/job/hos
access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_weapons,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
@@ -35,25 +31,33 @@ Head of Security
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway)
/datum/job/hos/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/hos/trenchcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black/hos(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/head/HoS/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(H), slot_s_store)
/datum/outfit/job/hos
name = "Head of Security"
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
id = /obj/item/weapon/card/id/silver
belt = /obj/item/device/pda/heads/hos
ears = /obj/item/device/radio/headset/heads/hos/alt
uniform = /obj/item/clothing/under/rank/head_of_security
shoes = /obj/item/clothing/shoes/jackboots
suit = /obj/item/clothing/suit/armor/hos/trenchcoat
gloves = /obj/item/clothing/gloves/color/black/hos
head = /obj/item/clothing/head/HoS/beret
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
suit_store = /obj/item/weapon/gun/energy/gun
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,\
/obj/item/weapon/restraints/handcuffs=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel_sec
/datum/outfit/job/hos/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
announce_head(H, list("Security")) //tell underlings (security radio) they have a head
/*
Warden
*/
@@ -69,36 +73,41 @@ Warden
selection_color = "#ffeeee"
minimal_player_age = 7
default_pda = /obj/item/device/pda/warden
default_headset = /obj/item/device/radio/headset/headset_sec/alt
default_backpack = /obj/item/weapon/storage/backpack/security
default_satchel = /obj/item/weapon/storage/backpack/satchel_sec
outfit = /datum/outfit/job/warden
access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers)
minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_weapons) //See /datum/job/warden/get_access()
/datum/job/warden/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/warden(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/warden(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/device/assembly/flash/handheld(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_in_backpack)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
/datum/job/warden/get_access()
var/list/L = list()
L = ..() | check_config_for_sec_maint()
return L
/datum/outfit/job/warden
name = "Warden"
belt = /obj/item/device/pda/warden
ears = /obj/item/device/radio/headset/headset_sec/alt
uniform = /obj/item/clothing/under/rank/warden
shoes = /obj/item/clothing/shoes/jackboots
suit = /obj/item/clothing/suit/armor/vest/warden
gloves = /obj/item/clothing/gloves/color/black
head = /obj/item/clothing/head/warden
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
l_pocket = /obj/item/device/assembly/flash/handheld
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
backpack_contents = list(/obj/item/weapon/restraints/handcuffs=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel_sec
/datum/outfit/job/warden/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
/*
Detective
*/
@@ -114,28 +123,32 @@ Detective
selection_color = "#ffeeee"
minimal_player_age = 7
default_pda = /obj/item/device/pda/detective
default_headset = /obj/item/device/radio/headset/headset_sec
outfit = /datum/outfit/job/detective
access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_weapons, access_brig, access_security)
minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_weapons)
/datum/job/detective/equip_items(mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/det(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/det_hat(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/det_suit(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/toy/crayon/white(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/lighter(H), slot_r_store)
/datum/outfit/job/detective
name = "Detective"
var/obj/item/clothing/mask/cigarette/cig = new /obj/item/clothing/mask/cigarette(H)
belt = /obj/item/device/pda/detective
ears = /obj/item/device/radio/headset/headset_sec
uniform = /obj/item/clothing/under/rank/det
shoes = /obj/item/clothing/shoes/sneakers/brown
suit = /obj/item/clothing/suit/det_suit
gloves = /obj/item/clothing/gloves/color/black
head = /obj/item/clothing/head/det_hat
l_pocket = /obj/item/toy/crayon/white
r_pocket = /obj/item/weapon/lighter
backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\
/obj/item/device/detective_scanner=1,\
/obj/item/weapon/melee/classic_baton/telescopic=1)
mask = /obj/item/clothing/mask/cigarette
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/clothing/mask/cigarette/cig = H.wear_mask
cig.light("")
H.equip_to_slot_or_del(cig, slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/device/detective_scanner(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
@@ -156,102 +169,108 @@ Security Officer
supervisors = "the head of security, and the head of your assigned department (if applicable)"
selection_color = "#ffeeee"
minimal_player_age = 7
var/list/dep_access = null
default_pda = /obj/item/device/pda/security
default_headset = /obj/item/device/radio/headset/headset_sec/alt
default_backpack = /obj/item/weapon/storage/backpack/security
default_satchel = /obj/item/weapon/storage/backpack/satchel_sec
default_storagebox = /obj/item/weapon/storage/box/security
outfit = /datum/outfit/job/security
access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers)
minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_weapons) //But see /datum/job/warden/get_access()
/datum/job/officer/equip_items(mob/living/carbon/human/H)
assign_sec_to_department(H)
/datum/job/officer/get_access()
var/list/L = list()
L |= ..() | check_config_for_sec_maint()
return L
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/sec(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
H.equip_to_slot_or_del(new /obj/item/device/assembly/flash/handheld(H), slot_l_store)
var/list/sec_departments = list("engineering", "supply", "medical", "science")
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_in_backpack)
H.equip_to_slot_or_del(new /obj/item/weapon/melee/baton/loaded(H), slot_in_backpack)
/datum/outfit/job/security
name = "Security Officer"
belt = /obj/item/device/pda/security
ears = /obj/item/device/radio/headset/headset_sec/alt
uniform = /obj/item/clothing/under/rank/security
gloves = /obj/item/clothing/gloves/color/black
head = /obj/item/clothing/head/helmet/sec
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/jackboots
l_pocket = /obj/item/device/assembly/flash/handheld
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
backpack_contents = list(/obj/item/weapon/restraints/handcuffs=1,\
/obj/item/weapon/melee/baton/loaded=1)
backpack = /obj/item/weapon/storage/backpack/security
satchel = /obj/item/weapon/storage/backpack/satchel_sec
box = /obj/item/weapon/storage/box/security
var/department = null
var/tie = null
var/list/dep_access = null
var/destination = null
var/spawn_point = null
/datum/outfit/job/security/pre_equip(mob/living/carbon/human/H)
..()
if(sec_departments.len)
department = pick(sec_departments)
sec_departments -= department
switch(department)
if("supply")
ears = /obj/item/device/radio/headset/headset_sec/alt/department/supply
dep_access = list(access_mailsorting, access_mining)
destination = /area/security/checkpoint/supply
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in department_security_spawns
tie = /obj/item/clothing/tie/armband/cargo
if("engineering")
ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi
dep_access = list(access_construction, access_engine)
destination = /area/security/checkpoint/engineering
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in department_security_spawns
tie = /obj/item/clothing/tie/armband/engine
if("medical")
ears = /obj/item/device/radio/headset/headset_sec/alt/department/med
dep_access = list(access_medical)
destination = /area/security/checkpoint/medical
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in department_security_spawns
tie = /obj/item/clothing/tie/armband/medblue
if("science")
ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci
dep_access = list(access_research)
destination = /area/security/checkpoint/science
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in department_security_spawns
tie = /obj/item/clothing/tie/armband/science
/datum/outfit/job/security/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
/datum/job/officer/get_access()
var/list/L = list()
if(dep_access)
L |= dep_access.Copy()
L |= ..() | check_config_for_sec_maint()
dep_access = null;
return L
var/obj/item/clothing/under/U = H.w_uniform
U.attachTie(new tie)
var/list/sec_departments = list("engineering", "supply", "medical", "science")
var/obj/item/weapon/card/id/W = H.wear_id
W.access |= dep_access
/datum/job/officer/proc/assign_sec_to_department(mob/living/carbon/human/H)
if(!sec_departments.len)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(H), slot_w_uniform)
else
var/department = pick(sec_departments)
sec_departments -= department
var/destination = null
var/obj/effect/landmark/start/depsec/spawn_point = null
var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/security(H)
switch(department)
if("supply")
default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/supply
dep_access = list(access_mailsorting, access_mining)
destination = /area/security/checkpoint/supply
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in department_security_spawns
U.attachTie(new /obj/item/clothing/tie/armband/cargo())
if("engineering")
default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/engi
dep_access = list(access_construction, access_engine)
destination = /area/security/checkpoint/engineering
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in department_security_spawns
U.attachTie(new /obj/item/clothing/tie/armband/engine())
if("medical")
default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/med
dep_access = list(access_medical)
destination = /area/security/checkpoint/medical
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in department_security_spawns
U.attachTie(new /obj/item/clothing/tie/armband/medblue())
if("science")
default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/sci
dep_access = list(access_research)
destination = /area/security/checkpoint/science
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in department_security_spawns
U.attachTie(new /obj/item/clothing/tie/armband/science())
H.equip_to_slot_or_del(U, slot_w_uniform)
var/teleport = 0
if(!config.sec_start_brig)
if(destination || spawn_point)
teleport = 1
if(teleport)
var/turf/T
if(spawn_point)
T = get_turf(spawn_point)
H.Move(T)
else
var/safety = 0
while(safety < 25)
T = safepick(get_area_turfs(destination))
if(T && !H.Move(T))
safety += 1
continue
else
break
H << "<b>You have been assigned to [department]!</b>"
return
var/teleport = 0
if(!config.sec_start_brig)
if(destination || spawn_point)
teleport = 1
if(teleport)
var/turf/T
if(spawn_point)
T = get_turf(spawn_point)
H.Move(T)
else
var/safety = 0
while(safety < 25)
T = safepick(get_area_turfs(destination))
if(T && !H.Move(T))
safety += 1
continue
else
break
H << "<b>You have been assigned to [department]!</b>"
/obj/item/device/radio/headset/headset_sec/department/New()
wires = new(src)
+1 -1
View File
@@ -116,7 +116,7 @@
if (stat)
return 1
var/material_amount = materials.can_insert(O)
var/material_amount = materials.get_item_material_amount(O)
if(!material_amount)
user << "<span class='warning'>This object does not contain sufficient amounts of metal or glass to be accepted by the autolathe.</span>"
return 1
+1 -1
View File
@@ -119,7 +119,7 @@ var/const/SAFETY_COOLDOWN = 100
if(sound)
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
var/material_amount = materials.can_insert(I)
var/material_amount = materials.get_item_material_amount(I)
if(!material_amount)
qdel(I)
return
+2 -1
View File
@@ -131,7 +131,8 @@ var/list/admin_verbs_debug = list(
/proc/machine_upgrade,
/client/proc/populate_world,
/client/proc/cmd_display_del_log,
/client/proc/reset_latejoin_spawns
/client/proc/reset_latejoin_spawns,
/client/proc/create_outfits
)
var/list/admin_verbs_possess = list(
/proc/possess,
+28 -1
View File
@@ -2109,4 +2109,31 @@
message_admins("[key_name_admin(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]")
log_admin("[key_name(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]")
else
usr << "You may only use this when the game is running"
usr << "You may only use this when the game is running"
else if(href_list["create_outfit"])
if(!check_rights(R_ADMIN))
return
var/datum/outfit/O = new /datum/outfit
//swap this for js dropdowns sometime
O.name = href_list["outfit_name"]
O.uniform = text2path(href_list["outfit_uniform"])
O.shoes = text2path(href_list["outfit_shoes"])
O.gloves = text2path(href_list["outfit_gloves"])
O.suit = text2path(href_list["outfit_suit"])
O.head = text2path(href_list["outfit_head"])
O.back = text2path(href_list["outfit_back"])
O.mask = text2path(href_list["outfit_mask"])
O.glasses = text2path(href_list["outfit_glasses"])
O.r_hand = text2path(href_list["outfit_r_hand"])
O.l_hand = text2path(href_list["outfit_l_hand"])
O.suit_store = text2path(href_list["outfit_s_store"])
O.l_pocket = text2path(href_list["outfit_l_pocket"])
O.r_pocket = text2path(href_list["outfit_r_pocket"])
O.id = text2path(href_list["outfit_id"])
O.belt = text2path(href_list["outfit_belt"])
O.ears = text2path(href_list["outfit_ears"])
custom_outfits.Add(O)
message_admins("[key_name(usr)] created \"[O.name]\" outfit!")
+29 -566
View File
@@ -624,393 +624,56 @@ var/global/list/g_fancy_list_of_types = null
alert("Invalid mob")
return
//log_admin("[key_name(src)] has alienized [M.key].")
var/list/dresspacks = list(
"naked",
"as job...",
"standard space gear",
"tournament standard red",
"tournament standard green",
"tournament gangster",
"tournament chef",
"tournament janitor",
"laser tag red",
"laser tag blue",
"pirate",
"space pirate",
"soviet admiral",
"tunnel clown",
"masked killer",
"assassin",
"mobster",
"death commando",
"emergency response officer",
"centcom official",
"centcom commander",
"special ops officer",
"blue wizard",
"red wizard",
"marisa wizard",
"plasmaman"
)
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in dresspacks
var/list/outfits = list("Naked","Custom","As Job...")
var/list/paths = typesof(/datum/outfit) - /datum/outfit - typesof(/datum/outfit/job)
for(var/path in paths)
var/datum/outfit/O = path //not much to initalize here but whatever
outfits[initial(O.name)] = path
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in outfits
if (isnull(dresscode))
return
var/datum/job/jobdatum
if (dresscode == "as job...")
if (dresscode == "As Job...")
var/jobname = input("Select job", "Robust quick dress shop") as null|anything in get_all_jobs()
if(isnull(jobname))
return
jobdatum = SSjob.GetJob(jobname)
var/datum/outfit/custom = null
if (dresscode == "Custom")
var/list/custom_names = list()
for(var/datum/outfit/D in custom_outfits)
custom_names[D.name] = D
var/selected_name = input("Select outfit", "Robust quick dress shop") as null|anything in custom_names
custom = custom_names[selected_name]
if(isnull(custom))
return
feedback_add_details("admin_verb","SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
for (var/obj/item/I in M)
if (istype(I, /obj/item/weapon/implant))
continue
qdel(I)
switch(dresscode)
if ("naked")
if ("Naked")
//do nothing
if ("as job...")
if ("Custom")
//use custom one
M.equipOutfit(custom)
if ("As Job...")
if(jobdatum)
dresscode = jobdatum.title
M.job = jobdatum.title
jobdatum.equip(M)
if ("standard space gear")
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space(M), slot_head)
var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack/oxygen(M)
M.equip_to_slot_or_del(J, slot_back)
J.toggle()
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M), slot_wear_mask)
J.Topic(null, list("stat" = 1))
if ("tournament standard red","tournament standard green") //we think stunning weapon is too overpowered to use it on tournaments. --rastaf0
if (dresscode=="tournament standard red")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform)
else
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/destroyer(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/smokebomb(M), slot_r_store)
if ("tournament gangster") //gangster are supposed to fight each other. --rastaf0
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/det(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/det_suit(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/head/det_hat(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/ammo_box/c10mm(M), slot_l_store)
if ("tournament chef") //Steven Seagal FTW
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/chef(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/rollingpin(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_s_store)
if ("tournament janitor")
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
var/obj/item/weapon/storage/backpack/backpack = new(M)
for(var/obj/item/I in backpack)
qdel(I)
M.equip_to_slot_or_del(backpack, slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/mop(M), slot_r_hand)
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = new(M)
bucket.reagents.add_reagent("water", 70)
M.equip_to_slot_or_del(bucket, slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack)
if ("laser tag red")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/red(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/redtaghelm(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/redtag(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/laser/redtag(M), slot_s_store)
if ("laser tag blue")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/blue(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/blue(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/blue(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/bluetaghelm(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/bluetag(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/laser/bluetag(M), slot_s_store)
if ("pirate")
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
if ("space pirate")
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/pirate(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/pirate(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
if("tunnel clown")//Tunnel clowns rule!
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/chaplain_hoodie(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_r_store)
var/obj/item/weapon/card/id/W = new(M)
W.access = get_all_accesses()
W.assignment = "Tunnel Clown!"
W.registered_name = M.real_name
W.update_label(M.real_name)
M.equip_to_slot_or_del(W, slot_wear_id)
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
if("masked killer")
M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store)
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
for(var/obj/item/carried_item in M.contents)
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
carried_item.add_blood(M)//Oh yes, there will be blood...
if("assassin")
var/obj/item/clothing/under/U = new /obj/item/clothing/under/suit_jacket(M)
M.equip_to_slot_or_del(U, slot_w_uniform)
U.attachTie(new /obj/item/clothing/tie/waistcoat(M))
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store)
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M)
for(var/obj/item/briefcase_item in sec_briefcase)
qdel(briefcase_item)
for(var/i=3, i>0, i--)
sec_briefcase.contents += new /obj/item/stack/spacecash/c1000
sec_briefcase.contents += new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow
sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba
sec_briefcase.contents += new /obj/item/ammo_box/a357
sec_briefcase.contents += new /obj/item/weapon/c4
M.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
var/obj/item/device/pda/heads/pda = new(M)
pda.owner = M.real_name
pda.ownjob = "Reaper"
pda.update_label()
M.equip_to_slot_or_del(pda, slot_belt)
var/obj/item/weapon/card/id/syndicate/W = new(M)
W.access = get_all_accesses()
W.assignment = "Reaper"
W.registered_name = M.real_name
W.update_label(M.real_name)
M.equip_to_slot_or_del(W, slot_wear_id)
// DEATH SQUADS
if("death commando")
equip_deathsquad(M)
if("emergency response officer")
var/alert
if(alert("Code Red ERT?","Select Response Level","Yes","No")=="Yes")
alert = 1
else
alert = 0
switch(input("Which class?") in list("Commander","Security","Engineer","Medic"))
if("Commander")
equip_emergencyresponsesquad(M, "commander",alert)
if("Security")
equip_emergencyresponsesquad(M, "sec",alert)
if("Engineer")
equip_emergencyresponsesquad(M, "eng",alert)
if("Medic")
equip_emergencyresponsesquad(M, "med",alert)
if("centcom official")
equip_centcomofficial(M)
if("centcom commander")
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_commander(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cent/commander(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/centhat(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/lighter(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
var/obj/item/weapon/card/id/W = new(M)
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Centcom Commander")
W.assignment = "Centcom Commander"
W.registered_name = M.real_name
W.update_label()
M.equip_to_slot_or_del(W, slot_wear_id)
if("special ops officer")
var/obj/item/device/radio/headset/R = new /obj/item/device/radio/headset/headset_cent/commander(M)
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/officer(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/lighter(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
var/obj/item/weapon/card/id/W = new(M)
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Special Ops Officer")
W.assignment = "Special Ops Officer"
W.registered_name = M.real_name
W.update_label()
M.equip_to_slot_or_del(W, slot_wear_id)
if("blue wizard")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
if("red wizard")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
if("marisa wizard")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
if("soviet admiral")
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cent(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
var/obj/item/weapon/card/id/W = new(M)
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Admiral")
W.assignment = "Admiral"
W.registered_name = M.real_name
W.update_label()
M.equip_to_slot_or_del(W, slot_wear_id)
if("mobster")
M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/tommygun(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform)
var/obj/item/weapon/card/id/W = new(M)
W.assignment = "Assistant"
W.registered_name = M.real_name
W.update_label()
M.equip_to_slot_or_del(W, slot_wear_id)
if("plasmaman")
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/hardsuit/plasmaman(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/eva/plasmaman(M),slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/internals/plasmaman/full(M),slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M),slot_wear_mask)
else
M.equipOutfit(outfits[dresscode])
M.regenerate_icons()
@@ -1104,204 +767,4 @@ var/global/list/g_fancy_list_of_types = null
for(var/path in SSgarbage.noqdelhint)
dat += "[path]<BR>"
usr << browse(dat, "window=dellog")
//Deathsquad
/proc/equip_deathsquad(mob/living/carbon/human/M, officer)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/headset_cent/alt(M)
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
if(officer)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head)
//else
// M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/deathsquad(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/toggle/thermal(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/c4(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/shield/energy(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/internals/emergency_oxygen(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/loyalpin(M), slot_r_hand)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)//Here you go Deuryn
L.imp_in = M
L.implanted = 1
M.sec_hud_set_implants()
var/obj/item/weapon/card/id/W = new(M)
W.icon_state = "centcom"
W.access = get_all_accesses()//They get full station access.
W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access.
W.assignment = "Death Commando"
W.registered_name = M.real_name
W.update_label(W.registered_name, W.assignment)
M.equip_to_slot_or_del(W, slot_wear_id)
//Emergency Response Team
/proc/equip_emergencyresponsesquad(mob/living/carbon/human/M, ertrole, alert)
var/obj/item/weapon/card/id/W = null
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/headset_cent/alt(M)
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
switch(ertrole)
if("commander")
W = new /obj/item/weapon/card/id/ert(M)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(W, slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/full(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/baton/loaded(M), slot_in_backpack)
R.keyslot = new /obj/item/device/encryptionkey/heads/captain
if(alert)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store)
else
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/switchblade(M), slot_l_store)
if("sec")
W = new /obj/item/weapon/card/id/ert/Security(M)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/sec(M), slot_wear_suit)
M.equip_to_slot_or_del(W, slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/full(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/baton/loaded(M), slot_in_backpack)
R.keyslot = new /obj/item/device/encryptionkey/heads/hos
if(alert)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/carbine/loyalpin(M), slot_in_backpack)
else
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(M), slot_in_backpack)
if("med")
W = new /obj/item/weapon/card/id/ert/Medical(M)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/med(M), slot_wear_suit)
M.equip_to_slot_or_del(W, slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/medical(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/baton/loaded(M), slot_in_backpack)
R.keyslot = new /obj/item/device/encryptionkey/heads/cmo
if(alert)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(M), slot_in_backpack)
else
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat(M), slot_in_backpack)
if("eng")
W = new /obj/item/weapon/card/id/ert/Engineer(M)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/ert/engi(M), slot_wear_suit)
M.equip_to_slot_or_del(W, slot_wear_id)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson/engine(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/baton/loaded(M), slot_in_backpack)
R.keyslot = new /obj/item/device/encryptionkey/heads/ce
if(alert)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/loyalpin(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/combat(M), slot_in_backpack)
else
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/loaded(M), slot_in_backpack)
R.recalculateChannels()
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)
L.imp_in = M
L.implanted = 1
M.sec_hud_set_implants()
if (W)
W.registered_name = M.real_name
W.update_label(W.registered_name, W.assignment)
/proc/equip_centcomofficial(mob/living/carbon/human/M)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cent(M), slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/pen(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(M), slot_back)
var/obj/item/device/pda/heads/pda = new(M)
pda.owner = M.real_name
pda.ownjob = "Centcom Official"
pda.update_label()
M.equip_to_slot_or_del(pda, slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/clipboard(M), slot_l_hand)
var/obj/item/weapon/card/id/W = new(M)
W.icon_state = "centcom"
W.access = get_centcom_access("Centcom Official")
W.access += access_weapons
W.assignment = "Centcom Official"
W.registered_name = M.real_name
W.update_label()
M.equip_to_slot_or_del(W, slot_wear_id)
usr << browse(dat, "window=dellog")
+10 -10
View File
@@ -330,10 +330,10 @@
ready_dna(Commando)
if(numagents == 1) //If Squad Leader
Commando.real_name = "Officer [pick(commando_names)]"
equip_deathsquad(Commando, 1)
Commando.equipOutfit(/datum/outfit/death_commando/officer)
else
Commando.real_name = "Trooper [pick(commando_names)]"
equip_deathsquad(Commando)
Commando.equipOutfit(/datum/outfit/death_commando)
Commando.key = chosen_candidate.key
Commando.mind.assigned_role = "Death Commando"
for(var/obj/machinery/door/poddoor/ert/door in airlocks)
@@ -425,7 +425,7 @@
newmob.real_name = newmob.dna.species.random_name(newmob.gender,1)
newmob.key = chosen_candidate.key
newmob.mind.assigned_role = "Centcom Official"
equip_centcomofficial(newmob)
newmob.equipOutfit(/datum/outfit/centcom_official)
//Assign antag status and the mission
ticker.mode.traitors += newmob.mind
@@ -496,25 +496,25 @@
switch(numagents)
if(1)
ERTOperative.real_name = "Commander [ertname]"
equip_emergencyresponsesquad(ERTOperative, "commander",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/commander/alert : /datum/outfit/ert/commander)
if(2)
ERTOperative.real_name = "Security Officer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "sec",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/security/alert : /datum/outfit/ert/security)
if(3)
ERTOperative.real_name = "Medical Officer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "med",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/medic/alert : /datum/outfit/ert/medic)
if(4)
ERTOperative.real_name = "Engineer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "eng",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer)
if(5)
ERTOperative.real_name = "Security Officer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "sec",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/security/alert : /datum/outfit/ert/security)
if(6)
ERTOperative.real_name = "Medical Officer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "med",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/medic/alert : /datum/outfit/ert/medic)
if(7)
ERTOperative.real_name = "Engineer [ertname]"
equip_emergencyresponsesquad(ERTOperative, "eng",redalert)
ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer)
ERTOperative.key = chosen_candidate.key
ERTOperative.mind.assigned_role = "ERT"
+178
View File
@@ -758,3 +758,181 @@ Traitors and the like can also be revived with the previous role mostly intact.
log_admin("[key_name(usr)] removed latejoin spawnpoints.")
message_admins("[key_name_admin(usr)] removed latejoin spawnpoints.")
var/list/datum/outfit/custom_outfits = list() //Admin created outfits
/client/proc/create_outfits()
set category = "Debug"
set name = "Create Custom Outfit"
if(!check_rights(R_DEBUG)) return
holder.create_outfit()
/datum/admins/proc/create_outfit()
var/list/uniforms = typesof(/obj/item/clothing/under)
var/list/suits = typesof(/obj/item/clothing/suit)
var/list/gloves = typesof(/obj/item/clothing/gloves)
var/list/shoes = typesof(/obj/item/clothing/shoes)
var/list/headwear = typesof(/obj/item/clothing/head)
var/list/glasses = typesof(/obj/item/clothing/glasses)
var/list/masks = typesof(/obj/item/clothing/mask)
var/list/ids = typesof(/obj/item/weapon/card/id)
var/uniform_select = "<select name=\"outfit_uniform\"><option value=\"\">None</option>"
for(var/path in uniforms)
uniform_select += "<option value=\"[path]\">[path]</option>"
uniform_select += "</select>"
var/suit_select = "<select name=\"outfit_suit\"><option value=\"\">None</option>"
for(var/path in suits)
suit_select += "<option value=\"[path]\">[path]</option>"
suit_select += "</select>"
var/gloves_select = "<select name=\"outfit_gloves\"><option value=\"\">None</option>"
for(var/path in gloves)
gloves_select += "<option value=\"[path]\">[path]</option>"
gloves_select += "</select>"
var/shoes_select = "<select name=\"outfit_shoes\"><option value=\"\">None</option>"
for(var/path in shoes)
shoes_select += "<option value=\"[path]\">[path]</option>"
shoes_select += "</select>"
var/head_select = "<select name=\"outfit_head\"><option value=\"\">None</option>"
for(var/path in headwear)
head_select += "<option value=\"[path]\">[path]</option>"
head_select += "</select>"
var/glasses_select = "<select name=\"outfit_glasses\"><option value=\"\">None</option>"
for(var/path in glasses)
glasses_select += "<option value=\"[path]\">[path]</option>"
glasses_select += "</select>"
var/mask_select = "<select name=\"outfit_mask\"><option value=\"\">None</option>"
for(var/path in masks)
mask_select += "<option value=\"[path]\">[path]</option>"
mask_select += "</select>"
var/id_select = "<select name=\"outfit_id\"><option value=\"\">None</option>"
for(var/path in ids)
id_select += "<option value=\"[path]\">[path]</option>"
id_select += "</select>"
var/dat = {"
<html><head><title>Create Outfit</title></head><body>
<form name="outfit" action="byond://?src=\ref[src]" method="get">
<input type="hidden" name="src" value="\ref[src]">
<input type="hidden" name="create_outfit" value="1">
<table>
<tr>
<th>Name:</th>
<td>
<input type="text" name="outfit_name" value="Custom Outfit">
</td>
</tr>
<tr>
<th>Uniform:</th>
<td>
[uniform_select]
</td>
</tr>
<tr>
<th>Suit:</th>
<td>
[suit_select]
</td>
</tr>
<tr>
<th>Back:</th>
<td>
<input type="text" name="outfit_back" value="">
</td>
</tr>
<tr>
<th>Belt:</th>
<td>
<input type="text" name="outfit_belt" value="">
</td>
</tr>
<tr>
<th>Gloves:</th>
<td>
[gloves_select]
</td>
</tr>
<tr>
<th>Shoes:</th>
<td>
[shoes_select]
</td>
</tr>
<tr>
<th>Head:</th>
<td>
[head_select]
</td>
</tr>
<tr>
<th>Mask:</th>
<td>
[mask_select]
</td>
</tr>
<tr>
<th>Ears:</th>
<td>
<input type="text" name="outfit_ears" value="">
</td>
</tr>
<tr>
<th>Glasses:</th>
<td>
[glasses_select]
</td>
</tr>
<tr>
<th>ID:</th>
<td>
[id_select]
</td>
</tr>
<tr>
<th>Left Pocket:</th>
<td>
<input type="text" name="outfit_l_pocket" value="">
</td>
</tr>
<tr>
<th>Right Pocket:</th>
<td>
<input type="text" name="outfit_r_pocket" value="">
</td>
</tr>
<tr>
<th>Suit Store:</th>
<td>
<input type="text" name="outfit_s_store" value="">
</td>
</tr>
<tr>
<th>Right Hand:</th>
<td>
<input type="text" name="outfit_r_hand" value="">
</td>
</tr>
<tr>
<th>Left Hand:</th>
<td>
<input type="text" name="outfit_l_hand" value="">
</td>
</tr>
</table>
<br>
<input type="submit" value="Save">
</form></body></html>
"}
usr << browse(dat, "window=dressup;size=550x600")
+172
View File
@@ -0,0 +1,172 @@
/datum/outfit/ert
name = "ERT Common"
uniform = /obj/item/clothing/under/rank/centcom_officer
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/device/radio/headset/headset_cent/alt
/datum/outfit/ert/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
var/obj/item/device/radio/R = H.ears
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
var/obj/item/weapon/card/id/W = H.wear_id
W.registered_name = H.real_name
W.update_label(W.registered_name, W.assignment)
/datum/outfit/ert/commander
name = "ERT Commander"
id = /obj/item/weapon/card/id/ert
suit = /obj/item/clothing/suit/space/hardsuit/ert
glasses = /obj/item/clothing/glasses/thermal/eyepatch
back = /obj/item/weapon/storage/backpack/captain
belt = /obj/item/weapon/storage/belt/security/full
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1)
l_pocket = /obj/item/weapon/switchblade
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/device/radio/R = H.ears
R.keyslot = new /obj/item/device/encryptionkey/heads/captain
R.recalculateChannels()
/datum/outfit/ert/commander/alert
name = "ERT Commander - High Alert"
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1)
l_pocket = /obj/item/weapon/melee/energy/sword/saber
/datum/outfit/ert/security
name = "ERT Security"
id = /obj/item/weapon/card/id/ert/Security
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
back = /obj/item/weapon/storage/backpack/security
belt = /obj/item/weapon/storage/belt/security/full
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/storage/box/handcuffs=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/weapon/gun/energy/gun/advtaser=1)
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/device/radio/R = H.ears
R.keyslot = new /obj/item/device/encryptionkey/heads/hos
R.recalculateChannels()
/datum/outfit/ert/security/alert
name = "ERT Security - High Alert"
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/storage/box/handcuffs=1,\
/obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/weapon/gun/energy/pulse/carbine/loyalpin=1)
/datum/outfit/ert/medic
name = "ERT Medic"
id = /obj/item/weapon/card/id/ert/Medical
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
glasses = /obj/item/clothing/glasses/hud/health
back = /obj/item/weapon/storage/backpack/medic
belt = /obj/item/weapon/storage/belt/medical
r_hand = /obj/item/weapon/storage/firstaid/regular
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/reagent_containers/hypospray/combat=1)
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/device/radio/R = H.ears
R.keyslot = new /obj/item/device/encryptionkey/heads/cmo
R.recalculateChannels()
/datum/outfit/ert/medic/alert
name = "ERT Medic - High Alert"
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\
/obj/item/weapon/reagent_containers/hypospray/combat/nanites=1)
/datum/outfit/ert/engineer
name = "ERT Engineer"
id = /obj/item/weapon/card/id/ert/Engineer
suit = /obj/item/clothing/suit/space/hardsuit/ert/engi
glasses = /obj/item/clothing/glasses/meson/engine
back = /obj/item/weapon/storage/backpack/industrial
belt = /obj/item/weapon/storage/belt/utility/full
l_pocket = /obj/item/weapon/rcd_ammo/large
r_hand = /obj/item/weapon/storage/firstaid/regular
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/rcd/loaded=1)
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/device/radio/R = H.ears
R.keyslot = new /obj/item/device/encryptionkey/heads/ce
R.recalculateChannels()
/datum/outfit/ert/engineer/alert
name = "ERT Engineer - High Alert"
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\
/obj/item/weapon/rcd/combat=1)
/datum/outfit/centcom_official
name = "Centcom Official"
uniform = /obj/item/clothing/under/rank/centcom_officer
shoes = /obj/item/clothing/shoes/sneakers/black
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/device/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/sunglasses
belt = /obj/item/weapon/gun/energy/gun
l_pocket = /obj/item/weapon/pen
back = /obj/item/weapon/storage/backpack/satchel_norm
r_pocket = /obj/item/device/pda/heads
l_hand = /obj/item/weapon/clipboard
id = /obj/item/weapon/card/id
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H)
var/obj/item/device/pda/heads/pda = H.r_store
pda.owner = H.real_name
pda.ownjob = "Centcom Official"
pda.update_label()
var/obj/item/weapon/card/id/W = H.wear_id
W.icon_state = "centcom"
W.access = get_centcom_access("Centcom Official")
W.access += access_weapons
W.assignment = "Centcom Official"
W.registered_name = H.real_name
W.update_label()
+365
View File
@@ -0,0 +1,365 @@
/datum/outfit/space
name = "Standard Space Gear"
uniform = /obj/item/clothing/under/color/grey
shoes = /obj/item/clothing/shoes/sneakers/black
suit = /obj/item/clothing/suit/space
head = /obj/item/clothing/head/helmet/space
back = /obj/item/weapon/tank/jetpack/oxygen
mask = /obj/item/clothing/mask/breath
/datum/outfit/space/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/tank/jetpack/J = H.back
J.toggle()
J.Topic(null, list("stat" = 1))
/datum/outfit/tournament
/datum/outfit/tournament/
name = "tournament standard red"
uniform = /obj/item/clothing/under/color/red
shoes = /obj/item/clothing/shoes/sneakers/black
suit = /obj/item/clothing/suit/armor/vest
head = /obj/item/clothing/head/helmet/thunderdome
r_hand = /obj/item/weapon/gun/energy/pulse/destroyer
l_hand = /obj/item/weapon/kitchen/knife
r_pocket = /obj/item/weapon/grenade/smokebomb
/datum/outfit/tournament/red
name = "tournament standard green"
uniform = /obj/item/clothing/under/color/green
/datum/outfit/tournament/gangster
name = "tournament gangster"
uniform = /obj/item/clothing/under/rank/det
suit = /obj/item/clothing/suit/det_suit
glasses = /obj/item/clothing/glasses/thermal/monocle
head = /obj/item/clothing/head/det_hat
r_hand = /obj/item/weapon/gun/projectile
l_hand = null
r_pocket = /obj/item/ammo_box/c10mm
/datum/outfit/tournament/janitor
name = "tournament janitor"
uniform = /obj/item/clothing/under/rank/janitor
back = /obj/item/weapon/storage/backpack
suit = null
head = null
r_hand = /obj/item/weapon/mop
l_hand = /obj/item/weapon/reagent_containers/glass/bucket
r_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
l_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
backpack_contents = list(/obj/item/stack/tile/plasteel=6)
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.l_hand
bucket.reagents.add_reagent("water",70)
/datum/outfit/laser_tag
name = "Laser Tag Red"
uniform = /obj/item/clothing/under/color/red
shoes = /obj/item/clothing/shoes/sneakers/red
head = /obj/item/clothing/head/helmet/redtaghelm
gloves = /obj/item/clothing/gloves/color/red
ears = /obj/item/device/radio/headset
suit = /obj/item/clothing/suit/redtag
back = /obj/item/weapon/storage/backpack
suit_store = /obj/item/weapon/gun/energy/laser/redtag
backpack_contents = list(/obj/item/weapon/storage/box=1)
/datum/outfit/laser_tag/blue
name = "Laser Tag Blue"
uniform = /obj/item/clothing/under/color/blue
shoes = /obj/item/clothing/shoes/sneakers/blue
head = /obj/item/clothing/head/helmet/bluetaghelm
gloves = /obj/item/clothing/gloves/color/blue
suit = /obj/item/clothing/suit/bluetag
suit_store = /obj/item/weapon/gun/energy/laser/bluetag
/datum/outfit/pirate
name = "Pirate"
uniform = /obj/item/clothing/under/pirate
shoes = /obj/item/clothing/shoes/sneakers/brown
head = /obj/item/clothing/head/bandana
glasses = /obj/item/clothing/glasses/eyepatch
r_hand = /obj/item/weapon/melee/energy/sword/pirate
/datum/outfit/pirate/space
name = "Space Pirate"
suit = /obj/item/clothing/suit/space/pirate
head = /obj/item/clothing/head/helmet/space/pirate
/datum/outfit/tunnel_clown
name = "Tunnel Clown"
uniform = /obj/item/clothing/under/rank/clown
shoes = /obj/item/clothing/shoes/clown_shoes
gloves = /obj/item/clothing/gloves/color/black
mask = /obj/item/clothing/mask/gas/clown_hat
ears = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/thermal/monocle
suit = /obj/item/clothing/suit/hooded/chaplain_hoodie
l_pocket = /obj/item/weapon/reagent_containers/food/snacks/grown/banana
r_pocket = /obj/item/weapon/bikehorn
id = /obj/item/weapon/card/id
r_hand = /obj/item/weapon/twohanded/fireaxe
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/W = H.wear_id
W.access = get_all_accesses()
W.assignment = "Tunnel Clown!"
W.registered_name = H.real_name
W.update_label(H.real_name)
/datum/outfit/psycho
name = "Masked Killer"
uniform = /obj/item/clothing/under/overalls
shoes = /obj/item/clothing/shoes/sneakers/white
gloves = /obj/item/clothing/gloves/color/latex
mask = /obj/item/clothing/mask/surgical
head = /obj/item/clothing/head/welding
ears = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/thermal/monocle
suit = /obj/item/clothing/suit/apron
l_pocket = /obj/item/weapon/kitchen/knife
r_pocket = /obj/item/weapon/scalpel
r_hand = /obj/item/weapon/twohanded/fireaxe
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
for(var/obj/item/carried_item in H.contents)
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
carried_item.add_blood(H)//Oh yes, there will be blood...
H.regenerate_icons()
/datum/outfit/assassin
name = "Assassin"
uniform = /obj/item/clothing/under/suit_jacket
shoes = /obj/item/clothing/shoes/sneakers/black
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/sunglasses
l_pocket = /obj/item/weapon/melee/energy/sword/saber
l_hand = /obj/item/weapon/storage/secure/briefcase
id = /obj/item/weapon/card/id/syndicate
belt = /obj/item/device/pda/heads
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H)
var/obj/item/clothing/under/U = H.w_uniform
U.attachTie(new /obj/item/clothing/tie/waistcoat(H))
//Could use a type
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.l_hand
for(var/obj/item/briefcase_item in sec_briefcase)
qdel(briefcase_item)
for(var/i=3, i>0, i--)
sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1)
sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/c4,1)
var/obj/item/device/pda/heads/pda = H.belt
pda.owner = H.real_name
pda.ownjob = "Reaper"
pda.update_label()
var/obj/item/weapon/card/id/syndicate/W = H.wear_id
W.access = get_all_accesses()
W.assignment = "Reaper"
W.registered_name = H.real_name
W.update_label(H.real_name)
/datum/outfit/centcom_commander
name = "Centcom Commander"
uniform = /obj/item/clothing/under/rank/centcom_commander
suit = /obj/item/clothing/suit/armor/bulletproof
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/device/radio/headset/headset_cent/commander
glasses = /obj/item/clothing/glasses/eyepatch
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
head = /obj/item/clothing/head/centhat
belt = /obj/item/weapon/gun/projectile/revolver/mateba
r_pocket = /obj/item/weapon/lighter
l_pocket = /obj/item/ammo_box/a357
back = /obj/item/weapon/storage/backpack/satchel
id = /obj/item/weapon/card/id
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/W = H.wear_id
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Centcom Commander")
W.assignment = "Centcom Commander"
W.registered_name = H.real_name
W.update_label()
/datum/outfit/spec_ops
name = "Special Ops Officer"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/space/officer
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
glasses = /obj/item/clothing/glasses/thermal/eyepatch
ears = /obj/item/device/radio/headset/headset_cent/commander
mask = /obj/item/clothing/mask/cigarette/cigar/havana
head = /obj/item/clothing/head/helmet/space/beret
belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911
r_pocket = /obj/item/weapon/lighter
back = /obj/item/weapon/storage/backpack/satchel
id = /obj/item/weapon/card/id
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/W = H.wear_id
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Special Ops Officer")
W.assignment = "Special Ops Officer"
W.registered_name = H.real_name
W.update_label()
var/obj/item/device/radio/headset/R = H.ears
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
/datum/outfit/wizard
name = "Blue Wizard"
uniform = /obj/item/clothing/under/color/lightpurple
suit = /obj/item/clothing/suit/wizrobe
shoes = /obj/item/clothing/shoes/sandal
ears = /obj/item/device/radio/headset
head = /obj/item/clothing/head/wizard
r_pocket = /obj/item/weapon/teleportation_scroll
r_hand = /obj/item/weapon/spellbook
l_hand = /obj/item/weapon/staff
back = /obj/item/weapon/storage/backpack
backpack_contents = list(/obj/item/weapon/storage/box=1)
/datum/outfit/wizard/red
name = "Red Wizard"
suit = /obj/item/clothing/suit/wizrobe/red
head = /obj/item/clothing/head/wizard/red
/datum/outfit/wizard/weeb
name = "Marisa Wizard"
suit = /obj/item/clothing/suit/wizrobe/marisa
shoes = /obj/item/clothing/shoes/sandal/marisa
head = /obj/item/clothing/head/wizard/marisa
/datum/outfit/soviet
name = "Soviet Admiral"
uniform = /obj/item/clothing/under/soviet
head = /obj/item/clothing/head/hgpiratecap
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/device/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/thermal/eyepatch
suit = /obj/item/clothing/suit/hgpirate
back = /obj/item/weapon/storage/backpack/satchel
belt = /obj/item/weapon/gun/projectile/revolver/mateba
id = /obj/item/weapon/card/id
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/W = H.wear_id
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_centcom_access("Admiral")
W.assignment = "Admiral"
W.registered_name = H.real_name
W.update_label()
/datum/outfit/mobster
name = "Mobster"
uniform = /obj/item/clothing/under/suit_jacket/really_black
head = /obj/item/clothing/head/fedora
shoes = /obj/item/clothing/shoes/laceup
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/sunglasses
r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun
id = /obj/item/weapon/card/id
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/W = H.wear_id
W.assignment = "Assistant"
W.registered_name = H.real_name
W.update_label()
/datum/outfit/plasmaman
name = "Plasmaman"
head = /obj/item/clothing/head/helmet/space/hardsuit/plasmaman
suit = /obj/item/clothing/suit/space/eva/plasmaman
back = /obj/item/weapon/tank/internals/plasmaman/full
mask = /obj/item/clothing/mask/breath
/datum/outfit/death_commando
name = "Death Commando"
uniform = /obj/item/clothing/under/color/green
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
mask = /obj/item/clothing/mask/gas/sechailer/swat
glasses = /obj/item/clothing/glasses/hud/toggle/thermal
back = /obj/item/weapon/storage/backpack/security
l_pocket = /obj/item/weapon/melee/energy/sword/saber
r_pocket = /obj/item/weapon/shield/energy
suit_store = /obj/item/weapon/tank/internals/emergency_oxygen
belt = /obj/item/weapon/gun/projectile/revolver/mateba
r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin
id = /obj/item/weapon/card/id
ears = /obj/item/device/radio/headset/headset_cent/alt
backpack_contents = list(/obj/item/weapon/storage/box=1,\
/obj/item/ammo_box/a357=1,\
/obj/item/weapon/storage/firstaid/regular=1,\
/obj/item/weapon/storage/box/flashbangs=1,\
/obj/item/device/flashlight=1,\
/obj/item/weapon/c4=1)
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H)
var/obj/item/device/radio/R = H.ears
R.set_frequency(CENTCOM_FREQ)
R.freqlock = 1
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)//Here you go Deuryn
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
var/obj/item/weapon/card/id/W = H.wear_id
W.icon_state = "centcom"
W.access = get_all_accesses()//They get full station access.
W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access.
W.assignment = "Death Commando"
W.registered_name = H.real_name
W.update_label(W.registered_name, W.assignment)
/datum/outfit/death_commando/officer
name = "Death Commando Officer"
head = /obj/item/clothing/head/helmet/space/beret
+1 -1
View File
@@ -37,7 +37,7 @@
user << "<span class='notice'>You cannot retrieve any bananium from the prototype shoes.</span>"
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attackby(obj/item/O, mob/user, params)
if(!bananium.can_insert(O))
if(!bananium.get_item_material_amount(O))
user << "<span class='notice'>This item has no bananium!</span>"
return
if(!user.unEquip(O))
@@ -471,4 +471,18 @@
else
burn()
return shredded
return shredded
/mob/living/carbon/human/proc/equipOutfit(outfit)
var/datum/outfit/O = null
if(ispath(outfit))
O = new outfit
else
O = outfit
if(!istype(O))
return 0
if(!O)
return 0
return O.equip(src)
+1
View File
@@ -40,6 +40,7 @@ other types of metals and chemistry for reagents).
var/construction_time //Amount of time required for building the object
var/build_path = "" //The file path of the object that gets created
var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything
var/reagents
//A proc to calculate the reliability of a design based on tech levels and innate modifiers.
@@ -172,7 +172,7 @@
build_path = /obj/item/weapon/circuitboard/chem_heater
category = list ("Medical Machinery")
/datum/design/clonecontrol
/datum/design/clonecontrol
name = "Computer Design (Cloning Machine Console)"
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
id = "clonecontrol"
+2 -2
View File
@@ -456,8 +456,8 @@
visible_message("<span class='warning'>[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!</span>")
new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src))))
if(linked_console.linked_lathe)
linked_console.linked_lathe.m_amount += min((linked_console.linked_lathe.max_material_storage - linked_console.linked_lathe.TotalMaterials()), (exp_on.materials[MAT_METAL]))
linked_console.linked_lathe.g_amount += min((linked_console.linked_lathe.max_material_storage - linked_console.linked_lathe.TotalMaterials()), (exp_on.materials[MAT_GLASS]))
for(var/material in exp_on.materials)
linked_console.linked_lathe.materials.insert_amount( min((linked_console.linked_lathe.materials.max_amount - linked_console.linked_lathe.materials.total_amount), (exp_on.materials[material])), material)
if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("<span class='danger'>[src]'s crusher goes way too many levels too high, crushing right through space-time!</span>")
playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3)
+24 -99
View File
@@ -13,16 +13,7 @@ Note: Must be placed west/left of and R&D console to function.
icon_state = "protolathe"
flags = OPENCONTAINER
var/max_material_storage = 100000 //All this could probably be done better with a list but meh.
var/m_amount = 0.0
var/g_amount = 0.0
var/gold_amount = 0.0
var/silver_amount = 0.0
var/plasma_amount = 0.0
var/uranium_amount = 0.0
var/diamond_amount = 0.0
var/clown_amount = 0.0
var/adamantine_amount = 0.0
var/datum/material_container/materials
var/efficiency_coeff
var/list/categories = list(
@@ -51,12 +42,14 @@ Note: Must be placed west/left of and R&D console to function.
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
materials = new(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1))
RefreshParts()
reagents.my_atom = src
/obj/machinery/r_n_d/protolathe/proc/TotalMaterials() //returns the total of all the stored materials. Makes code neater.
return m_amount + g_amount + gold_amount + silver_amount + plasma_amount + uranium_amount + diamond_amount + clown_amount
/obj/machinery/r_n_d/protolathe/Destroy()
qdel(materials)
return ..()
/obj/machinery/r_n_d/protolathe/RefreshParts()
var/T = 0
@@ -64,33 +57,16 @@ Note: Must be placed west/left of and R&D console to function.
G.reagents.trans_to(src, G.reagents.total_volume)
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
T += M.rating
max_material_storage = T * 75000
materials.max_amount = T * 75000
T = 0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
T += (M.rating/3)
efficiency_coeff = max(T, 1)
/obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material
var/A = 0
switch(M)
if(MAT_METAL)
A = m_amount
if(MAT_GLASS)
A = g_amount
if(MAT_GOLD)
A = gold_amount
if(MAT_SILVER)
A = silver_amount
if(MAT_PLASMA)
A = plasma_amount
if(MAT_URANIUM)
A = uranium_amount
if(MAT_DIAMOND)
A = diamond_amount
if(MAT_BANANIUM)
A = clown_amount
else
A = reagents.get_reagent_amount(M)
var/A = materials.amount(M)
if(!A)
A = reagents.get_reagent_amount(M)
A = A / max(1, (being_built.materials[M]/efficiency_coeff))
return A
@@ -110,33 +86,7 @@ Note: Must be placed west/left of and R&D console to function.
if(istype(O, /obj/item/weapon/crowbar))
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
reagents.trans_to(G, G.reagents.maximum_volume)
if(m_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
G.amount = round(m_amount / G.perunit)
if(g_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / G.perunit)
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/plasma/G = new /obj/item/stack/sheet/mineral/plasma(src.loc)
G.amount = round(plasma_amount / G.perunit)
if(silver_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/silver/G = new /obj/item/stack/sheet/mineral/silver(src.loc)
G.amount = round(silver_amount / G.perunit)
if(gold_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/gold/G = new /obj/item/stack/sheet/mineral/gold(src.loc)
G.amount = round(gold_amount / G.perunit)
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/uranium/G = new /obj/item/stack/sheet/mineral/uranium(src.loc)
G.amount = round(uranium_amount / G.perunit)
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc)
G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/bananium/G = new /obj/item/stack/sheet/mineral/bananium(src.loc)
G.amount = round(clown_amount / G.perunit)
if(adamantine_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/adamantine/G = new /obj/item/stack/sheet/mineral/adamantine(src.loc)
G.amount = round(adamantine_amount / G.perunit)
materials.retrieve_all()
default_deconstruction_crowbar(O)
return 1
else
@@ -152,52 +102,27 @@ Note: Must be placed west/left of and R&D console to function.
return 1
if (O.is_open_container())
return
if (!istype(O, /obj/item/stack/sheet) || istype(O, /obj/item/stack/sheet/mineral/wood))
user << "<span class='warning'>You cannot insert this item into the [src.name]!</span>"
return 1
if (stat)
return 1
if(istype(O,/obj/item/stack/sheet))
var/obj/item/stack/sheet/S = O
if (TotalMaterials() + S.perunit > max_material_storage)
if(!materials.has_space( materials.get_item_material_amount(O) ))
user << "<span class='warning'>The [src.name]'s material bin is full! Please remove material before adding more.</span>"
return 1
var/obj/item/stack/sheet/stack = O
var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
if(!stack || stack.amount <= 0 || amount <= 0 || !in_range(src, stack) || !user.Adjacent(src))
if(!in_range(src, stack) || !user.Adjacent(src))
return
if(amount > stack.amount)
amount = stack.amount
if(max_material_storage - TotalMaterials() < (amount*stack.perunit))//Can't overfill
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
busy = 1
use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount/10)))
user << "<span class='notice'>You add [amount] sheets to the [src.name].</span>"
if(istype(stack, /obj/item/stack/sheet/metal))
m_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/gold))
gold_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/silver))
silver_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/plasma))
plasma_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/uranium))
uranium_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/diamond))
diamond_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/bananium))
clown_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/adamantine))
adamantine_amount += amount * MINERAL_MATERIAL_AMOUNT
stack.use(amount)
var/amount_inserted = materials.insert_stack(O,amount)
if(!amount_inserted)
user << "<span class='warning'>You could not insert [O], it has no usable materials.</span>"
return 1
else
busy = 1
use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10)))
user << "<span class='notice'>You add [amount_inserted] sheets to the [src.name].</span>"
overlays += "protolathe_[stack.name]"
sleep(10)
overlays -= "protolathe_[stack.name]"
busy = 0
updateUsrDialog()
overlays += "protolathe_[stack.name]"
sleep(10)
overlays -= "protolathe_[stack.name]"
busy = 0
+75 -97
View File
@@ -276,8 +276,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else //Same design always gain quality
screen = 2.3 //Crit fail gives the same design a lot of reliability, like really a lot
if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.materials[MAT_METAL]*(linked_destroy.decon_mod/10)))
linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.materials[MAT_GLASS]*(linked_destroy.decon_mod/10)))
for(var/material in linked_destroy.loaded_item.materials)
linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material)
feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]")
linked_destroy.loaded_item = null
else
@@ -377,33 +377,17 @@ won't update every console in existence) but it's more of a hassle to do. Also,
flick("protolathe_n",linked_lathe)
use_power(power)
for(var/M in being_built.materials)
if(linked_lathe.check_mat(being_built, M) < amount)
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough materials to complete prototype.\"</span>")
enough_materials = 0
g2g = 0
break
var/list/efficient_mats = list()
for(var/MAT in being_built.materials)
efficient_mats[MAT] = being_built.materials[MAT] / coeff
if(!linked_lathe.materials.has_materials(efficient_mats, amount))
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough materials to complete prototype.\"</span>")
enough_materials = 0
g2g = 0
if(enough_materials)
for(var/M in being_built.materials)
switch(M)
if(MAT_METAL)
linked_lathe.m_amount = max(0, (linked_lathe.m_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_GLASS)
linked_lathe.g_amount = max(0, (linked_lathe.g_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_GOLD)
linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_SILVER)
linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_PLASMA)
linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_URANIUM)
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_DIAMOND)
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-(being_built.materials[M]/coeff * amount)))
if(MAT_BANANIUM)
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-(being_built.materials[M]/coeff * amount)))
else
linked_lathe.reagents.remove_reagent(M, being_built.materials[M]/coeff * amount)
linked_lathe.materials.use_amount(efficient_mats, amount)
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
var/R = being_built.reliability
@@ -495,40 +479,26 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else if(href_list["lathe_ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material
var/desired_num_sheets = text2num(href_list["lathe_ejectsheet_amt"])
var/res_amount, type
var/MAT
switch(href_list["lathe_ejectsheet"])
if("metal")
type = /obj/item/stack/sheet/metal
res_amount = "m_amount"
MAT = MAT_METAL
if("glass")
type = /obj/item/stack/sheet/glass
res_amount = "g_amount"
MAT = MAT_GLASS
if("gold")
type = /obj/item/stack/sheet/mineral/gold
res_amount = "gold_amount"
MAT = MAT_GOLD
if("silver")
type = /obj/item/stack/sheet/mineral/silver
res_amount = "silver_amount"
MAT = MAT_SILVER
if("plasma")
type = /obj/item/stack/sheet/mineral/plasma
res_amount = "plasma_amount"
MAT = MAT_PLASMA
if("uranium")
type = /obj/item/stack/sheet/mineral/uranium
res_amount = "uranium_amount"
MAT = MAT_URANIUM
if("diamond")
type = /obj/item/stack/sheet/mineral/diamond
res_amount = "diamond_amount"
MAT = MAT_DIAMOND
if("clown")
type = /obj/item/stack/sheet/mineral/bananium
res_amount = "clown_amount"
if(ispath(type) && hasvar(linked_lathe, res_amount))
var/obj/item/stack/sheet/sheet = new type(linked_lathe.loc)
var/available_num_sheets = round(linked_lathe.vars[res_amount]/sheet.perunit)
if(available_num_sheets>0)
sheet.amount = min(available_num_sheets, desired_num_sheets)
linked_lathe.vars[res_amount] = max(0, (linked_lathe.vars[res_amount]-sheet.amount * sheet.perunit))
else
qdel(sheet)
MAT = MAT_BANANIUM
linked_lathe.materials.retrieve_sheets(desired_num_sheets, MAT)
else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material
var/desired_num_sheets = text2num(href_list["imprinter_ejectsheet_amt"])
var/res_amount, type
@@ -816,7 +786,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "<A href='?src=\ref[src];menu=3.2'>Material Storage</A>"
dat += "<A href='?src=\ref[src];menu=3.3'>Chemical Storage</A><div class='statusDisplay'>"
dat += "<h3>Protolathe Menu:</h3><BR>"
dat += "<B>Material Amount:</B> [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]<BR>"
dat += "<B>Material Amount:</B> [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]<BR>"
dat += "<B>Chemical Volume:</B> [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]<BR>"
dat += "<form name='search' action='?src=\ref[src]'>\
@@ -834,7 +804,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
dat += "<A href='?src=\ref[src];menu=3.1'>Protolathe Menu</A>"
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><BR>"
dat += "<B>Material Amount:</B> [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]<BR>"
dat += "<B>Material Amount:</B> [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]<BR>"
dat += "<B>Chemical Volume:</B> [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]<HR>"
var/coeff = linked_lathe.efficiency_coeff
@@ -869,7 +839,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
dat += "<A href='?src=\ref[src];menu=3.1'>Protolathe Menu</A>"
dat += "<div class='statusDisplay'><h3>Search results:</h3><BR>"
dat += "<B>Material Amount:</B> [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]<BR>"
dat += "<B>Material Amount:</B> [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]<BR>"
dat += "<B>Chemical Volume:</B> [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]<HR>"
var/coeff = linked_lathe.efficiency_coeff
@@ -903,52 +873,60 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "<A href='?src=\ref[src];menu=3.1'>Protolathe Menu</A><div class='statusDisplay'>"
dat += "<h3>Material Storage:</h3><BR><HR>"
//Metal
dat += "* [linked_lathe.m_amount] of Metal: "
if(linked_lathe.m_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.m_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.m_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=50'>All</A>"
var/m_amount = linked_lathe.materials.amount(MAT_METAL)
dat += "* [m_amount] of Metal: "
if(m_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=1'>Eject</A> "
if(m_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=5'>5x</A> "
if(m_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Glass
dat += "* [linked_lathe.g_amount] of Glass: "
if(linked_lathe.g_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.g_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.g_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=50'>All</A>"
var/g_amount = linked_lathe.materials.amount(MAT_GLASS)
dat += "* [g_amount] of Glass: "
if(g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=1'>Eject</A> "
if(g_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=5'>5x</A> "
if(g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Gold
dat += "* [linked_lathe.gold_amount] of Gold: "
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.gold_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>All</A>"
var/gold_amount = linked_lathe.materials.amount(MAT_GOLD)
dat += "* [gold_amount] of Gold: "
if(gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>Eject</A> "
if(gold_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>5x</A> "
if(gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Silver
dat += "* [linked_lathe.silver_amount] of Silver: "
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.silver_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>All</A>"
var/silver_amount = linked_lathe.materials.amount(MAT_SILVER)
dat += "* [silver_amount] of Silver: "
if(silver_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>Eject</A> "
if(silver_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>5x</A> "
if(silver_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Plasma
dat += "* [linked_lathe.plasma_amount] of Solid Plasma: "
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.plasma_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>All</A>"
var/plasma_amount = linked_lathe.materials.amount(MAT_PLASMA)
dat += "* [plasma_amount] of Solid Plasma: "
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>Eject</A> "
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>5x</A> "
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Uranium
dat += "* [linked_lathe.uranium_amount] of Uranium: "
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.uranium_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>All</A>"
var/uranium_amount = linked_lathe.materials.amount(MAT_URANIUM)
dat += "* [uranium_amount] of Uranium: "
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>Eject</A> "
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>5x</A> "
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_lathe.diamond_amount] of Diamond: "
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>All</A>"
var/diamond_amount = linked_lathe.materials.amount(MAT_DIAMOND)
dat += "* [diamond_amount] of Diamond: "
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>Eject</A> "
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>5x</A> "
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Bananium
dat += "* [linked_lathe.clown_amount] of Bananium: "
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>Eject</A> "
if(linked_lathe.clown_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>5x</A> "
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>All</A>"
var/bananium_amount = linked_lathe.materials.amount(MAT_BANANIUM)
dat += "* [bananium_amount] of Bananium: "
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>Eject</A> "
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>5x</A> "
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>All</A>"
dat += "</div>"
if(3.3)
@@ -1048,21 +1026,21 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "<h3>Material Storage:</h3><BR><HR>"
//Glass
dat += "* [linked_imprinter.g_amount] glass: "
if(linked_imprinter.g_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.g_amount >= 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.g_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=50'>All</A>"
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Gold
dat += "* [linked_imprinter.gold_amount] gold: "
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.gold_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>All</A>"
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>All</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_imprinter.diamond_amount] diamond: "
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>All</A>"
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>Eject</A> "
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>5x</A> "
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>All</A>"
dat += "</div>"
var/datum/browser/popup = new(user, "rndconsole", name, 460, 550)
+3
View File
@@ -169,6 +169,7 @@
#include "code\datums\mind.dm"
#include "code\datums\modules.dm"
#include "code\datums\mutations.dm"
#include "code\datums\outfit.dm"
#include "code\datums\recipe.dm"
#include "code\datums\spell.dm"
#include "code\datums\supplypacks.dm"
@@ -920,6 +921,8 @@
#include "code\modules\clothing\masks\gasmask.dm"
#include "code\modules\clothing\masks\hailer.dm"
#include "code\modules\clothing\masks\miscellaneous.dm"
#include "code\modules\clothing\outfits\ert.dm"
#include "code\modules\clothing\outfits\standard.dm"
#include "code\modules\clothing\shoes\bananashoes.dm"
#include "code\modules\clothing\shoes\colour.dm"
#include "code\modules\clothing\shoes\magboots.dm"