mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 02:21:44 +00:00
## About The Pull Request This PR adds a new persistent feature: message inside bottles. These are basically glass bottles with inside a piece of paper, a photo or space cash (no holocredits, and most bills rarely go over 1000 credits anyway) from a previous round, which can be fished at the beach, or from the relative fishing portals. Each piece of written paper or photo that isn't map-loaded has a roughly a 0.2% chance to be added to the message bottles database at the end of the round. However, you can also manually toss a glass bottle with inside a paper/photo/bill into the ocean (or a fishing portal generator with the ocean/beach module loaded) for guaranteed results. The bottles are removed from the database once fished up by the by, unless tossed back into the ocean. I've also offset a couple bottle sprites that weren't properly aligned (for the message overlays). TODO: - [x] add a couple (20 prob or less) message bottle spawners to the beach away mission or something. - [x] add a few sounds for adding and removing the message from the bottle. (pickup/drop sounds already handle that) - [x] test it properly. ## Why It's Good For The Game I think it'd be neat to have a way to send photos, snarky "seek grass" messages, as well as the occasional financial aid to future players, and furthermore, another thing to tie fishing to. ## Changelog 🆑 add: You can place papers, photos and cash bills (no holochips) inside bottles and then toss them into the ocean (or fishing portal gen with relative settings) with right-click, for others to fish them up on future rounds. /🆑
26 lines
811 B
Plaintext
26 lines
811 B
Plaintext
/obj/effect/spawner/message_in_a_bottle
|
|
name = "message in a bottle"
|
|
desc = "Sending out an SOS"
|
|
icon = 'icons/effects/random_spawners.dmi'
|
|
icon_state = "message_bottle"
|
|
var/probability = 100
|
|
|
|
/obj/effect/spawner/message_in_a_bottle/Initialize(mapload)
|
|
. = ..()
|
|
if(!prob(probability))
|
|
return INITIALIZE_HINT_QDEL
|
|
if(!SSpersistence.initialized)
|
|
RegisterSignal(SSpersistence, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(on_persistence_init))
|
|
else
|
|
SSpersistence.load_message_bottle(loc)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/spawner/message_in_a_bottle/proc/on_persistence_init(datum/source)
|
|
SIGNAL_HANDLER
|
|
UnregisterSignal(SSpersistence, COMSIG_SUBSYSTEM_POST_INITIALIZE)
|
|
SSpersistence.load_message_bottle(loc)
|
|
qdel(src)
|
|
|
|
/obj/effect/spawner/message_in_a_bottle/low_prob
|
|
probability = 1.5
|