Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 5 additions & 1 deletion code/__DEFINES/language.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
#define TONGUELESS_SPEECH (1<<1)
#define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD (1<<2)
#define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD (1<<3)
/// This language can be selected in preferences.
#define ROUNDSTART_LANGUAGE (1<<4)
/// This language is signed, not spoken.
#define SIGNED_LANGUAGE (1<<4)
#define SIGNED_LANGUAGE (1<<5)
/// Sarathi do not "sss" when speaking this language
#define NO_HISS (1<<6)

// LANGUAGE SOURCE DEFINES
/// For use in full removal only.
Expand Down
11 changes: 11 additions & 0 deletions code/__DEFINES/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,16 @@
#define PROSTHETIC_AMPUTATED "amputated"
#define PROSTHETIC_ROBOTIC "prosthetic"

/// You cannot speak or understand this language whatsoever.
#define LANGUAGE_UNKNOWN "Unknown (0)"
/// You cannot speak this language, but can recognize some of the words.
#define LANGUAGE_RECOGNIZED "Recognized (1)"
/// You are familiar with this language enough to sort of speak it, but cannot understand it very well.
#define LANGUAGE_FAMILIAR "Familiar (2)"
/// You are fluent in this language, and can both understand and speak it perfectly.
#define LANGUAGE_FLUENT "Fluent (3)"
/// Maximum number of additional languages that can be selected.
#define MAX_LANGUAGE_POINTS 4

#define NOT_SYNTHETIC FALSE
#define IS_SYNTHETIC TRUE
103 changes: 84 additions & 19 deletions code/controllers/subsystem/overmap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ SUBSYSTEM_DEF(overmap)
/// The mandatory and default star system
var/datum/overmap_star_system/default_system

/// The secondary star system that allows planet spawns
var/datum/overmap_star_system/wild_system

///Should events be processed
var/events_enabled = TRUE

Expand All @@ -41,8 +44,6 @@ SUBSYSTEM_DEF(overmap)
//if(length(tracked_star_systems) >= 1)
// CRASH("Attempted to create more than 1 star system. Having mutiple star systems is not supported.")

if(length(tracked_star_systems) >= 1)
WARNING("Attempted to create more than 1 star system. Bugs may occur as this isn't very well supported, you have been warned")
tracked_star_systems += new_starsystem
return new_starsystem

Expand All @@ -56,15 +57,16 @@ SUBSYSTEM_DEF(overmap)
dynamic_encounters = list()
events = list()

default_system = create_new_star_system(new /datum/overmap_star_system/shiptest)
var/list/sector_types = pick(subtypesof(/datum/overmap_star_system/safezone))
default_system = create_new_star_system(new sector_types)
wild_system = create_new_star_system (new /datum/overmap_star_system/shiptest)
return ..()

/datum/controller/subsystem/overmap/proc/spawn_new_star_system(datum/overmap_star_system/system_to_spawn=/datum/overmap_star_system)
if(istype(system_to_spawn))
return create_new_star_system(system_to_spawn)
return create_new_star_system(new system_to_spawn)


/datum/controller/subsystem/overmap/fire()
for(var/datum/overmap_star_system/current_system as anything in tracked_star_systems)
if(!current_system.encounters_refresh)
Expand Down Expand Up @@ -345,6 +347,9 @@ SUBSYSTEM_DEF(overmap)
//can our pallete be selected randomly roundstart? set to no for subtypes or if you dont change the pallete
var/can_be_selected_randomly = TRUE

/// Datum type for the main outpost spawned here
var/default_outpost_type

COOLDOWN_DECLARE(dynamic_despawn_cooldown)

/datum/overmap_star_system/New(generate_now=TRUE)
Expand All @@ -371,7 +376,7 @@ SUBSYSTEM_DEF(overmap)
if(!size)
size = CONFIG_GET(number/overmap_size)
if(!max_overmap_dynamic_events)
max_overmap_dynamic_events = CONFIG_GET(number/max_overmap_dynamic_events)
max_overmap_dynamic_events = isnull(max_overmap_dynamic_events)

overmap_container = new/list(size, size, 0)

Expand Down Expand Up @@ -516,24 +521,23 @@ SUBSYSTEM_DEF(overmap)
/datum/overmap_star_system/proc/spawn_outpost()
var/list/location = get_unused_overmap_square_in_radius(rand(4, round(size/5)))

var/datum/overmap/outpost/found_type
if(fexists(OUTPOST_OVERRIDE_FILEPATH))
var/file_text = trim_right(file2text(OUTPOST_OVERRIDE_FILEPATH)) // trim_right because there's often a trailing newline
var/datum/overmap/outpost/potential_type = text2path(file_text)
if(!potential_type || !ispath(potential_type, /datum/overmap/outpost))
stack_trace("SSovermap found an outpost override file at [OUTPOST_OVERRIDE_FILEPATH], but was unable to find the outpost type [potential_type]!")
else
found_type = potential_type
default_outpost_type = potential_type
fdel(OUTPOST_OVERRIDE_FILEPATH) // don't want it to affect 2 rounds in a row.

if(!found_type)
if(!default_outpost_type)
var/list/possible_types = subtypesof(/datum/overmap/outpost)
for(var/datum/overmap/outpost/outpost_type as anything in possible_types)
if(!initial(outpost_type.main_template))
possible_types -= outpost_type
found_type = pick(possible_types)
default_outpost_type = pick(possible_types)

var/datum/overmap/outpost/our_outpost = new found_type(location, src)
var/datum/overmap/outpost/our_outpost = new default_outpost_type(location, src)

//gets rid of nearby events that casue radio interference
for(var/direction as anything in GLOB.cardinals)
Expand Down Expand Up @@ -970,11 +974,7 @@ SUBSYSTEM_DEF(overmap)
override_object_colors = TRUE
overmap_icon_state = "overmap"

dynamic_probabilities = list(\
DYNAMIC_WORLD_BEACHPLANET = 10,
DYNAMIC_WORLD_SPACERUIN = 5,
DYNAMIC_WORLD_MOON = 20,
)
max_overmap_dynamic_events = 0

/datum/overmap_star_system/zx_spectrum_pallete
//main colors, used for dockable terrestrials, and background
Expand Down Expand Up @@ -1067,9 +1067,11 @@ SUBSYSTEM_DEF(overmap)
else
datum_to_edit.token.add_filter("gloweffect", 5, list("type"="drop_shadow", "color"= "#808080", "size"=2, "offset"=1))

/datum/overmap_star_system/ngr
name = "Gorlex Controlled - Ecbatana"
/datum/overmap_star_system/safezone/ngr
name = "Gorlex Controlled - Value of Public Works"
starname = "Ecbatana"
startype = /datum/overmap/star/dwarf
default_outpost_type = /datum/overmap/outpost/ngr_rock

//main colors, used for dockable terrestrials, and background
primary_color = "#d9ad82"
Expand All @@ -1086,6 +1088,69 @@ SUBSYSTEM_DEF(overmap)
override_object_colors = TRUE
overmap_icon_state = "overmap_dark"

/datum/overmap_star_system/safezone/clip
name = "CLIP Controlled - High-Pier"
starname = "Chana"
startype = /datum/overmap/star/dwarf/orange
default_outpost_type = /datum/overmap/outpost/clip_ocean

//main colors, used for dockable terrestrials, and background
primary_color = "#6fa8de"
secondary_color = "#96b6d4"

//hazard colors, used for the overmap hazards and sun
hazard_primary_color = "#d5e3f0"
hazard_secondary_color = "#96a6b5"

//structure colors, used for ships and outposts/colonies
primary_structure_color = "#97dfe8"
secondary_structure_color = "#6fa8de"

override_object_colors = TRUE
overmap_icon_state = "overmap_dark"

/datum/overmap_star_system/safezone/trifuge
name = "Independent - Minya"
starname = "Aubaine"
startype = /datum/overmap/star/medium
default_outpost_type = /datum/overmap/outpost/indie_space

//main colors, used for dockable terrestrials, and background
primary_color = "#5e5e5e"
secondary_color = "#242424"

//hazard colors, used for the overmap hazards and sun
hazard_primary_color = "#b56060"
hazard_secondary_color = "#824242"

//structure colors, used for ships and outposts/colonies
primary_structure_color = "#ffffff"
secondary_structure_color = "#ffffff"

override_object_colors = TRUE
overmap_icon_state = "overmap"

/datum/overmap_star_system/safezone/nt
name = "Nanotrasen Controlled - Persei-277"
starname = "Persei-277"
startype = /datum/overmap/star/medium
default_outpost_type = /datum/overmap/outpost/nanotrasen_ice

//main colors, used for dockable terrestrials, and background
primary_color = "#7e8cd9"
secondary_color = "#33324a"

//hazard colors, used for the overmap hazards and sun
hazard_primary_color = "#ededed"
hazard_secondary_color = "#7f7db0"

//structure colors, used for ships and outposts/colonies
primary_structure_color = "#4272db"
secondary_structure_color = "#38a0eb"

override_object_colors = TRUE
overmap_icon_state = "overmap_dark"

/datum/overmap_star_system/c64

//main colors, used for dockable terrestrials, and background
Expand All @@ -1105,13 +1170,13 @@ SUBSYSTEM_DEF(overmap)

//default shiptest overmap
/datum/overmap_star_system/shiptest
has_outpost = TRUE
has_outpost = FALSE
can_be_selected_randomly = FALSE
encounters_refresh = TRUE
max_overmap_dynamic_events = 15

/datum/overmap_star_system/shiptest/create_map()
. = ..()
set_station_name(starname)

/datum/overmap_star_system/admin_sandbox
name = "Admin Sandbox"
Expand Down
16 changes: 7 additions & 9 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,14 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
SetupQuirks()

quirk_blacklist = list(
list("Blind","Nearsighted"), \
list("Ageusia","Vegetarian","Deviant Tastes"), \
list("Ananas Affinity","Ananas Aversion"), //PENTEST ADDED
list("Blind","Nearsighted"),
list("Ageusia","Vegetarian","Deviant Tastes"),
list("Alcohol Tolerance","Light Drinker"),
list("Bad Touch", "Friendly"), \
list("Self-Aware", "Congenital Analgesia"), \
//list("(Language) Moth Pidgin", "(Language) Solarian International", "(Language) Teceti Unified Standard", "(Language) Kalixcian Common"), \
//PENTEST EDITS BELOW
list("Ananas Affinity","Ananas Aversion"), \
list("(Language) Moth Pidgin", "(Language) Terran International", "(Language) Teceti Unified Standard", "(Language) Draconic Common"), \
)
list("Bad Touch", "Friendly"),
list("Self-Aware", "Congenital Analgesia"),
list("Trilingual", "Monolingual"),
)

species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE))

Expand Down
4 changes: 4 additions & 0 deletions code/datums/traits/negative/monolingual.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/datum/quirk/monolingual
name = "Monolingual"
desc = "You're only fluent in your native language. (-2 language points)"
value = -1
97 changes: 0 additions & 97 deletions code/datums/traits/neutral/languages.dm

This file was deleted.

4 changes: 4 additions & 0 deletions code/datums/traits/positive/trilingual.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/datum/quirk/trilingual
name = "Trilingual"
desc = "You're fluent in three languages. (+2 language points)"
value = 1
5 changes: 4 additions & 1 deletion code/game/atoms_movable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1205,7 +1205,10 @@

/// Gets a lazylist of all mutually understood languages.
/atom/movable/proc/get_partially_understood_languages()
return get_language_holder().best_mutual_languages
var/datum/language_holder/our_holder = get_language_holder()
if(!our_holder.best_mutual_languages)
our_holder.calculate_best_mutual_language()
return our_holder.best_mutual_languages

/// Gets a random spoken language, useful for forced speech and such.
/atom/movable/proc/get_random_spoken_language()
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/contraband.dm
Original file line number Diff line number Diff line change
Expand Up @@ -788,7 +788,7 @@

/obj/structure/sign/poster/retro/radio
name = "Radio"
desc = "A poster advertising one of Nanotrasen's earliest products, a radio. One of its main selling points was a integrated OS and two way automatic translation for Solarian Common, and Kalixcian Common, which made it a smash hit. This thing is ancient."
desc = "A poster advertising one of Nanotrasen's earliest products, a radio. One of its main selling points was a integrated OS and two way automatic translation for Solarian Common and Gezenan, which made it a smash hit. This thing is ancient."
icon_state = "poster-radio70_retro"

//Safety moth posters, credit to AspEv for the art which the below posters are based on and to Ayy-Robotics for the sprites.
Expand Down
2 changes: 1 addition & 1 deletion code/modules/admin/verbs/randomverbs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -961,7 +961,7 @@
nova.size = inputed

inputed = input(usr, "Choose Maximum amount of Dynamic Events", "Spawn Overmap", nova.max_overmap_dynamic_events) as num
if(!inputed)
if(isnull(inputed))
QDEL_NULL(nova)
return
nova.max_overmap_dynamic_events = inputed
Expand Down
Loading
Loading