diff --git a/code/__defines/exosuit_fab.dm b/code/__defines/exosuit_fab.dm index dce03c9301..ccb05b9374 100644 --- a/code/__defines/exosuit_fab.dm +++ b/code/__defines/exosuit_fab.dm @@ -8,7 +8,8 @@ #define BORG_MODULE_MEDICAL (1<<3) /// Module is compatible with Engineering Cyborg models #define BORG_MODULE_ENGINEERING (1<<4) - +/// Module is compatible with Science Cyborg models +#define BORG_MODULE_SCIENCE (1<<5) /// Module is compatible with Ripley Exosuit models #define EXOSUIT_MODULE_RIPLEY (1<<0) /// Module is compatible with Odyseeus Exosuit models diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 5d00d7980b..1883f2b005 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -134,7 +134,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt - pda_type = /obj/item/device/pda + pda_type = /obj/item/device/pda/pilot id_type = /obj/item/weapon/card/id/civilian/pilot id_pda_assignment = "Pilot" flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm index c26903f1dc..0a400a1a28 100644 --- a/code/game/jobs/job/civilian_vr.dm +++ b/code/game/jobs/job/civilian_vr.dm @@ -213,8 +213,8 @@ economic_modifier = 5 minimal_player_age = 3 pto_type = PTO_CIVILIAN - access = list(access_pilot) - minimal_access = list(access_pilot) + access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) + minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) outfit_type = /decl/hierarchy/outfit/job/pilot job_description = "A Pilot flies the various shuttles in the Virgo-Erigone System." alt_titles = list("Co-Pilot" = /datum/alt_title/co_pilot, "Navigator" = /datum/alt_title/navigator, "Helmsman" = /datum/alt_title/helmsman) @@ -293,4 +293,4 @@ /datum/alt_title/artist title = "Artist" - title_blurb = "An Artist's calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." \ No newline at end of file + title_blurb = "An Artist's calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 4e92255d05..7e4bc6ed87 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -31,7 +31,7 @@ var/time_coeff = 1 /// Coefficient for the efficiency of material usage in item building. Based on the installed parts. var/component_coeff = 1 - + var/loading_icon_state = "mechfab-idle" var/list/materials = list( @@ -148,6 +148,9 @@ sub_category += "Medical" if(module_types & BORG_MODULE_ENGINEERING) sub_category += "Engineering" + if(module_types & BORG_MODULE_SCIENCE) + sub_category += "Science" + else sub_category += "All Cyborgs" // Else check if this design builds a piece of exosuit equipment. @@ -309,7 +312,7 @@ atom_say("Obstruction cleared. \The [stored_part] is complete.") stored_part.forceMove(exit) stored_part = null - + // If there's nothing being built, try to build something if(!being_built) // If we're not processing the queue anymore or there's nothing to build, end processing. @@ -703,7 +706,7 @@ // Reduce our amount stored materials[matstring] -= ejected * S.perunit - + // Recurse if we have enough left for more sheets if(recursive && materials[matstring] >= S.perunit) eject_materials(matstring, -1) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ac71abf677..3938f3c17b 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -155,7 +155,7 @@ /obj/item/borg/upgrade/advhealth name = "advanced health analyzer module" - desc = "A carbon dioxide jetpack suitable for low-gravity operations." + desc = "An Advanced Health Analyzer, optimized for borg mounting." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" require_module = 1 @@ -214,4 +214,4 @@ R.add_language(LANGUAGE_TERMINUS, 1) R.add_language(LANGUAGE_ZADDAT, 1) - return 1 + return 1 \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_upgrades_vr.dm b/code/game/objects/items/robot/robot_upgrades_vr.dm index 215a936bda..bd9f247ec7 100644 --- a/code/game/objects/items/robot/robot_upgrades_vr.dm +++ b/code/game/objects/items/robot/robot_upgrades_vr.dm @@ -66,3 +66,93 @@ to_chat(usr, "Internal capacity doubled.") T.upgraded_capacity = TRUE return 1 + +//Advanced RPED +/obj/item/borg/upgrade/advrped + name = "Advanced Rapid Part Exchange Device" + desc = "An ARPED, now in borg size!" + icon_state = "cyborg_upgrade3" + item_state = "cyborg_upgrade" + module_flags = BORG_MODULE_SCIENCE + require_module = 1 + +/obj/item/borg/upgrade/advrped/action(var/mob/living/silicon/robot/R) + if(..()) return 0 + + var/obj/item/weapon/storage/part_replacer/adv/T = locate() in R.module + + if(!R.module || !(type in R.module.supported_upgrades)) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + if(!T) + T = locate() in R.module.contents + if(!T) + T = locate() in R.module.modules + if(!T) + R.module.modules += new/obj/item/weapon/storage/part_replacer/adv(R.module) + return 1 + if(T) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + +//Diamond Drill +/obj/item/borg/upgrade/diamonddrill + name = "Mounted Diamond Drill" + desc = "An advanced drill, optimized for borg use." + icon_state = "cyborg_upgrade3" + item_state = "cyborg_upgrade" + module_flags = BORG_MODULE_MINER + require_module = 1 + +/obj/item/borg/upgrade/diamonddrill/action(var/mob/living/silicon/robot/R) + if(..()) return 0 + + var/obj/item/weapon/pickaxe/diamonddrill/T = locate() in R.module + + if(!R.module || !(type in R.module.supported_upgrades)) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + if(!T) + T = locate() in R.module.contents + if(!T) + T = locate() in R.module.modules + if(!T) + R.module.modules += new/obj/item/weapon/pickaxe/diamonddrill(R.module) + return 1 + if(T) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + +//PKA +/obj/item/borg/upgrade/pka + name = "Protokenetic Accelerator Upgrade" + desc = "A borg mounted PKA Rifle for use in mining and wildlife defense." + icon_state = "cyborg_upgrade3" + item_state = "cyborg_upgrade" + module_flags = BORG_MODULE_MINER + require_module = 1 + +/obj/item/borg/upgrade/pka/action(var/mob/living/silicon/robot/R) + if(..()) return 0 + + var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/T = locate() in R.module + + if(!R.module || !(type in R.module.supported_upgrades)) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 + if(!T) + T = locate() in R.module.contents + if(!T) + T = locate() in R.module.modules + if(!T) + R.module.modules += new/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(R.module) + return 1 + if(T) + to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") + to_chat(usr, "There's no mounting point for the module!") + return 0 \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/toolbox_vr.dm b/code/game/objects/items/weapons/storage/toolbox_vr.dm index f65731091a..12ef265f1f 100644 --- a/code/game/objects/items/weapons/storage/toolbox_vr.dm +++ b/code/game/objects/items/weapons/storage/toolbox_vr.dm @@ -7,4 +7,5 @@ max_storage_space = ITEMSIZE_COST_SMALL * 6 /obj/item/weapon/storage/toolbox/lunchbox/survival/zaddat - starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose = 6) \ No newline at end of file + name = "zaddat survival lunchbox" + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose = 6) diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm index 6cfb8060ee..5091be7e04 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm @@ -81,9 +81,9 @@ allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Talon Doctor") /datum/gear/accessory/bluespace - display_name = "bluespace badge (Eng, Sec, Med, Exploration, Miner)" + display_name = "bluespace badge (Eng, Sec, Med, Exploration, Miner, Pilot)" path = /obj/item/clothing/accessory/storage/bluespace - allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Explorer","Pathfinder","Shaft Miner","Talon Captain","Talon Doctor","Talon Engineer","Talon Guard", "Talon Miner") + allowed_roles = list("Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Explorer","Pathfinder","Shaft Miner","Talon Captain","Talon Doctor","Talon Engineer","Talon Guard","Talon Miner","Pilot") cost = 2 /datum/gear/accessory/webbing @@ -123,4 +123,4 @@ Talon pin /datum/gear/accessory/talonpin display_name = "Talon pin" description = "A small enamel pin of the Talon logo." - path = /obj/item/clothing/accessory/talon \ No newline at end of file + path = /obj/item/clothing/accessory/talon diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index 0f9060a1af..6bc02ada4f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -380,6 +380,12 @@ ckeywhitelist = list("erikthedog") character_name = list("Erik Ramadwood") +/datum/gear/fluff/salvage_id + path = /obj/item/weapon/card/id/event/polymorphic/itg + display_name = "Salvage's ITG-ID card" + ckeywhitelist = list("essbie") + character_name = list("Savage") + // F CKEYS /datum/gear/fluff/yikatihaki_armor path = /obj/item/clothing/suit/armor/vox_scrap diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 9589cc0246..552032ddee 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -785,7 +785,7 @@ return if(I_GRAB) if(is_vore_predator(H) && H.devourable && src.feeding && src.devourable) - var/switchy = tgui_alert(H, "Do you wish to eat [src] or feed yourself to them?", "Feed or Eat",list("Eat","Feed", "Nevermind!")) + var/switchy = tgui_alert(H, "Do you wish to eat [src] or feed yourself to them?", "Feed or Eat",list("Nevermind!", "Eat","Feed")) switch(switchy) if("Nevermind!") return @@ -796,11 +796,11 @@ H.feed_self_to_grabbed(H, src) return if(is_vore_predator(H) && src.devourable) - if(tgui_alert(H, "Do you wish to eat [src]?", "Eat?",list("Yes!", "Nevermind!")) == "Yes!") + if(tgui_alert(H, "Do you wish to eat [src]?", "Eat?",list("Nevermind!", "Yes!")) == "Yes!") feed_grabbed_to_self(H, src) return if(H.devourable && src.feeding) - if(tgui_alert(H, "Do you wish to feed yourself to [src]?", "Feed?",list("Yes!", "Nevermind!")) == "Yes!") + if(tgui_alert(H, "Do you wish to feed yourself to [src]?", "Feed?",list("Nevermind!", "Yes!")) == "Yes!") H.feed_self_to_grabbed(H, src) return diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 5257f59d77..c0cad41c5c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -741,6 +741,7 @@ var/global/list/robot_modules = list( "Tower" = "drider-Miner", "Miss M" = "miss-miner" // YW change, Added Miss M ) + supported_upgrades = list(/obj/item/borg/upgrade/pka, /obj/item/borg/upgrade/diamonddrill) /obj/item/weapon/robot_module/robot/miner/New() ..() @@ -752,8 +753,12 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) src.modules += new /obj/item/weapon/gripper/miner(src) src.modules += new /obj/item/weapon/mining_scanner(src) - src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) - src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) + // New Emag gear for the minebots! + src.emag = new /obj/item/weapon/kinetic_crusher/machete/dagger(src) + + // No reason for these, upgrade modules replace them. + //src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) + //src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) /obj/item/weapon/robot_module/robot/research name = "research module" @@ -774,6 +779,7 @@ var/global/list/robot_modules = list( "Pneuma" = "pneuma-Research", "Tower" = "drider-Research" ) + supported_upgrades = list(/obj/item/borg/upgrade/advrped) /obj/item/weapon/robot_module/robot/research/New() ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index e862c5a4b5..30bc06d6c7 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -190,6 +190,7 @@ networks = list(NETWORK_SECURITY) pto_type = PTO_SECURITY can_be_pushed = 0 + supported_upgrades = list(/obj/item/borg/upgrade/tasercooler) /obj/item/weapon/robot_module/robot/knine/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/weapon/handcuffs/cyborg(src) //You need cuffs to be a proper sec borg! @@ -472,6 +473,7 @@ channels = list("Science" = 1) pto_type = PTO_SCIENCE can_be_pushed = 0 + supported_upgrades = list(/obj/item/borg/upgrade/advrped) /obj/item/weapon/robot_module/robot/science/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/weapon/dogborg/jaws/small(src) @@ -851,6 +853,7 @@ channels = list("Supply" = 1) pto_type = PTO_CARGO can_be_pushed = 0 + supported_upgrades = list(/obj/item/borg/upgrade/pka, /obj/item/borg/upgrade/diamonddrill) /obj/item/weapon/robot_module/robot/kmine/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/borg/sight/material(src) @@ -862,8 +865,12 @@ src.modules += new /obj/item/weapon/gripper/miner(src) src.modules += new /obj/item/weapon/mining_scanner(src) src.modules += new /obj/item/weapon/dogborg/jaws/small(src) - src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) - src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) + // New Emag gear for the minebots! + src.emag = new /obj/item/weapon/kinetic_crusher/machete/dagger(src) + + // No reason for these, upgrade modules replace them. + //src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) + //src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) var/datum/matter_synth/water = new /datum/matter_synth(500) water.name = "Water reserves" diff --git a/code/modules/mob/new_player/sprite_accessories_taur.dm b/code/modules/mob/new_player/sprite_accessories_taur.dm index 4fa3d66e1f..be53387d14 100644 --- a/code/modules/mob/new_player/sprite_accessories_taur.dm +++ b/code/modules/mob/new_player/sprite_accessories_taur.dm @@ -191,6 +191,11 @@ suit_sprites = 'icons/mob/taursuits_horse.dmi' icon_sprite_tag = "horse" +/datum/sprite_accessory/tail/taur/horse/horse_2c + name = "Horse & colorable tail (Taur)" + extra_overlay = "horse_markings" + //icon_sprite_tag = "wolf2c" + /datum/sprite_accessory/tail/taur/horse/synthhorse name = "SynthHorse dual-color (Taur)" icon_state = "synthhorse_s" diff --git a/code/modules/overmap/ships/computers/computer_shims.dm b/code/modules/overmap/ships/computers/computer_shims.dm index 16d9285c39..72fdbe4fb7 100644 --- a/code/modules/overmap/ships/computers/computer_shims.dm +++ b/code/modules/overmap/ships/computers/computer_shims.dm @@ -50,6 +50,7 @@ // /obj/machinery/computer/ship var/core_skill = /datum/skill/devices //The skill used for skill checks for this machine (mostly so subtypes can use different skills). + var/ai_control = TRUE //VOREStation Edit // // Topic @@ -70,6 +71,11 @@ return TRUE /obj/machinery/computer/ship/attack_ai(mob/user) + //VOREStation Addition Start + if(!ai_control && issilicon(user)) + to_chat(user, "Access Denied.") + return + //VOREStation Addition End if(tgui_status(user, tgui_state()) > STATUS_CLOSE) return interface_interact(user) @@ -82,6 +88,11 @@ /obj/machinery/computer/ship/attack_hand(mob/user) if((. = ..())) return + //VOREStation Addition Start + if(!ai_control && issilicon(user)) + to_chat(user, "Access Denied.") + return TRUE + //VOREStation Addition End if(!allowed(user)) to_chat(user, "Access Denied.") return TRUE diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index fe24315788..2c821ef793 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -29,6 +29,7 @@ GLOBAL_LIST_EMPTY(all_waypoints) var/speedlimit = 1/(20 SECONDS) //top speed for autopilot, 5 var/accellimit = 0.001 //manual limiter for acceleration req_one_access = list(access_pilot) //VOREStation Edit + ai_control = FALSE //VOREStation Edit - AI/Borgs shouldn't really be flying off in ships without crew help // fancy sprite /obj/machinery/computer/ship/helm/adv diff --git a/code/modules/pda/pda_vr.dm b/code/modules/pda/pda_vr.dm index 0e4b53d698..671a3ee7b0 100644 --- a/code/modules/pda/pda_vr.dm +++ b/code/modules/pda/pda_vr.dm @@ -24,3 +24,6 @@ /obj/item/device/pda/sar default_cartridge = /obj/item/weapon/cartridge/sar icon_state = "pda-gene" //Gives FM's a distinct PDA of their own, rather than sharing with the bridge-secretary & CCO's. + +/obj/item/device/pda/pilot + icon_state = "pda-pilot" //New sprites, but still no ROM cartridge or anything diff --git a/code/modules/projectiles/ammunition/ammo_boxes.dm b/code/modules/projectiles/ammunition/ammo_boxes.dm index 04d9d55d70..566b878c44 100644 --- a/code/modules/projectiles/ammunition/ammo_boxes.dm +++ b/code/modules/projectiles/ammunition/ammo_boxes.dm @@ -40,6 +40,7 @@ name = "\improper Donk-Soft riot ammo box" desc = "Contains Donk-Soft riot darts. It's Donk or Don't! Ages 18 and up." icon_state = "foambox_riot" + ammo_type = /obj/item/ammo_casing/afoam_dart/riot matter = list(MAT_STEEL = 5040, MAT_PLASTIC = 1800) /* diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm index 2cbe138c61..5609e6f46a 100644 --- a/code/modules/projectiles/ammunition/rounds.dm +++ b/code/modules/projectiles/ammunition/rounds.dm @@ -36,6 +36,7 @@ /obj/item/ammo_casing/afoam_dart/riot name = "riot foam dart" desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." + projectile_type = /obj/item/projectile/bullet/foam_dart_riot matter = list(MAT_STEEL = 210, MAT_PLASTIC = 60) icon_state = "foamdart_riot" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 8878d3a4f7..38cbacb58e 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -387,8 +387,30 @@ if(istype(T)) new /obj/item/ammo_casing/afoam_dart(get_turf(loc)) -/obj/item/projectile/bullet/foam_dart/riot +/obj/item/projectile/bullet/foam_dart_riot name = "riot foam dart" desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." - agony = 50 - icon_state = "foamdart_riot_proj" \ No newline at end of file + damage = 0 // It's a damn toy. + embed_chance = 0 + agony = 50 // The riot part of the riot dart + nodamage = TRUE + sharp = FALSE + damage_type = HALLOSS + impact_effect_type = null + fire_sound = 'sound/items/syringeproj.ogg' + combustion = FALSE + icon = 'icons/obj/gun_toy.dmi' + icon_state = "foamdart_riot_proj" + range = 15 + +/obj/item/projectile/bullet/foam_dart_riot/on_impact(var/atom/A) + . = ..() + var/turf/T = get_turf(loc) + if(istype(T)) + new /obj/item/ammo_casing/afoam_dart/riot(get_turf(loc)) + +/obj/item/projectile/bullet/foam_dart_riot/on_range(var/atom/A) + . = ..() + var/turf/T = get_turf(loc) + if(istype(T)) + new /obj/item/ammo_casing/afoam_dart/riot(get_turf(loc)) \ No newline at end of file diff --git a/code/modules/research/designs/mining_toys.dm b/code/modules/research/designs/mining_toys.dm index 5667ac59be..c1784dec6f 100644 --- a/code/modules/research/designs/mining_toys.dm +++ b/code/modules/research/designs/mining_toys.dm @@ -48,3 +48,12 @@ materials = list(MAT_STEEL = 1000,MAT_GLASS = 1000) build_path = /obj/item/device/depth_scanner sort_string = "FBAAA" + +/datum/design/item/weapon/mining/upgradeAOE + name = "Mining Explosion Upgrade" + desc = "An area of effect upgrade for the Proto-Kinetic Accelerator." + id = "pka_mineaoe" + req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 8, TECH_ENGINEERING = 7) // Lets make this endgame level tech, due to it's power. + materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_URANIUM = 2000, MAT_PHORON = 2000) + build_path = /obj/item/borg/upgrade/modkit/aoe/turfs + sort_string = "FAAF" \ No newline at end of file diff --git a/code/modules/research/prosfab_designs_vr.dm b/code/modules/research/prosfab_designs_vr.dm index 67a4abe412..bb15c848f8 100644 --- a/code/modules/research/prosfab_designs_vr.dm +++ b/code/modules/research/prosfab_designs_vr.dm @@ -12,4 +12,33 @@ id = "borg_hound_capacity_module" req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2) materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000) - build_path = /obj/item/borg/upgrade/bellysizeupgrade \ No newline at end of file + build_path = /obj/item/borg/upgrade/bellysizeupgrade + + +/* + Some job related borg upgrade modules, adding useful items for puppers. + +*/ +/datum/design/item/prosfab/robot_upgrade/advrped + name = "Advanced Rapid Part Exchange Device" + desc = "Exactly the same as a standard Advanced RPED, but this one has mounting hardware for a Science Borg." + id = "borg_advrped_module" + req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 6) + materials = list(MAT_STEEL = 30000, MAT_GLASS = 10000) + build_path = /obj/item/borg/upgrade/advrped + +/datum/design/item/prosfab/robot_upgrade/diamonddrill + name = "Diamond Drill" + desc = "A mining drill with a diamond tip, made for use by Mining Borgs." + id = "borg_ddrill_module" + req_tech = list(TECH_MATERIAL = 6, TECH_POWER = 5, TECH_ENGINEERING = 5) + materials = list(MAT_STEEL = 3000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) + build_path = /obj/item/borg/upgrade/diamonddrill + +/datum/design/item/prosfab/robot_upgrade/pka + name = "Proto-Kinetic Accelerator" + desc = "A mining weapon designed for clearing rocks and hostile wildlife. This model is equiped with a self upgrade system, allowing it to attach modules hands free." + id = "borg_pka_module" + req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) + materials = list(MAT_PLASTEEL = 5000, MAT_GLASS = 1000, MAT_URANIUM = 500, MAT_PLATINUM = 350) + build_path = /obj/item/borg/upgrade/pka \ No newline at end of file diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 0eafd9a2e3..75ccefa492 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -10,10 +10,17 @@ var/skip_act = FALSE var/tgui_subtemplate = "ShuttleControlConsoleDefault" + var/ai_control = FALSE //VOREStation Edit - AI/Borgs shouldn't really be flying off in ships without crew help /obj/machinery/computer/shuttle_control/attack_hand(user as mob) if(..(user)) return + //VOREStation Addition Start + if(!ai_control && issilicon(user)) + to_chat(user, "Access Denied.") + return TRUE + //VOREStation Addition End + //src.add_fingerprint(user) //shouldn't need fingerprints just for looking at it. if(!allowed(user)) to_chat(user, "Access Denied.") diff --git a/code/modules/shuttles/shuttles_vr.dm b/code/modules/shuttles/shuttles_vr.dm index 7582e37ae7..58143b9950 100644 --- a/code/modules/shuttles/shuttles_vr.dm +++ b/code/modules/shuttles/shuttles_vr.dm @@ -34,6 +34,7 @@ name = "belter control console" req_one_access = list(access_mining, access_medical_equip) //Allows xenoarch, miners AND doctors to use it. shuttle_tag = "Belter" //The scanning console needs to enable/disable this at will. + ai_control = TRUE /obj/machinery/computer/shuttle_control/mining name = "mining elevator control console" diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm index 741d7e0941..3e76a34101 100644 --- a/code/modules/vore/eating/digest_act_vr.dm +++ b/code/modules/vore/eating/digest_act_vr.dm @@ -19,6 +19,7 @@ qdel(O) else if(item_storage) O.forceMove(item_storage) + GLOB.items_digested_roundstat++ qdel(src) return w_class @@ -57,6 +58,7 @@ S.use(1) digest_stage = w_class else + GLOB.items_digested_roundstat++ qdel(src) if(g_damage > w_class) return w_class diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index 8772db082a..791b974422 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ diff --git a/icons/obj/pda_holo.dmi b/icons/obj/pda_holo.dmi index 82c2e5f219..d8621a957a 100644 Binary files a/icons/obj/pda_holo.dmi and b/icons/obj/pda_holo.dmi differ diff --git a/icons/obj/pda_old.dmi b/icons/obj/pda_old.dmi index 954c15acba..3a0503db8a 100644 Binary files a/icons/obj/pda_old.dmi and b/icons/obj/pda_old.dmi differ diff --git a/icons/obj/pda_rugged.dmi b/icons/obj/pda_rugged.dmi index dedacce457..667a08b034 100644 Binary files a/icons/obj/pda_rugged.dmi and b/icons/obj/pda_rugged.dmi differ diff --git a/icons/obj/pda_slider.dmi b/icons/obj/pda_slider.dmi index e27eeff141..8ec1b97d46 100644 Binary files a/icons/obj/pda_slider.dmi and b/icons/obj/pda_slider.dmi differ diff --git a/icons/obj/pda_slim.dmi b/icons/obj/pda_slim.dmi index 5ac097b348..7260633765 100644 Binary files a/icons/obj/pda_slim.dmi and b/icons/obj/pda_slim.dmi differ diff --git a/icons/obj/pda_vr.dmi b/icons/obj/pda_vr.dmi index 1e088cc090..20ccdfd1f0 100644 Binary files a/icons/obj/pda_vr.dmi and b/icons/obj/pda_vr.dmi differ diff --git a/icons/obj/pda_wrist.dmi b/icons/obj/pda_wrist.dmi index 931ef0b2fe..c4fc27ea98 100644 Binary files a/icons/obj/pda_wrist.dmi and b/icons/obj/pda_wrist.dmi differ diff --git a/maps/cynosure/cynosure_jobs.dm b/maps/cynosure/cynosure_jobs.dm new file mode 100644 index 0000000000..d874f1f6cd --- /dev/null +++ b/maps/cynosure/cynosure_jobs.dm @@ -0,0 +1,55 @@ +// Pilots + +var/const/EXPLORER =(1<<14) + +var/const/access_explorer = 43 + +/datum/access/explorer + id = access_explorer + desc = "Explorer" + region = ACCESS_REGION_GENERAL + +//Cynosure Jobs + +/datum/department/planetside + name = DEPARTMENT_PLANET + color = "#555555" + sorting_order = 2 // Same as cargo in importance. + +/datum/job/explorer + title = "Explorer" + flag = EXPLORER + departments = list(DEPARTMENT_RESEARCH, DEPARTMENT_PLANET) + department_flag = MEDSCI + faction = "Station" + total_positions = 4 + spawn_positions = 4 + supervisors = "the Research Director" + selection_color = "#633D63" + economic_modifier = 4 + access = list(access_explorer, access_research) + minimal_access = list(access_explorer, access_research) + + outfit_type = /decl/hierarchy/outfit/job/explorer2 + job_description = "An Explorer searches for interesting things on the surface of Sif, and returns them to the station." + + alt_titles = list( + "Pilot" = /decl/hierarchy/outfit/job/pilot) + +/datum/job/rd + access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, + access_tox_storage, access_teleporter, access_sec_doors, + access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, + access_network, access_maint_tunnels, access_explorer, access_eva, access_external_airlocks) + minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, + access_tox_storage, access_teleporter, access_sec_doors, + access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, + access_network, access_maint_tunnels, access_explorer, access_eva, access_external_airlocks) + +/* + alt_titles = list( + "Explorer Technician" = /decl/hierarchy/outfit/job/explorer2/technician, + "Explorer Medic" = /decl/hierarchy/outfit/job/explorer2/medic) +*/ diff --git a/maps/stellardelight/stellar_delight_shuttle_defs.dm b/maps/stellardelight/stellar_delight_shuttle_defs.dm index e83c05be9e..57cbe5d469 100644 --- a/maps/stellardelight/stellar_delight_shuttle_defs.dm +++ b/maps/stellardelight/stellar_delight_shuttle_defs.dm @@ -58,6 +58,7 @@ name = "boat control console" shuttle_tag = "Exploration Shuttle" req_one_access = null + ai_control = TRUE // A shuttle lateloader landmark /obj/effect/shuttle_landmark/shuttle_initializer/exploration @@ -84,6 +85,7 @@ name = "boat control console" shuttle_tag = "Mining Shuttle" req_one_access = null + ai_control = TRUE // A shuttle lateloader landmark /obj/effect/shuttle_landmark/shuttle_initializer/mining diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 8478e8a3fa..79250a1c3d 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -23643,13 +23643,11 @@ /turf/simulated/floor/plating, /area/bridge_hallway) "aNa" = ( -/obj/machinery/computer/shuttle_control/tether_backup{ - req_one_access = list() - }, /obj/effect/floor_decal/fancy_shuttle{ fancy_shuttle_tag = "lifeboat1"; name = "lifeboat1" }, +/obj/machinery/computer/shuttle_control/tether_backup, /turf/simulated/floor/tiled, /area/shuttle/tether{ base_turf = /turf/simulated/floor/reinforced @@ -39252,10 +39250,12 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/power/smes/buildable/point_of_interest, /obj/structure/cable/green{ icon_state = "0-8" }, +/obj/machinery/power/smes/buildable{ + charge = 500000 + }, /turf/simulated/floor/tiled, /area/shuttle/tourbus/general) "gLg" = ( diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm index 42f9723477..27caa00596 100644 --- a/maps/tether/tether_shuttles.dm +++ b/maps/tether/tether_shuttles.dm @@ -5,7 +5,8 @@ /obj/machinery/computer/shuttle_control/tether_backup name = "tether backup shuttle control console" shuttle_tag = "Tether Backup" - req_one_access = list(access_heads,access_pilot) + req_one_access = list() + ai_control = TRUE /obj/machinery/computer/shuttle_control/multi/mercenary name = "vessel control console" @@ -36,6 +37,7 @@ name = "surface mining outpost shuttle control console" shuttle_tag = "Mining Outpost" req_one_access = list(access_mining) + ai_control = TRUE // // "Tram" Emergency Shuttler // Becuase the tram only has its own doors and no corresponding station doors, a docking controller is overkill. diff --git a/tgstation b/tgstation new file mode 160000 index 0000000000..ccf136aa07 --- /dev/null +++ b/tgstation @@ -0,0 +1 @@ +Subproject commit ccf136aa07b7d2dfe1a77cddb2b8b2d93cd86369 diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index c82918ee10..edbbbde4c2 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ pygit2 bidict==0.13.1 -Pillow==9.0.0 +Pillow==9.0.1