diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm index b08b2f137239..da99199dc6e3 100644 --- a/code/datums/ammo/rocket.dm +++ b/code/datums/ammo/rocket.dm @@ -401,7 +401,7 @@ if(prob(throw_chance)) continue atom.throw_atom(get_angle_target_turf(location,throw_direction,1),range = 1,speed = SPEED_INSTANT, spin = FALSE) - for(var/mob/living in location.contents) + for(var/mob/living/living in location.contents) if(prob(throw_chance + living.mob_size * 5 )) continue living.throw_atom(get_angle_target_turf(location,throw_direction,1),range = 1,speed = SPEED_INSTANT, spin = FALSE) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 177f299a7c69..763339b8587a 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -812,6 +812,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( desc = "A modified M10 marine helmet, Features a toggleable welding screen for eye protection. Completely invisible while toggled off as opposed to the technician helmet." specialty = "M10 welding" built_in_visors = list(new /obj/item/device/helmet_visor, new /obj/item/device/helmet_visor/welding_visor) + clothing_traits = list(TRAIT_EAR_PROTECTION) /obj/item/clothing/head/helmet/marine/grey diff --git a/code/modules/cm_marines/equipment/kit_boxes.dm b/code/modules/cm_marines/equipment/kit_boxes.dm index 9da233f3df57..8194d6a1267d 100644 --- a/code/modules/cm_marines/equipment/kit_boxes.dm +++ b/code/modules/cm_marines/equipment/kit_boxes.dm @@ -33,7 +33,7 @@ new /obj/item/clothing/suit/storage/marine/M3T(src) new /obj/item/clothing/head/helmet/marine/M3T(src) new /obj/item/storage/backpack/marine/rocketpack(src) - new /obj/item/weapon/gun/launcher/rocket(src) + new /obj/item/weapon/gun/launcher/rocket/m5(src) new /obj/item/ammo_magazine/rocket(src) new /obj/item/ammo_magazine/rocket(src) new /obj/item/ammo_magazine/rocket/ap(src) diff --git a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm index 47341bd2201e..edb134ac3f67 100644 --- a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm @@ -1,10 +1,9 @@ -//------------------------------------------------------- -//M5 RPG + /obj/item/weapon/gun/launcher/rocket - name = "\improper M5 RPG" - desc = "The M5 RPG is the primary anti-armor weapon of the USCM. Used to take out light-tanks and enemy structures, the M5 RPG is a dangerous weapon with a variety of combat uses." + name = "\improper common rocket launcher ancestor" + desc = "You should not be seeing this" icon = 'icons/obj/items/weapons/guns/guns_by_faction/USCM/rocket_launchers.dmi' icon_state = "m5" item_state = "m5" @@ -211,6 +210,14 @@ mob.apply_effect(6, STUTTER) mob.emote("pain") + +//------------------------------------------------------- +//M5 RPG + +/obj/item/weapon/gun/launcher/rocket/m5 + name = "\improper M5 RPG" + desc = "The M5 RPG is the primary anti-armor weapon of the USCM. Used to take out light-tanks and enemy structures, the M5 RPG is a dangerous weapon with a variety of combat uses." + //------------------------------------------------------- //M5 RPG'S MEAN FUCKING COUSIN @@ -395,6 +402,9 @@ C.apply_effect(6, STUTTER) C.emote("pain") +//------------------------------------------------------- +//BRUTE + /obj/item/weapon/gun/launcher/rocket/brute name = "\improper M6H-BRUTE launcher system" desc = " Breaching Rocket Unit for Tactical Entry, or BRUTE, is a shoulder-mounted, man-portable launcher system designed to give combat technicians rapid structure defeating capabilities at reasonable range. The launcher fits a fore-mounted laser guidance module that steers the 90mm shaped-charge rockets towards a fortified position. Try not to drool on it." @@ -416,6 +426,20 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) +/obj/item/weapon/gun/launcher/rocket/brute/retrieve_to_slot(mob/living/carbon/human/user, retrieval_slot, check_loc, silent) + if(retrieval_slot == WEAR_J_STORE) //If we are using a magharness... + if(..(user, WEAR_IN_BACK, check_loc, silent)) //...first try to put it onto the Broiler. + return TRUE + return ..() + +/obj/item/weapon/gun/launcher/rocket/brute/retrieval_check(mob/living/carbon/human/user, retrieval_slot) + if(retrieval_slot == WEAR_IN_BACK) + var/obj/item/storage/belt/gun/brutepack/brutepack = user.back + if(istype(brutepack) && brutepack.can_be_inserted(src, user, TRUE)) + return TRUE + return FALSE + return ..() + /obj/item/weapon/gun/launcher/rocket/brute/skill_fail(mob/living/user) return !skillcheck(user, SKILL_ENGINEER ,SKILL_ENGINEER_ENGI) diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm index 136e197f3e0c..e96e027be006 100644 --- a/code/modules/projectiles/magazines/specialist.dm +++ b/code/modules/projectiles/magazines/specialist.dm @@ -147,7 +147,7 @@ w_class = SIZE_MEDIUM max_rounds = 1 default_ammo = /datum/ammo/rocket - gun_type = /obj/item/weapon/gun/launcher/rocket + gun_type = /obj/item/weapon/gun/launcher/rocket/m5 flags_magazine = NO_FLAGS /obj/item/ammo_magazine/rocket/attack_self(mob/user)