Skip to content

Commit

Permalink
New Sandplanet Ruin: Cave Base (shiptest-ss13#3368)
Browse files Browse the repository at this point in the history
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
Adds a new ruin to the sand planet ruin pool - a small installation
built into a cave holding some explosive revelations. And a Big Gun.
And satchel charges which are snowflaked c4. 
Also reformats blackboxes mildly so they can start empty.

![dreamseeker_1podgNhvaZ](https://github.com/user-attachments/assets/413521a2-9b0f-43ff-88db-c9b79ce51e24)


![dreamseeker_JDRbW73Vxg](https://github.com/user-attachments/assets/feacc762-f72b-48ca-8f03-c5774b9fdc5f)


![StrongDMM-2024-09-29 23 12
47](https://github.com/user-attachments/assets/3f64d9c1-bcb1-45f8-adea-25072d5f5aca)
![StrongDMM-2024-09-29 23 12
48](https://github.com/user-attachments/assets/7be71711-5e99-4446-ab79-c9c04c529756)

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
New map + simmy content
<!-- Please add a short description of why you think these changes would
benefit the game. If you can't justify it in words, it might not be
worth adding. -->

## Changelog

:cl:
add: Transceivers have been picking up an intermittent radio signal
coming from a nearby sand world. People with too much spare time -
please check it out.
add: Satchel Charges. Exceedingly rare and decently explosive.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: Erika Fox <[email protected]>
  • Loading branch information
2 people authored and MrCat15352 committed Dec 27, 2024
1 parent 1295eb9 commit d036e50
Show file tree
Hide file tree
Showing 17 changed files with 6,045 additions and 5 deletions.
5,720 changes: 5,720 additions & 0 deletions _maps/RandomRuins/SandRuins/whitesands_cave_base.dmm

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions code/datums/ruins/whitesands.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
suffix = "whitesands_surface_pubbyslopcrash.dmm"
ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER)

/datum/map_template/ruin/whitesands/cave_base
name = "Abandoned Cave Base"
id = "cave_base"
description = "The former home of a poor sod on observation duty. Now a cunning trap."
suffix = "whitesands_cave_base.dmm"
ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER)

//////////OUTSIDE SETTLEMENTS/RUINS//////////
/datum/map_template/ruin/whitesands/survivors/saloon
name = "Hermit Saloon"
Expand Down
9 changes: 9 additions & 0 deletions code/datums/wires/_wires.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,15 @@
S.connected = src
return S

/datum/wires/proc/attach_assembly_init(obj/item/assembly/S)
var/obj/item/assembly/I = new S(holder.loc)
for(var/color in colors)
if(I && istype(I) && I.attachable && !is_attached(color))
assemblies[color] = I
I.forceMove(holder)
I.connected = src
return I

/datum/wires/proc/detach_assembly(color)
var/obj/item/assembly/S = get_attached(color)
if(S && istype(S))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/wires/explosive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@

/datum/wires/explosive/c4/explode()
var/obj/item/grenade/c4/P = holder
P.prime()
P.receive_signal()

/datum/wires/explosive/pizza
holder_type = /obj/item/pizzabox
Expand Down
9 changes: 9 additions & 0 deletions code/game/area/areas/ruins/sandplanet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

//whitesands surface camp saloon

//saloon ruin
/area/ruin/whitesands/saloon
name = "Hermit Saloon"
icon_state = "green"

//the pubby slop crash
/area/ruin/whitesands/pubbycrash
name = "Pubby-Class Wreckage"
icon_state = "bluenew"
Expand All @@ -17,3 +19,10 @@
/area/ruin/whitesands/pubbycrash/split
name = "Pubby-Class Chunk"
icon_state = "red"

//cave base
/area/ruin/whitesands/cave_base
name = "Abandoned Facility"
icon_state = "bluenew"

/area/ruin/whitesands/cave_base/engi
5 changes: 4 additions & 1 deletion code/game/machinery/telecomms/machines/message_server.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@
active_power_usage = ACTIVE_DRAW_MINIMAL
armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
var/obj/item/stored
var/empty = FALSE

/obj/machinery/blackbox_recorder/Initialize()
. = ..()
stored = new /obj/item/blackbox(src)
if(!empty)
stored = new /obj/item/blackbox(src)
update_appearance()

/obj/machinery/blackbox_recorder/attack_hand(mob/living/user)
. = ..()
Expand Down
20 changes: 19 additions & 1 deletion code/game/objects/items/grenades/plastic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,12 @@

//assembly stuff
/obj/item/grenade/c4/receive_signal()
prime()
if(!active)
active = TRUE
icon_state = "[item_state]2"
balloon_alert_to_viewers("[src] begins ticking!")
addtimer(CALLBACK(src, PROC_REF(prime)), det_time*10)
return

/obj/item/grenade/c4/attack_self(mob/user)
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num|null
Expand Down Expand Up @@ -125,3 +130,16 @@
item_state = "plasticx4"
directional = TRUE
boom_sizes = list(0, 2, 5)


// x-com ufo defense high ex charge 1993
/obj/item/grenade/c4/satchel_charge
name = "\improper satchel charge"
desc = "Used to put craters into places without too much hassle. An engineer's favorite."
w_class = WEIGHT_CLASS_NORMAL
icon_state = "satchel_charge0"
item_state = "satchel_charge"
throw_range = 3
lefthand_file = 'icons/mob/inhands/weapons/bombs_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/bombs_righthand.dmi'
boom_sizes = list(0, 3, 5)
12 changes: 12 additions & 0 deletions code/game/turfs/open/floor/plating/whitesands.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,15 @@
/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit
light_power = 1
light_range = 2

/turf/open/floor/concrete/whitesands
initial_gas_mix = WHITESANDS_ATMOS
light_color = COLOR_VERY_LIGHT_GRAY

/turf/open/floor/concrete/slab_1/whitesands
initial_gas_mix = WHITESANDS_ATMOS
light_color = COLOR_VERY_LIGHT_GRAY

/turf/open/floor/plating/whitesands
initial_gas_mix = WHITESANDS_ATMOS
light_color = COLOR_VERY_LIGHT_GRAY
14 changes: 13 additions & 1 deletion code/modules/assembly/holder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
throw_speed = 2
throw_range = 7

///set both of these or neither.
var/obj/item/assembly/a_left = null
var/obj/item/assembly/a_right = null

Expand All @@ -21,6 +22,18 @@
)
AddElement(/datum/element/connect_loc, loc_connections)

//if we want to spawn an holder pre-configured.
if(a_left && a_right)
var/obj/item/assembly/left = new a_left(src)
var/obj/item/assembly/right = new a_right(src)
//i love byond
a_left = null
a_right = null
assemble(left, right, null)
a_left.secured = TRUE
a_right.secured = TRUE
update_appearance()

/obj/item/assembly_holder/ComponentInitialize()
. = ..()
var/static/rotation_flags = ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_FLIP | ROTATION_VERBS
Expand All @@ -29,7 +42,6 @@
/obj/item/assembly_holder/IsAssemblyHolder()
return TRUE


/obj/item/assembly_holder/proc/assemble(obj/item/assembly/A, obj/item/assembly/A2, mob/user)
attach(A,user)
attach(A2,user)
Expand Down
22 changes: 21 additions & 1 deletion code/modules/assembly/proximity.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
drop_sound = 'sound/items/handling/component_drop.ogg'
pickup_sound = 'sound/items/handling/component_pickup.ogg'
var/scanning = FALSE
///is the assembly arming itself?
var/timing = FALSE
///seconds until the assembly arms itself
var/time = 10
var/sensitivity = 1
var/hearing_range = 3
Expand All @@ -16,11 +18,12 @@

/obj/item/assembly/prox_sensor/Initialize()
. = ..()
proximity_monitor = new(src, 0)
proximity_monitor = new(src, 0, FALSE)
START_PROCESSING(SSobj, src)

/obj/item/assembly/prox_sensor/Destroy()
STOP_PROCESSING(SSobj, src)
QDEL_NULL(proximity_monitor)
. = ..()

/obj/item/assembly/prox_sensor/examine(mob/user)
Expand All @@ -37,6 +40,15 @@
update_appearance()
return TRUE

/obj/item/assembly/prox_sensor/on_attach()
. = ..()
// Pick the first valid object in this list:
// Wiring datum's owner
// assembly holder's attached object
// assembly holder itself
// us
proximity_monitor.set_host(connected?.holder || holder?.master || holder || src, src)

/obj/item/assembly/prox_sensor/on_detach()
. = ..()
if(!.)
Expand Down Expand Up @@ -153,3 +165,11 @@
value = round(time + value)
time = clamp(value, 0, 600)
. = TRUE

/obj/item/assembly/prox_sensor/preset
sensitivity = 2
hearing_range = 3

/obj/item/assembly/prox_sensor/preset/Initialize()
. = ..()
toggle_scan(!scanning)
4 changes: 4 additions & 0 deletions code/modules/assembly/voice.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@
. = ..()
listening = FALSE

/obj/item/assembly/voice/preset
mode = 1
recorded = "example phrase"

#undef INCLUSIVE_MODE
#undef EXCLUSIVE_MODE
#undef RECOGNIZER_MODE
Expand Down
1 change: 1 addition & 0 deletions code/modules/projectiles/projectile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@
var/decayedRange //stores original range
var/reflect_range_decrease = 5 //amount of original range that falls off when reflecting, so it doesn't go forever
var/reflectable = NONE // Can it be reflected or not?

//Effects
var/stun = 0
var/knockdown = 0
Expand Down
Loading

0 comments on commit d036e50

Please sign in to comment.