Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master' into syntheticbloods
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
name = "Strained Muscles"
|
||||
desc = "We evolve the ability to reduce the acid buildup in our muscles, allowing us to move much faster."
|
||||
helptext = "The strain will make us tired, and we will rapidly become fatigued. Standard weight restrictions, like hardsuits, still apply. Cannot be used in lesser form."
|
||||
chemical_cost = 0
|
||||
chemical_cost = 15
|
||||
dna_cost = 1
|
||||
req_human = 1
|
||||
var/stacks = 0 //Increments every 5 seconds; damage increases over time
|
||||
@@ -15,13 +15,16 @@
|
||||
action_background_icon_state = "bg_ling"
|
||||
|
||||
/obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user)
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
active = !active
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>Our muscles tense and strengthen.</span>")
|
||||
changeling.chem_recharge_slowdown += 0.5
|
||||
else
|
||||
REMOVE_TRAIT(user, TRAIT_GOTTAGOFAST, "changeling_muscles")
|
||||
to_chat(user, "<span class='notice'>Our muscles relax.</span>")
|
||||
if(stacks >= 10)
|
||||
changeling.chem_recharge_slowdown -= 0.5
|
||||
if(stacks >= 20)
|
||||
to_chat(user, "<span class='danger'>We collapse in exhaustion.</span>")
|
||||
user.Knockdown(60)
|
||||
user.emote("gasp")
|
||||
@@ -42,9 +45,9 @@
|
||||
|
||||
stacks++
|
||||
//user.take_bodypart_damage(stacks * 0.03, 0)
|
||||
user.staminaloss += stacks * 1.3 //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack
|
||||
user.adjustStaminaLoss(stacks*1.3) //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack
|
||||
|
||||
if(stacks == 11) //Warning message that the stacks are getting too high
|
||||
if(stacks == 10) //Warning message that the stacks are getting too high
|
||||
to_chat(user, "<span class='warning'>Our legs are really starting to hurt...</span>")
|
||||
|
||||
sleep(40)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/datum/antagonist/greybois
|
||||
name = "Emergency Assistant"
|
||||
show_name_in_check_antagonists = TRUE
|
||||
show_in_antagpanel = FALSE
|
||||
var/mission = "Assist the station."
|
||||
var/datum/outfit/outfit = /datum/outfit/ert/greybois
|
||||
|
||||
/datum/antagonist/greybois/greygod
|
||||
outfit = /datum/outfit/ert/greybois/greygod
|
||||
|
||||
/datum/antagonist/greybois/greet()
|
||||
to_chat(owner, "<B><font size=3 color=red>You are an Emergency Assistant.</font></B>")
|
||||
to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission]")
|
||||
|
||||
/datum/antagonist/greybois/on_gain()
|
||||
equipERT()
|
||||
. = ..()
|
||||
|
||||
/datum/antagonist/greybois/proc/equipERT()
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
if(!istype(H))
|
||||
return
|
||||
H.equipOutfit(outfit)
|
||||
@@ -402,8 +402,12 @@
|
||||
var/breakout = 0
|
||||
while(breakout < 50)
|
||||
if(!T)
|
||||
break
|
||||
end_effect(user)
|
||||
return
|
||||
var/turf/potential_T = find_safe_turf()
|
||||
if(!potential_T)
|
||||
end_effect(user)
|
||||
return
|
||||
if(T.z != potential_T.z || abs(get_dist_euclidian(potential_T,T)) > 50 - breakout)
|
||||
do_teleport(user, potential_T, channel = TELEPORT_CHANNEL_MAGIC)
|
||||
user.canmove = 0
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
return FALSE
|
||||
return T.air_contents.gases[gas_type] >= moles_required
|
||||
|
||||
/datum/bounty/item/engineering/gas/nitryl_tank
|
||||
name = "Full Tank of Nitryl"
|
||||
description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started."
|
||||
gas_type = /datum/gas/nitryl
|
||||
//datum/bounty/item/engineering/gas/nitryl_tank
|
||||
// name = "Full Tank of Nitryl"
|
||||
// description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started."
|
||||
// gas_type = /datum/gas/nitryl
|
||||
|
||||
/datum/bounty/item/engineering/gas/tritium_tank
|
||||
name = "Full Tank of Tritium"
|
||||
@@ -37,6 +37,55 @@
|
||||
required_count = 10 //easy to make
|
||||
wanted_types = list(/obj/machinery/portable_atmospherics/canister)
|
||||
|
||||
/datum/bounty/item/engineering/microwave
|
||||
name = "Microwaves"
|
||||
description = "Due to a shortage of microwaves, our chefs are incapable of keeping up with our sheer volume of orders. We need at least three microwaves to keep up with our crew's dietary habits."
|
||||
reward = 2000
|
||||
required_count = 3
|
||||
wanted_types = list(/obj/machinery/microwave)
|
||||
|
||||
/datum/bounty/item/engineering/hydroponicstrays
|
||||
name = "Hydroponics Tray"
|
||||
description = "The garden has become a hot spot of late, they need a few more hydroponics tray to grow more flowers."
|
||||
reward = 2500
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/machinery/hydroponics)
|
||||
|
||||
/datum/bounty/item/engineering/rcd
|
||||
name = "Spare RCD"
|
||||
description = "Construction and repairs to are shuttles are going slowly. As it turns out, we're a little short on RCDs, can you send us a few?"
|
||||
reward = 2500
|
||||
required_count = 3
|
||||
wanted_types = list(/obj/item/construction/rcd)
|
||||
|
||||
/datum/bounty/item/engineering/rpd
|
||||
name = "Spare RPD"
|
||||
description = "Our Atmospheric Technicians are still living in the past, relying on stationary pipe dispensers to produce the pipes necessary to accomplish their strenuous tasks. They could use an upgrade. Could you send us some Rapid Pipe Dispensers?"
|
||||
reward = 3000
|
||||
required_count = 3
|
||||
wanted_types = list(/obj/item/pipe_dispenser)
|
||||
|
||||
/datum/bounty/item/engineering/heaters
|
||||
name = "Space Heaters"
|
||||
description = "The kitchen freezer was left open and now the whole place is frozen solid! We need a few space heaters to warm it back up before anyone gets hungry."
|
||||
reward = 3000
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/machinery/space_heater)
|
||||
|
||||
/datum/bounty/item/engineering/arcadetrail
|
||||
name = "Orion Trail Arcade Games"
|
||||
description = "The staff have nothing to do when off-work. Can you send us some Orion Trail games to play?"
|
||||
reward = 3000
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/machinery/computer/arcade/orion_trail)
|
||||
|
||||
/datum/bounty/item/engineering/arcadebattle
|
||||
name = "Battle Arcade Games"
|
||||
description = "The staff have nothing to do when off-work. Can you send us some Battle Arcade games to play?"
|
||||
reward = 3000
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/machinery/computer/arcade/battle)
|
||||
|
||||
/datum/bounty/item/engineering/energy_ball
|
||||
name = "Contained Tesla Ball"
|
||||
description = "Station 24 is being overrun by hordes of angry Mothpeople. They are requesting the ultimate bug zapper."
|
||||
|
||||
@@ -630,3 +630,27 @@
|
||||
/obj/item/stamp/chameleon/broken/Initialize()
|
||||
. = ..()
|
||||
chameleon_action.emp_randomise(INFINITY)
|
||||
|
||||
/obj/item/clothing/neck/cloak/chameleon
|
||||
name = "black tie"
|
||||
desc = "A neosilk clip-on tie."
|
||||
icon_state = "blacktie"
|
||||
item_color = "blacktie"
|
||||
resistance_flags = NONE
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
|
||||
|
||||
/obj/item/clothing/neck/cloak/chameleon
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/neck/cloak/chameleon/Initialize()
|
||||
. = ..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/neck
|
||||
chameleon_action.chameleon_name = "Cloak"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/neck/cloak/chameleon/emp_act(severity)
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
@@ -74,4 +74,13 @@
|
||||
icon_state = "beaniestripedgreen"
|
||||
item_color = "beaniestripedgreen"
|
||||
|
||||
/obj/item/clothing/head/beanie/durathread
|
||||
name = "durathread beanie"
|
||||
desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer."
|
||||
icon_state = "beaniedurathread"
|
||||
item_color = null
|
||||
armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50)
|
||||
|
||||
|
||||
|
||||
//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet
|
||||
@@ -336,3 +336,11 @@
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/durathread
|
||||
name = "makeshift helmet"
|
||||
desc = "A hardhat with strips of leather and durathread for additional blunt protection."
|
||||
icon_state = "durathread"
|
||||
item_state = "durathread"
|
||||
armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50)
|
||||
|
||||
@@ -279,6 +279,13 @@
|
||||
desc = "This headwear shows off your Cargonian leadership"
|
||||
icon_state = "qmberet"
|
||||
|
||||
/obj/item/clothing/head/beret/durathread
|
||||
name = "durathread beret"
|
||||
desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer."
|
||||
icon_state = "beretdurathread"
|
||||
item_color = null
|
||||
armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50)
|
||||
|
||||
#undef DRILL_DEFAULT
|
||||
#undef DRILL_SHOUTING
|
||||
#undef DRILL_YELLING
|
||||
|
||||
@@ -313,3 +313,9 @@
|
||||
message = replacetextEx(message,regex(capitalize(key),"g"), "[capitalize(value)]")
|
||||
message = replacetextEx(message,regex(key,"g"), "[value]")
|
||||
speech_args[SPEECH_MESSAGE] = trim(message)
|
||||
|
||||
/obj/item/clothing/mask/bandana/durathread
|
||||
name = "durathread bandana"
|
||||
desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..."
|
||||
icon_state = "banddurathread"
|
||||
|
||||
|
||||
@@ -163,6 +163,34 @@
|
||||
/obj/item/gun/energy/pulse/pistol/loyalpin=1,\
|
||||
/obj/item/construction/rcd/combat=1)
|
||||
|
||||
/datum/outfit/ert/greybois
|
||||
name = "Emergency Assistant"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/grey/glorf
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
gloves = /obj/item/clothing/gloves/color/fyellow
|
||||
ears = /obj/item/radio/headset
|
||||
head = /obj/item/clothing/head/soft/grey
|
||||
belt = /obj/item/storage/belt/utility/full
|
||||
back = /obj/item/storage/backpack
|
||||
mask = /obj/item/clothing/mask/gas
|
||||
l_pocket = /obj/item/tank/internals/emergency_oxygen
|
||||
l_hand = /obj/item/storage/toolbox/emergency/old
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/ert/greybois/greygod
|
||||
suit = /obj/item/clothing/suit/hazardvest
|
||||
l_hand = /obj/item/storage/toolbox/plastitanium
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
|
||||
/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.registered_name = H.real_name
|
||||
W.assignment = "Assistant"
|
||||
W.access = list(ACCESS_MAINT_TUNNELS,ACCESS_CENT_GENERAL)
|
||||
W.update_label(W.registered_name, W.assignment)
|
||||
|
||||
/datum/outfit/centcom_official
|
||||
name = "CentCom Official"
|
||||
|
||||
@@ -238,3 +238,14 @@
|
||||
/obj/item/clothing/suit/armor/riot/knight/red
|
||||
icon_state = "knight_red"
|
||||
item_state = "knight_red"
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/durathread
|
||||
name = "makeshift vest"
|
||||
desc = "A vest made of durathread with strips of leather acting as trauma plates."
|
||||
icon_state = "durathread"
|
||||
item_state = "durathread"
|
||||
strip_delay = 60
|
||||
equip_delay_other = 40
|
||||
max_integrity = 200
|
||||
resistance_flags = FLAMMABLE
|
||||
armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50)
|
||||
|
||||
@@ -354,3 +354,28 @@
|
||||
item_color = "skull"
|
||||
above_suit = TRUE
|
||||
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25)
|
||||
|
||||
/////////////////////
|
||||
//Synda Accessories//
|
||||
/////////////////////
|
||||
|
||||
/obj/item/clothing/accessory/padding
|
||||
name = "soft padding"
|
||||
desc = "Some long sheets of padding to help soften the blows of a physical attacks."
|
||||
icon_state = "padding"
|
||||
item_color = "nothing"
|
||||
armor = list("melee" = 15, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -20, "acid" = 45)
|
||||
|
||||
/obj/item/clothing/accessory/kevlar
|
||||
name = "kevlar sheets"
|
||||
desc = "Long thin sheets of kevlar to help resist bullets and some physical attacks.."
|
||||
icon_state = "padding"
|
||||
item_color = "nothing"
|
||||
armor = list("melee" = 10, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 25)
|
||||
|
||||
/obj/item/clothing/accessory/plastics
|
||||
name = "underling plastic sheet"
|
||||
desc = "A full body sheet of white plastic to help defuse lasers and energy based weapons."
|
||||
icon_state = "plastics"
|
||||
item_color = "nothing"
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = -40)
|
||||
|
||||
@@ -718,3 +718,12 @@
|
||||
icon_state = "gear_harness"
|
||||
item_state = "gear_harness" //We dont use golem do to being a item, item without faces making it default to error suit sprites.
|
||||
body_parts_covered = CHEST|GROIN
|
||||
|
||||
/obj/item/clothing/under/durathread
|
||||
name = "durathread jumpsuit"
|
||||
desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer."
|
||||
icon_state = "durathread"
|
||||
item_state = "durathread"
|
||||
item_color = "durathread"
|
||||
can_adjust = FALSE
|
||||
armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5)
|
||||
@@ -675,12 +675,12 @@
|
||||
/datum/crafting_recipe/femur_breaker
|
||||
name = "Femur Breaker"
|
||||
result = /obj/structure/femur_breaker
|
||||
time = 150
|
||||
time = 150
|
||||
reqs = list(/obj/item/stack/sheet/metal = 20,
|
||||
/obj/item/stack/cable_coil = 30)
|
||||
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
|
||||
category = CAT_MISC
|
||||
|
||||
|
||||
/datum/crafting_recipe/lizardhat
|
||||
name = "Lizard Cloche Hat"
|
||||
result = /obj/item/clothing/head/lizard
|
||||
@@ -895,3 +895,44 @@
|
||||
time = 150 //It's a gun
|
||||
category = CAT_WEAPONRY
|
||||
subcategory = CAT_WEAPON
|
||||
|
||||
/datum/crafting_recipe/durathread_duffelbag
|
||||
name = "Durathread Dufflebag"
|
||||
result = /obj/item/storage/backpack/duffelbag/durathread
|
||||
reqs = list(/obj/item/stack/sheet/durathread = 7,
|
||||
/obj/item/stack/sheet/leather = 3)
|
||||
time = 70
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/durathread_toolbelt
|
||||
name = "Durathread Toolbelt"
|
||||
result = /obj/item/storage/belt/durathread
|
||||
reqs = list(/obj/item/stack/sheet/durathread = 5,
|
||||
/obj/item/stack/sheet/leather = 1)
|
||||
time = 30
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/durathread_bandolier
|
||||
name = "Durathread Bandolier"
|
||||
result = /obj/item/storage/belt/bandolier/durathread
|
||||
reqs = list(/obj/item/stack/sheet/durathread = 6,
|
||||
/obj/item/stack/sheet/leather = 2)
|
||||
time = 50
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/durathread_helmet
|
||||
name = "Makeshift Durathread Helmet"
|
||||
result = /obj/item/clothing/head/helmet/durathread
|
||||
reqs = list(/obj/item/stack/sheet/durathread = 4,
|
||||
/obj/item/stack/sheet/leather = 2)
|
||||
time = 30
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/durathread_vest
|
||||
name = "Makeshift Durathread Armour"
|
||||
result = /obj/item/clothing/suit/armor/vest/durathread
|
||||
reqs = list(/obj/item/stack/sheet/durathread = 6,
|
||||
/obj/item/stack/sheet/leather = 3)
|
||||
time = 50
|
||||
category = CAT_CLOTHING
|
||||
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
name = "Chocolate Strawberry"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberries = 1
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/chocolatestrawberry
|
||||
subcategory = CAT_MISCFOOD
|
||||
@@ -329,7 +329,7 @@ datum/crafting_recipe/food/donut/meat
|
||||
name = "Strawberry cherry cupcake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pastrybase = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberries = 1
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/strawberrycupcake
|
||||
subcategory = CAT_PASTRY
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
name = "Strawberry pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberries = 1
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/strawberrypie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
@@ -217,20 +217,20 @@
|
||||
distill_reagent = "cognac"
|
||||
|
||||
// Strawberry
|
||||
/obj/item/seeds/strawberries
|
||||
name = "pack of strawberrie seeds"
|
||||
desc = "These seeds grow into strawberries vines."
|
||||
/obj/item/seeds/strawberry
|
||||
name = "pack of strawberry seeds"
|
||||
desc = "These seeds grow into strawberry vines."
|
||||
icon_state = "seed-strawberry"
|
||||
species = "strawberry"
|
||||
plantname = "Strawberry Vine"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/strawberries
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/strawberry
|
||||
reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.2)
|
||||
mutatelist = list()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberries
|
||||
seed = /obj/item/seeds/strawberries
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry
|
||||
seed = /obj/item/seeds/strawberry
|
||||
name = "strawberry"
|
||||
icon_state = "strawberries"
|
||||
icon_state = "strawberry"
|
||||
filling_color = "#7FFF00"
|
||||
tastes = list("strawberries" = 1)
|
||||
wine_power = 20
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/obj/item/seeds/cotton
|
||||
name = "pack of cotton seeds"
|
||||
desc = "A pack of seeds that'll grow into a cotton plant. Assistants make good free labor if neccesary."
|
||||
icon_state = "seed-cotton"
|
||||
species = "cotton"
|
||||
plantname = "Cotton"
|
||||
icon_harvest = "cotton-harvest"
|
||||
product = /obj/item/grown/cotton
|
||||
lifespan = 35
|
||||
endurance = 25
|
||||
maturation = 15
|
||||
production = 1
|
||||
yield = 2
|
||||
potency = 50
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing.dmi'
|
||||
icon_dead = "cotton-dead"
|
||||
mutatelist = list(/obj/item/seeds/cotton/durathread)
|
||||
|
||||
/obj/item/grown/cotton
|
||||
seed = /obj/item/seeds/cotton
|
||||
name = "cotton bundle"
|
||||
desc = "A fluffy bundle of cotton."
|
||||
icon_state = "cotton"
|
||||
force = 0
|
||||
throwforce = 0
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throw_speed = 2
|
||||
throw_range = 3
|
||||
attack_verb = list("pomfed")
|
||||
var/cotton_type = /obj/item/stack/sheet/cotton
|
||||
var/cotton_name = "raw cotton"
|
||||
|
||||
/obj/item/grown/cotton/attack_self(mob/user)
|
||||
user.show_message("<span class='notice'>You pull some [cotton_name] out of the [name]!</span>", 1)
|
||||
var/seed_modifier = 0
|
||||
if(seed)
|
||||
seed_modifier = round(seed.potency / 25)
|
||||
var/obj/item/stack/cotton = new cotton_type(user.loc, 1 + seed_modifier)
|
||||
var/old_cotton_amount = cotton.amount
|
||||
for(var/obj/item/stack/ST in user.loc)
|
||||
if(ST != cotton && istype(ST, cotton_type) && ST.amount < ST.max_amount)
|
||||
ST.attackby(cotton, user)
|
||||
if(cotton.amount > old_cotton_amount)
|
||||
to_chat(user, "<span class='notice'>You add the newly-formed [cotton_name] to the stack. It now contains [cotton.amount] [cotton_name].</span>")
|
||||
qdel(src)
|
||||
|
||||
//reinforced mutated variant
|
||||
/obj/item/seeds/cotton/durathread
|
||||
name = "pack of durathread seeds"
|
||||
desc = "A pack of seeds that'll grow into an extremely durable thread that could easily rival plasteel if woven properly."
|
||||
icon_state = "seed-durathread"
|
||||
species = "durathread"
|
||||
plantname = "Durathread"
|
||||
icon_harvest = "durathread-harvest"
|
||||
product = /obj/item/grown/cotton/durathread
|
||||
lifespan = 80
|
||||
endurance = 50
|
||||
maturation = 15
|
||||
production = 1
|
||||
yield = 2
|
||||
potency = 50
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing.dmi'
|
||||
icon_dead = "cotton-dead"
|
||||
|
||||
/obj/item/grown/cotton/durathread
|
||||
seed = /obj/item/seeds/cotton/durathread
|
||||
name = "durathread bundle"
|
||||
desc = "A tough bundle of durathread, good luck unraveling this."
|
||||
icon_state = "durathread"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
throw_speed = 2
|
||||
throw_range = 3
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||
cotton_type = /obj/item/stack/sheet/cotton/durathread
|
||||
cotton_name = "raw durathread"
|
||||
@@ -25,6 +25,7 @@
|
||||
slot_flags = ITEM_SLOT_HEAD
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 3
|
||||
tastes = list("sesame seeds" = 1)
|
||||
foodtype = VEGETABLES | GROSS
|
||||
distill_reagent = "vermouth"
|
||||
|
||||
@@ -43,6 +44,7 @@
|
||||
name = "lily"
|
||||
desc = "A beautiful orange flower."
|
||||
icon_state = "lily"
|
||||
tastes = list("pelts " = 1)
|
||||
filling_color = "#FFA500"
|
||||
|
||||
// Geranium
|
||||
@@ -61,6 +63,7 @@
|
||||
desc = "A beautiful blue flower."
|
||||
icon_state = "geranium"
|
||||
filling_color = "#008B8B"
|
||||
tastes = list("pelts " = 1)
|
||||
|
||||
// Harebell
|
||||
/obj/item/seeds/harebell
|
||||
@@ -86,6 +89,7 @@
|
||||
name = "harebell"
|
||||
desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten'd not thy breath.\""
|
||||
icon_state = "harebell"
|
||||
tastes = list("salt" = 1)
|
||||
slot_flags = ITEM_SLOT_HEAD
|
||||
filling_color = "#E6E6FA"
|
||||
bitesize_mod = 3
|
||||
@@ -123,6 +127,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
tastes = list("seeds" = 1)
|
||||
|
||||
/obj/item/grown/sunflower/attack(mob/M, mob/user)
|
||||
to_chat(M, "<font color='green'><b> [user] smacks you with a sunflower!</font><font color='yellow'><b>FLOWER POWER<b></font>")
|
||||
@@ -153,6 +158,7 @@
|
||||
filling_color = "#E6E6FA"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "absinthe" //It's made from flowers.
|
||||
tastes = list("glowbugs" = 1)
|
||||
|
||||
// Novaflower
|
||||
/obj/item/seeds/sunflower/novaflower
|
||||
@@ -184,6 +190,7 @@
|
||||
throw_range = 3
|
||||
attack_verb = list("roasted", "scorched", "burned")
|
||||
grind_results = list("capsaicin" = 0, "condensedcapsaicin" = 0)
|
||||
tastes = list("cooked sunflower" = 1)
|
||||
|
||||
/obj/item/grown/novaflower/add_juice()
|
||||
..()
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
resistance_flags = FLAMMABLE
|
||||
var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item.
|
||||
var/tastes = list("indescribable" = 1) //Stops runtimes. Grown are un-eatable anyways so if you do then its a bug
|
||||
|
||||
/obj/item/grown/Initialize(newloc, obj/item/seeds/new_seed)
|
||||
. = ..()
|
||||
|
||||
@@ -21,6 +21,8 @@ Captain
|
||||
access = list() //See get_access()
|
||||
minimal_access = list() //See get_access()
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_accesses()
|
||||
|
||||
@@ -94,6 +96,7 @@ Head of Personnel
|
||||
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
|
||||
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/hop
|
||||
name = "Head of Personnel"
|
||||
|
||||
@@ -18,6 +18,8 @@ Quartermaster
|
||||
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
|
||||
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/quartermaster
|
||||
name = "Quartermaster"
|
||||
jobtype = /datum/job/qm
|
||||
|
||||
@@ -29,6 +29,8 @@ Chief Engineer
|
||||
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT,
|
||||
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/ce
|
||||
name = "Chief Engineer"
|
||||
jobtype = /datum/job/chief_engineer
|
||||
|
||||
@@ -56,6 +56,8 @@
|
||||
|
||||
var/list/mind_traits // Traits added to the mind of the mob assigned this job
|
||||
|
||||
var/list/blacklisted_quirks //list of quirk typepaths blacklisted.
|
||||
|
||||
//Only override this proc
|
||||
//H is usually a human unless an /equip override transformed it
|
||||
/datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
|
||||
|
||||
@@ -27,6 +27,8 @@ Chief Medical Officer
|
||||
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
|
||||
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/cmo
|
||||
name = "Chief Medical Officer"
|
||||
jobtype = /datum/job/cmo
|
||||
|
||||
@@ -31,6 +31,8 @@ Research Director
|
||||
ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM,
|
||||
ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/rd
|
||||
name = "Research Director"
|
||||
jobtype = /datum/job/rd
|
||||
|
||||
@@ -37,6 +37,8 @@ Head of Security
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic, /datum/quirk/insanity)
|
||||
|
||||
/datum/outfit/job/hos
|
||||
name = "Head of Security"
|
||||
jobtype = /datum/job/hos
|
||||
@@ -95,6 +97,7 @@ Warden
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //SEE /DATUM/JOB/WARDEN/GET_ACCESS()
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
|
||||
/datum/job/warden/get_access()
|
||||
var/list/L = list()
|
||||
@@ -150,6 +153,7 @@ Detective
|
||||
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
|
||||
/datum/outfit/job/detective
|
||||
name = "Detective"
|
||||
@@ -205,6 +209,7 @@ Security Officer
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS()
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
|
||||
/datum/job/officer/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
SSticker.mode.make_antag_chance(humanc)
|
||||
|
||||
if(humanc && CONFIG_GET(flag/roundstart_traits))
|
||||
SSquirks.AssignQuirks(humanc, humanc.client, TRUE)
|
||||
SSquirks.AssignQuirks(humanc, humanc.client, TRUE, FALSE, job, FALSE)
|
||||
|
||||
log_manifest(character.mind.key,character.mind,character,latejoin = TRUE)
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
/datum/nanite_program/purging
|
||||
name = "Blood Purification"
|
||||
desc = "The nanites purge toxins and chemicals from the host's bloodstream."
|
||||
desc = "The nanites purge toxins and chemicals from the host's bloodstream, however it is dangerous to slimepeople biology due to inaccuracy."
|
||||
use_rate = 1
|
||||
rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
/datum/nanite_program/purging_advanced
|
||||
name = "Selective Blood Purification"
|
||||
desc = "The nanites purge toxins and dangerous chemicals from the host's bloodstream, while ignoring beneficial chemicals. \
|
||||
The added processing power required to analyze the chemicals severely increases the nanite consumption rate."
|
||||
The added processing power required to analyze the chemicals severely increases the nanite consumption rate. Due to added complexity, it is safe with slimepeople biology."
|
||||
use_rate = 2
|
||||
rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/nanite_program/purging_advanced/active_effect()
|
||||
host_mob.adjustToxLoss(-1)
|
||||
host_mob.adjustToxLoss(-1, forced = TRUE)
|
||||
for(var/datum/reagent/toxin/R in host_mob.reagents.reagent_list)
|
||||
host_mob.reagents.remove_reagent(R.id,1)
|
||||
|
||||
|
||||
@@ -1269,9 +1269,44 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes
|
||||
|
||||
//Space Suits and Hardsuits
|
||||
/datum/uplink_item/suits
|
||||
category = "Space Suits and Hardsuits"
|
||||
category = "Space Suits, Hardsuits and Clothing"
|
||||
surplus = 40
|
||||
|
||||
/datum/uplink_item/suits/turtlenck
|
||||
name = "Tactical Turtleneck"
|
||||
desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake."
|
||||
item = /obj/item/clothing/under/syndicate
|
||||
cost = 1
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these
|
||||
|
||||
/datum/uplink_item/suits/turtlenck_skirt
|
||||
name = "Tactical Skirtleneck"
|
||||
desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake."
|
||||
item = /obj/item/clothing/under/syndicate/skirt
|
||||
cost = 1
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these
|
||||
|
||||
/datum/uplink_item/suits/padding
|
||||
name = "Soft Padding"
|
||||
desc = "Padding to add to a jumpsuit to help against melee and bullets."
|
||||
item = /obj/item/clothing/accessory/padding
|
||||
cost = 2
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
/datum/uplink_item/suits/kevlar
|
||||
name = "Kevlar sheets"
|
||||
desc = "Kevlar sheets to add to jumpsuit to help against bullets and melee."
|
||||
item = /obj/item/clothing/accessory/kevlar
|
||||
cost = 2
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
/datum/uplink_item/suits/plastic
|
||||
name = "Plastic sheet"
|
||||
desc = "Plastic body sheet to add to a jumpsuit to help against laser and energy harm."
|
||||
item = /obj/item/clothing/accessory/plastics
|
||||
cost = 2
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
/datum/uplink_item/suits/space_suit
|
||||
name = "Syndicate Space Suit"
|
||||
desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
/obj/item/seeds/chili = 3,
|
||||
/obj/item/seeds/cocoapod = 3,
|
||||
/obj/item/seeds/coffee = 3,
|
||||
/obj/item/seeds/cotton = 3,
|
||||
/obj/item/seeds/corn = 3,
|
||||
/obj/item/seeds/eggplant = 3,
|
||||
/obj/item/seeds/grape = 3,
|
||||
@@ -33,7 +34,7 @@
|
||||
/obj/item/seeds/soya = 3,
|
||||
/obj/item/seeds/sugarcane = 3,
|
||||
/obj/item/seeds/sunflower = 3,
|
||||
/obj/item/seeds/strawberries = 3,
|
||||
/obj/item/seeds/strawberry = 3,
|
||||
/obj/item/seeds/tea = 3,
|
||||
/obj/item/seeds/tobacco = 3,
|
||||
/obj/item/seeds/tomato = 3,
|
||||
|
||||
Reference in New Issue
Block a user