Skip to content

Commit

Permalink
The Gravening (#2511)
Browse files Browse the repository at this point in the history
This PR adds graves and tombstones (cairn, slab and wooden cross) to wake up your inner Undertaker.

Grave:

Just click on a desert turf with a shovel in hand to create the outlines of a grave.
You can then fill or dig the grave by using your shovel standing next to the grave (cannot work on it if you are on the turf or if you are incapacitated or resting).
You can bury 20 entities at max, with 1 human-sized mob.
LMB dig the grave, RMB fill the grave.
You can bury people alive and enjoy their muffled screams for help!
When someone is buried, they cannot breath anymore and take oxy damages. You can try to escape the grave if there is only 1 or 2 levels of dirt on top of you, if you make it in time before suffocating.
If you walk on an open grave, you will fall in it and badly hurt yourself.
You can push and shove people into graves.
Tombstones:

You can engrave messages on tombstones with a knife.
Slab can be made from 2 ceramic, cairn can be made from 1 ceramic
Wooden plank can be made with 1 plank, wooden cross from 2 planks
You can right-click on slabs and crosses to rotate/change the sprites.
  • Loading branch information
hyperioo authored Apr 21, 2024
1 parent 0a47c4a commit 73c3e55
Show file tree
Hide file tree
Showing 7 changed files with 452 additions and 1 deletion.
6 changes: 6 additions & 0 deletions code/game/atoms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1431,6 +1431,8 @@
act_result = welder_act_secondary(user, tool)
if(TOOL_ANALYZER)
act_result = analyzer_act_secondary(user, tool)
if(TOOL_SHOVEL)
act_result = shovel_act_secondary(user, tool)
if(act_result) // A tooltype_act has completed successfully
log_tool("[key_name(user)] used [tool] on [src][is_right_clicking ? "(right click)" : ""] at [AREACOORD(src)]")
return TOOL_ACT_TOOLTYPE_SUCCESS
Expand Down Expand Up @@ -1557,6 +1559,10 @@
/atom/proc/analyzer_act_secondary(mob/living/user, obj/item/tool)
return

/// Called on an object when a tool with shovel capabilities is used to right click an object
/atom/proc/shovel_act_secondary(mob/living/user, obj/item/tool)
return

///Generate a tag for this atom
/atom/proc/GenerateTag()
return
Expand Down
10 changes: 9 additions & 1 deletion mojave/code/modules/mob/living/living.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/mob/living
var/voice_type

/mob/living/Initialize(mapload)
. = ..()
update_nv()
Expand Down Expand Up @@ -30,3 +30,11 @@
var/wield_pixel_x = !active ? 0 : (!(hud_used.mymob.active_hand_index % RIGHT_HANDS) ? wield_info.pixel_x_wielded : -wield_info.pixel_x_wielded)
active_item.screen_loc = ui_hand_position(hud_used.mymob.active_hand_index, wield_pixel_x)
return TRUE

/// Alter speech when a mob is buried in a grave
/mob/living/proc/handle_buried_speech(mob/living/carbon/speaker, list/speech_args)
SIGNAL_HANDLER

var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
speech_args[SPEECH_MESSAGE] = stars(message, 40)
Binary file added mojave/icons/structure/grave.dmi
Binary file not shown.
11 changes: 11 additions & 0 deletions mojave/items/crafting/materials.dm
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,15 @@
/obj/item/stack/sheet/ms13/ceramic/two
amount = 2

GLOBAL_LIST_INIT(ceramic_recipes, list ( \
new/datum/stack_recipe("cairn", /obj/structure/ms13/tombstone/cairn, 1, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("tombstone", /obj/structure/ms13/tombstone/slab/stone, 2, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
))

/obj/item/stack/sheet/ms13/ceramic/get_main_recipes()
. = ..()
. += GLOB.ceramic_recipes

/datum/material/ms13/ceramic
name = "ceramic shards"
desc = "Sharp pieces of ceramic."
Expand Down Expand Up @@ -316,6 +325,8 @@ GLOBAL_LIST_INIT(plank_recipes, list ( \
new/datum/stack_recipe("campfire", /obj/structure/bonfire/ms13/campfire, 3, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("drying rack", /obj/structure/ms13/drying_rack, 4, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("fermentation barrel", /obj/structure/fermenting_barrel/ms13, 4, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("wooden slab", /obj/structure/ms13/tombstone/slab/plank, 1, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("wooden cross", /obj/structure/ms13/tombstone/slab/cross, 2, time = 15 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
))

/obj/item/stack/sheet/ms13/wood/plank/get_main_recipes()
Expand Down
Loading

0 comments on commit 73c3e55

Please sign in to comment.