Merge branch 'master' into gatofication2

This commit is contained in:
evilew
2024-11-21 22:11:24 +01:00
committed by GitHub
193 changed files with 4649 additions and 708 deletions
+4 -4
View File
@@ -454,14 +454,14 @@ GLOBAL_LIST_INIT(pda_reskins, list(
#define STACK_CHECK_ADJACENT "adjacent" //checks if there is an object of the result type within one tile
//text files
#define BRAIN_DAMAGE_FILE "traumas.json"
#define ION_FILE "ion_laws.json"
#define BRAIN_DAMAGE_FILE "traumas_gs.json" //GS13 Edit: Less meta memes
#define ION_FILE "ion_laws_gs.json" //GS13 Edit: we're changing some of the things here, and removing other things
#define PIRATE_NAMES_FILE "pirates.json"
#define REDPILL_FILE "redpill.json"
#define ARCADE_FILE "arcade.json"
// #define BOOMER_FILE "boomer.json"
// #define LOCATIONS_FILE "locations.json"
// #define WANTED_FILE "wanted_message.json"
// #define WANTED_FILE "wanted_message_gs.json" //GS13 Edit: ...This is commented out, but I'll swap it to ours, incase it needs to be renabled.
// #define VISTA_FILE "steve.json"
#define FLESH_SCAR_FILE "wounds/flesh_scar_desc.json"
#define BONE_SCAR_FILE "wounds/bone_scar_desc.json"
@@ -569,7 +569,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(
#define SHOES_TIED 1
#define SHOES_KNOTTED 2
#define WANTED_FILE "wanted_message.json"
#define WANTED_FILE "wanted_message_gs.json" //GS Edit: Nanotrasen to Gato.
// Notification action types
#define NOTIFY_JUMP "jump"
+1 -1
View File
@@ -297,7 +297,7 @@
#define OFFSET_MUTPARTS "mutantparts"
// MINOR TWEAKS/MISC
#define AGE_MIN 18 // youngest a character can be // CITADEL EDIT - 17 --> 18
#define AGE_MIN 21 // youngest a character can be // CITADEL EDIT - 17 --> 18 //GS13 EDIT - 18 --> 21
#define AGE_MAX 85 // oldest a character can be randomly generated
#define AGE_MAX_INPUT 85 // oldest a character's age can be manually set
#define WIZARD_AGE_MIN 30 // youngest a wizard can be
+1
View File
@@ -295,6 +295,7 @@
#define TRAIT_HEAT "heat"
#define TRAIT_DISTANT "headpat_hater"
#define TRAIT_CUM_PLUS "cum_plus"
#define TRAIT_TRANSFORMED "transformed"
// mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
+3 -1
View File
@@ -14,6 +14,7 @@
var/holding = user.get_active_held_item()
var/datum/progressbar/progbar
var/is_food_gripper = istype(user.get_active_held_item(), /obj/item/gripper/food) //GS13 EDIT
if (progress)
progbar = new(user, time, target)
@@ -34,7 +35,8 @@
|| (!(timed_action_flags & IGNORE_TARGET_IN_DOAFTERS) && !(target in user.do_afters)) \
|| (!(timed_action_flags & IGNORE_USER_LOC_CHANGE) && !drifting && user.loc != user_loc) \
|| (!(timed_action_flags & IGNORE_TARGET_LOC_CHANGE) && target.loc != target_loc) \
|| (!(timed_action_flags & IGNORE_HELD_ITEM) && user.get_active_held_item() != holding) \
//GS13 EDIT
|| (!(timed_action_flags & IGNORE_HELD_ITEM) && !is_food_gripper && user.get_active_held_item() != holding) \
|| (!(timed_action_flags & IGNORE_INCAPACITATED) && user.incapacitated()) \
|| (extra_checks && !extra_checks.Invoke()) \
)
+4 -1
View File
@@ -581,8 +581,11 @@
if((character.mind.assigned_role == "Cyborg") || (character.mind.assigned_role == character.mind.special_role))
return
var/displayed_rank = rank
if(character.client && character.client.prefs && character.client?.prefs?.alt_titles_preferences[rank])
displayed_rank = character.client?.prefs?.alt_titles_preferences[rank]
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common
announcer.announce("ARRIVAL", character.real_name, displayed_rank, list()) //make the list empty to make it announce it in common
/proc/lavaland_equipment_pressure_check(turf/T)
. = FALSE
+4 -4
View File
@@ -290,11 +290,11 @@ GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
"Circuitry", "Toxins", "Dormitories", "Virology",
"Xenobiology", "Law Office","Detective's Office"))
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt") + "")
GLOBAL_LIST_INIT(station_prefixes, world.file2list("GainStation13/strings/station_prefixes.txt") + "") //GS13 Edit: Our Names
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt" + ""))
GLOBAL_LIST_INIT(station_names, world.file2list("GainStation13/strings/station_names.txt" + "")) //GS13 Edit: Our names
GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt"))
GLOBAL_LIST_INIT(station_suffixes, world.file2list("GainStation13/strings/station_suffixes.txt")) //GS13 Edit: Our names
GLOBAL_LIST_INIT(server_taglines, world.file2list("[global.config.directory]/server_taglines.txt"))
@@ -361,4 +361,4 @@ GLOBAL_LIST_INIT(bodypart_names, list(num2text(HEAD) = "Head", num2text(CHEST) =
// list linking bodypart names back to the bitflags
GLOBAL_LIST_INIT(bodypart_values, list("Head" = num2text(HEAD), "Chest" = num2text(CHEST), "Left Leg" = num2text(LEG_LEFT), "Right Leg" = num2text(LEG_RIGHT), "Left Arm" = num2text(ARM_LEFT), "Right Arm" = num2text(ARM_RIGHT)))
GLOBAL_LIST_INIT(junkmail_messages, world.file2list("strings/junkmail.txt"))
GLOBAL_LIST_INIT(junkmail_messages, world.file2list("GainStation13/strings/junkmail.txt")) //GS Edit: Nanotrasen to GATO
+1 -1
View File
@@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt"))
GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt"))
GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt"))
GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt"))
GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt"))
GLOBAL_LIST_INIT(dream_strings, world.file2list("GainStation13/strings/dreamstrings.txt")) //GS13 Edit: Nanotrasen to Gato... And our own additions
//loaded on startup because of "
//would include in rsc if ' was used
+4 -1
View File
@@ -464,7 +464,10 @@ SUBSYSTEM_DEF(job)
else
handle_auto_deadmin_roles(M.client, rank)
to_chat(M, "<b>You are the [rank].</b>")
var/display_rank = rank
if(M.client && M.client.prefs && M.client?.prefs?.alt_titles_preferences[rank])
display_rank = M.client?.prefs?.alt_titles_preferences[rank]
to_chat(M, "<b>You are the [display_rank].</b>")
if(job)
to_chat(M, "<b>As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
job.radio_help_message(M)
@@ -17,7 +17,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
/datum/controller/subsystem/processing/quirks/Initialize(timeofday)
if(!quirks.len)
SetupQuirks()
quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Alcohol Intolerance"),list("Alcohol Intolerance","Drunken Resilience"), list("Weak Legs", "Strong Legs"), list("Fat Affinity","Fat Aversion")) //GS13 EDIT
quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia", "Vegetarian", "Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Alcohol Intolerance"),list("Alcohol Intolerance","Drunken Resilience"), list("Weak Legs", "Strong Legs"), list("Fat Affinity","Fat Aversion")) //GS13 EDIT
return ..()
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
@@ -163,12 +163,14 @@
if(_codeword)
codeword = _codeword
else
codeword = pick(strings("ion_laws.json", "ionabstract")\
| strings("ion_laws.json", "ionobjects")\
| strings("ion_laws.json", "ionadjectives")\
| strings("ion_laws.json", "ionthreats")\
| strings("ion_laws.json", "ionfood")\
| strings("ion_laws.json", "iondrinks"))
//GS13 Start: We're using our file
codeword = pick(strings("ion_laws_gs.json", "ionabstract")\
| strings("ion_laws_gs.json", "ionobjects")\
| strings("ion_laws_gs.json", "ionadjectives")\
| strings("ion_laws_gs.json", "ionthreats")\
| strings("ion_laws_gs.json", "ionfood")\
| strings("ion_laws_gs.json", "iondrinks"))
//GS13 End
/datum/brain_trauma/severe/split_personality/brainwashing/on_gain()
..()
+105 -6
View File
@@ -1,3 +1,5 @@
#define MAX_STACK_PICKUP 30
/datum/component/storage/concrete/rped
collection_mode = COLLECT_EVERYTHING
allow_quick_gather = TRUE
@@ -9,13 +11,61 @@
max_items = 100
display_numerical_stacking = TRUE
var/static/list/allowed_material_types = list(
/obj/item/stack/sheet/glass,
/obj/item/stack/sheet/plasteel,
/obj/item/stack/cable_coil,
)
var/static/list/allowed_bluespace_types = list(
/obj/item/stack/ore/bluespace_crystal,
/obj/item/stack/sheet/bluespace_crystal,
)
/datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
. = ..()
if(!I.get_part_rating())
if (!stop_messages)
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
if(!.)
return .
//we check how much of glass,plasteel & cable the user can insert
if(isstack(I))
//user tried to insert invalid stacktype
if(!is_type_in_list(I, allowed_material_types) && !is_type_in_list(I, allowed_bluespace_types))
return FALSE
var/obj/item/stack/the_stack = I
var/present_amount = 0
//we try to count & limit how much the user can insert of each type to prevent them from using it as an normal storage medium
for(var/obj/item/stack/stack_content in parent)
//is user trying to insert any of these listed bluespace stuff
if(is_type_in_list(I, allowed_bluespace_types))
//if yes count total bluespace stuff is the RPED and then compare the total amount to the value the user is trying to insert
if(is_type_in_list(stack_content, allowed_bluespace_types))
present_amount += stack_content.amount
//count other normal stack stuff
else if(istype(I,stack_content.type))
present_amount = stack_content.amount
break
//no more storage for this specific stack type
if(MAX_STACK_PICKUP - present_amount == 0)
return FALSE
//we want the user to insert the exact stack amount which is available so we dont have to bother subtracting & leaving left overs for the user
var/available = MAX_STACK_PICKUP-present_amount
if(available - the_stack.amount < 0)
return FALSE
else if(istype(I, /obj/item/circuitboard/machine) || istype(I, /obj/item/circuitboard/computer))
return TRUE
//check normal insertion of other stock parts
else if(!I.get_part_rating())
return FALSE
return .
/datum/component/storage/concrete/rped/quick_empty(mob/M)
var/atom/A = parent
if(!M.canUseStorage() || !A.Adjacent(M) || M.incapacitated())
@@ -52,13 +102,60 @@
max_items = 350
display_numerical_stacking = TRUE
var/static/list/allowed_material_types = list(
/obj/item/stack/sheet/glass,
/obj/item/stack/sheet/plasteel,
/obj/item/stack/cable_coil,
)
var/static/list/allowed_bluespace_types = list(
/obj/item/stack/ore/bluespace_crystal,
/obj/item/stack/sheet/bluespace_crystal,
)
/datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
. = ..()
if(!I.get_part_rating())
if (!stop_messages)
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
if(!.)
return .
//we check how much of glass,plasteel & cable the user can insert
if(isstack(I))
//user tried to insert invalid stacktype
if(!is_type_in_list(I, allowed_material_types) && !is_type_in_list(I, allowed_bluespace_types))
return FALSE
var/obj/item/stack/the_stack = I
var/present_amount = 0
//we try to count & limit how much the user can insert of each type to prevent them from using it as an normal storage medium
for(var/obj/item/stack/stack_content in parent)
//is user trying to insert any of these listed bluespace stuff
if(is_type_in_list(I, allowed_bluespace_types))
//if yes count total bluespace stuff is the RPED and then compare the total amount to the value the user is trying to insert
if(is_type_in_list(stack_content, allowed_bluespace_types))
present_amount += stack_content.amount
//count other normal stack stuff
else if(istype(I,stack_content.type))
present_amount = stack_content.amount
break
//no more storage for this specific stack type
if(MAX_STACK_PICKUP - present_amount == 0)
return FALSE
//we want the user to insert the exact stack amount which is available so we dont have to bother subtracting & leaving left overs for the user
var/available = MAX_STACK_PICKUP-present_amount
if(available - the_stack.amount < 0)
return FALSE
else if(istype(I, /obj/item/circuitboard/machine) || istype(I, /obj/item/circuitboard/computer))
return TRUE
//check normal insertion of other stock parts
else if(!I.get_part_rating())
return FALSE
return .
/datum/component/storage/concrete/bluespace/rped/quick_empty(mob/M)
var/atom/A = parent
@@ -85,3 +182,5 @@
stoplag(1)
progress.end_progress()
A.do_squish(0.8, 1.2)
#undef MAX_STACK_PICKUP
+8 -2
View File
@@ -138,12 +138,18 @@
var/static/list/show_directions = list(SOUTH, WEST)
if(H.mind && (H.mind.assigned_role != H.mind.special_role))
var/assignment
var/displayed_rank
if(H.mind.assigned_role)
assignment = H.mind.assigned_role
else if(H.job)
assignment = H.job
else
assignment = "Unassigned"
if(C && C.prefs && C.prefs.alt_titles_preferences[assignment])
assignment = C.prefs.alt_titles_preferences[assignment]
if(assignment)
displayed_rank = C.prefs.alt_titles_preferences[assignment]
var/static/record_id_num = 1001
var/id = num2hex(record_id_num++,6)
@@ -166,7 +172,7 @@
var/datum/data/record/G = new()
G.fields["id"] = id
G.fields["name"] = H.real_name
G.fields["rank"] = assignment
G.fields["rank"] = displayed_rank
G.fields["age"] = H.age
G.fields["species"] = H.dna.species.name
G.fields["fingerprint"] = md5(H.dna.uni_identity)
@@ -213,7 +219,7 @@
var/datum/data/record/L = new()
L.fields["id"] = md5("[H.real_name][H.mind.assigned_role]") //surely this should just be id, like the others?
L.fields["name"] = H.real_name
L.fields["rank"] = H.mind.assigned_role
L.fields["rank"] = displayed_rank
L.fields["age"] = H.age
if(H.gender == MALE)
G.fields["gender"] = "Male"
@@ -284,4 +284,4 @@
weight = 2
event_control_path = /datum/round_event_control/radiation_storm
weight_multiplier = 1.5
max_occurrences_modifier = 2
max_occurrences_modifier = 0 //GS13 - radstorm bad
@@ -18,7 +18,7 @@
area_type = /area
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
/area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/ruin/lavaland)
/area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/ruin/lavaland, /area/commons/dorms, /area/service/bar) //GS13 Edit: Dorms and bar are safe...
target_trait = ZTRAIT_STATION
immunity_type = TRAIT_RADSTORM_IMMUNE
+8 -7
View File
@@ -17,9 +17,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
circuit = /obj/item/circuitboard/machine/announcement_system
var/obj/item/radio/headset/radio
var/arrival = "%PERSON has signed up as %RANK"
var/arrival = "%PERSON has signed up as %DISP_RANK (%RANK)"
var/arrivalToggle = TRUE
var/newhead = "%PERSON, %RANK, is the department head."
var/newhead = "%PERSON, %DISP_RANK (%RANK), is the department head."
var/newheadToggle = TRUE
var/cryostorage = "%PERSON, %RANK, has been moved into cryogenic storage." // this shouldnt be changed
@@ -70,23 +70,24 @@ GLOBAL_LIST_EMPTY(announcement_systems)
else
return ..()
/obj/machinery/announcement_system/proc/CompileText(str, user, rank) //replaces user-given variables with actual thingies.
/obj/machinery/announcement_system/proc/CompileText(str, user, rank, displayed_rank) //replaces user-given variables with actual thingies.
str = replacetext(str, "%PERSON", "[user]")
str = replacetext(str, "%RANK", "[rank]")
str = replacetext(str, "%DISP_RANK", "[displayed_rank]")
return str
/obj/machinery/announcement_system/proc/announce(message_type, user, rank, list/channels)
/obj/machinery/announcement_system/proc/announce(message_type, user, rank, displayed_rank, list/channels)
if(!is_operational())
return
var/message
if(message_type == "ARRIVAL" && arrivalToggle)
message = CompileText(arrival, user, rank)
message = CompileText(arrival, user, rank, displayed_rank)
else if(message_type == "NEWHEAD" && newheadToggle)
message = CompileText(newhead, user, rank)
message = CompileText(newhead, user, rank, displayed_rank)
else if(message_type == "CRYOSTORAGE")
message = CompileText(cryostorage, user, rank)
message = CompileText(cryostorage, user, rank, displayed_rank)
else if(message_type == "ARRIVALS_BROKEN")
message = "The arrivals shuttle has been damaged. Docking for repairs..."
+7 -5
View File
@@ -43,7 +43,7 @@
/obj/machinery/door/airlock
name = "airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/public.dmi' //GS13 change (perspective sprites)
icon = 'GainStation13/icons/obj/doors/airlocks/station/public.dmi' //GS13 Edit: perspective sprites
icon_state = "closed"
max_integrity = 300
var/normal_integrity = AIRLOCK_INTEGRITY_N
@@ -87,8 +87,10 @@
var/previous_airlock = /obj/structure/door_assembly //what airlock assembly mineral plating was applied to
var/wiretypepath = /datum/wires/airlock // which set of per round randomized wires this airlock type has.
var/airlock_material //material of inner filling; if its an airlock with glass, this should be set to "glass"
//GS13 Edit Start: perspective sprites
var/overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi'
var/note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi' //Used for papers and photos pinned to the airlock
//GS13 End
var/cyclelinkeddir = 0
var/obj/machinery/door/airlock/cyclelinkedairlock
@@ -611,22 +613,22 @@
/obj/machinery/door/airlock/proc/check_unres() //unrestricted sides. This overlay indicates which directions the player can access even without an ID
if(hasPower() && unres_sides)
if(unres_sides & NORTH)
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n") //layer=src.layer+1
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n") //layer=src.layer+1 //GS13 Edit: perspective sprites
I.pixel_y = 32
set_light(l_range = 2, l_power = 1)
add_overlay(I)
if(unres_sides & SOUTH)
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s") //layer=src.layer+1
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s") //layer=src.layer+1 //GS13 Edit: perspective sprites
I.pixel_y = -32
set_light(l_range = 2, l_power = 1)
add_overlay(I)
if(unres_sides & EAST)
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e") //layer=src.layer+1
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e") //layer=src.layer+1 //GS13 Edit: perspective sprites
I.pixel_x = 32
set_light(l_range = 2, l_power = 1)
add_overlay(I)
if(unres_sides & WEST)
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w") //layer=src.layer+1
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w") //layer=src.layer+1 //GS13 Edit: perspective sprites
I.pixel_x = -32
set_light(l_range = 2, l_power = 1)
add_overlay(I)
+56 -58
View File
@@ -2,25 +2,23 @@
Station Airlocks Regular
*/
//GS13 - changed most of these airlock sprite paths to use perspective-oriented airlocks
/obj/machinery/door/airlock/abandoned
abandoned = TRUE
/obj/machinery/door/airlock/command
icon = 'GainStation13/icons/obj/doors/airlocks/station/command.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/command.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_com
wiretypepath = /datum/wires/airlock/command
normal_integrity = 450
/obj/machinery/door/airlock/security
icon = 'GainStation13/icons/obj/doors/airlocks/station/security.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/security.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_sec
wiretypepath = /datum/wires/airlock/security
normal_integrity = 450
/obj/machinery/door/airlock/engineering
icon = 'GainStation13/icons/obj/doors/airlocks/station/engineering.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/engineering.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_eng
wiretypepath = /datum/wires/airlock/engineering
@@ -28,13 +26,13 @@
abandoned = TRUE
/obj/machinery/door/airlock/medical
icon = 'GainStation13/icons/obj/doors/airlocks/station/medical.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/medical.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_med
wiretypepath = /datum/wires/airlock/medical
/obj/machinery/door/airlock/maintenance
name = "maintenance access"
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_mai
normal_integrity = 250
@@ -43,18 +41,18 @@
/obj/machinery/door/airlock/maintenance/external
name = "external airlock access"
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_extmai
/obj/machinery/door/airlock/mining
name = "mining airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/mining.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/mining.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_min
wiretypepath = /datum/wires/airlock/cargo
/obj/machinery/door/airlock/atmos
name = "atmospherics airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/atmos.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/atmos.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_atmo
wiretypepath = /datum/wires/airlock/engineering
@@ -62,22 +60,22 @@
abandoned = TRUE
/obj/machinery/door/airlock/research
icon = 'GainStation13/icons/obj/doors/airlocks/station/research.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/research.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_research
wiretypepath = /datum/wires/airlock/science
/obj/machinery/door/airlock/freezer
name = "freezer airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/freezer.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/freezer.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_fre
/obj/machinery/door/airlock/science
icon = 'GainStation13/icons/obj/doors/airlocks/station/science.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/science.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_science
wiretypepath = /datum/wires/airlock/science
/obj/machinery/door/airlock/virology
icon = 'GainStation13/icons/obj/doors/airlocks/station/virology.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/virology.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_viro
wiretypepath = /datum/wires/airlock/medical
@@ -181,7 +179,7 @@
/obj/machinery/door/airlock/gold
name = "gold airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/gold.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/gold.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_gold
/obj/machinery/door/airlock/gold/glass
@@ -190,7 +188,7 @@
/obj/machinery/door/airlock/silver
name = "silver airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/silver.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/silver.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_silver
/obj/machinery/door/airlock/silver/glass
@@ -199,7 +197,7 @@
/obj/machinery/door/airlock/diamond
name = "diamond airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/diamond.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/diamond.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_diamond
normal_integrity = 1000
explosion_block = 2
@@ -211,7 +209,7 @@
/obj/machinery/door/airlock/uranium
name = "uranium airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/uranium.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/uranium.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_uranium
var/last_event = 0
@@ -233,7 +231,7 @@
/obj/machinery/door/airlock/plasma
name = "plasma airlock"
desc = "No way this can end badly."
icon = 'GainStation13/icons/obj/doors/airlocks/station/plasma.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/plasma.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_plasma
/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
@@ -274,7 +272,7 @@
/obj/machinery/door/airlock/bananium
name = "bananium airlock"
desc = "Honkhonkhonk"
icon = 'GainStation13/icons/obj/doors/airlocks/station/bananium.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/bananium.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_bananium
doorOpen = 'sound/items/bikehorn.ogg'
@@ -284,7 +282,7 @@
/obj/machinery/door/airlock/sandstone
name = "sandstone airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_sandstone
/obj/machinery/door/airlock/sandstone/glass
@@ -293,7 +291,7 @@
/obj/machinery/door/airlock/wood
name = "wooden airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/station/wood.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/wood.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_wood
/obj/machinery/door/airlock/wood/glass
@@ -303,8 +301,8 @@
/obj/machinery/door/airlock/titanium
name = "shuttle airlock"
assemblytype = /obj/structure/door_assembly/door_assembly_titanium
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi' //GS13 Edit: perspective sprites
normal_integrity = 400
/obj/machinery/door/airlock/titanium/glass
@@ -314,8 +312,8 @@
/obj/machinery/door/airlock/bronze
name = "bronze airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_bronze
/obj/machinery/door/airlock/bronze/seethru
@@ -329,8 +327,8 @@
*/
/obj/machinery/door/airlock/public
icon = 'GainStation13/icons/obj/doors/airlocks/station2/glass.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station2/glass.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_public
/obj/machinery/door/airlock/public/glass
@@ -358,9 +356,9 @@
/obj/machinery/door/airlock/external
name = "external airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/external/external.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/external/external.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_ext
/obj/machinery/door/airlock/external/glass
@@ -373,16 +371,16 @@
*/
/obj/machinery/door/airlock/centcom //Use grunge as a station side version, as these have special effects related to them via phobias and such.
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_centcom
normal_integrity = 1000
security_level = 6
explosion_block = 2
/obj/machinery/door/airlock/grunge
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_grunge
/obj/machinery/door/airlock/grunge/abandoned
@@ -395,8 +393,8 @@
/obj/machinery/door/airlock/vault
name = "vault door"
icon = 'GainStation13/icons/obj/doors/airlocks/vault/vault.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/vault/vault.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_vault
wiretypepath = /datum/wires/airlock/secure
explosion_block = 2
@@ -410,16 +408,16 @@
/obj/machinery/door/airlock/hatch
name = "airtight hatch"
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_hatch
/obj/machinery/door/airlock/maintenance_hatch
name = "maintenance hatch"
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_mhatch
/obj/machinery/door/airlock/maintenance_hatch/abandoned
@@ -432,8 +430,8 @@
/obj/machinery/door/airlock/highsecurity
name = "high tech security airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity
explosion_block = 2
normal_integrity = 500
@@ -447,8 +445,8 @@
/obj/machinery/door/airlock/shuttle
name = "shuttle airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_shuttle
/obj/machinery/door/airlock/shuttle/glass
@@ -458,10 +456,10 @@
/obj/machinery/door/airlock/abductor
name = "alien airlock"
desc = "With humanity's current technological level, it could take years to hack this advanced airlock... or maybe we should give a screwdriver a try?"
icon = 'GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_abductor
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
damage_deflection = 30
explosion_block = 3
hackProof = TRUE
@@ -476,8 +474,8 @@
/obj/machinery/door/airlock/cult
name = "cult airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_cult
hackProof = TRUE
aiControlDisabled = 1
@@ -526,8 +524,8 @@
return FALSE
/obj/machinery/door/airlock/cult/proc/conceal()
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi' //GS13 Edit: perspective sprites
name = "airlock"
desc = "It opens and closes."
stealthy = TRUE
@@ -558,8 +556,8 @@
friendly = TRUE
/obj/machinery/door/airlock/cult/unruned
icon = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi' //GS13 Edit: perspective sprites
assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned
openingoverlaytype = /obj/effect/temp_visual/cult/door/unruned
@@ -701,8 +699,8 @@
/obj/machinery/door/airlock/glass_large
name = "large glass airlock"
icon = 'GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi'
overlays_file = 'GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi'
icon = 'GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi' //GS13 Edit: perspective sprites
overlays_file = 'GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi' //GS13 Edit: perspective sprites
opacity = 0
assemblytype = null
glass = TRUE
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/machinery/door/poddoor
name = "blast door"
desc = "A heavy duty blast door that opens mechanically."
icon = 'GainStation13/icons/obj/doors/blastdoor.dmi' //GS13
icon = 'GainStation13/icons/obj/doors/blastdoor.dmi' //GS13 Edit: perspective sprites
icon_state = "closed"
var/id = 1
layer = BLASTDOOR_LAYER
+4 -4
View File
@@ -2,7 +2,7 @@
gender = PLURAL
name = "shutters"
desc = "Mechanical metal shutters operated by a button with a magnetic seal, keeping them airtight."
icon = 'GainStation13/icons/obj/doors/shutters.dmi' //GS13
icon = 'icons/obj/doors/shutters.dmi'
layer = SHUTTER_LAYER
closingLayer = SHUTTER_LAYER
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 75, BOMB = 25, BIO = 100, RAD = 100, FIRE = 100, ACID = 70)
@@ -22,7 +22,7 @@
/obj/machinery/door/poddoor/shutters/old
name = "strong shutters"
desc = "These shutters have an armoured frame; it looks like plasteel. These shutters look robust enough to survive explosions."
icon = 'GainStation13/icons/obj/doors/shutters_old.dmi' //GS13
icon = 'icons/obj/doors/shutters_old.dmi'
icon_state = "closed"
armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 75, BOMB = 30, BIO = 100, RAD = 100, FIRE = 100, ACID = 70)
max_integrity = 300
@@ -37,7 +37,7 @@
/obj/machinery/door/poddoor/shutters/radiation
name = "radiation shutters"
desc = "Lead-lined shutters painted yellow with a radioactive hazard symbol on it. Blocks out most radiation"
icon = 'GainStation13/icons/obj/doors/shutters_radiation.dmi' //GS13
icon = 'icons/obj/doors/shutters_radiation.dmi'
icon_state = "closed"
rad_insulation = 0.2
@@ -60,7 +60,7 @@
/obj/machinery/door/poddoor/shutters/window
name = "windowed shutters"
desc = "Mechanical shutters that have some form of plastic window in them, allowing you to see through the shutters at all times."
icon = 'GainStation13/icons/obj/doors/shutters_window.dmi' //GS13
icon = 'icons/obj/doors/shutters_window.dmi'
icon_state = "closed"
opacity = 0
glass = 1
@@ -277,24 +277,26 @@
icon_state = "salt_pile"
gender = NEUTER
/obj/effect/decal/cleanable/glitter //GS13 - changed glitters to more subtle variants
/obj/effect/decal/cleanable/glitter
name = "generic glitter pile"
desc = "The herpes of arts and crafts."
icon = 'GainStation13/icons/effects/atmospherics.dmi'
icon_state = "glitter"
icon = 'icons/effects/atmospherics.dmi'
gender = NEUTER
mergeable_decal = TRUE
persistent = FALSE
/obj/effect/decal/cleanable/glitter/pink
name = "pink glitter"
icon_state = "plasma_old"
color = "#9e0089"
/obj/effect/decal/cleanable/glitter/white
name = "white glitter"
icon_state = "nitrous_oxide_old"
/obj/effect/decal/cleanable/glitter/blue
name = "blue glitter"
icon_state = "freon_old"
color = "#2dd6ff"
/obj/effect/decal/cleanable/plasma
+22
View File
@@ -38,6 +38,7 @@ RLD
var/ammo_sections = 10 //amount of divisions in the ammo indicator overlay/number of ammo indicator states
var/custom_range = 7
var/upgrade = FALSE
var/airlock_dir = 1 //GS13 - airlock direction function
/obj/item/construction/Initialize(mapload)
. = ..()
@@ -283,6 +284,23 @@ RLD
//Not scaling these down to button size because they look horrible then, instead just bumping up radius.
return MA
/obj/item/construction/rcd/proc/change_airlock_direction(mob/user) //GS13 - change airlock direction
if(!user)
return
var/list/airlock_dirs = list(
"North/South" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlocknorthsouth"),
"East/West" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlockeastwest")
)
var/airlockdirs = show_radial_menu(user, src, airlock_dirs, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
if(!check_menu(user))
return
switch(airlockdirs)
if("North/South")
airlock_dir = 1
if("East/West")
airlock_dir = 4
/obj/item/construction/rcd/proc/change_computer_dir(mob/user)
if(!user)
return
@@ -488,6 +506,7 @@ RLD
if(mode == RCD_AIRLOCK)
choices += list(
"Change Access" = image(icon = 'icons/mob/radial.dmi', icon_state = "access"),
"Change Direction" = image(icon = 'GainStation13/icons/mob/radial.dmi', icon_state = "airlockrotation"), //GS13 - adding airlock rotation
"Change Airlock Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlocktype")
)
else if(mode == RCD_WINDOWGRILLE)
@@ -515,6 +534,9 @@ RLD
if("Change Access")
change_airlock_access(user)
return
if("Change Direction") //GS13 - adding airlock direction in RCD
change_airlock_direction(user)
return
if("Change Airlock Type")
change_airlock_setting(user)
return
+9 -1
View File
@@ -73,7 +73,7 @@ GENETICS SCANNER
/obj/item/healthanalyzer
name = "health analyzer"
icon = 'icons/obj/device.dmi'
icon = 'GainStation13/icons/obj/device.dmi' //GS13 - better sprite
icon_state = "health"
item_state = "healthanalyzer"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
@@ -407,6 +407,13 @@ GENETICS SCANNER
msg += "<span class='info'>Base Species: [H.spec_trait_examine_font()][S.name]</font></span>\n"
if(mutant)
msg += "<span class='info'>Subject has mutations present.</span>\n"
//GS13 EDIT START
if(H.fatness)
msg += span_info("Subject weighs [H.calculate_weight_in_pounds()] pounds ([H.fatness] BFI.)")
msg += "\n"
//GS13 EEDIT END
msg += "<span class='info'>Body temperature: [round(M.bodytemperature-T0C,0.1)] &deg;C ([round(M.bodytemperature*1.8-459.67,0.1)] &deg;F)</span>\n"
// Time of death
@@ -538,6 +545,7 @@ GENETICS SCANNER
/obj/item/healthanalyzer/advanced
name = "advanced health analyzer"
icon = 'GainStation13/icons/obj/device.dmi' //GS13 - better sprite
icon_state = "health_adv"
desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy."
advanced = TRUE
+1 -1
View File
@@ -388,7 +388,7 @@
name = "bluespace tray"
icon_state = "bluespace_tray"
desc = "A tray created using bluespace technology to fit more food on it."
max_items = 30 // far more items
max_items = 100 //GS13 - we loooove our mountains of food here
custom_materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500)
/*
-5
View File
@@ -291,11 +291,6 @@
icon = "thehive"
desc = "Comb in for some sweet drinks! Not known for serving any sappy drink."
/datum/barsign/the_busted_belt //gs13
name = "The Busted Belt"
icon = "thebustedbelt"
desc = "GATO is not liable for any pieces of broken wardrobe." //GS13 - Nanotrasen to GATO
/datum/barsign/hiddensigns
hidden = TRUE
@@ -160,7 +160,7 @@
buildstacktype = null //Custom mats handle this
/obj/structure/chair/wood
icon = 'GainStation13/icons/obj/chairs.dmi'
icon = 'GainStation13/icons/obj/chairs.dmi' //GS13 Edit: Our sprites
icon_state = "wooden_chair"
name = "wooden chair"
desc = "Old is never too old to not be in fashion."
@@ -540,7 +540,7 @@
/obj/item/chair/wood
name = "wooden chair"
icon = 'GainStation13/icons/obj/chairs.dmi'
icon = 'GainStation13/icons/obj/chairs.dmi' //GS13 Edit: Our sprites
icon_state = "wooden_chair_toppled"
item_state = "woodenchair"
resistance_flags = FLAMMABLE
@@ -11,7 +11,7 @@
new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src)
new /obj/item/clothing/head/hardhat/white(src)
new /obj/item/clothing/head/hardhat/weldhat/white(src)
new /obj/item/clothing/gloves/color/yellow(src)
new /obj/item/clothing/gloves/color/yellow/ce(src)
new /obj/item/tank/jetpack/suit(src)
new /obj/item/cartridge/ce(src)
new /obj/item/radio/headset/heads/ce(src)
+143 -3
View File
@@ -660,6 +660,53 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
wave_explosion_block = EXPLOSION_BLOCK_EXTREME
wave_explosion_multiply = EXPLOSION_BLOCK_EXTREME
glass_type = /obj/item/stack/sheet/plasmarglass
canSmoothWith = list(
/turf/closed/wall,
/turf/closed/wall/r_wall,
/obj/structure/falsewall,
/obj/structure/falsewall/brass,
/obj/structure/falsewall/reinforced,
/turf/closed/wall/rust,
/turf/closed/wall/r_wall/rust,
/turf/closed/wall/clockwork,
/turf/closed/indestructible/riveted/,
/turf/closed/indestructible/riveted/uranium,
/obj/structure/window/fulltile,
/obj/structure/window/reinforced/fulltile,
/obj/structure/window/reinforced/tinted/fulltile,
/obj/machinery/door,
/obj/machinery/door/airlock/,
/obj/machinery/door/airlock/mining,
/obj/machinery/door/airlock/mining/glass,
/obj/machinery/door/airlock/medical,
/obj/machinery/door/airlock/medical/glass,
/obj/machinery/door/airlock/public,
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/airlock/research,
/obj/machinery/door/airlock/research/glass,
/obj/machinery/door/airlock/maintenance,
/obj/machinery/door/airlock/maintenance/glass,
/obj/machinery/door/airlock/command/,
/obj/machinery/door/airlock/command/glass,
/obj/machinery/door/airlock/engineering,
/obj/machinery/door/airlock/engineering/glass,
/obj/machinery/door/airlock/engineering/abandoned,
/obj/machinery/door/airlock/security,
/obj/machinery/door/airlock/security/glass,
/obj/machinery/door/airlock/maintenance/abandoned,
/obj/machinery/door/poddoor/shutters/preopen,
/obj/machinery/door/poddoor/shutters,
/obj/machinery/door/window/eastright,
/obj/machinery/door/window/eastleft,
/obj/machinery/door/window/northleft,
/obj/machinery/door/window/northright,
/obj/machinery/door/airlock/external,
/obj/machinery/door/airlock,
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
/obj/structure/window/plasma/reinforced/spawner/east
dir = EAST
@@ -740,7 +787,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,)
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
glass_amount = 2
@@ -801,7 +848,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,)
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
glass_amount = 2
@@ -817,6 +864,53 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
flags_1 = PREVENT_CLICK_UNDER_1
smooth = SMOOTH_TRUE
glass_amount = 2
canSmoothWith = list(
/turf/closed/wall,
/turf/closed/wall/r_wall,
/obj/structure/falsewall,
/obj/structure/falsewall/brass,
/obj/structure/falsewall/reinforced,
/turf/closed/wall/rust,
/turf/closed/wall/r_wall/rust,
/turf/closed/wall/clockwork,
/turf/closed/indestructible/riveted/,
/turf/closed/indestructible/riveted/uranium,
/obj/structure/window/fulltile,
/obj/structure/window/reinforced/fulltile,
/obj/structure/window/reinforced/tinted/fulltile,
/obj/machinery/door,
/obj/machinery/door/airlock/,
/obj/machinery/door/airlock/mining,
/obj/machinery/door/airlock/mining/glass,
/obj/machinery/door/airlock/medical,
/obj/machinery/door/airlock/medical/glass,
/obj/machinery/door/airlock/public,
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/airlock/research,
/obj/machinery/door/airlock/research/glass,
/obj/machinery/door/airlock/maintenance,
/obj/machinery/door/airlock/maintenance/glass,
/obj/machinery/door/airlock/command/,
/obj/machinery/door/airlock/command/glass,
/obj/machinery/door/airlock/engineering,
/obj/machinery/door/airlock/engineering/glass,
/obj/machinery/door/airlock/engineering/abandoned,
/obj/machinery/door/airlock/security,
/obj/machinery/door/airlock/security/glass,
/obj/machinery/door/airlock/maintenance/abandoned,
/obj/machinery/door/poddoor/shutters/preopen,
/obj/machinery/door/poddoor/shutters,
/obj/machinery/door/window/eastright,
/obj/machinery/door/window/eastleft,
/obj/machinery/door/window/northleft,
/obj/machinery/door/window/northright,
/obj/machinery/door/airlock/external,
/obj/machinery/door/airlock,
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
/obj/structure/window/plasma/reinforced/fulltile/unanchored
anchored = FALSE
@@ -875,7 +969,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,)
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
level = 3
glass_amount = 2
@@ -1046,6 +1140,52 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
level = 3
glass_type = /obj/item/stack/sheet/plastitaniumglass
glass_amount = 2
canSmoothWith = list(
/turf/closed/wall,
/turf/closed/wall/r_wall,
/obj/structure/falsewall,
/obj/structure/falsewall/brass,
/obj/structure/falsewall/reinforced,
/turf/closed/wall/rust,
/turf/closed/wall/r_wall/rust,
/turf/closed/wall/clockwork,
/turf/closed/indestructible/riveted/,
/turf/closed/indestructible/riveted/uranium,
/obj/structure/window/fulltile,
/obj/structure/window/reinforced/fulltile,
/obj/structure/window/reinforced/tinted/fulltile,
/obj/machinery/door,
/obj/machinery/door/airlock/,
/obj/machinery/door/airlock/mining,
/obj/machinery/door/airlock/mining/glass,
/obj/machinery/door/airlock/medical,
/obj/machinery/door/airlock/medical/glass,
/obj/machinery/door/airlock/public,
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/airlock/research,
/obj/machinery/door/airlock/research/glass,
/obj/machinery/door/airlock/maintenance,
/obj/machinery/door/airlock/maintenance/glass,
/obj/machinery/door/airlock/command/,
/obj/machinery/door/airlock/command/glass,
/obj/machinery/door/airlock/engineering,
/obj/machinery/door/airlock/engineering/glass,
/obj/machinery/door/airlock/engineering/abandoned,
/obj/machinery/door/airlock/security,
/obj/machinery/door/airlock/security/glass,
/obj/machinery/door/airlock/maintenance/abandoned,
/obj/machinery/door/poddoor/shutters/preopen,
/obj/machinery/door/poddoor/shutters,
/obj/machinery/door/window/eastright,
/obj/machinery/door/window/eastleft,
/obj/machinery/door/window/northleft,
/obj/machinery/door/window/northright,
/obj/machinery/door/airlock/external,
/obj/machinery/door/airlock,
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
/obj/structure/window/plastitanium/unanchored
anchored = FALSE
+5 -1
View File
@@ -203,7 +203,10 @@
var/old_icon = icon_regular_floor
var/old_dir = dir
var/turf/open/floor/W = ..()
W.icon_regular_floor = old_icon
//GS13 EDIT START
if(!(W.type in subtypesof(/turf/open/floor/plasteel)))
W.icon_regular_floor = old_icon
//GS13 EDIT END
W.setDir(old_dir)
W.update_icon()
return W
@@ -311,6 +314,7 @@
to_chat(user, "<span class='notice'>You build an airlock.</span>")
var/obj/machinery/door/airlock/A = new the_rcd.airlock_type(src)
A.setDir(the_rcd.airlock_dir) //GS13 - directional airlocks edit
A.electronics = new/obj/item/electronics/airlock(A)
if(the_rcd.conf_access)
+47 -1
View File
@@ -186,7 +186,53 @@
/turf/closed/wall/rust
name = "rusted wall"
desc = "A rusted metal wall."
icon = 'icons/turf/walls/rusty_wall.dmi'
icon = 'GainStation13/icons/turf/walls/rusty_wall.dmi' //GS13 - perspective walls
canSmoothWith = list(
/turf/closed/wall,
/turf/closed/wall/r_wall,
/obj/structure/falsewall,
/obj/structure/falsewall/brass,
/obj/structure/falsewall/reinforced,
/turf/closed/wall/rust,
/turf/closed/wall/r_wall/rust,
/turf/closed/wall/clockwork,
/turf/closed/indestructible/riveted/,
/turf/closed/indestructible/riveted/uranium,
/obj/structure/window/fulltile,
/obj/structure/window/reinforced/fulltile,
/obj/structure/window/reinforced/tinted/fulltile,
/obj/machinery/door,
/obj/machinery/door/airlock/,
/obj/machinery/door/airlock/mining,
/obj/machinery/door/airlock/mining/glass,
/obj/machinery/door/airlock/medical,
/obj/machinery/door/airlock/medical/glass,
/obj/machinery/door/airlock/public,
/obj/machinery/door/airlock/public/glass,
/obj/machinery/door/airlock/research,
/obj/machinery/door/airlock/research/glass,
/obj/machinery/door/airlock/maintenance,
/obj/machinery/door/airlock/maintenance/glass,
/obj/machinery/door/airlock/command/,
/obj/machinery/door/airlock/command/glass,
/obj/machinery/door/airlock/engineering,
/obj/machinery/door/airlock/engineering/glass,
/obj/machinery/door/airlock/engineering/abandoned,
/obj/machinery/door/airlock/security,
/obj/machinery/door/airlock/security/glass,
/obj/machinery/door/airlock/maintenance/abandoned,
/obj/machinery/door/poddoor/shutters/preopen,
/obj/machinery/door/poddoor/shutters,
/obj/machinery/door/window/eastright,
/obj/machinery/door/window/eastleft,
/obj/machinery/door/window/northleft,
/obj/machinery/door/window/northright,
/obj/machinery/door/airlock/external,
/obj/machinery/door/airlock,
/obj/machinery/door/airlock/hatch,
/obj/machinery/door/airlock/engineering/glass/critical,
/obj/machinery/door/airlock/atmos,
/obj/machinery/door/airlock/highsecurity,) //GS13 - directional wall sprites will smooth with windows/airlocks
hardness = 45
/turf/closed/wall/rust/rust_heretic_act()
@@ -4,7 +4,7 @@
/datum/objective/abductee/random
/datum/objective/abductee/random/New()
explanation_text = pick(world.file2list("strings/abductee_objectives.txt"))
explanation_text = pick(world.file2list("GainStation13/strings/abductee_objectives.txt")) //GS13 Edit: Nanotrasen to GATO
/datum/objective/abductee/steal
explanation_text = "Steal all"
@@ -3,7 +3,7 @@
name = "Spawn Sentient Disease"
typepath = /datum/round_event/ghost_role/sentient_disease
weight = 7
max_occurrences = 1
max_occurrences = 0 //GS13 - removed midround pseudo-antags
min_players = 5
category = EVENT_CATEGORY_HEALTH
description = "Spawns a sentient disease, who wants to infect as many people as possible."
@@ -4,7 +4,7 @@
name = "Spawn Revenant" // Did you mean 'griefghost'?
typepath = /datum/round_event/ghost_role/revenant
weight = 7
max_occurrences = 1
max_occurrences = 0 //GS13 tweak - no antags, thanks
min_players = 5
category = EVENT_CATEGORY_ENTITIES
description = "Spawns an angry, soul sucking ghost."
@@ -2,7 +2,7 @@
name = "Spawn Slaughter Demon"
typepath = /datum/round_event/ghost_role/slaughter
weight = 1 //Very rare
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
earliest_start = 1 HOURS
min_players = 20
category = EVENT_CATEGORY_ENTITIES
@@ -2,7 +2,7 @@
name = "Spawn Swarmer Shell"
typepath = /datum/round_event/spawn_swarmer
weight = 7
max_occurrences = 1 //Only once okay fam
max_occurrences = 0 //GS13 - no antags, thanks
earliest_start = 30 MINUTES
min_players = 35
dynamic_should_hijack = TRUE
+1
View File
@@ -32,6 +32,7 @@
var/obj/item/equipment //for fun stuff that goes on the gentials/maybe rings down the line
var/dontlist = FALSE
var/nochange = FALSE //stops people changing visablity.
var/starting_size //GS13 EDIT
/obj/item/organ/genital/Initialize(mapload, do_update = TRUE)
+2 -1
View File
@@ -75,7 +75,7 @@
//this is far too lewd wah
/obj/item/organ/genital/breasts/modify_size(modifier, min = -INFINITY, max = INFINITY)
var/new_value = clamp(cached_size + modifier, min, max)
var/new_value = clamp(cached_size + modifier, starting_size, max) //GS13 EDIT
if(new_value == cached_size)
return
prev_size = cached_size
@@ -115,6 +115,7 @@
else
color = "#[D.features["breasts_color"]]"
size = D.features["breasts_size"]
starting_size = D.features["breasts_size"]
shape = D.features["breasts_shape"]
if(!D.features["breasts_producing"])
genital_flags &= ~ (GENITAL_FUID_PRODUCTION|CAN_CLIMAX_WITH|CAN_MASTURBATE_WITH)
+5 -2
View File
@@ -16,7 +16,7 @@
layer_index = BUTT_LAYER_INDEX
/obj/item/organ/genital/butt/modify_size(modifier, min = -INFINITY, max = BUTT_SIZE_MAX)
var/new_value = clamp(size_cached + modifier, min, max)
var/new_value = clamp(size_cached + modifier, starting_size, max) //GS13 EDIT
if(new_value == size_cached)
return
prev_size = size_cached
@@ -47,6 +47,8 @@
//Reflect the size of dat ass on examine.
switch(round(size))
if(0)
size_name = "nonexistent" // GS13 EDIT
if(1)
size_name = "average"
if(2)
@@ -58,7 +60,7 @@
if(5)
size_name = pick("massive","extreme","enormous","very generous","humongous","big bubbly","dummy thicc")
else
size_name = "nonexistent"
size_name = "oversized" //GS13 edit
desc = "You see a [lowershape] of [size_name] asscheeks."
@@ -82,5 +84,6 @@
else
color = "#[D.features["butt_color"]]"
size = D.features["butt_size"]
starting_size = D.features["butt_size"] // GS13 EDIT
prev_size = size
toggle_visibility(D.features["butt_visibility"], FALSE)
+5 -5
View File
@@ -474,11 +474,11 @@
uniform = /obj/item/clothing/under/pants/youngfolksjeans
id = /obj/item/card/id
/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
return
H.dna.add_mutation(STONER)
// /datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
// ..()
// if(visualsOnly)
// return
// H.dna.add_mutation(STONER) //GS13 - removes the stoner trait, it makes the role almost unplayable
/////////////////Officers+Nanotrasen Security//////////////////////
+31 -2
View File
@@ -102,6 +102,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/pda_style = MONO
var/pda_color = "#808000"
var/pda_skin = PDA_SKIN_ALT
var/list/alt_titles_preferences = list()
var/uses_glasses_colour = 0
@@ -1409,6 +1410,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "This preference functions similar to the one before but allows for items with more drastic effects. <b>Do not enable this if you aren't okay with more drastic things happening to your character.</b><BR>"
dat += "<b>Extreme Fatness Vulnerability:</b><a href='?_src_=prefs;preference=extreme_fatness_vulnerable'>[extreme_fatness_vulnerable == TRUE ? "Enabled" : "Disabled"]</a><BR>"
dat += "<br></br>"
dat += "<b>Object TF:</b><a href='?_src_=prefs;preference=object_tf'>[object_tf == TRUE ? "Enabled" : "Disabled"]</a><BR>"
dat += "<br></br>"
dat += "<b>Extreme Weight Gain (Sprite Size scales with weight):</b><a href='?_src_=prefs;preference=weight_gain_extreme'>[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]</a><BR>"
dat += "<b>Persistent Fat (endround/cryo weight becomes your new start weight):</b><a href='?_src_=prefs;preference=weight_gain_persistent'>[weight_gain_persistent == TRUE ? "Enabled" : "Disabled"]</a><BR>"
dat += "<b>Permanent Weight (hard to remove and persistent weight):</b><a href='?_src_=prefs;preference=weight_gain_permanent'>[weight_gain_permanent == TRUE ? "Enabled" : "Disabled"]</a><BR>"
@@ -1586,6 +1589,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
HTML += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
var/rank = job.title
var/displayed_rank = rank
if(job.alt_titles.len && (rank in alt_titles_preferences))
displayed_rank = alt_titles_preferences[rank]
lastJob = job
if(jobban_isbanned(user, rank))
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;bancheck=[rank]'> BANNED</a></td></tr>"
@@ -1607,10 +1613,15 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if((job_preferences["[SSjob.overflow_role]"] == JP_LOW) && (rank != SSjob.overflow_role) && !jobban_isbanned(user, SSjob.overflow_role))
HTML += "<font color=orange>[rank]</font></td><td></td></tr>"
continue
var/rank_title_line = "[displayed_rank]"
if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs
HTML += "<b><span class='dark'>[rank]</span></b>"
rank_title_line = "<b>[rank_title_line]</b>"
if(job.alt_titles.len)
rank_title_line = "<a href='?_src_=prefs;preference=job;task=alt_title;job_title=[job.title]'>[rank_title_line]</a>"
else
HTML += "<span class='dark'>[rank]</span>"
rank_title_line = "<span class='dark'>[rank_title_line]</span>" //Make it dark if we're not adding a button for alt titles
HTML += rank_title_line
HTML += "</td><td width='40%'>"
@@ -1864,6 +1875,21 @@ GLOBAL_LIST_EMPTY(preferences_datums)
SetChoices(user)
if("setJobLevel")
UpdateJobPreference(user, href_list["text"], text2num(href_list["level"]))
if("alt_title")
var/job_title = href_list["job_title"]
var/titles_list = list(job_title)
var/datum/job/J = SSjob.GetJob(job_title)
for(var/i in J.alt_titles)
titles_list += i
var/chosen_title
chosen_title = input(user, "Choose your job's title:", "Job Preference") as null|anything in titles_list
if(chosen_title)
if(chosen_title == job_title)
if(alt_titles_preferences[job_title])
alt_titles_preferences.Remove(job_title)
else
alt_titles_preferences[job_title] = chosen_title
SetChoices(user)
else
SetChoices(user)
return TRUE
@@ -3422,6 +3448,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("extreme_fatness_vulnerable")
extreme_fatness_vulnerable = !extreme_fatness_vulnerable
if("object_tf")
object_tf = !object_tf
if("blueberry_inflation")
blueberry_inflation = !blueberry_inflation
if("max_fatness")
+11 -1
View File
@@ -951,9 +951,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["chair_breakage"] >> chair_breakage
S["fatness_vulnerable"] >> fatness_vulnerable
S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable
S["object_tf"] >> object_tf
S["blueberry_inflation"] >> blueberry_inflation
S["feature_breasts_fluid"] >> features["breasts_fluid"]
S["alt_titles_preferences"] >> alt_titles_preferences
//gear loadout
if(istext(S["loadout"]))
loadout_data = safe_json_decode(S["loadout"])
@@ -1144,6 +1145,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
loadout_slot = sanitize_num_clamp(loadout_slot, 1, MAXIMUM_LOADOUT_SAVES, 1, TRUE)
alt_titles_preferences = SANITIZE_LIST(alt_titles_preferences)
if(SSjob)
for(var/datum/job/job in SSjob.occupations)
if(alt_titles_preferences[job.title])
if(!(alt_titles_preferences[job.title] in job.alt_titles))
alt_titles_preferences.Remove(job.title)
cit_character_pref_load(S)
return TRUE
@@ -1236,6 +1244,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["chair_breakage"], chair_breakage)
WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable)
WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable)
WRITE_FILE(S["object_tf"], object_tf)
WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
WRITE_FILE(S["feature_breasts_fluid"], features["breasts_fluid"])
@@ -1301,6 +1310,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_belly_color"], features["belly_color"])
WRITE_FILE(S["feature_hide_belly"], features["hide_belly"])
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Abductors"
typepath = /datum/round_event/ghost_role/abductor
weight = 10
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
min_players = 30
dynamic_should_hijack = TRUE
category = EVENT_CATEGORY_INVASION
+1 -1
View File
@@ -3,7 +3,7 @@
typepath = /datum/round_event/ghost_role/alien_infestation
weight = 5
min_players = 25
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
dynamic_should_hijack = TRUE
category = EVENT_CATEGORY_ENTITIES
description = "A xenomorph larva spawns on a random vent."
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/round_event_control/anomaly/anomaly_bluespace
name = "Anomaly: Bluespace"
typepath = /datum/round_event/anomaly/anomaly_bluespace
min_players = 12 //GS13 - higher pop = more likely to be solved instead of wrecking a whole dep
max_occurrences = 1
weight = 5
description = "This anomaly randomly teleports all items and mobs in a large area."
+2 -2
View File
@@ -2,8 +2,8 @@
name = "Anomaly: Pyroclastic"
typepath = /datum/round_event/anomaly/anomaly_pyro
min_players = 10 //GS13 tweak
max_occurrences = 0
min_players = 10 //GS13 Edit: tweak
max_occurrences = 0 //GS13 Edit: Disabling this for now.
weight = 20
description = "This anomaly sets things on fire, and creates a pyroclastic slime."
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/round_event_control/aurora_caelus
name = "Aurora Caelus"
typepath = /datum/round_event/aurora_caelus
max_occurrences = 2
max_occurrences = 4 //GS13 - pretty lights, why not
weight = 4
earliest_start = 20 MINUTES
category = EVENT_CATEGORY_FRIENDLY
+2 -2
View File
@@ -2,8 +2,8 @@
name = "Spontaneous Brain Trauma"
typepath = /datum/round_event/brain_trauma
weight = 25
min_players = 20 //GS13 - somewhat harmless ig
max_occurrences = 0
min_players = 20 //GS13 Edit: 8 to 20. You cant really fix this on your own if you arnt medical.
max_occurrences = 0 //GS13 Edit: Disabling this.
category = EVENT_CATEGORY_HEALTH
description = "A crewmember gains a random trauma."
+1 -1
View File
@@ -4,7 +4,7 @@
weight = 5
min_players = 15
max_occurrences = 0
max_occurrences = 0 //GS13 Edit: Disabling this for now.
category = EVENT_CATEGORY_AI
description = "Vending machines will attack people until the Patient Zero is disabled."
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/round_event_control/disease_outbreak
name = "Disease Outbreak"
typepath = /datum/round_event/disease_outbreak
max_occurrences = 0
max_occurrences = 0 //GS13 Edit: Disabling this for now.
min_players = 5
weight = 5
category = EVENT_CATEGORY_HEALTH
+3 -3
View File
@@ -1,16 +1,16 @@
/datum/round_event_control/electrical_storm
name = "Electrical Storm"
typepath = /datum/round_event/electrical_storm
earliest_start = 30 MINUTES
earliest_start = 30 MINUTES //GS13 Edit: Reducing pain for normal station ongoings.
min_players = 5
weight = 40
max_occurrences = 2
max_occurrences = 2 //GS13 Edit: Limiting this.
category = EVENT_CATEGORY_ENGINEERING
description = "Destroys all lights in a large area."
/datum/round_event/electrical_storm
var/lightsoutAmount = 1
var/lightsoutRange = 10
var/lightsoutRange = 10 //GS13 Edit: 25 down to 10
announce_when = 1
/datum/round_event/electrical_storm/announce(fake)
+2 -2
View File
@@ -1,9 +1,9 @@
/datum/round_event_control/high_priority_bounty
name = "High Priority Bounty"
typepath = /datum/round_event/high_priority_bounty
max_occurrences = 5
max_occurrences = 6 //GS13 - because why not
weight = 20
earliest_start = 10
earliest_start = 10 MINUTES
category = EVENT_CATEGORY_BUREAUCRATIC
description = "Creates bounties that are three times original worth."
+2 -2
View File
@@ -10,8 +10,8 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
/datum/round_event_control/immovable_rod
name = "Immovable Rod"
typepath = /datum/round_event/immovable_rod
min_players = 20 //GS13 - tweaked min players and occurences
max_occurrences = 2
min_players = 25 //GS13 - tweaked min players and occurences
max_occurrences = 1 //GS13 - one is enough as is
var/atom/special_target
category = EVENT_CATEGORY_SPACE
description = "The station passes through an immovable rod."
+1 -1
View File
@@ -4,7 +4,7 @@
name = "Ion Storm"
typepath = /datum/round_event/ion_storm
weight = 15
min_players = 2
min_players = 5 //GS13 - increasing pop so it's more likely someone has a chance to fix the laws
category = EVENT_CATEGORY_AI
description = "Gives the AI a new, randomized law."
+2 -1
View File
@@ -1,7 +1,8 @@
/datum/round_event_control/meteor_wave/major_dust
name = "Major Space Dust"
typepath = /datum/round_event/meteor_wave/major_dust
min_players = 8 //GS13
min_players = 10 //GS13 - do it when there's more people to fix it around
max_occurrences = 2 //GS13 - limiting the amount of it
weight = 8
description = "The station is pelted by sand."
+3 -3
View File
@@ -7,7 +7,7 @@
name = "Meteor Wave: Normal"
typepath = /datum/round_event/meteor_wave
weight = 4
min_players = 16 //GS13 - tweaked all meteor waves to nerf them a bit
min_players = 20 //GS13 - tweaked all meteor waves to nerf them a bit
max_occurrences = 2
earliest_start = 40 MINUTES
category = EVENT_CATEGORY_SPACE
@@ -87,7 +87,7 @@
typepath = /datum/round_event/meteor_wave/threatening
weight = 5
min_players = 20
max_occurrences = 1
max_occurrences = 0 //GS13 - too chaotic
earliest_start = 45 MINUTES
description = "A meteor wave with higher chance of big meteors."
@@ -100,7 +100,7 @@
typepath = /datum/round_event/meteor_wave/catastrophic
weight = 7
min_players = 25
max_occurrences = 1
max_occurrences = 0 //GS13 - too chaotic
earliest_start = 55 MINUTES
description = "A meteor wave that might summon a tunguska class meteor."
+2 -2
View File
@@ -6,8 +6,8 @@
description = "A horde of mice arrives, and perhaps even the Rat King themselves."
/datum/round_event/mice_migration
var/minimum_mice = 3
var/maximum_mice = 8
var/minimum_mice = 3 //GS13 Edit: 5 to 3, mice ravage the station in lowpop
var/maximum_mice = 8 //GS13 Edit: 15 to 8, See above.
/datum/round_event/mice_migration/announce(fake)
var/cause = pick("space-winter", "budget-cuts", "Ragnarok",
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/round_event_control/nightmare
name = "Spawn Nightmare"
typepath = /datum/round_event/ghost_role/nightmare
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
min_players = 25
dynamic_should_hijack = TRUE
category = EVENT_CATEGORY_ENTITIES
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Lone Operative"
typepath = /datum/round_event/ghost_role/operative
weight = 0 //Admin only
max_occurrences = 0 //GS13 tweak
max_occurrences = 0 //GS13 - just in case
category = EVENT_CATEGORY_INVASION
description = "A single nuclear operative assaults the station."
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Space Pirates"
typepath = /datum/round_event/pirates
weight = 8
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
min_players = 20
earliest_start = 50 MINUTES
dynamic_should_hijack = TRUE
+1
View File
@@ -3,6 +3,7 @@
typepath = /datum/round_event/portal_storm/syndicate_shocktroop
weight = 2
min_players = 20
max_occurrences = 0 //GS13 - no antags, thanks
earliest_start = 60 MINUTES
category = EVENT_CATEGORY_ENTITIES
description = "Syndicate troops pour out of portals."
+37 -30
View File
@@ -1,18 +1,18 @@
#define SNACK_ATTACK 1 //GS13
#define HIJACK_SYNDIE 2
#define RUSKY_PARTY 3
#define SPIDER_GIFT 4
#define DEPARTMENT_RESUPPLY 5
#define ANTIDOTE_NEEDED 6
#define PIZZA_DELIVERY 7
#define ITS_HIP_TO 8
#define MY_GOD_JC 9
#define DELTA_CRATES 10
#define HIJACK_SYNDIE 1
#define RUSKY_PARTY 2
#define SPIDER_GIFT 3
#define DEPARTMENT_RESUPPLY 4
#define ANTIDOTE_NEEDED 5
#define PIZZA_DELIVERY 6
#define ITS_HIP_TO 7
#define MY_GOD_JC 8
#define DELTA_CRATES 9
#define SNACK_ATTACK 10 //GS13 Add: Snack attack
/datum/round_event_control/shuttle_loan
name = "Shuttle Loan"
typepath = /datum/round_event/shuttle_loan
max_occurrences = 3
max_occurrences = 20 //GS13 Edit: increasing this because they're a fun event
earliest_start = 15 MINUTES
category = EVENT_CATEGORY_BUREAUCRATIC
description = "If cargo accepts the offer, fills the shuttle with loot and/or enemies."
@@ -26,16 +26,13 @@
var/thanks_msg = "The cargo shuttle should return in five minutes. Have some supply points for your trouble."
/datum/round_event/shuttle_loan/setup()
dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED, PIZZA_DELIVERY, ITS_HIP_TO, MY_GOD_JC)
dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED, PIZZA_DELIVERY, ITS_HIP_TO, MY_GOD_JC, SNACK_ATTACK) //GS13 Edit: Snack Attack shuttle
/datum/round_event/shuttle_loan/announce(fake)
SSshuttle.shuttle_loan = src
var/message = "Cargo: I just wanna tell you techs good luck, we are all counting on you."
var/title = "CentCom Free Real Estate"
switch(dispatch_type)
if(SNACK_ATTACK) //GS13
message = "Cargo: Our science division took couple too many samples from one the local candy biohabitats. Would you care to dispose of the unneeded specimen?"
title = "CentCom Science Division"
if(HIJACK_SYNDIE)
message = "Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache."
title = "CentCom Counter Intelligence"
@@ -66,6 +63,11 @@
message = "Cargo: We have discovered a warehouse of DELTA locked crates. We can't store any more of them at CC, can you take them for us?"
title = "CentCom Security Division"
bonus_points = 25000 //If you mess up, people die and the shuttle gets turned into swiss cheese
//GS13 Start: Snack Attack shuttle
if(SNACK_ATTACK)
message = "Cargo: Our science division took couple too many samples from one the local candy biohabitats. Would you care to dispose of the unneeded specimen?"
title = "CentCom Science Division"
//GS13 End
if(prob(50))
priority_announce(message, title)
else
@@ -85,8 +87,6 @@
SSshuttle.supply.setTimer(3000)
switch(dispatch_type)
if(SNACK_ATTACK) //GS13
SSshuttle.centcom_message += "Snack attack en route."
if(HIJACK_SYNDIE)
SSshuttle.centcom_message += "Syndicate hijack team incoming."
if(RUSKY_PARTY)
@@ -105,6 +105,10 @@
SSshuttle.centcom_message += "Live explosive ordnance incoming. Exercise extreme caution."
if(DELTA_CRATES)
SSshuttle.centcom_message += "DELTA Locked crates incoming. Exercise extreme caution."
//GS13 Start: Snack attack shuttle
if(SNACK_ATTACK)
SSshuttle.centcom_message += "Snack attack en route."
//GS13 End
/datum/round_event/shuttle_loan/tick()
if(dispatched)
@@ -131,19 +135,6 @@
var/list/shuttle_spawns = list()
switch(dispatch_type)
if(SNACK_ATTACK) //GS13
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime)
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime)
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime/creambeast)
if(prob(50))
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime/creambeast)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/chocoorange)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/chocoorange)
shuttle_spawns.Add(/obj/item/paper/fluff/chocoslime_research)
if(HIJACK_SYNDIE)
var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops]
pack.generate(pick_n_take(empty_shuttle_turfs))
@@ -270,6 +261,21 @@
var/turf/T = pick_n_take(empty_shuttle_turfs)
new /obj/structure/spider/stickyweb(T)
new /obj/effect/decal/cleanable/ash(T)
//GS13 Start: Snack Attack Shuttle
if(SNACK_ATTACK) //GS13
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime)
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime)
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime/creambeast)
if(prob(50))
shuttle_spawns.Add(/mob/living/simple_animal/hostile/feed/chocolate_slime/creambeast)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/donut/choco)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/chocoorange)
shuttle_spawns.Add(/obj/item/reagent_containers/food/snacks/chocoorange)
shuttle_spawns.Add(/obj/item/paper/fluff/chocoslime_research)
//GS13 End
var/false_positive = 0
while(shuttle_spawns.len && empty_shuttle_turfs.len)
@@ -315,3 +321,4 @@
#undef ITS_HIP_TO
#undef MY_GOD_JC
#undef DELTA_CRATES
#undef SNACK_ATTACK //GS13 Add: Snack attack
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Spawn Space Dragon"
typepath = /datum/round_event/ghost_role/space_dragon
weight = 8
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
min_players = 25
dynamic_should_hijack = TRUE
category = EVENT_CATEGORY_ENTITIES
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/round_event_control/space_ninja
name = "Spawn Space Ninja"
typepath = /datum/round_event/ghost_role/space_ninja
max_occurrences = 1
max_occurrences = 0 //GS13 - no antags, thanks
weight = 10
earliest_start = 20 MINUTES
min_players = 25
+1 -1
View File
@@ -3,7 +3,7 @@
typepath = /datum/round_event/spacevine
weight = 15
max_occurrences = 3
min_players = 18
min_players = 15 //GS13 - should be enough players
category = EVENT_CATEGORY_ENTITIES
description = "Kudzu begins to overtake the station. Might spawn man-traps."
+1 -1
View File
@@ -3,7 +3,7 @@
name = "Stray Cargo Pod"
typepath = /datum/round_event/stray_cargo
weight = 5
max_occurrences = 6
max_occurrences = 6 //GS13 - increase the amount of possible strays
earliest_start = 10 MINUTES
category = EVENT_CATEGORY_BUREAUCRATIC
description = "A pod containing a random supply crate lands on the station."
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Supernova"
typepath = /datum/round_event/supernova
weight = 5
max_occurrences = 0
max_occurrences = 0 //GS13 - fuck no (this is just more intense radstorm)
min_players = 2
category = EVENT_CATEGORY_SPACE
description = "Several modified radstorms hit the station."
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Travelling Trader"
typepath = /datum/round_event/travelling_trader
weight = 8
max_occurrences = 6 //GS13 because why not
max_occurrences = 6 //GS13 - more occurences, because why not
earliest_start = 10 MINUTES
category = EVENT_CATEGORY_FRIENDLY
description = "A mysterious figure requests something to the crew and rewards them with something for getting it done."
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Untied Shoes"
typepath = /datum/round_event/untied_shoes
weight = 50
max_occurrences = 10
max_occurrences = 0 //GS13 - tedious, doesn't always make sense
alert_observers = FALSE
category = EVENT_CATEGORY_HEALTH
description = "Unties people's shoes, with a chance to knot them as well."
+9 -4
View File
@@ -2,8 +2,8 @@
name = "Clogged Vents: Normal"
typepath = /datum/round_event/vent_clog
weight = 10
max_occurrences = 3
min_players = 10
max_occurrences = 2 //GS13 - pain in the ass, occurences nerfed until a less disruptive variant is made
min_players = 16 //GS13 - pain in the ass, occurences nerfed until a less disruptive variant is made
category = EVENT_CATEGORY_HEALTH
description = "All the scrubbers onstation spit random chemicals in smoke form."
@@ -15,19 +15,23 @@
var/list/vents = list()
var/randomProbability = 0
var/reagentsAmount = 100
var/list/saferChems = list( //GS13 - removed some of those chems, just a couple particularly annoying ones
var/list/saferChems = list(
/datum/reagent/water,
/datum/reagent/carbon,
/datum/reagent/consumable/flour,
/datum/reagent/space_cleaner,
/datum/reagent/consumable/nutriment,
/datum/reagent/consumable/condensedcapsaicin,
/datum/reagent/drug/mushroomhallucinogen,
/datum/reagent/lube,
/datum/reagent/glitter/pink,
/datum/reagent/glitter/pink_subtle, //GS13 Add: Add our subtle variants of glitter.
/datum/reagent/cryptobiolin,
//datum/reagent/toxin/plantbgone, //GS13 Remove: Annoying Reagent
/datum/reagent/blood,
/datum/reagent/medicine/charcoal,
/datum/reagent/drug/space_drugs,
/datum/reagent/medicine/morphine,
/datum/reagent/water/holywater,
/datum/reagent/consumable/ethanol,
/datum/reagent/consumable/hot_coco,
@@ -47,6 +51,7 @@
/datum/reagent/hair_dye,
/datum/reagent/consumable/sugar,
/datum/reagent/glitter/white,
/datum/reagent/glitter/white_subtle, //GS13 ADD: Add our subtle variants of glitter. ...Why is this separate from the other glitter, anyhow? Blue glitter's also missing, so I wont add it.
/datum/reagent/growthserum,
/datum/reagent/consumable/cornoil,
/datum/reagent/uranium,
@@ -112,7 +117,7 @@
/datum/round_event/vent_clog/threatening
randomProbability = 10
reagentsAmount = 100
reagentsAmount = 200
/datum/round_event_control/vent_clog/catastrophic
name = "Clogged Vents: Catastrophic"
@@ -89,6 +89,7 @@ All foods are distributed among various categories. Use common sense.
if(!reagents.total_volume)
var/mob/living/location = loc
var/obj/item/trash_item = generate_trash(location)
handle_tf()//GS13 EDIT
qdel(src)
if(istype(location))
location.put_in_hands(trash_item)
+3 -3
View File
@@ -18,7 +18,7 @@
var/card_face = "cas_white"
var/blanks = 25
var/decksize = 150
var/card_text_file = "strings/cas_white.txt"
var/card_text_file = "GainStation13/strings/cas_white.txt" //GS13 Edit: Nanotrasen to GATO
var/list/allcards = list()
/obj/item/toy/cards/deck/cas/black
@@ -29,10 +29,10 @@
card_face = "cas_black"
blanks = 0
decksize = 50
card_text_file = "strings/cas_black.txt"
card_text_file = "GainStation13/strings/cas_black.txt" //GS13 Edit: Nanotrasen to GATO
/obj/item/toy/cards/deck/cas/populate_deck()
var/static/list/cards_against_space = list("cas_white" = world.file2list("strings/cas_white.txt"),"cas_black" = world.file2list("strings/cas_black.txt"))
var/static/list/cards_against_space = list("cas_white" = world.file2list("GainStation13/strings/cas_white.txt"),"cas_black" = world.file2list("GainStation13/strings/cas_black.txt")) //GS13 Edit: Nanotrasen to GATO
allcards = cards_against_space[card_face]
var/list/possiblecards = allcards.Copy()
if(possiblecards.len < decksize) // sanity check
+1 -1
View File
@@ -34,7 +34,7 @@
/mob/living/simple_animal/jacq
name = "Jacqueline the Pumpqueen"
real_name = "Jacqueline"
icon = 'GainStation13/icons/obj/halloween_items.dmi'
icon = 'GainStation13/icons/obj/halloween_items.dmi' //GS13 Edit: Fat Jacqueline
icon_state = "jacqueline"
maxHealth = 25
health = 25
+99
View File
@@ -0,0 +1,99 @@
//This file also determines the order for the choose your occupation chances screen.
//Engineering
/datum/job/chief_engineer
alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager", "Power Plant Director")
/datum/job/engineer
alt_titles = list("Maintenance Technician", "Engine Technician", "Electrician", "Structural Engineer", "Mechanic", "Station Architect", "Nuclear Plant Operator")
/datum/job/atmos
alt_titles = list("Firefighter", "Life Support Specialist", "Disposals Technician")
//Service
/datum/job/assistant
alt_titles = list("Civilian", "Morale Officer", "Off-Duty", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist")
/datum/job/cook
alt_titles = list("Cook", "Culinary Artist", "Butcher", "Chef de partie", "Poissonier", "Baker", "Taste Tester")
/datum/job/hydro
alt_titles = list("Gardener", "Herbalist", "Botanical Researcher", "Hydroponicist", "Farmer", "Beekeeper", "Vintner")
/datum/job/curator
alt_titles = list("Journalist", "Librarian", "Keeper")
/datum/job/chaplain
alt_titles = list("Priest", "Priestess", "Prior", "Monk", "Nun", "Counselor")
/datum/job/janitor
alt_titles = list("Custodian", "Sanitation Technician", "Maid", "Trash Can", "Disposal Unit")
/datum/job/lawyer
alt_titles = list("Human Resources Agent", "Internal Affairs Agent", "Attorney")
/datum/job/clown
alt_titles = list("Jester", "Comedian")
/datum/job/mime
alt_titles = list("Performer", "Pantomime", "Mimic")
/datum/job/bartender
alt_titles = list("Mixologist", "Sommelier", "Bar Owner", "Barmaid", "Expediter")
//Science
/datum/job/rd
alt_titles = list("Research Manager", "Science Administrator")
/datum/job/scientist
alt_titles = list("Circuitry Designer", "Xenobiologist", "Xenobotanist", "Xenoarcheologist", "Chemical Researcher", "Researcher", "Pyrotechnician")
/datum/job/roboticist
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic")
//Medical
/datum/job/cmo
alt_titles = list("Medical Director", "Medical Administrator")
/datum/job/doctor
alt_titles = list("Nurse", "Surgeon", "Physician", "Paramedic", "Trophologist", "Nutritionist", "Therapist", "Psychiatrist")
/datum/job/chemist
alt_titles = list("Pharmacist", "Pharmacologist")
/datum/job/virologist
alt_titles = list("Microbiologist", "Biochemist", "Pathologist")
/datum/job/geneticist
alt_titles = list("Gene Therapist", "Genetics Researcher")
//Security
/datum/job/hos
alt_titles = list("Chief of Security", "Security Commander", "Sheriff")
/datum/job/warden
alt_titles = list("Prison Chief", "Armory Manager", "Prison Administrator", "Brig Superintendent")
/datum/job/officer
alt_titles = list("Security Agent", "Probation Officer", "Security Peacekeeper", "Security Guard", "Guardsman", "Security Cadet")
/datum/job/detective
alt_titles = list("Forensics Technician", "Private Investigator", "Gumshoe")
//Supply
/datum/job/qm
alt_titles = list("Supply Chief")
/datum/job/cargo_tech
alt_titles = list("Mail Man", "Mail Woman", "Mailroom Technician", "Deliveries Officer", "Logistics Technician")
/datum/job/mining
alt_titles = list("Exotic Ore Miner", "Fauna Hunter", "Explorer", "Digger") //Just because you're a hunter does not excuse you from rock collecting!!!!!!!!!!!!
//Command
/datum/job/captain
alt_titles = list("Station Director", "Station Commander", "Station Overseer", "Stationmaster", "Commissar")
/datum/job/hop
alt_titles = list("Personnel Manager", "Staff Administrator", "Records Administrator")
+13 -2
View File
@@ -63,6 +63,9 @@
var/list/mind_traits // Traits added to the mind of the mob assigned this job
var/list/blacklisted_quirks //list of quirk typepaths blacklisted.
/// What alternate titles does this job currently have?
var/list/alt_titles = list()
/// Should this job be allowed to be picked for the bureaucratic error event?
var/allow_bureaucratic_error = TRUE
@@ -211,7 +214,7 @@
/datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
if(H && GLOB.announcement_systems.len)
//timer because these should come after the captain announcement
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, channels), 1))
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, H.client?.prefs.alt_titles_preferences[H.job], channels), 1))
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
/datum/job/proc/player_old_enough(client/C)
@@ -314,7 +317,11 @@
shuffle_inplace(C.access) // Shuffle access list to make NTNet passkeys less predictable
C.registered_name = H.real_name
C.assignment = J.title
C.update_label()
if(preference_source && preference_source.prefs && preference_source.prefs.alt_titles_preferences[J.title])
C.update_label(C.registered_name, preference_source.prefs.alt_titles_preferences[J.title])
else
C.update_label()
for(var/A in SSeconomy.bank_accounts)
var/datum/bank_account/B = A
if(B.account_id == H.account_id)
@@ -326,6 +333,10 @@
var/obj/item/pda/PDA = H.get_item_by_slot(pda_slot)
if(istype(PDA))
PDA.owner = H.real_name
if(preference_source && preference_source.prefs && preference_source.prefs.alt_titles_preferences[J.title])
PDA.ownjob = preference_source.prefs.alt_titles_preferences[J.title]
else
PDA.ownjob = J.title
PDA.ownjob = J.title
PDA.update_label()
if(preference_source && !PDA.equipped) //PDA's screen color, font style and look depend on client preferences.
+1 -1
View File
@@ -4,7 +4,7 @@
department_head = list("Head of Personnel")
department_flag = CIVILIAN
faction = "Station"
total_positions = 1
total_positions = 2
spawn_positions = 1
supervisors = "the head of personnel"
selection_color = "#bbe291"
+4 -1
View File
@@ -50,7 +50,10 @@
/datum/job/captain/announce(mob/living/carbon/human/H)
..()
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "Captain [H.nameless ? "" : "[H.real_name] "]on deck!"))
var/displayed_rank = H.client?.prefs?.alt_titles_preferences[title]
if(!displayed_rank) //Default to Captain
displayed_rank = "Captain"
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "[displayed_rank] [H.nameless ? "" : "[H.real_name] "]on deck!"))
/datum/outfit/job/captain
name = "Captain"
+2 -2
View File
@@ -4,8 +4,8 @@
department_head = list("The Security Team")
department_flag = CIVILIAN
faction = "Station"
total_positions = 0
spawn_positions = 0
total_positions = 1 //GS13 - enabling prisoner (for now)
spawn_positions = 1 //GS13 - enabling prisoner (for now)
supervisors = "the security team"
random_spawns_possible = FALSE
@@ -168,7 +168,7 @@
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
hoodtype = /obj/item/clothing/head/hooded/explorer/heva
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 100, RAD = 80, FIRE = 100, ACID = 80)
resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/hooded/explorer/heva
name = "HEVA hood"
@@ -178,7 +178,7 @@
item_state = "heva"
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 20, BIO = 100, RAD = 20, FIRE = 60, ACID = 20)
resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/hooded/explorer/heva/equipped(mob/living/carbon/human/user, slot)
..()
@@ -606,6 +606,9 @@
dept_dat += "<a class='job[command_bold]' style='display:block;width:170px' href='byond://?src=[REF(src)];SelectedJob=[job_datum.title]'><span class='priority'>[job_datum.title] ([num_positions_current]/[num_positions_total])</span></a>"
else
dept_dat += "<a class='job[command_bold]' style='display:block;width:170px' href='byond://?src=[REF(src)];SelectedJob=[job_datum.title]'>[job_datum.title] ([num_positions_current]/[num_positions_total])</a>"
if(client && client.prefs && client?.prefs?.alt_titles_preferences[job_datum.title])
dept_dat += "<br><span style='color:#BBBBBB; font-style: italic;'>(as [client?.prefs?.alt_titles_preferences[job_datum.title]])</span>"
if(!dept_dat.len)
dept_dat += "<span class='nopositions'>No positions open.</span>"
dat += jointext(dept_dat, "")
@@ -66,7 +66,7 @@
if(mob_size == MOB_SIZE_LARGE)
cuff_icon += "_[caste]"
dmi_file = 'hyperstation/icons/mobs/alienqueen.dmi' //GS13 - moving over Hyper sprites
dmi_file = 'GainStation13/icons/mob/alienqueen.dmi' //GS13 Edit: Adding our handcuff icons to the aliens.
var/mutable_appearance/cuffs = mutable_appearance(dmi_file, cuff_icon, -HANDCUFF_LAYER)
cuffs.color = handcuffed.color
@@ -1,6 +1,6 @@
/mob/living/carbon/alien/humanoid/royal
//Common stuffs for Praetorian and Queen
icon = 'hyperstation/icons/mobs/alienqueen.dmi'
icon = 'icons/mob/alienqueen.dmi'
status_flags = 0
unique_name = 0
pixel_x = -16
@@ -17,7 +17,7 @@
meleeSlashHumanPower = 30
meleeSlashSAPower = 60
var/alt_inhands_file = 'hyperstation/icons/mobs/alienqueen.dmi' //GS13 - moving over Hyper sprites
var/alt_inhands_file = 'icons/mob/alienqueen.dmi'
/mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE)
return FALSE
+4
View File
@@ -820,6 +820,10 @@
//Sure, give clickdelay for anti spam. shouldn't be combat voring anyways.
return TRUE
// GS13 Escape Transformation
if(attempt_to_escape_tf())
return TRUE
//Breaking out of a container (Locker, sleeper, cryo...)
if(isobj(loc))
var/obj/C = loc
@@ -281,6 +281,7 @@
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/soap/nanotrasen,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/borg/cyborghug)
emag_modules = list(/obj/item/melee/transforming/energy/sword/cyborg)
ratvar_modules = list(
@@ -317,6 +318,7 @@
/obj/item/organ_storage,
/obj/item/borg/lollipop,
/obj/item/sensor_device,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/shockpaddles/cyborg)
emag_modules = list(/obj/item/reagent_containers/borghypo/hacked)
ratvar_modules = list(
@@ -336,8 +338,11 @@
"Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"),
"Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"),
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed")
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"),
"Haydee" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "haydeemedical"), //GS13 EDIT
"Fat" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "fat_medical"), //GS13 EDIT
)
/* GS13 EDIT
var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed")
for(var/a in L)
var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
@@ -347,6 +352,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-med")
bad_snowflake.pixel_x = -16
med_icons["Alina"] = bad_snowflake
*/
med_icons = sort_list(med_icons)
var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(med_borg_icon)
@@ -368,6 +374,7 @@
if("Heavy")
cyborg_base_icon = "heavymed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
/* GS13 EDIT, dogborg-b-gone
if("Medihound")
cyborg_base_icon = "medihound"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
@@ -397,6 +404,17 @@
moduleselect_icon = "medihound"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
dogborg = TRUE
*/
//GS13 EDIT START
if("Haydee")
cyborg_base_icon = "haydeemedical"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
if("Fat")
cyborg_base_icon = "fat_medical"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
//GS13 EDIT END
else
return FALSE
return ..()
@@ -421,6 +439,7 @@
/obj/item/storage/part_replacer/cyborg,
/obj/item/holosign_creator/combifan,
/obj/item/gripper,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/lightreplacer/cyborg,
/obj/item/geiger_counter/cyborg,
/obj/item/assembly/signaler/cyborg,
@@ -454,8 +473,10 @@
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"),
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng")
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"),
"Fat" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "fat_engineer"), //GS13 EDIT
)
/* GS13 EDIT
var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng")
for(var/a in L)
var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
@@ -465,6 +486,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-eng")
bad_snowflake.pixel_x = -16
engi_icons["Alina"] = bad_snowflake
*/
engi_icons = sort_list(engi_icons)
var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(engi_borg_icon)
@@ -496,6 +518,7 @@
if("Heavy")
cyborg_base_icon = "heavyeng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
/* GS13 EDIT
if("Pup Dozer")
cyborg_base_icon = "pupdozer"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
@@ -512,6 +535,13 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeengsleeper"
dogborg = TRUE
*/
//GS13 EDIT START
if("Fat")
cyborg_base_icon = "fat_engineer"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
//GS13 EDIT END
else
return FALSE
return ..()
@@ -527,6 +557,9 @@
/obj/item/melee/baton/loaded,
/obj/item/gun/energy/disabler/cyborg,
/obj/item/clothing/mask/gas/sechailer/cyborg,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/reagent_containers/borghypo/feeding_tube, //GS13 EDIT
/obj/item/gun/energy/fatoray/weak/cyborg, //GS13 EDIT
/obj/item/pinpointer/crew)
emag_modules = list(/obj/item/gun/energy/laser/cyborg)
ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security,
@@ -553,6 +586,7 @@
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"),
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec")
)
/* GS13 EDIT
var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark")
for(var/a in L)
var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
@@ -562,6 +596,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
bad_snowflake.pixel_x = -16
sec_icons["Alina"] = bad_snowflake
*/
sec_icons = sort_list(sec_icons)
var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(sec_borg_icon)
@@ -586,6 +621,7 @@
if("Heavy")
cyborg_base_icon = "heavysec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
/* GS13 EDIT
if("K9")
cyborg_base_icon = "k9"
sleeper_overlay = "ksleeper"
@@ -607,6 +643,7 @@
sleeper_overlay = "valesecsleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
dogborg = TRUE
*/
else
return FALSE
return ..()
@@ -632,6 +669,9 @@
/obj/item/holosign_creator/cyborg,
/obj/item/borg/cyborghug/peacekeeper,
/obj/item/megaphone,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/reagent_containers/borghypo/feeding_tube, //GS13 EDIT
/obj/item/gun/energy/fatoray/weak/cyborg, //GS13 EDIT
/obj/item/borg/projectile_dampen)
emag_modules = list(/obj/item/reagent_containers/borghypo/peace/hacked)
ratvar_modules = list(
@@ -651,7 +691,8 @@
var/static/list/peace_icons = sort_list(list(
"Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"),
"Borgi" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "borgi"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider")
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider"),
"Fat" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "fat_peacekeeper"), //GS13 EDIT
))
var/peace_borg_icon = show_radial_menu(R, R , peace_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(peace_borg_icon)
@@ -660,6 +701,12 @@
if("Spider")
cyborg_base_icon = "whitespider"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
//GS13 EDIT START
if("Fat")
cyborg_base_icon = "fat_peacekeeper"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
//GS13 EDIT END
if("Borgi")
cyborg_base_icon = "borgi"
moduleselect_icon = "borgi"
@@ -724,6 +771,8 @@
/obj/item/razor, //killbait material
/obj/item/lipstick/purple,
/obj/item/reagent_containers/spray/waterflower/cyborg,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/reagent_containers/borghypo/feeding_tube, //GS13 EDIT
/obj/item/borg/cyborghug/peacekeeper,
/obj/item/borg/lollipop/clown,
/obj/item/picket_sign/cyborg,
@@ -764,6 +813,9 @@
/obj/item/soap/nanotrasen,
/obj/item/storage/bag/trash/cyborg,
/obj/item/mop/cyborg,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/reagent_containers/borghypo/feeding_tube, //GS13 EDIT
/obj/item/cookiesynth, //GS13 EDIT
/obj/item/lightreplacer/cyborg,
/obj/item/holosign_creator,
/obj/item/reagent_containers/spray/cyborg_drying)
@@ -803,12 +855,15 @@
"(Service) Tophat" = image(icon = 'icons/mob/robots.dmi', icon_state = "tophat"),
"(Service) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekserv"),
"(Service) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyserv"),
"(Service) Fat" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "fat_service"),
"(Service) Busty" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "busty_service"),
"(Janitor) Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "janitor"),
"(Janitor) Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"),
"(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"),
"(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"),
"(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan")
)
/* GS13 Edit
var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark",
"(Janitor) Scrubpuppy" = "scrubpup")
for(var/a in L)
@@ -819,6 +874,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
bad_snowflake.pixel_x = -16
service_icons["Alina"] = bad_snowflake
*/
service_icons = sort_list(service_icons)
var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(service_robot_icon)
@@ -860,6 +916,16 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeservsleeper"
dogborg = TRUE
//GS13 EDIT START
if("(Service) Fat")
cyborg_base_icon = "fat_service"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
if("(Service) Busty")
cyborg_base_icon = "busty_service"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 1
//GS13 EDIT END
if("(Janitor) Default")
cyborg_base_icon = "janitor"
if("(Janitor) Marina")
@@ -905,6 +971,7 @@
/obj/item/stack/marker_beacon/cyborg,
/obj/item/dest_tagger,
/obj/item/stack/packageWrap/cyborg,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/card/id/miningborg)
emag_modules = list(/obj/item/borg/stun)
ratvar_modules = list(
@@ -926,13 +993,16 @@
"Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"),
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"),
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin")
"Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"),
"Fat" = image(icon = 'GainStation13/icons/mob/robots.dmi', icon_state = "fat_mining"), //GS13 EDIT
)
/* GS13 EDIT
var/list/L = list("Blade" = "blade", "Vale" = "valemine")
for(var/a in L)
var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
wide.pixel_x = -16
mining_icons[a] = wide
*/
mining_icons = sort_list(mining_icons)
var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(mining_borg_icon)
@@ -970,6 +1040,12 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeminesleeper"
dogborg = TRUE
// GS13 EDIT START
if("Fat")
cyborg_base_icon = "fat_mining"
cyborg_icon_override = 'GainStation13/icons/mob/robots.dmi'
hat_offset = 3
//GS13 EDIT END
else
return FALSE
return ..()
@@ -986,6 +1062,7 @@
/obj/item/gun/ballistic/revolver/grenadelauncher/cyborg,
/obj/item/card/emag,
/obj/item/crowbar/cyborg,
/obj/item/gripper/food, //GS13 EDIT
/obj/item/pinpointer/syndicate_cyborg)
ratvar_modules = list(
@@ -4,7 +4,7 @@
weight = 15
max_occurrences = 2
earliest_start = 20 MINUTES
min_players = 5
min_players = 8 //GS13 - really annoying on low-lowpop considering they jolt back and forth
category = EVENT_CATEGORY_ENTITIES
description = "Annoying little creatures go around the station causing havoc and hacking everything."
@@ -145,7 +145,7 @@
/mob/living/simple_animal/hostile/alien/queen/large
name = "alien empress"
icon = 'hyperstation/icons/mobs/alienqueen.dmi' //GS13 - moving over Hyper sprites
icon = 'icons/mob/alienqueen.dmi'
icon_state = "alienq"
icon_living = "alienq"
icon_dead = "alienq_dead"
@@ -27,7 +27,7 @@
spacewalk = TRUE
var/armored = FALSE
obj_damage = 20
obj_damage = 60
melee_damage_lower = 15 // i know it's like half what it used to be, but bears cause bleeding like crazy now so it works out
melee_damage_upper = 15
wound_bonus = -5
@@ -15,7 +15,7 @@
desc = "Buzzy buzzy bee, stingy sti- Ouch!"
icon_state = ""
icon_living = ""
icon = 'icons/mob/bees.dmi'
icon = 'GainStation13/icons/mob/bees.dmi' //GS13 sprite change - brings back smaller bees rather than big goofy ones
gender = FEMALE
speak_emote = list("buzzes")
emote_hear = list("buzzes")
@@ -100,7 +100,7 @@
add_overlay("[icon_base]_base")
var/static/mutable_appearance/greyscale_overlay
greyscale_overlay = greyscale_overlay || mutable_appearance('icons/mob/bees.dmi')
greyscale_overlay = greyscale_overlay || mutable_appearance('GainStation13/icons/mob/bees.dmi') //GS13 sprite change - brings back smaller bees rather than big goofy ones
greyscale_overlay.icon_state = "[icon_base]_grey"
greyscale_overlay.color = col
add_overlay(greyscale_overlay)
@@ -255,7 +255,7 @@
desc = "She's the queen of bees, BZZ BZZ!"
icon_state = "queen_item"
item_state = ""
icon = 'icons/mob/bees.dmi'
icon = 'GainStation13/icons/mob/bees.dmi' //GS13 sprite change - brings back smaller bees rather than big goofy ones
var/mob/living/simple_animal/hostile/poison/bees/queen/queen
+5 -5
View File
@@ -14,7 +14,7 @@
/obj/item/wallframe/light_fixture
name = "light fixture frame"
desc = "Used for building lights."
icon = 'icons/obj/lighting.dmi'
icon = 'GainStation13/icons/obj/lighting.dmi' //GS13 - sprite change
icon_state = "tube-construct-item"
result_path = /obj/structure/light_construct
inverse = TRUE
@@ -38,7 +38,7 @@
/obj/structure/light_construct
name = "light fixture frame"
desc = "A light fixture under construction."
icon = 'icons/obj/lighting.dmi'
icon = 'GainStation13/icons/obj/lighting.dmi' //GS13 - sprite change
icon_state = "tube-construct-stage1"
anchored = TRUE
layer = WALL_OBJ_LAYER
@@ -178,7 +178,7 @@
// the standard tube light fixture
/obj/machinery/light
name = "light fixture"
icon = 'icons/obj/lighting.dmi'
icon = 'GainStation13/icons/obj/lighting.dmi' //GS13 - sprite change
var/overlayicon = 'icons/obj/lighting_overlay.dmi'
var/base_state = "tube" // base description and icon_state
icon_state = "tube"
@@ -733,7 +733,7 @@
// will fit into empty /obj/machinery/light of the corresponding type
/obj/item/light
icon = 'icons/obj/lighting.dmi'
icon = 'GainStation13/icons/obj/lighting.dmi' //GS13 - sprite change
force = 2
throwforce = 5
w_class = WEIGHT_CLASS_TINY
@@ -839,7 +839,7 @@
/obj/machinery/light/floor
name = "floor light"
icon = 'icons/obj/lighting.dmi'
icon = 'GainStation13/icons/obj/lighting.dmi' //GS13 - sprite change
base_state = "floor" // base description and icon_state
icon_state = "floor"
brightness = 5
+1 -1
View File
@@ -264,7 +264,7 @@
D.trunk = src
var/obj/structure/disposaloutlet/O = locate() in T
if(O)
if(O && O.anchored) //GS Edit: Added anchored check to fix an edgecase where the trunk could get erroneously linked to an unanchored industrial feeding tube if the trunk was welded solid while the loose tube was above the trunk. Whew...
linked = O
@@ -20,7 +20,7 @@
starting_node = TRUE
display_name = "Cyborg Construction"
description = "Sapient robots with preloaded tool modules and programmable laws."
design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload",
design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", "borg_upgrade_foodgrip", //GS13 EDIT
"cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename")
/datum/techweb_node/adv_robotics
+1
View File
@@ -22,6 +22,7 @@
/obj/item/clothing/under/misc/gear_harness = 10,
/obj/item/dildo/custom = 5,
/obj/item/electropack/shockcollar = 3,
/obj/item/transformation_item = 3, // GS13 EDIT
/obj/item/assembly/signaler = 3,
/obj/item/clothing/under/shorts/polychromic/pantsu = 3,
/obj/item/clothing/under/misc/poly_bottomless = 3,
+6 -1
View File
@@ -221,7 +221,12 @@
//
/mob/living/proc/escapeOOC()
set name = "OOC Escape"
set category = "Vore"
set category = "OOC" // GS13 Change
//GS13 EDIT START
handle_transformation_ooc_escape()
//GS13 EDIT END
//You're in a belly!
if(isbelly(loc))