diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index 15350793fad4..3efc7429d803 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm @@ -150,7 +150,7 @@ pixel_x = -5; pixel_y = 12 }, -/obj/item/clothing/head/helmet/chaplain/ancient{ +/obj/item/clothing/head/witchunter{ pixel_y = 13; pixel_x = -5 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index b6b1b11615a8..322ab73490f9 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -2809,10 +2809,9 @@ /obj/item/clothing/head/collectable/chef, /obj/item/clothing/head/collectable/HoP, /obj/item/clothing/head/collectable/rabbitears, -/obj/item/clothing/head/helmet/chaplain, +/obj/item/clothing/head/witchunter, /obj/item/clothing/neck/cloak/trans, /obj/item/clothing/neck/cloak/cap, -/obj/item/clothing/head/helmet/chaplain/witchunter_hat, /obj/item/clothing/neck/beads, /obj/item/clothing/neck/necklace/dope, /obj/item/clothing/neck/stripedredscarf, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm index a880d2947ae2..207d91d4219a 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -424,7 +424,7 @@ "qo" = ( /obj/structure/closet/cabinet, /obj/item/spear/bonespear, -/obj/item/clothing/suit/armor/riot/chaplain/studentuni, +/obj/item/clothing/suit/armor/witchhunter, /obj/item/reagent_containers/food/snacks/grown/berries/death, /turf/open/floor/wood/waste, /area/ruin/wasteplanet) @@ -461,7 +461,7 @@ /area/ruin/wasteplanet) "qU" = ( /obj/structure/closet/cabinet, -/obj/item/clothing/suit/armor/riot/chaplain/studentuni, +/obj/item/clothing/suit/armor/witchhunter, /turf/open/floor/wood/waste, /area/ruin/wasteplanet) "rh" = ( @@ -492,7 +492,7 @@ "sV" = ( /obj/structure/closet/cabinet, /obj/item/claymore/bone, -/obj/item/clothing/suit/armor/riot/chaplain/studentuni, +/obj/item/clothing/suit/armor/witchhunter, /turf/open/floor/wood/waste, /area/ruin/wasteplanet) "tB" = ( diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index 73ce92630014..2bc7a358b754 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -33,7 +33,7 @@ "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/miner/gorlex", + "outfit": "/datum/outfit/job/syndicate/engineer/gorlex", "slots": 1 }, "Trooper": { @@ -45,7 +45,7 @@ "slots": 2 }, "Bridge Officer": { - "outfit": "/datum/outfit/job/syndicate/head_of_personnel", + "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", "slots": 1 } }, diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm index 0fdb4827655a..5ea4e25b4687 100644 --- a/_maps/shuttles/roumain/srm_elder.dmm +++ b/_maps/shuttles/roumain/srm_elder.dmm @@ -2617,7 +2617,7 @@ /obj/item/clothing/under/suit/roumain, /obj/item/clothing/suit/armor/roumain, /obj/item/clothing/head/cowboy/sec/roumain, -/obj/item/clothing/suit/armor/riot/chaplain/witchhunter, +/obj/item/clothing/suit/armor/witchhunter, /obj/item/flashlight/lantern, /obj/structure/closet/secure_closet/hunter, /obj/item/lighter, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index fc7e7a029b82..445b6391a30d 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -188,17 +188,16 @@ /turf/open/floor/plating/rust, /area/ship/maintenance/starboard) "dD" = ( -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/mask/gas/syndicate, /obj/effect/turf_decal/techfloor{ dir = 10 }, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/under/syndicate, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "dG" = ( @@ -372,21 +371,21 @@ pixel_x = -12; pixel_y = 7 }, -/obj/item/clothing/under/syndicate/sniper, /obj/item/clothing/shoes/combat, /obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/suit/armor/vest/duster, /obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "Bridge Officer's Locker"; req_access_txt = "57" }, /obj/item/melee/classic_baton/telescopic, -/obj/item/clothing/neck/chameleon, /obj/item/radio/headset/syndicate, /obj/item/megaphone{ pixel_x = -2 }, +/obj/item/clothing/under/syndicate/cybersun/officer, +/obj/item/clothing/suit/cybersun_suit, +/obj/item/clothing/head/HoS/cybersun, /turf/open/floor/plasteel/dark, /area/ship/bridge) "eN" = ( @@ -653,12 +652,10 @@ dir = 1; layer = 2.8 }, -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/mask/gas/syndicate, /obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/item/clothing/under/syndicate, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" @@ -668,6 +665,8 @@ pixel_x = -23; pixel_y = 4 }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "hk" = ( @@ -1156,8 +1155,6 @@ /obj/structure/closet/wall/orange/directional/south{ name = "Engineering locker" }, -/obj/item/clothing/under/syndicate/coldres, -/obj/item/clothing/suit/toggle/industrial, /obj/item/clothing/shoes/workboots, /obj/item/clothing/head/welding, /obj/item/clothing/head/hardhat/red, @@ -1174,6 +1171,8 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/item/clothing/under/syndicate/hardliners, +/obj/item/clothing/suit/hazardvest/hardliners, /turf/open/floor/plasteel/tech, /area/ship/engineering) "ls" = ( @@ -2880,11 +2879,6 @@ /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/c10mm, /obj/item/clothing/gloves/tackler/combat/insulated, -/obj/item/clothing/suit/armor/vest/leather{ - desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of the Gorlex Marauders." - }, -/obj/item/clothing/mask/gas/sechailer/swat, -/obj/item/clothing/head/HoS/beret/syndicate, /obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; name = "Sergeant's Locker"; @@ -2892,11 +2886,12 @@ }, /obj/item/melee/classic_baton/telescopic, /obj/item/clothing/suit/armor/vest/blueshirt, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate, /obj/item/clothing/accessory/holster, /obj/item/clothing/shoes/combat, /obj/item/radio/headset/syndicate, +/obj/item/clothing/under/syndicate/hardliners/officer, +/obj/item/clothing/suit/armor/hardliners/sergeant, +/obj/item/clothing/head/hardliners/peaked, /turf/open/floor/plasteel/dark, /area/ship/bridge) "AS" = ( @@ -3124,18 +3119,17 @@ name = "captain's locker"; req_access_txt = "20" }, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/clothing/gloves/krav_maga/combatglovesplus, -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/glasses/thermal/eyepatch, -/obj/item/clothing/head/HoS/beret/syndicate, -/obj/item/clothing/head/HoS/syndicate, /obj/item/gun/ballistic/revolver, /obj/item/clothing/under/syndicate/sniper, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/radio/headset/syndicate/alt/leader, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners/officer, +/obj/item/clothing/suit/toggle/armor/vest/hardliners, +/obj/item/clothing/head/hardliners/peaked, /turf/open/floor/carpet/black, /area/ship/bridge) "El" = ( @@ -3347,7 +3341,6 @@ }, /area/ship/maintenance/starboard) "GD" = ( -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 @@ -3356,11 +3349,12 @@ dir = 9 }, /obj/item/clothing/mask/balaclava, -/obj/item/clothing/under/syndicate/gorlex, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "GJ" = ( @@ -3845,7 +3839,6 @@ /turf/open/floor/mineral/plastitanium, /area/ship/hallway/aft) "Lb" = ( -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/neck/scarf/red, /obj/item/clothing/mask/bandana/skull, /obj/item/clothing/mask/gas/syndicate, @@ -3855,11 +3848,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/item/clothing/under/utility, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners/jumpsuit, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "Lj" = ( @@ -4064,21 +4058,16 @@ /obj/effect/turf_decal/techfloor{ dir = 9 }, -/obj/item/clothing/under/syndicate/skirt, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners/jumpsuit, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "Ni" = ( /obj/effect/turf_decal/industrial/warning, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/head/helmet/operator, -/obj/item/clothing/head/helmet/operator, -/obj/item/clothing/head/helmet/operator, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, @@ -4090,9 +4079,21 @@ name = "Armor Locker"; req_access_txt = "1" }, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military, +/obj/item/clothing/suit/armor/hardliners/jacket, +/obj/item/clothing/suit/armor/hardliners/jacket, +/obj/item/clothing/suit/armor/hardliners/jacket, +/obj/item/clothing/suit/armor/hardliners, +/obj/item/clothing/suit/armor/hardliners, +/obj/item/clothing/suit/armor/hardliners, +/obj/item/clothing/head/helmet/hardliners, +/obj/item/clothing/head/helmet/hardliners, +/obj/item/clothing/head/helmet/hardliners, +/obj/item/storage/belt/security/webbing/hardliners, +/obj/item/storage/belt/security/webbing/hardliners, +/obj/item/storage/belt/security/webbing/hardliners, +/obj/item/clothing/glasses/hud/security/sunglasses/hardliners, +/obj/item/clothing/glasses/hud/security/sunglasses/hardliners, +/obj/item/clothing/glasses/hud/security/sunglasses/hardliners, /turf/open/floor/mineral/plastitanium/red, /area/ship/security/armory) "Nj" = ( @@ -4271,7 +4272,6 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/cargo) "PE" = ( -/obj/structure/chair/comfy, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/trimline/transparent/bar/filled/line{ dir = 8 @@ -4281,6 +4281,7 @@ pixel_y = -1 }, /obj/machinery/airalarm/directional/west, +/obj/structure/chair/comfy/red, /turf/open/floor/mineral/plastitanium, /area/ship/crew/canteen) "PG" = ( @@ -5096,17 +5097,17 @@ /area/ship/hallway/central) "WQ" = ( /obj/structure/railing, -/obj/item/clothing/shoes/jackboots, /obj/item/clothing/mask/gas/syndicate, /obj/effect/turf_decal/techfloor{ dir = 8 }, /obj/item/clothing/mask/balaclava, -/obj/item/clothing/under/syndicate/gorlex, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; name = "uniform closet" }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/hardliners, /turf/open/floor/mineral/plastitanium, /area/ship/hallway/central) "WR" = ( @@ -5426,12 +5427,8 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/item/clothing/under/utility, /obj/item/clothing/suit/longcoat/roboblack, -/obj/item/clothing/suit/apron/surgical, -/obj/item/clothing/neck/stethoscope, /obj/item/clothing/mask/surgical, -/obj/item/clothing/head/beret/black, /obj/item/clothing/gloves/color/latex/nitrile/evil{ pixel_x = 1; pixel_y = -3 @@ -5442,6 +5439,9 @@ pixel_x = -3; pixel_y = 3 }, +/obj/item/clothing/suit/hardliners, +/obj/item/clothing/head/hardliners, +/obj/item/clothing/under/syndicate/hardliners, /turf/open/floor/mineral/plastitanium, /area/ship/medical) "Zy" = ( diff --git a/check_regex.yaml b/check_regex.yaml index e01c41995e8e..d03e15391975 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -38,7 +38,7 @@ standards: - exactly: [ - 268, + 265, "non-bitwise << uses", '(?A selection has already been made. Self-Destructing...") - return - - /obj/item/storage/box/holy - name = "Templar Kit" - -/obj/item/storage/box/holy/PopulateContents() - new /obj/item/clothing/head/helmet/chaplain(src) - new /obj/item/clothing/suit/armor/riot/chaplain(src) - -/obj/item/storage/box/holy/student - name = "Profane Scholar Kit" - -/obj/item/storage/box/holy/student/PopulateContents() - new /obj/item/clothing/suit/armor/riot/chaplain/studentuni(src) - new /obj/item/clothing/head/helmet/chaplain/cage(src) - -/obj/item/clothing/suit/armor/riot/chaplain/studentuni - name = "student robe" - desc = "The uniform of a bygone institute of learning." - icon_state = "chaplain_studentuni" - item_state = "studentuni" - body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - -/obj/item/clothing/head/helmet/chaplain/cage - name = "cage" - desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is." - flags_inv = HIDEHAIR //bald - mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' - icon_state = "cage" - item_state = "cage" - worn_x_dimension = 64 - worn_y_dimension = 64 - -/obj/item/storage/box/holy/sentinel - name = "Stone Sentinel Kit" - -/obj/item/storage/box/holy/sentinel/PopulateContents() - new /obj/item/clothing/suit/armor/riot/chaplain/ancient(src) - new /obj/item/clothing/head/helmet/chaplain/ancient(src) - -/obj/item/clothing/head/helmet/chaplain/ancient - name = "ancient helmet" - desc = "None may pass!" - icon_state = "knight_ancient" - item_state = "knight_ancient" - -/obj/item/clothing/suit/armor/riot/chaplain/ancient - name = "ancient armour" - desc = "Defend the treasure..." - icon_state = "chaplain_ancient" - item_state = "knight_ancient" - -/obj/item/storage/box/holy/witchhunter name = "Witchhunter Kit" -/obj/item/storage/box/holy/witchhunter/PopulateContents() - new /obj/item/clothing/suit/armor/riot/chaplain/witchhunter(src) - new /obj/item/clothing/head/helmet/chaplain/witchunter_hat(src) - -/obj/item/clothing/suit/armor/riot/chaplain/witchhunter - name = "witchunter garb" - desc = "This worn outfit saw much use back in the day." - icon_state = "chaplain_witchhunter" - item_state = "witchhunter" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - -/obj/item/clothing/head/helmet/chaplain/witchunter_hat - name = "witchunter hat" - desc = "This hat saw much use back in the day." - icon_state = "witchhunterhat" - item_state = "witchhunterhat" - flags_cover = HEADCOVERSEYES - flags_inv = HIDEEYES|HIDEHAIR - -/obj/item/storage/box/holy/adept - name = "Divine Adept Kit" - -/obj/item/storage/box/holy/adept/PopulateContents() - new /obj/item/clothing/suit/armor/riot/chaplain/adept(src) - new /obj/item/clothing/head/helmet/chaplain/adept(src) - -/obj/item/clothing/head/helmet/chaplain/adept - name = "adept hood" - desc = "Its only heretical when others do it." - icon_state = "crusader" - item_state = "crusader" - flags_cover = HEADCOVERSEYES - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS +/obj/item/storage/box/holy/PopulateContents() + new /obj/item/clothing/head/witchunter(src) + new /obj/item/clothing/suit/armor/witchhunter(src) -/obj/item/clothing/suit/armor/riot/chaplain/adept - name = "adept robes" - desc = "The ideal outfit for burning the unfaithful." - icon_state = "chaplain_crusader" - item_state = "crusader" /obj/item/storage/box/holy/follower name = "Followers of the Chaplain Kit" @@ -203,62 +65,6 @@ var/reskinned = FALSE var/chaplain_spawnable = TRUE -/obj/item/nullrod/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) - -/obj/item/nullrod/attack_self(mob/user) - if(user.mind && (user.mind.holy_role) && !reskinned) - reskin_holy_weapon(user) - -/** - * reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version - * - * Arguments: - * * M The mob choosing a nullrod reskin - */ -/obj/item/nullrod/proc/reskin_holy_weapon(mob/M) - if(GLOB.holy_weapon_type) - return - var/list/display_names = list() - var/list/nullrod_icons = list() - for(var/V in typesof(/obj/item/nullrod)) - var/obj/item/nullrod/rodtype = V - if(initial(rodtype.chaplain_spawnable)) - display_names[initial(rodtype.name)] = rodtype - nullrod_icons += list(initial(rodtype.name) = image(icon = initial(rodtype.icon), icon_state = initial(rodtype.icon_state))) - - nullrod_icons = sortList(nullrod_icons) - var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), M), radius = 42, require_near = TRUE) - if(!choice || !check_menu(M)) - return - - var/A = display_names[choice] // This needs to be on a separate var as list member access is not allowed for new - var/obj/item/nullrod/holy_weapon = new A - GLOB.holy_weapon_type = holy_weapon.type - - SSblackbox.record_feedback("tally", "chaplain_weapon", 1, "[choice]") - - if(holy_weapon) - holy_weapon.reskinned = TRUE - qdel(src) - M.put_in_active_hand(holy_weapon) - -/** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ -/obj/item/nullrod/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(QDELETED(src) || reskinned) - return FALSE - if(user.incapacitated() || !user.is_holding(src)) - return FALSE - return TRUE - /obj/item/nullrod/godhand icon_state = "disintegrate" item_state = "disintegrate" @@ -648,13 +454,6 @@ hitsound = 'sound/weapons/bite.ogg' var/used_blessing = FALSE -/obj/item/nullrod/carp/attack_self(mob/living/user) - if(used_blessing) - else if(user.mind && (user.mind.holy_role)) - to_chat(user, "You are blessed by Carp-Sie. Wild space carp will no longer attack you.") - user.faction |= "carp" - used_blessing = TRUE - /obj/item/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking name = "monk's staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown." diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 45fee1d67660..67dba503642d 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -1,3 +1,10 @@ +//need to refactor this. +GLOBAL_LIST_INIT(biblenames, list("Bible", "Quran", "Scrapbook", "Burning Bible", "Clown Bible", "Banana Bible", "Creeper Bible", "White Bible", "Holy Light", "The God Delusion", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "Melted Bible", "Necronomicon", "Insulationism", "Guru Granth Sahib")) +//If you get these two lists not matching in size, there will be runtimes and I will hurt you in ways you couldn't even begin to imagine +// if your bible has no custom itemstate, use one of the existing ones +GLOBAL_LIST_INIT(biblestates, list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon", "insuls", "gurugranthsahib")) +GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon", "kingyellow", "gurugranthsahib")) + /obj/item/storage/book name = "hollowed book" desc = "I guess someone didn't like it." @@ -17,18 +24,6 @@ /obj/item/storage/book/attack_self(mob/user) to_chat(user, "The pages of [title] have been cut out!") -GLOBAL_LIST_INIT(biblenames, list("Bible", "Quran", "Scrapbook", "Burning Bible", "Clown Bible", "Banana Bible", "Creeper Bible", "White Bible", "Holy Light", "The God Delusion", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "Melted Bible", "Necronomicon", "Insulationism", "Guru Granth Sahib")) -//If you get these two lists not matching in size, there will be runtimes and I will hurt you in ways you couldn't even begin to imagine -// if your bible has no custom itemstate, use one of the existing ones -GLOBAL_LIST_INIT(biblestates, list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon", "insuls", "gurugranthsahib")) -GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon", "kingyellow", "gurugranthsahib")) - -/mob/proc/bible_check() //The bible, if held, might protect against certain things - var/obj/item/storage/book/bible/B = locate() in src - if(is_holding(B)) - return B - return 0 - /obj/item/storage/book/bible name = "bible" desc = "Apply to head repeatedly." @@ -41,205 +36,6 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", var/deity_name = "Christ" force_string = "holy" -/obj/item/storage/book/bible/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, FALSE, TRUE) - -/obj/item/storage/book/bible/attack_self(mob/living/carbon/human/H) - if(!istype(H)) - return - if(!H.can_read(src)) - return FALSE - // If H is the Chaplain, we can set the icon_state of the bible (but only once!) - if(!GLOB.bible_icon_state && H.mind.holy_role == HOLY_ROLE_HIGHPRIEST) - var/dat = "Pick Bible Style

Pick a bible style

" - for(var/i in 1 to GLOB.biblestates.len) - var/icon/bibleicon = icon('icons/obj/storage.dmi', GLOB.biblestates[i]) - var/nicename = GLOB.biblenames[i] - H << browse_rsc(bibleicon, nicename) - dat += {""} - dat += "
[nicename]
" - H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650") - -/obj/item/storage/book/bible/Topic(href, href_list) - if(!usr.canUseTopic(src, BE_CLOSE)) - return - if(href_list["seticon"] && !GLOB.bible_icon_state) - var/iconi = text2num(href_list["seticon"]) - var/biblename = GLOB.biblenames[iconi] - icon_state = GLOB.biblestates[iconi] - item_state = GLOB.bibleitemstates[iconi] - - if(icon_state == "honk1" || icon_state == "honk2") - var/mob/living/carbon/human/H = usr - H.dna.add_mutation(CLOWNMUT) - H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), ITEM_SLOT_MASK) - if(icon_state == "insuls") - var/mob/living/carbon/human/H =usr - var/obj/item/clothing/gloves/color/fyellow/insuls = new - insuls.name = "insuls" - insuls.desc = "A mere copy of the true insuls." - insuls.siemens_coefficient = 0.99999 - H.equip_to_slot(insuls, ITEM_SLOT_GLOVES) - GLOB.bible_icon_state = icon_state - GLOB.bible_item_state = item_state - - SSblackbox.record_feedback("text", "religion_book", 1, "[biblename]") - usr << browse(null, "window=editicon") - -/obj/item/storage/book/bible/proc/bless(mob/living/L, mob/living/user) - if(GLOB.religious_sect) - return GLOB.religious_sect.sect_bless(L,user) - if(!ishuman(L)) - return - var/mob/living/carbon/human/H = L - for(var/X in H.bodyparts) - var/obj/item/bodypart/BP = X - if(!IS_ORGANIC_LIMB(BP)) - to_chat(user, "[src.deity_name] refuses to heal this metallic taint!") - return 0 - - var/heal_amt = 10 - var/list/hurt_limbs = H.get_damaged_bodyparts(1, 1, null, BODYTYPE_ORGANIC) - - if(hurt_limbs.len) - for(var/X in hurt_limbs) - var/obj/item/bodypart/affecting = X - if(affecting.heal_damage(heal_amt, heal_amt, null, BODYTYPE_ORGANIC)) - H.update_damage_overlays() - H.visible_message("[user] heals [H] with the power of [deity_name]!") - to_chat(H, "May the power of [deity_name] compel you to be healed!") - playsound(src.loc, "punch", 25, TRUE, -1) - SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing) - return 1 - -/obj/item/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user, heal_mode = TRUE) - - if (!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return - - if (HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) - to_chat(user, "[src] slips out of your hand and hits your head.") - user.take_bodypart_damage(10) - user.Unconscious(400) - return - - var/chaplain = 0 - if(user.mind && (user.mind.holy_role)) - chaplain = 1 - - if(!chaplain) - to_chat(user, "The book sizzles in your hands.") - user.take_bodypart_damage(0,10) - return - - if (!heal_mode) - return ..() - - var/smack = 1 - - if (M.stat != DEAD) - if(chaplain && user == M) - to_chat(user, "You can't heal yourself!") - return - - if(prob(60) && bless(M, user)) - smack = 0 - else if(iscarbon(M)) - var/mob/living/carbon/C = M - if(!istype(C.head, /obj/item/clothing/head/helmet)) - C.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 60) - to_chat(C, "You feel dumber.") - - if(smack) - M.visible_message("[user] beats [M] over the head with [src]!", \ - "[user] beats [M] over the head with [src]!") - playsound(src.loc, "punch", 25, TRUE, -1) - log_combat(user, M, "attacked", src) - - else - M.visible_message("[user] smacks [M]'s lifeless corpse with [src].") - playsound(src.loc, "punch", 25, TRUE, -1) - -/obj/item/storage/book/bible/afterattack(atom/A, mob/user, proximity) - . = ..() - if(!proximity) - return - if(isfloorturf(A)) - to_chat(user, "You hit the floor with the bible.") - if(user.mind && (user.mind.holy_role)) - for(var/obj/effect/rune/R in orange(2,user)) - R.invisibility = 0 - if(user?.mind?.holy_role) - if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) // blesses all the water in the holder - to_chat(user, "You bless [A].") - var/water2holy = A.reagents.get_reagent_amount(/datum/reagent/water) - A.reagents.del_reagent(/datum/reagent/water) - A.reagents.add_reagent(/datum/reagent/water/holywater,water2holy) - if(A.reagents && A.reagents.has_reagent(/datum/reagent/fuel/unholywater)) // yeah yeah, copy pasted code - sue me - to_chat(user, "You purify [A].") - var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) - A.reagents.del_reagent(/datum/reagent/fuel/unholywater) - A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) - if(istype(A, /obj/item/storage/book/bible) && !istype(A, /obj/item/storage/book/bible/syndicate)) - to_chat(user, "You purify [A], conforming it to your belief.") - var/obj/item/storage/book/bible/B = A - B.name = name - B.icon_state = icon_state - B.item_state = item_state - if(istype(A, /obj/item/cult_bastard) && !iscultist(user)) - var/obj/item/cult_bastard/sword = A - to_chat(user, "You begin to exorcise [sword].") - playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE) - if(do_after(user, 40, target = sword)) - playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE) - for(var/obj/item/soulstone/SS in sword.contents) - SS.usability = TRUE - for(var/mob/living/simple_animal/shade/EX in SS) - SSticker.mode.remove_cultist(EX.mind, 1, 0) - EX.icon_state = "ghost1" - EX.name = "Purified [EX.name]" - SS.release_shades(user) - qdel(SS) - new /obj/item/nullrod/claymore(get_turf(sword)) - user.visible_message("[user] purifies [sword]!") - qdel(sword) - else if(istype(A, /obj/item/soulstone) && !iscultist(user)) - var/obj/item/soulstone/SS = A - if(SS.purified) - return - to_chat(user, "You begin to exorcise [SS].") - playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE) - if(do_after(user, 40, target = SS)) - playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE) - SS.usability = TRUE - SS.purified = TRUE - SS.icon_state = "purified_soulstone" - for(var/mob/M in SS.contents) - if(M.mind) - SS.icon_state = "purified_soulstone2" - if(iscultist(M)) - SSticker.mode.remove_cultist(M.mind, FALSE, FALSE) - for(var/mob/living/simple_animal/shade/EX in SS) - EX.icon_state = "ghost1" - EX.name = "Purified [initial(EX.name)]" - user.visible_message("[user] purifies [SS]!") - else if(istype(A, /obj/item/nullrod/scythe/talking)) - var/obj/item/nullrod/scythe/talking/sword = A - to_chat(user, "You begin to exorcise [sword]...") - playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE) - if(do_after(user, 40, target = sword)) - playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE) - for(var/mob/living/simple_animal/shade/S in sword.contents) - to_chat(S, "You were destroyed by the exorcism!") - qdel(S) - sword.possessed = FALSE //allows the chaplain (or someone else) to reroll a new spirit for their sword - sword.name = initial(sword.name) - REMOVE_TRAIT(sword, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) //in case the "sword" is a possessed dummy - user.visible_message("[user] exorcises [sword]!", \ - "You successfully exorcise [sword]!") - /obj/item/storage/book/bible/koran name = "Koran" icon_state = "koran" @@ -253,34 +49,6 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", new /obj/item/reagent_containers/food/drinks/bottle/whiskey(src) /obj/item/storage/book/bible/syndicate + name = "Syndicate Tome" icon_state ="ebook" deity_name = "The Syndicate" - throw_speed = 2 - throwforce = 18 - throw_range = 7 - force = 18 - hitsound = 'sound/weapons/sear.ogg' - damtype = BURN - name = "Syndicate Tome" - attack_verb = list("attacked", "burned", "blessed", "damned", "scorched") - var/uses = 1 - -/obj/item/storage/book/bible/syndicate/attack_self(mob/living/carbon/human/H) - if (uses) - H.mind.holy_role = HOLY_ROLE_PRIEST - uses -= 1 - to_chat(H, "You try to open the book AND IT BITES YOU!") - playsound(src.loc, 'sound/effects/snap.ogg', 50, TRUE) - H.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - to_chat(H, "Your name appears on the inside cover, in blood.") - var/ownername = H.real_name - desc += "The name [ownername] is written in blood inside the cover." - -/obj/item/storage/book/bible/syndicate/attack(mob/living/M, mob/living/carbon/human/user, heal_mode = TRUE) - if (user.a_intent == INTENT_HELP) - return ..() - else - return ..(M,user,heal_mode = FALSE) - -/obj/item/storage/book/bible/syndicate/add_blood_DNA(list/blood_dna) - return FALSE diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 3cd1e72192ee..8aa7b1d9c478 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -856,6 +856,16 @@ for(var/i in 1 to 7) new /obj/item/ammo_casing/shotgun/buckshot(src) +/obj/item/storage/box/techshot + name = "box of unloaded shotgun tech shells" + desc = "A box full of unloaded tech shells, capable of producing a variety of effects once loaded." + icon_state = "techshot_box" + illustration = null + +/obj/item/storage/box/techshot/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/ammo_casing/shotgun/techshell(src) + /obj/item/storage/box/beanbag name = "box of beanbags" desc = "A box full of beanbag shells." diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 0e65a5aeb760..dac919bb428c 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -98,7 +98,7 @@ icon_door = "black" /obj/structure/closet/wardrobe/chaplain_black/PopulateContents() - new /obj/item/choice_beacon/holy(src) + new /obj/item/storage/box/holy(src) new /obj/item/clothing/accessory/pocketprotector/cosmetology(src) new /obj/item/clothing/under/rank/civilian/chaplain(src) new /obj/item/clothing/shoes/sneakers/black(src) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 7355880e6da1..5058dc73f081 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -61,10 +61,6 @@ Runes can either be invoked by one's self or with many different cultists. Each if(do_after(user, 15, target = src)) to_chat(user, "You carefully erase the [lowertext(cultist_name)] rune.") qdel(src) - else if(istype(I, /obj/item/nullrod)) - user.say("BEGONE FOUL MAGIKS!!", forced = "nullrod") - to_chat(user, "You disrupt the magic of [src] with [I].") - qdel(src) /obj/effect/rune/attack_hand(mob/living/user) . = ..() @@ -502,9 +498,6 @@ structure_check() searches for nearby cultist structures required for the invoca if(do_after(user, 50, target = src)) //Prevents accidental erasures. log_game("Summon Narsie rune erased by [key_name(user)] with [I.name]") message_admins("[ADMIN_LOOKUPFLW(user)] erased a Narsie rune with [I.name]") - else if(istype(I, /obj/item/nullrod)) //Begone foul magiks. You cannot hinder me. - log_game("Summon Narsie rune erased by [key_name(user)] using a null rod") - message_admins("[ADMIN_LOOKUPFLW(user)] erased a Narsie rune with a null rod") else ..() diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 76da8304df09..084176f4b8c4 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -190,17 +190,6 @@ return BULLET_ACT_FORCE_PIERCE return ..() -//damage, gibbing, and dying -/mob/living/simple_animal/revenant/attackby(obj/item/W, mob/living/user, params) - . = ..() - if(istype(W, /obj/item/nullrod)) - visible_message("[src] violently flinches!", \ - "As \the [W] passes through you, you feel your essence draining away!") - adjustBruteLoss(25) //hella effective - inhibited = TRUE - update_action_buttons_icon() - addtimer(CALLBACK(src, PROC_REF(reset_inhibit)), 30) - /mob/living/simple_animal/revenant/proc/reset_inhibit() inhibited = FALSE update_action_buttons_icon() diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index a95ef0d1b579..a20b905b590d 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -58,14 +58,6 @@ if(spawn_amt_left <= 0) qdel(src) -/obj/effect/rend/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/nullrod)) - user.visible_message("[user] seals \the [src] with \the [I].") - qdel(src) - return - else - return ..() - /obj/effect/rend/singularity_pull() return diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index 7d22846e123e..11fef220ee01 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -209,6 +209,38 @@ stock_max = 3 availability_prob = 30 +/datum/blackmarket_item/weapon/mecha_syringe_gun + name = "Mounted Syringe Gun" + desc = "We ripped this off an old Nanotrasen exosuit. It's a real advanced piece of equipment. Exosuit not included." + item = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun + + price_min = 5000 + price_max = 7000 + stock = 1 + availability_prob = 15 + +/datum/blackmarket_item/weapon/mecha_hades + name = "Mounted FNX-99 Carbine" + desc = "This so called \"Hades\" carbine is sure to burn brightly above the competition! Not to be confused with the \"Hades\" energy rifle. Exosuit not included." + item = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine + pair_item = /datum/blackmarket_item/weapon/mecha_hades_ammo + + price_min = 2000 + price_max = 3000 + stock_max = 2 + availability_prob = 25 + +/datum/blackmarket_item/weapon/mecha_hades_ammo + name = "FNX-99 Incediary Ammo" + desc = "A box of 24 incendiary shells for the FNX-99 mounted carbine." + item = /obj/item/mecha_ammo/incendiary + + price_min = 250 + price_max = 350 + stock_min = 3 + stock_max = 5 + availability_prob = 0 + /datum/blackmarket_item/weapon/model_h name = "Model H" desc = "A Model H slug pistol. The H stands for Hurt. Chambered in ferromagnetic slugs." diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index ab521998f07c..aa165cbc8149 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -70,6 +70,12 @@ cost = 500 contains = list(/obj/item/ammo_box/a12g/slug) +/datum/supply_pack/ammo/techshells + name = "Unloaded Shotgun Technological Shells Crate" + desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required." + cost = 210 + contains = list(/obj/item/storage/box/techshot) + /* .38 ammo */ diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index 376c22fc0db8..937126a86361 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -109,6 +109,14 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/drill ) +/datum/supply_pack/mech/equipment/diamond_drill + name = "Mech diamond drill kit" + desc = "Contains mechanized diamond drill, for the enterprising prospector!" + cost = 750 + contains = list( + /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill + ) + /datum/supply_pack/mech/equipment/scanner name = "Mech scanner kit" desc = "An electronic mining scanner, graded to interface with a mech." @@ -125,6 +133,22 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/generator ) +/datum/supply_pack/mech/equipment/nuclear_gen + name = "Mech nuclear generator kit" + desc = "Contains a uranium-fueled generator for a mech, ideal for polluting the environment." + cost = 1250 + contains = list( + /obj/item/mecha_parts/mecha_equipment/generator/nuclear + ) + +/datum/supply_pack/mech/equipment/tesla_energy_relay + name = "Mech tesla relay kit" + desc = "Contains an advanced exosuit module which draws power from nearby APCs." + cost = 1750 + contains = list( + /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay + ) + /datum/supply_pack/mech/equipment/clamp name = "Mech clamp kit" desc = "Contains a clamp designed for mechanized freight hauling." @@ -133,6 +157,37 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp ) +/datum/supply_pack/mech/equipment/extinguisher + name = "Mech extinguisher kit" + desc = "Contains a heavy duty fire extinguisher, for heavy duty firefighting." + cost = 250 + contains = list( + /obj/item/mecha_parts/mecha_equipment/extinguisher + ) + +/datum/supply_pack/mech/equipment/cable_layer + name = "Mech RCL Kit" + desc = "Contains a \"rapid cable layer\" for laying down long lengths of wire." + cost = 250 + contains = list( + /obj/item/mecha_parts/mecha_equipment/cable_layer + ) + +/datum/supply_pack/mech/equipment/mech_sleeper + name = "Mech Mounted Sleeper Kit" + desc = "Contains a mounted sleeper device, used for retrieving and stabilizing patients." + cost = 1000 + contains = list( + /obj/item/mecha_parts/mecha_equipment/medical/sleeper + ) + +/datum/supply_pack/mech/equipment/beam_gun + name = "Mech Beam Gun Kit" + desc = "Contains an advanced mounted medical beamgun, capable of alleviating wounds to targets." + cost = 7000 + contains = list( + /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam + ) /datum/supply_pack/mech/equipment/rcs name = "Mech RCS kit" desc = "A gas fueled RCS pack, ideal for mechanized space operation." @@ -149,19 +204,40 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley ) +/datum/supply_pack/mech/equipment/melee_armor_booster + name = "Mech CCW armor kit" + desc = "A \"close combat weaponry\" module designed to deflect melee attacks." + cost = 750 + contains = list( + /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster + ) + +/datum/supply_pack/mech/equipment/projectile_armor_booster + name = "Mech projectile armor kit" + desc = "A protective exosuit module designed to deflect ranged attacks." + cost = 1000 + contains = list( + /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster + ) + /* weapons */ -/datum/supply_pack/mech/equipment/pka +/datum/supply_pack/mech/weapon + name = "Mech weapons crate" + crate_type = /obj/structure/closet/crate/secure/weapon + crate_name = "mech weapon crate" + +/datum/supply_pack/mech/weapon/pka name = "Mech Mounted Proto-Kinetic Accelerator kit" desc = "A ranged mining attachment for any mech." - cost = 1500 + cost = 750 contains = list( /obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun ) -/datum/supply_pack/mech/equipment/laser +/datum/supply_pack/mech/weapon/laser name = "Immolator kit" desc = "A light laser cannon designed for combat usage." cost = 1000 @@ -169,10 +245,75 @@ weapons /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser ) -/datum/supply_pack/mech/equipment/biglaser +/datum/supply_pack/mech/weapon/biglaser name = "Solaris kit" desc = "A heavy laser cannon designed for combat usage." cost = 2000 contains = list( /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy ) + +/datum/supply_pack/mech/weapon/ion_cannon + name = "MK4 ion cannon kit" + desc = "Contains a heavy ion cannon for disabling technology in large blasts." + cost = 3000 + contains = list( + /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion + ) + +/datum/supply_pack/mech/weapon/scattershot + name = "LBX AC 10 kit" + desc = "Contains a \"Scattershot\" gun to mount on combat exosuits." + cost = 1750 + contains = list( + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot + ) + +/datum/supply_pack/mech/weapon/lmg + name = "Ultra AC 2 kit" + desc = "Contains a mounted gun which fires in three round bursts." + cost = 2250 + contains = list( + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg + ) + +/datum/supply_pack/mech/weapon/missile_rack + name = "BRM-6 kit" + desc = "Contains a low-explosive missile launcher, excellent for breaching through obstacles." + cost = 3000 + contains = list( + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breaching + ) + +/* +ammo +*/ + +/datum/supply_pack/mech/ammo + name = "Mech ammo crate" + crate_type = /obj/structure/closet/crate/secure/gear + crate_name = "mech ammo crate" + +/datum/supply_pack/mech/ammo/scattershot_ammo + name = "LBX AC 10 ammo box" + desc = "Contains a fourty-round box of upscaled buckshot, to be loaded directly in a mounted LBX AC 10." + cost = 500 + contains = list( + /obj/item/mecha_ammo/scattershot + ) + +/datum/supply_pack/mech/ammo/lmg_ammo + name = "Ultra AC 2 ammo box" + desc = "Contains a three hundred-round box of heavy ammunition for the Ultra AC 2." + cost = 750 + contains = list( + /obj/item/mecha_ammo/lmg + ) + +/datum/supply_pack/mech/ammo/missile_rack_ammo + name = "BRM-6 missile box" + desc = "Contains a box of six breaching missiles designed to explode upon striking hard surfaces." + cost = 1000 + contains = list( + /obj/item/mecha_ammo/missiles_br + ) diff --git a/code/modules/clothing/factions/hardliners.dm b/code/modules/clothing/factions/hardliners.dm new file mode 100644 index 000000000000..5c3423f745c0 --- /dev/null +++ b/code/modules/clothing/factions/hardliners.dm @@ -0,0 +1,181 @@ +////////////// +//Jumpsuits// +///////////// + +/obj/item/clothing/under/syndicate/hardliners + name = "hardliners uniform" + desc = "A crimson combat uniform, reminiscent of the Gorlex Marauders at the height of the Inter-Corporate Wars. It's oddly comfortable, and warm." + icon_state = "hardliners" + item_state = "hardliners" + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + can_adjust = FALSE + icon = 'icons/obj/clothing/faction/hardliners/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/uniforms.dmi' + +/obj/item/clothing/under/syndicate/hardliners/jumpsuit + name = "hardliners jumpsuit" + desc = "A black jumpsuit with white overalls, a scant reminder of the old miners of Gorlex VII." + icon_state = "hl_jumpsuit" + item_state = "hl_jumpsuit" + +/obj/item/clothing/under/syndicate/hardliners/officer + name = "hardliners officer uniform" + desc = "A button-up uniform with cargo pants, certainly more tactical than most officer uniforms." + icon_state = "hl_officer" + item_state = "hl_officer" + +//////////////////// +//Unarmored suits// +/////////////////// + +/obj/item/clothing/suit/hardliners + name = "white smock" + desc = "A plain-white surgical smock typically worn by both Hardliners and Cybersun staff. Even mercenaries need medical attention!" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + icon_state = "hl_apron" + item_state = "whitecloth" + +/obj/item/clothing/suit/hazardvest/hardliners + name = "blood-red hazard vest" + desc = "A white high-visibility vest, worn by mechanics associated with Hardliners. Safety first!" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + icon_state = "hl_hazard" + item_state = "whitecloth" + +////////////////// +//Armored suits// +///////////////// + +/obj/item/clothing/suit/armor/hardliners + name = "hardliners armor vest" + desc = "A slim Type I armored vest, painted in a classic white associated with the Hardliners. It would probably make bloodstains very obvious..." + icon_state = "hl_vest" + item_state = "armor" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + blood_overlay_type = "armor" + +/obj/item/clothing/suit/armor/hardliners/jacket + name = "hardliners armored kutte" + desc = "A leather Kutte with a slim Type I armored vest, painted in a classic white associated with the Hardliners. The patch of the Hardliner movement can be seen behind the leather kutte, a nostalgic callback to the leather outfits used by the civilians of Gorlex VII." + icon_state = "hl_jacket" + item_state = "armor" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + blood_overlay_type = "armor" + +/obj/item/clothing/suit/armor/hardliners/sergeant + name = "hardliners sergeant jacket" + desc = "An armored jacket typically worn by sergeant of the Hardliners. They're reminiscent of the garb worn by old Gorlex navymen, prior to its destruction." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "hl_sergeant" + item_state = "hl_sergeant" + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/suit/toggle/armor/vest/hardliners + name = "hardliners captain coat" + desc = "An imposing armored coat worn by captains of Hardliner fleets, hand-designed by Cybersun tailors to provide maximum protection to its wearer." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "hl_captain" + item_state = "hl_captain" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + togglename = "buttons" + +/////////////// +//Spacesuits// +////////////// + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/hl + name = "white-red hardsuit helmet" + desc = "An advanced dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by white. It is in EVA mode. Manufactured by Cybersun Biodynamics." + alt_desc = "An advanced dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by white. It is in combat mode. Manufactured by Cybersun Biodynamics." + icon_state = "hardsuit1-hl" + item_state = "hardsuit1-hl" + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + hardsuit_type = "hl" + +/obj/item/clothing/suit/space/hardsuit/syndi/hl + name = "white-red hardsuit" + desc = "An advanced dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by white. It is in EVA mode. Manufactured by Cybersun Biodynamics." + alt_desc = "An advanced dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by white. It is in combat mode. Manufactured by Cybersun Biodynamics." + icon_state = "hardsuit1-hl" + item_state = "hardsuit1-hl" + hardsuit_type = "hl" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl + lightweight = 1 + jetpack = null + +///////// +//Hats// +//////// + +/obj/item/clothing/head/hardliners + name = "white surgical cap" + desc = "A surgical cap used by doctors of Hardliner fleets, matching their white smocks." + icon_state = "hl_surgery" + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + + +/obj/item/clothing/head/hardhat/hardliners + name = "white-red hard hat" + desc = "A white-red hardhat typically used by both miners and mechanics under the Hardliner fleets." + icon_state = "hl_hardhat" + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + +/obj/item/clothing/head/hardliners/peaked + name = "Hardliner peaked cap" + desc = "A stylish peaked cap utilized by high-ranking officers of the Hardliner movement. Most who wear it are likely to have been a veteran of the ICW, still vying for revenge against Nanotrasen..." + icon_state = "hl_officer" + item_state = "hl_officer" + +/obj/item/clothing/head/helmet/hardliners + name = "hardliners X-11 helmet" + desc = "A well-armored helmet utilized by the Hardliners, though painted in their iconic white. Either it makes them stick out like a sore thumb, or it provides excellent camouflage in snow-covered planets." + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + armor = list("melee" = 40, "bullet" = 60, "laser" = 35, "energy" = 35, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // The guys who specialize in ballistics would probably have better bullet armor. Maybe. + icon_state = "hl_x11" + item_state = "hl_x11" + +/obj/item/clothing/head/helmet/hardliners/swat + name = "hardliners pilot helmet" + desc = "A modified X-11 helmet utilized by regular pilots, as well as the feared mech pilots of the Hardliner movement. The attached visor helps protect against sudden flashes from explosions." + flash_protect = FLASH_PROTECTION_WELDER + icon_state = "hl_pilot" + item_state = "hl_pilot" + +//////////// +//Glasses// +/////////// + +/obj/item/clothing/glasses/hud/security/sunglasses/hardliners + name = "hardliners security goggles" + desc = "Tinted-red flash-proof goggles used by Hardliners, with an integrated security HUD, courtesy of their partners, Cybersun." + icon_state = "hl_goggles" + item_state = "hl_goggles" + icon = 'icons/obj/clothing/faction/hardliners/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/eyes.dmi' + glass_colour_type = /datum/client_colour/glass_colour/red + +////////// +//Belts// +///////// + +/obj/item/storage/belt/security/webbing/hardliners + name = "hardliners webbing" + desc = "A set of tactical webbing for operators of the Hardliner movement, can hold security gear." + icon_state = "hl_webbing" + item_state = "hl_webbing" + icon = 'icons/obj/clothing/faction/hardliners/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/belt.dmi' diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 994cc6042ef2..eb76c13fb541 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -272,3 +272,12 @@ #undef DRILL_SHOUTING #undef DRILL_YELLING #undef DRILL_CANADIAN + +/obj/item/clothing/head/witchunter + name = "witchunter hat" + desc = "This hat saw much use back in the day." + icon_state = "witchhunterhat" + item_state = "witchhunterhat" + flags_cover = HEADCOVERSEYES + flags_inv = HIDEEYES|HIDEHAIR + armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index b9e828ab3974..c04b61563f53 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -315,13 +315,6 @@ var/datum/brain_trauma/mild/phobia/conspiracies/paranoia var/warped = FALSE -/obj/item/clothing/head/foilhat/Initialize(mapload) - . = ..() - if(!warped) - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, PROC_REF(warp_up))) - else - warp_up() - /obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) . = ..() if(slot != ITEM_SLOT_HEAD || warped) diff --git a/code/modules/clothing/outfits/factions/syndicate.dm b/code/modules/clothing/outfits/factions/syndicate.dm index 8f13554f4b00..5e04d87d88c6 100644 --- a/code/modules/clothing/outfits/factions/syndicate.dm +++ b/code/modules/clothing/outfits/factions/syndicate.dm @@ -54,10 +54,10 @@ box = /obj/item/storage/box/survival/syndie /datum/outfit/job/syndicate/assistant/gorlex - name = "Syndicate - Junior Agent (Gorlex Marauders)" + name = "Syndicate - Junior Agent (Hardliner)" - uniform = /obj/item/clothing/under/syndicate/gorlex - alt_uniform = /obj/item/clothing/under/syndicate + uniform = /obj/item/clothing/under/syndicate/hardliners + alt_uniform = /obj/item/clothing/under/syndicate/hardliners/jumpsuit /datum/outfit/job/syndicate/assistant/ngr name = "Syndicate - Initiate (New Gorlex Republic)" @@ -306,11 +306,12 @@ /datum/outfit/job/syndicate/captain/gorlex - name = "Syndicate - Captain (Gorlex Marauders)" - uniform = /obj/item/clothing/under/syndicate/ngr/officer + name = "Syndicate - Captain (Hardliner)" + uniform = /obj/item/clothing/under/syndicate/hardliners/officer - head = /obj/item/clothing/head/ngr/peaked - suit = /obj/item/clothing/suit/armor/ngr/captain + head = /obj/item/clothing/head/hardliners/peaked + suit = /obj/item/clothing/suit/toggle/armor/vest/hardliners + shoes = /obj/item/clothing/shoes/combat /datum/outfit/job/syndicate/captain/ngr name = "Syndicate - Captain (New Gorlex Republic)" @@ -428,17 +429,6 @@ id = /obj/item/card/id/syndicate_command/captain_id gloves = /obj/item/clothing/gloves/combat -/datum/outfit/job/syndicate/ce/gorlex - name = "Syndicate - Foreman (Gorlex Marauders)" - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/syndicate/gorlex - alt_uniform = null - suit = /obj/item/clothing/suit/toggle/hazard - alt_suit = null - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/combat - /datum/outfit/job/syndicate/ce/ngr name = "Syndicate - Foreman (New Gorlex Republic)" @@ -566,24 +556,27 @@ backpack_contents = list(/obj/item/melee/baton/loaded=1) /datum/outfit/job/syndicate/hos/gorlex - name = "Syndicate - Sergeant (Gorlex)" + name = "Syndicate - Sergeant (Hardliner)" id_assignment = "Sergeant" + uniform = /obj/item/clothing/under/syndicate/hardliners/officer + head = /obj/item/clothing/head/hardliners/peaked + suit = /obj/item/clothing/suit/armor/hardliners/sergeant + id = /obj/item/card/id/syndicate_command/crew_id + shoes = /obj/item/clothing/shoes/combat + suit_store = /obj/item/gun/ballistic/automatic/pistol + /datum/outfit/job/syndicate/hos/ngr name = "Syndicate - Lieutenant (New Gorlex Republic)" id_assignment = "Lieutenant" - ears = /obj/item/radio/headset/syndicate/alt uniform = /obj/item/clothing/under/syndicate/ngr/officer head = /obj/item/clothing/head/ngr/peaked - suit =/obj/item/clothing/suit/armor/ngr/lieutenant + suit = /obj/item/clothing/suit/armor/ngr/lieutenant id = /obj/item/card/id/syndicate_command/crew_id shoes = /obj/item/clothing/shoes/combat - glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = /obj/item/gun/ballistic/automatic/pistol - r_pocket = /obj/item/assembly/flash/handheld - l_pocket = /obj/item/restraints/handcuffs - backpack_contents = list(/obj/item/melee/baton/loaded=1) + /datum/outfit/job/syndicate/hos/twink name = "Syndicate - Lieutenant (Twinkleshine, NGR)" @@ -691,13 +684,15 @@ uniform = /obj/item/clothing/under/syndicate/medic accessory = /obj/item/clothing/accessory/armband/medblue - shoes = /obj/item/clothing/shoes/jackboots + shoes = /obj/item/clothing/shoes/combat /datum/outfit/job/syndicate/doctor/gorlex - name = "Syndicate - Medical Doctor (Gorlex)" + name = "Syndicate - Medical Doctor (Hardliner)" - uniform = /obj/item/clothing/under/syndicate/gorlex - glasses = /obj/item/clothing/glasses/hud/health/prescription + uniform = /obj/item/clothing/under/syndicate/hardliners + head = /obj/item/clothing/head/hardliners + suit = /obj/item/clothing/suit/hardliners + glasses = /obj/item/clothing/glasses/hud/health r_pocket = /obj/item/kitchen/knife/combat/survival back = /obj/item/storage/backpack/duffelbag/syndie/med id = /obj/item/card/id/syndicate_command/crew_id @@ -904,7 +899,25 @@ /datum/outfit/job/syndicate/security/gorlex - name = "Syndicate - Assault Operative (Gorlex)" + name = "Syndicate - Trooper (Hardliner)" + id_assignment = "Trooper" + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/syndicate/hardliners + belt = /obj/item/storage/belt/security/webbing/hardliners + suit = /obj/item/clothing/suit/armor/hardliners + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/helmet/hardliners + shoes = /obj/item/clothing/shoes/combat + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/assembly/flash/handheld + +/datum/outfit/job/syndicate/security/gorlex + name = "Syndicate - Pilot (Hardliner)" + id_assignment = "Pilot" + job_icon = "securityofficer" + + head = /obj/item/clothing/head/helmet/hardliners/swat /datum/outfit/job/syndicate/security/ngr name = "Syndicate - Operative (New Gorlex Republic)" @@ -920,6 +933,14 @@ l_pocket = /obj/item/restraints/handcuffs r_pocket = /obj/item/assembly/flash/handheld +/datum/outfit/job/syndicate/security/ngr/pilot + name = "Syndicate - Pilot (New Gorlex Republic)" + id_assignment = "Pilot" + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/syndicate/ngr/fatigues + head = /obj/item/clothing/head/helmet/ngr/swat + /datum/outfit/job/syndicate/security/twink name = "Syndicate - Operative (Twinkleshine)" @@ -987,10 +1008,12 @@ /obj/item/stack/marker_beacon/ten=1) /datum/outfit/job/syndicate/miner/gorlex - name = "Syndicate - Wrecker (Gorlex Marauders)" + name = "Syndicate - Wrecker (Hardliner)" id_assignment = "Wrecker" - uniform = /obj/item/clothing/under/syndicate/gorlex + head = /obj/item/clothing/head/hardhat/hardliners + suit = /obj/item/clothing/suit/hazardvest/hardliners + uniform = /obj/item/clothing/under/syndicate/hardliners/jumpsuit accessory = /obj/item/clothing/accessory/armband/cargo shoes = /obj/item/clothing/shoes/workboots ears = /obj/item/radio/headset/alt @@ -1090,10 +1113,12 @@ id = /obj/item/card/id/syndicate_command/crew_id /datum/outfit/job/syndicate/engineer/gorlex - name = "Syndicate - Mechanic (Gorlex Marauders)" + name = "Syndicate - Mechanic (Hardliner)" id_assignment = "Mechanic" - uniform = /obj/item/clothing/under/syndicate/gorlex + head = /obj/item/clothing/head/hardhat/hardliners + suit = /obj/item/clothing/suit/hazardvest/hardliners + uniform = /obj/item/clothing/under/syndicate/hardliners shoes = /obj/item/clothing/shoes/workboots glasses = null diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 7eaccd402e35..557a69c5acb2 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -585,11 +585,6 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard -/obj/item/clothing/suit/space/hardsuit/wizard/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, FALSE, FALSE, ITEM_SLOT_OCLOTHING, INFINITY, FALSE) - - //Medical hardsuit /obj/item/clothing/head/helmet/space/hardsuit/medical name = "medical hardsuit helmet" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index ae6ebb525a64..67dc7ce529b3 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -332,10 +332,6 @@ Contains: actions_types = list() resistance_flags = FIRE_PROOF -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_OCLOTHING) - /obj/item/clothing/suit/space/hardsuit/ert/paranormal name = "paranormal response team hardsuit" desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats." @@ -345,10 +341,6 @@ Contains: max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING) - /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor name = "inquisitor's hardsuit" icon_state = "hardsuit-inq" @@ -373,11 +365,6 @@ Contains: resistance_flags = FIRE_PROOF allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw) - -/obj/item/clothing/suit/space/hardsuit/berserker/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING) - /obj/item/clothing/suit/space/hardsuit/berserker/RemoveHelmet() var/obj/item/clothing/head/helmet/space/hardsuit/berserker/helm = helmet if(helm?.berserk_active) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 79aaf15c4d34..56018c288b6a 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -286,3 +286,10 @@ body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE|HIDEFACIALHAIR +/obj/item/clothing/suit/armor/witchhunter + name = "witchunter garb" + desc = "This worn outfit saw much use back in the day." + icon_state = "chaplain_witchhunter" + item_state = "witchhunter" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/storage/book/bible, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index e95bdb2063a8..d5b0c0ff6638 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -243,17 +243,6 @@ if(prob(5)) playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, TRUE) -/mob/living/simple_animal/hostile/clown_insane/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/nullrod)) - if(prob(5)) - visible_message("[src] finally found the peace it deserves. You hear honks echoing off into the distance.") - playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, TRUE) - qdel(src) - else - visible_message("[src] seems to be resisting the effect!") - return - return ..() - /mob/living/simple_animal/hostile/clown_insane/handle_temperature_damage() return diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 1378fb0253fc..1c6b19313ee4 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -52,19 +52,3 @@ dried_type = null wine_power = 70 //Water to wine, baby. wine_flavor = "divinity" - -/obj/item/reagent_containers/food/snacks/grown/holymelon/Initialize() - . = ..() - var/uses = 1 - if(seed) - uses = round(seed.potency / 20) - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, PROC_REF(block_magic)), CALLBACK(src, PROC_REF(expire))) //deliver us from evil o melon god - -/obj/item/reagent_containers/food/snacks/grown/holymelon/proc/block_magic(mob/user, major) - if(major) - to_chat(user, "[src] hums slightly, and seems to decay a bit.") - -/obj/item/reagent_containers/food/snacks/grown/holymelon/proc/expire(mob/user) - to_chat(user, "[src] rapidly turns into ash!") - qdel(src) - new /obj/effect/decal/cleanable/ash(drop_location()) diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 870697476794..ab4ceb6968c0 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -16,8 +16,6 @@ var/obj/item/storage/book/bible/booze/B = new if(GLOB.religion) - if(H.mind) - H.mind.holy_role = HOLY_ROLE_PRIEST B.deity_name = GLOB.deity B.name = GLOB.bible_name B.icon_state = GLOB.bible_icon_state @@ -30,8 +28,6 @@ if(GLOB.religious_sect) GLOB.religious_sect.on_conversion(H) return - if(H.mind) - H.mind.holy_role = HOLY_ROLE_HIGHPRIEST var/new_religion = DEFAULT_RELIGION if(M.client && M.client.prefs.custom_names["religion"]) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 7b80559d2691..268413ef203c 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -501,10 +501,6 @@ if(input) src.warcry = input -/obj/item/immortality_talisman/Initialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE) - /datum/action/item_action/hands_free/immortality name = "Immortality" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 4430fc1da300..f92e8d762f2d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -314,10 +314,6 @@ msg += "" - if(HAS_TRAIT(user, TRAIT_SPIRITUAL) && mind?.holy_role) - msg += "[t_He] [t_has] a holy aura about [t_him].\n" - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "religious_comfort", /datum/mood_event/religiously_comforted) - switch(stat) if(UNCONSCIOUS, HARD_CRIT) msg += "[t_He] [t_is]n't responding to anything around [t_him] and seem[p_s()] to be asleep.\n" diff --git a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm index 675c6fc99342..b251dda91e48 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm @@ -47,8 +47,8 @@ melee_damage_upper = 30 deathmessage = "collapses into a pile of bones, its gear clanging as it hits the ground!" loot = list(/obj/effect/decal/remains/human, - /obj/item/clothing/suit/armor/riot/chaplain, - /obj/item/clothing/head/helmet/chaplain, + /obj/item/clothing/suit/armor/witchhunter, + /obj/item/clothing/head/witchunter, /obj/item/claymore/weak{name = "holy sword"}) /mob/living/simple_animal/hostile/human/skeleton/ice diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 8e5f2e128ac7..9f6a8c169ecd 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -111,8 +111,8 @@ desc = "A shotgun shell which fires a spread of incendiary pellets." icon_state = "dragonsbreath" projectile_type = /obj/projectile/bullet/incendiary/shotgun/dragonsbreath - pellets = 4 - variance = 35 + pellets = 8 + variance = 45 /obj/item/ammo_casing/shotgun/meteorslug name = "meteorslug shell" @@ -128,20 +128,20 @@ /obj/item/ammo_casing/shotgun/ion name = "ion shell" - desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \ - The unique properties of the crystal split the pulse into a spread of individually weaker bolts." + desc = "An advanced shotgun shell which uses a micro laser to focus the effects of an EMP reaction to produce an effect similar to a standard ion rifle. \ + The more uncontrolled nature of the reaction causes the pulse to spread into multiple individually weaker bolts." icon_state = "ion" projectile_type = /obj/projectile/ion/weak - pellets = 4 - variance = 35 + pellets = 8 + variance = 25 /obj/item/ammo_casing/shotgun/laserscatter name = "scatter laser shell" desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a scatter laser weapon in a ballistic package." icon_state = "laser" projectile_type = /obj/projectile/beam/weak - pellets = 4 //WS edit: makes scatter lasers based again - variance = 35 + pellets = 8 + variance = 25 /obj/item/ammo_casing/shotgun/pulseslug name = "pulse slug" diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index e102c4c3b48f..ba9c8c88d7f8 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -18,7 +18,7 @@ /obj/projectile/bullet/incendiary/shotgun/dragonsbreath name = "dragonsbreath pellet" - damage = 5 + damage = 8 armour_penetration = -35 /obj/projectile/bullet/slug/stun diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index aead73d2bce5..10519c75c434 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2093,13 +2093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Trapper's Beer" glass_desc = "The Ashen Huntsman's blessings, in a glass. Despite proclaiming an ascetic lifestyle, it's okay to have a little fun once in a while." -/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M) - if(M.mind.holy_role) - M.adjustFireLoss(-2.5, 0) - M.jitteriness = max(0, M.jitteriness-1) - M.stuttering = max(0, M.stuttering-1) - return ..() - /datum/reagent/consumable/ethanol/blazaam name = "Hyperspace Highball" description = "A strange drink mixed with bluespace crystal flakes, which is already extremely expensive on its own merit." diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm index 92327a2ed689..3ddce78ae6e5 100644 --- a/code/modules/religion/religion_sects.dm +++ b/code/modules/religion/religion_sects.dm @@ -135,8 +135,6 @@ if(iscyborg(L)) var/mob/living/silicon/robot/R = L var/charge_amt = 50 - if(L.mind?.holy_role == HOLY_ROLE_HIGHPRIEST) - charge_amt *= 2 R.cell?.charge += charge_amt R.visible_message("[user] charges [R] with the power of [GLOB.deity]!") to_chat(R, "You are charged by the power of [GLOB.deity]!") diff --git a/code/modules/religion/religion_structures.dm b/code/modules/religion/religion_structures.dm index f9c449c56e9b..e9d76ca8bf5a 100644 --- a/code/modules/religion/religion_structures.dm +++ b/code/modules/religion/religion_structures.dm @@ -18,10 +18,6 @@ var/can_i_see = FALSE if(isobserver(user)) can_i_see = TRUE - else if(isliving(user)) - var/mob/living/L = user - if(L.mind?.holy_role) - can_i_see = TRUE if(!can_i_see || !sect_to_altar) return @@ -57,62 +53,6 @@ pushed_mob.forceMove(loc) return ..() -/obj/structure/altar_of_gods/attackby(obj/item/C, mob/user, params) - //If we can sac, we do nothing but the sacrifice instead of typical attackby behavior (IE damage the structure) - if(sect_to_altar?.can_sacrifice(C,user)) - sect_to_altar.on_sacrifice(C,user) - return TRUE - . = ..() - //everything below is assumed you're bibling it up - if(!istype(C, /obj/item/storage/book/bible)) - return - if(sect_to_altar) - if(!sect_to_altar.rites_list) - to_chat(user, "Your sect doesn't have any rites to perform!") - return - var/rite_select = input(user,"Select a rite to perform!","Select a rite",null) in sect_to_altar.rites_list - if(!rite_select || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - to_chat(user,"You cannot perform the rite at this time.") - return - var/selection2type = sect_to_altar.rites_list[rite_select] - performing_rite = new selection2type(src) - if(!performing_rite.perform_rite(user, src)) - QDEL_NULL(performing_rite) - else - performing_rite.invoke_effect(user, src) - sect_to_altar.adjust_favor(-performing_rite.favor_cost) - QDEL_NULL(performing_rite) - return - - if(user.mind.holy_role != HOLY_ROLE_HIGHPRIEST) - to_chat(user, "You are not the high priest, and therefore cannot select a religious sect.") - return - - var/list/available_options = generate_available_sects(user) - if(!available_options) - return - - var/sect_select = input(user,"Select a sect (You CANNOT revert this decision!)","Select a Sect",null) in available_options - if(!sect_select || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - to_chat(user,"You cannot select a sect at this time.") - return - var/type_selected = available_options[sect_select] - GLOB.religious_sect = new type_selected() - for(var/i in GLOB.player_list) - if(!isliving(i)) - continue - var/mob/living/am_i_holy_living = i - if(!am_i_holy_living.mind?.holy_role) - continue - GLOB.religious_sect.on_conversion(am_i_holy_living) - sect_to_altar = GLOB.religious_sect - if(sect_to_altar.altar_icon) - icon = sect_to_altar.altar_icon - if(sect_to_altar.altar_icon_state) - icon_state = sect_to_altar.altar_icon_state - - - /obj/structure/altar_of_gods/proc/generate_available_sects(mob/user) //eventually want to add sects you get from unlocking certain achievements . = list() for(var/i in subtypesof(/datum/religion_sect)) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index bbc53154aac6..da3fdb134010 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -375,7 +375,7 @@ icon_state = "chapdrobe" product_ads = "Are you being bothered by cultists or pesky revenants? Then come and dress like the holy man!;Clothes for men of the cloth!" vend_reply = "Thank you for using the ChapDrobe!" - products = list(/obj/item/choice_beacon/holy = 1, + products = list(/obj/item/storage/box/holy = 1, /obj/item/storage/backpack/cultpack = 1, /obj/item/clothing/head/beret/service = 1, //WS edit - berets /obj/item/clothing/accessory/pocketprotector/cosmetology = 1, diff --git a/html/changelogs/AutoChangeLog-pr-2836.yml b/html/changelogs/AutoChangeLog-pr-2836.yml deleted file mode 100644 index 48c7e17ac4d3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2836.yml +++ /dev/null @@ -1,13 +0,0 @@ -author: Sadhorizon -changes: - - {rscadd: Added the Sunskipper-class Culinary Vessel.} - - {rscadd: Every drink and booze dispenser drink is in the booze-o-mat now.} - - {rscadd: 'Added bottles for triple sec, lemon juice, creme de cacao and creme - de menthe.'} - - {rscdel: Removed the Boyardee-class Entertainment Vessel.} - - {rscdel: Independent chefs no longer get kitchen cqc.} - - {tweak: The "syndicate waiter's outfit" renamed to just "waiter's outfit".} - - {tweak: Indpenedent bartenders now start with a waistcoat.} - - {tweak: "Edited waiter's outfit. Also, the role now gets kitchen access."} - - {tweak: Independent cooks now start with laceup shoes.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2943.yml b/html/changelogs/AutoChangeLog-pr-2943.yml deleted file mode 100644 index 72956c599ab8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2943.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: Gristlebee -changes: - - {rscadd: Wrecked Factory ruin} - - {rscadd: Indestructible titanium walls} - - {rscadd: 'Lavaland atmos subtypes for plating, rusted plating, concrete, white - and dark turfs'} - - {balance: Syndicate Space Simple Mobs have their max temp increased} - - {tweak: Wall_lockers updatepaths on the Aegis} - - {code_imp: 'Adds ruin to map_catalogue,txt, lavaland.dm and adds it to lavaland.dm - areas'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3092.yml b/html/changelogs/AutoChangeLog-pr-3092.yml deleted file mode 100644 index 3f7d28d4a56c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3092.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: meemofcourse -changes: - - {rscadd: 'SUNS 3x6 logo decal, SUNS tiles, SUNS emblem floor decal, Desk and Wall - flag, folders, PDA, cards, locker, bedsheets, and headsets.'} -delete-after: true diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 56f937d3951f..52605700af12 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -199,3 +199,44 @@ - rscadd: Pickaxe was added to the autolathe. meemofcourse: - rscadd: PGF jobs now grant you the Kalixcian Common language +2024-06-13: + FalloutFalcon: + - rscdel: Removed alot of chaplain stuff we will never use + - rscdel: The chaplain is now just as magic as the average person + Gristlebee: + - rscadd: Wrecked Factory ruin + - rscadd: Indestructible titanium walls + - rscadd: Lavaland atmos subtypes for plating, rusted plating, concrete, white and + dark turfs + - balance: Syndicate Space Simple Mobs have their max temp increased + - tweak: Wall_lockers updatepaths on the Aegis + - code_imp: Adds ruin to map_catalogue,txt, lavaland.dm and adds it to lavaland.dm + areas + - rscadd: Techshell box + - rscadd: Techshells to the outpost market for 175 credits + - tweak: Scatter ion description + - balance: Techshell recipes no longer require higher tier stock parts, adjusts + scatter laser, scatter ion, dragonsbreath and pulse slug recipes + - balance: Buffs scatter lasers, scatter ion and dragonsbreath + PositiveEntropy: + - rscadd: The Hardliners have now made a proper appearance in the Frontier! + Sadhorizon: + - rscadd: Added the Sunskipper-class Culinary Vessel. + - rscadd: Every drink and booze dispenser drink is in the booze-o-mat now. + - rscadd: Added bottles for triple sec, lemon juice, creme de cacao and creme de + menthe. + - rscdel: Removed the Boyardee-class Entertainment Vessel. + - rscdel: Independent chefs no longer get kitchen cqc. + - tweak: The "syndicate waiter's outfit" renamed to just "waiter's outfit". + - tweak: Indpenedent bartenders now start with a waistcoat. + - tweak: Edited waiter's outfit. Also, the role now gets kitchen access. + - tweak: Independent cooks now start with laceup shoes. + meemofcourse: + - rscadd: SUNS 3x6 logo decal, SUNS tiles, SUNS emblem floor decal, Desk and Wall + flag, folders, PDA, cards, locker, bedsheets, and headsets. +2024-06-14: + Gristlebee: + - bugfix: Posibrains/MMI pilots being permaslept on mech destruction +2024-06-15: + Rye-Rice: + - imageadd: Rylie Was Forced To Resprite Concrete when she was 6! diff --git a/icons/mob/clothing/faction/hardliners/belt.dmi b/icons/mob/clothing/faction/hardliners/belt.dmi new file mode 100644 index 000000000000..a864128547d6 Binary files /dev/null and b/icons/mob/clothing/faction/hardliners/belt.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/eyes.dmi b/icons/mob/clothing/faction/hardliners/eyes.dmi new file mode 100644 index 000000000000..aec97963fd99 Binary files /dev/null and b/icons/mob/clothing/faction/hardliners/eyes.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/head.dmi b/icons/mob/clothing/faction/hardliners/head.dmi new file mode 100644 index 000000000000..839826a7c426 Binary files /dev/null and b/icons/mob/clothing/faction/hardliners/head.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/suits.dmi b/icons/mob/clothing/faction/hardliners/suits.dmi new file mode 100644 index 000000000000..05f41eb00d25 Binary files /dev/null and b/icons/mob/clothing/faction/hardliners/suits.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/uniforms.dmi b/icons/mob/clothing/faction/hardliners/uniforms.dmi new file mode 100644 index 000000000000..8726f50b2f54 Binary files /dev/null and b/icons/mob/clothing/faction/hardliners/uniforms.dmi differ diff --git a/icons/mob/clothing/faction/ngr/head.dmi b/icons/mob/clothing/faction/ngr/head.dmi index 08af6ee9ba08..c370f07aa0f3 100644 Binary files a/icons/mob/clothing/faction/ngr/head.dmi and b/icons/mob/clothing/faction/ngr/head.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 721de12b60b6..c2a73da609b9 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/head/armor.dmi b/icons/mob/clothing/head/armor.dmi index 4cec91ad0110..38adc74f3317 100644 Binary files a/icons/mob/clothing/head/armor.dmi and b/icons/mob/clothing/head/armor.dmi differ diff --git a/icons/mob/clothing/head/spacesuits.dmi b/icons/mob/clothing/head/spacesuits.dmi index 12923a0e281c..55a7f69de51f 100644 Binary files a/icons/mob/clothing/head/spacesuits.dmi and b/icons/mob/clothing/head/spacesuits.dmi differ diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index ee9896871a91..da5075195992 100644 Binary files a/icons/mob/clothing/suits/spacesuits.dmi and b/icons/mob/clothing/suits/spacesuits.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/belt.dmi b/icons/obj/clothing/faction/hardliners/belt.dmi new file mode 100644 index 000000000000..e8925f9c5d36 Binary files /dev/null and b/icons/obj/clothing/faction/hardliners/belt.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/eyes.dmi b/icons/obj/clothing/faction/hardliners/eyes.dmi new file mode 100644 index 000000000000..2e339c1b510a Binary files /dev/null and b/icons/obj/clothing/faction/hardliners/eyes.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/head.dmi b/icons/obj/clothing/faction/hardliners/head.dmi new file mode 100644 index 000000000000..5101eeedce9c Binary files /dev/null and b/icons/obj/clothing/faction/hardliners/head.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/suits.dmi b/icons/obj/clothing/faction/hardliners/suits.dmi new file mode 100644 index 000000000000..39da1c952739 Binary files /dev/null and b/icons/obj/clothing/faction/hardliners/suits.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/uniforms.dmi b/icons/obj/clothing/faction/hardliners/uniforms.dmi new file mode 100644 index 000000000000..233eb500c826 Binary files /dev/null and b/icons/obj/clothing/faction/hardliners/uniforms.dmi differ diff --git a/icons/obj/clothing/faction/ngr/head.dmi b/icons/obj/clothing/faction/ngr/head.dmi index 822766336620..d2258c5565dd 100644 Binary files a/icons/obj/clothing/faction/ngr/head.dmi and b/icons/obj/clothing/faction/ngr/head.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index fb23d4bc2afe..cf7f5ff09bd0 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/head/armor.dmi b/icons/obj/clothing/head/armor.dmi index c6792be933fc..6757e591c853 100644 Binary files a/icons/obj/clothing/head/armor.dmi and b/icons/obj/clothing/head/armor.dmi differ diff --git a/icons/obj/clothing/head/spacesuits.dmi b/icons/obj/clothing/head/spacesuits.dmi index 5c2351c7489f..8befad3b380f 100644 Binary files a/icons/obj/clothing/head/spacesuits.dmi and b/icons/obj/clothing/head/spacesuits.dmi differ diff --git a/icons/obj/clothing/suits/spacesuits.dmi b/icons/obj/clothing/suits/spacesuits.dmi index c86acdcbf3e5..2208c8b7cf98 100644 Binary files a/icons/obj/clothing/suits/spacesuits.dmi and b/icons/obj/clothing/suits/spacesuits.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 03f2163cddce..df2add959648 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/turf/walls/concrete.dmi b/icons/turf/walls/concrete.dmi index a201e7ab6375..da6a6e45a4ce 100644 Binary files a/icons/turf/walls/concrete.dmi and b/icons/turf/walls/concrete.dmi differ diff --git a/icons/turf/walls/hexacrete.dmi b/icons/turf/walls/hexacrete.dmi index 6866ac7f536f..f120455f46ad 100644 Binary files a/icons/turf/walls/hexacrete.dmi and b/icons/turf/walls/hexacrete.dmi differ diff --git a/shiptest.dme b/shiptest.dme index b38c7ff84045..70a39551e007 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1965,6 +1965,7 @@ #include "code\modules\clothing\factions\clip.dm" #include "code\modules\clothing\factions\frontiersmen.dm" #include "code\modules\clothing\factions\gezena.dm" +#include "code\modules\clothing\factions\hardliners.dm" #include "code\modules\clothing\factions\nanotrasen.dm" #include "code\modules\clothing\factions\ngr.dm" #include "code\modules\clothing\factions\suns.dm"