diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
index e6fda6f503a..7d505d64a28 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
@@ -207,8 +207,8 @@
/turf/simulated/floor/wood,
/area/ruin/powered/beach)
"aN" = (
-/obj/machinery/vending/cola,
/obj/effect/turf_decal/sand,
+/obj/machinery/vending/cola/free,
/turf/simulated/floor/plasteel,
/area/ruin/powered/beach)
"aO" = (
@@ -235,8 +235,8 @@
/turf/simulated/floor/wood,
/area/ruin/powered/beach)
"aT" = (
-/obj/machinery/vending/snack,
/obj/effect/turf_decal/sand,
+/obj/machinery/vending/snack/free,
/turf/simulated/floor/plasteel,
/area/ruin/powered/beach)
"aU" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
index 5822d05aa8a..5a947203de8 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
@@ -116,6 +116,9 @@
/obj/item/scalpel{
pixel_y = 12
},
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_y = 30
+ },
/turf/simulated/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"aq" = (
@@ -489,7 +492,7 @@
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/machinery/vending/crittercare,
+/obj/machinery/vending/crittercare/free,
/turf/simulated/floor/plasteel,
/area/ruin/powered/animal_hospital)
"bn" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
index 66d5f5fce80..8bf85306742 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
@@ -177,6 +177,7 @@
/obj/structure/stone_tile{
dir = 4
},
+/obj/item/seeds/wheat,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aC" = (
@@ -189,11 +190,12 @@
dir = 4
},
/obj/structure/closet/crate/medical,
-/obj/item/storage/firstaid/regular,
/obj/item/reagent_containers/iv_bag/blood,
/obj/item/reagent_containers/iv_bag/blood,
/obj/item/reagent_containers/iv_bag/blood,
/obj/item/stack/sheet/cloth/ten,
+/obj/item/stack/medical/splint,
+/obj/item/storage/firstaid/adv,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aF" = (
@@ -255,6 +257,8 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
+/obj/item/seeds/comfrey,
+/obj/item/seeds/aloe,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aN" = (
@@ -1255,10 +1259,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"do" = (
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/reagent_dispensers/watertank,
+/obj/structure/sink/puddle,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
index 13850af5db7..421f2e62b53 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
@@ -5365,6 +5365,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
+/obj/item/defibrillator,
/turf/simulated/floor/plasteel/white/side{
dir = 9
},
@@ -5513,6 +5514,9 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/item/gun/syringe/syndicate,
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_x = -30
+ },
/turf/simulated/floor/plasteel/white/side{
dir = 9
},
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 6dbafe2534f..04e78e937aa 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1083,6 +1083,7 @@
premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1,
/obj/item/lighter/zippo = 3)
+ prices = list()
/obj/machinery/vending/cigarette/New()
..()
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 0bdc88c5b52..0e95f509463 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -195,8 +195,6 @@
heal_burn = 25
//Medical Herbs//
-
-
/obj/item/stack/medical/bruise_pack/comfrey
name = "\improper Comfrey leaf"
singular_name = "Comfrey leaf"
@@ -217,48 +215,55 @@
color = "#4CC5C7"
heal_burn = 12
-
-//Splints//
-
-
+// Splints
/obj/item/stack/medical/splint
name = "medical splints"
singular_name = "medical splint"
icon_state = "splint"
- unique_handling = 1
+ unique_handling = TRUE
self_delay = 100
+ var/other_delay = 0
/obj/item/stack/medical/splint/attack(mob/living/M, mob/user)
if(..())
- return 1
+ return TRUE
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
var/limb = affecting.name
+
if(!(affecting.limb_name in list("l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot")))
to_chat(user, "You can't apply a splint there!")
- return
+ return TRUE
+
if(affecting.status & ORGAN_SPLINTED)
to_chat(user, "[H]'s [limb] is already splinted!")
- if(alert(user, "Would you like to remove the splint from [H]'s [limb]?", "Removing.", "Yes", "No") == "Yes")
+ if(alert(user, "Would you like to remove the splint from [H]'s [limb]?", "Splint removal.", "Yes", "No") == "Yes")
affecting.status &= ~ORGAN_SPLINTED
H.handle_splints()
to_chat(user, "You remove the splint from [H]'s [limb].")
- return
- if(M == user)
- user.visible_message("[user] starts to apply [src] to [user.p_their()] [limb].", \
- "You start to apply [src] to your [limb].", \
- "You hear something being wrapped.")
- if(!do_mob(user, H, self_delay))
- return
- else
- user.visible_message("[user] applies [src] to [H]'s [limb].", \
- "You apply [src] to [H]'s [limb].", \
- "You hear something being wrapped.")
+ return TRUE
+
+ if((M == user && self_delay > 0) || (M != user && other_delay > 0))
+ user.visible_message("[user] starts to apply [src] to [H]'s [limb].", \
+ "You start to apply [src] to [H]'s [limb].", \
+ "You hear something being wrapped.")
+
+ if(M == user && !do_mob(user, H, self_delay))
+ return TRUE
+ else if(!do_mob(user, H, other_delay))
+ return TRUE
+
+ user.visible_message("[user] applies [src] to [H]'s [limb].", \
+ "You apply [src] to [H]'s [limb].")
affecting.status |= ORGAN_SPLINTED
affecting.splinted_count = H.step_count
H.handle_splints()
-
use(1)
+
+/obj/item/stack/medical/splint/tribal
+ name = "tribal splints"
+ icon_state = "tribal_splint"
+ other_delay = 50
diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index f4f952d4db5..1520e19dcfc 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -463,6 +463,14 @@
/obj/item/stack/sheet/animalhide/ashdrake = 5)
category = CAT_PRIMAL
+/datum/crafting_recipe/tribal_splint
+ name = "Tribal Splint"
+ time = 20
+ reqs = list(/obj/item/stack/sheet/bone = 2,
+ /obj/item/stack/sheet/sinew = 1)
+ result = /obj/item/stack/medical/splint/tribal
+ category = CAT_PRIMAL
+
/datum/crafting_recipe/guillotine
name = "Guillotine"
result = /obj/structure/guillotine
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index ab714c6f1a6..c8f4739d13a 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -27,6 +27,17 @@
if(prob(15))
harvest(null, TRUE)
+/obj/structure/flora/ash/ex_act(severity, target)
+ switch(severity)
+ if(1)
+ qdel(src)
+ if(2)
+ if(prob(80))
+ qdel(src)
+ if(3)
+ if(prob(50))
+ qdel(src)
+
/obj/structure/flora/ash/proc/harvest(user, no_drop)
if(harvested)
return 0
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 0cfe6dc554c..05a5768ce89 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ