Merge branch 'master' into upstream-merge-8281

This commit is contained in:
Aronai Sieyes
2021-10-22 14:41:28 -04:00
committed by GitHub
282 changed files with 550710 additions and 4128 deletions
-134
View File
@@ -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
*/
+2 -2
View File
@@ -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 -2
View File
@@ -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
+1
View File
@@ -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)
+1
View File
@@ -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")
+1
View File
@@ -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."
+15 -1
View File
@@ -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
+5 -5
View File
@@ -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
+52 -58
View File
@@ -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(
+4 -14
View File
@@ -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 -6
View File
@@ -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.
+19 -36
View File
@@ -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))
+50 -10
View File
@@ -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()
+36 -6
View File
@@ -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)
+4 -2
View File
@@ -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)