From 96f31f580f0040c530a8ec4808847ec99aac316b Mon Sep 17 00:00:00 2001 From: MalorMorfin <95427566+MalorMorfin@users.noreply.github.com> Date: Sat, 21 Dec 2024 22:11:45 +1000 Subject: [PATCH 1/4] Roadmap - Vali rapir delete skill lock (#848) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * no * наныли * nofun --- code/__DEFINES/skills.dm | 6 +-- code/datums/skills.dm | 38 ++----------------- code/game/objects/items/weapons/blades.dm | 16 -------- .../mob/living/carbon/human/human_defense.dm | 2 +- 4 files changed, 6 insertions(+), 56 deletions(-) diff --git a/code/__DEFINES/skills.dm b/code/__DEFINES/skills.dm index a02eb420297..4c607373a34 100644 --- a/code/__DEFINES/skills.dm +++ b/code/__DEFINES/skills.dm @@ -23,13 +23,8 @@ #define SKILL_LARGE_VEHICLE "large_vehicle" #define SKILL_MECH_PILOT "mech_pilot" #define SKILL_STAMINA "stamina" -#define SKILL_SWORDPLAY "swordplay" //////////////////////////////////////////////// -//ability to use elegant melee weapons (i.e. rapiers) -#define SKILL_SWORDPLAY_DEFAULT 0 -#define SKILL_SWORDPLAY_TRAINED 1 - //firearms skill (general knowledge of guns) (hidden skill) //increase or decrase accuracy, recoil, and firing delay of rifles and smgs. #define SKILL_FIREARMS_UNTRAINED 0 //civilian @@ -146,6 +141,7 @@ #define SKILL_MELEE_DEFAULT 0 #define SKILL_MELEE_TRAINED 1 #define SKILL_MELEE_SUPER 2 +#define SKILL_MELEE_MASTER 3 ///The amount of extra damage per melee skill level #define MELEE_SKILL_DAM_BUFF 0.15 diff --git a/code/datums/skills.dm b/code/datums/skills.dm index 9a3f64b913e..ed19ef18c53 100644 --- a/code/datums/skills.dm +++ b/code/datums/skills.dm @@ -1,22 +1,18 @@ #define SKILLSID "skills-[cqc]-[melee_weapons]\ -[firearms]-[pistols]-[shotguns]-[rifles]-[smgs]-[heavy_weapons]-[smartgun]\ --[swordplay]\ -[engineer]-[construction]-[leadership]-[medical]-[surgery]-[pilot]-[police]-[powerloader]-[large_vehicle]-[mech_pilot]-[stamina]" #define SKILLSIDSRC(S) "skills-[S.cqc]-[S.melee_weapons]\ -[S.firearms]-[S.pistols]-[S.shotguns]-[S.rifles]-[S.smgs]-[S.heavy_weapons]-[S.smartgun]\ --[S.swordplay]\ -[S.engineer]-[S.construction]-[S.leadership]-[S.medical]-[S.surgery]-[S.pilot]-[S.police]-[S.powerloader]-[S.large_vehicle]-[mech_pilot]-[S.stamina]" /proc/getSkills(cqc = 0, melee_weapons = 0,\ firearms = 0, pistols = 0, shotguns = 0, rifles = 0, smgs = 0, heavy_weapons = 0, smartgun = 0,\ -swordplay = 0,\ engineer = 0, construction = 0, leadership = 0, medical = 0, surgery = 0, pilot = 0, police = 0, powerloader = 0, large_vehicle = 0, mech_pilot = 0, stamina = 0) . = locate(SKILLSID) if(!.) . = new /datum/skills(cqc, melee_weapons,\ firearms, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun,\ - swordplay,\ engineer, construction, leadership, medical, surgery, pilot, police, powerloader, large_vehicle, mech_pilot, stamina) /proc/getSkillsType(skills_type = /datum/skills) @@ -41,9 +37,6 @@ engineer = 0, construction = 0, leadership = 0, medical = 0, surgery = 0, pilot var/large_vehicle = initial(new_skill.large_vehicle) var/mech_pilot = initial(new_skill.mech_pilot) var/stamina = initial(new_skill.stamina) - //RUTGMC EDIT ADDITION BEGIN - SWORDS - var/swordplay = initial(new_skill.swordplay) - //RUTGMC EDIT ADDITION END . = locate(SKILLSID) if(!.) . = new skills_type @@ -74,13 +67,10 @@ engineer = 0, construction = 0, leadership = 0, medical = 0, surgery = 0, pilot var/mech_pilot = SKILL_MECH_PILOT_DEFAULT ///Effects stamina regen rate and regen delay var/stamina = SKILL_STAMINA_DEFAULT - //RUTGMC EDIT ADDITION BEGIN - SWORDS - var/swordplay = SKILL_SWORDPLAY_DEFAULT - //RUTGMC EDIT ADDITION END /datum/skills/New(cqc, melee_weapons,\ -firearms, pistols, shotguns, rifles, smgs, heavy_weapons, swordplay, smartgun,\ +firearms, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun,\ engineer, construction, leadership, medical, surgery, pilot, police, powerloader, large_vehicle, mech_pilot, stamina) if(!isnull(cqc)) src.cqc = cqc @@ -122,15 +112,11 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader src.mech_pilot = mech_pilot if(!isnull(stamina)) src.stamina = stamina - //RUTGMC EDIT ADDITION BEGIN - SWORDS - if(!isnull(swordplay)) - src.swordplay = swordplay - //RUTGMC EDIT ADDITION END tag = SKILLSIDSRC(src) /// returns/gets a new skills datum with values changed according to the args passed /datum/skills/proc/modifyRating(cqc, melee_weapons,\ -firearms, pistols, shotguns, rifles, smgs, heavy_weapons, swordplay, smartgun,\ +firearms, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun,\ engineer, construction, leadership, medical, surgery, pilot, police, powerloader, large_vehicle, mech_pilot, stamina) return getSkills(src.cqc+cqc,\ src.melee_weapons+melee_weapons,\ @@ -140,7 +126,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader src.rifles+rifles,\ src.smgs+smgs,\ src.heavy_weapons+heavy_weapons,\ - src.swordplay+swordplay,\ src.smartgun+smartgun,\ src.engineer+engineer,\ src.construction+construction,\ @@ -164,7 +149,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader src.rifles+difference,\ src.smgs+difference,\ src.heavy_weapons+difference,\ - src.swordplay+difference,\ src.smartgun+difference,\ src.engineer+difference,\ src.construction+difference,\ @@ -191,7 +175,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader (isnull(smgs) ? src.smgs : smgs),\ (isnull(heavy_weapons) ? src.heavy_weapons : heavy_weapons),\ (isnull(smartgun) ? src.smartgun : smartgun),\ - (isnull(swordplay) ? src.swordplay : swordplay),\ (isnull(engineer) ? src.engineer : engineer),\ (isnull(construction) ? src.construction : construction),\ (isnull(leadership) ? src.leadership : leadership),\ @@ -232,7 +215,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader SKILL_SMGS = smgs, SKILL_HEAVY_WEAPONS = heavy_weapons, SKILL_SMARTGUN = smartgun, - SKILL_SWORDPLAY = swordplay, SKILL_ENGINEER = engineer, SKILL_CONSTRUCTION = construction, SKILL_LEADERSHIP = leadership, @@ -398,7 +380,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader powerloader = SKILL_POWERLOADER_MASTER firearms = SKILL_FIREARMS_TRAINED smartgun = SKILL_SMART_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/fo @@ -411,7 +392,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader police = SKILL_POLICE_MP powerloader = SKILL_POWERLOADER_TRAINED cqc = SKILL_CQC_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED smartgun = SKILL_SMART_TRAINED /datum/skills/so @@ -421,7 +401,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader medical = SKILL_MEDICAL_PRACTICED surgery = SKILL_SURGERY_AMATEUR police = SKILL_POLICE_MP - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/pilot name = PILOT_OFFICER @@ -491,7 +470,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader construction = SKILL_CONSTRUCTION_METAL engineer = SKILL_ENGINEER_METAL police = SKILL_POLICE_MP - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/sl name = SQUAD_LEADER @@ -501,7 +479,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader leadership = SKILL_LEAD_EXPERT medical = SKILL_MEDICAL_NOVICE surgery = SKILL_SURGERY_AMATEUR - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/sl/clf name = "CLF leader" @@ -597,7 +574,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader rifles = SKILL_RIFLES_TRAINED shotguns = SKILL_SHOTGUNS_TRAINED heavy_weapons = SKILL_HEAVY_WEAPONS_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/commando/medic name = "Commando Medic" @@ -623,7 +599,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader rifles = SKILL_RIFLES_TRAINED shotguns = SKILL_SHOTGUNS_TRAINED heavy_weapons = SKILL_HEAVY_WEAPONS_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/admiral name = "Admiral" @@ -633,7 +608,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader surgery = SKILL_SURGERY_AMATEUR police = SKILL_POLICE_FLASH powerloader = SKILL_POWERLOADER_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED /datum/skills/spatial_agent name = "Spatial Agent" @@ -644,7 +618,7 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader medical = SKILL_MEDICAL_MASTER cqc = SKILL_CQC_MASTER surgery = SKILL_SURGERY_EXPERT - melee_weapons = SKILL_MELEE_SUPER + melee_weapons = SKILL_MELEE_MASTER leadership = SKILL_LEAD_MASTER pilot = SKILL_PILOT_TRAINED pistols = SKILL_PISTOLS_TRAINED @@ -656,7 +630,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader powerloader = SKILL_POWERLOADER_MASTER large_vehicle = SKILL_LARGE_VEHICLE_VETERAN mech_pilot = SKILL_MECH_PILOT_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED /* Deathsquad */ /datum/skills/deathsquad @@ -722,7 +695,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader heavy_weapons = SKILL_HEAVY_WEAPONS_TRAINED smartgun = SKILL_SMART_USE // can use smartgun - swordplay = SKILL_SWORDPLAY_TRAINED // higher SL skills engineer = SKILL_ENGINEER_ENGI @@ -749,7 +721,6 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader smgs = SKILL_SMGS_TRAINED heavy_weapons = SKILL_HEAVY_WEAPONS_TRAINED smartgun = SKILL_SMART_TRAINED - swordplay = SKILL_SWORDPLAY_TRAINED //endurance = 0 - does nothing engineer = SKILL_ENGINEER_PLASTEEL @@ -808,8 +779,7 @@ engineer, construction, leadership, medical, surgery, pilot, police, powerloader medical = SKILL_MEDICAL_MASTER cqc = SKILL_CQC_MASTER surgery = SKILL_SURGERY_EXPERT - melee_weapons = SKILL_MELEE_SUPER + melee_weapons = SKILL_MELEE_MASTER pistols = SKILL_PISTOLS_TRAINED rifles = SKILL_RIFLES_TRAINED police = SKILL_POLICE_MP - swordplay = SKILL_SWORDPLAY_TRAINED diff --git a/code/game/objects/items/weapons/blades.dm b/code/game/objects/items/weapons/blades.dm index 17381822bc1..5aa003a454b 100644 --- a/code/game/objects/items/weapons/blades.dm +++ b/code/game/objects/items/weapons/blades.dm @@ -131,22 +131,6 @@ attack_verb = list("slash", "cut") w_class = WEIGHT_CLASS_BULKY -/obj/item/weapon/claymore/mercsword/officersword/attack(mob/living/carbon/M, mob/living/user) - . = ..() - if(user.skills.getRating("swordplay") == SKILL_SWORDPLAY_DEFAULT) - attack_speed = 20 - force = 35 - to_chat(user, span_warning("You try to figure out how to wield [src]...")) - if(prob(40)) - if(HAS_TRAIT_FROM(src, TRAIT_NODROP, STRAPPABLE_ITEM_TRAIT)) - REMOVE_TRAIT(src, TRAIT_NODROP, STRAPPABLE_ITEM_TRAIT) - user.drop_held_item(src) - to_chat(user, span_warning("[src] slipped out of your hands!")) - playsound(src.loc, 'sound/misc/slip.ogg', 25, 1) - if(user.skills.getRating("swordplay") == SKILL_SWORDPLAY_TRAINED) - attack_speed = initial(attack_speed) - force = initial(force) - /obj/item/weapon/claymore/mercsword/officersword/equipped(mob/user, slot) . = ..() toggle_item_bump_attack(user, TRUE) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index c6a4d94251b..4f2803f7ecb 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -474,7 +474,7 @@ Contains most of the procs that are called when a mob is attacked by something return TRUE /mob/living/carbon/human/proc/check_pred_shields(damage = 0, attack_text = "the attack", combistick = FALSE, backside_attack = FALSE, xenomorph = FALSE) - if(skills.getRating("swordplay") < SKILL_SWORDPLAY_TRAINED) + if(skills.getRating("melee_weapons") < SKILL_MELEE_MASTER) return FALSE var/block_effect = /obj/effect/temp_visual/block From d9db6e652dbbc905d93d8ff594fd1de17e1363d3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 21 Dec 2024 12:12:02 +0000 Subject: [PATCH 2/4] Automatic changelog for PR #848 [ci skip] --- html/changelogs/AutoChangeLog-pr-848.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-848.yml diff --git a/html/changelogs/AutoChangeLog-pr-848.yml b/html/changelogs/AutoChangeLog-pr-848.yml new file mode 100644 index 00000000000..73928fb04bf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-848.yml @@ -0,0 +1,4 @@ +author: "MalorMorfin" +delete-after: True +changes: + - rscadd: "Теперь для использования вали рапиры не требуется скилл" \ No newline at end of file From 4ca48827221657cf1e19d2f9fb1b7d63fa741ecd Mon Sep 17 00:00:00 2001 From: siegluck <110900393+siegluck@users.noreply.github.com> Date: Sat, 21 Dec 2024 15:21:14 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=90=D0=BB=D1=8C=D0=B1=D0=B5=D0=B4=D0=BE?= =?UTF-8?q?=20=D0=B8=20=D0=9D=D0=B8=D0=B3=D1=80=D0=B5=D0=B4=D0=BE=202:=20?= =?UTF-8?q?=D0=9C=D0=B5=D0=B4=D0=B8=D1=86=D0=B8=D0=BD=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B9=20=D1=80=D0=B5=D0=B2=D0=BE=D0=BB=D1=8C=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=20(=D0=B4=D1=83=D0=B1=D0=BB=D1=8C=202)=20(#774)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * albedo * albedo_sound * albedo_icons * adrenaline_rework * ne_pomnju_zachem * pravki * skill_check * adrenaline_timers * popravki_2 * t500/t312 to /t312 * pravka-3 * pouch-from-storage-to-pouches * pravka-5 * pravki-4 * pravka-6 * puli_v_spez_storagy * anti_prolaps * new_pouch_icon * bullets_icon_update * new_md_icon * cargo_rename * ammo_desc * Apply suggestions from code review Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com> Signed-off-by: siegluck <110900393+siegluck@users.noreply.github.com> * handful_5 * albedo_to_loadout * -recoil * medkit_with_meraderm_pills * try_to_fix_shit * Apply suggestions from code review Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com> Signed-off-by: siegluck <110900393+siegluck@users.noreply.github.com> --------- Signed-off-by: siegluck <110900393+siegluck@users.noreply.github.com> Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com> --- code/__DEFINES/calibers.dm | 1 + code/__DEFINES/cooldowns.dm | 2 + code/__DEFINES/loadout.dm | 12 ++++ .../objects/items/reagent_containers/pill.dm | 5 ++ code/game/objects/items/storage/boxes.dm | 37 +++++++++- code/game/objects/items/storage/firstaid.dm | 9 +++ code/game/objects/items/storage/holsters.dm | 6 +- code/game/objects/items/storage/pouch.dm | 27 +++++++ .../machinery/vending/marine_vending.dm | 9 +++ .../ammo_datums/bullet/revolver.dm | 68 ++++++++++++++++++ code/modules/projectiles/guns/revolvers.dm | 58 ++++++++++++++- code/modules/projectiles/magazines/misc.dm | 43 +++++++++++ .../projectiles/magazines/revolvers.dm | 34 ++++++++- code/modules/reagents/reagents/medical.dm | 14 ++-- code/modules/reqs/supplypacks/medical.dm | 35 +++++++++ icons/Marine/marine-pouches.dmi | Bin 11527 -> 11895 bytes icons/mob/hud/ammo.dmi | Bin 8067 -> 16389 bytes icons/obj/clothing/belts.dmi | Bin 36761 -> 37746 bytes icons/obj/items/ammo/handful.dmi | Bin 16187 -> 17490 bytes icons/obj/items/ammo/packet.dmi | Bin 31278 -> 30755 bytes icons/obj/items/ammo/revolver.dmi | Bin 4851 -> 4902 bytes sound/weapons/guns/fire/t312.ogg | Bin 0 -> 32153 bytes 22 files changed, 351 insertions(+), 9 deletions(-) create mode 100644 sound/weapons/guns/fire/t312.ogg 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 859840d2f1e5d64e55c5d3e0daf2582c3a021430..7e6a0826cab97be1ad4a82cd5f70276a3f099a11 100644 GIT binary patch delta 11547 zcmZvCcT`i~(sl@;D})XLAs|(n6e-ezbfgN1^xjkiq(k6Pq?b?yqzVd1N0cT~BsA%Q z(xindJwYV&4}bUGcinfr-~6%9T4$blW@ewW&Ym-SN1Gj4By$mr)o~{hi1YFB$;->D zs;V+EF+riwl*Gj9>gp10nhgt33Oi^61QI7Cd
)n?3RzbNgD)$UdER(A+ft
zsQj*DX-K2|j;U)LvG9K4ho>K~qw!_v`x1!n(%G6^*r!KkLVP1GC$|4jo(G
zLaS<=+nrI0>?LV=LJzXr1sTTyO-*0RlJU$e@1irT@Ud2A;L+<;$^IM0fsC|7A0Ov_
z%F!ifvFlkI@4vMXr&}N+S}m^ID}C~g@Q%RG9pi_5U?s@xR93n#nWO15ojXK3M!z#&
z5apV!Uh=q6xcm|pv@joX#D^b=>sL{H`LpsB?Ca+`zb!2E-b_gKcX7-`B;ejyb(x~6
z(D$IQB6a1S9 u*@-28^J2Jj~AOnAHuh6OH~e
zn`ypb`G0gW5ZyU1q_U#ZfaWRsFep|TS#WZW3ftFn3&Q@`T&WhsyB5xZh5UldSJU_D
zkJZ55Kno67F0$~Xq!oKMg% Q)imLs=Z$PpSSA#@GM;s+H#Gi%JOrbPzn~mtOMD@(XKiBCap5
zCI1~KPRT};Qy2{*4ksf#iHmYgZ!nAJTEMU+PBQeLO>a%n=Fe|{=*ht(bp|vACnU^<
zn#?{eElj`{4?Lka(3dM>DkQj9$()NH`FKm-Z`~mpFP%I5{H+aYNyMT6c64;l9y62B
zvkWOi^rbtBNx~LTeG!YP>+G0UGl5O)?|AXzeYgL @gSTSnRJWQwt|(UbJUgU*Evz!_ZK)0ro}TH(;-r5
zbSfiAHTHsd@~zO!yMVXV{YC^zju?{dMUB |ctv!PQDgPc@Tru$#(~6k>S*sy
zXkDYkH?xNfnukUar7lsOO+|lUhrA&12!k^AMe{i%6hX|!A>sL_N;dQ033?5=tiCHY
z2atjK=WP%tfvpV?@-pg?^bdK`fLcRIv{FP_+&e`6>1$N-B6aFYulhALlHrWZJXBR;
zPX!5WHp^#X05q1|MW=yu*q?!R_wZ#plc)(+du0LH-Sq7*bATaCw*nm{DU72o03yO5
zBD+v0NmL;J*XtcTVGOz^HvVw{w6e_N%Kk|U;)yUYBClb^b(>1eB~|1PHDg(t+)>r~
zfubM7IEvlnCG9G|!btdmSbVo3SaX*9N6#}b75qk?lZdE_Tgk5yred@@am{surwPvk
z>|@0LMd2b8aMA3(4(!fXWrGRi1k|tr47r)6g86iOKk~QJ-M4x6L7bj)et5gerL{F6
z+4`%m1r@dOgjs6L^+nqUp&vgc^+rJRZ;GzNohcv1`%pbU(p3y8{LJ`2u?z&q|D6wY
zpkJp_(wEjBl#)fQ^6{5PR@~P)8MS@8p|{bDhPgUvawOc)g$n6QuOr
nmC4FG6P&I`_4az$>TCuaejW*RT*i#!k;X;fg+qkXlUx
z=I}Zq@0C8VE~W#LcJ^kp48
sen
zn20gFvq4Mwrtw|!UJ_oVwJ@L8GGUi@H9sso%Gg6E#8{$Vt-;#9b593QkhkwU)9np1
zuA)itnUU-A<~<3*xwKq>QCco=F>MEC@-sI%`ac(Ku>LPGDt-Q5eTJhQ;?kp?Zj=f2
z-W$vnH!ODUfRtBEnSI#*Si@t^+VeO6$5MAs12e4raa8xF@>GFgRU9||@tt<^kG|hY
zHIE1Zs?J1XFwy|8sUe7`sX
|BUr0Vm~8MF-@|5SlM04V@b;#7pItS0wt6fu38L-?
z^jQuG!%jmtk|kYrU3!;BF`k*vGp7jE;%u
EW8`zj}o&Z3VBtGf@C#6;%^x3&i#(Lhc7m
zhuuB&rin*3LV>0~)XWB+hK144VT%)Q{TvcCIRa5()iqMK-reqpk}iB(kZW0ZC44VD
zT3Sc6>mirffU3Ce`KB~)cY{5H?+>3e?RMK#x(#@{NmN-W@>K@UTs-qXiE~#W0QJgN
Vty&n#aoqX)Z5_iKW!m=7{vT#rFLVF^
literal 8067
zcma)g2{@GR*Z