diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1bd030313a4..07273818480 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -417,3 +417,4 @@ var/list/default_xeno_onmob_icons = list( #define HANDLING_LIMBS list("l_arm","l_hand", "r_arm", "r_hand") #define EXTREMITY_LIMBS list("l_leg","l_foot","r_leg","r_foot","l_arm","l_hand","r_arm","r_hand") #define CORE_LIMBS list("chest","head","groin") + diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm index 513b3ae93ed..83d761ec50c 100644 --- a/code/modules/clothing/suits/marine_armor.dm +++ b/code/modules/clothing/suits/marine_armor.dm @@ -1635,47 +1635,47 @@ //=======================================================================\\ /obj/item/clothing/suit/storage/marine/MP/provost - name = "\improper M3 pattern Provost armor" - desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvlight" - item_state_slots = list(WEAR_JACKET = "pvlight") - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - w_class = SIZE_MEDIUM - -/obj/item/clothing/suit/storage/marine/MP/provost/enforcer name = "\improper M3 pattern Provost armor" desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." icon_state = "pvmedium" item_state_slots = list(WEAR_JACKET = "pvmedium") - slowdown = SLOWDOWN_ARMOR_MEDIUM - armor_melee = CLOTHING_ARMOR_MEDIUM + slowdown = SLOWDOWN_ARMOR_LIGHT armor_bullet = CLOTHING_ARMOR_MEDIUM armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUMLOW - armor_bio = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH armor_internaldamage = CLOTHING_ARMOR_MEDIUM + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + storage_slots = 3 /obj/item/clothing/suit/storage/marine/MP/provost/tml name = "\improper M3 pattern Senior Provost armor" + desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." icon_state = "pvleader" item_state_slots = list(WEAR_JACKET = "pvleader") - desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - - slowdown = SLOWDOWN_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH /obj/item/clothing/suit/storage/marine/MP/provost/marshal + name = "\improper M5 pattern Provost Marshal armor" + desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." icon_state = "pvmarshal" item_state_slots = list(WEAR_JACKET = "pvmarshal") - name = "\improper M3 pattern Provost Marshal armor" - desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." + w_class = SIZE_MEDIUM + storage_slots = 4 + +/obj/item/clothing/suit/storage/marine/MP/provost/light + name = "\improper M3 pattern Provost light armor" + desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvlight" + item_state_slots = list(WEAR_JACKET = "pvlight") + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT -/obj/item/clothing/suit/storage/marine/MP/provost/marshal/chief - name = "\improper M3 pattern Provost Chief Marshal armor" +/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi + name = "\improper M3 pattern Provost flexi-armor" + desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + w_class = SIZE_MEDIUM + icon_state = "pvlight_2" + item_state_slots = list(WEAR_JACKET = "pvlight_2") + storage_slots = 2 //================//UNITED AMERICAS ALLIED COMMAND\\=====================\\ //=======================================================================\\ diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm index d6781147a09..73d7e098185 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -235,31 +235,23 @@ //=========================//PROVOST\\================================\\ //=======================================================================\\ + /obj/item/clothing/suit/storage/jacket/marine/provost - name = "\improper Provost Coat" - desc = "The crisp coat of a Provost Officer." + name = "\improper Provost Jacket" + desc = "A crisp jacket with the Provost sigil." + icon_state = "provost_jacket" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - icon_state = "provost_coat" valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR) -/obj/item/clothing/suit/storage/jacket/marine/provost/advisor - name = "\improper Provost Advisor Jacket" - desc = "The crisp jacket of a Provost Advisor." - icon_state = "provost_jacket" - -/obj/item/clothing/suit/storage/jacket/marine/provost/inspector - name = "\improper Provost Inspector Jacket" - desc = "The crisp jacket of a Provost Inspector." - icon_state = "provost_jacket" +/obj/item/clothing/suit/storage/jacket/marine/provost/coat + name = "\improper Provost Coat" + desc = "The crisp coat of a Provost Officer." + icon_state = "provost_coat" -/obj/item/clothing/suit/storage/jacket/marine/provost/marshal - name = "\improper Provost Marshal Jacket" - desc = "The crisp jacket of a Provost Marshal." - icon_state = "provost_jacket" +/obj/item/clothing/suit/storage/jacket/marine/provost/coat/marshal + name = "\improper Provost Marshal Coat" + icon_state = "provost_coat_marshal" -/obj/item/clothing/suit/storage/jacket/marine/provost/marshal/chief - name = "\improper Provost Chief Marshal Jacket" - desc = "The crisp jacket of the Provost Chief Marshal." //=========================//DRESS BLUES\\================================\\ //=======================================================================\\ diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index d9d8d7da45b..59cc02b1257 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -374,41 +374,17 @@ min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT -/obj/item/clothing/under/marine/mp/provost/enforcer - name = "\improper Provost Enforcer Uniform" - desc = "The crisp uniform of a Provost Enforcer." - -/obj/item/clothing/under/marine/mp/provost/tml - name = "\improper Provost Team Leader Uniform" - desc = "The crisp uniform of a Provost Team Leader." - icon_state = "warden_jumpsuit" - worn_state = "warden_jumpsuit" - -/obj/item/clothing/under/marine/mp/provost/advisor - name = "\improper Provost Advisor Uniform" - desc = "The crisp uniform of a Provost Advisor." - icon_state = "warden_jumpsuit" - worn_state = "warden_jumpsuit" - -/obj/item/clothing/under/marine/mp/provost/inspector - name = "\improper Provost Inspector Uniform" - desc = "The crisp uniform of a Provost Inspector." - icon_state = "warden_jumpsuit" - worn_state = "warden_jumpsuit" +/obj/item/clothing/under/marine/mp/provost/senior + name = "\improper Provost Senior Uniform" + desc = "The crisp uniform of a senior member of the Provost Office." + icon_state = "provost_tml" + worn_state = "provost_tml" /obj/item/clothing/under/marine/mp/provost/marshal name = "\improper Provost Marshal Uniform" desc = "The crisp uniform of a Provost Marshal." - icon_state = "WO_jumpsuit" - worn_state = "WO_jumpsuit" - -/obj/item/clothing/under/marine/mp/provost/marshal/sector - name = "\improper Provost Sector Marshal Uniform" - desc = "The crisp uniform of a Provost Sector Marshal." - -/obj/item/clothing/under/marine/mp/provost/marshal/chief - name = "\improper Provost Chief Marshal Uniform" - desc = "The crisp uniform of the Provost Chief Marshal." + icon_state = "provost_marshal" + worn_state = "provost_marshal" //==================//UNITED AMERICAS ALLIED COMMAND\\===================\\ //=======================================================================\\ diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index a76176db9a6..ce7b9922032 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -206,11 +206,11 @@ back_item = /obj/item/storage/backpack/security new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/provost(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/enforcer(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/enforcer(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost(new_human), WEAR_JACKET) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) else @@ -248,7 +248,7 @@ back_item = /obj/item/storage/backpack/security new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/provost(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/tml(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/senior(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) @@ -275,44 +275,8 @@ new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat(new_human), WEAR_J_STORE) - -/datum/equipment_preset/uscm_event/provost/advisor - name = "Provost Advisor (ME6)" - skills = /datum/skills/CMP - - assignment = JOB_PROVOST_ADVISOR - rank = "Provost Advisor" - paygrade = "ME6" - role_comm_title = "PvA" - flags = EQUIPMENT_PRESET_EXTRA - -/datum/equipment_preset/uscm_event/provost/advisor/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/satchel/sec - if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) - back_item = /obj/item/storage/backpack/security - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/provost(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/advisor(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/advisor(new_human), WEAR_JACKET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/mp/provost/senior(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost(new_human.back), WEAR_IN_BACK) - - new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) - /datum/equipment_preset/uscm_event/provost/inspector name = "Provost Inspector (PvI)" - skills = /datum/skills/CMP assignment = JOB_PROVOST_INSPECTOR rank = "Provost Inspector" @@ -326,11 +290,11 @@ back_item = /obj/item/storage/backpack/security new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/provost(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/inspector(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/senior(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/inspector(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost(new_human), WEAR_JACKET) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) else @@ -339,11 +303,19 @@ new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/light/flexi(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) +/datum/equipment_preset/uscm_event/provost/inspector/advisor + name = "Provost Advisor (ME6)" + + assignment = JOB_PROVOST_ADVISOR + rank = "Provost Advisor" + paygrade = "ME6" + role_comm_title = "PvA" + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/uscm_event/provost/marshal name = "Provost Marshal (MO6)" @@ -366,7 +338,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/general/impact(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/marshal(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/coat/marshal(new_human), WEAR_JACKET) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) else @@ -377,70 +349,24 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol/pmc_mateba(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/marshal(new_human.back), WEAR_IN_BACK) - /datum/equipment_preset/uscm_event/provost/marshal/sector name = "Provost Sector Marshal (MO7)" minimum_age = 50 - skills = /datum/skills/general assignment = JOB_PROVOST_SMARSHAL rank = "Provost Sector Marshal" paygrade = "MO7" role_comm_title = "PvSM" -/datum/equipment_preset/uscm_event/provost/marshal/sector/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/satchel/sec - if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) - back_item = /obj/item/storage/backpack/security - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/highcom(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/marshal(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/general/impact(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/marshal(new_human), WEAR_JACKET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/mp/provost/marshal(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol/pmc_mateba(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/marshal(new_human.back), WEAR_IN_BACK) - - /datum/equipment_preset/uscm_event/provost/marshal/chief name = "Provost Chief Marshal (PvCM)" minimum_age = 60 - skills = /datum/skills/general assignment = JOB_PROVOST_CMARSHAL rank = "Provost Chief Marshal" paygrade = "PvCM" role_comm_title = "PvCM" -/datum/equipment_preset/uscm_event/provost/marshal/chief/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/satchel/sec - if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) - back_item = /obj/item/storage/backpack/security - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/highcom(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/marshal/chief(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/general/impact(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost/marshal/chief(new_human), WEAR_JACKET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/mp/provost/marshal(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol/pmc_mateba(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/marshal/chief(new_human.back), WEAR_IN_BACK) - /*****************************************************************************************************/ /datum/equipment_preset/uscm_event/uaac/tis diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 3d74673c530..56951097a12 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -28,7 +28,7 @@ //TODO: Integrate defence zones and targeting body parts with the actual organ system, move these into organ definitions. -//The base miss chance for the different defence zones +/// The base miss chance for the different defence zones var/list/global/base_miss_chance = list( "head" = 10, "chest" = 0, diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index d562d305c28..323e994529a 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -739,7 +739,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) switch(angle) //this reduces power when the explosion is going around corners if (45) spread_power *= 0.75 - else //turns out angles greater than 90 degrees almost never happen. This bit also prevents trying to spread backwards + if (90 to 180) //turns out angles greater than 90 degrees almost never happen. This bit also prevents trying to spread backwards continue switch(spread_direction) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b01203d0f4d..adb97e3a1c4 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -455,12 +455,31 @@ if(hit_chance) // Calculated from combination of both ammo accuracy and gun accuracy var/hit_roll = rand(1,100) + var/direct_hit = FALSE - if(original != L || hit_roll > hit_chance-base_miss_chance[def_zone]-20) // If hit roll is high or the firer wasn't aiming at this mob, we still hit but now we might hit the wrong body part + // Wasn't the clicked target + if(original != L) def_zone = rand_zone() + + // Xenos get a RNG limb miss chance regardless of being clicked target or not, see below + else if(isxeno(L) && hit_roll > hit_chance - 20) + def_zone = rand_zone() + + // Other targets do the same roll with penalty - a near hit will hit but redirected to another limb + else if(!isxeno(L) && hit_roll > hit_chance - 20 - base_miss_chance[def_zone]) + def_zone = rand_zone() + else + direct_hit = TRUE SEND_SIGNAL(firer, COMSIG_BULLET_DIRECT_HIT, L) - hit_chance -= base_miss_chance[def_zone] // Reduce accuracy based on spot. + + // At present, Xenos have no inherent effects or localized damage stemming from limb targeting + // Therefore we exempt the shooter from direct hit accuracy penalties as well, + // simply to avoid them from resetting target to chest every time they want to shoot a xeno + + if(!direct_hit || !isxeno(L)) // For normal people or direct hits we apply the limb accuracy penalty + hit_chance -= base_miss_chance[def_zone] + // else for direct hits on xenos, we skip it, pretending it's a chest shot with zero penalty #if DEBUG_HIT_CHANCE to_world(SPAN_DEBUG("([L]) Hit chance: [hit_chance] | Roll: [hit_roll]")) diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index 1afc45c37aa..a7002c5825b 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -407,3 +407,16 @@ - code_imp: Renames the announce var in ERT procs to be more indicative of what it does. - rscadd: Added a setting on custom ERTs for announcing beacon was received. +2023-10-29: + Segrain: + - bugfix: Incendiary OB once again spreads to intended size. + fira: + - bugfix: Sprite-click shots onto Xenos are no longer affected by limb-targeting + penalty, because it was an accuracy debuff when there is no inherent benefit + to targeting Xeno limbs. + realforest2001: + - imageadd: Added sprites for provost senior and marshal uniforms. + - spellcheck: Gave unique names to the provost armour subtypes. + - balance: Prevented most provost armour from being able to fit inside bags. + - balance: Returned provost armour to the same slowdowns as MP armour. + - code_imp: Removed a lot of duplicate code in Provost presets and uniform/suits. diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi index 624d8792cf2..a911171f852 100644 Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi index 873c325a560..7a2dcce20c5 100644 Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi index d05d7ffdf77..fb655de1eaf 100644 Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi index 4266db88afe..765f9deae11 100644 Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ