diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm index a33adbae29..c52c904bc5 100644 --- a/code/datums/autolathe/arms.dm +++ b/code/datums/autolathe/arms.dm @@ -147,17 +147,27 @@ name = "rifle magazine (5.45mm practice)" path =/obj/item/ammo_magazine/m545/practice +/datum/category_item/autolathe/arms/rifle_545_hunter + name = "rifle magazine (5.45mm hunting)" + path =/obj/item/ammo_magazine/m545/hunter + /datum/category_item/autolathe/arms/machinegun_545 name = "machinegun box magazine (5.56)" path =/obj/item/ammo_magazine/m545saw hidden = 1 +/datum/category_item/autolathe/arms/machinegun_545_hunter + name = "machinegun box magazine (5.56 hunting)" + path =/obj/item/ammo_magazine/m545saw/hunter + hidden = 1 + /////// 7.62 /datum/category_item/autolathe/arms/rifle_762 name = "rifle magazine (7.62mm)" path =/obj/item/ammo_magazine/m762 hidden = 1 + /* /datum/category_item/autolathe/arms/rifle_small_762 name = "rifle magazine (7.62mm)" @@ -384,6 +394,10 @@ path =/obj/item/ammo_magazine/clip/c762 hidden = 1 +/datum/category_item/autolathe/arms/rifle_clip_762_hunter + name = "ammo clip (7.62mm hunting)" + path =/obj/item/ammo_magazine/clip/c762/hunter + /datum/category_item/autolathe/arms/rifle_clip_762_practice name = "ammo clip (7.62mm practice)" path =/obj/item/ammo_magazine/clip/c762/practice diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 38316a6c50..0885cdef60 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -43,10 +43,13 @@ var/global/datum/controller/gameticker/ticker 'sound/music/title2.ogg',\ 'sound/music/clouds.s3m',\ 'sound/music/space_oddity.ogg') //Ground Control to Major Tom, this song is cool, what's going on? - do + + send2mainirc("Server lobby is loaded and open at byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]") + + do pregame_timeleft = 180 - world << "Welcome to the pre-game lobby!" - world << "Please, setup your character and select ready. Game will start in [pregame_timeleft] seconds" + to_chat(world, "Welcome to the pregame lobby!") + to_chat(world, "Please set up your character and select ready. The round will start in [pregame_timeleft] seconds.") while(current_state == GAME_STATE_PREGAME) for(var/i=0, i<10, i++) sleep(1) @@ -76,7 +79,7 @@ var/global/datum/controller/gameticker/ticker if(!runnable_modes.len) current_state = GAME_STATE_PREGAME Master.SetRunLevel(RUNLEVEL_LOBBY) - world << "Unable to choose playable game mode. Reverting to pre-game lobby." + to_chat(world, "Unable to choose playable game mode. Reverting to pregame lobby.") return 0 if(secret_force_mode != "secret") src.mode = config.pick_mode(secret_force_mode) @@ -87,11 +90,11 @@ var/global/datum/controller/gameticker/ticker src.mode = gamemode_cache[pickweight(weighted_modes)] else src.mode = config.pick_mode(master_mode) - + if(!src.mode) current_state = GAME_STATE_PREGAME Master.SetRunLevel(RUNLEVEL_LOBBY) - world << "Serious error in mode setup! Reverting to pre-game lobby." + to_chat(world, "Serious error in mode setup! Reverting to pregame lobby.") //Uses setup instead of set up due to computational context. return 0 job_master.ResetOccupations() @@ -100,7 +103,7 @@ var/global/datum/controller/gameticker/ticker job_master.DivideOccupations() // Apparently important for new antagonist system to register specific job antags properly. if(!src.mode.can_start()) - world << "Unable to start [mode.name]. Not enough players, [mode.required_players] players needed. Reverting to pre-game lobby." + world << "Unable to start [mode.name]. Not enough players readied, [mode.required_players] players needed. Reverting to pregame lobby." current_state = GAME_STATE_PREGAME Master.SetRunLevel(RUNLEVEL_LOBBY) mode.fail_setup() @@ -116,13 +119,13 @@ var/global/datum/controller/gameticker/ticker tmpmodes+=M.name tmpmodes = sortList(tmpmodes) if(tmpmodes.len) - world << "Possibilities: [english_list(tmpmodes, and_text= "; ", comma_text = "; ")]" + to_chat(world, "Possibilities: [english_list(tmpmodes, and_text= "; ", comma_text = "; ")]") else src.mode.announce() setup_economy() current_state = GAME_STATE_PLAYING - create_characters() //Create player characters and transfer them + create_characters() //Create player characters and transfer them. collect_minds() equip_characters() data_core.manifest() @@ -139,7 +142,7 @@ var/global/datum/controller/gameticker/ticker //Deleting Startpoints but we need the ai point to AI-ize people later if (S.name != "AI") qdel(S) - world << "Enjoy the game!" + to_chat(world, "Enjoy the game!") world << sound('sound/AI/welcome.ogg') // Skie //Holiday Round-start stuff ~Carn Holiday_Game_Start() @@ -152,7 +155,7 @@ var/global/datum/controller/gameticker/ticker if(C.holder) admins_number++ if(admins_number == 0) - send2adminirc("Round has started with no admins online.") + send2adminirc("A round has started with no admins online.") /* supply_controller.process() //Start the supply shuttle regenerating points -- TLE // handled in scheduler master_controller.process() //Start master_controller.process() @@ -304,7 +307,7 @@ var/global/datum/controller/gameticker/ticker if(captainless) for(var/mob/M in player_list) if(!istype(M,/mob/new_player)) - M << "Colony Directorship not forced on anyone." + to_chat(M, "Colony Directorship not forced on anyone.") proc/process() @@ -340,7 +343,7 @@ var/global/datum/controller/gameticker/ticker feedback_set_details("end_proper","nuke") time_left = 1 MINUTE //No point waiting five minutes if everyone's dead. if(!delay_end) - world << "Rebooting due to destruction of station in [round(time_left/600)] minutes." + to_chat(world, "Rebooting due to destruction of station in [round(time_left/600)] minutes.") else feedback_set_details("end_proper","proper completion") time_left = round(restart_timeout) @@ -353,15 +356,15 @@ var/global/datum/controller/gameticker/ticker while(time_left > 0) if(delay_end) break - world << "Restarting in [round(time_left/600)] minute\s." + to_chat(world, "Restarting in [round(time_left/600)] minute\s.") time_left -= 1 MINUTES sleep(600) if(!delay_end) world.Reboot() else - world << "An admin has delayed the round end." + to_chat(world, "An admin has delayed the round end.") else - world << "An admin has delayed the round end." + to_chat(world, "An admin has delayed the round end.") else if (mode_finished) post_game = 1 @@ -371,7 +374,7 @@ var/global/datum/controller/gameticker/ticker //call a transfer shuttle vote spawn(50) if(!round_end_announced) // Spam Prevention. Now it should announce only once. - world << "The round has ended!" + to_chat(world, "The round has ended!") round_end_announced = 1 vote.autotransfer() @@ -385,7 +388,7 @@ var/global/datum/controller/gameticker/ticker var/turf/playerTurf = get_turf(Player) if(emergency_shuttle.departed && emergency_shuttle.evac) if(isNotAdminLevel(playerTurf.z)) - Player << "You managed to survive, but were marooned on [station_name()] as [Player.real_name]..." + Player << "You survived the round, but remained on [station_name()] as [Player.real_name]." else Player << "You managed to survive the events on [station_name()] as [Player.real_name]." else if(isAdminLevel(playerTurf.z)) @@ -426,9 +429,9 @@ var/global/datum/controller/gameticker/ticker if (!robo.connected_ai) if (robo.stat != 2) - world << "[robo.name] (Played by: [robo.key]) survived as an AI-less synthetic! Its laws were:" + world << "[robo.name] (Played by: [robo.key]) survived as an AI-less stationbound synthetic! Its laws were:" else - world << "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a synthetic without an AI. Its laws were:" + world << "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a stationbound synthetic without an AI. Its laws were:" if(robo) //How the hell do we lose robo between here and the world messages directly above this? robo.laws.show_laws(world) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 1aadf981c4..4f6b7df94f 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -2,7 +2,7 @@ #define TRACKING_NO_COVERAGE 1 #define TRACKING_TERMINATE 2 -/mob/living/silicon/ai/var/max_locations = 10 +/mob/living/silicon/ai/var/max_locations = 30 /mob/living/silicon/ai/var/stored_locations[0] /proc/InvalidPlayerTurf(turf/T as turf) diff --git a/code/game/machinery/transportpod.dm b/code/game/machinery/transportpod.dm new file mode 100644 index 0000000000..96401c0908 --- /dev/null +++ b/code/game/machinery/transportpod.dm @@ -0,0 +1,110 @@ +/obj/machinery/transportpod + name = "Ballistic Transportation Pod" + desc = "A fast transit ballistic pod used to get from one place to the next. Batteries not included!" + icon = 'icons/obj/structures.dmi' + icon_state = "borg_pod_opened" + + density = 1 //thicc + anchored = 1 + use_power = 0 + + var/in_transit = 0 + var/mob/occupant = null + + var/xc = list(137, 209, 163, 110, 95, 60, 129, 201) // List of x values on the map to go to. + var/yc = list(134, 99, 169, 120, 96, 122, 189, 219) // List of y values on the map to go to. + + var/limit_x = 3 + var/limit_y = 3 + +/obj/machinery/transportpod/process() + if(occupant) + if(in_transit) + var/locNum = rand(0, 7) //pick a random location + var/turf/L = locate(xc[locNum], yc[locNum], 1) // Pairs the X and Y to get an actual location. + limit_x = xc[locNum]+1 + limit_y = yc[locNum]+1 + build() + sleep(20) //Give explosion time so the pod itself doesn't go boom + src.forceMove(L) + playsound(src, pick('sound/effects/Explosion1.ogg', 'sound/effects/Explosion2.ogg', 'sound/effects/Explosion3.ogg', 'sound/effects/Explosion4.ogg')) + in_transit = 0 + sleep(2) + go_out() + sleep(2) + del(src) + +/obj/machinery/transportpod/relaymove(mob/user as mob) + if(user.stat) + return + go_out() + return + +/obj/machinery/transportpod/update_icon() + ..() + if(occupant) + icon_state = "borg_pod_closed" + else + icon_state = "borg_pod_opened" + +/obj/machinery/transportpod/Bumped(var/mob/living/O) + go_in(O) + +/obj/machinery/transportpod/proc/go_in(var/mob/living/carbon/human/O) + if(occupant) + return + + if(O.incapacitated()) //aint no sleepy people getting in here + return + + add_fingerprint(O) + O.reset_view(src) + O.forceMove(src) + occupant = O + update_icon() + if(alert(O, "Are you sure you're ready to launch?", , "Yes", "No") == "Yes") + in_transit = 1 + playsound(src, HYPERSPACE_WARMUP) + else + go_out() + return 1 + +/obj/machinery/transportpod/proc/go_out() + if(!occupant) + return + + occupant.forceMove(src.loc) + occupant.reset_view() + occupant = null + update_icon() + +/obj/machinery/transportpod/verb/move_eject() + set category = "Object" + set name = "Eject Pod" + set src in oview(1) + + if(usr.incapacitated()) + return + + go_out() + add_fingerprint(usr) + return + +/obj/machinery/transportpod/verb/move_inside() + set category = "Object" + set name = "Enter Pod" + set src in oview(1) + + if(usr.incapacitated()) //just to DOUBLE CHECK the damn sleepy people don't touch the pod + return + + go_in(usr) + +/obj/machinery/transportpod/proc/build() + for(var/x = limit_x-2, x <= limit_x, x++) + for(var/y = limit_y-2, y <= limit_y, y++) + var/current_cell = locate(x, y, 1) + var/turf/T = get_turf(current_cell) + if(!current_cell) + continue + T.ChangeTurf(/turf/unsimulated/floor/shuttle_ceiling) \ No newline at end of file diff --git a/code/game/machinery/vr_console.dm b/code/game/machinery/vr_console.dm index e21aa27c96..79fdf882fa 100644 --- a/code/game/machinery/vr_console.dm +++ b/code/game/machinery/vr_console.dm @@ -53,6 +53,10 @@ if(default_deconstruction_screwdriver(user, I)) return else if(default_deconstruction_crowbar(user, I)) + if(occupant && avatar) + avatar.exit_vr() + avatar = null + go_out() return diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index a79faa60d2..62f02816ed 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -771,13 +771,13 @@ user.visible_message("\The [user] pokes [src].","You poke [src].") last_message = world.time -obj/item/toy/plushie/verb/rename_plushie() +/obj/item/toy/plushie/verb/rename_plushie() set name = "Name Plushie" set category = "Object" set desc = "Give your plushie a cute name!" - w_class = ITEMSIZE_TINY var/mob/M = usr - if(!M.mind) return 0 + if(!M.mind) + return 0 var/input = sanitizeSafe(input("What do you want to name the plushie?", ,""), MAX_NAME_LEN) diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index 6bc944552c..bf1796ea29 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -209,3 +209,26 @@ var/obj/item/clothing/suit/sweater_type = sweater sweaters[initial(sweater_type.name)] = sweater_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sweaters)) + +/datum/gear/accessory/bracelet/material + display_name = "bracelet selection" + description = "Choose from a number of bracelets." + path = /obj/item/clothing/accessory/bracelet + cost = 1 + +/datum/gear/accessory/bracelet/material/New() + ..() + var/bracelettype = list() + bracelettype["bracelet, steel"] = /obj/item/clothing/accessory/bracelet/material/steel + bracelettype["bracelet, iron"] = /obj/item/clothing/accessory/bracelet/material/iron + bracelettype["bracelet, silver"] = /obj/item/clothing/accessory/bracelet/material/silver + bracelettype["bracelet, gold"] = /obj/item/clothing/accessory/bracelet/material/gold + bracelettype["bracelet, platinum"] = /obj/item/clothing/accessory/bracelet/material/platinum + bracelettype["bracelet, glass"] = /obj/item/clothing/accessory/bracelet/material/glass + bracelettype["bracelet, wood"] = /obj/item/clothing/accessory/bracelet/material/wood + bracelettype["bracelet, plastic"] = /obj/item/clothing/accessory/bracelet/material/plastic + gear_tweaks += new/datum/gear_tweak/path(bracelettype) + +/datum/gear/accessory/bracelet/friendship + display_name = "friendship bracelet" + path = /obj/item/clothing/accessory/bracelet/friendship \ No newline at end of file diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 2acaff6852..c9b195a204 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -302,3 +302,81 @@ /obj/item/clothing/accessory/scarf/stripedblue name = "striped blue scarf" icon_state = "stripedbluescarf" + +//bracelets + +/obj/item/clothing/accessory/bracelet + name = "bracelet" + desc = "A simple silver bracelet with a clasp." + icon = 'icons/obj/clothing/ties.dmi' + icon_state = "bracelet" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_TIE + +/obj/item/clothing/accessory/bracelet/friendship + name = "friendship bracelet" + desc = "A beautiful friendship bracelet in all the colors of the rainbow." + icon_state = "friendbracelet" + +/obj/item/clothing/accessory/bracelet/friendship/verb/dedicate_bracelet() + set name = "Dedicate Bracelet" + set category = "Object" + set desc = "Dedicate your friendship bracelet to a special someone." + var/mob/M = usr + if(!M.mind) + return 0 + + var/input = sanitizeSafe(input("Who do you want to dedicate the bracelet to?", ,""), MAX_NAME_LEN) + + if(src && input && !M.stat && in_range(M,src)) + desc = "A beautiful friendship bracelet in all the colors of the rainbow. It's dedicated to [input]." + to_chat(M, "You dedicate the bracelet to [input], remembering the times you've had together.") + return 1 + + +/obj/item/clothing/accessory/bracelet/material + icon_state = "materialbracelet" + +/obj/item/clothing/accessory/bracelet/material/New(var/newloc, var/new_material) + ..(newloc) + if(!new_material) + new_material = DEFAULT_WALL_MATERIAL + material = get_material_by_name(new_material) + if(!istype(material)) + qdel(src) + return + name = "[material.display_name] bracelet" + desc = "A bracelet made from [material.display_name]." + color = material.icon_colour + +/obj/item/clothing/accessory/bracelet/material/get_material() + return material + +/obj/item/clothing/accessory/bracelet/material/wood/New(var/newloc) + ..(newloc, "wood") + +/obj/item/clothing/accessory/bracelet/material/plastic/New(var/newloc) + ..(newloc, "plastic") + +/obj/item/clothing/accessory/bracelet/material/iron/New(var/newloc) + ..(newloc, "iron") + +/obj/item/clothing/accessory/bracelet/material/steel/New(var/newloc) + ..(newloc, "steel") + +/obj/item/clothing/accessory/bracelet/material/silver/New(var/newloc) + ..(newloc, "silver") + +/obj/item/clothing/accessory/bracelet/material/gold/New(var/newloc) + ..(newloc, "gold") + +/obj/item/clothing/accessory/bracelet/material/platinum/New(var/newloc) + ..(newloc, "platinum") + +/obj/item/clothing/accessory/bracelet/material/phoron/New(var/newloc) + ..(newloc, "phoron") + +/obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) + ..(newloc, "glass") + + ..() \ No newline at end of file diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index c0c1eecd9e..7408b692a7 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -13,7 +13,7 @@ recipes += new/datum/stack_recipe("[display_name] armor plate", /obj/item/weapon/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] grave marker", /obj/item/weapon/material/gravemarker, 5, time = 50, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]") - + recipes += new/datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]") if(integrity>=50) recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index da01023e6a..1e0d988835 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -442,7 +442,7 @@ /mob/living/silicon/pai/verb/allowmodification() set name = "Change Access Modifcation Permission" set category = "pAI Commands" - desc = "Allows people to modify your access or block people from modifying your access." + set desc = "Allows people to modify your access or block people from modifying your access." if(idaccessible == 0) idaccessible = 1 diff --git a/code/modules/mob/living/simple_animal/animals/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm index 1b8f439f50..87df901527 100644 --- a/code/modules/mob/living/simple_animal/animals/mouse.dm +++ b/code/modules/mob/living/simple_animal/animals/mouse.dm @@ -79,7 +79,7 @@ icon_living = "mouse_[body_color]" icon_dead = "mouse_[body_color]_dead" icon_rest = "mouse_[body_color]_sleep" - desc = "It's a small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself." + desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself." /mob/living/simple_animal/mouse/proc/splat() src.health = 0 @@ -95,13 +95,13 @@ if( ishuman(AM) ) if(!stat) var/mob/M = AM - M << "\icon[src] Squeek!" + M.visible_message("\icon[src] Squeek!") M << 'sound/effects/mouse_squeak.ogg' ..() /mob/living/simple_animal/mouse/death() layer = MOB_LAYER - playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 50, 1) + playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 35, 1) if(client) client.time_died_as_mouse = world.time ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index c21ab59def..231db2866a 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -504,7 +504,10 @@ stun_effect_act(0, Proj.agony) if(!Proj.nodamage) - adjustBruteLoss(Proj.damage) + var/true_damage = Proj.damage + if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level) + true_damage += Proj.SA_bonus_damage + adjustBruteLoss(true_damage) if(Proj.firer) react_to_attack(Proj.firer) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 10a4b5ead9..9af8597c9b 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -356,6 +356,14 @@ name = "extended magazine (5.45mm armor-piercing)" max_ammo = 30 +/obj/item/ammo_magazine/m545/hunter + name = "magazine (5.45mm hunting)" + ammo_type = /obj/item/ammo_casing/a545/hunter + +/obj/item/ammo_magazine/m545/hunter/ext + name = "extended magazine (5.45mm hunting)" + max_ammo = 30 + /obj/item/ammo_magazine/m545/small name = "reduced magazine (5.45mm)" icon_state = "m545-small" @@ -373,6 +381,10 @@ name = "magazine (5.45mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a545/ap +/obj/item/ammo_magazine/m545/small/hunter + name = "magazine (5.45mm hunting)" + ammo_type = /obj/item/ammo_casing/a545/hunter + /obj/item/ammo_magazine/clip/c545 name = "ammo clip (5.45mm)" icon_state = "clip_rifle" @@ -386,6 +398,10 @@ name = "rifle clip (5.45mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a545/ap +/obj/item/ammo_magazine/clip/c545/hunter + name = "rifle clip (5.45mm hunting)" + ammo_type = /obj/item/ammo_casing/a545/hunter + /obj/item/ammo_magazine/clip/c545/practice name = "rifle clip (5.45mm practice)" ammo_type = /obj/item/ammo_casing/a545 @@ -406,6 +422,10 @@ name = "magazine box (5.45mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a545/ap +/obj/item/ammo_magazine/m545saw/hunter + name = "magazine box (5.45mm hunting)" + ammo_type = /obj/item/ammo_casing/a545/hunter + /obj/item/ammo_magazine/m545saw/empty initial_ammo = 0 @@ -505,6 +525,10 @@ name = "rifle clip (7.62mm practice)" ammo_type = /obj/item/ammo_casing/a762p +/obj/item/ammo_magazine/clip/c762/hunter + name = "rifle clip (7.62mm hunting)" + ammo_type = /obj/item/ammo_casing/a762/hunter + /obj/item/ammo_magazine/m762svd name = "\improper SVD magazine (7.62mm)" icon_state = "SVD" @@ -551,12 +575,12 @@ /obj/item/ammo_magazine/clip/c12g name = "ammo clip (12g slug)" - icon_state = "12gclipslug" //largely a codersprite, looks good enough. feel free to make a better one. + icon_state = "12gclipslug" // Still a placeholder sprite. Feel free to make a better one. desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with slugs." caliber = "12g" ammo_type = /obj/item/ammo_casing/a12g - matter = list(DEFAULT_WALL_MATERIAL = 1790) // slugs shells x4 + 350 metal for the clip itself. - max_ammo = 4 + matter = list(DEFAULT_WALL_MATERIAL = 1070) // slugs shells x2 + 350 metal for the clip itself. + max_ammo = 2 multiple_sprites = 1 /obj/item/ammo_magazine/clip/c12g/pellet @@ -564,14 +588,14 @@ icon_state = "12gclipshell" desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with buckshot." ammo_type = /obj/item/ammo_casing/a12g/pellet - matter = list(DEFAULT_WALL_MATERIAL = 1790) // buckshot and slugs cost the same + matter = list(DEFAULT_WALL_MATERIAL = 1070) // buckshot and slugs cost the same /obj/item/ammo_magazine/clip/c12g/beanbag name = "ammo clip (12g beanbag)" icon_state = "12gclipbean" desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with beanbags." ammo_type = /obj/item/ammo_casing/a12g/beanbag - matter = list(DEFAULT_WALL_MATERIAL = 1070) //beanbags x4 + 350 metal + matter = list(DEFAULT_WALL_MATERIAL = 710) //beanbags x2 + 350 metal ///////// .75 Gyrojet ///////// diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm index ed06df7cc2..330e11d89b 100644 --- a/code/modules/projectiles/ammunition/rounds.dm +++ b/code/modules/projectiles/ammunition/rounds.dm @@ -258,6 +258,10 @@ desc = "A 7.62mm hollow-point bullet casing." projectile_type = /obj/item/projectile/bullet/rifle/a762/hollow +/obj/item/ammo_casing/a762/hunter + desc = "A 7.62mm hunting bullet casing." + projectile_type = /obj/item/projectile/bullet/rifle/a762/hunter + /* * 14.5mm (anti-materiel rifle round) */ @@ -298,6 +302,10 @@ desc = "A 5.45mm hollow-point bullet casing." projectile_type = /obj/item/projectile/bullet/rifle/a545/hollow +/obj/item/ammo_casing/a545/hunter + desc = "A 5.45mm hunting bullet casing." + projectile_type = /obj/item/projectile/bullet/rifle/a545/hunter + /* * Misc */ diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index fdc5a445b9..2040b0a778 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -38,6 +38,8 @@ var/damage = 10 var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE, HALLOSS are the only things that should be in here + var/SA_bonus_damage = 0 // Some bullets inflict extra damage on simple animals. + var/SA_vulnerability = null // What kind of simple animal the above bonus damage should be applied to. Set to null to apply to all SAs. var/nodamage = 0 //Determines if the projectile will skip any damage inflictions var/taser_effect = 0 //If set then the projectile will apply it's agony damage using stun_effect_act() to mobs it hits, and other damage will be ignored var/check_armour = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 283e487272..a7132fa43b 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -209,6 +209,11 @@ armor_penetration = -50 penetrating = 0 +/obj/item/projectile/bullet/rifle/a762/hunter // Optimized for killing simple animals and not people, because Balance. + damage = 20 + SA_bonus_damage = 50 // 70 total on animals. + SA_vulnerability = SA_ANIMAL + /obj/item/projectile/bullet/rifle/a545 damage = 25 @@ -221,6 +226,11 @@ armor_penetration = -50 penetrating = 0 +/obj/item/projectile/bullet/rifle/a545/hunter + damage = 15 + SA_bonus_damage = 35 // 50 total on animals. + SA_vulnerability = SA_ANIMAL + /obj/item/projectile/bullet/rifle/a145 damage = 80 stun = 3 diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 708cc4e081..b7dd370190 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -210,7 +210,7 @@ other types of metals and chemistry for reagents). build_type = PROTOLATHE | MECHFAB /datum/design/item/powercell/AssembleDesignName() - name = "Power cell model ([item_name])" + name = "Power Cell Model ([item_name])" /datum/design/item/powercell/AssembleDesignDesc() if(build_path) diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm index 4d7149c188..8efeec6c0d 100644 --- a/code/modules/research/mechfab_designs.dm +++ b/code/modules/research/mechfab_designs.dm @@ -7,47 +7,47 @@ category = "Ripley" /datum/design/item/mechfab/ripley/chassis - name = "Ripley chassis" + name = "Ripley Chassis" id = "ripley_chassis" build_path = /obj/item/mecha_parts/chassis/ripley time = 10 materials = list(DEFAULT_WALL_MATERIAL = 15000) /datum/design/item/mechfab/ripley/chassis/firefighter - name = "Firefigher chassis" + name = "Firefigher Chassis" id = "firefighter_chassis" build_path = /obj/item/mecha_parts/chassis/firefighter /datum/design/item/mechfab/ripley/torso - name = "Ripley torso" + name = "Ripley Torso" id = "ripley_torso" build_path = /obj/item/mecha_parts/part/ripley_torso time = 20 materials = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 11250) /datum/design/item/mechfab/ripley/left_arm - name = "Ripley left arm" + name = "Ripley Left Arm" id = "ripley_left_arm" build_path = /obj/item/mecha_parts/part/ripley_left_arm time = 15 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/mechfab/ripley/right_arm - name = "Ripley right arm" + name = "Ripley Right Arm" id = "ripley_right_arm" build_path = /obj/item/mecha_parts/part/ripley_right_arm time = 15 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/mechfab/ripley/left_leg - name = "Ripley left leg" + name = "Ripley Left Leg" id = "ripley_left_leg" build_path = /obj/item/mecha_parts/part/ripley_left_leg time = 15 materials = list(DEFAULT_WALL_MATERIAL = 22500) /datum/design/item/mechfab/ripley/right_leg - name = "Ripley right leg" + name = "Ripley Right Leg" id = "ripley_right_leg" build_path = /obj/item/mecha_parts/part/ripley_right_leg time = 15 @@ -57,49 +57,49 @@ category = "Odysseus" /datum/design/item/mechfab/odysseus/chassis - name = "Odysseus chassis" + name = "Odysseus Chassis" id = "odysseus_chassis" build_path = /obj/item/mecha_parts/chassis/odysseus time = 10 materials = list(DEFAULT_WALL_MATERIAL = 15000) /datum/design/item/mechfab/odysseus/torso - name = "Odysseus torso" + name = "Odysseus Torso" id = "odysseus_torso" build_path = /obj/item/mecha_parts/part/odysseus_torso time = 18 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/mechfab/odysseus/head - name = "Odysseus head" + name = "Odysseus Head" id = "odysseus_head" build_path = /obj/item/mecha_parts/part/odysseus_head time = 10 materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 7500) /datum/design/item/mechfab/odysseus/left_arm - name = "Odysseus left arm" + name = "Odysseus Left Arm" id = "odysseus_left_arm" build_path = /obj/item/mecha_parts/part/odysseus_left_arm time = 12 materials = list(DEFAULT_WALL_MATERIAL = 7500) /datum/design/item/mechfab/odysseus/right_arm - name = "Odysseus right arm" + name = "Odysseus Right Arm" id = "odysseus_right_arm" build_path = /obj/item/mecha_parts/part/odysseus_right_arm time = 12 materials = list(DEFAULT_WALL_MATERIAL = 7500) /datum/design/item/mechfab/odysseus/left_leg - name = "Odysseus left leg" + name = "Odysseus Left Leg" id = "odysseus_left_leg" build_path = /obj/item/mecha_parts/part/odysseus_left_leg time = 13 materials = list(DEFAULT_WALL_MATERIAL = 11250) /datum/design/item/mechfab/odysseus/right_leg - name = "Odysseus right leg" + name = "Odysseus Right Leg" id = "odysseus_right_leg" build_path = /obj/item/mecha_parts/part/odysseus_right_leg time = 13 @@ -109,56 +109,56 @@ category = "Gygax" /datum/design/item/mechfab/gygax/chassis - name = "Gygax chassis" + name = "Gygax Chassis" id = "gygax_chassis" build_path = /obj/item/mecha_parts/chassis/gygax time = 10 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/mechfab/gygax/torso - name = "Gygax torso" + name = "Gygax Torso" id = "gygax_torso" build_path = /obj/item/mecha_parts/part/gygax_torso time = 30 materials = list(DEFAULT_WALL_MATERIAL = 37500, "glass" = 15000) /datum/design/item/mechfab/gygax/head - name = "Gygax head" + name = "Gygax Head" id = "gygax_head" build_path = /obj/item/mecha_parts/part/gygax_head time = 20 materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 7500) /datum/design/item/mechfab/gygax/left_arm - name = "Gygax left arm" + name = "Gygax Left Arm" id = "gygax_left_arm" build_path = /obj/item/mecha_parts/part/gygax_left_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 22500) /datum/design/item/mechfab/gygax/right_arm - name = "Gygax right arm" + name = "Gygax Right Arm" id = "gygax_right_arm" build_path = /obj/item/mecha_parts/part/gygax_right_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 22500) /datum/design/item/mechfab/gygax/left_leg - name = "Gygax left leg" + name = "Gygax Left Leg" id = "gygax_left_leg" build_path = /obj/item/mecha_parts/part/gygax_left_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 26250) /datum/design/item/mechfab/gygax/right_leg - name = "Gygax right leg" + name = "Gygax Right Leg" id = "gygax_right_leg" build_path = /obj/item/mecha_parts/part/gygax_right_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 26250) /datum/design/item/mechfab/gygax/armour - name = "Gygax armour plates" + name = "Gygax Armour Plates" id = "gygax_armour" build_path = /obj/item/mecha_parts/part/gygax_armour time = 60 @@ -168,56 +168,56 @@ category = "Durand" /datum/design/item/mechfab/durand/chassis - name = "Durand chassis" + name = "Durand Chassis" id = "durand_chassis" build_path = /obj/item/mecha_parts/chassis/durand time = 10 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/mechfab/durand/torso - name = "Durand torso" + name = "Durand Torso" id = "durand_torso" build_path = /obj/item/mecha_parts/part/durand_torso time = 30 materials = list(DEFAULT_WALL_MATERIAL = 41250, "glass" = 15000, "silver" = 7500) /datum/design/item/mechfab/durand/head - name = "Durand head" + name = "Durand Head" id = "durand_head" build_path = /obj/item/mecha_parts/part/durand_head time = 20 materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 7500, "silver" = 2250) /datum/design/item/mechfab/durand/left_arm - name = "Durand left arm" + name = "Durand Left Arm" id = "durand_left_arm" build_path = /obj/item/mecha_parts/part/durand_left_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250) /datum/design/item/mechfab/durand/right_arm - name = "Durand right arm" + name = "Durand Right Arm" id = "durand_right_arm" build_path = /obj/item/mecha_parts/part/durand_right_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250) /datum/design/item/mechfab/durand/left_leg - name = "Durand left leg" + name = "Durand Left Leg" id = "durand_left_leg" build_path = /obj/item/mecha_parts/part/durand_left_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250) /datum/design/item/mechfab/durand/right_leg - name = "Durand right leg" + name = "Durand Right Leg" id = "durand_right_leg" build_path = /obj/item/mecha_parts/part/durand_right_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250) /datum/design/item/mechfab/durand/armour - name = "Durand armour plates" + name = "Durand Armour Plates" id = "durand_armour" build_path = /obj/item/mecha_parts/part/durand_armour time = 60 @@ -234,14 +234,14 @@ desc = "Allows for the construction of \a '[item_name]' exosuit module." /datum/design/item/mecha/tracking - name = "Exosuit tracking beacon" + name = "Exosuit Tracking Beacon" id = "mech_tracker" time = 5 materials = list(DEFAULT_WALL_MATERIAL = 375) build_path = /obj/item/mecha_parts/mecha_tracking /datum/design/item/mecha/hydraulic_clamp - name = "Hydraulic clamp" + name = "Hydraulic Clamp" id = "hydraulic_clamp" build_path = /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp @@ -256,12 +256,12 @@ build_path = /obj/item/mecha_parts/mecha_equipment/tool/extinguisher /datum/design/item/mecha/cable_layer - name = "Cable layer" + name = "Cable Layer" id = "mech_cable_layer" build_path = /obj/item/mecha_parts/mecha_equipment/tool/cable_layer /datum/design/item/mecha/flaregun - name = "Flare launcher" + name = "Flare Launcher" id = "mecha_flare_gun" build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flare materials = list(DEFAULT_WALL_MATERIAL = 9375) @@ -273,30 +273,20 @@ materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 7500) /datum/design/item/mecha/syringe_gun - name = "Syringe gun" + name = "Syringe Gun" id = "mech_syringe_gun" build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun time = 20 materials = list(DEFAULT_WALL_MATERIAL = 2250, "glass" = 1500) -/* -/datum/design/item/mecha/syringe_gun - desc = "Exosuit-mounted syringe gun and chemical synthesizer." - id = "mech_syringe_gun" - req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4, TECH_MAGNET = 4, TECH_DATA = 3) - build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun - */ - /datum/design/item/mecha/passenger - name = "Passenger compartment" + name = "Passenger Compartment" id = "mech_passenger" build_path = /obj/item/mecha_parts/mecha_equipment/tool/passenger materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 3750) -//obj/item/mecha_parts/mecha_equipment/repair_droid, -//obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING /datum/design/item/mecha/taser - name = "PBT \"Pacifier\" mounted taser" + name = "PBT \"Pacifier\" Mounted Taser" id = "mech_taser" build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser @@ -316,38 +306,38 @@ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot /datum/design/item/mecha/weapon/laser - name = "CH-PS \"Immolator\" laser" + name = "CH-PS \"Immolator\" Laser" id = "mech_laser" req_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 3) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser /datum/design/item/mecha/weapon/laser_rigged - name = "Jury-rigged welder-laser" + name = "Jury-Rigged Welder-Laser" desc = "Allows for the construction of a welder-laser assembly package for non-combat exosuits." id = "mech_laser_rigged" req_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser /datum/design/item/mecha/weapon/laser_heavy - name = "CH-LC \"Solaris\" laser cannon" + name = "CH-LC \"Solaris\" Laser Cannon" id = "mech_laser_heavy" req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy /datum/design/item/mecha/weapon/ion - name = "mkIV ion heavy cannon" + name = "MK-IV Ion Heavy Cannon" id = "mech_ion" req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion /datum/design/item/mecha/weapon/grenade_launcher - name = "SGL-6 grenade launcher" + name = "SGL-6 Grenade Launcher" id = "mech_grenade_launcher" req_tech = list(TECH_COMBAT = 3) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang /datum/design/item/mecha/weapon/clusterbang_launcher - name = "SOP-6 grenade launcher" + name = "SOP-6 Grenade Launcher" desc = "A weapon that violates the Geneva Convention at 6 rounds per minute." id = "clusterbang_launcher" req_tech = list(TECH_COMBAT= 5, TECH_MATERIAL = 5, TECH_ILLEGAL = 3) @@ -380,7 +370,7 @@ // *** Nonweapon modules /datum/design/item/mecha/wormhole_gen - name = "Wormhole generator" + name = "Wormhole Generator" desc = "An exosuit module that can generate small quasi-stable wormholes." id = "mech_wormhole_gen" req_tech = list(TECH_BLUESPACE = 3, TECH_MAGNET = 2) @@ -403,36 +393,38 @@ build_path = /obj/item/mecha_parts/mecha_equipment/tool/rcd /datum/design/item/mecha/gravcatapult - name = "Gravitational catapult" + name = "Gravitational Catapult" desc = "An exosuit-mounted gravitational catapult." id = "mech_gravcatapult" req_tech = list(TECH_BLUESPACE = 2, TECH_MAGNET = 3, TECH_ENGINEERING = 3) build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult /datum/design/item/mecha/repair_droid - name = "Repair droid" + name = "Repair Droid" desc = "Automated repair droid, exosuits' best companion. BEEP BOOP" id = "mech_repair_droid" req_tech = list(TECH_MAGNET = 3, TECH_DATA = 3, TECH_ENGINEERING = 3) materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 750, "silver" = 1500, "glass" = 3750) build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid +//obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING + /datum/design/item/mecha/phoron_generator - desc = "Phoron reactor." + desc = "Phoron Reactor" id = "mech_phoron_generator" req_tech = list(TECH_PHORON = 2, TECH_POWER= 2, TECH_ENGINEERING = 2) build_path = /obj/item/mecha_parts/mecha_equipment/generator materials = list(DEFAULT_WALL_MATERIAL = 7500, "silver" = 375, "glass" = 750) /datum/design/item/mecha/energy_relay - name = "Energy relay" + name = "Energy Relay" id = "mech_energy_relay" req_tech = list(TECH_MAGNET = 4, TECH_POWER = 3) materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 1500, "silver" = 2250, "glass" = 1500) build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay /datum/design/item/mecha/ccw_armor - name = "CCW armor booster" + name = "CCW Armor Booster" desc = "Exosuit close-combat armor booster." id = "mech_ccw_armor" req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 4) @@ -440,6 +432,7 @@ build_path = /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster /datum/design/item/mecha/proj_armor + name = "Ranged Armor Booster" desc = "Exosuit projectile armor booster." id = "mech_proj_armor" req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 3) @@ -447,7 +440,7 @@ build_path = /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster /datum/design/item/mecha/diamond_drill - name = "Diamond drill" + name = "Diamond Drill" desc = "A diamond version of the exosuit drill. It's harder, better, faster, stronger." id = "mech_diamond_drill" req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3) @@ -455,7 +448,7 @@ build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill /datum/design/item/mecha/generator_nuclear - name = "Nuclear reactor" + name = "Nuclear Reactor" desc = "Exosuit-held nuclear reactor. Converts uranium and everyone's health to energy." id = "mech_generator_nuclear" req_tech = list(TECH_POWER= 3, TECH_ENGINEERING = 3, TECH_MATERIAL = 3) @@ -463,7 +456,7 @@ build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear /datum/design/item/synthetic_flash - name = "Synthetic flash" + name = "Synthetic Flash" id = "sflash" req_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 2) build_type = MECHFAB diff --git a/code/modules/research/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm index 4f3c47efc7..7a191f489f 100644 --- a/code/modules/research/prosfab_designs.dm +++ b/code/modules/research/prosfab_designs.dm @@ -63,7 +63,7 @@ var/gender = MALE /datum/design/item/prosfab/pros/torso/male - name = "FBP torso (M)" + name = "FBP Torso (M)" id = "pros_torso_m" build_path = /obj/item/organ/external/chest gender = MALE @@ -71,13 +71,13 @@ /obj/item/organ/external/chest/f //To satisfy Travis. :| /datum/design/item/prosfab/pros/torso/female - name = "FBP torso (F)" + name = "FBP Torso (F)" id = "pros_torso_f" build_path = /obj/item/organ/external/chest/f gender = FEMALE /datum/design/item/prosfab/pros/head - name = "Prosthetic head" + name = "Prosthetic Head" id = "pros_head" build_path = /obj/item/organ/external/head time = 30 @@ -85,103 +85,106 @@ // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_DATA = 3) //Saving the values just in case /datum/design/item/prosfab/pros/l_arm - name = "Prosthetic left arm" + name = "Prosthetic Left Arm" id = "pros_l_arm" build_path = /obj/item/organ/external/arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 10125) /datum/design/item/prosfab/pros/l_hand - name = "Prosthetic left hand" + name = "Prosthetic Left Hand" id = "pros_l_hand" build_path = /obj/item/organ/external/hand time = 15 materials = list(DEFAULT_WALL_MATERIAL = 3375) /datum/design/item/prosfab/pros/r_arm - name = "Prosthetic right arm" + name = "Prosthetic Right Arm" id = "pros_r_arm" build_path = /obj/item/organ/external/arm/right time = 20 materials = list(DEFAULT_WALL_MATERIAL = 10125) /datum/design/item/prosfab/pros/r_hand - name = "Prosthetic right hand" + name = "Prosthetic Right Hand" id = "pros_r_hand" build_path = /obj/item/organ/external/hand/right time = 15 materials = list(DEFAULT_WALL_MATERIAL = 3375) /datum/design/item/prosfab/pros/l_leg - name = "Prosthetic left leg" + name = "Prosthetic Left Leg" id = "pros_l_leg" build_path = /obj/item/organ/external/leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 8437) /datum/design/item/prosfab/pros/l_foot - name = "Prosthetic left foot" + name = "Prosthetic Left Foot" id = "pros_l_foot" build_path = /obj/item/organ/external/foot time = 15 materials = list(DEFAULT_WALL_MATERIAL = 2813) /datum/design/item/prosfab/pros/r_leg - name = "Prosthetic right leg" + name = "Prosthetic Right Leg" id = "pros_r_leg" build_path = /obj/item/organ/external/leg/right time = 20 materials = list(DEFAULT_WALL_MATERIAL = 8437) /datum/design/item/prosfab/pros/r_foot - name = "Prosthetic right foot" + name = "Prosthetic Right Foot" id = "pros_r_foot" build_path = /obj/item/organ/external/foot/right time = 15 materials = list(DEFAULT_WALL_MATERIAL = 2813) -/datum/design/item/prosfab/pros/cell - name = "Prosthetic powercell" +/datum/design/item/prosfab/pros/internal + category = "Prosthetics, Internal" + +/datum/design/item/prosfab/pros/internal/cell + name = "Prosthetic Powercell" id = "pros_cell" build_path = /obj/item/organ/internal/cell time = 15 materials = list(DEFAULT_WALL_MATERIAL = 7500, "glass" = 3000) // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2) -/datum/design/item/prosfab/pros/eyes - name = "Prosthetic eyes" +/datum/design/item/prosfab/pros/internal/eyes + name = "Prosthetic Eyes" id = "pros_eyes" build_path = /obj/item/organ/internal/eyes/robot time = 15 materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 5625) // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2) -/datum/design/item/prosfab/pros/heart - name = "Prosthetic heart" +/datum/design/item/prosfab/pros/internal/heart + name = "Prosthetic Heart" id = "pros_heart" build_path = /obj/item/organ/internal/heart time = 15 materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000) // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2) -/datum/design/item/prosfab/pros/lungs - name = "Prosthetic lungs" +/datum/design/item/prosfab/pros/internal/lungs + name = "Prosthetic Lungs" id = "pros_lung" build_path = /obj/item/organ/internal/lungs time = 15 materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000) // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2) -/datum/design/item/prosfab/pros/liver - name = "Prosthetic liver" +/datum/design/item/prosfab/pros/internal/liver + name = "Prosthetic Liver" id = "pros_liver" build_path = /obj/item/organ/internal/liver time = 15 materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000) // req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2) -/datum/design/item/prosfab/pros/kidneys - name = "Prosthetic liver" +/datum/design/item/prosfab/pros/internal/kidneys + name = "Prosthetic Kidneys" id = "pros_kidney" build_path = /obj/item/organ/internal/kidneys time = 15 @@ -195,49 +198,49 @@ materials = list(DEFAULT_WALL_MATERIAL = 3750) /datum/design/item/prosfab/cyborg/exoskeleton - name = "Robot exoskeleton" + name = "Robot Exoskeleton" id = "robot_exoskeleton" build_path = /obj/item/robot_parts/robot_suit time = 50 materials = list(DEFAULT_WALL_MATERIAL = 37500) /datum/design/item/prosfab/cyborg/torso - name = "Robot torso" + name = "Robot Torso" id = "robot_torso" build_path = /obj/item/robot_parts/chest time = 35 materials = list(DEFAULT_WALL_MATERIAL = 30000) /datum/design/item/prosfab/cyborg/head - name = "Robot head" + name = "Robot Head" id = "robot_head" build_path = /obj/item/robot_parts/head time = 35 materials = list(DEFAULT_WALL_MATERIAL = 18750) /datum/design/item/prosfab/cyborg/l_arm - name = "Robot left arm" + name = "Robot Left Arm" id = "robot_l_arm" build_path = /obj/item/robot_parts/l_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 13500) /datum/design/item/prosfab/cyborg/r_arm - name = "Robot right arm" + name = "Robot Right Arm" id = "robot_r_arm" build_path = /obj/item/robot_parts/r_arm time = 20 materials = list(DEFAULT_WALL_MATERIAL = 13500) /datum/design/item/prosfab/cyborg/l_leg - name = "Robot left leg" + name = "Robot Left Leg" id = "robot_l_leg" build_path = /obj/item/robot_parts/l_leg time = 20 materials = list(DEFAULT_WALL_MATERIAL = 11250) /datum/design/item/prosfab/cyborg/r_leg - name = "Robot right leg" + name = "Robot Right Leg" id = "robot_r_leg" build_path = /obj/item/robot_parts/r_leg time = 20 @@ -252,7 +255,7 @@ materials = list(DEFAULT_WALL_MATERIAL = 7500) /datum/design/item/prosfab/cyborg/component/binary_communication_device - name = "Binary communication device" + name = "Binary Communication Device" id = "binary_communication_device" build_path = /obj/item/robot_parts/robot_component/binary_communication_device @@ -267,7 +270,7 @@ build_path = /obj/item/robot_parts/robot_component/actuator /datum/design/item/prosfab/cyborg/component/diagnosis_unit - name = "Diagnosis unit" + name = "Diagnosis Unit" id = "diagnosis_unit" build_path = /obj/item/robot_parts/robot_component/diagnosis_unit @@ -277,7 +280,7 @@ build_path = /obj/item/robot_parts/robot_component/camera /datum/design/item/prosfab/cyborg/component/armour - name = "Armour plating" + name = "Armour Plating" id = "armour" build_path = /obj/item/robot_parts/robot_component/armour @@ -290,47 +293,47 @@ materials = list(DEFAULT_WALL_MATERIAL = 7500) /datum/design/item/prosfab/robot_upgrade/rename - name = "Rename module" + name = "Rename Module" desc = "Used to rename a cyborg." id = "borg_rename_module" build_path = /obj/item/borg/upgrade/rename /datum/design/item/prosfab/robot_upgrade/reset - name = "Reset module" + name = "Reset Module" desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot." id = "borg_reset_module" build_path = /obj/item/borg/upgrade/reset /datum/design/item/prosfab/robot_upgrade/restart - name = "Emergency restart module" + name = "Emergency Restart Module" desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online." id = "borg_restart_module" materials = list(DEFAULT_WALL_MATERIAL = 45000, "glass" = 3750) build_path = /obj/item/borg/upgrade/restart /datum/design/item/prosfab/robot_upgrade/vtec - name = "VTEC module" + name = "VTEC Module" desc = "Used to kick in a robot's VTEC systems, increasing their speed." id = "borg_vtec_module" materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 4500, "gold" = 3750) build_path = /obj/item/borg/upgrade/vtec /datum/design/item/prosfab/robot_upgrade/tasercooler - name = "Rapid taser cooling module" + name = "Rapid Taser Cooling Module" desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate." id = "borg_taser_module" materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 4500, "gold" = 1500, "diamond" = 375) build_path = /obj/item/borg/upgrade/tasercooler /datum/design/item/prosfab/robot_upgrade/jetpack - name = "Jetpack module" + name = "Jetpack Module" desc = "A carbon dioxide jetpack suitable for low-gravity mining operations." id = "borg_jetpack_module" materials = list(DEFAULT_WALL_MATERIAL = 7500, "phoron" = 11250, "uranium" = 15000) build_path = /obj/item/borg/upgrade/jetpack /datum/design/item/prosfab/robot_upgrade/syndicate - name = "Scrambled equipment module" + name = "Scrambled Equipment Module" desc = "Allows for the construction of lethal upgrades for cyborgs." id = "borg_syndicate_module" req_tech = list(TECH_COMBAT = 4, TECH_ILLEGAL = 3) @@ -338,7 +341,7 @@ build_path = /obj/item/borg/upgrade/syndicate /datum/design/item/prosfab/robot_upgrade/language - name = "language module" + name = "Language Module" desc = "Used to let cyborgs other than clerical or service speak a variety of languages." id = "borg_language_module" req_tech = list(TECH_DATA = 6, TECH_MATERIAL = 6) diff --git a/html/changelogs/PrismaticGynoid-storemoreplaces.yml b/html/changelogs/PrismaticGynoid-storemoreplaces.yml new file mode 100644 index 0000000000..f3da09b5f0 --- /dev/null +++ b/html/changelogs/PrismaticGynoid-storemoreplaces.yml @@ -0,0 +1,4 @@ +author: PrismaticGynoid +delete-after: True +changes: + - tweak: "Adjusts the amount of camera locations the AI can store from 10 to 30." diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index 9fd6cba6df..e50ef604e2 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 8e0f83772b..00ab2af459 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 8f5aac8ff6..e1a834e6a2 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm index 5e1e4c69e2..1e0b65770d 100644 --- a/maps/southern_cross/structures/closets/misc.dm +++ b/maps/southern_cross/structures/closets/misc.dm @@ -11,5 +11,5 @@ name = "rifle cabinet" will_contain = list( /obj/item/weapon/gun/projectile/shotgun/pump/rifle = 3, - /obj/item/ammo_magazine/clip/c762 = 9 + /obj/item/ammo_magazine/clip/c762/hunter = 9 ) \ No newline at end of file diff --git a/nano/templates/crew_monitor.tmpl b/nano/templates/crew_monitor.tmpl index 74467e4b0f..bf02a98b8e 100644 --- a/nano/templates/crew_monitor.tmpl +++ b/nano/templates/crew_monitor.tmpl @@ -26,7 +26,7 @@ Used In File(s): \code\game\machinery\computer\crew.dm {{else value.sensor_type == 2}}