Skip to content

Commit

Permalink
[MIRROR] [MDB IGNORE] Plasma flower MOD core from the lavaland patch …
Browse files Browse the repository at this point in the history
…of eden ruin (#6215)

Original PR: tgstation/tgstation#75959
-----
## About The Pull Request
This PR gives a small update to the patch of eden lavaland ruin, and
adds a new item that can be used as an upgrade to the plasma mod core.
The idea around this item is that it's a flower that has absorbed all
the plasma and bad-vibes in the small area around the ruin, leaving an
area full of plants, and a flower full of energy. This flower can be
taken from the oasis and turned into a functional MOD core using some
wires. As a MOD core, it is the same as the plasma mod core, but has a
higher energy capacity, being equivalent to a super power cell. It also
gives you a cool pollen effect, and spawns butterflies around you while
your suit is active. These butterflies disappear when they get too far
away, or if the suit deactivates. They also don't leave corpses, so they
shouldn't cause too much clutter.

![image](https://github.com/tgstation/tgstation/assets/42454181/45d67bd6-d001-4604-9814-22f32b8d63ef)



https://github.com/tgstation/tgstation/assets/42454181/22610231-4b98-440d-bf99-ae5b88644de8




## Why It's Good For The Game
Secondary, more concrete reason: The patch of eden ruin is overall
pretty boring for what it could be, and adding a cool thing like this
could spice it up imo. I also think the plasma mod core is cool, and so
making it possible to get it outside of cannibalizing a mining MODsuit
would be nice.

Now, the main motivation behind this PR, and my future PRs, is that I
want to improve the interactions between Robotics and the rest of the
station, starting with miners. By and large, interacting with robotics
as another department usually sucks. Something I believe to be a major
contributor to this is the fact that there's nothing for the rest of the
crew to really help robotics with. Robotics gains basically nothing from
interacting with the rest of the crew. The idea is that a miner finds
this core on lavaland, brings it to robotics, and robotics gets a cool
new mod core. Obviously the miners can use the core themselves, but in
my experience, most miners don't really use the MODsuit. I'm trying to
appeal to the basic feeling of "This person brought me something, I'll
do something for them". Obviously this is a pretty minor step, but hey,
gotta start somewhere.
## Changelog
:cl:
add: Updated the Patch of Eden lavaland ruin with a new item
add: Added the Plasma flower item, which can be used as an upgraded
plasma MOD core
/:cl:

---------

Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
  • Loading branch information
TaleStationBot and Momo8289 committed Jun 14, 2023
1 parent 57a8cc0 commit ddc332c
Show file tree
Hide file tree
Showing 8 changed files with 238 additions and 33 deletions.
115 changes: 82 additions & 33 deletions _maps/RandomRuins/LavaRuins/lavaland_surface_gaia.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@
/mob/living/basic/butterfly/lavaland,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"k" = (
/obj/item/food/grown/mushroom/amanita,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"l" = (
/obj/item/food/grown/mushroom/angel,
/turf/open/misc/grass/lavaland,
Expand All @@ -51,6 +55,10 @@
/obj/structure/flora/bush/flowers_br/style_random,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"o" = (
/obj/structure/flora/bush/flowers_br/style_random,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"p" = (
/mob/living/basic/lightgeist{
light_color = "#42ECFF"
Expand Down Expand Up @@ -82,6 +90,11 @@
"w" = (
/turf/closed/mineral/volcanic/lava_land_surface,
/area/ruin/unpowered/gaia)
"x" = (
/obj/structure/flora/bush/sunny/style_random,
/obj/structure/flora/bush/flowers_br/style_random,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"A" = (
/obj/structure/flora/bush/stalky/style_random,
/turf/open/misc/grass/lavaland,
Expand All @@ -101,6 +114,42 @@
/obj/item/food/grown/mushroom/chanterelle,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"E" = (
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"I" = (
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"J" = (
/turf/closed/wall/mineral/bronze,
/area/ruin/unpowered/gaia)
"K" = (
/obj/structure/flora/bush/stalky/style_random,
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"N" = (
/obj/structure/flora/grass/jungle/b/style_random,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"P" = (
/obj/structure/flora/grass/jungle/b/style_random,
/obj/structure/flora/bush/flowers_br/style_random,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"T" = (
/obj/structure/flora/grass/jungle/a/style_random,
/turf/open/floor/bronze/filled/lavaland,
/area/ruin/unpowered/gaia)
"V" = (
/obj/item/mod/construction/lavalandcore,
/turf/open/misc/grass/lavaland,
/area/ruin/unpowered/gaia)
"Z" = (
/obj/structure/flora/grass/jungle/b/style_random,
/turf/closed/wall/mineral/bronze,
/area/ruin/unpowered/gaia)

(1,1,1) = {"
a
Expand Down Expand Up @@ -128,7 +177,7 @@ a
w
w
c
b
N
c
b
c
Expand Down Expand Up @@ -165,7 +214,7 @@ c
d
c
i
d
T
C
n
c
Expand Down Expand Up @@ -200,9 +249,9 @@ g
d
c
c
c
E
v
d
T
c
c
h
Expand Down Expand Up @@ -236,9 +285,9 @@ d
c
n
c
b
N
B
c
n
d
m
d
Expand All @@ -256,7 +305,7 @@ d
c
d
h
c
o
f
j
c
Expand All @@ -267,55 +316,55 @@ w
(10,1,1) = {"
w
c
c
I
h
b
I
c
J
x
Z
T
c
q
t
K
b
d
c
A
b
c
I
w
"}
(11,1,1) = {"
w
d
e
i
n
o
d
c
t
c
c
x
V
I
n
c
I
c
q
c
w
"}
(12,1,1) = {"
w
c
I
b
c
p
g
s
c
b
j
k
J
P
J
h
d
T
n
c
b
N
w
"}
(13,1,1) = {"
Expand All @@ -328,7 +377,7 @@ d
b
c
c
n
o
c
c
b
Expand All @@ -345,9 +394,9 @@ n
c
c
b
c
I
b
c
j
h
i
C
Expand All @@ -362,7 +411,7 @@ l
j
c
n
c
I
c
g
c
Expand All @@ -382,7 +431,7 @@ c
c
g
c
c
I
c
n
c
Expand Down Expand Up @@ -417,7 +466,7 @@ c
b
n
c
c
I
j
g
c
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// signals for use by mob spawners
/// called when a spawner spawns a mob
#define COMSIG_SPAWNER_SPAWNED "spawner_spawned"
2 changes: 2 additions & 0 deletions code/datums/components/spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,11 @@
created_mob.faction = src.faction
RegisterSignal(created, COMSIG_MOB_STATCHANGE, PROC_REF(mob_stat_changed))


if (spawn_text)
spawner.visible_message(span_danger("[created] [spawn_text] [spawner]."))

SEND_SIGNAL(src, COMSIG_SPAWNER_SPAWNED, created)
RegisterSignal(created, COMSIG_QDELETING, PROC_REF(on_deleted))

/// Remove weakrefs to atoms which have been killed or deleted without us picking it up somehow
Expand Down
49 changes: 49 additions & 0 deletions code/modules/mob/living/basic/vermin/butterfly.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,52 @@

/mob/living/basic/butterfly/lavaland
unsuitable_atmos_damage = 0

/mob/living/basic/butterfly/lavaland/temporary
name = "strange butterfly"
basic_mob_flags = DEL_ON_DEATH
/// The atom that's spawning the butterflies
var/atom/source = null
/// Max distance in tiles before the butterfly despawns
var/max_distance = 5
/// Whether the butterfly will be destroyed at the end of its despawn timer
var/will_be_destroyed = FALSE
/// Despawn timer of the butterfly
var/despawn_timer = 0

/mob/living/basic/butterfly/lavaland/temporary/Initialize(mapload)
. = ..()
START_PROCESSING(SSprocessing, src)

/mob/living/basic/butterfly/lavaland/temporary/Destroy()
STOP_PROCESSING(SSprocessing, src)
return ..()

/mob/living/basic/butterfly/lavaland/temporary/process()
if(should_despawn())
if(will_be_destroyed)
return
will_be_destroyed = TRUE
despawn_timer = addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/basic/butterfly/lavaland/temporary, fadeout)), 5 SECONDS, TIMER_STOPPABLE)
return

if(will_be_destroyed)
// Cancels the butterfly being destroyed
will_be_destroyed = FALSE
deltimer(despawn_timer)

/// Checks whether the butterfly should be despawned after the next check, based on distance from source
/mob/living/basic/butterfly/lavaland/temporary/proc/should_despawn()
if(get_dist(source, src) > max_distance)
return TRUE
return FALSE

/// Fade the butterfly out before deleting it.
/// Looks much better than it just blipping out of existence
/mob/living/basic/butterfly/lavaland/temporary/proc/fadeout()
animate(src, alpha = 0, 1 SECONDS)
QDEL_IN(src, 1 SECONDS)

/mob/living/basic/butterfly/lavaland/temporary/examine(mob/user)
. = ..()
. += span_notice("Something about it seems unreal...")
29 changes: 29 additions & 0 deletions code/modules/mod/mod_construction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,35 @@
new /obj/item/mod/core/standard(drop_location())
qdel(src)

/obj/item/mod/construction/lavalandcore
name = "plasma flower"
icon_state = "plasma-flower"
desc = "A strange flower from the desolate wastes of lavaland. It pulses with a bright purple glow. \
Its shape is remarkably similar to that of a MOD core."
light_system = MOVABLE_LIGHT
light_color = "#cc00cc"
light_range = 2

/obj/item/mod/construction/lavalandcore/examine(mob/user)
. = ..()
. += span_notice("You could probably attach some <b>wires</b> to it...")

/obj/item/mod/construction/lavalandcore/attackby(obj/item/weapon, mob/user, params)
if(!istype(weapon, /obj/item/stack/cable_coil))
return

if(!weapon.tool_start_check(user, amount=2))
return

to_chat(user, span_notice("You start pushing the wires into the core..."))
if(!weapon.use_tool(src, user, 5 SECONDS, amount = 2, volume = 30))
return

to_chat(user, span_notice("You add the wires to the core."))
new /obj/item/mod/core/plasma/lavaland(drop_location())
qdel(src)


/obj/item/mod/construction/plating
name = "MOD external plating"
desc = "External plating used to finish a MOD control unit."
Expand Down

0 comments on commit ddc332c

Please sign in to comment.