Merge remote-tracking branch 'upstream/master' into kk-talon

This commit is contained in:
Killian
2021-11-17 20:43:35 +00:00
319 changed files with 317817 additions and 12200 deletions
@@ -363,7 +363,7 @@
name = "Virgo Orbital Research Establishment"
desc = "It features the logo of the local branch of Nanotrasen; Virgo Orbital Research Establishment."
/decl/poster/vore_95
icon_state = "3btetherposter"
icon_state = "tetherposter"
name = "The Frontier Awaits"
desc = "A stunning depiction of Virgo 3b in front of a field of stars, a purple nebula laces in from behind, while the shining tower of NSB Adephagia gleams in the starlight. 'The Frontier Awaits' is printed in silver lettering. It looks like a recruitment ad."
/decl/poster/vore_96
@@ -0,0 +1,92 @@
/obj/effect/landmark/start/captain
name = "Site Manager"
/obj/effect/landmark/start/hop
name = "Head of Personnel"
/obj/effect/landmark/start/commandsecretary
name = "Command Secretary"
/obj/effect/landmark/start/hos
name = "Head of Security"
/obj/effect/landmark/start/warden
name = "Warden"
/obj/effect/landmark/start/detective
name = "Detective"
/obj/effect/landmark/start/security
name = "Security Officer"
/obj/effect/landmark/start/ce
name = "Chief Engineer"
/obj/effect/landmark/start/atmostech
name = "Atmospheric Technician"
/obj/effect/landmark/start/engineer
name = "Engineer"
/obj/effect/landmark/start/cmo
name = "Chief Medical Officer"
/obj/effect/landmark/start/chemist
name = "Chemist"
/obj/effect/landmark/start/medical
name = "Medical Doctor"
/obj/effect/landmark/start/paramedic
name = "Paramedic"
/obj/effect/landmark/start/psych
name = "Psychiatrist"
/obj/effect/landmark/start/rd
name = "Research Director"
/obj/effect/landmark/start/roboticist
name = "Roboticist"
/obj/effect/landmark/start/scientist
name = "Scientist"
/obj/effect/landmark/start/xenobio
name = "Xenobiologist"
/obj/effect/landmark/start/xenobot
name = "Xenobotanist"
/obj/effect/landmark/start/qm
name = "Quartermaster"
/obj/effect/landmark/start/cargo
name = "Cargo Technician"
/obj/effect/landmark/start/miner
name = "Shaft Miner"
/obj/effect/landmark/start/pf
name = "Pathfinder"
/obj/effect/landmark/start/explorer
name = "Explorer"
/obj/effect/landmark/start/fieldmedic
name = "Field Medic"
/obj/effect/landmark/start/bartender
name = "Bartender"
/obj/effect/landmark/start/botanist
name = "Botanist"
/obj/effect/landmark/start/chaplain
name = "Chaplain"
/obj/effect/landmark/start/chef
name = "Chef"
/obj/effect/landmark/start/clown
name = "Clown"
/obj/effect/landmark/start/entertainer
name = "Entertainer"
/obj/effect/landmark/start/intern
name = "Intern"
/obj/effect/landmark/start/iaa
name = "Internal Affairs Agent"
/obj/effect/landmark/start/janitor
name = "Janitor"
/obj/effect/landmark/start/librarian
name = "Librarian"
/obj/effect/landmark/start/mime
name = "Mime"
/obj/effect/landmark/start/pilot
name = "Pilot"
/obj/effect/landmark/start/visitor
name = "Visitor"
/obj/effect/landmark/start/ai
name = "AI"
/obj/effect/landmark/start/cyborg
name = "Cyborg"
/obj/effect/landmark/start/taloncap
name = "Talon Captain"
/obj/effect/landmark/start/talondoc
name = "Talon Doctor"
/obj/effect/landmark/start/taloneng
name = "Talon Engineer"
/obj/effect/landmark/start/talonguard
name = "Talon Guard"
/obj/effect/landmark/start/talonpilot
name = "Talon Pilot"
+6
View File
@@ -77,6 +77,12 @@
endgame_exits += loc
delete_me = 1
return
//VOREStation Add Start
if("vinestart")
vinestart += loc
delete_me = 1
return
//VORE Station Add End
landmarks_list += src
return 1
+1 -1
View File
@@ -39,4 +39,4 @@
/obj/effect/landmark/late_antag/raider
name = "Raider - Lateload"
antag_id = MODE_RAIDER
antag_id = MODE_RAIDER
@@ -8,6 +8,7 @@
R.add_language(LANGUAGE_ENOCHIAN, 1)
R.add_language(LANGUAGE_SLAVIC, 1)
R.add_language(LANGUAGE_DRUDAKAR, 1)
R.add_language(LANGUAGE_TAVAN, 1)
return 1
else
return 0
+3 -3
View File
@@ -16,7 +16,7 @@
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi',
)
)
flags = NOBLUDGEON
force = 10
throwforce = 10
@@ -184,9 +184,9 @@
activate()
animate_deletion(A)
return
if((mode & PAINT_MODE)) //Paint pipes
if(istype(A, /obj/machinery/atmospherics/pipe))
if(!istype(A, /obj/machinery/atmospherics/pipe/simple/heat_exchanging) && istype(A, /obj/machinery/atmospherics/pipe))
var/obj/machinery/atmospherics/pipe/P = A
playsound(src, 'sound/machines/click.ogg', 50, 1)
P.change_color(pipe_colors[paint_color])
@@ -60,3 +60,10 @@
build_path = /obj/machinery/computer/id_restorer
board_type = new /datum/frame/frame_types/id_restorer
matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/weapon/circuitboard/security/xenobio
name = T_BOARD("xenobiology camera monitor")
build_path = /obj/machinery/computer/security/xenobio
network = list(NETWORK_XENOBIO)
req_access = list()
matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
@@ -141,6 +141,7 @@ var/last_chew = 0
/obj/item/weapon/handcuffs/fuzzy
name = "fuzzy cuffs"
icon_state = "fuzzycuff"
breakouttime = 100 //VOREstation edit
desc = "Use this to keep... 'prisoners' in line."
/obj/item/weapon/handcuffs/cable
@@ -233,7 +233,7 @@
"Field Medic" = "itg_white",
"Talon Doctor" = "itg_white",
"Atmospheric Technician" = "itg_orange",
"Station Engineer" = "itg_orange",
"Engineer" = "itg_orange",
"Off-duty Officer" = "itg_red",
"Off-duty Engineer" = "itg_orange",
"Off-duty Medic" = "itg_white",
@@ -35,6 +35,7 @@
source.add_language(LANGUAGE_CANILUNZT)
source.add_language(LANGUAGE_SLAVIC)
source.add_language(LANGUAGE_SOL_COMMON) //In case they're giving a xenomorph an implant or something.
source.add_language(LANGUAGE_TAVAN)
/obj/item/weapon/implant/vrlanguage/post_implant(mob/source)
source.mind.store_memory("A implant can be activated by using the smile emote, <B>say *smile</B> to attempt to activate.", 0, 0)
+194
View File
@@ -105,10 +105,14 @@
icon = 'icons/obj/vending.dmi'
icon_state = "Cola_Machine"
//VOREStation Edit Start
/obj/random/vendordrink/item_to_spawn() //Not including coffee as it's more specific in usage.
return pick (/obj/machinery/vending/cola,
/obj/machinery/vending/cola/soft,
/obj/machinery/vending/bepis,
/obj/machinery/vending/sovietsoda,
/obj/machinery/vending/radren)
//VOREStation Edit End
/obj/random/obstruction //Large objects to block things off in maintenance
name = "random obstruction"
@@ -1452,3 +1456,193 @@
return pick(prob(5);/turf/simulated/floor/lava,
prob(3);/turf/simulated/floor/outdoors/rocks/caves,
prob(1);/turf/simulated/mineral)
//VOREStation Add Start - Underdark stuff that would be cool if existed if the underdark doesn't.
/obj/random/underdark
name = "random underdark loot"
desc = "Random loot for Underdark."
icon = 'icons/obj/items.dmi'
icon_state = "spickaxe"
/obj/random/underdark/item_to_spawn()
return pick(prob(3);/obj/random/multiple/underdark/miningdrills,
prob(3);/obj/random/multiple/underdark/ores,
prob(2);/obj/random/multiple/underdark/treasure,
prob(1);/obj/random/multiple/underdark/mechtool)
/obj/random/underdark/uncertain
icon_state = "upickaxe"
spawn_nothing_percentage = 65 //only 33% to spawn loot
/obj/random/multiple/underdark/miningdrills
name = "random underdark mining tool loot"
desc = "Random mining tool loot for Underdark."
icon = 'icons/obj/items.dmi'
icon_state = "spickaxe"
/obj/random/multiple/underdark/miningdrills/item_to_spawn()
return pick(
prob(10);list(/obj/item/weapon/pickaxe/silver),
prob(8);list(/obj/item/weapon/pickaxe/drill),
prob(6);list(/obj/item/weapon/pickaxe/jackhammer),
prob(5);list(/obj/item/weapon/pickaxe/gold),
prob(4);list(/obj/item/weapon/pickaxe/plasmacutter),
prob(2);list(/obj/item/weapon/pickaxe/diamond),
prob(1);list(/obj/item/weapon/pickaxe/diamonddrill)
)
/obj/random/multiple/underdark/ores
name = "random underdark mining ore loot"
desc = "Random mining utility loot for Underdark."
icon = 'icons/obj/mining.dmi'
icon_state = "satchel"
/obj/random/multiple/underdark/ores/item_to_spawn()
return pick(
prob(9);list(
/obj/item/weapon/storage/bag/ore,
/obj/item/weapon/shovel,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/hydrogen,
/obj/item/weapon/ore/hydrogen,
/obj/item/weapon/ore/hydrogen,
/obj/item/weapon/ore/hydrogen,
/obj/item/weapon/ore/hydrogen,
/obj/item/weapon/ore/hydrogen
),
prob(7);list(
/obj/item/weapon/storage/bag/ore,
/obj/item/weapon/pickaxe,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium
),
prob(4);list(
/obj/item/clothing/suit/radiation,
/obj/item/clothing/head/radiation,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium),
prob(2);list(
/obj/item/device/flashlight/lantern,
/obj/item/clothing/glasses/material,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond
),
prob(1);list(
/obj/item/weapon/mining_scanner,
/obj/item/weapon/shovel/spade,
/obj/item/weapon/ore/verdantium,
/obj/item/weapon/ore/verdantium,
/obj/item/weapon/ore/verdantium,
/obj/item/weapon/ore/verdantium,
/obj/item/weapon/ore/verdantium
)
)
/obj/random/multiple/underdark/treasure
name = "random underdark treasure"
desc = "Random treasure loot for Underdark."
icon = 'icons/obj/storage.dmi'
icon_state = "cashbag"
/obj/random/multiple/underdark/treasure/item_to_spawn()
return pick(
prob(5);list(
/obj/random/coin,
/obj/random/coin,
/obj/random/coin,
/obj/random/coin,
/obj/random/coin,
/obj/item/clothing/head/pirate
),
prob(4);list(
/obj/item/weapon/storage/bag/cash,
/obj/item/weapon/spacecash/c500,
/obj/item/weapon/spacecash/c100,
/obj/item/weapon/spacecash/c50
),
prob(3);list(
/obj/item/clothing/head/hardhat/orange,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold,
/obj/item/stack/material/gold),
prob(1);list(
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/diamond,
/obj/item/stack/material/diamond,
/obj/item/stack/material/diamond
)
)
/obj/random/multiple/underdark/mechtool
name = "random underdark mech equipment"
desc = "Random mech equipment loot for Underdark."
icon = 'icons/mecha/mecha_equipment.dmi'
icon_state = "mecha_clamp"
/obj/random/multiple/underdark/mechtool/item_to_spawn()
return pick(
prob(12);list(/obj/item/mecha_parts/mecha_equipment/tool/drill),
prob(10);list(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp),
prob(8);list(/obj/item/mecha_parts/mecha_equipment/generator),
prob(7);list(/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged),
prob(6);list(/obj/item/mecha_parts/mecha_equipment/repair_droid),
prob(3);list(/obj/item/mecha_parts/mecha_equipment/gravcatapult),
prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser),
prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer/rigged),
prob(1);list(/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill),
)
//VOREStation Add End
+6
View File
@@ -600,6 +600,12 @@
prob(2);/obj/item/weapon/coin/platinum,
prob(1);/obj/item/weapon/coin/diamond)
//VOREStation Add Start
/obj/random/coin/sometimes
spawn_nothing_percentage = 66
//VOREStation Add End
/obj/random/action_figure
name = "random action figure"
desc = "This is a random action figure."
@@ -93,7 +93,7 @@
*/
/obj/structure/closet/secure_closet/pathfinder
name = "pathfinder locker"
req_access = list(access_gateway)
req_access = list(access_pathfinder)
closet_appearance = /decl/closet_appearance/secure_closet/expedition/pathfinder
starts_with = list(
@@ -113,7 +113,6 @@
/obj/item/device/geiger,
/obj/item/weapon/cell/device,
/obj/item/device/radio,
/obj/item/device/bluespaceradio/tether_prelinked,
/obj/item/stack/marker_beacon/thirty,
/obj/item/weapon/material/knife/tacknife/survival,
/obj/item/weapon/material/knife/machete/deluxe,
@@ -47,6 +47,7 @@
/obj/item/clothing/head/soft,
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo/qm,
/obj/item/clothing/head/beret/qm,
/obj/item/clothing/shoes/boots/winter/supply)
/obj/structure/closet/secure_closet/quartermaster/Initialize()
@@ -28,6 +28,8 @@
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/ce,
/obj/item/clothing/shoes/boots/winter/engineering,
/obj/item/clothing/head/beret/engineering/ce,
/obj/item/clothing/head/beret/engineering/ce/white,
/obj/item/weapon/tank/emergency/oxygen/engi,
/obj/item/weapon/reagent_containers/spray/windowsealant) //VOREStation Add
@@ -49,3 +49,15 @@
else
add_overlay("open")
//VOREStation Add Start
/obj/structure/closet/secure_closet/guncabinet/excursion
name = "expedition weaponry cabinet"
req_one_access = list(access_explorer,access_armory)
/obj/structure/closet/secure_closet/guncabinet/excursion/New()
..()
for(var/i = 1 to 2)
new /obj/item/weapon/gun/energy/locked/frontier(src)
for(var/i = 1 to 2)
new /obj/item/weapon/gun/energy/locked/frontier/holdout(src)
//VOREStation Add End
@@ -142,6 +142,8 @@
/obj/item/clothing/suit/storage/hooded/wintercoat/medical,
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/cmo,
/obj/item/clothing/shoes/boots/winter/medical,
/obj/item/clothing/head/beret/medical/cmo,
/obj/item/clothing/head/beret/medical/cmo/blue,
/obj/item/weapon/storage/box/freezer,
/obj/item/clothing/mask/gas,
/obj/item/taperoll/medical,
@@ -47,6 +47,7 @@
/obj/item/clothing/suit/storage/hooded/wintercoat/science,
/obj/item/clothing/suit/storage/hooded/wintercoat/science/rd,
/obj/item/clothing/shoes/boots/winter/science,
/obj/item/clothing/head/beret/science/rd,
/obj/item/weapon/bluespace_harpoon) //VOREStation Add
/obj/structure/closet/secure_closet/xenoarchaeologist
@@ -61,7 +61,9 @@
/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)
/obj/item/clothing/suit/storage/hooded/wintercoat/hop,
/obj/item/clothing/head/caphat/hop/beret/,
/obj/item/clothing/head/caphat/hop/beret/white)
/obj/structure/closet/secure_closet/hos
@@ -451,6 +451,7 @@
/obj/item/clothing/suit/captunic,
/obj/item/clothing/suit/captunic/capjacket,
/obj/item/clothing/head/caphat/cap,
/obj/item/clothing/head/caphat/beret,
/obj/item/clothing/under/rank/captain,
/obj/item/clothing/shoes/brown,
/obj/item/clothing/gloves/captain,
@@ -41,7 +41,8 @@
"Frost Giant Spider" = /mob/living/simple_mob/animal/giant_spider/frost,
"Nurse Giant Spider" = /mob/living/simple_mob/animal/giant_spider/nurse/eggless,
"Giant Spider Queen" = /mob/living/simple_mob/animal/giant_spider/nurse/queen/eggless,
"Weretiger" = /mob/living/simple_mob/vore/weretiger
"Weretiger" = /mob/living/simple_mob/vore/weretiger,
"Catslug" = /mob/living/simple_mob/vore/alienanimals/catslug
)
/obj/structure/ghost_pod/ghost_activated/maintpred/create_occupant(var/mob/M)
+12 -12
View File
@@ -21,9 +21,9 @@
var/stripe_color
//rad_resistance_modifier = 0.5
// blend_objects defined on subtypes
// blend_objects defined on subtypes
noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
var/default_material = DEFAULT_WALL_MATERIAL
var/datum/material/material
var/grille_type
@@ -38,9 +38,9 @@
if(!materialtype)
materialtype = default_material
material = get_material_by_name(materialtype)
health = material.integrity
return INITIALIZE_HINT_LATELOAD
@@ -79,12 +79,12 @@
if(istype(W, /obj/item/stack/rods))
handle_rod_use(user, W)
return
// Making windows, different per subtype
else if(istype(W, /obj/item/stack/material/glass))
handle_glass_use(user, W)
return
// Dismantling the half wall
if(W.is_wrench())
for(var/obj/structure/S in loc)
@@ -110,7 +110,7 @@
if(can_place_items() && user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement))
auto_align(W, click_parameters)
return 1
return ..()
/obj/structure/low_wall/proc/can_place_items()
@@ -187,7 +187,7 @@
to_chat(user, "<span class='notice'>Assembling window...</span>")
if(!do_after(user, 4 SECONDS, G, exclusive = TASK_ALL_EXCLUSIVE))
return
if(!G.use(2))
if(!G.use(4))
return
new window_type(loc, null, TRUE)
return
@@ -415,7 +415,7 @@
other_connections = list("0","0","0","0")
else
update_connections()
var/percent_damage = 0 // Used for icon state of damage layer
var/damage_alpha = 0 // Used for alpha blending of damage layer
if (maxhealth && health < maxhealth)
@@ -506,7 +506,7 @@
other_connections = list("0","0","0","0")
else
update_connections()
var/img_dir
var/image/I
for(var/i = 1 to 4)
@@ -573,14 +573,14 @@
if(locate(/obj/effect/low_wall_spawner) in oview(0, src))
warning("Duplicate low wall spawners in [x],[y],[z]!")
return INITIALIZE_HINT_QDEL
if(low_wall_type)
new low_wall_type(loc)
if(grille_type)
new grille_type(loc)
if(window_type)
new window_type(loc)
return INITIALIZE_HINT_QDEL
// Bay types
+5 -2
View File
@@ -156,7 +156,7 @@
visible_message("<span class='danger'>[user] hits [src] with [W]!</span>")
if(material == get_material_by_name("resin"))
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
else if(material == (get_material_by_name(MAT_WOOD) || get_material_by_name(MAT_SIFWOOD)))
else if(material == (get_material_by_name(MAT_WOOD) || get_material_by_name(MAT_SIFWOOD) || get_material_by_name(MAT_HARDWOOD)))
playsound(src, 'sound/effects/woodcutting.ogg', 100, 1)
else
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
@@ -181,7 +181,7 @@
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
if(material == get_material_by_name("resin"))
playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
else if(material == (get_material_by_name(MAT_WOOD) || get_material_by_name(MAT_SIFWOOD)))
else if(material == (get_material_by_name(MAT_WOOD) || get_material_by_name(MAT_SIFWOOD) || get_material_by_name(MAT_HARDWOOD)))
playsound(src, 'sound/effects/woodcutting.ogg', 100, 1)
else
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
@@ -243,6 +243,9 @@
..(mapload, material_name || MAT_WOOD)
knock_sound = 'sound/machines/door/knock_wood.wav'
/obj/structure/simple_door/hardwood/Initialize(mapload,var/material_name)
..(mapload, material_name || MAT_HARDWOOD)
/obj/structure/simple_door/sifwood/Initialize(mapload,var/material_name)
..(mapload, material_name || MAT_SIFWOOD)