diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 91305d2990..445c29241c 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -91,6 +91,40 @@ "aj" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/pirate) +"ak" = ( +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer{ + locked = 0; + name = "fridge" + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets, +/obj/item/storage/fancy/donut_box, +/obj/item/reagent_containers/food/snacks/cookie, +/obj/item/reagent_containers/food/snacks/cookie{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/milk, +/turf/open/floor/plasteel, +/area/shuttle/pirate) "al" = ( /obj/machinery/loot_locator, /obj/effect/decal/cleanable/dirt, @@ -622,38 +656,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/shuttle/pirate) -"bw" = ( -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/secure_closet/freezer{ - locked = 0; - name = "fridge" - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets, -/obj/item/storage/fancy/donut_box, -/obj/item/reagent_containers/food/snacks/cookie, -/obj/item/reagent_containers/food/snacks/cookie{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) "bx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1207,7 +1209,7 @@ eA aa ap aw -bw +ak bF aj aj diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index 44aab00852..0656d9b3ca 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -30,20 +30,20 @@ playsound(src, "sparks", 100, TRUE) var/turf/T = loc if(isturf(T)) - T.hotspot_expose(300,5) + T.hotspot_expose(700,5) QDEL_IN(src, 20) /obj/effect/particle_effect/sparks/Destroy() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(300,1) + T.hotspot_expose(700,1) return ..() /obj/effect/particle_effect/sparks/Move() ..() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(300,1) + T.hotspot_expose(700,1) /datum/effect_system/spark_spread effect_type = /obj/effect/particle_effect/sparks diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 1c6cc9cfcb..41ddc22106 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -187,6 +187,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF var/datum/effect_system/spark_spread/spark_system + var/effectcooldown var/working = 0 var/p_dir = NORTH var/p_flipped = FALSE @@ -207,7 +208,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( /obj/item/pipe_dispenser/New() . = ..() spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(5, 0, src) + spark_system.set_up(1, 0, src) spark_system.attach(src) if(!first_atmos) first_atmos = GLOB.atmos_pipe_recipes[GLOB.atmos_pipe_recipes[1]][1] @@ -313,8 +314,9 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( else mode |= n - if(playeffect) + if(playeffect && world.time >= effectcooldown) spark_system.start() + effectcooldown = world.time + 100 playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) /obj/item/pipe_dispenser/pre_attack(atom/A, mob/user) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 274273fdcf..f3975851ca 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -250,14 +250,18 @@ structure_check() searches for nearby cultist structures required for the invoca currentconversionman = convertee conversiontimeout = world.time + (10 SECONDS) convertee.Stun(100) + convertee.add_trait(TRAIT_MUTE, "conversionrune") conversionresult = FALSE while(world.time < conversiontimeout && convertee && !conversionresult) stoplag(1) currentconversionman = null - if(convertee && get_turf(convertee) != get_turf(src)) + if(!convertee) return FALSE - if(!conversionresult && convertee) - do_sacrifice(convertee, invokers) + convertee.remove_trait(TRAIT_MUTE, "conversionrune") + if(get_turf(convertee) != get_turf(src)) + return FALSE + if(!conversionresult) + do_sacrifice(convertee, invokers, TRUE) return FALSE var/brutedamage = convertee.getBruteLoss() var/burndamage = convertee.getFireLoss() @@ -279,7 +283,7 @@ structure_check() searches for nearby cultist structures required for the invoca H.cultslurring = 0 return 1 -/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) +/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers, force_a_sac) var/mob/living/first_invoker = invokers[1] if(!first_invoker) return FALSE @@ -289,7 +293,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/big_sac = FALSE - if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) + if(!force_a_sac && (((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) for(var/M in invokers) to_chat(M, "[sacrificial] is too greatly linked to the world! You need three acolytes!") log_game("Offer rune failed - not enough acolytes and target is living or sac target") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0e5eef2ffb..e1935a9b5d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1653,13 +1653,19 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/obj/item/bodypart/BP = null if(isbodypart(def_zone)) - BP = def_zone + if(damagetype == STAMINA && istype(def_zone, /obj/item/bodypart/head)) + BP = H.get_bodypart(check_zone(BODY_ZONE_CHEST)) + else + BP = def_zone else if(!def_zone) def_zone = ran_zone(def_zone) + if(damagetype == STAMINA && def_zone == BODY_ZONE_HEAD) + def_zone = BODY_ZONE_CHEST BP = H.get_bodypart(check_zone(def_zone)) - if(!BP) - BP = H.bodyparts[1] + + if(!BP) + BP = H.bodyparts[1] switch(damagetype) if(BRUTE) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 9d2ad4c12a..a04ed08611 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -66,7 +66,7 @@ sparks = new sparks.attach(src) - sparks.set_up(5, TRUE, src) + sparks.set_up(1, TRUE, src) /obj/machinery/power/emitter/ComponentInitialize() . = ..() diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index f09cc7b9e0..25dbaa461f 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -7,11 +7,12 @@ Chilling extracts: name = "chilling extract" desc = "It's cold to the touch, as if frozen solid." effect = "chilling" + container_type = INJECTABLE | DRAWABLE icon_state = "chilling" /obj/item/slimecross/chilling/Initialize() . = ..() - create_reagents(10, INJECTABLE | DRAWABLE) + create_reagents(10) /obj/item/slimecross/chilling/attack_self(mob/user) if(!reagents.has_reagent("plasma",10)) diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index 55d048db21..4ba8660855 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -27,7 +27,7 @@ /datum/surgery_step/revive name = "electric stimulation" - implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/melee/baton = 75, /obj/item/gun/energy = 60) + implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) time = 120 /datum/surgery_step/revive/tool_check(mob/user, obj/item/tool) diff --git a/html/changelogs/AutoChangeLog-pr-8108.yml b/html/changelogs/AutoChangeLog-pr-8108.yml new file mode 100644 index 0000000000..fea83213be --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8108.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Adds two cartons of space milk to the space skellie pirates cutter's fridge." diff --git a/html/changelogs/AutoChangeLog-pr-8114.yml b/html/changelogs/AutoChangeLog-pr-8114.yml new file mode 100644 index 0000000000..96e6914e6b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8114.yml @@ -0,0 +1,4 @@ +author: "izzyinbox" +delete-after: True +changes: + - tweak: "lowered the player age for command jobs to 1/3 of their previous setting" diff --git a/html/changelogs/AutoChangeLog-pr-8119.yml b/html/changelogs/AutoChangeLog-pr-8119.yml new file mode 100644 index 0000000000..6e282e2a8d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8119.yml @@ -0,0 +1,5 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "Sparks and igniters will now actually heat areas rather than cooling them, as was intended." + - tweak: "To alleviate some potential complaints, RPDs now have a cooldown before they can create sparks, and both RPDs and emitters produce less sparks." diff --git a/html/changelogs/AutoChangeLog-pr-8121.yml b/html/changelogs/AutoChangeLog-pr-8121.yml new file mode 100644 index 0000000000..27ce1ee0a1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8121.yml @@ -0,0 +1,5 @@ +author: "deathride58" +delete-after: True +changes: + - tweak: "Conversion runes will now mute the victim temporarily while they're deciding whether to convert or be sacrificed." + - bugfix: "Conversion runes no longer require a third cultist to sacrifice if the victim refuses conversion" diff --git a/html/changelogs/AutoChangeLog-pr-8122.yml b/html/changelogs/AutoChangeLog-pr-8122.yml new file mode 100644 index 0000000000..2b9d091601 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8122.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "Staminaloss targeted at the head now properly redirects to the chest." diff --git a/modular_citadel/code/game/objects/items/storage/firstaid.dm b/modular_citadel/code/game/objects/items/storage/firstaid.dm index 82d7df4a00..6ddf3963dd 100755 --- a/modular_citadel/code/game/objects/items/storage/firstaid.dm +++ b/modular_citadel/code/game/objects/items/storage/firstaid.dm @@ -23,7 +23,14 @@ /obj/item/storage/firstaid/o2 icon_state = "oxy" - + +/obj/item/storage/firstaid/radbgone + icon_state = "rad" + +/obj/item/storage/firstaid/radbgone/Initialize(mapload) + . = ..() + icon_state = pick("[initial(icon_state)]","[initial(icon_state)]2","[initial(icon_state)]3","[initial(icon_state)]4") + /obj/item/storage/firstaid/tactical icon_state = "tactical" diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 66245fbb8a..c0a4df2243 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -367,4 +367,10 @@ datum/gear/darksabresheath name = "Soul Necklace" category = SLOT_NECK path = /obj/item/clothing/neck/undertale - ckeywhitelist = list("twilightic") \ No newline at end of file + ckeywhitelist = list("twilightic") + +/datum/gear/frenchberet + name = "French Beret" + category = SLOT_HEAD + path = /obj/item/clothing/head/frenchberet + ckeywhitelist = list("notazoltan") \ No newline at end of file diff --git a/modular_citadel/code/modules/jobs/job_types/captain.dm b/modular_citadel/code/modules/jobs/job_types/captain.dm index 7d8d1ac5ca..674cd9d09e 100644 --- a/modular_citadel/code/modules/jobs/job_types/captain.dm +++ b/modular_citadel/code/modules/jobs/job_types/captain.dm @@ -1,9 +1,9 @@ /datum/job/captain - minimal_player_age = 60 + minimal_player_age = 20 exp_type = EXP_TYPE_COMMAND /datum/job/hop - minimal_player_age = 60 + minimal_player_age = 20 head_announce = list("Service") exp_type_department = EXP_TYPE_SERVICE diff --git a/modular_citadel/code/modules/jobs/job_types/engineering.dm b/modular_citadel/code/modules/jobs/job_types/engineering.dm index f199bbefea..4d6aa4119d 100644 --- a/modular_citadel/code/modules/jobs/job_types/engineering.dm +++ b/modular_citadel/code/modules/jobs/job_types/engineering.dm @@ -1,5 +1,5 @@ /datum/job/chief_engineer - minimal_player_age = 30 + minimal_player_age = 10 /datum/job/engineer access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, diff --git a/modular_citadel/code/modules/jobs/job_types/medical.dm b/modular_citadel/code/modules/jobs/job_types/medical.dm index 31c8b7d3c4..15841ad9d5 100644 --- a/modular_citadel/code/modules/jobs/job_types/medical.dm +++ b/modular_citadel/code/modules/jobs/job_types/medical.dm @@ -1,5 +1,5 @@ /datum/job/cmo - minimal_player_age = 30 + minimal_player_age = 10 /datum/outfit/job/doctor backpack_contents = list(/obj/item/storage/hypospraykit/regular) diff --git a/modular_citadel/code/modules/jobs/job_types/science.dm b/modular_citadel/code/modules/jobs/job_types/science.dm index 4542e7d099..94272d24a6 100644 --- a/modular_citadel/code/modules/jobs/job_types/science.dm +++ b/modular_citadel/code/modules/jobs/job_types/science.dm @@ -1,2 +1,2 @@ /datum/job/rd - minimal_player_age = 30 \ No newline at end of file + minimal_player_age = 10 diff --git a/modular_citadel/code/modules/jobs/job_types/security.dm b/modular_citadel/code/modules/jobs/job_types/security.dm index 9e59d98d00..de00f2d948 100644 --- a/modular_citadel/code/modules/jobs/job_types/security.dm +++ b/modular_citadel/code/modules/jobs/job_types/security.dm @@ -1,5 +1,5 @@ /datum/job/hos - minimal_player_age = 30 + minimal_player_age = 10 /datum/outfit/job/warden - suit_store = /obj/item/gun/energy/pumpaction/defender \ No newline at end of file + suit_store = /obj/item/gun/energy/pumpaction/defender