diff --git a/code/__DEFINES/calibers.dm b/code/__DEFINES/calibers.dm index 15b59c2a2a8..79f7a7ee1fa 100644 --- a/code/__DEFINES/calibers.dm +++ b/code/__DEFINES/calibers.dm @@ -22,6 +22,7 @@ #define CALIBER_12X7 "12.7 Magnum" #define CALIBER_44LS ".44 Long Special" #define CALIBER_500 ".500 Nigro Express" +#define CALIBER_500_EMB ".500 Experimental Medical Bullets" // t312 // SMGs #define CALIBER_46X30 "4.6x30mm" diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 95634570355..b393a664813 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -56,6 +56,8 @@ #define COOLDOWN_ARMORED_HORN "cooldown_armored_horn" #define COOLDOWN_MOB_EX_ACT "mob_ex_act" #define COOLDOWN_MOUNTED_GUN_ROTATE "mounted_gun_rotate" +#define COOLDOWN_STAMINA "adrenaline_add_stamina" +#define COOLDOWN_CRIT "adrenaline_heal_crit" //Mecha cooldowns #define COOLDOWN_MECHA "mecha" diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 93397daaae6..6aeee3b1674 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -196,6 +196,16 @@ GLOBAL_LIST_INIT(medic_gear_listed_products, list( /obj/item/tweezers_advanced = list(CAT_MEDSUP, "Advanced Tweezers", 8, "yellow"), /obj/effect/vendor_bundle/stretcher = list(CAT_MEDSUP, "Medivac Stretcher", 20, "yellow"), /obj/item/deployable_optable = list(CAT_MEDSUP, "Deployable Operating Table", 12, "yellow"), + /obj/item/weapon/gun/revolver/t312 = list(CAT_MEDSUP, "R-312 'Albedo' Revolver", 10, "red"), + /obj/item/ammo_magazine/packet/t312/med/adrenaline = list(CAT_MEDSUP, "packet of .500 Adrenaline EMB", 7, "orange2"), + /obj/item/ammo_magazine/packet/t312/med/rr = list(CAT_MEDSUP, "packet of .500 Red Russian EMB", 7, "orange2"), + /obj/item/ammo_magazine/packet/t312/med/md = list(CAT_MEDSUP, "packet of .500 Meraderm EMB", 10, "orange2"), + /obj/item/ammo_magazine/packet/t312/med/neu = list(CAT_MEDSUP, "packet of .500 Neuraline EMB", 10, "orange2"), + /obj/item/ammo_magazine/revolver/t312/med/adrenaline = list(CAT_MEDSUP, "R-312 Adrenaline EMB speed loader", 1, "yellow"), + /obj/item/ammo_magazine/revolver/t312/med/rr = list(CAT_MEDSUP, "R-312 Red Russian EMB speed loader", 1, "yellow"), + /obj/item/ammo_magazine/revolver/t312/med/md = list(CAT_MEDSUP, "R-312 Meraderm EMB speed loader", 1, "yellow"), + /obj/item/ammo_magazine/revolver/t312/med/neu = list(CAT_MEDSUP, "R-312 Neuraline EMB speed loader", 1, "yellow"), + /obj/item/storage/pouch/medkit/t312 = list(CAT_MEDSUP, "Medkit pouch for EMB", 1, "blue"), )) GLOBAL_LIST_INIT(leader_gear_listed_products, list( @@ -428,6 +438,7 @@ GLOBAL_LIST_INIT(synthetic_gear_listed_products, list( /obj/item/tweezers_advanced = list(CAT_SYNTH, "Advanced Tweezers", 8, "yellow"), /obj/effect/vendor_bundle/stretcher = list(CAT_SYNTH, "Medivac Stretcher", 20, "yellow"), /obj/item/deployable_optable = list(CAT_SYNTH, "Deployable Operating Table", 12, "yellow"), + /obj/item/storage/box/t312case = list(CAT_MEDSUP, "R-312 'Albedo' Revolver", 25, "red"), // can buy for other, why not )) ///Assoc list linking the job title with their specific points vendor @@ -727,6 +738,7 @@ GLOBAL_LIST_INIT(medic_clothes_listed_products, list( /obj/item/armor_module/storage/grenade = list(CAT_MOD, "Grenade Storage Module", 0, "black"), /obj/item/storage/pouch/medical_injectors/medic = list(CAT_POU, "Advanced Autoinjector pouch", 0, "orange"), /obj/item/storage/pouch/medkit/medic = list(CAT_POU, "Medkit pouch", 0, "orange"), + /obj/item/storage/pouch/medkit/t312/medic = list(CAT_POU, "Medkit pouch for EMB", 0, "orange"), /obj/effect/vendor_bundle/mimir = list(CAT_ARMMOD, "Mimir Resistance set", 0,"black"), /obj/item/armor_module/module/ballistic_armor = list(CAT_ARMMOD, "Hod Accident Prevention Plating", 0,"black"), /obj/effect/vendor_bundle/tyr = list(CAT_ARMMOD, "Mark 1 Tyr extra armor set", 0,"black"), diff --git a/code/game/objects/items/reagent_containers/pill.dm b/code/game/objects/items/reagent_containers/pill.dm index be16d404d46..58cd5cc8216 100644 --- a/code/game/objects/items/reagent_containers/pill.dm +++ b/code/game/objects/items/reagent_containers/pill.dm @@ -287,3 +287,8 @@ pill_desc = "An oxycodone pill. Best painkiller." list_reagents = list(/datum/reagent/medicine/oxycodone = 15) pill_id = 7 + +/obj/item/reagent_containers/pill/meraderm + pill_desc = "A meralyne and dermaline pill. Heals brute damage at a higher rate than bicaridine and heals burn damage at a higher rate than kelotane" + list_reagents = list(/datum/reagent/medicine/meralyne = 7.5, /datum/reagent/medicine/dermaline = 7.5) + pill_id = 19 diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 99430fda68f..c28304103df 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1159,7 +1159,7 @@ closed_overlay = "grenade_box_overlay_training" /obj/item/storage/box/t500case - name = "\improper R-500 special case" + name = "\improper R-500 'Nigredo' special case" desc = "High-tech case made by BMSS for delivery their special weapons. Label on this case says: 'This is the greatest handgun ever made. Five bullets. More than enough to kill anything that moves'." icon = 'icons/obj/items/storage/storage.dmi' icon_state = "t500case" @@ -1190,6 +1190,41 @@ new /obj/item/attachable/t500barrel(src) new /obj/item/weapon/gun/revolver/t500(src) +/obj/item/storage/box/t312case + name = "R-312 'Albedo' Revolver special case" + desc = "High-tech case made by BMSS for delivery their special weapons. Label on this case says: 'Since we have already called Nigredo death, within the same metaphor we can call Albedo life. It is time to shoot at people legally.'" + icon_state = "med_case" + w_class = WEIGHT_CLASS_NORMAL + max_w_class = 1 + storage_slots = 7 + max_storage_space = 1 + bypass_w_limit = list( + /obj/item/ammo_magazine/packet/t312/med/adrenaline, + /obj/item/ammo_magazine/packet/t312/med/rr, + /obj/item/ammo_magazine/packet/t312/med/md, + /obj/item/ammo_magazine/packet/t312/med/neu, + /obj/item/ammo_magazine/revolver/t312/med/adrenaline, + /obj/item/ammo_magazine/revolver/t312/med/rr, + /obj/item/ammo_magazine/revolver/t312/med/md, + /obj/item/ammo_magazine/revolver/t312/med/neu, + /obj/item/storage/pouch/medkit/t312, + /obj/item/attachable/lace/t500, + /obj/item/weapon/gun/revolver/t312, + ) + +/obj/item/storage/box/t312case/PopulateContents() + new /obj/item/ammo_magazine/packet/t312/med/adrenaline(src) + new /obj/item/ammo_magazine/packet/t312/med/rr(src) + new /obj/item/ammo_magazine/packet/t312/med/md(src) + new /obj/item/ammo_magazine/packet/t312/med/neu(src) + new /obj/item/ammo_magazine/revolver/t312/med/adrenaline(src) + new /obj/item/ammo_magazine/revolver/t312/med/rr(src) + new /obj/item/ammo_magazine/revolver/t312/med/md(src) + new /obj/item/ammo_magazine/revolver/t312/med/neu(src) + new /obj/item/storage/pouch/medkit/t312(src) + new /obj/item/attachable/lace/t500(src) + new /obj/item/weapon/gun/revolver/t312(src) + #undef BOX_OVERLAY_SHIFT_X #undef BOX_OVERLAY_SHIFT_Y diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index c5a73d645d0..2c92cd207fd 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -709,3 +709,12 @@ pill_type_to_fill = /obj/item/reagent_containers/pill/oxycodone greyscale_colors = "#360570#ffffff" description_overlay = "Ox" + +/obj/item/storage/pill_bottle/meraderm + name = "Meraderm pill bottle" + desc = "Contains pills used to heal cuts and burns, yum!" + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/meraderm + greyscale_colors = "#ECFC00#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "MD" diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm index d6180e1719a..e1c66ba8582 100644 --- a/code/game/objects/items/storage/holsters.dm +++ b/code/game/objects/items/storage/holsters.dm @@ -739,15 +739,19 @@ /obj/item/storage/holster/belt/revolver/t500 name = "\improper BM500 pattern BF revolver holster rig" - desc = "The BM500 is the special modular belt for R-500 BF revolver." + desc = "The BM500 is the special modular belt for BMSS revolvers." icon = 'icons/obj/clothing/belts.dmi' icon_state = "t500_holster" bypass_w_limit = list(/obj/item/weapon/gun/revolver/t500) can_hold = list( /obj/item/weapon/gun/revolver/t500, + /obj/item/weapon/gun/revolver/t312, /obj/item/ammo_magazine/revolver/t500, /obj/item/ammo_magazine/revolver/t500/slavs, /obj/item/ammo_magazine/packet/t500, + /obj/item/ammo_magazine/revolver/t312, + /obj/item/ammo_magazine/packet/t312, + /obj/item/ammo_magazine/handful ) /obj/item/storage/holster/belt/revolver/m44 diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 2e766b5b28d..78b3d92c2fb 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -902,3 +902,30 @@ . = ..() for(var/i in 1 to storage_slots) new /obj/item/reagent_containers/food/snacks/protein_pack(src) + +/obj/item/storage/pouch/medkit/t312 + name = "BMSS medkit pouch" + desc = "Advanced medkit pouch made by BMSS. It is also capable of holding R-312 ammo and tweezers." + icon_state = "t312" + can_hold = list( + /obj/item/healthanalyzer, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/syringe, + /obj/item/storage/pill_bottle, + /obj/item/stack/medical, + /obj/item/storage/pill_bottle/packet, + /obj/item/reagent_containers/hypospray, + /obj/item/ammo_magazine/packet/t312/med, + /obj/item/ammo_magazine/revolver/t312/med, + /obj/item/tweezers, + /obj/item/ammo_magazine/handful + ) + +/obj/item/storage/pouch/medkit/t312/medic/PopulateContents() + new /obj/item/stack/medical/heal_pack/advanced/bruise_combat_pack(src) + new /obj/item/stack/medical/heal_pack/advanced/burn_combat_pack(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/storage/pill_bottle/meraderm(src) + new /obj/item/reagent_containers/hypospray/advanced/nanoblood(src) diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index 8443eaa2e15..414253953f0 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -100,6 +100,7 @@ /obj/item/storage/box/t500case = 10, /obj/item/ammo_magazine/revolver/t500 = -1, /obj/item/ammo_magazine/revolver/t500/slavs = -1, + /obj/item/ammo_magazine/revolver/t312 = -1, /obj/item/weapon/gun/pistol/p17 = -1, /obj/item/ammo_magazine/pistol/p17 = -1, /obj/item/weapon/gun/pistol/vp70 = -1, @@ -152,6 +153,7 @@ /obj/item/attachable/suppressor = -1, /obj/item/attachable/heavy_barrel = -1, /obj/item/attachable/lace = -1, + /obj/item/attachable/lace/t500 = -1, /obj/item/attachable/flashlight = -1, /obj/item/attachable/flashlight/under = -1, /obj/item/attachable/magnetic_harness = -1, @@ -192,6 +194,7 @@ /obj/item/ammo_magazine/packet/t500 = -1, /obj/item/ammo_magazine/packet/t500/qk = -1, /obj/item/ammo_magazine/packet/t500/slavs = -1, + /obj/item/ammo_magazine/packet/t312 = -1, /obj/item/ammo_magazine/packet/p10x20mm = -1, /obj/item/ammo_magazine/packet/p10x24mm = -1, /obj/item/ammo_magazine/packet/p10x24mm/ap = -1, @@ -338,6 +341,7 @@ /obj/item/storage/box/t500case = 10, /obj/item/ammo_magazine/revolver/t500 = -1, /obj/item/ammo_magazine/revolver/t500/slavs = -1, + /obj/item/ammo_magazine/revolver/t312 = -1, /obj/item/weapon/gun/pistol/p17 = -1, /obj/item/ammo_magazine/pistol/p17 = -1, /obj/item/weapon/gun/pistol/vp70 = -1, @@ -379,6 +383,7 @@ /obj/item/attachable/suppressor = -1, /obj/item/attachable/heavy_barrel = -1, /obj/item/attachable/lace = -1, + /obj/item/attachable/lace/t500 = -1, /obj/item/attachable/flashlight = -1, /obj/item/attachable/flashlight/under = -1, /obj/item/attachable/magnetic_harness = -1, @@ -419,6 +424,7 @@ /obj/item/ammo_magazine/packet/t500 = -1, /obj/item/ammo_magazine/packet/t500/qk = -1, /obj/item/ammo_magazine/packet/t500/slavs = -1, + /obj/item/ammo_magazine/packet/t312 = -1, /obj/item/ammo_magazine/packet/p10x20mm = -1, /obj/item/ammo_magazine/packet/p10x24mm = -1, /obj/item/ammo_magazine/packet/p10x24mm/ap = -1, @@ -571,6 +577,7 @@ /obj/item/storage/box/t500case = -1, /obj/item/ammo_magazine/revolver/t500 = -1, /obj/item/ammo_magazine/revolver/t500/slavs = -1, + /obj/item/ammo_magazine/revolver/t312 = -1, /obj/item/weapon/gun/pistol/p17 = -1, /obj/item/ammo_magazine/pistol/p17 = -1, /obj/item/weapon/gun/pistol/vp70 = -1, @@ -638,6 +645,7 @@ /obj/item/attachable/suppressor = -1, /obj/item/attachable/heavy_barrel = -1, /obj/item/attachable/lace = -1, + /obj/item/attachable/lace/t500 = -1, /obj/item/attachable/flashlight = -1, /obj/item/attachable/flashlight/under = -1, /obj/item/attachable/magnetic_harness = -1, @@ -679,6 +687,7 @@ /obj/item/ammo_magazine/packet/t500 = -1, /obj/item/ammo_magazine/packet/t500/qk = -1, /obj/item/ammo_magazine/packet/t500/slavs = -1, + /obj/item/ammo_magazine/packet/t312 = -1, /obj/item/ammo_magazine/packet/p10x20mm = -1, /obj/item/ammo_magazine/packet/p10x24mm = -1, /obj/item/ammo_magazine/packet/p10x24mm/ap = -1, diff --git a/code/modules/projectiles/ammo_datums/bullet/revolver.dm b/code/modules/projectiles/ammo_datums/bullet/revolver.dm index aa2c858c6a0..cbd4bc0563d 100644 --- a/code/modules/projectiles/ammo_datums/bullet/revolver.dm +++ b/code/modules/projectiles/ammo_datums/bullet/revolver.dm @@ -24,6 +24,7 @@ /datum/ammo/bullet/revolver/t500 name = ".500 Nigro Express revolver bullet" handful_icon_state = "nigro" + accurate_range = 15 handful_amount = 5 damage = 100 penetration = 40 @@ -53,6 +54,73 @@ return staggerstun(M, P, stagger = 0, slowdown = 0, knockback = 1) +/datum/ammo/bullet/revolver/t312 + name = ".500 White Express revolver bullet" + handful_icon_state = "nigro_we" + accurate_range = 15 + handful_amount = 5 + damage = 100 + penetration = 40 + additional_xeno_penetration = 0 + +/datum/ammo/bullet/revolver/t312/on_hit_mob(mob/M, obj/projectile/P) + staggerstun(M, P, knockback = 1) + +/datum/ammo/bullet/revolver/t312/med + name = ".500 EMB" + handful_icon_state = "nigro" + handful_amount = 5 + damage = 20 + penetration = 100 + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SKIPS_ALIENS + +/datum/ammo/bullet/revolver/t312/med/on_hit_mob(mob/M, obj/projectile/P) + return + +/datum/ammo/bullet/revolver/t312/med/adrenaline + name = ".500 Adrenaline EMB" + handful_icon_state = "nigro_adr" + hud_state = "t312_adr" + +/datum/ammo/bullet/revolver/t312/med/adrenaline/on_hit_mob(mob/M, obj/projectile/P) + if(!ishuman(M)) + return + M.reagents.add_reagent(/datum/reagent/medicine/adrenaline, 2) + M.reagents.add_reagent(/datum/reagent/medicine/hyronalin, 3) + +/datum/ammo/bullet/revolver/t312/med/rr + name = ".500 Russian Red EMB" + handful_icon_state = "nigro_rr" + hud_state = "t312_rr" + +/datum/ammo/bullet/revolver/t312/med/rr/on_hit_mob(mob/M, obj/projectile/P) + if(!ishuman(M)) + return + M.reagents.add_reagent(/datum/reagent/medicine/russian_red, 5) + +/datum/ammo/bullet/revolver/t312/med/md + name = "packet of .500 Meraderm EMB" + handful_icon_state = "nigro_md" + hud_state = "t312_md" + +/datum/ammo/bullet/revolver/t312/med/md/on_hit_mob(mob/M, obj/projectile/P) + if(!ishuman(M)) + return + M.reagents.add_reagent(/datum/reagent/medicine/meralyne, 2.5) + M.reagents.add_reagent(/datum/reagent/medicine/dermaline, 2.5) + +/datum/ammo/bullet/revolver/t312/med/neu + name = ".500 Neuraline EMB" + handful_icon_state = "nigro_neu" + hud_state = "t312_neu" + +/datum/ammo/bullet/revolver/t312/med/neu/on_hit_mob(mob/M, obj/projectile/P) + if(!ishuman(M)) + return + M.reagents.add_reagent(/datum/reagent/medicine/neuraline, 3.1) + M.reagents.add_reagent(/datum/reagent/medicine/hyronalin, 1.9) + /datum/ammo/bullet/revolver/r44 name = "standard revolver bullet" damage = 35 diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm index 372dd8eb19c..ccfce90d60a 100644 --- a/code/modules/projectiles/guns/revolvers.dm +++ b/code/modules/projectiles/guns/revolvers.dm @@ -508,8 +508,8 @@ ////////////////////////////////////////////////////////////////////////// /obj/item/weapon/gun/revolver/t500 - name = "\improper R-500 BF revolver" - desc = "The R-500 BF revolver, chambered in .500 Nigro Express. Hard to use, but hits as hard as it’s kicks your hand. This handgun made by BMSS, designed to be deadly, unholy force to stop everything what moves, so in exchange for it, revolver lacking recoil control and have tight cocking system. Because of its specific, handcanon niche, was produced in small numbers. Black & Metzer special attachments system can turn extremely powerful handgun to fullscale rifle, making it a weapon to surpass Metal Gear." + name = "\improper R-500 'Nigredo' revolver" + desc = "The R-500 'Nigredo' revolver, chambered in .500 Nigro Express. Hard to use, but hits as hard as it’s kicks your hand. This handgun made by BMSS, designed to be deadly, unholy force to stop everything what moves, so in exchange for it, revolver lacking recoil control and have tight cocking system. Because of its specific, handcanon niche, was produced in small numbers. Black & Metzer special attachments system can turn extremely powerful handgun to fullscale rifle, making it a weapon to surpass Metal Gear." icon = 'icons/Marine/gun64.dmi' icon_state = "t500" item_icons = list( @@ -561,3 +561,57 @@ scatter = -1 recoil = 2 recoil_unwielded = 3 + +////////////////////////////////////////////////////////////////////////// +/////////////////////////// t312 revolver //////////////////////////////// +////////////////////////////////////////////////////////////////////////// + +/obj/item/weapon/gun/revolver/t312 + name = "R-312 'Albedo' Revolver" + desc = "Futuristic style revolver with railgun system, using to fire EMB (experimental medical bullets). Just first make sure that you chambered EMB, but not .500 White Express." + icon = 'icons/Marine/gun64.dmi' + icon_state = "t312" + item_state = "t312" + item_icons = list( + slot_l_hand_str = 'icons/mob/items_lefthand_1.dmi', + slot_r_hand_str = 'icons/mob/items_righthand_1.dmi', + ) + caliber = CALIBER_500_EMB + max_chamber_items = 5 //codex + default_ammo_type = /datum/ammo/bullet/revolver/t312 + allowed_ammo_types = list( + /obj/item/ammo_magazine/revolver/t312, + /obj/item/ammo_magazine/revolver/t312/med/adrenaline, + /obj/item/ammo_magazine/revolver/t312/med/rr, + /obj/item/ammo_magazine/revolver/t312/med/md, + /obj/item/ammo_magazine/revolver/t312/med/neu + ) + force = 20 + actions_types = null + attachable_allowed = list( + /obj/item/attachable/lace/t500, + ) + attachable_offset = list("stock_x" = -19, "stock_y" = 0) + fire_sound = 'sound/weapons/guns/fire/t312.ogg' + dry_fire_sound = 'sound/mecha/mag_bullet_insert.ogg' + fire_animation = "t312_fire" + fire_delay = 0.2 SECONDS + scatter = -7 + scatter_unwielded = -5 + damage_mult = 0.35 + recoil = -1 + recoil_unwielded = -1 + accuracy_mult = 3 + accuracy_mult_unwielded = 2 + type_of_casings = null + akimbo_additional_delay = 0.6 + reciever_flags = AMMO_RECIEVER_HANDFULS|AMMO_RECIEVER_TOGGLES_OPEN + + +/obj/item/weapon/gun/revolver/t312/able_to_fire(mob/user) + . = ..() + if(!.) + return + if(user.skills.getRating(SKILL_MEDICAL) < SKILL_MEDICAL_PRACTICED) + to_chat(user, span_warning("You don't seem to know how to use [src]...")) + return FALSE diff --git a/code/modules/projectiles/magazines/misc.dm b/code/modules/projectiles/magazines/misc.dm index 2f4e5eade61..9cd47b05fbd 100644 --- a/code/modules/projectiles/magazines/misc.dm +++ b/code/modules/projectiles/magazines/misc.dm @@ -336,6 +336,49 @@ icon_state = "boxt500_sv" default_ammo = /datum/ammo/bullet/revolver/t500/slavs +/obj/item/ammo_magazine/packet/t312 + name = "packet of .500 White Express" + desc = "A box containing common .500 White Express rounds." + icon_state = "boxt500_we" + default_ammo = /datum/ammo/bullet/revolver/t312 + caliber = CALIBER_500_EMB + w_class = WEIGHT_CLASS_SMALL + current_rounds = 50 + max_rounds = 50 + used_casings = 5 + +/obj/item/ammo_magazine/packet/t312/Initialize() + . = ..() + if(prob(1)) + icon_state = "boxt500_ke" + +/obj/item/ammo_magazine/packet/t312/med + used_casings = 1 + +/obj/item/ammo_magazine/packet/t312/med/adrenaline + name = "packet of .500 Adrenaline EMB" + desc = "Contains adrenaline. These ammo have a stimulating effect on the patient's nervous system and heart, capable of saving a marine from a critical condition, and also allowing him to run longer than usual." + icon_state = "boxt500_adr" + default_ammo = /datum/ammo/bullet/revolver/t312/med/adrenaline + +/obj/item/ammo_magazine/packet/t312/med/rr + name = "packet of .500 Russian Red EMB" + desc = "Contains 5 units of Russian Red. Use only when absolutely necessary. Heals a large amount of physical damage, but deals cloneloss damage." + icon_state = "boxt500_rr" + default_ammo = /datum/ammo/bullet/revolver/t312/med/rr + +/obj/item/ammo_magazine/packet/t312/med/md + name = "packet of .500 Meraderm EMB" + desc = "The best EMB ammo that can heal multiple patient injuries without any side effects. Contains 2.5 units of Meralyne and 2.5 units of Dermaline." + icon_state = "boxt500_md" + default_ammo = /datum/ammo/bullet/revolver/t312/med/md + +/obj/item/ammo_magazine/packet/t312/med/neu + name = "packet of .500 Neuraline EMB" + desc = "Contains 3.1 units of Neuraline and 1.9 Hyronalin. Warning: While the bullet is capable of taking a Marine out of critical condition, it will not neutralize all toxins from Neuraline." + icon_state = "boxt500_neu" + default_ammo = /datum/ammo/bullet/revolver/t312/med/neu + /obj/item/ammo_magazine/packet/standard_magnum name = "packet of .12x7mm" icon_state = "box_t76" diff --git a/code/modules/projectiles/magazines/revolvers.dm b/code/modules/projectiles/magazines/revolvers.dm index b790b4617c3..4d55559cc0a 100644 --- a/code/modules/projectiles/magazines/revolvers.dm +++ b/code/modules/projectiles/magazines/revolvers.dm @@ -21,7 +21,7 @@ /obj/item/ammo_magazine/revolver/t500 name = "\improper R-500 speed loader (.500)" icon_state = "t500" - desc = "A R-500 BF revolver speed loader." + desc = "A R-500 'Nigredo' revolver speed loader." default_ammo = /datum/ammo/bullet/revolver/t500 caliber = CALIBER_500 max_rounds = 5 @@ -31,6 +31,38 @@ icon_state = "t500_sv" default_ammo = /datum/ammo/bullet/revolver/t500/slavs +/obj/item/ammo_magazine/revolver/t312 + name = "\improper R-312 White Express speed loader (.500)" + desc = "A R-312 'Albedo' revolver speed loader." + icon_state = "t500_we" + default_ammo = /datum/ammo/bullet/revolver/t312 + caliber = CALIBER_500_EMB + max_rounds = 5 + +/obj/item/ammo_magazine/revolver/t312/med + name = "R-312 EMB speed loader" + desc = "A R-500 'Albedo' revolver speed loader." + +/obj/item/ammo_magazine/revolver/t312/med/adrenaline + name = "R-312 Adrenaline EMB speed loader" + icon_state = "t500_adr" + default_ammo = /datum/ammo/bullet/revolver/t312/med/adrenaline + +/obj/item/ammo_magazine/revolver/t312/med/rr + name = "R-312 Russian Red EMB speed loader" + icon_state = "t500_rr" + default_ammo = /datum/ammo/bullet/revolver/t312/med/rr + +/obj/item/ammo_magazine/revolver/t312/med/md + name = "R-312 Meraderm EMB speed loader" + icon_state = "t500_md" + default_ammo = /datum/ammo/bullet/revolver/t312/med/md + +/obj/item/ammo_magazine/revolver/t312/med/neu + name = "R-312 Neuraline EMB speed loader" + icon_state = "t500_neu" + default_ammo = /datum/ammo/bullet/revolver/t312/med/neu + /obj/item/ammo_magazine/revolver/marksman name = "\improper R-44 marksman speed loader (.44)" default_ammo = /datum/ammo/bullet/revolver/marksman diff --git a/code/modules/reagents/reagents/medical.dm b/code/modules/reagents/reagents/medical.dm index 24a56cfa50c..62062062158 100644 --- a/code/modules/reagents/reagents/medical.dm +++ b/code/modules/reagents/reagents/medical.dm @@ -526,15 +526,21 @@ purge_rate = 5 /datum/reagent/medicine/adrenaline/on_mob_add(mob/living/carbon/human/L, metabolism) - if(TIMER_COOLDOWN_CHECK(L, name)) + var/mob/living/carbon/human/H = L + if(TIMER_COOLDOWN_CHECK(L, COOLDOWN_STAMINA)) return L.adjustStaminaLoss(-30 * effect_str) to_chat(L, span_userdanger("You feel a burst of energy as the adrenaline courses through you! Time to go fast!")) - if(L.health < L.health_threshold_crit && volume >= 3) - to_chat(L, span_userdanger("Heart explosion! Power flows through your veins!")) + if(TIMER_COOLDOWN_CHECK(L, COOLDOWN_CRIT) || L.stat == DEAD) + return + if(L.health < H.health_threshold_crit && volume >= 2) + to_chat(L, span_userdanger("Heart explosion! Power running in your veins!")) L.adjustBruteLoss(-L.getBruteLoss(TRUE) * 0.40) + L.adjustFireLoss(-L.getFireLoss(TRUE) * 0.20) + L.adjustToxLoss(5) L.jitter(5) + TIMER_COOLDOWN_START(L, COOLDOWN_CRIT, 120 SECONDS) /datum/reagent/medicine/adrenaline/on_mob_life(mob/living/L, metabolism) L.reagent_shock_modifier += PAIN_REDUCTION_MEDIUM @@ -561,7 +567,7 @@ /datum/reagent/medicine/adrenaline/on_mob_delete(mob/living/L, metabolism) to_chat(L, span_userdanger("The room spins as your adrenaline starts to wear off!")) - TIMER_COOLDOWN_START(L, name, 60 SECONDS) + TIMER_COOLDOWN_START(L, COOLDOWN_STAMINA, 60 SECONDS) /datum/reagent/medicine/neuraline //injected by neurostimulator implant and medic-only injector name = "Neuraline" diff --git a/code/modules/reqs/supplypacks/medical.dm b/code/modules/reqs/supplypacks/medical.dm index c52a92af39b..0ea7f9f8aab 100644 --- a/code/modules/reqs/supplypacks/medical.dm +++ b/code/modules/reqs/supplypacks/medical.dm @@ -367,3 +367,38 @@ /obj/item/clothing/mask/breath/medical, /obj/item/tank/anesthetic, ) + +/datum/supply_packs/medical/t312case + name = "R-312 'Albedo' Revolver bundle" + contains = list(/obj/item/storage/box/t312case) + cost = 500 + +/datum/supply_packs/medical/t312 + name = "R-312 'Albedo' Revolver" + contains = list(/obj/item/attachable/lace/t500, /obj/item/weapon/gun/revolver/t312) + cost = 150 + +/datum/supply_packs/medical/t312_adr + name = "R-312 Adrenaline ammo" + contains = list(/obj/item/ammo_magazine/packet/t312/med/adrenaline, /obj/item/ammo_magazine/revolver/t312/med/adrenaline) + cost = 50 + +/datum/supply_packs/medical/t312_rr + name = "R-312 Russian Red ammo" + contains = list(/obj/item/ammo_magazine/packet/t312/med/rr, /obj/item/ammo_magazine/revolver/t312/med/rr) + cost = 150 + +/datum/supply_packs/medical/t312_md + name = "R-312 Meraderm ammo" + contains = list(/obj/item/ammo_magazine/packet/t312/med/md, /obj/item/ammo_magazine/revolver/t312/med/md) + cost = 100 + +/datum/supply_packs/medical/t312_neu + name = "R-312 Neuraline ammo" + contains = list(/obj/item/ammo_magazine/packet/t312/med/neu, /obj/item/ammo_magazine/revolver/t312/med/neu) + cost = 200 + +/datum/supply_packs/medical/t312_medkit + name = "BMSS medkit pouch" + contains = list(/obj/item/storage/pouch/medkit/t312) + cost = 10 diff --git a/icons/Marine/marine-pouches.dmi b/icons/Marine/marine-pouches.dmi index 859840d2f1e..7e6a0826cab 100644 Binary files a/icons/Marine/marine-pouches.dmi and b/icons/Marine/marine-pouches.dmi differ diff --git a/icons/mob/hud/ammo.dmi b/icons/mob/hud/ammo.dmi index e33a19f8b2c..2d63d4b4d4b 100644 Binary files a/icons/mob/hud/ammo.dmi and b/icons/mob/hud/ammo.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 65d1f31a2f1..0aa630c5b37 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/items/ammo/handful.dmi b/icons/obj/items/ammo/handful.dmi index 79dacc6adc9..8e7dbc071df 100644 Binary files a/icons/obj/items/ammo/handful.dmi and b/icons/obj/items/ammo/handful.dmi differ diff --git a/icons/obj/items/ammo/packet.dmi b/icons/obj/items/ammo/packet.dmi index f1edc489c4d..1d27d46a45f 100644 Binary files a/icons/obj/items/ammo/packet.dmi and b/icons/obj/items/ammo/packet.dmi differ diff --git a/icons/obj/items/ammo/revolver.dmi b/icons/obj/items/ammo/revolver.dmi index fdf1a230b1f..1ff0781606a 100644 Binary files a/icons/obj/items/ammo/revolver.dmi and b/icons/obj/items/ammo/revolver.dmi differ diff --git a/sound/weapons/guns/fire/t312.ogg b/sound/weapons/guns/fire/t312.ogg new file mode 100644 index 00000000000..10e0d621152 Binary files /dev/null and b/sound/weapons/guns/fire/t312.ogg differ