Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overmap 4.7: Gas Giants, More Storms, 8 hours of work #1997

Merged
merged 30 commits into from
Jul 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d5c28c7
does the PR
Erikafox May 29, 2023
8f5bb23
fixes + changes
Erikafox May 30, 2023
dce9f76
yes rye. It was
Erikafox May 30, 2023
16f69b6
Update planetary.dm
Erikafox May 30, 2023
8da4552
tmt review
Erikafox May 30, 2023
0e401ea
d'oh
Erikafox May 30, 2023
b025780
pushes more descs and fixes another issue tmt saw
Erikafox May 30, 2023
cf82b07
adds the landing sounds
Erikafox May 30, 2023
5e1f7dd
Throngle
Erikafox May 30, 2023
cf69573
removes the debug procs while I wait for debugging assistance
Erikafox May 30, 2023
4e95211
d
Erikafox Jun 2, 2023
a829e57
Update event_datum.dm
Erikafox Jun 3, 2023
8e9e595
Merge branch 'master' into overmap-stuff
Erikafox Jun 7, 2023
cf00188
Update beams.dm
Erikafox Jun 8, 2023
8113191
Update overmap.dmi
Erikafox Jun 9, 2023
d23efed
Merge remote-tracking branch 'upstream/master' into overmap-stuff
Erikafox Jun 9, 2023
cb4e79f
Update atmospherics.dm
Erikafox Jun 9, 2023
98b40cc
Merge remote-tracking branch 'upstream/master' into overmap-stuff
Erikafox Jun 16, 2023
0fcee16
Merge remote-tracking branch 'upstream/master' into overmap-stuff
Erikafox Jun 30, 2023
13bc1d4
woohoo
Erikafox Jun 30, 2023
743ade5
f
Erikafox Jun 30, 2023
35dcb1c
Update dynamic_datum.dm
Erikafox Jul 1, 2023
97465e4
Update dynamic_datum.dm
Erikafox Jul 1, 2023
9d91f39
Merge remote-tracking branch 'upstream/master' into overmap-stuff
Erikafox Jul 5, 2023
4cf8087
Merge remote-tracking branch 'upstream/master' into overmap-stuff
Erikafox Jul 5, 2023
d31836c
Merge branch 'master' into overmap-stuff
Erikafox Jul 9, 2023
d1de74e
webedits my linter problem away
Erikafox Jul 9, 2023
48e63b0
scopecreeps the pr
Erikafox Jul 12, 2023
f55f0e7
Update research_mission.dm
Erikafox Jul 12, 2023
e3e8442
carp balance
Erikafox Jul 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions code/__DEFINES/atmospherics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,15 +213,19 @@
#define ATMOS_TANK_AIRMIX "o2=2644;n2=10580;TEMP=293.15"
#define ATMOS_TANK_FUEL "o2=33000;plasma=66000;TEMP=293.15"

//LAVALAND
//PLANETARY
/// what pressure you have to be under to increase the effect of equipment meant for lavaland
#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 90
#define ICEMOON_DEFAULT_ATMOS "ICEMOON_ATMOS"
#define GAS_GIANT_ATMOS "GAS_GIANT_ATMOS"
#define PLASMA_GIANT_ATMOS "PLASMA_GIANT_ATMOS"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do these do anything?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep. They're the atmospherics for the tiles on gas giants

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self reminder to rework these one day. they suck rn

#define WASTEPLANET_DEFAULT_ATMOS "WASTEPLANET_ATMOS"
#define LAVALAND_DEFAULT_ATMOS "LAVALAND_ATMOS"


//ATMOS MIX IDS
#define LAVALAND_DEFAULT_ATMOS "LAVALAND_ATMOS"
#define ICEMOON_DEFAULT_ATMOS "ICEMOON_ATMOS"
#define WASTEPLANET_DEFAULT_ATMOS "WASTEPLANET_ATMOS"




//ATMOSIA GAS MONITOR TAGS
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204

#define ZAP_DEFAULT_FLAGS ZAP_MACHINE_EXPLOSIVE | ZAP_ALLOW_DUPLICATES | ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN
#define ZAP_FUSION_FLAGS ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN
#define ZAP_STORM_FLAGS ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN

#define ZAP_SUPERMATTER_FLAGS ZAP_GIVES_RESEARCH
#define ZAP_TESLA_FLAGS ZAP_DEFAULT_FLAGS | ZAP_GIVES_RESEARCH
Expand Down
4 changes: 2 additions & 2 deletions code/__DEFINES/maths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,8 @@
else if(dx < 0)
. += 360

//Magnitude. used for ship velocity
#define MAGNITUDE(a, b) (sqrt(a ** 2 + b ** 2))

/// Converts a probability/second chance to probability/seconds_per_tick chance
/// For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do `if(prob(100*SPT_PROB_RATE(0.1, 5)))`
Expand All @@ -282,5 +284,3 @@

/// Like SPT_PROB_RATE but easier to use, simply put `if(SPT_PROB(10, 5))`
#define SPT_PROB(prob_per_second_percent, seconds_per_tick) (prob(100*SPT_PROB_RATE((prob_per_second_percent)/100, (seconds_per_tick))))

#define MAGNITUDE(a, b) (sqrt(a ** 2 + b ** 2))
1 change: 1 addition & 0 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE)))
#define GAUSSIAN_BLUR(filter_size) filter(type="blur", size=filter_size)

#define STANDARD_GRAVITY 1 //Anything above this is high gravity, anything below no grav
#define GAS_GIANT_GRAVITY 2
#define GRAVITY_DAMAGE_TRESHOLD 3 //Starting with this value gravity will start to damage mobs

#define CAMERA_NO_GHOSTS 0
Expand Down
6 changes: 5 additions & 1 deletion code/__DEFINES/overmap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#define DYNAMIC_WORLD_REEBE "reebe" //celestial bodies
#define DYNAMIC_WORLD_ASTEROID "asteroid"
#define DYNAMIC_WORLD_SPACERUIN "space"
#define DYNAMIC_WORLD_GAS_GIANT "gas giant"
#define DYNAMIC_WORLD_PLASMA_GIANT "plasma giant"

/// Make sure you are adding new planet types to this, in order as seen above preferrably
#define DYNAMIC_WORLD_LIST_ALL list(\
Expand All @@ -44,7 +46,9 @@
DYNAMIC_WORLD_WASTEPLANET,\
DYNAMIC_WORLD_REEBE,\
DYNAMIC_WORLD_ASTEROID,\
DYNAMIC_WORLD_SPACERUIN)
DYNAMIC_WORLD_SPACERUIN,\
DYNAMIC_WORLD_GAS_GIANT,\
DYNAMIC_WORLD_PLASMA_GIANT)

//Possible ship states
#define OVERMAP_SHIP_IDLE "idle"
Expand Down
40 changes: 40 additions & 0 deletions code/datums/atmosphere/planetary.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,46 @@
minimum_temp = 180
maximum_temp = 180

/datum/atmosphere/gas_giant
id = GAS_GIANT_ATMOS

base_gases = list(
GAS_N2=10,
GAS_NITROUS=10,
)
normal_gases = list(
GAS_O2=5,
GAS_H2O=7,
GAS_N2=5,
GAS_NITROUS=7,
GAS_CO2=5,
)
restricted_gases = list(
GAS_NITROUS=7,
)
restricted_chance = 1

minimum_pressure = WARNING_HIGH_PRESSURE + 175
maximum_pressure = HAZARD_HIGH_PRESSURE + 1000

minimum_temp = 30 //number i pulled out of my ass
maximum_temp = 120

/datum/atmosphere/gas_giant/plasma
id = PLASMA_GIANT_ATMOS

base_gases = list(
GAS_PLASMA=10,
)
normal_gases = list(
GAS_PLASMA=10,
GAS_CO2=5,
)
restricted_gases = list(
GAS_PLASMA=0.1,
)
restricted_chance = 1

/datum/atmosphere/wasteplanet
id = WASTEPLANET_DEFAULT_ATMOS

Expand Down
36 changes: 36 additions & 0 deletions code/datums/mapgen/single_biome/Gas_Giant.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/datum/map_generator/single_biome/gas_giant
use_cellautomata = FALSE

biome_type = /datum/biome/gas_giant
area_type = /area/overmap_encounter/planetoid/gas_giant

/datum/biome/gas_giant
open_turf_types = list(/turf/open/chasm/gas_giant)

flora_spawn_list = list(
)
feature_spawn_list = null
mob_spawn_list = list(
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher
//in the future, I'd like to add something like.
//The slylandro, or really any floating gas bag species, it'd be cool
)


/datum/map_generator/single_biome/plasma_giant
use_cellautomata = FALSE

biome_type = /datum/biome/plasma_giant
area_type = /area/overmap_encounter/planetoid/gas_giant


/datum/biome/plasma_giant
open_turf_types = list(/turf/open/chasm/gas_giant/plasma)

flora_spawn_list = list(
)
feature_spawn_list = null
mob_spawn_list = list(
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher

)
23 changes: 23 additions & 0 deletions code/game/gamemodes/meteor/meteors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,29 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
if(prob(20))
explosion(src.loc,2,4,6,8)

/obj/effect/meteor/carp
name = "high velocity space carp"
desc = "What the devil?"
icon_state = "carp"
hits = 1
hitpwr = 0
pass_flags = PASSTABLE
meteorsound = 'sound/effects/blobattack.ogg'
meteordrop = list(/mob/living/simple_animal/hostile/carp)
dropamt = 1

/obj/effect/meteor/carp/big
name = "high velocity space carp"
desc = "What the devil?"
icon = 'icons/mob/broadMobs.dmi'
icon_state = "megacarp"
hits = 1
hitpwr = 1
pass_flags = PASSTABLE
meteordrop = list(/mob/living/simple_animal/hostile/carp/megacarp)
dropamt = 1


//////////////////////////
//Spookoween meteors
/////////////////////////
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/effects/anomalies/_anomalies.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,6 @@
. = ..()
if(user.research_scanner == TRUE)
to_chat(user, span_notice("If harvested, this anomaly would be worth [research_value] research points."))

/obj/effect/anomaly/throw_atom_into_space()
qdel(src)
11 changes: 11 additions & 0 deletions code/game/objects/effects/spawners/lootdrop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1017,6 +1017,17 @@
/obj/effect/anomaly/plasmasoul/planetary,
/obj/effect/anomaly/melter/planetary,
)

/obj/effect/spawner/lootdrop/anomaly/storm
loot = list(
/obj/effect/anomaly/flux,
/obj/effect/anomaly/pyro,
/obj/effect/anomaly/sparkler,
/obj/effect/anomaly/veins,
/obj/effect/anomaly/phantom,
/obj/effect/anomaly/melter,
)

//wasteplanet things

/obj/effect/spawner/lootdrop/waste/grille_or_trash
Expand Down
28 changes: 28 additions & 0 deletions code/game/turfs/open/chasm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,31 @@
underlay_appearance.icon = 'icons/turf/floors.dmi'
underlay_appearance.icon_state = "dirt"
return TRUE

//gas giant "chasm"
/turf/open/chasm/gas_giant
name = "void"
desc = "The gas that makes up the gas giant. You can't see further, but you're fairly sure if you slipped in, you'd be dead."
icon = 'icons/turf/floors.dmi'
icon_state = "reebemap" //to-do. Don't use Rebee Sprite
layer = SPACE_LAYER
baseturfs = /turf/open/chasm/gas_giant
planetary_atmos = TRUE
initial_gas_mix = GAS_GIANT_ATMOS
color = COLOR_DARK_MODERATE_ORANGE
light_range = 2
light_power = 0.6
light_color = COLOR_DARK_MODERATE_ORANGE
smoothing_flags = NONE
smoothing_groups = null
canSmoothWith = null
tiled_dirt = FALSE

/turf/open/chasm/gas_giant/Initialize(mapload, inherited_virtual_z)
. = ..()
icon_state = "reebegame"

/turf/open/chasm/gas_giant/plasma
light_color = COLOR_PURPLE
color = COLOR_PURPLE
initial_gas_mix = PLASMA_GIANT_ATMOS
4 changes: 2 additions & 2 deletions code/game/turfs/open/space/transit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
if(iseffect(src))
return
if(isliving(src))
var/mob/living/poor_soul = src // This may not seem like much, but if you toss someone out
poor_soul.apply_damage_type(50, BRUTE) // and they go through like four tiles, they're goners
var/mob/living/poor_soul = src // This may not seem like much, but if you toss someone out
poor_soul.apply_damage_type(25, BRUTE) // and they go through like four tiles, they're goners
return
qdel(src)

Expand Down
3 changes: 3 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/carp.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@
add_dead_carp_overlay()
..()

/mob/living/simple_animal/hostile/carp/throw_atom_into_space()
return

/mob/living/simple_animal/hostile/carp/tamed()
. = ..()
can_buckle = TRUE
Expand Down
56 changes: 53 additions & 3 deletions code/modules/overmap/missions/acquire_mission.dm
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,39 @@
weight = 1
objective_type = /obj/item/strange_crystal

/*
Acquire: Anomaly
*/

/datum/mission/acquire/anomaly
name = "Anomaly core requested"
weight = 8
value = 3000
duration = 40 MINUTES
dur_mod_range = 0.2
container_type = /obj/item/storage/box/anomaly
objective_type = /obj/item/assembly/signaler/anomaly
num_wanted = 1

/datum/mission/acquire/anomaly/New(...)
var/group = pick(list(
"Cybersun Industries",
"CMM-GOLD",
"Nanotrasen Anomalous Studies Division",
"The Naturalienwissenschaftlicher Studentenverbindungs-Verband",
"The Central Solarian Anomaly Research Agency",
"DeForest Medical R&D",
"A strange lizard on the outpost"
))

desc = "[group] has requested that a ship [pick(list("procure", "grab", "acquire", "find", "locate"))] \
an anomaly core for [pick(list("research", "analysis", "technical development", "closer inspection", "some reason"))]. \
They've offered to pay well, so we're relaying this mission to you"
. = ..()




/*
Acquire: The Creature
*/
Expand Down Expand Up @@ -184,7 +217,7 @@

/datum/mission/acquire/aquarium
name = "Fish needed for my aquarium"
weight = 14
weight = 6
value = 750
duration = 60 MINUTES
val_mod_range = 0.2
Expand All @@ -210,7 +243,7 @@

/datum/mission/acquire/aquarium/rare
name = "Rare fish needed for my aquarium!"
weight = 8
weight = 1
value = 1500
val_mod_range = 0.3

Expand All @@ -236,7 +269,7 @@

/datum/mission/acquire/fish_cook
name = "Fish needed for my meal"
weight = 8
weight = 3
duration = 40 MINUTES
val_mod_range = 0.2
objective_type = /obj/item/fish
Expand Down Expand Up @@ -307,3 +340,20 @@
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 3

/obj/item/storage/box/anomaly
name = "anomaly case"
desc = "A metallic box made to store anomaly cores. They aren't always the safest to lug around."
icon = 'icons/obj/nuke_tools.dmi'
icon_state = "core_container_sealed" //it'd be neat if I could figure out how to make this seal but that's a problem for me in 6 months
item_state = "tile"
lefthand_file = 'icons/mob/inhands/misc/tiles_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/tiles_righthand.dmi'
foldable = null

/obj/item/storage/box/anomaly/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_combined_w_class = WEIGHT_CLASS_NORMAL
STR.max_w_class = WEIGHT_CLASS_NORMAL
STR.max_items = 1
Loading