diff --git a/baystation12.dme b/baystation12.dme index 8465e9a321886..8b5b8639b2344 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -2286,6 +2286,7 @@ #include "code\modules\halo\weapons\MA3.dm" #include "code\modules\halo\weapons\MA37.dm" #include "code\modules\halo\weapons\MA5B.dm" +#include "code\modules\halo\weapons\XM98.dm" #include "code\modules\halo\weapons\melee.dm" #include "code\modules\halo\weapons\plastic_explosives.dm" #include "code\modules\halo\weapons\railrifle.dm" diff --git a/code/modules/halo/insurrection/innie_outfits.dm b/code/modules/halo/insurrection/innie_outfits.dm index 0350f327f3fe5..d173703762416 100644 --- a/code/modules/halo/insurrection/innie_outfits.dm +++ b/code/modules/halo/insurrection/innie_outfits.dm @@ -57,6 +57,7 @@ head = /obj/item/clothing/head/helmet/innie/urfdefector glasses = /obj/item/clothing/glasses/hud/tactical + back = /obj/item/weapon/gun/projectile/xm98_carbine/orion mask = /obj/item/clothing/mask/gas/soebalaclava suit = /obj/item/clothing/suit/storage/innie/urfdefector uniform = /obj/item/clothing/under/psysuit/theta @@ -74,4 +75,4 @@ if(W) W.rank = "Colonist" W.assignment = "Colonist" - W.update_name() \ No newline at end of file + W.update_name() diff --git a/code/modules/halo/insurrection/orion.dm b/code/modules/halo/insurrection/orion.dm index c9fbfa82fb1a2..793f64a3baa47 100644 --- a/code/modules/halo/insurrection/orion.dm +++ b/code/modules/halo/insurrection/orion.dm @@ -35,3 +35,11 @@ BP_EYES = /obj/item/organ/internal/eyes/occipital_reversal/theta ) +/datum/species/orion/get_random_name(var/gender) + + var/name = "" + if(gender == FEMALE) + name = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) + else + name = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) + return name diff --git a/code/modules/halo/misc/neural_lace_injectors.dm b/code/modules/halo/misc/neural_lace_injectors.dm index 3b619068dbb94..40d393ca43aee 100644 --- a/code/modules/halo/misc/neural_lace_injectors.dm +++ b/code/modules/halo/misc/neural_lace_injectors.dm @@ -35,6 +35,14 @@ name = "Lace Injector (OFFICER)" access_add = list(access_unsc,access_unsc_armoury,access_unsc_marine,access_unsc_odst,access_unsc_specialist,access_unsc_cargo,access_unsc_supplies,access_unsc_officers,access_unsc_bridge,access_unsc_oni) +/obj/item/lace_injector/oni + name = "Lace Injector (ONI)" + access_add = list(access_unsc,access_unsc_bridge,access_unsc_medical,access_unsc_armoury,access_unsc_odst,access_unsc_specialist,access_unsc_supplies,access_unsc_oni,access_unsc_cargo) + +/obj/item/lace_injector/spartan + name = "Lace Injector (SPARTAN)" + access_add = list(access_unsc,access_unsc_bridge,access_unsc_tech,access_unsc_crew,access_unsc_navsec,access_unsc_ops,access_unsc_fighters,access_unsc_shuttles,access_unsc_medical,access_unsc_armoury,access_unsc_supplies,access_unsc_cargo,access_unsc_officers,access_unsc_marine,access_unsc_gunnery,access_unsc_ids,access_unsc_odst,access_unsc_oni,access_unsc_specialist) + /obj/item/lace_injector/allaccess //For adminuse and debug purposes. name = "Lace Injector (ALL-ACCESS)" - access_add = list(access_unsc,access_unsc_bridge,access_unsc_tech,access_unsc_crew,access_unsc_navsec,access_unsc_ops,access_unsc_fighters,access_unsc_shuttles,access_unsc_medical,access_unsc_armoury,access_unsc_supplies,access_unsc_officers,access_unsc_marine,access_unsc_gunnery,access_unsc_ids,access_unsc_odst,access_unsc_specialist,access_unsc_cargo,access_unsc_oni) \ No newline at end of file + access_add = list(access_unsc,access_unsc_bridge,access_unsc_tech,access_unsc_crew,access_unsc_navsec,access_unsc_ops,access_unsc_fighters,access_unsc_shuttles,access_unsc_medical,access_unsc_armoury,access_unsc_supplies,access_unsc_officers,access_unsc_marine,access_unsc_gunnery,access_unsc_ids,access_unsc_odst,access_unsc_specialist,access_unsc_cargo,access_unsc_oni) diff --git a/code/modules/halo/unsc/jobs/spartan_two.dm b/code/modules/halo/unsc/jobs/spartan_two.dm index 3662cfab70324..a01a2f8513d65 100644 --- a/code/modules/halo/unsc/jobs/spartan_two.dm +++ b/code/modules/halo/unsc/jobs/spartan_two.dm @@ -17,6 +17,7 @@ access_unsc_medical,\ access_unsc_armoury,\ access_unsc_supplies,\ + access_unsc_cargo, \ access_unsc_officers,\ access_unsc_marine,\ access_unsc_gunnery,\ diff --git a/code/modules/halo/unsc/jobs/spartan_two_outfits.dm b/code/modules/halo/unsc/jobs/spartan_two_outfits.dm index eace3abe93290..18f7ac0b54151 100644 --- a/code/modules/halo/unsc/jobs/spartan_two_outfits.dm +++ b/code/modules/halo/unsc/jobs/spartan_two_outfits.dm @@ -6,10 +6,12 @@ gloves = /obj/item/clothing/gloves/spartan shoes = /obj/item/clothing/shoes/magboots/spartan head = /obj/item/clothing/head/helmet/spartan + back = /obj/item/weapon/gun/projectile/xm98_carbine l_ear = /obj/item/device/radio/headset/unsc/spartan suit_store = /obj/item/weapon/tank/emergency/oxygen/double starting_accessories = list(/obj/item/clothing/accessory/rank/fleet/enlisted/e9) id_type = /obj/item/weapon/card/id/spartan + l_hand = /obj/item/language_learner/human_to_sang flags = 0 /decl/hierarchy/outfit/job/adminspawn_marine/spartan @@ -24,11 +26,12 @@ l_ear = /obj/item/device/radio/headset/unsc/spartan suit_store = /obj/item/weapon/gun/projectile/m6d_magnum starting_accessories = list(/obj/item/clothing/accessory/rank/fleet/enlisted/e9) - back = /obj/item/weapon/gun/projectile/ma5b_ar + back = /obj/item/weapon/gun/projectile/xm98_carbine belt = /obj/item/weapon/storage/belt/marine_ammo/mobilespawn_ma5 r_ear = /obj/item/weapon/reagent_containers/syringe/biofoam l_pocket =/obj/item/weapon/grenade/frag/m9_hedp r_pocket = /obj/item/weapon/armor_patch + l_hand = /obj/item/language_learner/human_to_sang id_type = /obj/item/weapon/card/id/spartan flags = 0 @@ -61,4 +64,4 @@ back = /obj/item/weapon/gun/energy/spartanlaser belt = /obj/item/weapon/storage/belt/marine_ammo/mobilespawn_smg - suit_store = /obj/item/weapon/gun/projectile/m7_smg \ No newline at end of file + suit_store = /obj/item/weapon/gun/projectile/m7_smg diff --git a/code/modules/halo/unsc/supply/explosives.dm b/code/modules/halo/unsc/supply/explosives.dm index 05613b56cf780..d91b228ba1fac 100644 --- a/code/modules/halo/unsc/supply/explosives.dm +++ b/code/modules/halo/unsc/supply/explosives.dm @@ -130,4 +130,4 @@ name = "Piercing Breaching Charges (4)" cost = 700 contains = list(/obj/item/weapon/plastique/breaching/longrange = 4) - containername = "\improper Piercing Breaching Charge crate" \ No newline at end of file + containername = "\improper Piercing Breaching Charge crate" diff --git a/code/modules/halo/unsc/supply/onispecial.dm b/code/modules/halo/unsc/supply/onispecial.dm index fbb1379e558ac..486abf97ef1f0 100644 --- a/code/modules/halo/unsc/supply/onispecial.dm +++ b/code/modules/halo/unsc/supply/onispecial.dm @@ -19,7 +19,8 @@ /obj/item/organ/internal/heart/spartan/theta = 1, /obj/item/organ/internal/liver/spartan/theta = 1, /obj/item/organ/internal/lungs/theta = 1, - /obj/item/species_convert/orion = 1 + /obj/item/species_convert/orion = 1, + /obj/item/lace_injector/odst = 1 //orioning removes your neural lace ) cost = 4000 containername = "\improper Orion organs freezer" @@ -27,19 +28,19 @@ /decl/hierarchy/supply_pack/oni_special/laceinjectormarine //So UNSC has a way to give access to people name = "UNSC Marine Lace Access Injector" contains = list(/obj/item/lace_injector/marine = 1) - cost = 250 + cost = 100 containername = "\improper Neural Lace crate" /decl/hierarchy/supply_pack/oni_special/laceinjectorodst //So UNSC has a way to give access to people name = "UNSC ODST Lace Access Injector" contains = list(/obj/item/lace_injector/marine_spec = 1) - cost = 500 + cost = 250 containername = "\improper Neural Lace crate" -/decl/hierarchy/supply_pack/oni_special/laceinjectorofficer //So UNSC has a way to give basic access to people +/decl/hierarchy/supply_pack/oni_special/laceinjectorofficer //So UNSC has a way to give access to people name = "UNSC Officer Lace Access Injector" contains = list(/obj/item/lace_injector/odst = 1) - cost = 1000 + cost = 500 containername = "\improper Neural Lace crate" /* MATERIALS - Expensive so that ONI hopefully doesn't powergame research. Not all items included, just in case they somehow do. */ @@ -92,4 +93,4 @@ name = "Type-51 Carbine (1)" contains = list(/obj/item/weapon/gun/projectile/type51carbine = 1) cost = 1500 - containername = "\improper Carbine crate" \ No newline at end of file + containername = "\improper Carbine crate" diff --git a/code/modules/halo/weapons/M7.dm b/code/modules/halo/weapons/M7.dm index 3c07e2299c46b..0d1200b924fa2 100644 --- a/code/modules/halo/weapons/M7.dm +++ b/code/modules/halo/weapons/M7.dm @@ -47,6 +47,9 @@ /obj/item/weapon/gun/projectile/m7_smg/silenced name = "M7S submachine gun" desc = "The M7S is a special operations variant of the M7 submachine gun with inbuilt suppressor and host of other attachments. Takes 5mm calibre magazines." + icon_state = "m7smgs" + item_state = "m7s" + wielded_item_state = "m7s-wielded" silenced = 1 is_heavy = 1 scoped_accuracy = 1 diff --git a/code/modules/halo/weapons/XM98.dm b/code/modules/halo/weapons/XM98.dm new file mode 100644 index 0000000000000..4c3898a1ccb2a --- /dev/null +++ b/code/modules/halo/weapons/XM98.dm @@ -0,0 +1,53 @@ +/obj/item/weapon/gun/projectile/xm98_carbine + name = "\improper XM98 Carbine" + desc = "An experimental carbine dreamt up by the Office of Naval Intelligence as a standard rifle for special operations teams, trading the modularity of the MA5B with a fast and accurate 2 round burst or fast and inaccurate 5 round burst. It is a bullpup carbine with an integrated suppressor, and is capable of using magazines from the MA5B, MA3, and MA37. It has a reflex sight attached on the top." + icon = 'code/modules/halo/weapons/icons/Weapon Sprites.dmi' + icon_state = "XM98" + item_state = "xm98" + caliber = "7.62mm" + fire_sound = 'code/modules/halo/sounds/MA3firefix.ogg' //sounds suppressed enough + reload_sound = 'code/modules/halo/sounds/MA37_Reload_New.wav' + magazine_type = /obj/item/ammo_magazine/ma5b/m118 + allowed_magazines = list(/obj/item/ammo_magazine/ma37/m118, /obj/item/ammo_magazine/ma5b, /obj/item/ammo_magazine/ma3/m118) + load_method = MAGAZINE + slot_flags = SLOT_BACK + wielded_item_state = "xm98-wielded" + + burst = 2 + burst_delay = 0.8 + one_hand_penalty = -1 + dispersion = list(0.0,0.1,0.2,0.2) + hud_bullet_row_num = 20 + silenced = 1 + + firemodes = list(\ + list(mode_name="3 round burst", burst=3, dispersion=list(0.0,0.1,0.2)), + list(mode_name="6 round burst", burst=5, dispersion=list(0.7,0.8,0.9,1.0,1.1,1.2)), + ) + + ammo_icon_state = null + attachment_slots = null + attachments_on_spawn = null + +/obj/item/weapon/gun/projectile/xm98_carbine/can_use_when_prone() + return 1 + +/obj/item/weapon/gun/projectile/xm98_carbine/update_icon() + . = ..() + if(ammo_magazine) + icon_state = "XM98" + else + icon_state = "XM98_unloaded" + + item_icons = list( + slot_l_hand_str = 'code/modules/halo/weapons/icons/Weapon_Inhands_left.dmi', + slot_r_hand_str = 'code/modules/halo/weapons/icons/Weapon_Inhands_right.dmi', + slot_back_str = 'code/modules/halo/weapons/icons/Back_Weapons.dmi', + slot_s_store_str = 'code/modules/halo/weapons/icons/Armor_Weapons.dmi', + ) + + +/obj/item/weapon/gun/projectile/xm98_carbine/orion + name = "\improper XM98 Carbine" + desc = "An experimental carbine dreamt up by the Office of Naval Intelligence as a standard rifle for special operations teams, trading the modularity of the MA5B with a faster rate of fire and better accuracy. It is a bullpup carbine with an integrated suppressor, and is capable of using magazines from the MA5B, MA3, and MA37. It has a low-magnification sight attached on the top. Recently, a number have went missing from an ONI shipment, and have begun showing up in the hands of the URF's elite." + magazine_type = /obj/item/ammo_magazine/ma37/m118 diff --git a/code/modules/halo/weapons/icons/Back_Weapons.dmi b/code/modules/halo/weapons/icons/Back_Weapons.dmi index d76adf4d365b8..0d45377a38575 100644 Binary files a/code/modules/halo/weapons/icons/Back_Weapons.dmi and b/code/modules/halo/weapons/icons/Back_Weapons.dmi differ diff --git a/code/modules/halo/weapons/icons/Weapon Sprites.dmi b/code/modules/halo/weapons/icons/Weapon Sprites.dmi index 3f1bb808f6e60..3d2e40580d8df 100644 Binary files a/code/modules/halo/weapons/icons/Weapon Sprites.dmi and b/code/modules/halo/weapons/icons/Weapon Sprites.dmi differ diff --git a/code/modules/halo/weapons/icons/Weapon_Inhands_left.dmi b/code/modules/halo/weapons/icons/Weapon_Inhands_left.dmi index 0e89b95f77f7d..9f42c61979ca3 100644 Binary files a/code/modules/halo/weapons/icons/Weapon_Inhands_left.dmi and b/code/modules/halo/weapons/icons/Weapon_Inhands_left.dmi differ diff --git a/code/modules/halo/weapons/icons/Weapon_Inhands_right.dmi b/code/modules/halo/weapons/icons/Weapon_Inhands_right.dmi index 22c55d5d7807f..be23e8263064d 100644 Binary files a/code/modules/halo/weapons/icons/Weapon_Inhands_right.dmi and b/code/modules/halo/weapons/icons/Weapon_Inhands_right.dmi differ