mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 21:49:11 +01:00
Merge branch 'master' into upstream-merge-8281
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
/* Alien Effects!
|
||||
* Contains:
|
||||
* effect/alien
|
||||
* Resin
|
||||
* Weeds
|
||||
* Acid
|
||||
*/
|
||||
@@ -14,139 +13,6 @@
|
||||
desc = "theres something alien about this"
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
|
||||
/*
|
||||
* Resin
|
||||
*/
|
||||
/obj/effect/alien/resin
|
||||
name = "resin"
|
||||
desc = "Looks like some kind of slimy growth."
|
||||
icon_state = "resin"
|
||||
|
||||
density = TRUE
|
||||
opacity = 1
|
||||
anchored = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
var/health = 200
|
||||
//var/mob/living/affecting = null
|
||||
|
||||
/obj/effect/alien/resin/wall
|
||||
name = "resin wall"
|
||||
desc = "Purple slime solidified into a wall."
|
||||
icon_state = "resinwall" //same as resin, but consistency ho!
|
||||
|
||||
/obj/effect/alien/resin/membrane
|
||||
name = "resin membrane"
|
||||
desc = "Purple slime just thin enough to let light pass through."
|
||||
icon_state = "resinmembrane"
|
||||
opacity = 0
|
||||
health = 120
|
||||
|
||||
/obj/effect/alien/resin/New()
|
||||
..()
|
||||
var/turf/T = get_turf(src)
|
||||
T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
|
||||
|
||||
/obj/effect/alien/resin/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
T.thermal_conductivity = initial(T.thermal_conductivity)
|
||||
..()
|
||||
|
||||
/obj/effect/alien/resin/proc/healthcheck()
|
||||
if(health <=0)
|
||||
density = FALSE
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/bullet_act(var/obj/item/projectile/Proj)
|
||||
health -= Proj.damage
|
||||
..()
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/attack_generic(var/mob/user, var/damage, var/attack_verb)
|
||||
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
|
||||
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
user.do_attack_animation(src)
|
||||
health -= damage
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/take_damage(var/damage)
|
||||
health -= damage
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
health-=50
|
||||
if(2.0)
|
||||
health-=50
|
||||
if(3.0)
|
||||
if (prob(50))
|
||||
health-=50
|
||||
else
|
||||
health-=25
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/hitby(AM as mob|obj)
|
||||
..()
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("<span class='danger'>[src] was hit by [AM].</span>", 1)
|
||||
var/tforce = 0
|
||||
if(ismob(AM))
|
||||
tforce = 10
|
||||
else
|
||||
tforce = AM:throwforce
|
||||
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
health = max(0, health - tforce)
|
||||
healthcheck()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/attack_hand()
|
||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if (HULK in usr.mutations)
|
||||
to_chat(usr, "<span class='notice'>You easily destroy the [name].</span>")
|
||||
for(var/mob/O in oviewers(src))
|
||||
O.show_message("<span class='warning'>[usr] destroys the [name]!</span>", 1)
|
||||
health = 0
|
||||
else
|
||||
|
||||
// Aliens can get straight through these.
|
||||
if(istype(usr,/mob/living/carbon))
|
||||
var/mob/living/carbon/M = usr
|
||||
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||
for(var/mob/O in oviewers(src))
|
||||
O.show_message("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||
health = 0
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
to_chat(usr, "<span class='notice'>You claw at the [name].</span>")
|
||||
for(var/mob/O in oviewers(src))
|
||||
O.show_message("<span class='warning'>[usr] claws at the [name]!</span>", 1)
|
||||
health -= rand(5,10)
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
var/aforce = W.force
|
||||
health = max(0, health - aforce)
|
||||
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
healthcheck()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover) && mover.checkpass(PASSGLASS))
|
||||
return !opacity
|
||||
return !density
|
||||
|
||||
|
||||
/*
|
||||
* Weeds
|
||||
*/
|
||||
|
||||
@@ -161,14 +161,14 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/madscientist/New()
|
||||
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
|
||||
new /obj/item/clothing/under/suit_jacket/green(src.loc)
|
||||
new /obj/item/clothing/head/flatcap(src.loc)
|
||||
new /obj/item/clothing/suit/storage/toggle/labcoat/mad(src.loc)
|
||||
new /obj/item/clothing/glasses/gglasses(src.loc)
|
||||
delete_me = 1
|
||||
|
||||
/obj/effect/landmark/costume/elpresidente/New()
|
||||
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
|
||||
new /obj/item/clothing/under/suit_jacket/green(src.loc)
|
||||
new /obj/item/clothing/head/flatcap(src.loc)
|
||||
new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc)
|
||||
new /obj/item/clothing/shoes/boots/jackboots(src.loc)
|
||||
|
||||
@@ -291,7 +291,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/vore/sect_queen = 1
|
||||
),
|
||||
list(/mob/living/simple_mob/vore/solargrub),
|
||||
list(/mob/living/simple_mob/vore/woof)
|
||||
list(/mob/living/simple_mob/vore/woof),
|
||||
list(/mob/living/simple_mob/vore/alienanimals/teppi)
|
||||
)
|
||||
|
||||
/obj/random/mob/semirandom_mob_spawner/item_to_spawn()
|
||||
@@ -405,8 +406,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/animal/sif/shantak/leader = 1
|
||||
) = 5,
|
||||
list(/mob/living/simple_mob/animal/sif/siffet) = 5,
|
||||
list(/mob/living/simple_mob/animal/sif/tymisian) = 5
|
||||
|
||||
list(/mob/living/simple_mob/animal/sif/tymisian) = 5,
|
||||
list(/mob/living/simple_mob/vore/alienanimals/teppi) = 10
|
||||
)
|
||||
|
||||
/obj/random/mob/semirandom_mob_spawner/monster
|
||||
@@ -499,7 +500,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
list(
|
||||
/mob/living/simple_mob/vore/oregrub = 5,
|
||||
/mob/living/simple_mob/vore/oregrub/lava = 1
|
||||
) = 15
|
||||
) = 15,
|
||||
list(/mob/living/simple_mob/vore/alienanimals/teppi) = 15
|
||||
)
|
||||
|
||||
/obj/random/mob/semirandom_mob_spawner/humanoid
|
||||
@@ -738,7 +740,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/vore/sect_queen = 1
|
||||
) = 50,
|
||||
list(/mob/living/simple_mob/vore/solargrub) = 100,
|
||||
list(/mob/living/simple_mob/vore/woof) = 1
|
||||
list(/mob/living/simple_mob/vore/woof) = 1,
|
||||
list(/mob/living/simple_mob/vore/alienanimals/teppi) = 25
|
||||
)
|
||||
|
||||
/obj/random/mob/semirandom_mob_spawner/sus
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
blocks_emissive = EMISSIVE_BLOCK_GENERIC
|
||||
|
||||
matter = list(MAT_STEEL = 1)
|
||||
|
||||
var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
|
||||
var/randpixel = 6
|
||||
var/abstract = 0
|
||||
@@ -352,9 +354,9 @@
|
||||
if(user.pulling == src) user.stop_pulling()
|
||||
if((slot_flags & slot))
|
||||
if(equip_sound)
|
||||
playsound(src, equip_sound, 30)
|
||||
playsound(src, equip_sound, 20)
|
||||
else
|
||||
playsound(src, drop_sound, 30)
|
||||
playsound(src, drop_sound, 20)
|
||||
else if(slot == slot_l_hand || slot == slot_r_hand)
|
||||
playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds)
|
||||
return
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
icon = 'icons/obj/apc_repair.dmi'
|
||||
icon_state = "apc_frame"
|
||||
refund_amt = 2
|
||||
matter = list(MAT_STEEL = 100, MAT_GLASS = 30)
|
||||
|
||||
/obj/item/frame/apc/try_build(turf/on_wall, mob/user as mob)
|
||||
if (get_dist(on_wall, user)>1)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
force = 2
|
||||
throwforce = 2
|
||||
w_class = 2.0
|
||||
matter = list(MAT_STEEL = 50)
|
||||
var/broken
|
||||
attack_verb = list("annoyed")
|
||||
var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine")
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
desc = "This is rubbish."
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
matter = list(MAT_STEEL = 30)
|
||||
var/age = 0
|
||||
|
||||
/obj/item/trash/New(var/newloc, var/_age)
|
||||
|
||||
@@ -18,6 +18,7 @@ AI MODULES
|
||||
throw_range = 15
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
preserve_item = 1
|
||||
matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
|
||||
var/datum/ai_laws/laws = null
|
||||
|
||||
/obj/item/weapon/aiModule/proc/install(var/atom/movable/AM, var/mob/living/user)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
throwforce = 5.0
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
|
||||
var/build_path = null
|
||||
var/board_type = new /datum/frame/frame_types/computer
|
||||
var/list/req_components = null
|
||||
|
||||
@@ -37,6 +37,19 @@
|
||||
sprite_name = "miniFE"
|
||||
rand_overlays = 0
|
||||
|
||||
/obj/item/weapon/extinguisher/atmo
|
||||
name = "atmospheric fire extinguisher"
|
||||
desc = "A heavy duty fire extinguisher meant to fight large fires."
|
||||
icon_state = "atmos_extinguisher0"
|
||||
item_state = "atmos_extinguisher"
|
||||
throwforce = 12
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 3.0
|
||||
max_water = 600
|
||||
spray_particles = 3
|
||||
sprite_name = "atmo_extinguisher"
|
||||
rand_overlays = 0
|
||||
|
||||
/obj/item/weapon/extinguisher/Initialize()
|
||||
create_reagents(max_water)
|
||||
reagents.add_reagent("firefoam", max_water)
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
/mob/living/carbon/human/set_id_info(var/obj/item/weapon/card/id/id_card)
|
||||
..()
|
||||
id_card.age = age
|
||||
id_card.sex = capitalize(name_gender())
|
||||
|
||||
/obj/item/weapon/card/id/tgui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
@@ -84,6 +84,13 @@
|
||||
to_chat(user, SPAN_WARNING("You don't have anything on \the [src].")) //if we have help intent and no food scooped up DON'T STAB OURSELVES WITH THE FORK
|
||||
return
|
||||
|
||||
/obj/item/weapon/material/kitchen/utensil/on_rag_wipe()
|
||||
. = ..()
|
||||
if(reagents.total_volume > 0)
|
||||
reagents.clear_reagents()
|
||||
cut_overlays()
|
||||
return
|
||||
|
||||
/obj/item/weapon/material/kitchen/utensil/fork
|
||||
name = "fork"
|
||||
desc = "It's a fork. Sure is pointy."
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
origin_tech = list(TECH_COMBAT = 4)
|
||||
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
|
||||
|
||||
hitsound = 'sound/weapons/whip.ogg'
|
||||
reach = 2
|
||||
|
||||
/obj/item/weapon/melee/chainofcommand/suicide_act(mob/user)
|
||||
@@ -16,6 +16,20 @@
|
||||
user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!"))
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/weapon/melee/chainofcommand/curator_whip
|
||||
name = "leather whip"
|
||||
desc = "A fine weapon for some treasure hunting."
|
||||
icon_state = "curator_whip"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
origin_tech = list(TECH_COMBAT = 2)
|
||||
|
||||
/obj/item/weapon/melee/chainofcommand/curator_whip/toy
|
||||
name = "toy whip"
|
||||
desc = "A fake whip. Perfect for fake treasure hunting"
|
||||
force = 2
|
||||
throwforce = 2
|
||||
|
||||
/obj/item/weapon/melee/umbrella
|
||||
name = "umbrella"
|
||||
desc = "To keep the rain off you. Use with caution on windy days."
|
||||
|
||||
@@ -111,6 +111,46 @@
|
||||
/obj/item/device/analyzer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/holding
|
||||
name = "tool-belt of holding"
|
||||
desc = "A belt that uses localized bluespace pockets to hold more items than expected!"
|
||||
icon_state = "utility_holding"
|
||||
storage_slots = 14 //twice the amount as a normal belt
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 14
|
||||
can_hold = list(
|
||||
/obj/item/weapon/tool/crowbar,
|
||||
/obj/item/weapon/tool/screwdriver,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/tool/wirecutters,
|
||||
/obj/item/weapon/tool/wrench,
|
||||
/obj/item/device/multitool,
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/cell/device,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/device/t_scanner,
|
||||
/obj/item/device/analyzer,
|
||||
/obj/item/clothing/glasses,
|
||||
/obj/item/clothing/gloves,
|
||||
/obj/item/device/pda,
|
||||
/obj/item/device/megaphone,
|
||||
/obj/item/taperoll,
|
||||
/obj/item/device/radio/headset,
|
||||
/obj/item/device/robotanalyzer,
|
||||
/obj/item/weapon/material/minihoe,
|
||||
/obj/item/weapon/material/knife/machete/hatchet,
|
||||
/obj/item/device/analyzer/plant_analyzer,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/tape_roll,
|
||||
/obj/item/device/integrated_electronics/wirer,
|
||||
/obj/item/device/integrated_electronics/debugger,
|
||||
/obj/item/weapon/shovel/spade,
|
||||
/obj/item/stack/nanopaste,
|
||||
/obj/item/weapon/cell, //this is a bigger belt, might as well make it hold bigger cells too
|
||||
/obj/item/weapon/pipe_dispenser, //bigger belt for bigger tools
|
||||
/obj/item/weapon/rcd //see above
|
||||
)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/medical
|
||||
name = "medical belt"
|
||||
desc = "Can hold various medical equipment."
|
||||
@@ -149,6 +189,13 @@
|
||||
desc = "A sturdy black webbing belt with attached pouches."
|
||||
icon_state = "ems"
|
||||
|
||||
/obj/item/weapon/storage/belt/medical/holding
|
||||
name = "medical belt of holding"
|
||||
desc = "A belt that uses localized bluespace pockets to hold more items than expected!"
|
||||
icon_state = "med_holding"
|
||||
storage_slots = 14 //twice the amount as a normal belt
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 14
|
||||
|
||||
/obj/item/weapon/storage/belt/security
|
||||
name = "security belt"
|
||||
desc = "Can hold security gear like handcuffs and flashes."
|
||||
@@ -325,10 +372,28 @@
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 7
|
||||
|
||||
/obj/item/weapon/storage/belt/bandolier
|
||||
name = "shotgun bandolier"
|
||||
desc = "Designed to hold shotgun shells. Can't really hold more than that."
|
||||
icon_state = "bandolier1"
|
||||
storage_slots = 8
|
||||
max_w_class = ITEMSIZE_TINY
|
||||
can_hold = list(
|
||||
/obj/item/ammo_casing/a12g,
|
||||
/obj/item/ammo_casing/a12g/pellet,
|
||||
/obj/item/ammo_casing/a12g/blank,
|
||||
/obj/item/ammo_casing/a12g/practice,
|
||||
/obj/item/ammo_casing/a12g/beanbag,
|
||||
/obj/item/ammo_casing/a12g/stunshell,
|
||||
/obj/item/ammo_casing/a12g/flash,
|
||||
/obj/item/ammo_casing/a12g/emp,
|
||||
/obj/item/ammo_casing/a12g/flechette
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/security/tactical/bandolier
|
||||
name = "combat belt"
|
||||
name = "combat bandolier"
|
||||
desc = "Can hold security gear like handcuffs and flashes, with more pouches for more storage."
|
||||
icon_state = "bandolier"
|
||||
icon_state = "bandolier2"
|
||||
|
||||
/obj/item/weapon/storage/belt/janitor
|
||||
name = "janitorial belt"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
/obj/item/weapon/storage/box
|
||||
name = "box"
|
||||
desc = "It's just an ordinary box."
|
||||
icon = 'icons/obj/boxes.dmi'
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
center_of_mass = list("x" = 13,"y" = 10)
|
||||
@@ -72,21 +73,29 @@
|
||||
/obj/item/weapon/storage/box/survival
|
||||
name = "emergency supply box"
|
||||
desc = "A survival box issued to crew members for use in emergency situations."
|
||||
icon_state = "survival"
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles,
|
||||
/obj/item/clothing/mask/breath
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/survival/synth
|
||||
name = "synthetic supply box"
|
||||
desc = "A survival box issued to synthetic crew members for use in emergency situations."
|
||||
icon_state = "survival_synth"
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/survival/comp
|
||||
name = "emergency supply box"
|
||||
desc = "A comprehensive survival box issued to crew members for use in emergency situations. Contains additional supplies."
|
||||
icon_state = "survival"
|
||||
icon_state = "survival_comp"
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/device/flashlight/glowstick,
|
||||
@@ -115,7 +124,7 @@
|
||||
/obj/item/weapon/storage/box/syringegun
|
||||
name = "box of syringe gun cartridges"
|
||||
desc = "A box full of compressed gas cartridges."
|
||||
icon_state = "syringe"
|
||||
icon_state = "syringe2"
|
||||
starts_with = list(/obj/item/weapon/syringe_cartridge = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/beakers
|
||||
@@ -127,6 +136,7 @@
|
||||
/obj/item/weapon/storage/box/injectors
|
||||
name = "box of DNA injectors"
|
||||
desc = "This box contains injectors it seems."
|
||||
icon_state = "dna"
|
||||
starts_with = list(
|
||||
/obj/item/weapon/dnainjector/h2m = 3,
|
||||
/obj/item/weapon/dnainjector/m2h = 3
|
||||
@@ -374,17 +384,19 @@
|
||||
/obj/item/weapon/storage/box/condimentbottles
|
||||
name = "box of condiment bottles"
|
||||
desc = "It has a large ketchup smear on it."
|
||||
icon_state = "condiment"
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/condiment = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/cups
|
||||
name = "box of paper cups"
|
||||
desc = "It has pictures of paper cups on the front."
|
||||
icon_state = "cups"
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/drinks/sillycup = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/donkpockets
|
||||
name = "box of donk-pockets"
|
||||
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
||||
icon_state = "donk_kit"
|
||||
icon_state = "donkpocketbox"
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/sinpockets
|
||||
@@ -450,6 +462,7 @@
|
||||
/obj/item/weapon/storage/box/pillbottles
|
||||
name = "box of pill bottles"
|
||||
desc = "It has pictures of pill bottles on its front."
|
||||
icon_state = "pillbox"
|
||||
starts_with = list(/obj/item/weapon/storage/pill_bottle = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/snappops
|
||||
@@ -485,12 +498,12 @@
|
||||
/obj/item/weapon/storage/box/autoinjectors
|
||||
name = "box of injectors"
|
||||
desc = "Contains autoinjectors."
|
||||
icon_state = "syringe"
|
||||
icon_state = "auto"
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/lights
|
||||
name = "box of replacement bulbs"
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon = 'icons/obj/boxes.dmi'
|
||||
icon_state = "light"
|
||||
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
|
||||
@@ -1,27 +1,3 @@
|
||||
/obj/item/weapon/storage/box/survival
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles,
|
||||
/obj/item/clothing/mask/breath
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/survival/synth
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/survival/comp
|
||||
starts_with = list(
|
||||
/obj/item/weapon/tool/prybar/red,
|
||||
/obj/item/clothing/glasses/goggles,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/device/flashlight/glowstick,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
|
||||
/obj/item/clothing/mask/breath
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/explorerkeys
|
||||
name = "box of volunteer headsets"
|
||||
desc = "A box full of volunteer headsets, for issuing out to exploration volunteers."
|
||||
@@ -39,7 +15,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/survival/space
|
||||
name = "boxed emergency suit and helmet"
|
||||
icon_state = "survivaleng"
|
||||
icon_state = "survival_comp3"
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/space/emergency,
|
||||
/obj/item/clothing/head/helmet/space/emergency,
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
allow_quick_empty = TRUE
|
||||
use_sound = 'sound/items/drop/flesh.ogg'
|
||||
|
||||
/obj/item/weapon/storage/vore_egg/Initialize()
|
||||
. = ..()
|
||||
randpixel_xy()
|
||||
|
||||
/obj/item/weapon/storage/vore_egg/open(mob/user as mob)
|
||||
if(isobserver(user))
|
||||
return
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/obj/random
|
||||
name = "random object"
|
||||
desc = "This item type is used to spawn random objects at round-start"
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "rup"
|
||||
icon = 'icons/misc/random_spawners.dmi'
|
||||
icon_state = "generic"
|
||||
var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything
|
||||
var/drop_get_turf = TRUE
|
||||
|
||||
@@ -80,7 +80,7 @@ var/list/random_useful_
|
||||
/obj/random/single
|
||||
name = "randomly spawned object"
|
||||
desc = "This item type is used to randomly spawn a given object at round-start"
|
||||
icon_state = "x3"
|
||||
icon_state = "generic"
|
||||
var/spawn_object = null
|
||||
|
||||
/obj/random/single/item_to_spawn()
|
||||
@@ -104,8 +104,8 @@ var/list/multi_point_spawns
|
||||
/obj/random_multi
|
||||
name = "random object spawn point"
|
||||
desc = "This item type is used to spawn random objects at round-start. Only one spawn point for a given group id is selected."
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "x3"
|
||||
icon = 'icons/misc/random_spawners.dmi'
|
||||
icon_state = "generic_3"
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
var/id // Group id
|
||||
var/weight // Probability weight for this spawn point
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/obj/random/gun/random
|
||||
name = "Random Weapon"
|
||||
desc = "This is a random energy or ballistic weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "energystun100"
|
||||
icon_state = "gun"
|
||||
|
||||
/obj/random/gun/random/item_to_spawn()
|
||||
return pick(prob(5);/obj/random/energy,
|
||||
@@ -10,9 +9,8 @@
|
||||
|
||||
/obj/random/energy
|
||||
name = "Random Energy Weapon"
|
||||
desc = "This is a random weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "energykill100"
|
||||
desc = "This is a random energy weapon."
|
||||
icon_state = "gun_energy"
|
||||
|
||||
/obj/random/energy/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/energy/laser,
|
||||
@@ -28,17 +26,34 @@
|
||||
prob(2);/obj/item/weapon/gun/energy/ionrifle,
|
||||
prob(2);/obj/item/weapon/gun/energy/ionrifle/pistol,
|
||||
prob(3);/obj/item/weapon/gun/energy/toxgun,
|
||||
prob(4);/obj/item/weapon/gun/energy/taser,
|
||||
prob(3);/obj/item/weapon/gun/energy/taser,
|
||||
prob(2);/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||
prob(4);/obj/item/weapon/gun/energy/stunrevolver,
|
||||
prob(3);/obj/item/weapon/gun/energy/stunrevolver,
|
||||
prob(2);/obj/item/weapon/gun/energy/stunrevolver/vintage,
|
||||
prob(3);/obj/item/weapon/gun/energy/gun/compact)
|
||||
|
||||
/obj/random/energy/highend
|
||||
name = "Random Energy Weapon"
|
||||
desc = "This is a random, actually good energy weapon."
|
||||
icon_state = "gun_energy_2"
|
||||
|
||||
/obj/random/energy/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/energy/laser,
|
||||
prob(3);/obj/item/weapon/gun/energy/laser/sleek,
|
||||
prob(4);/obj/item/weapon/gun/energy/gun,
|
||||
prob(3);/obj/item/weapon/gun/energy/gun/burst,
|
||||
prob(1);/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
prob(2);/obj/item/weapon/gun/energy/retro,
|
||||
prob(2);/obj/item/weapon/gun/energy/lasercannon,
|
||||
prob(3);/obj/item/weapon/gun/energy/xray,
|
||||
prob(1);/obj/item/weapon/gun/energy/sniperrifle,
|
||||
prob(2);/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||
prob(3);/obj/item/weapon/gun/energy/gun/compact)
|
||||
|
||||
/obj/random/energy/sec
|
||||
name = "Random Security Energy Weapon"
|
||||
desc = "This is a random security weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "energykill100"
|
||||
icon_state = "gun_energy"
|
||||
|
||||
/obj/random/energy/sec/item_to_spawn()
|
||||
return pick(prob(2);/obj/item/weapon/gun/energy/laser,
|
||||
@@ -47,8 +62,7 @@
|
||||
/obj/random/projectile
|
||||
name = "Random Projectile Weapon"
|
||||
desc = "This is a random projectile weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun"
|
||||
|
||||
/obj/random/projectile/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/projectile/automatic/wt550,
|
||||
@@ -89,8 +103,7 @@
|
||||
/obj/random/projectile/sec
|
||||
name = "Random Security Projectile Weapon"
|
||||
desc = "This is a random security weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_shotgun"
|
||||
|
||||
/obj/random/projectile/sec/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,
|
||||
@@ -98,10 +111,9 @@
|
||||
prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat)
|
||||
|
||||
/obj/random/projectile/shotgun
|
||||
name = "Random Projectile Weapon"
|
||||
desc = "This is a random projectile weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
name = "Random Shotgun"
|
||||
desc = "This is a random shotgun-type weapon."
|
||||
icon_state = "gun_shotgun"
|
||||
|
||||
/obj/random/projectile/item_to_spawn()
|
||||
return pick(prob(4);/obj/item/weapon/gun/projectile/shotgun/doublebarrel,
|
||||
@@ -113,7 +125,7 @@
|
||||
name = "Random Handgun"
|
||||
desc = "This is a random sidearm."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "secgundark"
|
||||
icon_state = "gun"
|
||||
|
||||
/obj/random/handgun/item_to_spawn()
|
||||
return pick(prob(4);/obj/item/weapon/gun/projectile/sec,
|
||||
@@ -130,8 +142,7 @@
|
||||
/obj/random/handgun/sec
|
||||
name = "Random Security Handgun"
|
||||
desc = "This is a random security sidearm."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "secgundark"
|
||||
icon_state = "gun"
|
||||
|
||||
/obj/random/handgun/sec/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/projectile/sec,
|
||||
@@ -140,8 +151,7 @@
|
||||
/obj/random/ammo
|
||||
name = "Random Ammunition"
|
||||
desc = "This is random security ammunition."
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
icon_state = "45-10"
|
||||
icon_state = "ammo"
|
||||
|
||||
/obj/random/ammo/item_to_spawn()
|
||||
return pick(prob(6);/obj/item/weapon/storage/box/beanbags,
|
||||
@@ -157,8 +167,7 @@
|
||||
/obj/random/grenade
|
||||
name = "Random Grenade"
|
||||
desc = "This is random thrown grenades (no C4/etc.)."
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
icon_state = "grenade_2"
|
||||
|
||||
/obj/random/grenade/item_to_spawn()
|
||||
return pick(prob(15);/obj/item/weapon/grenade/concussion,
|
||||
@@ -185,7 +194,7 @@
|
||||
icon_state = "grenade_3"
|
||||
|
||||
/obj/random/grenade/lethal/item_to_spawn()
|
||||
return pick(prob(15);/obj/item/weapon/grenade/concussion,
|
||||
return pick( prob(15);/obj/item/weapon/grenade/concussion,
|
||||
prob(5);/obj/item/weapon/grenade/empgrenade,
|
||||
prob(2);/obj/item/weapon/grenade/chem_grenade/incendiary,
|
||||
prob(5);/obj/item/weapon/grenade/explosive,
|
||||
@@ -196,8 +205,7 @@
|
||||
/obj/random/grenade/less_lethal
|
||||
name = "Random Security Grenade"
|
||||
desc = "This is a random thrown grenade that shouldn't kill anyone."
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
icon_state = "grenade"
|
||||
|
||||
/obj/random/grenade/less_lethal/item_to_spawn()
|
||||
return pick(prob(20);/obj/item/weapon/grenade/concussion,
|
||||
@@ -213,8 +221,7 @@
|
||||
/obj/random/grenade/box
|
||||
name = "Random Grenade Box"
|
||||
desc = "This is a random box of grenades. Not to be mistaken for a box of random grenades. Or a grenade of random boxes - but that would just be silly."
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
icon_state = "grenade_box"
|
||||
|
||||
/obj/random/grenade/box/item_to_spawn()
|
||||
return pick(prob(20);/obj/item/weapon/storage/box/flashbangs,
|
||||
@@ -229,9 +236,9 @@
|
||||
|
||||
/obj/random/projectile/random
|
||||
name = "Random Projectile Weapon"
|
||||
desc = "This is a random weapon."
|
||||
desc = "This is a random projectile weapon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_2"
|
||||
|
||||
/obj/random/projectile/random/item_to_spawn()
|
||||
return pick(prob(3);/obj/random/multiple/gun/projectile/handgun,
|
||||
@@ -242,8 +249,7 @@
|
||||
/obj/random/multiple/gun/projectile/smg
|
||||
name = "random smg projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "saber"
|
||||
icon_state = "gun_auto"
|
||||
|
||||
/obj/random/multiple/gun/projectile/smg/item_to_spawn()
|
||||
return pick(
|
||||
@@ -281,8 +287,7 @@
|
||||
/obj/random/multiple/gun/projectile/rifle
|
||||
name = "random rifle projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "carbine"
|
||||
icon_state = "gun_rifle"
|
||||
|
||||
//Concerns about the bullpup, but currently seems to be only a slightly stronger z8. But we shall see.
|
||||
|
||||
@@ -333,8 +338,7 @@
|
||||
/obj/random/multiple/gun/projectile/handgun
|
||||
name = "random handgun projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun"
|
||||
|
||||
/obj/random/multiple/gun/projectile/handgun/item_to_spawn()
|
||||
return pick(
|
||||
@@ -465,8 +469,7 @@
|
||||
/obj/random/multiple/gun/projectile/shotgun
|
||||
name = "random shotgun projectile gun"
|
||||
desc = "Loot for PoIs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
icon_state = "gun_shotgun"
|
||||
|
||||
/obj/random/multiple/gun/projectile/shotgun/item_to_spawn()
|
||||
return pick(
|
||||
@@ -499,7 +502,7 @@
|
||||
name = "broken gun spawner"
|
||||
desc = "Spawns a random broken gun, or rarely a fully functional one."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_gun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -517,8 +520,7 @@
|
||||
/obj/random/projectile/scrapped_shotgun
|
||||
name = "broken shotgun spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_shotgun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -531,8 +533,7 @@
|
||||
/obj/random/projectile/scrapped_smg
|
||||
name = "broken smg spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_smg/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -543,8 +544,7 @@
|
||||
/obj/random/projectile/scrapped_pistol
|
||||
name = "broken pistol spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_pistol/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -555,8 +555,7 @@
|
||||
/obj/random/projectile/scrapped_laser
|
||||
name = "broken laser spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_laser/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -569,8 +568,7 @@
|
||||
/obj/random/projectile/scrapped_ionrifle
|
||||
name = "broken ionrifle spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_ionrifle/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -581,8 +579,7 @@
|
||||
/obj/random/projectile/scrapped_bulldog
|
||||
name = "broken z8 spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_bulldog/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -593,8 +590,7 @@
|
||||
/obj/random/projectile/scrapped_flechette
|
||||
name = "broken flechette spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_flechette/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -605,8 +601,7 @@
|
||||
/obj/random/projectile/scrapped_grenadelauncher
|
||||
name = "broken grenadelauncher spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_grenadelauncher/item_to_spawn()
|
||||
return pickweight(list(
|
||||
@@ -617,8 +612,7 @@
|
||||
/obj/random/projectile/scrapped_dartgun
|
||||
name = "broken dartgun spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
icon_state = "gun_scrap"
|
||||
|
||||
/obj/random/projectile/scrapped_dartgun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
/obj/random/maintenance //Clutter and loot for maintenance and away missions
|
||||
name = "random maintenance item"
|
||||
desc = "This is a random maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
|
||||
/obj/random/maintenance/item_to_spawn()
|
||||
return pick(prob(300);/obj/random/tech_supply,
|
||||
@@ -25,8 +23,6 @@ Individual items to add to the maintenance list should go here, if you add
|
||||
something, make sure it's not in one of the other lists.*/
|
||||
name = "random clean maintenance item"
|
||||
desc = "This is a random clean maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
|
||||
/obj/random/maintenance/clean/item_to_spawn()
|
||||
return pick(prob(10);/obj/random/contraband,
|
||||
@@ -123,8 +119,7 @@ something, make sure it's not in one of the other lists.*/
|
||||
/*Maintenance loot list. This one is for around security areas*/
|
||||
name = "random security maintenance item"
|
||||
desc = "This is a random security maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
icon_state = "security"
|
||||
|
||||
/obj/random/maintenance/security/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/maintenance/clean,
|
||||
@@ -180,8 +175,7 @@ something, make sure it's not in one of the other lists.*/
|
||||
/*Maintenance loot list. This one is for around medical areas*/
|
||||
name = "random medical maintenance item"
|
||||
desc = "This is a random medical maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
icon_state = "medical"
|
||||
|
||||
/obj/random/maintenance/medical/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/maintenance/clean,
|
||||
@@ -220,8 +214,7 @@ something, make sure it's not in one of the other lists.*/
|
||||
/*Maintenance loot list. This one is for around medical areas*/
|
||||
name = "random engineering maintenance item"
|
||||
desc = "This is a random engineering maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
icon_state = "tool"
|
||||
|
||||
/obj/random/maintenance/engineering/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/maintenance/clean,
|
||||
@@ -258,8 +251,7 @@ something, make sure it's not in one of the other lists.*/
|
||||
/*Maintenance loot list. This one is for around medical areas*/
|
||||
name = "random research maintenance item"
|
||||
desc = "This is a random research maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
icon_state = "science"
|
||||
|
||||
/obj/random/maintenance/research/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/maintenance/clean,
|
||||
@@ -290,8 +282,6 @@ something, make sure it's not in one of the other lists.*/
|
||||
/*Maintenance loot list. This one is for around cargo areas*/
|
||||
name = "random cargo maintenance item"
|
||||
desc = "This is a random cargo maintenance item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
|
||||
/obj/random/maintenance/cargo/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/maintenance/clean,
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/obj/random/mech
|
||||
name = "random mech"
|
||||
desc = "This is a random single mech."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
icon_state = "mecha"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
//This list includes the phazon, gorilla and mauler. You might want to use something else if balance is a concern.
|
||||
@@ -25,8 +24,6 @@
|
||||
/obj/random/mech/weaker
|
||||
name = "random mech"
|
||||
desc = "This is a random single mech. Those are less potent and more common."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
/obj/random/mech/weaker/item_to_spawn()
|
||||
@@ -42,8 +39,6 @@
|
||||
/obj/random/mech/old
|
||||
name = "random mech"
|
||||
desc = "This is a random single old mech."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
//Note that all of those are worn out and have slightly less maximal health than the standard.
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
/obj/random/tool
|
||||
name = "random tool"
|
||||
desc = "This is a random tool"
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "welder"
|
||||
icon_state = "tool"
|
||||
|
||||
/obj/random/tool/item_to_spawn()
|
||||
return pick(/obj/item/weapon/tool/screwdriver,
|
||||
@@ -22,7 +21,7 @@
|
||||
/obj/random/tool/powermaint
|
||||
name = "random powertool"
|
||||
desc = "This is a random rare powertool for maintenance"
|
||||
icon_state = "jaws_pry"
|
||||
icon_state = "tool_2"
|
||||
|
||||
/obj/random/tool/powermaint/item_to_spawn()
|
||||
return pick(prob(320);/obj/random/tool,
|
||||
@@ -34,7 +33,7 @@
|
||||
/obj/random/tool/power
|
||||
name = "random powertool"
|
||||
desc = "This is a random powertool"
|
||||
icon_state = "jaws_pry"
|
||||
icon_state = "tool_2"
|
||||
|
||||
/obj/random/tool/power/item_to_spawn()
|
||||
return pick(/obj/item/weapon/tool/screwdriver/power,
|
||||
@@ -45,8 +44,7 @@
|
||||
/obj/random/tool/alien
|
||||
name = "random alien tool"
|
||||
desc = "This is a random tool"
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "welder"
|
||||
icon_state = "tool_3"
|
||||
|
||||
/obj/random/tool/alien/item_to_spawn()
|
||||
return pick(/obj/item/weapon/tool/screwdriver/alien,
|
||||
@@ -60,8 +58,7 @@
|
||||
/obj/random/technology_scanner
|
||||
name = "random scanner"
|
||||
desc = "This is a random technology scanner."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "atmos"
|
||||
icon_state = "tech"
|
||||
|
||||
/obj/random/technology_scanner/item_to_spawn()
|
||||
return pick(prob(5);/obj/item/device/t_scanner,
|
||||
@@ -85,8 +82,7 @@
|
||||
/obj/random/bomb_supply
|
||||
name = "bomb supply"
|
||||
desc = "This is a random bomb supply."
|
||||
icon = 'icons/obj/assemblies/new_assemblies.dmi'
|
||||
icon_state = "signaller"
|
||||
icon_state = "tech"
|
||||
|
||||
/obj/random/bomb_supply/item_to_spawn()
|
||||
return pick(/obj/item/device/assembly/igniter,
|
||||
@@ -99,8 +95,7 @@
|
||||
/obj/random/toolbox
|
||||
name = "random toolbox"
|
||||
desc = "This is a random toolbox."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "red"
|
||||
icon_state = "toolbox"
|
||||
|
||||
/obj/random/toolbox/item_to_spawn()
|
||||
return pick(prob(6);/obj/item/weapon/storage/toolbox/mechanical,
|
||||
@@ -111,8 +106,7 @@
|
||||
/obj/random/smes_coil
|
||||
name = "random smes coil"
|
||||
desc = "This is a random smes coil."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "smes"
|
||||
icon_state = "cell_2"
|
||||
|
||||
/obj/random/smes_coil/item_to_spawn()
|
||||
return pick(prob(4);/obj/item/weapon/smes_coil,
|
||||
@@ -122,8 +116,7 @@
|
||||
/obj/random/pacman
|
||||
name = "random portable generator"
|
||||
desc = "This is a random portable generator."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "portgen0"
|
||||
icon_state = "cell_3"
|
||||
|
||||
/obj/random/pacman/item_to_spawn()
|
||||
return pick(prob(6);/obj/machinery/power/port_gen/pacman,
|
||||
@@ -161,8 +154,7 @@
|
||||
/obj/random/tech_supply/component
|
||||
name = "random tech component"
|
||||
desc = "This is a random machine component."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "portable_analyzer"
|
||||
icon_state = "tech"
|
||||
|
||||
/obj/random/tech_supply/component/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/stock_parts/gear,
|
||||
@@ -188,8 +180,7 @@
|
||||
/obj/random/medical
|
||||
name = "Random Medicine"
|
||||
desc = "This is a random medical item."
|
||||
icon = 'icons/obj/stacks.dmi'
|
||||
icon_state = "traumakit"
|
||||
icon_state = "medical"
|
||||
|
||||
/obj/random/medical/item_to_spawn()
|
||||
return pick(prob(21);/obj/random/medical/lite,
|
||||
@@ -208,8 +199,7 @@
|
||||
/obj/random/medical/pillbottle
|
||||
name = "Random Pill Bottle"
|
||||
desc = "This is a random pill bottle."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "pill_canister"
|
||||
icon_state = "pillbottle"
|
||||
|
||||
/obj/random/medical/pillbottle/item_to_spawn()
|
||||
return pick(prob(1);/obj/item/weapon/storage/pill_bottle/spaceacillin,
|
||||
@@ -221,8 +211,7 @@
|
||||
/obj/random/medical/lite
|
||||
name = "Random Medicine"
|
||||
desc = "This is a random simple medical item."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "brutepack"
|
||||
icon_state = "medical"
|
||||
spawn_nothing_percentage = 25
|
||||
|
||||
/obj/random/medical/lite/item_to_spawn()
|
||||
@@ -240,8 +229,7 @@
|
||||
/obj/random/firstaid
|
||||
name = "Random First Aid Kit"
|
||||
desc = "This is a random first aid kit."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "firstaid"
|
||||
icon_state = "medicalkit"
|
||||
|
||||
/obj/random/firstaid/item_to_spawn()
|
||||
return pick(prob(10);/obj/item/weapon/storage/firstaid/regular,
|
||||
@@ -255,8 +243,7 @@
|
||||
/obj/random/contraband
|
||||
name = "Random Illegal Item"
|
||||
desc = "Hot Stuff."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "purplecomb"
|
||||
icon_state = "sus"
|
||||
spawn_nothing_percentage = 50
|
||||
/obj/random/contraband/item_to_spawn()
|
||||
return pick(prob(6);/obj/item/weapon/storage/pill_bottle/paracetamol, //VOREStation Edit,
|
||||
@@ -505,8 +492,7 @@
|
||||
/obj/random/material //Random materials for building stuff
|
||||
name = "random material"
|
||||
desc = "This is a random material."
|
||||
icon = 'icons/obj/stacks.dmi'
|
||||
icon_state = "sheet-metal_2"
|
||||
icon_state = "material"
|
||||
|
||||
/obj/random/material/item_to_spawn()
|
||||
return pick(/obj/item/stack/material/steel{amount = 10},
|
||||
@@ -524,8 +510,7 @@
|
||||
/obj/random/material/refined //Random materials for building stuff
|
||||
name = "random refined material"
|
||||
desc = "This is a random refined metal."
|
||||
icon = 'icons/obj/stacks.dmi'
|
||||
icon_state = "sheet-adamantine_3"
|
||||
icon_state = "material_2"
|
||||
|
||||
/obj/random/material/refined/item_to_spawn()
|
||||
return pick(/obj/item/stack/material/steel{amount = 10},
|
||||
@@ -555,8 +540,7 @@
|
||||
/obj/random/material/precious //Precious metals, go figure
|
||||
name = "random precious metal"
|
||||
desc = "This is a small stack of a random precious metal."
|
||||
icon = 'icons/obj/stacks.dmi'
|
||||
icon_state = "sheet-gold_2"
|
||||
icon_state = "material_3"
|
||||
|
||||
/obj/random/material/precious/item_to_spawn()
|
||||
return pick(/obj/item/stack/material/gold{amount = 5},
|
||||
@@ -779,8 +763,7 @@
|
||||
/obj/random/janusmodule
|
||||
name = "random janus circuit"
|
||||
desc = "A random (possibly broken) Janus module."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "circuit_damaged"
|
||||
icon_state = "tech_2"
|
||||
|
||||
/obj/random/janusmodule/item_to_spawn()
|
||||
return pick(subtypesof(/obj/item/weapon/circuitboard/mecha/imperion))
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
/obj/random/mob
|
||||
name = "Random Animal"
|
||||
desc = "This is a random animal."
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
icon_state = "chicken_white"
|
||||
icon_state = "animal"
|
||||
|
||||
var/overwrite_hostility = 0
|
||||
|
||||
@@ -68,7 +67,7 @@
|
||||
/obj/random/mob/sif
|
||||
name = "Random Sif Animal"
|
||||
desc = "This is a random cold weather animal."
|
||||
icon_state = "penguin"
|
||||
icon_state = "animal"
|
||||
|
||||
mob_returns_home = 1
|
||||
mob_wander_distance = 10
|
||||
@@ -89,7 +88,7 @@
|
||||
/obj/random/mob/sif/peaceful
|
||||
name = "Random Peaceful Sif Animal"
|
||||
desc = "This is a random peaceful cold weather animal."
|
||||
icon_state = "penguin"
|
||||
icon_state = "animal_passive"
|
||||
|
||||
mob_returns_home = 1
|
||||
mob_wander_distance = 12
|
||||
@@ -106,7 +105,7 @@
|
||||
/obj/random/mob/sif/hostile
|
||||
name = "Random Hostile Sif Animal"
|
||||
desc = "This is a random hostile cold weather animal."
|
||||
icon_state = "frost"
|
||||
icon_state = "animal_hostile"
|
||||
|
||||
/obj/random/mob/sif/hostile/item_to_spawn()
|
||||
return pick(prob(22);/mob/living/simple_mob/animal/sif/savik,
|
||||
@@ -169,7 +168,7 @@
|
||||
/obj/random/mob/robotic
|
||||
name = "Random Robot Mob"
|
||||
desc = "This is a random robot."
|
||||
icon_state = "drone_dead"
|
||||
icon_state = "robot"
|
||||
|
||||
overwrite_hostility = 1
|
||||
|
||||
@@ -217,7 +216,7 @@
|
||||
/obj/random/mob/robotic/hivebot
|
||||
name = "Random Hivebot"
|
||||
desc = "This is a random hivebot."
|
||||
icon_state = "drone3"
|
||||
icon_state = "robot"
|
||||
|
||||
mob_faction = "hivebot"
|
||||
|
||||
@@ -237,18 +236,58 @@
|
||||
name = "Random Mouse"
|
||||
desc = "This is a random boring maus."
|
||||
icon_state = "mouse_gray"
|
||||
spawn_nothing_percentage = 15
|
||||
|
||||
/obj/random/mob/mouse/item_to_spawn()
|
||||
return pick(prob(15);/mob/living/simple_mob/animal/passive/mouse/white,
|
||||
prob(30);/mob/living/simple_mob/animal/passive/mouse/brown,
|
||||
prob(30);/mob/living/simple_mob/animal/passive/mouse/gray,
|
||||
prob(25);/obj/random/mouseremains) //because figuring out how to come up with it picking nothing is beyond my coding ability.
|
||||
prob(30);/mob/living/simple_mob/animal/passive/mouse/rat)
|
||||
|
||||
/obj/random/mob/fish
|
||||
name = "Random Fish"
|
||||
desc = "This is a random fish found on Sif."
|
||||
icon_state = "fish"
|
||||
mob_faction = "fish"
|
||||
overwrite_hostility = 1
|
||||
mob_hostile = 0
|
||||
mob_retaliate = 0
|
||||
|
||||
/obj/random/mob/fish/item_to_spawn()
|
||||
return pick(prob(10);/mob/living/simple_mob/animal/passive/fish/bass,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/fish/icebass,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/fish/trout,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/fish/salmon,
|
||||
prob(10);/mob/living/simple_mob/animal/passive/fish/pike,
|
||||
prob(10);/mob/living/simple_mob/animal/passive/fish/perch,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/fish/murkin,
|
||||
prob(15);/mob/living/simple_mob/animal/passive/fish/javelin,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/fish/rockfish,
|
||||
prob(5);/mob/living/simple_mob/animal/passive/fish/solarfish,
|
||||
prob(10);/mob/living/simple_mob/animal/passive/crab,
|
||||
prob(1);/mob/living/simple_mob/animal/sif/hooligan_crab)
|
||||
|
||||
/obj/random/mob/bird
|
||||
name = "Random Bird"
|
||||
desc = "This is a random wild/feral bird."
|
||||
icon_state = "bird"
|
||||
mob_faction = "bird"
|
||||
|
||||
/obj/random/mob/bird/item_to_spawn()
|
||||
return pick(prob(10);/mob/living/simple_mob/animal/passive/bird/black_bird,
|
||||
prob(10);/mob/living/simple_mob/animal/passive/bird/azure_tit,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/bird/european_robin,
|
||||
prob(10);/mob/living/simple_mob/animal/passive/bird/goldcrest,
|
||||
prob(20);/mob/living/simple_mob/animal/passive/bird/ringneck_dove,
|
||||
prob(10);/mob/living/simple_mob/animal/space/goose,
|
||||
prob(5);/mob/living/simple_mob/animal/passive/chicken,
|
||||
prob(1);/mob/living/simple_mob/animal/passive/penguin)
|
||||
|
||||
// Mercs
|
||||
/obj/random/mob/merc
|
||||
name = "Random Mercenary"
|
||||
desc = "This is a random PoI mercenary."
|
||||
icon_state = "syndicate"
|
||||
icon_state = "humanoid"
|
||||
|
||||
mob_faction = "syndicate"
|
||||
mob_returns_home = 1
|
||||
@@ -270,7 +309,7 @@
|
||||
/obj/random/mob/merc/armored
|
||||
name = "Random Armored Infantry Merc"
|
||||
desc = "This is a random PoI exo or robot for mercs."
|
||||
icon_state = "drone3"
|
||||
icon_state = "mecha"
|
||||
|
||||
/obj/random/mob/merc/armored/item_to_spawn()
|
||||
return pick(prob(30);/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark,
|
||||
@@ -327,6 +366,7 @@
|
||||
/obj/random/mob/multiple/sifmobs
|
||||
name = "Random Sifmob Pack"
|
||||
desc = "A pack of random neutral sif mobs."
|
||||
icon_state = "animal_group"
|
||||
|
||||
/obj/random/mob/multiple/sifmobs/item_to_spawn()
|
||||
return pick(
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
desc = "It looks like a weird egg."
|
||||
name = "egg"
|
||||
icon_state = "egg_growing"
|
||||
density = 0
|
||||
anchored = 1
|
||||
density = FALSE
|
||||
var/progress = 0
|
||||
|
||||
/obj/structure/alien/egg/Initialize()
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/obj/structure/alien //Gurg Addition, framework for alien eggs.
|
||||
/obj/structure/alien //Gurg Addition, framework for alien eggs and structures.
|
||||
name = "alien thing"
|
||||
desc = "There's something alien about this."
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
layer = ABOVE_JUNK_LAYER
|
||||
var/health = 50
|
||||
unacidable = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/alien/proc/healthcheck()
|
||||
if(health <=0)
|
||||
@@ -46,16 +47,45 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/structure/alien/attack_generic()
|
||||
attack_hand(usr)
|
||||
/obj/structure/alien/attack_generic(var/mob/user, var/damage, var/attack_verb)
|
||||
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
|
||||
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
user.do_attack_animation(src)
|
||||
health -= damage
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/structure/alien/attackby(var/obj/item/weapon/W, var/mob/user)
|
||||
health = max(0, health - W.force)
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
/obj/structure/alien/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
var/aforce = W.force
|
||||
health = max(0, health - aforce)
|
||||
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
visible_message("<span class='danger'>[user] attacks the [src]!</span>")
|
||||
healthcheck()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/structure/alien/attack_hand()
|
||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if (HULK in usr.mutations)
|
||||
visible_message("<span class='warning'>[usr] destroys the [name]!</span>")
|
||||
health = 0
|
||||
else
|
||||
|
||||
// Aliens can get straight through these.
|
||||
if(istype(usr,/mob/living/carbon))
|
||||
var/mob/living/carbon/M = usr
|
||||
if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
|
||||
visible_message ("<span class='warning'>[usr] strokes the [name] and it melts away!</span>", 1)
|
||||
health = 0
|
||||
healthcheck()
|
||||
return
|
||||
visible_message("<span class='warning'>[usr] claws at the [name]!</span>")
|
||||
health -= rand(5,10)
|
||||
healthcheck()
|
||||
return
|
||||
|
||||
/obj/structure/alien/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
||||
if(air_group) return 0
|
||||
if(istype(mover) && mover.checkpass(PASSGLASS))
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/obj/structure/alien/wall
|
||||
name = "resin wall"
|
||||
desc = "A disgusting mass of purple slime solidified into a wall."
|
||||
icon_state = "resin wall"
|
||||
health = 200
|
||||
opacity = 1
|
||||
density = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
|
||||
/obj/structure/alien/membrane
|
||||
name = "resin membrane"
|
||||
desc = "A revolting mass of purple slime, it appears to be stretched enough to be transparent."
|
||||
icon_state = "resin membrane"
|
||||
opacity = 0
|
||||
health = 120
|
||||
density = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
@@ -104,6 +104,12 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/barricade/planks
|
||||
name = "crude barricade"
|
||||
icon_state = "barricade_planks"
|
||||
health = 50
|
||||
maxhealth = 50
|
||||
|
||||
/obj/structure/barricade/sandbag
|
||||
name = "sandbags"
|
||||
desc = "Bags. Bags of sand. It's rough and coarse and somehow stays in the bag."
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
open_icon.Blend(icon(base_icon, "open"), ICON_OVERLAY)
|
||||
open_icon.Blend(color, BLEND_ADD)
|
||||
open_icon.Blend(icon(base_icon, "interior"), ICON_OVERLAY)
|
||||
|
||||
|
||||
door_back_icon = icon(base_icon, "door_back")
|
||||
door_back_icon.Blend(color, BLEND_ADD)
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
this_decal_icon.Blend(decals[thing], BLEND_ADD)
|
||||
closed_emagged_icon.Blend(this_decal_icon, ICON_OVERLAY)
|
||||
door_front_icon.Blend(this_decal_icon, ICON_OVERLAY)
|
||||
|
||||
|
||||
door_front_icon.AddAlphaMask(icon(base_icon, "door_front")) // Remove pesky 'more than just door' decals
|
||||
|
||||
closed_locked_icon = icon(closed_emagged_icon)
|
||||
@@ -622,6 +622,13 @@
|
||||
"vertical_stripe_simple" = COLOR_OFF_WHITE,
|
||||
)
|
||||
|
||||
/decl/closet_appearance/oxygen/fire/atmos
|
||||
color = COLOR_YELLOW_GRAY
|
||||
extra_decals = list(
|
||||
"extinguisher" = COLOR_TEAL,
|
||||
"vertical_stripe_simple" = COLOR_TEAL,
|
||||
)
|
||||
|
||||
/decl/closet_appearance/alien
|
||||
color = COLOR_PURPLE
|
||||
|
||||
|
||||
@@ -3,6 +3,35 @@
|
||||
desc = "It's a storage unit for athletic wear."
|
||||
closet_appearance = /decl/closet_appearance/wardrobe/mixed
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/under/shorts/grey,
|
||||
/obj/item/clothing/under/shorts/black,
|
||||
/obj/item/clothing/under/shorts/red,
|
||||
/obj/item/clothing/under/shorts/blue,
|
||||
/obj/item/clothing/under/shorts/green,
|
||||
/obj/item/clothing/under/shorts/white,
|
||||
/obj/item/clothing/suit/storage/toggle/track,
|
||||
/obj/item/clothing/suit/storage/toggle/track/blue,
|
||||
/obj/item/clothing/suit/storage/toggle/track/green,
|
||||
/obj/item/clothing/suit/storage/toggle/track/red,
|
||||
/obj/item/clothing/suit/storage/toggle/track/white,
|
||||
/obj/item/clothing/under/pants/track,
|
||||
/obj/item/clothing/under/pants/track/blue,
|
||||
/obj/item/clothing/under/pants/track/green,
|
||||
/obj/item/clothing/under/pants/track/white,
|
||||
/obj/item/clothing/under/pants/track/red,
|
||||
/obj/item/clothing/shoes/athletic = 2,
|
||||
/obj/item/clothing/shoes/hitops,
|
||||
/obj/item/clothing/shoes/hitops/red,
|
||||
/obj/item/clothing/shoes/hitops/black,
|
||||
/obj/item/clothing/shoes/hitops/blue
|
||||
)
|
||||
|
||||
/obj/structure/closet/athletic_swimwear
|
||||
name = "athletic wardrobe"
|
||||
desc = "It's a storage unit for swimwear."
|
||||
closet_appearance = /decl/closet_appearance/wardrobe/mixed
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/under/shorts/grey,
|
||||
/obj/item/clothing/under/shorts/black,
|
||||
@@ -17,6 +46,9 @@
|
||||
/obj/item/clothing/under/swimsuit/striped,
|
||||
/obj/item/clothing/under/swimsuit/white,
|
||||
/obj/item/clothing/under/swimsuit/earth,
|
||||
/obj/item/clothing/under/wetsuit,
|
||||
/obj/item/clothing/under/wetsuit_rec,
|
||||
/obj/item/clothing/under/wetsuit_skimpy,
|
||||
/obj/item/clothing/mask/snorkel = 2,
|
||||
/obj/item/clothing/shoes/swimmingfins = 2)
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
/obj/item/device/radio/headset/headset_qm/alt, //VOREStation Edit,
|
||||
/obj/item/clothing/gloves/black,
|
||||
/obj/item/clothing/gloves/fingerless,
|
||||
/obj/item/clothing/suit/fire/firefighter,
|
||||
/obj/item/weapon/tank/emergency/oxygen,
|
||||
/obj/item/clothing/mask/gas,
|
||||
/obj/item/clothing/glasses/meson,
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
|
||||
/obj/item/clothing/shoes/boots/winter/engineering,
|
||||
/obj/item/weapon/tank/emergency/oxygen/engi,
|
||||
/obj/item/weapon/storage/belt/utility, //VOREStation Add
|
||||
/obj/item/weapon/reagent_containers/spray/windowsealant) //VOREStation Add
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_personal/Initialize()
|
||||
@@ -101,10 +102,10 @@
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/accessory/storage/brown_vest,
|
||||
/obj/item/clothing/suit/fire/firefighter,
|
||||
/obj/item/clothing/head/hardhat/red,
|
||||
/obj/item/clothing/suit/fire/heavy,
|
||||
/obj/item/clothing/head/hardhat/firefighter/atmos,
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/extinguisher,
|
||||
/obj/item/weapon/extinguisher/atmo,
|
||||
///obj/item/clamp, //VOREStation Removal: without leaks those are pointless,
|
||||
/obj/item/device/radio/headset/headset_eng,
|
||||
/obj/item/device/radio/headset/headset_eng/alt,
|
||||
@@ -114,7 +115,8 @@
|
||||
/obj/item/taperoll/atmos,
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos,
|
||||
/obj/item/clothing/shoes/boots/winter/atmos,
|
||||
/obj/item/weapon/tank/emergency/oxygen/engi)
|
||||
/obj/item/weapon/tank/emergency/oxygen/engi,
|
||||
/obj/item/weapon/storage/belt/utility) //VOREStation Add
|
||||
|
||||
/obj/structure/closet/secure_closet/atmos_personal/Initialize()
|
||||
if(prob(50))
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
/obj/item/clothing/shoes/boots/winter/medical,
|
||||
/obj/item/clothing/under/rank/nursesuit,
|
||||
/obj/item/clothing/head/nursehat,
|
||||
/obj/item/weapon/storage/box/freezer = 3)
|
||||
/obj/item/weapon/storage/box/freezer = 3,
|
||||
/obj/item/weapon/storage/belt/medical) //VOREStation Add
|
||||
|
||||
/obj/structure/closet/secure_closet/medical3/Initialize()
|
||||
if(prob(50))
|
||||
@@ -147,7 +148,8 @@
|
||||
/obj/item/clothing/suit/bio_suit/cmo,
|
||||
/obj/item/clothing/head/bio_hood/cmo,
|
||||
/obj/item/clothing/shoes/white,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial) //VOREStation Add
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial, //VOREStation Add
|
||||
/obj/item/weapon/storage/belt/medical) //VOREStation Add
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO/Initialize()
|
||||
if(prob(50))
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
/obj/item/clothing/shoes/white,
|
||||
/obj/item/clothing/under/rank/head_of_personnel_whimsy,
|
||||
/obj/item/clothing/head/caphat/hop,
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit,
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt,
|
||||
/obj/item/clothing/under/suit_jacket/teal,
|
||||
/obj/item/clothing/under/suit_jacket/teal/skirt,
|
||||
/obj/item/clothing/glasses/sunglasses,
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/hop)
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
closet_appearance = /decl/closet_appearance/oxygen/fire
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/fire/firefighter,
|
||||
/obj/item/clothing/suit/fire,
|
||||
/obj/item/clothing/mask/gas,
|
||||
/obj/item/weapon/tank/oxygen/red,
|
||||
/obj/item/weapon/extinguisher,
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
/obj/structure/closet/firecloset/full
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/fire/firefighter,
|
||||
/obj/item/clothing/suit/fire,
|
||||
/obj/item/clothing/mask/gas,
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank/oxygen/red,
|
||||
@@ -82,13 +82,24 @@
|
||||
|
||||
/obj/structure/closet/firecloset/full/double
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/fire/firefighter = 2,
|
||||
/obj/item/clothing/suit/fire = 2,
|
||||
/obj/item/clothing/mask/gas = 2,
|
||||
/obj/item/device/flashlight = 2,
|
||||
/obj/item/weapon/tank/oxygen/red = 2,
|
||||
/obj/item/weapon/extinguisher = 2,
|
||||
/obj/item/clothing/head/hardhat/red = 2)
|
||||
|
||||
/obj/structure/closet/firecloset/full/atmos
|
||||
name = "atmos fire-safety closet"
|
||||
desc = "It's a storage unit for atmospheric fire-fighting supplies."
|
||||
closet_appearance = /decl/closet_appearance/oxygen/fire/atmos
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/fire/heavy,
|
||||
/obj/item/weapon/tank/oxygen/red,
|
||||
/obj/item/weapon/extinguisher/atmo,
|
||||
/obj/item/clothing/head/hardhat/firefighter/atmos)
|
||||
|
||||
/*
|
||||
* Tool Closet
|
||||
*/
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
/obj/structure/closet/walllocker_double/kitchen/east
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
|
||||
|
||||
/obj/structure/closet/walllocker_double/medical
|
||||
name = "Medical Cabinet"
|
||||
desc = "A wall mounted medical supply cabinet. Probably full of drugs!" //not actually full of drugs, sorry!
|
||||
@@ -152,7 +152,7 @@
|
||||
/obj/structure/closet/walllocker_double/medical/east
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
|
||||
|
||||
/obj/structure/closet/walllocker_double/hydrant
|
||||
name = "fire-safety closet"
|
||||
desc = "It's a storage cabinet packed with fire-fighting supplies."
|
||||
@@ -161,7 +161,7 @@
|
||||
density = FALSE
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/fire/firefighter,
|
||||
/obj/item/clothing/suit/fire,
|
||||
/obj/item/clothing/mask/gas,
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank/oxygen/red,
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/captain,
|
||||
/obj/item/clothing/shoes/boots/winter/command,
|
||||
/obj/item/clothing/head/beret/centcom/captain,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit/skirt,
|
||||
/obj/item/clothing/under/suit_jacket/green,
|
||||
/obj/item/clothing/under/suit_jacket/green/skirt,
|
||||
/obj/item/clothing/glasses/sunglasses,
|
||||
/obj/item/clothing/head/caphat)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
pixel_y = (dir & 3)? (dir ==1 ? -27 : 27) : 0
|
||||
else
|
||||
has_extinguisher = new/obj/item/weapon/extinguisher(src)
|
||||
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user)
|
||||
@@ -80,9 +80,11 @@
|
||||
if(has_extinguisher)
|
||||
if(istype(has_extinguisher, /obj/item/weapon/extinguisher/mini))
|
||||
suffix = "mini"
|
||||
if(istype(has_extinguisher, /obj/item/weapon/extinguisher/atmo))
|
||||
suffix = "advanced"
|
||||
else
|
||||
suffix = "standard"
|
||||
|
||||
|
||||
icon_state = "[initial(icon_state)][opened ? "" : "_closed"]_[suffix]"
|
||||
|
||||
/obj/structure/extinguisher_cabinet/old
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
var/isSwitchingStates = 0
|
||||
var/hardness = 1
|
||||
var/oreAmount = 7
|
||||
var/knock_sound = 'sound/machines/door/knock_glass.ogg'
|
||||
var/knock_hammer_sound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
|
||||
/obj/structure/simple_door/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
TemperatureAct(exposed_temperature)
|
||||
@@ -68,6 +70,20 @@
|
||||
/obj/structure/simple_door/attack_hand(mob/user as mob)
|
||||
return TryToSwitchState(user)
|
||||
|
||||
/obj/structure/simple_door/AltClick(mob/user as mob)
|
||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
else if(user.a_intent == I_HURT)
|
||||
src.visible_message("<span class='warning'>[user] hammers on \the [src]!</span>", "<span class='warning'>Someone hammers loudly on \the [src]!</span>")
|
||||
src.add_fingerprint(user)
|
||||
playsound(src, knock_hammer_sound, 50, 0, 3)
|
||||
else
|
||||
src.visible_message("[user] knocks on \the [src].", "Someone knocks on \the [src].")
|
||||
src.add_fingerprint(user)
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
return
|
||||
|
||||
/obj/structure/simple_door/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover, /obj/effect/beam))
|
||||
return !opacity
|
||||
@@ -225,6 +241,7 @@
|
||||
|
||||
/obj/structure/simple_door/wood/Initialize(mapload,var/material_name)
|
||||
..(mapload, material_name || MAT_WOOD)
|
||||
knock_sound = 'sound/machines/door/knock_wood.wav'
|
||||
|
||||
/obj/structure/simple_door/sifwood/Initialize(mapload,var/material_name)
|
||||
..(mapload, material_name || MAT_SIFWOOD)
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
|
||||
/obj/structure/bed/roller/Moved(atom/old_loc, direction, forced = FALSE)
|
||||
. = ..()
|
||||
|
||||
|
||||
playsound(src, 'sound/effects/roll.ogg', 100, 1)
|
||||
|
||||
/obj/structure/bed/roller/post_buckle_mob(mob/living/M as mob)
|
||||
|
||||
Reference in New Issue
Block a user