diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index b31dcc7bd8..454a3bc43b 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -8,18 +8,18 @@ on: - master jobs: run_linters: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Run Linters - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Restore SpacemanDMM cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/SpacemanDMM key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }} - name: Restore Yarn cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: tgui/.yarn/cache key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }} @@ -29,7 +29,7 @@ jobs: ${{ runner.os }}- - name: Install Tools run: | - pip3 install setuptools + pip3 install setuptools --upgrade bash tools/ci/install_node.sh bash tools/ci/install_spaceman_dmm.sh dreamchecker tools/bootstrap/python -c '' @@ -51,13 +51,13 @@ jobs: outputFile: output-annotations.txt compile_all_maps: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Compile Maps - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Restore BYOND cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/BYOND key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }} @@ -66,11 +66,10 @@ jobs: bash tools/ci/install_byond.sh source $HOME/BYOND/byond/bin/byondsetup tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS - run_all_tests: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Integration Tests - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 services: mysql: image: mysql:latest @@ -80,14 +79,14 @@ jobs: - 3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Restore BYOND cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/BYOND key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }} - name: Restore Yarn cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: tgui/.yarn/cache key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }} @@ -104,9 +103,6 @@ jobs: mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql - name: Install rust-g run: | - sudo dpkg --add-architecture i386 - sudo apt update || true - sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386 bash tools/ci/install_rust_g.sh - name: Install auxmos run: | @@ -118,15 +114,14 @@ jobs: source $HOME/BYOND/byond/bin/byondsetup tools/build/build --ci -DCIBUILDING bash tools/ci/run_server.sh - test_windows: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Windows Build runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Restore Yarn cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: tgui/.yarn/cache key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }} @@ -143,7 +138,7 @@ jobs: md deploy bash tools/deploy.sh ./deploy - name: Deploy artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: deploy path: deploy diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml new file mode 100644 index 0000000000..b1bf902c69 --- /dev/null +++ b/.github/workflows/generate_documentation.yml @@ -0,0 +1,31 @@ +name: Generate documentation +on: + push: + branches: + - master +jobs: + generate_documentation: + if: "!contains(github.event.head_commit.message, '[ci skip]')" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Setup cache + uses: actions/cache@v4 + with: + path: ~/SpacemanDMM + key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }} + - name: Install SpacemanDMM + run: bash tools/ci/install_spaceman_dmm.sh dmdoc + - name: Generate documentation + run: | + ~/dmdoc + touch dmdoc/.nojekyll + echo codedocs.citadel-station.net > dmdoc/CNAME + - name: Deploy + uses: JamesIves/github-pages-deploy-action@3.7.1 + with: + BRANCH: gh-pages + CLEAN: true + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SINGLE_COMMIT: true + FOLDER: dmdoc diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 19a72d6702..e3400bf3c3 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -11,7 +11,7 @@ jobs: name: Update the TGS DMAPI steps: - name: Clone - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Branch run: | diff --git a/.vscode/launch.json b/.vscode/launch.json index e01beb7171..39f599fd9c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,6 +7,13 @@ "name": "Launch DreamSeeker", "preLaunchTask": "Build All", "dmb": "${workspaceFolder}/${command:CurrentDMB}" + }, + { + "type": "byond", + "request": "launch", + "name": "Launch DreamSeeker (TRACY)", + "preLaunchTask": "Build All (TRACY)", + "dmb": "${workspaceFolder}/${command:CurrentDMB}" }, { "type": "byond", @@ -45,6 +52,13 @@ "preLaunchTask": "Build All (LOWMEMORYMODE)", "dmb": "${workspaceFolder}/${command:CurrentDMB}", "dreamDaemon": true + }, + { + "type": "byond", + "request": "launch", + "name": "Launch DreamSeeker (LOWMEMORYMODE + TRACY)", + "preLaunchTask": "Build All (LOWMEMORYMODE TRACY)", + "dmb": "${workspaceFolder}/${command:CurrentDMB}" } ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 155c69ee99..5c8886b0c9 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -24,6 +24,31 @@ "dependsOn": "dm: reparse", "label": "Build All" }, + { + "type": "process", + "command": "tools/build/build", + "windows": { + "command": ".\\tools\\build\\build.bat" + }, + "options": { + "env": { + "DM_EXE": "${config:dreammaker.byondPath}" + } + }, + "problemMatcher": [ + "$dreammaker", + "$tsc", + "$eslint-stylish" + ], + "group": { + "kind": "build" + }, + "dependsOn": "dm: reparse", + "args": [ + "-DUSE_BYOND_TRACY" + ], + "label": "Build All (TRACY)" + }, { "type": "process", "command": "tools/build/build", @@ -74,6 +99,32 @@ ], "label": "Build All (LOWMEMORYMODE)" }, + { + "type": "process", + "command": "tools/build/build", + "windows": { + "command": ".\\tools\\build\\build.bat" + }, + "options": { + "env": { + "DM_EXE": "${config:dreammaker.byondPath}" + } + }, + "problemMatcher": [ + "$dreammaker", + "$tsc", + "$eslint-stylish" + ], + "group": { + "kind": "build" + }, + "dependsOn": "dm: reparse", + "args": [ + "-DLOWMEMORYMODE", + "-DUSE_BYOND_TRACY" + ], + "label": "Build All (LOWMEMORYMODE TRACY)" + }, { "type": "dreammaker", "dme": "tgstation.dme", diff --git a/GainStation13/code/__HELPERS/global_lists.dm b/GainStation13/code/__HELPERS/global_lists.dm new file mode 100644 index 0000000000..93bb9e66fe --- /dev/null +++ b/GainStation13/code/__HELPERS/global_lists.dm @@ -0,0 +1 @@ +GLOBAL_LIST_INIT(genital_fluids_list, list("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment", "Berry Juice")) diff --git a/GainStation13/code/__HELPERS/transformation.dm b/GainStation13/code/__HELPERS/transformation.dm new file mode 100644 index 0000000000..9b34efdd74 --- /dev/null +++ b/GainStation13/code/__HELPERS/transformation.dm @@ -0,0 +1,57 @@ +/client/proc/breadify(atom/movable/target) + var/obj/item/reagent_containers/food/snacks/store/bread/plain/funnyBread = new(get_turf(target)) + target.forceMove(funnyBread) + +GLOBAL_LIST_EMPTY(transformation_animation_objects) +/* + * Creates animation that turns current icon into result appearance from top down. + * + * result_appearance - End result appearance/atom/image + * time - Animation duration + * transform_overlay - Appearance/atom/image of effect that moves along the animation - should be horizonatally centered + * reset_after - If FALSE, filters won't be reset and helper vis_objects will not be removed after animation duration expires. Cleanup must be handled by the caller! + */ +/atom/movable/proc/transformation_animation(result_appearance,time = 3 SECONDS,transform_overlay,reset_after=TRUE) + var/list/transformation_objects = GLOB.transformation_animation_objects[src] || list() + //Disappearing part + var/top_part_filter = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0) + filters += top_part_filter + var/filter_index = length(filters) + animate(filters[filter_index],y=-32,time=time) + //Appearing part + var/obj/effect/overlay/appearing_part = new + appearing_part.appearance = result_appearance + appearing_part.appearance_flags |= KEEP_TOGETHER | KEEP_APART + appearing_part.vis_flags = VIS_INHERIT_ID + appearing_part.filters = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0,flags=MASK_INVERSE) + animate(appearing_part.filters[1],y=-32,time=time) + transformation_objects += appearing_part + //Transform effect thing - todo make appearance passed in + if(transform_overlay) + var/obj/transform_effect = new + transform_effect.appearance = transform_overlay + transform_effect.vis_flags = VIS_INHERIT_ID + transform_effect.pixel_y = 16 + transform_effect.alpha = 255 + transformation_objects += transform_effect + animate(transform_effect,pixel_y=-16,time=time) + animate(alpha=0) + GLOB.transformation_animation_objects[src] = transformation_objects + for(var/A in transformation_objects) + vis_contents += A + if(reset_after) + addtimer(CALLBACK(src,.proc/_reset_transformation_animation,filter_index),time) +/* + * Resets filters and removes transformation animations helper objects from vis contents. +*/ +/atom/movable/proc/_reset_transformation_animation(filter_index) + var/list/transformation_objects = GLOB.transformation_animation_objects[src] + for(var/A in transformation_objects) + vis_contents -= A + qdel(A) + transformation_objects.Cut() + GLOB.transformation_animation_objects -= src + if(filters && length(filters) >= filter_index) + filters -= filters[filter_index] + //else + // filters = null diff --git a/GainStation13/code/clothing/cloaks.dm b/GainStation13/code/clothing/cloaks.dm deleted file mode 100644 index 1b878b8e2a..0000000000 --- a/GainStation13/code/clothing/cloaks.dm +++ /dev/null @@ -1,8 +0,0 @@ -/obj/item/clothing/neck/cloak/centcom - name = "central command's cloak" - desc = "Worn by High-Ranking Central Command Personnel. I guess they needed one too." - icon = 'GainStation13/icons/obj/clothing/cloaks.dmi' - mob_overlay_icon = 'GainStation13/icons/mob/neck.dmi' - icon_state = "centcomcloak" - armor = list("melee" = 35, "bullet" = 40, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 20, "rad" = 20, "fire" = 60, "acid" = 60) - body_parts_covered = CHEST|GROIN|ARMS diff --git a/GainStation13/code/clothing/gloves.dm b/GainStation13/code/clothing/gloves.dm new file mode 100644 index 0000000000..23b760d049 --- /dev/null +++ b/GainStation13/code/clothing/gloves.dm @@ -0,0 +1,15 @@ +// GS13 - Port CE Gloves +/obj/item/clothing/gloves/color/yellow/ce //funky looking, basically combat gloves + desc = "Special Insulated gloves with pricy thermal shielding normally only found in combat gloves." + name = "Chief Engineer Insulated Gloves" + icon = 'GainStation13/icons/obj/clothing/gloves.dmi' + icon_state = "ce_insuls" + item_state = "blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = NONE diff --git a/GainStation13/code/clothing/haydee_suit.dm b/GainStation13/code/clothing/haydee_suit.dm index 348cb7f20a..266a5892f9 100644 --- a/GainStation13/code/clothing/haydee_suit.dm +++ b/GainStation13/code/clothing/haydee_suit.dm @@ -4,7 +4,6 @@ icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi' mob_overlay_icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi' icon_state = "haydee_helmet" - item_state = "item_haydee_helmet" armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 25, "fire" = 25, "acid" = 25) slowdown = 0 mutantrace_variation = NONE @@ -13,11 +12,12 @@ /obj/item/clothing/suit/space/hardsuit/engine/haydee name = "Haydee Suit" desc = "A strangely voluptous suit. Offers little to no protection. It also appears to have minor flab-compressing properties." + icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi' mob_overlay_icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi' anthro_mob_worn_overlay = 'GainStation13/icons/obj/clothing/haydee_modular.dmi' icon_state = "haydee_suit1" item_state = "item_haydee" - armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 0, "rad" = 25, "fire" = 25, "acid" = 25) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 25, "fire" = 5, "acid" = 5) allowed = list(/obj/item/flashlight, /obj/item/tank/internals) actions_types = list(/datum/action/item_action/toggle_helmet) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/haydee diff --git a/GainStation13/code/clothing/under.dm b/GainStation13/code/clothing/under.dm index c1e8caf3c7..1966c85e90 100644 --- a/GainStation13/code/clothing/under.dm +++ b/GainStation13/code/clothing/under.dm @@ -21,16 +21,3 @@ mob_overlay_icon = 'GainStation13/icons/mob/uniform.dmi' icon_state = "rsecuritypink" item_state = "r_suit" - - -/obj/item/clothing/under/shorts/yellow - name = "Yellow workout short" - icon_state = "yellowwshort" - icon = 'GainStation13/icons/obj/clothing/uniforms.dmi' - mob_overlay_icon = 'GainStation13/icons/mob/uniform.dmi' - -/obj/item/clothing/under/shorts/pink - name = "Pink workout short" - icon_state = "pinkwshort" - icon = 'GainStation13/icons/obj/clothing/uniforms.dmi' - mob_overlay_icon = 'GainStation13/icons/mob/uniform.dmi' diff --git a/GainStation13/code/datums/achievements/fat.dm b/GainStation13/code/datums/achievements/fat.dm new file mode 100644 index 0000000000..701920e96e --- /dev/null +++ b/GainStation13/code/datums/achievements/fat.dm @@ -0,0 +1,46 @@ + +/datum/award/achievement/fat + category = "Gluttony" + icon = "basemisc" + +//chemistry + +/datum/award/achievement/fat/blob + name = "Become a blob" + desc = "You've gotten fat enough to become a blob!" + database_id = GLUTTONY_BLOB + +/datum/award/achievement/fat/milestone_one + name = "Fatness Milestone One" + desc = "Reach a BFI level of 10,000!" + database_id = GLUTTONY_MILESTONE_ONE + +/datum/award/achievement/fat/milestone_two + name = "Fatness Milestone One" + desc = "Reach a BFI level of 25,000!" + database_id = GLUTTONY_MILESTONE_TWO + +/datum/award/achievement/fat/milestone_three + name = "Fatness Milestone Three" + desc = "Reach a BFI level of 50,000!" + database_id = GLUTTONY_MILESTONE_THREE + +/datum/award/achievement/fat/milestone_four + name = "Fatness Milestone Four" + desc = "Reach a BFI level of 100,000!" + database_id = GLUTTONY_MILESTONE_FOUR + +/datum/award/achievement/fat/milestone_five + name = "Fatness Milestone Five" + desc = "Reach a BFI level of 500,000!" + database_id = GLUTTONY_MILESTONE_FIVE + +/datum/award/achievement/fat/milestone_six + name = "Fatness Milestone Six" + desc = "Reach a BFI level of 1,000,000!" + database_id = GLUTTONY_MILESTONE_SIX + +/datum/award/achievement/fat/milestone_seven + name = "Fatness Milestone Seven" + desc = "Reach a BFI level of 10,000,000!" + database_id = GLUTTONY_MILESTONE_SEVEN diff --git a/GainStation13/code/datums/components/crafting/recipes/recipes_misc_gs.dm b/GainStation13/code/datums/components/crafting/recipes/recipes_misc_gs.dm new file mode 100644 index 0000000000..453c2d733d --- /dev/null +++ b/GainStation13/code/datums/components/crafting/recipes/recipes_misc_gs.dm @@ -0,0 +1,18 @@ +// GS miscellaneous recipes + +/datum/crafting_recipe/industrial_feeding_tube + name = "Industrial Feeding Tube" + reqs = list( + // /obj/machinery/iv_drip/feeding_tube = 1, //Removing this. Seems to be buggy with not-items used to craft + /obj/item/stack/sheet/metal = 5, + /obj/item/stack/sheet/plastic = 5, + /obj/item/pipe = 2, + /obj/item/stock_parts/matter_bin = 2 + ) + parts = list( + /obj/item/stock_parts/matter_bin = 2 + ) + result = /obj/structure/disposaloutlet/industrial_feeding_tube + tools = list(TOOL_WELDER, TOOL_WRENCH, TOOL_SCREWDRIVER) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISCELLANEOUS diff --git a/GainStation13/code/datums/crates.dm b/GainStation13/code/datums/crates.dm deleted file mode 100644 index e89bd36c12..0000000000 --- a/GainStation13/code/datums/crates.dm +++ /dev/null @@ -1,17 +0,0 @@ -//gs13 - solar defence crate -/obj/structure/closet/crate/solarpanel_defence - name = "solar system defence crate" - icon_state = "engi_e_crate" - -/obj/structure/closet/crate/solarpanel_defence/PopulateContents() - ..() - new /obj/machinery/satellite/meteor_shield(src) - new /obj/machinery/satellite/meteor_shield(src) - new /obj/machinery/satellite/meteor_shield(src) - new /obj/machinery/satellite/meteor_shield(src) - new /obj/item/paper/guides/jobs/engi/solar_defence(src) - new /obj/item/circuitboard/computer/sat_control(src) - -/obj/item/paper/guides/jobs/engi/solar_defence - name = "Info on Satellite Defence" - info = "

Welcome

With this crate, you will be able to protect the station's solar arrays from constant barrages of space sand. The set-up is simple. Drag around all the satellites in front of solar panel arrays, preferably in direction open to space (the best spot is near the solar tracker and outside of the grilles), as that is where the space sand will come from. It's advised to set down just 1 satellite for each solar array. Once you set the satellite down, you can activate it by flicking on the switch. The crate also provides you with an OPTIONAL computer board to keep track of your defence satellites. Voila!

" diff --git a/GainStation13/code/datums/mood_events/needs_events.dm b/GainStation13/code/datums/mood_events/needs_events.dm new file mode 100644 index 0000000000..102a3c2d9b --- /dev/null +++ b/GainStation13/code/datums/mood_events/needs_events.dm @@ -0,0 +1,13 @@ +/datum/mood_event/fat_bad + description = "I'm so fat...\n" + mood_change = -4 + +/datum/mood_event/fat_good + description = "I'm so fat!\n" + mood_change = 4 + +//GS13 Port +/datum/mood_event/lewd_headpat + description = "I love headpats so much!\n" + mood_change = 3 + timeout = 2 MINUTES diff --git a/GainStation13/code/datums/traits.dm b/GainStation13/code/datums/traits.dm index d952803bfe..89484a7b25 100644 --- a/GainStation13/code/datums/traits.dm +++ b/GainStation13/code/datums/traits.dm @@ -19,6 +19,15 @@ value = -1 medical_record_text = "Patient's legs seem to lack strength" +/datum/quirk/strong_legs //GS13 + name = "Strong Legs" + desc = "Your body is able to handle heavier sizes very well." + value = 2 + mob_trait = TRAIT_STRONGLEGS + gain_text = "You feel like you can carry more weight." + lose_text = "Your legs cannot bear heavier loads anymore." + medical_record_text = "Patient exhibits increased muscle strength in their legs." + /datum/quirk/draconicspeaker name = "Draconic speaker" desc = "Due to your time spent around lizards, you can speak Draconic!" @@ -48,3 +57,94 @@ /datum/quirk/slimespeaker/remove() var/mob/living/M = quirk_holder M?.remove_language(/datum/language/slime) + +/datum/quirk/SpawnWithWheelchair + name = "Mobility Assistance" + desc = "After your last failed fitness test, you were advised to start using a hoverchair" + +/datum/quirk/SpawnWithWheelchair/on_spawn() + if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. + quirk_holder.buckled.unbuckle_mob(quirk_holder) + + var/turf/T = get_turf(quirk_holder) + var/obj/structure/chair/spawn_chair = locate() in T + + var/obj/vehicle/ridden/wheelchair/wheels = new(T) + if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking + wheels.setDir(spawn_chair.dir) + + wheels.buckle_mob(quirk_holder) + + +/datum/quirk/universal_diet + name = "Universal diet" + desc = "You are fine with eating just about anything normally edible, you have no strong dislikes in food. Toxic food will still hurt you, though." + value = 0 + gain_text = "You feel like you can eat any food type." + lose_text = "You start to dislike certain food types again." + medical_record_text = "Patient reports no strong dietary dislikes." + +/datum/quirk/universal_diet/add() + var/mob/living/carbon/human/H = quirk_holder + var/datum/species/species = H.dna.species + species.disliked_food = null + +/datum/quirk/universal_diet/remove() + var/mob/living/carbon/human/H = quirk_holder + if(H) + var/datum/species/species = H.dna.species + species.disliked_food = initial(species.disliked_food) + +//GS13 Port +//Port from Shadow +/datum/quirk/donotclone + name = "DNC" + desc = "You have filed a Do Not Clone order, stating that you do not wish to be cloned. You can still be revived by other means." + value = -2 + mob_trait = TRAIT_NEVER_CLONE + medical_record_text = "Patient has a DNC (Do not clone) order on file, and cannot be cloned as a result." + +/datum/quirk/inheat + name = "In Heat" + desc = "Your system burns with the desire to be bred, your body will betray you and alert others' to your desire when examining you. Satisfying your lust will make you happy, but ignoring it may cause you to become sad and needy." + value = 0 + mob_trait = TRAIT_HEAT + gain_text = "You body burns with the desire to be bred." + lose_text = "You feel more in control of your body and thoughts." + +/datum/quirk/headpat_slut + name = "Headpat Slut" + desc = "You like headpats, alot, maybe even a little bit too much. Headpats give you a bigger mood boost and cause arousal" + mob_trait = TRAIT_HEADPAT_SLUT + value = 0 + medical_record_text = "Patient seems overly affectionate." + +/datum/quirk/headpat_hater + name = "Distant" + desc = "You don't seem to show much care for being touched. Whether it's because you're reserved or due to self control, you won't wag your tail outside of your own control should you possess one." + mob_trait = TRAIT_DISTANT + value = 0 + medical_record_text = "Patient cares little with or dislikes being touched." + +/datum/quirk/vegetarian + name = "Vegetarian" + desc = "You find the idea of eating meat morally and physically repulsive." + value = 0 + gain_text = "You feel repulsion at the idea of eating meat." + lose_text = "You feel like eating meat isn't that bad." + medical_record_text = "Patient reports a vegetarian diet." + +/datum/quirk/vegetarian/add() + var/mob/living/carbon/human/H = quirk_holder + var/datum/species/species = H.dna.species + species.liked_food &= ~MEAT + species.disliked_food |= MEAT + +/datum/quirk/vegetarian/remove() + var/mob/living/carbon/human/H = quirk_holder + if(H) + var/datum/species/species = H.dna.species + if(initial(species.liked_food) & MEAT) + species.liked_food |= MEAT + else + species.disliked_food &= ~MEAT diff --git a/GainStation13/code/game/donator.dm b/GainStation13/code/game/donator.dm index cf74042a42..0300ac2dcf 100644 --- a/GainStation13/code/game/donator.dm +++ b/GainStation13/code/game/donator.dm @@ -9,7 +9,7 @@ name = "GATO Badge - Correspondent" category = LOADOUT_CATEGORY_DONATOR path = /obj/item/clothing/accessory/medal/gato_badge/middleman - ckeywhitelist = list("johnjimjim", "sonoida", "yeeny", "Not Number") + ckeywhitelist = list("johnjimjim", "sonoida", "yeeny", "Not Number", "Not_Number", "NotNumber",) /datum/gear/halsey_overcoat name = "Halsey's Commander Overcoat" @@ -29,12 +29,6 @@ path = /obj/item/gun/ballistic/automatic/toy/pistol/haydee ckeywhitelist = list("lumu", "sonoida") -//sorry for defining this here, just thought it'd be more convenient -/obj/item/clothing/suit/chloe/halsey //sorry to whoever chloe is, but that coat is far too badass not to be used - name = "Halsey's Commander Overcoat" - desc = "A Ginormous red overcoat that looks fit for a commander. Has a tag on it that reads: 'Property of Halsey Harmonten. Please return if lost!'" - armor = list("melee" = 20, "bullet" = 20, "laser" = 0,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 0) //worn by a captain player, might as well recompensate not wearing the carapace - /datum/gear/rose_plush name = "Dezir Rose Plush" category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS @@ -53,10 +47,6 @@ path = /obj/item/clothing/suit/storage/blueshield/grimmy ckeywhitelist = list("bbgrimmy") -/obj/item/clothing/suit/storage/blueshield/grimmy - name = "Overcoat of the Destitute" - desc = "Welcome all to the everlasting all-time low. Please put your hands together for the ever-failing one man show: Domino!" - /datum/gear/tarek_gps name = "Tarek's GPS" category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS @@ -69,10 +59,6 @@ path = /obj/item/crowbar/bronze/glaug ckeywhitelist = list("happytpr") -/obj/item/crowbar/bronze/glaug - name = "Milwaukee Pocket Crowbar" - desc = "Much more expensive. Still serves the same function." - /datum/gear/fatfang name = "Fattening Fangs Injector" category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS @@ -85,15 +71,6 @@ path = /obj/item/storage/belt/utility ckeywhitelist = list("killmewitha22", "Killmewitha22", "KILLMEWITHA22", "sonoida") -/obj/item/toy/sword/chloesabre/halsey - name = "Halsey's Sabre" - desc = "An elegant weapon, similar in design to the Captain's Sabre, but with a platinum hilt and an adamantine blade. the hilt has an engraved hyena on it." - force = 16 - -/obj/item/gun/ballistic/revolver/mateba/moka - name = "\improper Custom Unica 6 revolver" - desc = "An elegant and ornate revolver belonging to a certain hellcat commander. There are some words carved on its side: 'Dura Lex, Sed Lex'" - //metha rossi you fat hog /datum/gear/wgspell_add @@ -114,18 +91,44 @@ path = /obj/item/book/granter/spell/fattening/steal ckeywhitelist = list("sonoida", "themrsky", "Not Number") - /datum/gear/white_eyepatch_cabal name = "Cabal's Eyepatch" category = LOADOUT_CATEGORY_GLASSES path = /obj/item/clothing/glasses/eyepatch/cabal ckeywhitelist = list("spess_lizurd", "SPESS LIZURD", "spess lizurd", "SPESS_LIZURD", "spesslizurd", "sonoida") -/datum/gear/white_eyepatch +/datum/gear/white_eyepatch //accessible to anyone, at donator's request name = "White Eyepatch" category = LOADOUT_CATEGORY_GLASSES path = /obj/item/clothing/glasses/eyepatch/white +/datum/gear/metis_plush + name = "Metis Plush" + category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS + path = /obj/item/toy/plush/gs13/metis + ckeywhitelist = list("paraillegal", "Paraillegal") + +/datum/gear/wheelys + name = "Wheely-Heels" + category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS + path = /obj/item/clothing/shoes/wheelys + ckeywhitelist = list("colorlessspy", "Colorlessspy") + +/datum/gear/crowbars_plush + name = "Crowbars Plush" + category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS + path = /obj/item/toy/plush/gs13/crowbars + ckeywhitelist = list("M16nPregnant", "m16npregnant" ) + +/datum/gear/sams_welder + name = "Sam's Unlucky Welder" + category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS + path = /obj/item/weldingtool/bronze + ckeywhitelist = list("almaniak", "Almaniak", "AlManiak") + +// +//item presets for donator items +// /obj/item/clothing/glasses/eyepatch/white name = "White eyepatch" desc = "Smells faintly of medicine and headaches." @@ -137,3 +140,25 @@ desc = "Vulpine sluts only." icon_state = "eyepatch_white" item_state = "eyepatch_white" + +/obj/item/toy/sword/chloesabre/halsey + name = "Halsey's Sabre" + desc = "An elegant weapon, similar in design to the Captain's Sabre, but with a platinum hilt and an adamantine blade. the hilt has an engraved hyena on it." + force = 16 + +/obj/item/gun/ballistic/revolver/mateba/moka + name = "\improper Custom Unica 6 revolver" + desc = "An elegant and ornate revolver belonging to a certain hellcat commander. There are some words carved on its side: 'Dura Lex, Sed Lex'" + +/obj/item/clothing/suit/chloe/halsey //sorry to whoever chloe is, but that coat is far too badass not to be used + name = "Halsey's Commander Overcoat" + desc = "A Ginormous red overcoat that looks fit for a commander. Has a tag on it that reads: 'Property of Halsey Harmonten. Please return if lost!'" + armor = list("melee" = 20, "bullet" = 20, "laser" = 0,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 0) //worn by a captain player, might as well recompensate not wearing the carapace + +/obj/item/clothing/suit/storage/blueshield/grimmy + name = "Overcoat of the Destitute" + desc = "Welcome all to the everlasting all-time low. Please put your hands together for the ever-failing one man show: Domino!" + +/obj/item/crowbar/bronze/glaug + name = "Milwaukee Pocket Crowbar" + desc = "Much more expensive. Still serves the same function." diff --git a/GainStation13/code/game/lore_papers.dm b/GainStation13/code/game/lore_papers.dm index a879935823..82754112a1 100644 --- a/GainStation13/code/game/lore_papers.dm +++ b/GainStation13/code/game/lore_papers.dm @@ -549,3 +549,9 @@ "} + +//gs13 snack attack shuttle loan + +/obj/item/paper/fluff/chocoslime_research + name = "Stained Research Papers" + info = "AUDIO LOG OF CHOCOLATE SLIME REPORT NO.3. Despite possessing no obvious combat capabilities, the chocolate slime can feed itself to its victim, possibly rupturing its st-- mmhfph- grhm... ...(AUDIO LOG END)." diff --git a/GainStation13/code/game/objects/effects/decals/cleanable/misc.dm b/GainStation13/code/game/objects/effects/decals/cleanable/misc.dm new file mode 100644 index 0000000000..cc587892a5 --- /dev/null +++ b/GainStation13/code/game/objects/effects/decals/cleanable/misc.dm @@ -0,0 +1,18 @@ + +//GS13 glitters. Making the subtle variants their own subtypes, as some use the fake gas effects to make a room look like it's full of gas, when it isnt. +/obj/effect/decal/cleanable/glitter/pink_subtle + name = "faint pink glitter" + icon = 'GainStation13/icons/effects/atmospherics.dmi' + icon_state = "glitter" + color = "#9e0089" + +/obj/effect/decal/cleanable/glitter/white_subtle + name = "faint white glitter" + icon = 'GainStation13/icons/effects/atmospherics.dmi' + icon_state = "glitter" + +/obj/effect/decal/cleanable/glitter/blue_subtle + name = "faint blue glitter" + icon = 'GainStation13/icons/effects/atmospherics.dmi' + icon_state = "glitter" + color = "#2dd6ff" diff --git a/GainStation13/code/game/objects/effects/posters.dm b/GainStation13/code/game/objects/effects/posters.dm index ccfd5a2673..c1e72484a7 100644 --- a/GainStation13/code/game/objects/effects/posters.dm +++ b/GainStation13/code/game/objects/effects/posters.dm @@ -63,3 +63,101 @@ desc = "A poster from terran sectors, suggesting non-existence of mythical country of Malta." icon_state = "poster50" icon = 'GainStation13/icons/obj/contraband.dmi' + + +//recoloring of propaganda posters - from NT blue to GT pink +/obj/structure/sign/poster/gato/safety + name = "Here For Your Safety" + desc = "A poster glorifying the station's security force." + icon_state = "poster1_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/lovegato + name = "GATO Poster" + desc = "A poster with the GATO's friendly feline mascot." + icon_state = "poster2_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/cleanhands + name = "Cleanliness" + desc = "A poster warning of the dangers of poor hygiene." + icon_state = "poster3_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/helpothers + name = "Help Others" + desc = "A poster encouraging you to help fellow crewmembers." + icon_state = "poster4_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/buildstuff + name = "Build" + desc = "A poster glorifying the engineering team." + icon_state = "poster5_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/blessthisspess + name = "Bless This Spess" + desc = "A poster blessing this area." + icon_state = "poster6_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/science + name = "Science" + desc = "A poster depicting an atom." + icon_state = "poster7_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/arf + name = "Ian" + desc = "Arf arf. Yap." + icon_state = "poster8_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/obey + name = "Obey" + desc = "A poster instructing the viewer to obey authority." + icon_state = "poster9_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/walk + name = "Walk" + desc = "A poster instructing the viewer to walk instead of running." + icon_state = "poster10_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/statelaws + name = "State Laws" + desc = "A poster instructing cyborgs to state their laws." + icon_state = "poster11_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/loveian + name = "Love Ian" + desc = "Ian is love, Ian is life." + icon_state = "poster12_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/futurework + name = "Work For A Future" + desc = " A poster encouraging you to work for your future." + icon_state = "poster17_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/safety + name = "Safety: Internals" + desc = "A poster instructing the viewer to wear internals in the rare environments where there is no oxygen or the air has been rendered toxic." + icon_state = "poster19_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/safety2 + name = "Safety: Eye Protection" + desc = "A poster instructing the viewer to wear eye protection when dealing with chemicals, smoke, or bright lights." + icon_state = "poster20_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' + +/obj/structure/sign/poster/gato/reportcrimes + name = "Report Crimes" + desc = "A poster encouraging the swift reporting of crime or seditious behavior to station security." + icon_state = "poster22_legit" + icon = 'GainStation13/icons/obj/contraband.dmi' diff --git a/GainStation13/code/game/objects/effects/spawners/decals.dm b/GainStation13/code/game/objects/effects/spawners/decals.dm index f225c34d5b..8e61c22cc3 100644 --- a/GainStation13/code/game/objects/effects/spawners/decals.dm +++ b/GainStation13/code/game/objects/effects/spawners/decals.dm @@ -20,3 +20,74 @@ last_event = world.time active = 0 return + +//gato colored signs - from NT blue to GT pink +/obj/structure/sign/warning/gato + name = "\improper WARNING SIGN" + desc = "A warning sign which reads 'SECURE AREA'." + icon = 'GainStation13/icons/obj/decals.dmi' + +/obj/structure/sign/warning/gato/securearea + name = "\improper SECURE AREA" + desc = "A warning sign which reads 'SECURE AREA'." + +/obj/structure/sign/warning/gato/docking + name = "\improper KEEP CLEAR: DOCKING AREA" + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'." + +/obj/structure/sign/warning/gato/biohazard + name = "\improper BIOHAZARD" + desc = "A warning sign which reads 'BIOHAZARD'." + icon_state = "bio" + +/obj/structure/sign/warning/gato/electricshock + name = "\improper HIGH VOLTAGE" + desc = "A warning sign which reads 'HIGH VOLTAGE'." + icon_state = "shock" + +/obj/structure/sign/warning/gato/vacuum + name = "\improper HARD VACUUM AHEAD" + desc = "A warning sign which reads 'HARD VACUUM AHEAD'." + icon_state = "space" + +/obj/structure/sign/warning/gato/vacuum/external + name = "\improper EXTERNAL AIRLOCK" + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'." + layer = MOB_LAYER + +/obj/structure/sign/warning/gato/deathsposal + name = "\improper DISPOSAL: LEADS TO SPACE" + desc = "A warning sign which reads 'DISPOSAL: LEADS TO SPACE'." + icon_state = "deathsposal" + +/obj/structure/sign/warning/gato/pods + name = "\improper ESCAPE PODS" + desc = "A warning sign which reads 'ESCAPE PODS'." + icon_state = "pods" + +/obj/structure/sign/warning/gato/fire + name = "\improper DANGER: FIRE" + desc = "A warning sign which reads 'DANGER: FIRE'." + icon_state = "fire" + +/obj/structure/sign/warning/gato/nosmoking + name = "\improper NO SMOKING" + desc = "A warning sign which reads 'NO SMOKING'." + icon_state = "nosmoking2" + +/obj/structure/sign/warning/gato/nosmoking/circle + icon_state = "nosmoking" + +/obj/structure/sign/warning/gato/radiation + name = "\improper HAZARDOUS RADIATION" + desc = "A warning sign alerting the user of potential radiation hazards." + icon_state = "radiation" + +/obj/structure/sign/warning/gato/radiation/rad_area + name = "\improper RADIOACTIVE AREA" + desc = "A warning sign which reads 'RADIOACTIVE AREA'." + +/obj/structure/sign/warning/gato/enginesafety + name = "\improper ENGINEERING SAFETY" + desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift." + icon_state = "safety" diff --git a/GainStation13/code/game/objects/items/RCD.dm b/GainStation13/code/game/objects/items/RCD.dm index fcd5d1c1c5..2fc745adaf 100644 --- a/GainStation13/code/game/objects/items/RCD.dm +++ b/GainStation13/code/game/objects/items/RCD.dm @@ -3,7 +3,7 @@ desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly. This model works at a distance." id = "arcd_design" build_type = PROTOLATHE - materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/glass = MINERAL_MATERIAL_AMOUNT, /datum/material/diamond = 500, MAT_BLUESPACE = 500) // costs more than what it did in the autolathe, this one comes loaded. + materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/glass = MINERAL_MATERIAL_AMOUNT, /datum/material/diamond = 500, /datum/material/bluespace = 500) // costs more than what it did in the autolathe, this one comes loaded. build_path = /obj/item/construction/rcd/arcd category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -41,6 +41,6 @@ id = "borg_arcd" build_type = MECHFAB build_path = /obj/item/borg/upgrade/arcd - materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/glass = MINERAL_MATERIAL_AMOUNT, /datum/material/diamond = 500, MAT_BLUESPACE = 500) + materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/glass = MINERAL_MATERIAL_AMOUNT, /datum/material/diamond = 500, /datum/material/bluespace = 500) construction_time = 100 category = list("Cyborg Upgrade Modules") diff --git a/GainStation13/code/game/objects/structures/barsigns.dm b/GainStation13/code/game/objects/structures/barsigns.dm new file mode 100644 index 0000000000..78b8d43b56 --- /dev/null +++ b/GainStation13/code/game/objects/structures/barsigns.dm @@ -0,0 +1,7 @@ +////////////// GS13 BARSIGNS /////////////// +// Because modularity, yo + +/datum/barsign/the_busted_belt //gs13 + name = "The Busted Belt" + icon = "thebustedbelt" //...I dont think this survived the rebase, oops. + desc = "GATO is not liable for any pieces of broken wardrobe." diff --git a/GainStation13/code/game/objects/structures/sofa.dm b/GainStation13/code/game/objects/structures/sofa.dm new file mode 100644 index 0000000000..7677005d5c --- /dev/null +++ b/GainStation13/code/game/objects/structures/sofa.dm @@ -0,0 +1,12 @@ +/obj/structure/chair/sofa/old + icon_state = "sofamiddle" + +/obj/structure/chair/sofa/left/old + icon_state = "sofaend_left" + +/obj/structure/chair/sofa/right/old + icon_state = "sofaend_right" + +/obj/structure/chair/sofa/corner/old + icon_state = "sofacorner" + diff --git a/GainStation13/code/game/plushes.dm b/GainStation13/code/game/plushes.dm index 00f0dfeac5..a349015116 100644 --- a/GainStation13/code/game/plushes.dm +++ b/GainStation13/code/game/plushes.dm @@ -1,8 +1,8 @@ /obj/item/toy/plush/gs13 - icon = 'icons/obj/plushes.dmi' + icon = 'GainStation13/icons/obj/plushes.dmi' /obj/item/toy/plush/gs13/metha - name = "Magical Captain plush/gs13ie" + name = "Magical Captain plushie" desc = "A NEW GATO TOY FROM GATO CORPORATION, FEEL THE MAGIC OF THIS COOL TOY!" icon_state = "metha" attack_verb = list("fattened","Metha'd", "Brigged") @@ -45,32 +45,39 @@ squeak_override = list('modular_citadel/sound/voice/weh.ogg' = 1) /obj/item/toy/plush/gs13/kinichi - desc = "A silly looking plush/gs13ie of an adorable lizard janitor. His smile is heartwarming to look at." + desc = "A silly looking plushie of an adorable lizard janitor. His smile is heartwarming to look at." icon_state = "kinichi" attack_verb = list("hissed","squished", "hugged") /obj/item/toy/plush/gs13/lgo - desc = "An attempt to market one of cleaning machines from the local market, in the form of a purchasable plush/gs13ie." + desc = "An attempt to market one of cleaning machines from the local market, in the form of a purchasable plushie." icon_state = "lgo" attack_verb = list("gronkled","beeped", "brushed") /obj/item/toy/plush/gs13/oliver - desc = "A plush/gs13 of a silly shark with a stylish bandanna." + desc = "A plush of a silly shark with a stylish bandanna." icon_state = "oliver" attack_verb = list("chomped", "bit") /obj/item/toy/plush/gs13/chloe - desc = "A plush/gs13 of a chunky red-haired botanist." + desc = "A plush of a chunky red-haired botanist." icon_state = "chloe" attack_verb = list("squished", "hugged", "smushed") /obj/item/toy/plush/gs13/mammal/fox icon_state = "fox" +/obj/item/toy/plush/gs13/delta + desc = "A plush of a chunky greaseball." + icon_state = "delta" + attack_verb = list("squished", "hugged", "smushed") -/obj/item/toy/plush/mothplushie/moffplush - name = "moth plushie" - desc = "A plushie depicting an adorable mothperson. It's a huggable bug!" - icon_state = "moffplush" - item_state = "moffplush" - squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1) +/obj/item/toy/plush/gs13/metis + desc = "A plush of black-furred nerdy goat." + icon_state = "metis" + attack_verb = list("squished", "goated", "baah'd") + +/obj/item/toy/plush/gs13/crowbars + desc = "A plush of a silly-eyed xeno seccie." + icon_state = "crowbars" + attack_verb = list("squished", "crowbared", "beno'd") diff --git a/GainStation13/code/game/turfs/closed.dm b/GainStation13/code/game/turfs/closed.dm index 1863f20fb1..d552cd6dd0 100644 --- a/GainStation13/code/game/turfs/closed.dm +++ b/GainStation13/code/game/turfs/closed.dm @@ -16,12 +16,12 @@ /turf/closed/indestructible/candy name = "Candy wall" desc = "Despite being made out of mere candy, this wall is harder than stone!" - icon = 'Gainstation13/icons/turf/wall_candy.dmi' + icon = 'Gainstation13/icons/turf/walls/wall_candy.dmi' icon_state = "candywall" /turf/closed/indestructible/chocolate name = "Chocolate wall" desc = "Somehow, it doesn't melt at all..." - icon = 'Gainstation13/icons/turf/wall_candy.dmi' + icon = 'Gainstation13/icons/turf/walls/wall_candy.dmi' icon_state = "choco_wall1" diff --git a/GainStation13/code/game/turfs/open.dm b/GainStation13/code/game/turfs/open.dm index d4af1f37aa..d720dcacc2 100644 --- a/GainStation13/code/game/turfs/open.dm +++ b/GainStation13/code/game/turfs/open.dm @@ -59,25 +59,3 @@ name = "gato-themed carpet" icon_state = "tile-carpet-gato" turf_type = /turf/open/floor/carpet/gato - - -/turf/open/indestructible/layenia/crystal - name = "Lattice Crystal" - desc = "A glowing azure crystal, with strange properties to make things float." - icon = 'GainStation13/icons/turf/crystal_floor.dmi' - baseturfs = /turf/open/indestructible/layenia/crystal - slowdown = 1 - light_range = 4 - light_power = 0.5 - barefootstep = FOOTSTEP_HARD_BAREFOOT - clawfootstep = FOOTSTEP_HARD_CLAW - heavyfootstep = FOOTSTEP_GENERIC_HEAVY - light_color = LIGHT_COLOR_BLUE - initial_gas_mix = FROZEN_ATMOS - planetary_atmos = TRUE - smooth = SMOOTH_TRUE | SMOOTH_BORDER | SMOOTH_MORE - canSmoothWith = list(/turf/open/indestructible/layenia/crystal) - -/turf/open/indestructible/layenia/crystal/garden - initial_gas_mix = OPENTURF_DEFAULT_ATMOS - planetary_atmos = TRUE diff --git a/GainStation13/code/machinery/feeding_tube_industrial.dm b/GainStation13/code/machinery/feeding_tube_industrial.dm new file mode 100644 index 0000000000..a79ee2b81f --- /dev/null +++ b/GainStation13/code/machinery/feeding_tube_industrial.dm @@ -0,0 +1,513 @@ +/** + * Contains: + * Industrial Feeding Tube + */ + +/obj/structure/disposaloutlet/industrial_feeding_tube + name = "\improper industrial feeding tube" + desc = "An imposing machine designed to pump an absurd amount of \"food\" down something's throat. It seems to connect to disposal pipes." + icon = 'GainStation13/icons/obj/feeding_tube_industrial.dmi' + icon_state = "base" + max_integrity = 500 //Durable... + anchored = FALSE + /// Is it welded down? + var/welded = FALSE + /// Who the tube is attached to + var/mob/living/attached + /// Where the tube tries to dump it's stuff into + var/output_dest + /// It's Glogged ! + var/clogged = FALSE + /// Are we currently pumping? + var/pumping = FALSE + /// Stuff we're currently trying to pump out + var/list/pump_stuff = list() + /// How many items we can push per-pump. + var/pump_limit = 5 + + +/obj/structure/disposaloutlet/industrial_feeding_tube/Initialize(mapload) + . = ..() + + update_icon() + + if(anchored) // So it can be mapped in, attached to something. + trunk = locate() in loc + if(!trunk) + return + trunk.linked = src // link the pipe trunk to self + anchored = TRUE + welded = TRUE //Make it functional + +/obj/structure/disposaloutlet/industrial_feeding_tube/examine(mob/user) + . = ..() + if(LAZYLEN(pump_stuff)) + switch(LAZYLEN(pump_stuff)) + if(1) + . += "It seems to have something inside" + if(2 to 20) + . += "It seems to have some stuff inside" + if(21 to 50) + . += "It seems to be rather full of stuff!" + if(51 to 200) + . += "It's walls are bulging out with tons of stuff packed inside!!" + else + . += "The whole machine is shuddering as it strains to contain hundreds of objects!" + if(clogged) + . += "It seems to be clogged with stuff!" + + +/obj/structure/disposaloutlet/industrial_feeding_tube/CheckParts(list/parts_list) + ..() + pump_limit = 0 + for(var/obj/item/stock_parts/matter_bin/mb in contents) + if(mb in pump_stuff) //stuff we're going to pump are not being used to build us. + continue + pump_limit += mb.rating * 2.5 // ~20 items per pump with 2 bluespace bins + + pump_limit = ceil(pump_limit) //Only whole numbers + + +/obj/structure/disposaloutlet/industrial_feeding_tube/deconstruct(disassembled) + if(!(flags_1 & NODECONSTRUCT_1)) + new /obj/item/stack/sheet/metal(loc, 5) + new /obj/item/stack/sheet/plastic(loc, 5) + new /obj/item/pipe/binary(loc, PIPE_STRAIGHT, NORTH) + new /obj/item/pipe/binary(loc, PIPE_STRAIGHT, NORTH) + + if(contents) //Anything still glogged inside... + for(var/atom/movable/AM in src) + AM.forceMove(loc) + qdel(src) + +/obj/structure/disposaloutlet/industrial_feeding_tube/Destroy() + if(attached) + attached = null + if(output_dest) + output_dest = null + + if(LAZYLEN(contents)) // Just to be safe, lets dump everything out before it's deleted. + for(var/atom/movable/AM in contents) + if(istype(AM, /obj/item/stock_parts/matter_bin)) + if(AM in pump_stuff) // Unless it's one of our component parts.. + AM.forceMove(loc) + continue + qdel(AM) + + return ..() + +/obj/structure/disposaloutlet/industrial_feeding_tube/MouseDrop(mob/living/target) + . = ..() + if(!usr.canUseTopic(src, BE_CLOSE)) + return + if(!welded) + to_chat(usr, "You need to weld down \the [src] before you can use it.") + return + if(attached) + attached.visible_message("\The [src]'s tube is removed from [attached].", "The tube is removed from you.") + detach_tube(FALSE) + return + if(!isliving(target)) + return + + if(iscarbon(target)) // iscarbon() so that xenos/wendigos(?) can do feeding stuff maybe. Maybe. + var/mob/living/carbon/feedee = target + + if(HAS_TRAIT(feedee, TRAIT_TRASHCAN) || (feedee.vore_flags & FEEDING)) + var/food_dump = input(usr, "Where do you shove the tube? (cancel to just feed normally)", "Select belly") as null|anything in feedee.vore_organs + if(food_dump && isbelly(food_dump)) + // Best to be safe with this thing. Since you can eat pretty much anythign with it... + // Including People, Intentionally or otherwise. + if(usr != feedee) // If someone is feeding themself, skip the prefcheck. + var/feedeePrefCheck = alert(feedee, "[usr] is attempting to shove \the [src]'s tube into your [food_dump]! Do you want this?", "THE TUBE", "Yes!!", "No!") + if(feedeePrefCheck != "Yes!!") + to_chat(usr, "[feedee] doesnt want to be fed by \the [src]...") + return + + attach_tube(feedee, food_dump) // Attach in Vore Mode + return + + //Either we arn't attaching to vorebelly, or we arnt able to. Let's try to feed them normally! + if(usr != feedee) + var/feedeePrefCheck = alert(feedee, "[usr] is attempting to shove \the [src]'s tube into your mouth! Do you want this?", "THE TUBE", "Yes!!", "No!") + if(feedeePrefCheck != "Yes!!") + to_chat(usr, "[feedee] doesnt want to be fed by \the [src]...") + return + + attach_tube(feedee) // Attach normally + return + +/// Attaches the tube to the target. dest defaults to the target, if dest isnt defined +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/attach_tube(var/mob/living/target, var/dest = null, var/loud = TRUE) + if(!target) + return FALSE + if(dest) + output_dest = dest + else + output_dest = target + attached = target + + if(loud) + if(isbelly(output_dest)) + target.visible_message("\The [src]'s tube is shoved into [attached]!", "The tube is shoved directly into your [output_dest]!") + else + target.visible_message("\The [src]'s tube is shoved into [attached]!", "The tube is shoved directly into you!") + + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(check_target_dist)) + update_icon() + face_atom(target) + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/detach_tube(var/loud = TRUE) + UnregisterSignal(attached, COMSIG_MOVABLE_MOVED) + if(loud) + attached.visible_message("[attached] is detached from [src].") + attached = null + output_dest = null + update_icon() + + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/check_target_dist() + if(!attached) //oh no + UnregisterSignal() + + if(!(get_dist(src, attached) <= 1 && isturf(attached.loc))) + attached.visible_message("","The feeding hose is yanked out of you!") + detach_tube(FALSE) + return + + face_atom(attached) + +/obj/structure/disposaloutlet/industrial_feeding_tube/update_overlays() + // A lot of this is temp. More likely than not you shouldnt see this comment as it'll be properly updated when reo PRs this. + // Or it wont because epic fail :333 + . = ..() + cut_overlays() + + var/mutable_appearance/tube_overlay = mutable_appearance('GainStation13/icons/obj/feeding_tube_industrial.dmi', "tube_idle") + + if(pumping) + tube_overlay.icon_state = "tube-pump" + else + if(attached) + tube_overlay.icon_state = "tube-active" + else + tube_overlay.icon_state = "tube-idle" + + if(welded) //if we're not welded, dont show our light on. + add_overlay("light-[clogged ? "r" : "g"]") + + add_overlay(tube_overlay) + + +// expel the contents of the holder object, then delete it +// called when the holder exits the outlet +/obj/structure/disposaloutlet/industrial_feeding_tube/expel(obj/structure/disposalholder/H) + if(H.hasmob) //Uh oh- + playsound(src, "clang", 100) + visible_message("\The [src] loudly clunks as something large enters it's intake!") + H.active = FALSE + H.vent_gas(get_turf(src)) + if(clogged) + clog(H.contents) + else + for(var/atom/movable/AM in H.contents) + pump_stuff += AM // Get ready to pump! + AM.forceMove(src) + if(!pumping) //Lets start a new pump cycle if we arnt pumping. Otherwise, it'll just be added to the queue. + pump() + qdel(H) + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/pump(repeat = TRUE, unlimited = FALSE) + if(clogged) + return + var/list/this_pump = list() //What we're going to pump this cycle + var/item_count = 0 + for(var/atom/movable/AM in pump_stuff) + this_pump += AM // Add to the stuff we're currently pumping + item_count++ + if(item_count > pump_limit && !unlimited) //We're pumping as much as our parts allow! + break + if(!pumping) + pumping = TRUE + playsound(src, 'GainStation13/sound/rakshasa/Corrosion3.ogg', 50, 1) + update_icon() + spawn(8) + pumping = FALSE + update_icon() + spawn(9) //Wait for the animation to finish + + + if(!output_dest || !attached) //We either arnt, or got disconnected by time stuff was about to splort out! + spew(this_pump, TRUE) + if(LAZYLEN(pump_stuff) && repeat) + pump() + return + + var/fed_something = FALSE + // Feed Normally + if(isliving(output_dest)) + var/list/not_food = list() + for(var/atom/movable/AM in this_pump) + if(istype(AM, /obj/item/reagent_containers/food/snacks)) + var/obj/item/reagent_containers/food/snacks/food = AM + var/datum/reagents/food_reagents = food.reagents + if(food_reagents.total_volume) + var/food_size = food_reagents.total_volume //We're cramming the Whole Thing down your throat~ + + SEND_SIGNAL(food, COMSIG_FOOD_EATEN, attached) + + food_reagents.reaction(attached, INGEST, food_size) + food_reagents.trans_to(attached, food_size) + + food.checkLiked(food_size, attached) //...Hopefully you like the taste. + + + if(food.trash) //Lets make the trash the food's supposed to make, if it has any + var/obj/item/trash = food.generate_trash(src) + if(not_food) + not_food += trash // If it's already going to get clogged, clog it more with the trash + else + trash.forceMove(get_turf(src)) // Otherwise move it to the tile. For convinience + + fed_something = TRUE + pump_stuff -= food + qdel(food) //Gulp... + continue + else + not_food += AM // That's not (traditionally) edible! + + if(LAZYLEN(not_food)) + clog(not_food) // Now you've gone and clogged us... + + // Feed Voraciously + if(isbelly(output_dest)) + var/list/inedible //Some things shouldnt be eaten... + for(var/atom/movable/AM in this_pump) + pump_stuff -= AM // We're putting this in. Remove it from the list. + if(isitem(AM)) + var/obj/item/I = AM + if(is_type_in_list(I, item_vore_blacklist)) + inedible += I + continue + + if(isliving(AM)) + var/mob/living/cutie = AM + if(!(cutie.vore_flags & DEVOURABLE)) //Do not eat this QT... + inedible += cutie + continue + + + fed_something = TRUE + AM.forceMove(output_dest) + if(inedible) + clog(inedible) + + // After everything, if we've pushed something, play the "rubber tube noise" + // It's technically an evil digestion sound from a snowflake shadekin, but it makes for a good tube sound. Thanks Verkie! + if(fed_something) + playsound(attached.loc, 'GainStation13/sound/rakshasa/Corrosion3.ogg', rand(50,70), 1) + + if(LAZYLEN(pump_stuff) && repeat) + pump() + else + pumping = FALSE + update_icon() + +/obj/structure/disposaloutlet/industrial_feeding_tube/expel_holder(obj/structure/disposalholder/H, playsound=FALSE) + if(playsound) + playsound(src, 'sound/machines/hiss.ogg', 25, 0, 0) + + if(!H) + return + + spew(H.contents) + + H.vent_gas(get_turf(src)) + qdel(H) + +/obj/structure/disposaloutlet/industrial_feeding_tube/attack_hand(mob/user) + . = ..() + if(attached) + detach_tube() + return + +/obj/structure/disposaloutlet/industrial_feeding_tube/attackby(obj/item/I, mob/living/user, params) + if(user.a_intent != INTENT_HELP) + return ..() + switch(I.tool_behaviour) + if(TOOL_WRENCH) + if(welded) + to_chat(user, "\The [src] is firmly welded to the floor. Cut the floorwelds before trying to unwrench it!") + return TRUE + var/turf/T = get_turf(src) + if(T.intact && isfloorturf(T)) + to_chat(user, "You need to remove the floor tiles before [anchored ? "detaching" : "attaching"] \the [src]!") + return TRUE + if(anchored) + I.play_tool_sound(src, 100) + + anchored = FALSE + trunk.linked = null + trunk = null + attached = null + output_dest = null + + user.visible_message("[user] detaches \the [src] from the floor!") + return TRUE + else + var/found_trunk = FALSE + for(var/obj/structure/disposalpipe/P in T) + if(istype(P, /obj/structure/disposalpipe/trunk)) + var/obj/structure/disposalpipe/trunk/newtrunk = P + if(newtrunk.linked) //Trunk is already linked to something + continue + found_trunk = TRUE + trunk = newtrunk + break + if(!found_trunk) + to_chat(user, "\The [src] requires a trunk underneath it in order to work!") + return + + to_chat(user, "You attach \the [src] to the trunk.") + anchored = TRUE + + I.play_tool_sound(src, 100) + update_icon() + return + + . = ..() + +/obj/structure/disposaloutlet/industrial_feeding_tube/crowbar_act(mob/living/user, obj/item/I) + if(!clogged) + to_chat(user, "\The [src] doesnt seem to be clogged at the moment...") + return TRUE + user.visible_message("[user] starts to pry open the maintenance hatch of \the [src], attempting to unclog it...") + I.play_tool_sound(src, 100) + if(I.use_tool(src, user, 30)) + user.visible_message("[user] pries open the maintenance hatch on \the [src], unclogging it!") + unclog() + return TRUE + + +// Plungers are a thing now, why not give them the ability to unclog? +/obj/structure/disposaloutlet/industrial_feeding_tube/plunger_act(obj/item/plunger/P, mob/living/user, reinforced) + if(!clogged) + to_chat(user, "\The [src] doesnt seem to be clogged at the moment...") + return TRUE + user.visible_message("[user] starts to furiously plunge the tube of \the [src], attempting to unclog it...") + //I.play_tool_sound(src, 100) I dont think plungers have a use sound... + if(P.use_tool(src, user, 20)) //Plungers are slightly shorter because funny niche use + user.visible_message("[user] pries open the maintenance hatch on \the [src], unclogging it!") + unclog() + return + +/obj/structure/disposaloutlet/industrial_feeding_tube/welder_act(mob/living/user, obj/item/I) + if(!I.tool_start_check(user, amount=0)) + return + if(anchored) + //var/turf/T = get_turf(src) + if(!welded) + if(!trunk) // If we're attaching it, we need to check for the pipe we're attaching to + to_chat(user, "\The [src] needs to be welded to a trunk.") + return TRUE + to_chat(user, "You start welding \the [src] in place...") + else + if(clogged) // There's junk inside! + to_chat(user, "There's junk inside \the [src]! Clean it out before trying to remove it!") + return TRUE + //Already welded, lets cut it free + to_chat(user, "You start slicing the floorweld off \the [src]...") + + playsound(src, 'sound/items/welder2.ogg', 100, 1) + if(I.use_tool(src, user, 20)) + update_icon() + playsound(src, 'sound/items/welder.ogg', 100, 1) + if(welded) + to_chat(user, "You slice the floorweld off [src].") + welded = FALSE + trunk.linked = null + return TRUE + else + to_chat(user, "You weld \the [src] to the floor.") + welded = TRUE + trunk.linked = src + return TRUE + + + else + playsound(src, 'sound/items/welder2.ogg', 100, 1) + to_chat(user, "You begin deconstructing \the [src]") + if(I.use_tool(src, user, 30)) + playsound(src, 'sound/items/welder.ogg', 100, 1) + deconstruct(TRUE) + return TRUE + +// Someone got stuck inside after it got clogged! +// Lets let them force their way out +/obj/structure/disposaloutlet/industrial_feeding_tube/container_resist(mob/living/user) + if(user.stat || !clogged) //If it's not clogged, they'll be ejected soon... One way or another. + return + playsound(src, 'sound/effects/clang.ogg', 50) + visible_message("\The [src] loudly clongs as something inside tries to break free!") + if(do_after(user, 100)) + unclog() + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/clog(list/clog_junk, loud = TRUE) + clogged = TRUE + for(var/atom/movable/AM in clog_junk) + if(!(AM in pump_stuff)) + pump_stuff += AM + AM.forceMove(src) + + + update_icon() + if(loud) + playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 1) + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/unclog() + + spew(pump_stuff) + + clogged = FALSE + update_icon() + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/spew(var/list/spew_stuff, playsound = FALSE) + var/turf/T = get_turf(src) + + if(playsound) + playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) + for(var/atom/movable/AM in spew_stuff) + if(AM in pump_stuff) + pump_stuff -= AM + target = get_offset_target_turf(loc, rand(2)-rand(2), rand(2)-rand(2)) + + AM.forceMove(T) + AM.pipe_eject(dir) + AM.throw_at(target, eject_range, 1) + +/obj/structure/disposaloutlet/industrial_feeding_tube/proc/face_atom(atom/A) //Literally stolen from /mob. Sue me. + if(!A || !x || !y || !A.x || !A.y ) + return + var/dx = A.x - x + var/dy = A.y - y + if(!dx && !dy) // Wall items are graphically shifted but on the floor + if(A.pixel_y > 16) + setDir(NORTH) + else if(A.pixel_y < -16) + setDir(SOUTH) + else if(A.pixel_x > 16) + setDir(EAST) + else if(A.pixel_x < -16) + setDir(WEST) + return + + if(abs(dx) < abs(dy)) + if(dy > 0) + setDir(NORTH) + else + setDir(SOUTH) + else + if(dx > 0) + setDir(EAST) + else + setDir(WEST) diff --git a/GainStation13/code/machinery/powered_quantum_pad.dm b/GainStation13/code/machinery/powered_quantum_pad.dm new file mode 100644 index 0000000000..6e51bd6bb6 --- /dev/null +++ b/GainStation13/code/machinery/powered_quantum_pad.dm @@ -0,0 +1,7 @@ +/obj/machinery/quantumpad + /// Does the quantum pad need power to work? + var/needs_power = TRUE + +/obj/machinery/quantumpad/always_powered + needs_power = FALSE + diff --git a/GainStation13/code/mechanics/calorite.dm b/GainStation13/code/mechanics/calorite.dm index d9c4c35004..f4b7351946 100644 --- a/GainStation13/code/mechanics/calorite.dm +++ b/GainStation13/code/mechanics/calorite.dm @@ -1,6 +1,28 @@ /datum/material/calorite name = "calorite" sheet_type = /obj/item/stack/sheet/mineral/calorite + color = list(340/255, 150/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + strength_modifier = 1.5 + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + beauty_modifier = 0.05 + armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, RAD = 1, FIRE = 0.7, ACID = 1.1) // Same armor as gold. + +/datum/material/calorite/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(!(material_flags & MATERIAL_AFFECT_STATISTICS)) + return + + var/obj/source_obj = source + source_obj.damtype = FAT + +/datum/material/calorite/on_removed_obj(obj/source, material_flags) + if(!(material_flags & MATERIAL_AFFECT_STATISTICS)) + return ..() + + var/obj/source_obj = source + source_obj.damtype = initial(source_obj.damtype) + return ..() + /turf/closed/mineral/calorite //GS13 mineralType = /obj/item/stack/ore/calorite @@ -14,6 +36,7 @@ points = 40 custom_materials = list(/datum/material/calorite=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/calorite + mine_experience = 20 /obj/item/stack/sheet/mineral/calorite name = "calorite" @@ -25,17 +48,21 @@ novariants = TRUE grind_results = list(/datum/reagent/consumable/lipoifier = 2) point_value = 40 + custom_materials = list(/datum/material/calorite=MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/mineral/calorite + material_type = /datum/material/calorite + walltype = /turf/closed/wall/mineral/calorite GLOBAL_LIST_INIT(calorite_recipes, list ( \ new/datum/stack_recipe("Calorite tile", /obj/item/stack/tile/mineral/calorite, 1, 4, 20), \ - new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1), - new/datum/stack_recipe("Calorite doors", /obj/structure/mineral_door/calorite, 5, one_per_turf = 1, on_floor = 1), + new/datum/stack_recipe("Calorite Ingots", /obj/item/ingot/calorite, time = 30), \ + new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1),\ + new/datum/stack_recipe("Calorite doors", /obj/structure/mineral_door/calorite, 5, one_per_turf = 1, on_floor = 1),\ )) -/obj/item/stack/sheet/mineral/calorite/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.calorite_recipes +/obj/item/stack/sheet/mineral/calorite/get_main_recipes() . = ..() + . += GLOB.calorite_recipes /obj/item/stack/tile/mineral/calorite //GS13 @@ -242,3 +269,5 @@ GLOBAL_LIST_INIT(calorite_recipes, list ( \ fatten() . = ..() +/obj/item/ingot/calorite + custom_materials = list(/datum/material/calorite=1500) diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm index 4293c5e203..a0a967a3b6 100644 --- a/GainStation13/code/mechanics/den abductors/console.dm +++ b/GainStation13/code/mechanics/den abductors/console.dm @@ -26,7 +26,7 @@ var/credits = linked_scale?.credits dat += "Gear Credits: [credits]
" - dat += "Transfer credits in exchange for supplies:
" + dat += "Transfer credits in exchange for supplies:
" for(var/goodie in subtypesof(/datum/feeders_den_goodie)) var/datum/feeders_den_goodie/temp_goodie = new goodie() dat += "[temp_goodie.name] (Cost: [temp_goodie.credit_cost])
" @@ -64,7 +64,7 @@ say("Unable to purchase more!") return FALSE - if(!Dispense(item_path, price)) + if(!Dispense(item_path, price)) return FALSE if(buy_counts[goodie_datum.name] == null) @@ -146,7 +146,7 @@ return TRUE return ..() - + /obj/structure/scale/credits name = "tracking scale" desc = "A upgraded scale that tracks to weight of all of those that have stepped on it. Using this will add credits to the feeder console" @@ -155,7 +155,7 @@ /// How much credits do we currently have? var/credits = 0 /// How many credits are we going to reward per pound gained? - var/credits_per_fatness = 0.25 + var/credits_per_fatness = 0.25 /// A list containing all of the people we've scanned and their maximum weight. var/list/scanned_people = list() /// What is the current team number? @@ -201,7 +201,7 @@ var/credit_total = max((credits_to_add - credits_to_remove), 0) if(credit_total > 0) say("[credit_total] credits have been deposited into the console.") - + credits += credit_total scanned_people[fatty] += credit_total @@ -214,6 +214,7 @@ team_number = 27 vest_mode_action = null vest_disguise_action = null + check_if_abductor = FALSE /obj/machinery/computer/camera_advanced/abductor/feeder/IsScientist(mob/living/carbon/human/H) return TRUE @@ -245,4 +246,4 @@ prepare(target,user) return TRUE - + diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm index 6c1f844b03..f845f50b68 100644 --- a/GainStation13/code/mechanics/fatness.dm +++ b/GainStation13/code/mechanics/fatness.dm @@ -21,10 +21,8 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten var/doorstuck = 0 var/fullness = FULLNESS_LEVEL_HALF_FULL - var/fullness_reduction_timer = 0 var/burpslurring = 0 - - var/fullness_reducion_timer = 0 // When was the last time they emoted to reduce their fullness + var/fullness_reduction_timer = 0 // When was the last time they emoted to reduce their fullness /** * Adjusts the fatness level of the parent mob. @@ -60,6 +58,25 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten perma_apply() //Check and apply for permanent fat xwg_resize() //Apply XWG + // Handle Awards + if(client) + if(fatness > FATNESS_LEVEL_BLOB) + client.give_award(/datum/award/achievement/fat/blob, src) + if(fatness > 10000) + client.give_award(/datum/award/achievement/fat/milestone_one, src) + if(fatness > 25000) + client.give_award(/datum/award/achievement/fat/milestone_two, src) + if(fatness > 50000) + client.give_award(/datum/award/achievement/fat/milestone_three, src) + if(fatness > 100000) + client.give_award(/datum/award/achievement/fat/milestone_four, src) + if(fatness > 500000) + client.give_award(/datum/award/achievement/fat/milestone_five, src) + if(fatness > 1000000) + client.give_award(/datum/award/achievement/fat/milestone_six, src) + if(fatness > 10000000) + client.give_award(/datum/award/achievement/fat/milestone_seven, src) + return TRUE /mob/living/carbon/fully_heal(admin_revive) @@ -76,6 +93,9 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten return FALSE switch(type_of_fattening) + if(FATTENING_TYPE_ALMIGHTY) + return TRUE + if(FATTENING_TYPE_ITEM) if(!client?.prefs?.weight_gain_items) return FALSE diff --git a/GainStation13/code/mechanics/fatrousal.dm b/GainStation13/code/mechanics/fatrousal.dm index c31b6054af..2a93a8cad0 100644 --- a/GainStation13/code/mechanics/fatrousal.dm +++ b/GainStation13/code/mechanics/fatrousal.dm @@ -16,14 +16,14 @@ var/mob/living/carbon/C = quirk_holder C.hider_remove(src) -/* + /datum/quirk/fatrousal/proc/fat_hide(var/mob/living/carbon/user) if(iscarbon(quirk_holder)) var/mob/living/carbon/C = quirk_holder - return C.getArousalLoss()*35 + return C.getArousal()*35 return FALSE -*/ + ///mob/living/adjust_arousal(amount, updating_arousal=1) // if(HAS_TRAIT(src, TRAIT_FATROUSAL)) diff --git a/GainStation13/code/mechanics/recipes.dm b/GainStation13/code/mechanics/recipes.dm index 9ecfd34400..97d15bf350 100644 --- a/GainStation13/code/mechanics/recipes.dm +++ b/GainStation13/code/mechanics/recipes.dm @@ -2,4 +2,14 @@ name = "Calorite dance floor" result = /obj/item/stack/tile/mineral/calorite/dance reqs = list(/obj/item/stack/cable_coil = 3, /obj/item/stack/tile/mineral/calorite = 1) - category = CAT_MISC + subcategory = CAT_MISCELLANEOUS + category = CAT_MISCELLANEOUS + +/datum/crafting_recipe/nutribot + name = "Nutribot" + reqs = list(/obj/item/stack/sheet/cardboard = 1, + /obj/item/stack/sheet/mineral/calorite = 1, + /obj/item/bodypart/r_arm/robot = 1, + /obj/item/assembly/prox_sensor = 1) + result = /mob/living/simple_animal/bot/nutribot + category = CAT_ROBOT diff --git a/GainStation13/code/mechanics/transformation/food.dm b/GainStation13/code/mechanics/transformation/food.dm new file mode 100644 index 0000000000..a84dae4f94 --- /dev/null +++ b/GainStation13/code/mechanics/transformation/food.dm @@ -0,0 +1,16 @@ +/obj/item/reagent_containers/food/snacks/proc/handle_tf(mob/living/eater) + var/datum/component/transformation_item/transformation_component = GetComponent(/datum/component/transformation_item) + if(!istype(transformation_component) || transformation_component.transfer_to_vore || (transformation_component.transformed_mob != src)) + return FALSE + + var/mob/living/food_mob = transformation_component.transformed_mob + if(!istype(food_mob) || !(food_mob?.vore_flags & DEVOURABLE) || (eater?.vore_flags & NO_VORE) || !istype(eater.vore_selected)) + return FALSE + + qdel(transformation_component) + var/obj/belly/vore_belly = eater.vore_selected + if(!vore_belly.nom_mob(food_mob,eater)) + return FALSE + + return TRUE + diff --git a/GainStation13/code/mechanics/transformation/mob_procs.dm b/GainStation13/code/mechanics/transformation/mob_procs.dm new file mode 100644 index 0000000000..7b4fa13c5d --- /dev/null +++ b/GainStation13/code/mechanics/transformation/mob_procs.dm @@ -0,0 +1,36 @@ +/mob/living/proc/get_tf_component() + var/obj/item/item_loc = loc + if(!istype(item_loc)) + return FALSE + + var/datum/component/transformation_item/transformation_component = item_loc.GetComponent(/datum/component/transformation_item) + if(!istype(transformation_component) || (transformation_component.transformed_mob != src)) + return FALSE + + return transformation_component + +/mob/living/proc/handle_transformation_ooc_escape() + var/datum/component/transformation_item/transformation_component = get_tf_component() + if(!transformation_component) + return FALSE + + qdel(transformation_component) + return TRUE + +/mob/living/proc/attempt_to_escape_tf() + var/datum/component/transformation_item/transformation_component = get_tf_component() + if(!transformation_component) + return FALSE + + if(!transformation_component.able_to_struggle_out) + to_chat(src, span_warning("You are unable to struggle out.")) + return FALSE + + to_chat(src, span_notice("You attempt to escape your transformation.")) + if(!do_after(src, 60 SECONDS)) + to_chat(src, span_warning("You fail to escape.")) + return FALSE + + qdel(transformation_component) + return TRUE + diff --git a/GainStation13/code/mechanics/transformation/transformation_component.dm b/GainStation13/code/mechanics/transformation/transformation_component.dm new file mode 100644 index 0000000000..2a7462b38c --- /dev/null +++ b/GainStation13/code/mechanics/transformation/transformation_component.dm @@ -0,0 +1,105 @@ +/datum/component/transformation_item + /// What mob do we currently have stuck in us? + var/mob/living/transformed_mob + /// Do we release the mob when the parent item is destroyed? + var/release_mob = TRUE + /// Is the mob able to speak as the item? + var/able_to_speak = FALSE + /// Is the mob able to emote as the item? + var/able_to_emote = FALSE + /// Does the object scale with the sprite size of the mob inside of it? + var/scale_object = TRUE + /// Show custom description. + var/show_that_object_is_tf = TRUE + /// Stored real name + var/stored_real_name = "" + /// Stored name + var/stored_name = "" + /// Is the component able to be removed? + var/stuck_on_item = FALSE + /// Is the person able to struggle out? + var/able_to_struggle_out = TRUE + /// Transfer to vore belly when eaten + var/transfer_to_vore = TRUE + +/datum/component/transformation_item/Initialize() + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(remove_mob)) + +/datum/component/transformation_item/Destroy(force, silent) + remove_mob() + return ..() + +/datum/component/transformation_item/proc/examine(datum/source, mob/user, list/examine_list) + if(show_that_object_is_tf) + examine_list += span_notice("Something about [source] seems lifelike.") + +/datum/component/transformation_item/proc/register_mob(mob/living/mob_to_register) + var/atom/parent_atom = parent + if(!istype(mob_to_register)) + return FALSE + + transformed_mob = mob_to_register + stored_real_name = mob_to_register.real_name + stored_name = mob_to_register.name + + // This is really dumb, but if it works, then maybe it is not dumb. + mob_to_register.real_name = parent_atom.name + mob_to_register.name = parent_atom.name + + ADD_TRAIT(mob_to_register, TRAIT_TRANSFORMED, src) + ADD_TRAIT(mob_to_register, TRAIT_RESISTCOLD, src) + ADD_TRAIT(mob_to_register, TRAIT_RESISTLOWPRESSURE, src) + ADD_TRAIT(mob_to_register, TRAIT_LOWPRESSURECOOLING, src) + + if(!able_to_speak) + ADD_TRAIT(mob_to_register, TRAIT_MUTE, src) + + if(!able_to_emote) + ADD_TRAIT(mob_to_register, TRAIT_EMOTEMUTE, src) + + // need to stop them from using radio headsets. + var/mob/living/carbon/human/human_mob = mob_to_register + if(istype(human_mob)) + ADD_TRAIT(mob_to_register, TRAIT_PARALYSIS_L_ARM, src) + ADD_TRAIT(mob_to_register, TRAIT_PARALYSIS_R_ARM, src) + human_mob.update_disabled_bodyparts() + + mob_to_register.forceMove(parent_atom) + if(scale_object) + var/target_size = mob_to_register.size_multiplier + var/matrix/new_matrix = new + + new_matrix.Scale(target_size) + new_matrix.Translate(0,16 * (target_size-1)) + parent_atom.transform = new_matrix + +/datum/component/transformation_item/proc/remove_mob() + if(!release_mob || !transformed_mob) + return FALSE + + transformed_mob.real_name = stored_real_name + transformed_mob.name = stored_name + + if(!able_to_speak) + REMOVE_TRAIT(transformed_mob, TRAIT_MUTE, src) + + if(!able_to_emote) + REMOVE_TRAIT(transformed_mob, TRAIT_EMOTEMUTE, src) + + REMOVE_TRAIT(transformed_mob, TRAIT_TRANSFORMED, src) + REMOVE_TRAIT(transformed_mob, TRAIT_RESISTCOLD, src) + REMOVE_TRAIT(transformed_mob, TRAIT_RESISTLOWPRESSURE, src) + REMOVE_TRAIT(transformed_mob, TRAIT_LOWPRESSURECOOLING, src) + + var/mob/living/carbon/human/human_mob = transformed_mob + if(istype(human_mob)) + REMOVE_TRAIT(human_mob, TRAIT_PARALYSIS_L_ARM, src) + REMOVE_TRAIT(human_mob, TRAIT_PARALYSIS_R_ARM, src) + human_mob.update_disabled_bodyparts() + + var/atom/parent_atom = parent + transformed_mob.forceMove(parent_atom.loc) + if(scale_object) + parent_atom.transform = null + diff --git a/GainStation13/code/mechanics/transformation/transformation_item.dm b/GainStation13/code/mechanics/transformation/transformation_item.dm new file mode 100644 index 0000000000..14475e89d7 --- /dev/null +++ b/GainStation13/code/mechanics/transformation/transformation_item.dm @@ -0,0 +1,116 @@ +/obj/item/transformation_item + name = "Handheld Transmogrifier" + desc = "a handheld device that is mysteriously able to turn people into objects. It can also be used to remove said transformations." + icon = 'icons/obj/abductor.dmi' + icon_state = "gizmo_scan" + item_state = "silencer" + lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi' + righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi' + + /// What item are we wanting to TF people into? + var/obj/item/target_item + /// Do we want our transformed person to be able to speak as the object? + var/able_to_speak = TRUE + /// Do we want our transformed person to be able to emote as the object? + var/able_to_emote = TRUE + /// Do we want the item to scale? + var/scale_object = FALSE + /// Do we want to show that the object was once a person? + var/show_that_object_is_tf = TRUE + /// Is our captured person able to struggle out? + var/able_to_struggle_out = TRUE + /// Do we have any items we can't turn people into? + var/list/object_blacklist = list() + +/obj/item/transformation_item/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + var/obj/item/attacked_item = target + if(!proximity_flag || !istype(attacked_item)) + return FALSE + + var/datum/component/transformation_item/transformation_component = attacked_item.GetComponent(/datum/component/transformation_item) + if(istype(transformation_component) && !transformation_component.stuck_on_item) + qdel(transformation_component) + to_chat(user, span_notice("You dispel the current transformation for [attacked_item].")) + return + + target_item = attacked_item + to_chat(user, span_notice("The next time someone is transformed, they will be transformed into [attacked_item].")) + return + +/obj/item/transformation_item/attack(mob/living/M, mob/living/user) + if(!target_item) + to_chat(user, span_warning("You need to have an item linked to transform someone.")) + return + + perform_transfomration(M, user) + return + +/obj/item/transformation_item/proc/perform_transfomration(mob/living/target_mob, mob/living/user) + if(!istype(target_mob)) + return FALSE + + if(!target_item.Adjacent(target_mob)) + to_chat(user, span_warning("The [target_item] isn't close enough to [target_mob]")) + return FALSE + + if(target_item in target_mob.get_contents()) + return FALSE // Don't TF someone into something they are holding. + + if(!target_mob?.client?.prefs?.object_tf) + to_chat(user, span_warning("It seems like [target_mob] does not want to be transformed.")) + return FALSE + + var/datum/component/transformation_item/transformation_component = target_item.AddComponent(/datum/component/transformation_item) + // Make sure that we apply our variables before we actually put the mob in the item. + transformation_component.able_to_speak = able_to_speak + transformation_component.able_to_emote = able_to_emote + transformation_component.scale_object = scale_object + transformation_component.show_that_object_is_tf = show_that_object_is_tf + transformation_component.able_to_struggle_out = able_to_struggle_out + + transformation_component.register_mob(target_mob) + target_item = null + return TRUE + +/obj/item/transformation_item/ui_data(mob/user) + var/list/data = list() + data["able_to_speak"] = able_to_speak + data["able_to_emote"] = able_to_emote + data["scale_object"] = scale_object + data["show_that_object_is_tf"] = show_that_object_is_tf + data["linked_item_name"] = target_item + data["able_to_struggle_out"] = able_to_struggle_out + + return data + +/obj/item/transformation_item/ui_act(action, params) + if(..()) + return + + switch(action) + if("set_speaking") + able_to_speak = !able_to_speak + . = TRUE + + if("set_emote") + able_to_emote = !able_to_emote + . = TRUE + + if("set_scale") + scale_object = !scale_object + . = TRUE + + if("toggle_struggle") + able_to_struggle_out = !able_to_struggle_out + . = TRUE + + if("set_show_desc") + show_that_object_is_tf = !show_that_object_is_tf + . = TRUE + +/obj/item/transformation_item/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TransformTool", name) + ui.open() diff --git a/GainStation13/code/mobs/eat_trash.dm b/GainStation13/code/mobs/eat_trash.dm new file mode 100644 index 0000000000..8fa8fb36c0 --- /dev/null +++ b/GainStation13/code/mobs/eat_trash.dm @@ -0,0 +1,191 @@ +/mob/living + var/adminbus_trash = FALSE // For abusing trash eater for event shenanigans. + +/obj/item + var/trash_eatable = TRUE + +/mob/living/proc/eat_trash() + set name = "Eat Trash" + set category = "Vore" //No Abilities? + set desc = "Consume held garbage." + + if(!vore_selected) + to_chat(src,"You either don't have a belly selected, or don't have a belly!") + return + + var/obj/item/I = get_active_held_item() + if(!I) + to_chat(src, "You are not holding anything.") + return + + if(is_type_in_list(I,item_vore_blacklist) && !adminbus_trash) //If someone has adminbus, they can eat whatever they want. + to_chat(src, "You are not allowed to eat this.") + return + + if(!I.trash_eatable) //OOC pref. This /IS/ respected, even if adminbus_trash is enabled + to_chat(src, "You can't eat that so casually!") + return + + /* + if(istype(I, /obj/item/paicard)) + var/obj/item/paicard/palcard = I + var/mob/living/silicon/pai/pocketpal = palcard.pai + if(pocketpal && (!pocketpal.devourable)) + to_chat(src, "\The [pocketpal] doesn't allow you to eat it.") + return + */ + + if(is_type_in_list(I,edible_trash) | adminbus_trash /*|| is_type_in_list(I,edible_tech) && isSynthetic()*/) + /* + if(I.hidden_uplink) + to_chat(src, "You really should not be eating this.") + message_admins("[key_name(src)] has attempted to ingest an uplink item. ([src ? ADMIN_JMP(src) : "null"])") + return + */ + if(istype(I,/obj/item/pda)) + var/obj/item/pda/P = I + if(P.owner) + var/watching = FALSE + for(var/mob/living/carbon/human/H in view(src)) + if(H.real_name == P.owner && H.client) + watching = TRUE + break + if(!watching) + return + else + visible_message("[src] is threatening to make [P] disappear!") + if(P.id) + var/confirm = alert(src, "The PDA you're holding contains a vulnerable ID card. Will you risk it?", "Confirmation", "Definitely", "Cancel") //No tgui input? + if(confirm != "Definitely") + return + if(!do_after(src, 100, P)) + return + visible_message("[src] successfully makes [P] disappear!") + to_chat(src, "You can taste the sweet flavor of delicious technology.") + dropItemToGround(I) + I.forceMove(vore_selected) + updateVRPanel() + return + /* + if(istype(I,/obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/S = I + if(S.holding) + to_chat(src, "There's something inside!") + return + */ + /* + if(iscapturecrystal(I)) + var/obj/item/capture_crystal/C = I + if(!C.bound_mob.devourable) + to_chat(src, "That doesn't seem like a good idea. (\The [C.bound_mob]'s prefs don't allow it.)") + return + */ + dropItemToGround(I) + I.forceMove(vore_selected) + updateVRPanel() + + log_admin("VORE: [src] used Eat Trash to swallow [I].") + + if(istype(I,/obj/item/flashlight/flare) || istype(I,/obj/item/match) || istype(I,/obj/item/storage/box/matches)) + to_chat(src, "You can taste the flavor of spicy cardboard.") + else if(istype(I,/obj/item/flashlight/glowstick)) //Repath from /obj/item/device/flashlight/glowstick + to_chat(src, "You found out the glowy juice only tastes like regret.") + else if(istype(I,/obj/item/cigbutt)) //Repath from /obj/item/trash/cigbutt + to_chat(src, "You can taste the flavor of bitter ash. Classy.") + else if(istype(I,/obj/item/clothing/mask/cigarette)) //Repath from /obj/item/clothing/mask/smokable + var/obj/item/clothing/mask/cigarette/C = I + if(C.lit) + to_chat(src, "You can taste the flavor of burning ash. Spicy!") + else + to_chat(src, "You can taste the flavor of aromatic rolling paper and funny looks.") + else if(istype(I,/obj/item/paper)) //Repath from /obj/item/weapon/paper + to_chat(src, "You can taste the dry flavor of bureaucracy.") + else if(istype(I,/obj/item/dice)) //Repath from /obj/item/weapon/dice + to_chat(src, "You can taste the bitter flavor of cheating.") + else if(istype(I,/obj/item/lipstick)) //Repath from /obj/item/weapon/lipstick + to_chat(src, "You can taste the flavor of couture and style. Toddler at the make-up bag style.") + else if(istype(I,/obj/item/soap)) //Repath from /obj/item/weapon/soap + to_chat(src, "You can taste the bitter flavor of verbal purification.") + else if(istype(I,/obj/item/stack/spacecash) || istype(I,/obj/item/storage/wallet)) //Repath from /obj/item/weapon/spacecash and /obj/item/weapon/storage/wallet + to_chat(src, "You can taste the flavor of wealth and reckless waste.") + else if(istype(I,/obj/item/broken_bottle) || istype(I,/obj/item/shard)) //Repath from /obj/item/weapon/broken_bottle + to_chat(src, "You can taste the flavor of pain. This can't possibly be healthy for your guts.") + else if(istype(I,/obj/item/light)) //Repath from /obj/item/weapon/light + var/obj/item/light/L = I + if(L.status == LIGHT_BROKEN) + to_chat(src, "You can taste the flavor of pain. This can't possibly be healthy for your guts.") + else + to_chat(src, "You can taste the flavor of really bad ideas.") + /* + else if(istype(I,/obj/item/weapon/bikehorn/tinytether)) //Doenst exist + to_chat(src, "You feel a rush of power swallowing such a large, err, tiny structure.") + */ + else if(istype(I,/obj/item/mmi/posibrain) || istype(I,/obj/item/aicard)) //Repath from /obj/item/device/mmi/digital/posibrain and //Repath from /obj/item/device/aicard + to_chat(src, "You can taste the sweet flavor of digital friendship. Or maybe it is something else.") + else if(istype(I,/obj/item/paicard)) //Repath from /obj/item/device/paicard + to_chat(src, "You can taste the sweet flavor of digital friendship.") + var/obj/item/paicard/ourcard = I + if(ourcard.pai && ourcard.pai.client && isbelly(ourcard.loc)) + var/obj/belly/B = ourcard.loc + to_chat(ourcard.pai, "[B.desc]") + else if(istype(I,/obj/item/reagent_containers/food)) //Repath from /obj/item/weapon/reagent_containers/food + var/obj/item/reagent_containers/food/F = I + if(!F.reagents.total_volume) + to_chat(src, "You can taste the flavor of garbage and leftovers. Delicious?") + else + to_chat(src, "You can taste the flavor of gluttonous waste of food.") + else if (istype(I,/obj/item/clothing/neck/petcollar)) + to_chat(src, "You can taste the submissiveness in the wearer of [I]!") + /* + else if(iscapturecrystal(I)) + var/obj/item/capture_crystal/C = I + if(C.bound_mob && (C.bound_mob in C.contents)) + if(isbelly(C.loc)) + //var/obj/belly/B = C.loc //CHOMPedit + //to_chat(C.bound_mob, "Outside of your crystal, you can see; [B.desc]") //CHOMPedit: moved to modular_chomp capture_crystal.dm + to_chat(src, "You can taste the the power of command.") + */ + // CHOMPedit begin + /* + else if(istype(I,/obj/item/starcaster_news)) + to_chat(src, "You can taste the dry flavor of digital garbage, oh wait its just the news.") + */ + else if(istype(I,/obj/item/newspaper)) + to_chat(src, "You can taste the dry flavor of garbage, oh wait its just the news.") + else if (istype(I,/obj/item/stock_parts/cell)) + visible_message("[src] sates their electric appetite with a [I]!") + to_chat(src, "You can taste the spicy flavor of electrolytes, yum.") + /* + else if (istype(I,/obj/item/walkpod)) + visible_message("[src] sates their musical appetite with a [I]!") + to_chat(src, "You can taste the jazzy flavor of music.") + */ + /* + else if (istype(I,/obj/item/mail/junkmail)) + visible_message("[src] devours the [I]!") + to_chat(src, "You can taste the flavor of the galactic postal service.") + */ + /* + else if (istype(I,/obj/item/weapon/gun/energy/sizegun)) + visible_message("[src] devours the [I]!") + to_chat(src, "You didn't read the warning label, did you?") + */ + /* + else if (istype(I,/obj/item/device/slow_sizegun)) + visible_message("[src] devours the [I]!") + to_chat(src, "You taste the flavor of sunday driver bluespace.") + */ + else if (istype(I,/obj/item/laser_pointer)) + visible_message("[src] devours the [I]!") + to_chat(src, "You taste the flavor of a laser.") + else if (istype(I,/obj/item/canvas)) + visible_message("[src] devours the [I]!") + to_chat(src, "You taste the flavor of priceless artwork.") + //CHOMPedit end + + else + to_chat(src, "You can taste the flavor of garbage. Delicious.") + visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!") + return + to_chat(src, "This snack is too powerful to go down that easily.") //CHOMPEdit + return diff --git a/GainStation13/code/mobs/emote.dm b/GainStation13/code/mobs/emote.dm index 451115cb31..2fa204ac0c 100644 --- a/GainStation13/code/mobs/emote.dm +++ b/GainStation13/code/mobs/emote.dm @@ -1,2 +1,45 @@ -/datum/emote/proc/get_sound(mob/living/user) - return sound //by default just return this var. +/datum/emote/speen + key = "speen" + key_third_person = "speeeeens!" + restraint_check = TRUE + mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer) + mob_type_ignore_stat_typecache = list(/mob/dead/observer) + +/datum/emote/speen/run_emote(mob/user) + . = ..() + if(.) + user.spin(20, 1) + + if(iscyborg(user) && user.has_buckled_mobs()) + var/mob/living/silicon/robot/R = user + var/datum/component/riding/riding_datum = R.GetComponent(/datum/component/riding) + if(riding_datum) + for(var/mob/M in R.buckled_mobs) + riding_datum.force_dismount(M) + else + R.unbuckle_all_mobs() + +/datum/emote/speen/run_emote(mob/living/user, params) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'GainStation13/sound/voice/speen.ogg', 50, 1, -1) + . = ..() + + +/datum/emote/living/cackle + key = "cackle" + key_third_person = "cackles" + message = "cackles hysterically!" + emote_type = EMOTE_AUDIBLE + muzzle_ignore = FALSE + restraint_check = FALSE + +/datum/emote/living/cackle/run_emote(mob/living/user, params) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'GainStation13/sound/voice//cackle_yeen.ogg', 50, 1, -1) + . = ..() diff --git a/GainStation13/code/modules/arousal/arousal.dm b/GainStation13/code/modules/arousal/arousal.dm new file mode 100644 index 0000000000..11b2474e0d --- /dev/null +++ b/GainStation13/code/modules/arousal/arousal.dm @@ -0,0 +1,19 @@ +//GS13 Port +/mob/living/proc/mob_climax(forced_climax = FALSE, cause = "none")//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. + set name = "Masturbate" + set category = "IC" + if(canbearoused && !restrained() && !stat) + if(mb_cd_timer <= world.time) + //start the cooldown even if it fails + mb_cd_timer = world.time + mb_cd_length + if(getArousal() >= ((max_arousal / 100) * 33))//33% arousal or greater required + src.visible_message("[src] starts masturbating!", \ + "You start masturbating.") + if(do_after(src, 30, target = src)) + src.visible_message("[src] relieves [p_them()]self!", \ + "You have relieved yourself.") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + setArousal(min_arousal) + else + to_chat(src, "You aren't aroused enough for that.") + diff --git a/GainStation13/code/modules/client/border_control.dm b/GainStation13/code/modules/client/border_control.dm new file mode 100644 index 0000000000..013b50483b --- /dev/null +++ b/GainStation13/code/modules/client/border_control.dm @@ -0,0 +1,189 @@ +#define BORDER_CONTROL_DISABLED 0 +#define BORDER_CONTROL_LEARNING 1 +#define BORDER_CONTROL_ENFORCED 2 + + +GLOBAL_LIST_EMPTY(whitelistedCkeys) +GLOBAL_VAR_INIT(borderControlFile, new /savefile("data/bordercontrol.db")) +GLOBAL_VAR_INIT(whitelistLoaded, FALSE) + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_ModeToText(mode) + switch(mode) + if(BORDER_CONTROL_DISABLED) + return "Disabled" + if(BORDER_CONTROL_LEARNING) + return "Learning" + if(BORDER_CONTROL_ENFORCED) + return "Enforced" + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_IsKeyAllowedToConnect(key) + key = ckey(key) + + var/borderControlMode = CONFIG_GET(number/border_control) + + if(borderControlMode == BORDER_CONTROL_DISABLED) + return 1 + else if (borderControlMode == BORDER_CONTROL_LEARNING) + if(!BC_IsKeyWhitelisted(key)) + log_and_message_admins("[key] has joined and was added to the border whitelist.") + BC_WhitelistKey(key) + return 1 + else + return BC_IsKeyWhitelisted(key) + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_IsKeyWhitelisted(key) + key = ckey(key) + + if(!GLOB.whitelistLoaded) + BC_LoadWhitelist() + + if(LAZYISIN(GLOB.whitelistedCkeys, key)) + return 1 + else + return 0 + +////////////////////////////////////////////////////////////////////////////////// +//ADMIN_VERB_ADD(/client/proc/BC_WhitelistKeyVerb, R_ADMIN, FALSE) +///client/proc/BC_WhitelistKeyVerb() +/datum/admins/proc/BC_WhitelistKeyVerb() + + set name = "Border Control - Whitelist Key" + set category = "Admin.Border Control" + + var/key = input("CKey to Whitelist", "Whitelist Key") as null|text + + if(key) + var/confirm = alert("Add [key] to the border control whitelist?", , "Yes", "No") + if(confirm == "Yes") + log_and_message_admins("added [key] to the border whitelist.") + BC_WhitelistKey(key) + + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_WhitelistKey(key) + var/keyAsCkey = ckey(key) + + if(!GLOB.whitelistLoaded) + BC_LoadWhitelist() + + if(!keyAsCkey) + return 0 + else + if(LAZYISIN(GLOB.whitelistedCkeys,keyAsCkey)) + // Already in + return 0 + else + LAZYINITLIST(GLOB.whitelistedCkeys) + + ADD_SORTED(GLOB.whitelistedCkeys, keyAsCkey, /proc/cmp_text_asc) + + BC_SaveWhitelist() + return 1 + + + +////////////////////////////////////////////////////////////////////////////////// +//ADMIN_VERB_ADD(/client/proc/BC_RemoveKeyVerb, R_ADMIN, FALSE) +///client/proc/BC_RemoveKeyVerb() +/datum/admins/proc/BC_RemoveKeyVerb() + + set name = "Border Control - Remove Key" + set category = "Admin.Border Control" + + var/keyToRemove = input("CKey to Remove", "Remove Key") as null|anything in GLOB.whitelistedCkeys + + if(keyToRemove) + var/confirm = alert("Remove [keyToRemove] from the border control whitelist?", , "Yes", "No") + if(confirm == "Yes") + log_and_message_admins("removed [keyToRemove] from the border whitelist.") + BC_RemoveKey(keyToRemove) + + return + + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_RemoveKey(key) + key = ckey(key) + + if(!LAZYISIN(GLOB.whitelistedCkeys, key)) + return 1 + else + if(GLOB.whitelistedCkeys) + GLOB.whitelistedCkeys.Remove(key) + BC_SaveWhitelist() + return 1 + + + + +////////////////////////////////////////////////////////////////////////////////// +//ADMIN_VERB_ADD(/client/proc/BC_ToggleState, R_ADMIN, FALSE) +///client/proc/BC_ToggleState() +/datum/admins/proc/BC_ToggleState() + + set name = "Border Control - Toggle Mode" + set category = "Admin.Border Control" + set desc="Enables or disables border control" + + var/borderControlMode = CONFIG_GET(number/border_control) + + var/choice = input("New State (Current state is: [BC_ModeToText(borderControlMode)])", "Border Control State") as null|anything in list("Disabled", "Learning", "Enforced") + + switch(choice) + if("Disabled") + if(borderControlMode != BORDER_CONTROL_DISABLED) + borderControlMode = BORDER_CONTROL_DISABLED + log_and_message_admins("has disabled border control.") + if("Learning") + if(borderControlMode != BORDER_CONTROL_LEARNING) + borderControlMode = BORDER_CONTROL_LEARNING + log_and_message_admins("has set border control to learn new keys on connection!") + var/confirm = alert("Learn currently connected keys?", , "Yes", "No") + if(confirm == "Yes") + for(var/client/C in GLOB.clients) + if (BC_WhitelistKey(C.key)) + log_and_message_admins("[key_name(usr)] added [C.key] to the border whitelist by adding all current clients.") + + if("Enforced") + if(borderControlMode != BORDER_CONTROL_ENFORCED) + borderControlMode = BORDER_CONTROL_ENFORCED + log_and_message_admins("has enforced border controls. New keys can no longer join.") + + CONFIG_SET(number/border_control, borderControlMode) + + return + + +////////////////////////////////////////////////////////////////////////////////// + +/hook/startup/proc/loadBorderControlWhitelistHook() + BC_LoadWhitelist() + return 1 + +////////////////////////////////////////////////////////////////////////////////// +/proc/BC_LoadWhitelist() + + LAZYCLEARLIST(GLOB.whitelistedCkeys) + + LAZYINITLIST(GLOB.whitelistedCkeys) + + if(!GLOB.borderControlFile) + return 0 + + GLOB.borderControlFile["WhitelistedCkeys"] >> GLOB.whitelistedCkeys + + GLOB.whitelistLoaded = 1 + + +////////////////////////////////////////////////////////////////////////////////// +proc/BC_SaveWhitelist() + if(!GLOB.whitelistedCkeys) + return 0 + + if(!GLOB.borderControlFile) + return 0 + + GLOB.borderControlFile["WhitelistedCkeys"] << GLOB.whitelistedCkeys diff --git a/GainStation13/code/modules/client/loadout/head.dm b/GainStation13/code/modules/client/loadout/head.dm new file mode 100644 index 0000000000..9c8d7f7366 --- /dev/null +++ b/GainStation13/code/modules/client/loadout/head.dm @@ -0,0 +1,17 @@ +//Roses dont exist here... Sad + +// /datum/gear/head/rose +// name = "Rose" +// path = /obj/item/grown/rose + +/datum/gear/head/sunflower + name = "Sunflower" + path = /obj/item/grown/sunflower + +/datum/gear/head/poppy + name = "Poppy" + path = /obj/item/reagent_containers/food/snacks/grown/poppy + +/datum/gear/head/harebell + name = "Harebell" + path = /obj/item/reagent_containers/food/snacks/grown/harebell diff --git a/GainStation13/code/modules/client/loadout/uniform.dm b/GainStation13/code/modules/client/loadout/uniform.dm new file mode 100644 index 0000000000..acaba42d3c --- /dev/null +++ b/GainStation13/code/modules/client/loadout/uniform.dm @@ -0,0 +1,3 @@ +/datum/gear/uniform/modularjumpsuit + name = "Modular Jumpsuit (gray)" + path = /obj/item/clothing/under/color/grey/modular diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm index c50a4cf39e..28bc61c2a1 100644 --- a/GainStation13/code/modules/client/preferences/preferences.dm +++ b/GainStation13/code/modules/client/preferences/preferences.dm @@ -31,6 +31,8 @@ var/fatness_vulnerable = FALSE /// Similar to fatness_vulnerable, but with more extreme effects such as transformation/hypno. var/extreme_fatness_vulnerable = FALSE + /// Can the person be transformed into an object? + var/object_tf // Helplessness, a set of prefs that make things extra tough at higher weights. If set to FALSE, they won't do anything. ///What fatness level disables movement? @@ -57,6 +59,8 @@ ///Does the person wish to be involved with non-con weight gain events? var/noncon_weight_gain = FALSE + ///Does the person want to get into confrontation? + var/trouble_seeker = FALSE //Does the person wish to be fed from bots? var/bot_feeding = FALSE diff --git a/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm b/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm index 05c1ad7ec1..12009977ec 100644 --- a/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm +++ b/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm @@ -69,7 +69,9 @@ name = "grey modular jumpsuit" //change name from base clothes to distinguish them desc = "A tasteful grey jumpsuit that reminds you of the good old days. Now adjusts to the match the wearer's size!" //description same as above - var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //specify the file path where the modular overlays for those clothes are located + var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //Default belly + var/icon_round_location = 'GainStation13/icons/mob/modclothes/graymodular_round.dmi' + var/icon_stuffed_location = 'GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi' var/mob/living/carbon/U //instance a variable for keeping track of the user /obj/item/clothing/under/color/grey/modular/equipped(mob/user, slot) //whenever the clothes are in someone's inventory the clothes keep track of who that user is @@ -93,16 +95,43 @@ for(O in U.internal_organs) //check the user for the organs they have if(istype(O, /obj/item/organ/genital/belly)) //if that organ is a belly G = O //treat that organ as a genital - if(!adjusted) //check the style, if it needs to be the adjusted variants - if(G.size <= 9) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with - . += mutable_appearance(icon_location, "belly_[G.size]", GENITALS_UNDER_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer - else //if not an expected size value, bigger than the max, default to max size - . += mutable_appearance(icon_location, "belly_9", GENITALS_UNDER_LAYER) - else //use the alternative adjusted sprites - if(G.size <= 9) - . += mutable_appearance(icon_location, "belly_[G.size]_d", GENITALS_UNDER_LAYER) - else - . += mutable_appearance(icon_location, "belly_9_d", GENITALS_UNDER_LAYER) + // Change to visually update sprite depending on fullness. + if(ishuman(O.owner)) + // Get mob + var/mob/living/carbon/human/H = O.owner + // Check what belly shape the mob has + var/used_icon_location + switch(G.shape) + if("Soft Belly") + used_icon_location = icon_location + if("Round Belly") + used_icon_location = icon_round_location + var/size = 0 + + switch(H.fullness) + if(-100 to FULLNESS_LEVEL_BLOATED) // Normal + size = G.size + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) // Take the stuffed sprite of the same size + size = G.size + used_icon_location = icon_stuffed_location + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) // Take the stuffed sprite of size + 1 + size = G.size + 1 + used_icon_location = icon_stuffed_location + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)// Take the stuffed sprite of size + 2 + size = G.size + 2 + used_icon_location = icon_stuffed_location + + if(!adjusted) //check the style, if it needs to be the adjusted variants + if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with. Cap is 9 (max fat stage) + 2 (stuffed stages) + . += mutable_appearance(used_icon_location, "belly_[size]", GENITALS_FRONT_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer + else //if not an expected size value, bigger than the max, default to max size + . += mutable_appearance(used_icon_location, "belly_11", GENITALS_FRONT_LAYER) + else //use the alternative adjusted sprites + if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES) + . += mutable_appearance(used_icon_location, "belly_[size]_d", GENITALS_FRONT_LAYER) + else + . += mutable_appearance(used_icon_location, "belly_11_d", GENITALS_FRONT_LAYER) + if(istype(O, /obj/item/organ/genital/butt)) //if that organ is the butt G = O if(mutantrace_variation == STYLE_DIGITIGRADE) //check if the suit needs to use sprites for digitigrade characters diff --git a/GainStation13/code/modules/events/vent_clog.dm/vent_clog.dm b/GainStation13/code/modules/events/vent_clog.dm/vent_clog.dm new file mode 100644 index 0000000000..f31d61a921 --- /dev/null +++ b/GainStation13/code/modules/events/vent_clog.dm/vent_clog.dm @@ -0,0 +1,27 @@ + + +/datum/round_event_control/vent_clog/fattening + name = "Clogged Vents: Fattening" + typepath = /datum/round_event/vent_clog/fattening + max_occurrences = 0 + min_players = 5 + description = "Spits out lipoifier foam through the scrubber system." + +/datum/round_event/vent_clog/fattening + reagentsAmount = 50 + +/datum/round_event/vent_clog/fattening/announce() + priority_announce("The scrubbers network is experiencing an unexpected surge of lipo-related chemicals. Some ejection of contents may occur.", "Atmospherics alert") + +/datum/round_event/vent_clog/fattening/start() + for(var/obj/machinery/atmospherics/components/unary/vent in vents) + if(vent && vent.loc && !vent.welded) + var/datum/reagents/R = new/datum/reagents(1000) + R.my_atom = vent + R.add_reagent(/datum/reagent/consumable/lipoifier, reagentsAmount) + + var/datum/effect_system/foam_spread/foam = new + foam.set_up(200, get_turf(vent), R) + foam.start() + CHECK_TICK + diff --git a/GainStation13/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/GainStation13/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm new file mode 100644 index 0000000000..7007384992 --- /dev/null +++ b/GainStation13/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -0,0 +1,13 @@ +/datum/reagent/consumable + var/use_gs_icon = FALSE + +/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype) + icon = 'icons/obj/drinks.dmi' + if(reagents.reagent_list.len) + var/datum/reagent/R = reagents.get_master_reagent() + if(istype(R, /datum/reagent/consumable)) + var/datum/reagent/consumable/C = R + if(C.use_gs_icon == TRUE) + icon = 'GainStation13/icons/obj/drinks.dmi' + + ..() diff --git a/GainStation13/code/modules/hydroponics/grown/berries.dm b/GainStation13/code/modules/hydroponics/grown/berries.dm index 263262637b..32f3e7dbca 100644 --- a/GainStation13/code/modules/hydroponics/grown/berries.dm +++ b/GainStation13/code/modules/hydroponics/grown/berries.dm @@ -1,7 +1,6 @@ /obj/item/seeds/berry/blueberry name = "pack of blueberry seeds" desc = "These seeds grow into blueberry bushes." - icon_state = "seed-blueberry" species = "blueberry" plantname = "Blueberry Bush" product = /obj/item/reagent_containers/food/snacks/grown/berries/blueberry @@ -11,11 +10,18 @@ yield = 1 production = 10 rarity = 30 + icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi' + icon_state = "seed-blueberry" + growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi' + icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes + icon_dead = "berry-dead" // Same for the dead icon + icon_harvest = "blueberry-harvest" /obj/item/reagent_containers/food/snacks/grown/berries/blueberry seed = /obj/item/seeds/berry/blueberry name = "bunch of blueberries" desc = "Taste so good, you might turn blue!" + icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi' icon_state = "blueberrypile" filling_color = "#5d00c7" foodtype = FRUIT diff --git a/GainStation13/code/modules/hydroponics/lipoplant.dm b/GainStation13/code/modules/hydroponics/lipoplant.dm index 72c16ca898..4856ec4020 100644 --- a/GainStation13/code/modules/hydroponics/lipoplant.dm +++ b/GainStation13/code/modules/hydroponics/lipoplant.dm @@ -1,8 +1,6 @@ /obj/item/seeds/lipoplant name = "pack of adipolipus" desc = "These seeds grow into a foreign plant." - icon = 'GainStation13/icons/obj/hydroponics/lipo_seeds.dmi' - icon_state = "lipo_seed" species = "adipolipus" plantname = "Adipolipus" product = /obj/item/reagent_containers/food/snacks/grown/lipofruit @@ -11,17 +9,19 @@ maturation = 8 production = 5 yield = 1 - growing_icon = 'GainStation13/icons/obj/hydroponics/lipo_growing.dmi' + reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05) + icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi' + icon_state = "seed-lipo" + growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi' icon_grow = "lipo-grow" // Uses one growth icons set for all the subtypes icon_dead = "lipo-dead" // Same for the dead icon icon_harvest = "lipo-harvest" - reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05) /obj/item/reagent_containers/food/snacks/grown/lipofruit seed = /obj/item/seeds/lipoplant name = "lipofruit" desc = "A foreign fruit with an hard shell. Perhaps something sharp could open it?" - icon = 'GainStation13/icons/obj/hydroponics/lipo_harvest.dmi' + icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi' icon_state = "lipo_nut" item_state = "lipo_nut" possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) diff --git a/GainStation13/code/modules/hydroponics/munchies_weed.dm b/GainStation13/code/modules/hydroponics/munchies_weed.dm index e6ef646985..28043f6f3d 100644 --- a/GainStation13/code/modules/hydroponics/munchies_weed.dm +++ b/GainStation13/code/modules/hydroponics/munchies_weed.dm @@ -8,22 +8,26 @@ /obj/item/seeds/cannabis/munchies name = "pack of munchies weed seeds" desc = "These seeds grow into munchies weed." - icon_state = "seed-munchies" species = "munchycannabis" plantname = "Munchies Weed" - icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes - icon_dead = "munchycannabis-dead" // Same for the dead icon product = /obj/item/reagent_containers/food/snacks/grown/cannabis/munchies genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/orange) mutatelist = list() reagents_add = list(/datum/reagent/drug/space_drugs = 0.05, /datum/reagent/drug/munchies = 0.10) rarity = 69 + icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi' + icon_state = "seed-munchies" + growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi' + icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes + icon_dead = "munchycannabis-dead" // Same for the dead icon + icon_harvest = "munchycannabis-harvest" /obj/item/reagent_containers/food/snacks/grown/cannabis/munchies seed = /obj/item/seeds/cannabis/munchies name = "munchies cannabis leaf" desc = "You feel hungry just looking at it." + icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi' icon_state = "munchycannabis" wine_power = 90 diff --git a/GainStation13/code/modules/loadout/backpack.dm b/GainStation13/code/modules/loadout/backpack.dm index 1c6c8bbd31..3631b0c6e2 100644 --- a/GainStation13/code/modules/loadout/backpack.dm +++ b/GainStation13/code/modules/loadout/backpack.dm @@ -1,4 +1,4 @@ -/datum/gear/bluespace_belt +/datum/gear/backpack/bluespace_belt name = "Bluespace Belt" category = LOADOUT_SUBCATEGORY_BACKPACK_GENERAL path = /obj/item/bluespace_belt diff --git a/GainStation13/code/modules/loadout/gloves.dm b/GainStation13/code/modules/loadout/gloves.dm index 32b832fbb7..41e238aef5 100644 --- a/GainStation13/code/modules/loadout/gloves.dm +++ b/GainStation13/code/modules/loadout/gloves.dm @@ -1,11 +1,9 @@ -/datum/gear/syntech/ring +/datum/gear/gloves/syntech/ring name = "Normalizer Ring" - category = LOADOUT_CATEGORY_GLOVES path = /obj/item/clothing/gloves/ring/syntech cost = 6 -/datum/gear/syntech/band +/datum/gear/gloves/syntech/band name = "Normalizer Band" - category = LOADOUT_CATEGORY_GLOVES path = /obj/item/clothing/gloves/ring/syntech/band cost = 6 diff --git a/GainStation13/code/modules/loadout/neck.dm b/GainStation13/code/modules/loadout/neck.dm index 19e5bd9592..c6b5466144 100644 --- a/GainStation13/code/modules/loadout/neck.dm +++ b/GainStation13/code/modules/loadout/neck.dm @@ -1,17 +1,14 @@ -/datum/gear/syntech/pendant +/datum/gear/neck/syntech/pendant name = "Normalizer Pendant" - category = LOADOUT_CATEGORY_NECK path = /obj/item/clothing/neck/syntech cost = 6 -/datum/gear/syntech/choker +/datum/gear/neck/syntech/choker name = "Normalizer Choker" - category = LOADOUT_CATEGORY_NECK path = /obj/item/clothing/neck/syntech/choker cost = 6 -/datum/gear/syntech/collar +/datum/gear/neck/syntech/collar name = "Normalizer Collar" - category = LOADOUT_CATEGORY_NECK path = /obj/item/clothing/neck/syntech/collar cost = 6 diff --git a/GainStation13/code/modules/mapping/ghost_roles.dm b/GainStation13/code/modules/mapping/ghost_roles.dm index 21d5f16cc5..f37da590dd 100644 --- a/GainStation13/code/modules/mapping/ghost_roles.dm +++ b/GainStation13/code/modules/mapping/ghost_roles.dm @@ -12,6 +12,7 @@ flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \ Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - welcome and lure in new guests into the freshly opened GATO restaurant!" assignedrole = "Restaurant worker" + mirrorcanloadappearance = TRUE /obj/effect/mob_spawn/human/fastfoodmanager name = "Corporate cryostasis pod" @@ -27,6 +28,7 @@ flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \ Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - make sure to keep the best care of GATO's restaurant, currently under your management! You have a higher say over your workers, but do not abuse this power." assignedrole = "Restaurant manager" + mirrorcanloadappearance = TRUE /obj/effect/mob_spawn/human/fastfood/Initialize(mapload) . = ..() @@ -108,6 +110,7 @@ death = FALSE roundstart = FALSE mob_species = /datum/species/human + mirrorcanloadappearance = TRUE /datum/outfit/feeders_den/fanatic name = "Feeder Fanatic" @@ -152,6 +155,7 @@ death = FALSE roundstart = FALSE mob_species = /datum/species/human + mirrorcanloadappearance = TRUE /datum/outfit/feeders_den/victim name = "Den Victim" diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ears.dm new file mode 100644 index 0000000000..59e16f8342 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -0,0 +1,41 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) +//I don't know why these need both mam_ears and human variants, because some other ear datums just work fine without that?? +//It didn't want to show up otherwise so I'll keep it as that + +/datum/sprite_accessory/ears/mam_ears/dragon //ported from Virgo + name = "Dragon" + icon = 'GainStation13/icons/mob/markings/mam_ears.dmi' + icon_state = "dragon" + +/datum/sprite_accessory/ears/human/dragon //ported from Virgo + name = "Dragon" + icon = 'GainStation13/icons/mob/markings/mam_ears.dmi' + icon_state = "dragon" + +/datum/sprite_accessory/ears/mam_ears/avali + name = "Avali" + icon_state = "avali" + icon = 'GainStation13/icons/mob/markings/mam_ears.dmi' + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/ears/human/avali + name = "Avali" + icon_state = "avali" + icon = 'GainStation13/icons/mob/markings/mam_ears.dmi' + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/ears/human/fennec_tall + name = "Fennec (Tall)" + icon = 'GainStation13/icons/mob/32x64_mam_ears.dmi' + icon_state = "fennectall" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/ears/mam_ears/fennec_tall + name = "Fennec (Tall)" + icon = 'GainStation13/icons/mob/32x64_mam_ears.dmi' + icon_state = "fennectall" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/frills.dm new file mode 100644 index 0000000000..f25748e7ce --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/frills.dm @@ -0,0 +1,22 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) + +/datum/sprite_accessory/frills/cobra + name = "Cobra Hood" + icon_state = "cobrahood" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + icon = 'hyperstation/icons/mob/snek.dmi' + +/datum/sprite_accessory/frills/cobraslim + name = "Narrow Cobra Hood" + icon_state = "cobraslim" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + icon = 'hyperstation/icons/mob/snek.dmi' + +/datum/sprite_accessory/frills/cobrahood_alt + name = "Cobra Hood - Alt" + icon_state = "cobrahood_alt" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + icon = 'hyperstation/icons/mob/snek.dmi' diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm new file mode 100644 index 0000000000..f0575e50f0 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm @@ -0,0 +1 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm new file mode 100644 index 0000000000..29ffcf5391 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -0,0 +1,11 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) + +/datum/sprite_accessory/hair/elize + name = "Elize" + icon = 'GainStation13/icons/mob/human_face.dmi' + icon_state = "hair_elize" + +/datum/sprite_accessory/hair/lem + name = "Lem" + icon = 'GainStation13/icons/mob/human_face.dmi' + icon_state = "hair_lem" diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/horns.dm new file mode 100644 index 0000000000..f0575e50f0 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/horns.dm @@ -0,0 +1 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm new file mode 100644 index 0000000000..f0575e50f0 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm @@ -0,0 +1 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm new file mode 100644 index 0000000000..32d38c386a --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -0,0 +1,63 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) + + +/datum/sprite_accessory/taur/gator //ported from Vorestation + name = "Gator" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "gator" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + hide_legs = FALSE + +/datum/sprite_accessory/taur/fatdrake //ported from Vorestation + name = "Fat Drake" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "fatdrake" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/taur/fatwolf //ported from Vorestation + name = "Fat Wolf" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "fatwolf" + color_src = MUTCOLORS + +/datum/sprite_accessory/taur/fatliz //ported from Vorestation + name = "Fat Lizard" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "fatliz" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/taur/longtailfluff //ported from Vorestation + name = "Long Fluffy Tail" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "longtailfluff" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/taur/fatsynthwolf //ported from Vorestation + name = "Fat Synth Wolf" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "fatsynthwolf" + color_src = MUTCOLORS + +/datum/sprite_accessory/taur/bigleggies //ported from Vorestation + name = "Big Leggies" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "bigleggy" + color_src = MUTCOLORS + +/datum/sprite_accessory/taur/fatnaga //ported from Vorestation + name = "Fat Naga" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "fatnaga" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/taur/altnaga //ported from Vorestation + name = "Alt Naga" + icon = 'GainStation13/icons/mob/markings/mam_taur.dmi' + icon_state = "altnaga" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm new file mode 100644 index 0000000000..96786439c4 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm @@ -0,0 +1,55 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) + +/datum/sprite_accessory/snouts/mam_snouts/hjackal + name = "Jackal" + icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi' + icon_state = "hjackal" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/snouts/mam_snouts/synthlizproto1 + name = "Synthetic Lizard - Prototype Visor 1" + icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi' + icon_state = "synthlizproto1" + color_src = MATRIXED + +/datum/sprite_accessory/snouts/mam_snouts/synthlizproto2 + name = "Synthetic Lizard - Prototype Visor 2" + icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi' + icon_state = "synthlizproto2" + color_src = MATRIXED + +/datum/sprite_accessory/snouts/mam_snouts/gator + name = "Gator" + icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi' + icon_state = "gator" + color_src = MATRIXED + +//eastern dragon +/datum/sprite_accessory/snouts/mam_snouts/easterndragon + name = "Eastern Dragon" + icon = 'GainStation13/icons/mob/markings/char_snouts.dmi' + icon_state = "easterndw" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/snouts/mam_snouts/easterndragon/no_whiskers + name = "Eastern Dragon - No Whiskers" + icon = 'GainStation13/icons/mob/markings/char_snouts.dmi' + icon_state = "easterndnw" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/snouts/mam_snouts/feasterndragon + name = "Eastern Dragon (Top)" + icon = 'GainStation13/icons/mob/markings/char_snouts.dmi' + icon_state = "feasterndw" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/snouts/mam_snouts/feasterndragon/no_whiskers + name = "Eastern Dragon - No Whiskers (Top)" + icon = 'GainStation13/icons/mob/markings/char_snouts.dmi' + icon_state = "feasterndnw" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm new file mode 100644 index 0000000000..f0575e50f0 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -0,0 +1 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/tails.dm new file mode 100644 index 0000000000..50c743abf6 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -0,0 +1,92 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) + +//snaketail +/datum/sprite_accessory/tails/lizard/snaketail //GS13 - ...6 seperate paths for one tail. Wew. + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/tails_animated/lizard/snaketail + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/tails/human/snaketail + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/tails_animated/human/snaketail + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/tails/mam_tails/snaketail + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +/datum/sprite_accessory/tails_animated/mam_tails_animated/snaketail + name = "Snaketail" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "snaketail" + color_src = MATRIXED + matrixed_sections = MATRIX_RED_GREEN + +//spaded tail +/datum/sprite_accessory/tails/mam_tails/spade + name = "Demon Spade" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "spade" + +/datum/sprite_accessory/tails_animated/mam_tails_animated/spade + name = "Demon Spade" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "spade" + +/datum/sprite_accessory/tails/human/spade + name = "Demon Spade" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "spade" + +/datum/sprite_accessory/tails_animated/human/spade + name = "Demon Spade" + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + icon_state = "spade" + +//deer tail + + +/datum/sprite_accessory/tails/human/deer + name = "Deer" + icon_state = "deer" + color_src = MATRIXED + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/deer + name = "Deer" + icon_state = "deer" + color_src = MATRIXED + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + +/datum/sprite_accessory/tails/mam_tails/deer + name = "Deer" + icon_state = "deer" + color_src = MATRIXED + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/mam_tails_animated/deer + name = "Deer" + icon_state = "deer" + color_src = MATRIXED + icon = 'GainStation13/icons/mob/markings/mam_tails.dmi' diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/wings.dm new file mode 100644 index 0000000000..f0575e50f0 --- /dev/null +++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/wings.dm @@ -0,0 +1 @@ +//GS13 - markings, ported or our own (preferably mark where you took them from) diff --git a/GainStation13/code/modules/mob/living/belly.dm b/GainStation13/code/modules/mob/living/belly.dm index 6b9a7c4237..86fd0f9088 100644 --- a/GainStation13/code/modules/mob/living/belly.dm +++ b/GainStation13/code/modules/mob/living/belly.dm @@ -7,16 +7,18 @@ slot = ORGAN_SLOT_BELLY w_class = 3 size = 0 + shape = DEF_BELLY_SHAPE var/statuscheck = FALSE - shape = "belly" + genital_flags = UPDATE_OWNER_APPEARANCE masturbation_verb = "massage" var/sent_full_message = TRUE //defaults to 1 since they're full to start var/inflatable = FALSE //For inflation connoisseurs var/size_cached = 0 var/prev_size = 0 + layer_index = BELLY_LAYER_INDEX /obj/item/organ/genital/belly/modify_size(modifier, min = BELLY_SIZE_DEF, max = BELLY_SIZE_MAX) - var/new_value = clamp(size_cached + modifier, min, max) + var/new_value = clamp(size_cached + modifier, starting_size, max) if(new_value == size_cached) return prev_size = size_cached @@ -26,7 +28,26 @@ ..() /obj/item/organ/genital/belly/update_appearance() - icon_state = "belly_[shape]_[size]" + //GS13 - Port Stuffed states + // Default settings + var/datum/sprite_accessory/S = GLOB.belly_shapes_list[shape] //GS13 - get belly shape + var/icon_shape_state = S ? S.icon_state : "belly" //fallback to default belly in case we cant find a shape + icon_state = "belly_[icon_shape_state]_[size]" + var/icon_shape = S ? S.icon : "hyperstation/icons/obj/genitals/belly.dmi" //fallback to default belly in case we cant find a shape + icon = icon_shape + + // Change belly sprite and size based on current fullness + switch(owner.fullness) + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) + icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' //We use round belly to represent stuffedness + icon_state = "belly_round_[size]" + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) + icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' + icon_state = "belly_round_[size+1]" + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) + icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' + icon_state = "belly_round_[size+2]" + if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... @@ -42,8 +63,11 @@ if(D.species.use_skintones && D.features["genitals_use_skintone"]) color = SKINTONE2HEX(H.skin_tone) else - color = "[D.features["belly_color"]]" - size = "[D.features["belly_size"]]" + color = "#[D.features["belly_color"]]" + size = D.features["belly_size"] + starting_size = D.features["belly_size"] + shape = D.features["belly_shape"] + inflatable = D.features["inflatable_belly"] toggle_visibility(D.features["belly_visibility"], FALSE) diff --git a/GainStation13/code/modules/mob/living/fullness.dm b/GainStation13/code/modules/mob/living/fullness.dm index 3a6f4b97ae..c1d0df24b1 100644 --- a/GainStation13/code/modules/mob/living/fullness.dm +++ b/GainStation13/code/modules/mob/living/fullness.dm @@ -2,7 +2,7 @@ if(!ishuman(src)) return - if(fullness >= FULLNESS_LEVEL_BLOATED && fullness_reducion_timer + FULLNESS_REDUCTION_COOLDOWN < world.time) + if(fullness >= FULLNESS_LEVEL_BLOATED && fullness_reduction_timer + FULLNESS_REDUCTION_COOLDOWN < world.time) fullness -= amount // Remove Fullness diff --git a/GainStation13/code/modules/mob/living/species.dm b/GainStation13/code/modules/mob/living/species.dm index ca3e099e30..72327692ef 100644 --- a/GainStation13/code/modules/mob/living/species.dm +++ b/GainStation13/code/modules/mob/living/species.dm @@ -239,7 +239,10 @@ fatness_delay += (H.fatness / FATNESS_LEVEL_IMMOBILE) * FATNESS_WEAKLEGS_MODIFIER fatness_delay = min(fatness_delay, 60) - H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/fatness, TRUE, fatness_delay) + if(fatness_delay) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/fatness, TRUE, fatness_delay) + else + H.remove_movespeed_modifier(/datum/movespeed_modifier/fatness) if(HAS_TRAIT(H, TRAIT_BLOB)) handle_fatness_trait( diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/dwarverndrinks.dm b/GainStation13/code/modules/reagents/chemistry/reagents/dwarverndrinks.dm index 2197581ff8..d99fb8f3bb 100644 --- a/GainStation13/code/modules/reagents/chemistry/reagents/dwarverndrinks.dm +++ b/GainStation13/code/modules/reagents/chemistry/reagents/dwarverndrinks.dm @@ -13,6 +13,7 @@ shot_glass_icon_state = "shotglassbrown" pH = 4.5 value = 0.1 + use_gs_icon = TRUE /datum/reagent/consumable/ethanol/glyphid_slammer name = "Glyphid slammer" @@ -26,3 +27,4 @@ shot_glass_icon_state = "shotglassbrown" pH = 4.5 value = 0.1 + use_gs_icon = TRUE diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/fatty_drinks.dm b/GainStation13/code/modules/reagents/chemistry/reagents/fatty_drinks.dm index 352e9497b0..bfb459e669 100644 --- a/GainStation13/code/modules/reagents/chemistry/reagents/fatty_drinks.dm +++ b/GainStation13/code/modules/reagents/chemistry/reagents/fatty_drinks.dm @@ -11,6 +11,7 @@ glass_name = "belly bloats" glass_desc = "The perfect mix to be big and merry with." shot_glass_icon_state = "shotglassbrown" + use_gs_icon = TRUE /datum/reagent/consumable/ethanol/belly_bloats/on_mob_life(mob/living/carbon/M) if(M && M?.client?.prefs.weight_gain_food) // GS13 @@ -30,6 +31,7 @@ glass_name = "blobby mary" glass_desc = "For the morbidly obese ladies and gentlemen." shot_glass_icon_state = "shotglassred" + use_gs_icon = TRUE /datum/reagent/consumable/ethanol/blobby_mary/on_mob_life(mob/living/carbon/M) if(M && M?.client?.prefs.weight_gain_food) // GS13 @@ -49,6 +51,7 @@ glass_name = "beltbuster mead" glass_desc = "The ambrosia of the blubbery gods." shot_glass_icon_state = "shotglassgold" + use_gs_icon = TRUE /datum/reagent/consumable/ethanol/beltbuster_mead/on_mob_life(mob/living/carbon/M) if(M && M?.client?.prefs.weight_gain_food) // GS13 @@ -67,6 +70,7 @@ glass_name = "heavy cafe" glass_desc = "To enjoy slow mornings with." shot_glass_icon_state = "shotglassbrown" + use_gs_icon = TRUE /datum/reagent/consumable/heavy_cafe/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -92,6 +96,7 @@ glass_name = "fruits tea" glass_desc = "Goes down really easy and stays there for a long time." shot_glass_icon_state = "shotglassgold" + use_gs_icon = TRUE /datum/reagent/consumable/fruits_tea/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-2) @@ -118,6 +123,7 @@ glass_name = "snakebite" glass_desc = "Won't hurt like a real bite, but you'll still regert drinking this." shot_glass_icon_state = "shotglassgreen" + use_gs_icon = TRUE /datum/reagent/consumable/snakebite/on_mob_life(mob/living/carbon/M) if(M && M?.client?.prefs.weight_gain_food) // GS13 diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/other_reagents.dm b/GainStation13/code/modules/reagents/chemistry/reagents/other_reagents.dm new file mode 100644 index 0000000000..c5fe614fd4 --- /dev/null +++ b/GainStation13/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -0,0 +1,17 @@ +// GS13 subtle glitters +/datum/reagent/glitter/pink_subtle + name = "lesser pink glitter" + description = "pink sparkles that get everywhere. these ones seem lower density than normal." + color = "#ff8080" //A light pink color + glitter_type = /obj/effect/decal/cleanable/glitter/pink_subtle + +/datum/reagent/glitter/white_subtle + name = "lesser white glitter" + description = "white sparkles that get everywhere. these ones seem lower density than normal." + glitter_type = /obj/effect/decal/cleanable/glitter/white_subtle + +/datum/reagent/glitter/blue_subtle + name = "lesser blue glitter" + description = "blue sparkles that get everywhere. these ones seem lower density than normal." + color = "#4040FF" //A blueish color + glitter_type = /obj/effect/decal/cleanable/glitter/blue_subtle diff --git a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm index 8605c1b859..94c5e547f7 100644 --- a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm +++ b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm @@ -5,7 +5,7 @@ name = "lipoifier" id = /datum/reagent/consumable/lipoifier results = list(/datum/reagent/consumable/lipoifier = 3) - required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1) + required_reagents = list(/datum/reagent/consumable/caramel = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1) /datum/chemical_reaction/lipolicide diff --git a/GainStation13/code/modules/reagents/chemistry/recipes/others.dm b/GainStation13/code/modules/reagents/chemistry/recipes/others.dm new file mode 100644 index 0000000000..ba9a6b2e54 --- /dev/null +++ b/GainStation13/code/modules/reagents/chemistry/recipes/others.dm @@ -0,0 +1,20 @@ +///////////////////////////////// SUBTLE GLITTERS //////////////////////////// + +/datum/chemical_reaction/lesser_pink + name = "pink glitter dilution" + id = "lesser_pink_glitter" + results = list(/datum/reagent/glitter/pink_subtle = 2) + required_reagents = list(/datum/reagent/glitter/pink = 1, /datum/reagent/space_cleaner = 1) //You clean some of it away, I guess? + +/datum/chemical_reaction/lesser_white + name = "white glitter dilution" + id = "lesser_white_glitter" + results = list(/datum/reagent/glitter/white_subtle = 2) + required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/space_cleaner = 1) + +/datum/chemical_reaction/lesser_blue + name = "pink glitter dilution" + id = "lesser_blue_glitter" + results = list(/datum/reagent/glitter/blue_subtle = 2) + required_reagents = list(/datum/reagent/glitter/blue = 1, /datum/reagent/space_cleaner = 1) +//Im not going to do the recolor recipes for the subtle glitters. Unless that's really wanted (except you cant even make glitter to start with so the recipes are already super niche to begin with.) diff --git a/GainStation13/code/modules/research/designs/autolathe.dm b/GainStation13/code/modules/research/designs/autolathe.dm index dddaf1b041..2ee2cd4dba 100644 --- a/GainStation13/code/modules/research/designs/autolathe.dm +++ b/GainStation13/code/modules/research/designs/autolathe.dm @@ -5,3 +5,43 @@ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) build_path = /obj/item/assembly/infra/fat category = list("initial", "Misc") + +/datum/design/small_cup + name = "Small Gulp Cup" + id = "Small_Gulp" + build_type = AUTOLATHE + materials = list(/datum/material/plastic=200) + build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/small + category = list("initial","Dinnerware") + +/datum/design/medium_cup + name = "Medium Gulp Cup" + id = "Medium_Gulp" + build_type = AUTOLATHE + materials = list(/datum/material/plastic=300) + build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/medium + category = list("initial","Dinnerware") + +/datum/design/small_cup + name = "Big Gulp Cup" + id = "Big_Gulp" + build_type = AUTOLATHE + materials = list(/datum/material/plastic=500) + build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/big + category = list("initial","Dinnerware") + +/datum/design/extra_big_cup + name = "Extra Big Gulp Cup" + id = "Extra_Big_Gulp" + build_type = AUTOLATHE + materials = list(/datum/material/plastic=600) + build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big + category = list("initial","Dinnerware") + +/datum/design/super_extra_big_cup + name = "Super Extra Big Gulp Cup" + id = "Super_Extra_Big_Gulp" + build_type = AUTOLATHE + materials = list(/datum/material/plastic=1000) + build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/super_extra_big + category = list("initial","Dinnerware") diff --git a/GainStation13/code/modules/research/designs/biogen.dm b/GainStation13/code/modules/research/designs/biogen.dm new file mode 100644 index 0000000000..b946d06843 --- /dev/null +++ b/GainStation13/code/modules/research/designs/biogen.dm @@ -0,0 +1,15 @@ +/datum/design/mutagen + name = "10u Unstable Mutagen" + id = "mutagen_biogen" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + make_reagents = list(/datum/reagent/toxin/mutagen = 10) + category = list("initial","Botany Chemicals") + +/datum/design/flour + name = "10u Flour" + id = "flour_biogen" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + make_reagents = list(/datum/reagent/consumable/flour = 10) + category = list("initial","Organic Materials") diff --git a/GainStation13/code/modules/research/designs/borg.dm b/GainStation13/code/modules/research/designs/borg.dm new file mode 100644 index 0000000000..ba31cf5616 --- /dev/null +++ b/GainStation13/code/modules/research/designs/borg.dm @@ -0,0 +1,26 @@ +/obj/item/borg/upgrade/feeding_arm + name = "food gripper module" + desc = "An extra module that allows cyborgs to grab food and drinks, and feed them to people." + icon_state = "cyborg_upgrade3" + +/obj/item/borg/upgrade/feeding_arm/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/gripper/food/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/feeding_arm/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/gripper/food/S = locate() in R.module + R.module.remove_module(S, TRUE) + +/obj/item/gripper/food + name = "food gripper" + desc = "A simple grasping tool for interacting with various food and drink related items." + item_flags = NOBLUDGEON + + can_hold = list( + /obj/item/reagent_containers, + ) diff --git a/GainStation13/code/modules/research/designs/nutri_designs.dm b/GainStation13/code/modules/research/designs/nutri_designs.dm index ff57450075..6ba48d0c46 100644 --- a/GainStation13/code/modules/research/designs/nutri_designs.dm +++ b/GainStation13/code/modules/research/designs/nutri_designs.dm @@ -85,7 +85,7 @@ id = "bluespace_belt" build_type = PROTOLATHE construction_time = 100 - materials = list(/datum/material/silver = 4000, /datum/material/gold = 4000, MAT_BLUESPACE = 2000, ) + materials = list(/datum/material/silver = 4000, /datum/material/gold = 4000, /datum/material/bluespace = 2000, ) build_path = /obj/item/bluespace_belt category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -96,7 +96,7 @@ id = "cookie_synthesizer" build_type = PROTOLATHE construction_time = 100 - materials = list(/datum/material/silver = 4000, /datum/material/uranium = 1000, MAT_BLUESPACE = 1000, /datum/material/calorite = 2000) + materials = list(/datum/material/silver = 4000, /datum/material/uranium = 1000, /datum/material/bluespace = 1000, /datum/material/calorite = 2000) build_path = /obj/item/cookiesynth category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE @@ -107,7 +107,7 @@ id = "borg_upgrade_cookiesynthesizer" build_type = MECHFAB build_path = /obj/item/borg/upgrade/cookiesynth - materials = list(/datum/material/iron=10000, /datum/material/gold=1500, /datum/material/uranium=250, MAT_PLASMA=1500) + materials = list(/datum/material/iron=10000, /datum/material/gold=1500, /datum/material/uranium=250, /datum/material/plasma=1500) construction_time = 100 category = list("Cyborg Upgrade Modules") @@ -129,6 +129,15 @@ construction_time = 100 category = list("Cyborg Upgrade Modules") +/datum/design/borg_foodgrip + name = "Cyborg Upgrade (Food Gripper)" + id = "borg_upgrade_foodgrip" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/feeding_arm + materials = list(/datum/material/iron = 8000, /datum/material/glass = 6000) + construction_time = 100 + category = list("Cyborg Upgrade Modules") + //todo: make a seperate file for extra borg modules /obj/item/borg/upgrade/cookiesynth diff --git a/GainStation13/code/obj/items/floor_tiles.dm b/GainStation13/code/obj/items/floor_tiles.dm new file mode 100644 index 0000000000..bc2697842a --- /dev/null +++ b/GainStation13/code/obj/items/floor_tiles.dm @@ -0,0 +1,28 @@ +/turf/open/floor/mineral/titanium/old + name = "tiled floor" + icon = 'GainStation13/icons/turf/floors.dmi' + icon_state = "titanium_old" + floor_tile = /obj/item/stack/tile/mineral/titanium + broken_states = list("titanium_dam1_old","titanium_dam2_old","titanium_dam3_old","titanium_dam4_old","titanium_dam5_old") +/turf/open/floor/mineral/titanium/old/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/mineral/titanium/old/yellow + icon_state = "titanium_yellow_old" +/turf/open/floor/mineral/titanium/old/yellow/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/mineral/titanium/old/blue + icon_state = "titanium_blue_old" +/turf/open/floor/mineral/titanium/old/blue/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/mineral/titanium/old/white + icon_state = "titanium_white_old" +/turf/open/floor/mineral/titanium/old/white/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/mineral/titanium/old/purple + icon_state = "titanium_purple_old" +/turf/open/floor/mineral/titanium/purple/airless + initial_gas_mix = "TEMP=2.7" diff --git a/GainStation13/code/obj/items/gato.dm b/GainStation13/code/obj/items/gato.dm new file mode 100644 index 0000000000..674e9d7138 --- /dev/null +++ b/GainStation13/code/obj/items/gato.dm @@ -0,0 +1,21 @@ +/////GS13 - reflavoring of random items into GATO corp, mostly seperated variants so we don't overwrite NT + +/obj/item/storage/fancy/cigarettes/gatito + name = "\improper HumoGatitos packet" + desc = "Strangely tasty for a cigarette." + icon = 'GainStation13/icons/obj/cigarettes.dmi' + icon_state = "smokegatitos" + spawn_type = /obj/item/clothing/mask/cigarette/dromedary + +/obj/item/clothing/mask/cigarette/gatito + desc = "A HumoGatitos brand cigarette." + +/obj/item/banner/gato + name = "GATO banner" + desc = "The banner of GATO, our corporate overlords." + icon = 'GainStation13/icons/obj/items_and_weapons.dmi' + icon_state = "banner_gato" + job_loyalties = list("Command") + warcry = "FOR THE INTEREST OF GATO!!" + lefthand_file = 'GainStation13/icons/mob/inhands/equipment/banners_lefthand.dmi' + righthand_file = 'GainStation13/icons/mob/inhands/equipment/banners_righthand.dmi' diff --git a/GainStation13/code/obj/items/minor_items.dm b/GainStation13/code/obj/items/minor_items.dm index 29efce6407..f45f9d80fb 100644 --- a/GainStation13/code/obj/items/minor_items.dm +++ b/GainStation13/code/obj/items/minor_items.dm @@ -171,3 +171,55 @@ icon = 'icons/obj/module.dmi' icon_state = "datadisk0" desc = "A dusty disk, desconstruction will be needed to recover data." + +//GS 13 Port - Big gulps in all sizes +/obj/item/reagent_containers/food/drinks/flask/paper_cup + name = "paper cup" + icon = 'GainStation13/icons/obj/paper_cups.dmi' + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) + volume = 50 + reagent_flags = OPENCONTAINER + spillable = TRUE + container_HP = 5 + pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg' + drop_sound = 'sound/items/handling/cardboardbox_drop.ogg' + +/obj/item/reagent_containers/food/drinks/flask/paper_cup/small + name = "Small Gulp Cup" + desc = "A paper cup. It can hold up to 50 units. It's not very strong." + icon_state = "small" + custom_materials = list(/datum/material/plastic=200) + w_class = WEIGHT_CLASS_SMALL + +/obj/item/reagent_containers/food/drinks/flask/paper_cup/medium + name = "Medium Gulp Cup" + desc = "It's a paper cup, but you wouldn't call it 'medium' though. It can hold up to 75 units. It's not very strong." + icon_state = "medium" + volume = 75 + custom_materials = list(/datum/material/plastic=300) + w_class = WEIGHT_CLASS_SMALL + +/obj/item/reagent_containers/food/drinks/flask/paper_cup/big + name = "Big Gulp Cup" + desc = "A huge paper cup, a normal person would struggle to drink it all in one sitting. It can hold up to 120 units. It's not very strong." + icon_state = "big" + volume = 120 + custom_materials = list(/datum/material/plastic=500) + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big + name = "Extra Big Gulp Cup" + desc = "A comically large paper cup. It can hold up to 160 units. It's not very strong." + icon_state = "extra_big" + volume = 160 + custom_materials = list(/datum/material/plastic=600) + w_class = WEIGHT_CLASS_BULKY + +/obj/item/reagent_containers/food/drinks/flask/paper_cup/super_extra_big + name = "Super Extra Big Gulp Cup" + desc = "Its called a paper 'cup', but it looks more like an oversized bucket to you. It can hold up to 250 units. It's not very strong." + icon_state = "super_extra_big" + volume = 250 + custom_materials = list(/datum/material/plastic=1000) + w_class = WEIGHT_CLASS_HUGE diff --git a/GainStation13/code/obj/items/reskinable_floor_tile.dm b/GainStation13/code/obj/items/reskinable_floor_tile.dm new file mode 100644 index 0000000000..c3bd572d00 --- /dev/null +++ b/GainStation13/code/obj/items/reskinable_floor_tile.dm @@ -0,0 +1,165 @@ +///////////////////// +// Tile reskinning // +///////////////////// +// Q: What is this? +// A: A simple function to allow you to change what tiles you place with a stack of tiles. +// Q: Why do it this way? +// A: This allows players more freedom to do beautiful-looking builds. Having five types of titanium tile would be clunky as heck. +// Q: Great! Can I use this for all floors? +// A: Unfortunately, this does not work on subtypes of plasteel and instead we must change the icon_state of these turfs instead, as the icon_regular_floor var that "saves" what type of floor a plasteel subtype turf was so once repaired... +// ... it'll go back to the floor it was instead of grey (medical floors turn white even after crowbaring the tile and putting it back). This stops changing turf_type from working. + +/obj/item/stack/tile/mineral/titanium/attack_self(mob/user) + var/static/list/choices = list( + "Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle"), + "Yellow Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_yellow"), + "Blue Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_blue"), + "White Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_white"), + "Purple Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_purple"), + "Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old"), + "Yellow Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_yellow"), + "Blue Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_blue"), + "White Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_white"), + "Purple Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_purple"), + ) + var/choice = show_radial_menu(user, src, choices, radius = 48, require_near = TRUE) + switch(choice) + if("Titanium") + turf_type = /turf/open/floor/mineral/titanium + icon_state = "tile_shuttle" + desc = "Sleek titanium tiles." + if("Yellow Titanium") + turf_type = /turf/open/floor/mineral/titanium/yellow + icon_state = "tile_shuttle_yellow" + desc = "Sleek yellow titanium tiles." + if("Blue Titanium") + turf_type = /turf/open/floor/mineral/titanium/blue + icon_state = "tile_shuttle_blue" + desc = "Sleek blue titanium tiles." + if("White Titanium") + turf_type = /turf/open/floor/mineral/titanium/white + icon_state = "tile_shuttle_white" + desc = "Sleek white titanium tiles." + if("Purple Titanium") + turf_type = /turf/open/floor/mineral/titanium/purple + icon_state = "tile_shuttle_purple" + desc = "Sleek purple titanium tiles." + if("Titanium Tile") + turf_type = /turf/open/floor/mineral/titanium/old + icon_state = "tile_shuttle_old" + desc = "Titanium floor tiles." + if("Yellow Titanium Tile") + turf_type = /turf/open/floor/mineral/titanium/old/yellow + icon_state = "tile_shuttle_old_yellow" + desc = "Yellow titanium floor tiles." + if("Blue Titanium Tile") + turf_type = /turf/open/floor/mineral/titanium/old/blue + icon_state = "tile_shuttle_old_blue" + desc = "Blue titanium floor tiles." + if("White Titanium Tile") + turf_type = /turf/open/floor/mineral/titanium/old/white + icon_state = "tile_shuttle_old_white" + desc = "White titanium floor tiles." + if("Purple Titanium Tile") + turf_type = /turf/open/floor/mineral/titanium/old/purple + icon_state = "tile_shuttle_old_purple" + desc = "Purple titanium floor tiles." + +/obj/item/stack/tile/plasteel + desc = "Metal tiles that can be placed on top of plating. Press Z or use these to change tiles." + icon = 'GainStation13/icons/obj/tiles.dmi' + var/tile_reskin_mode + tile_reskin_mode = "plasteel" + +/obj/item/stack/tile/plasteel/attack_self(mob/user) + var/static/list/choices = list( + "Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_plasteel"), + "White Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_white"), + "Dark Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_dark"), + "Chapel Flooring" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_chapel"), + "Shower" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shower"), + "Freezer" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_freezer"), + "Kitchen" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_kitchen"), + "Grimy" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_grimy"), + "Solar Panel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_solar"), + ) + var/choice = show_radial_menu(user, src, choices, radius = 48, require_near = TRUE) + switch(choice) + if("Plasteel") + turf_type = /turf/open/floor/plasteel + icon_state = "tile_plasteel" + desc = "Metal floor tiles." + tile_reskin_mode = "plasteel" + if("White Plasteel") + turf_type = /turf/open/floor/plasteel/white + icon_state = "tile_white" + desc = "White metal floor tiles." + tile_reskin_mode = "white plasteel" + if("Dark Plasteel") + turf_type = /turf/open/floor/plasteel/dark + icon_state = "tile_dark" + desc = "Dark metal floor tiles." + tile_reskin_mode = "dark plasteel" + if("Chapel Flooring") + turf_type = /turf/open/floor/plasteel/chapel + icon_state = "tile_chapel" + desc = "Those very dark floor tiles you find in the chapel a lot." + tile_reskin_mode = "chapel" + if("Shower") + turf_type = /turf/open/floor/plasteel/showroomfloor + icon_state = "tile_shower" + desc = "Tiles for showers, bathrooms and wetrooms." + tile_reskin_mode = "shower" + if("Freezer") + turf_type = /turf/open/floor/plasteel/freezer + icon_state = "tile_freezer" + desc = "High-grip flooring for walk-in freezers and chillers." + tile_reskin_mode = "freezer" + if("Kitchen") + turf_type = /turf/open/floor/plasteel/cafeteria + icon_state = "tile_kitchen" + desc = "Chequered pattern plasteel tiles." + tile_reskin_mode = "kitchen" + if("Grimy") + turf_type = /turf/open/floor/plasteel/grimy + icon_state = "tile_grimy" + desc = "I'm sure it'll look nice somewhere?" + tile_reskin_mode = "grimy" + if("Solar Panel") + turf_type = /turf/open/floor/plasteel/airless/solarpanel + icon_state = "tile_solar" + desc = "Flooring usually placed below solar panels. Using this indoors is an intergalactic fashion crime." + tile_reskin_mode = "solar" + +/turf/open/floor/plasteel/attackby(obj/item/reskinstack, mob/user, params) + if(istype(reskinstack, /obj/item/stack/tile/plasteel)) + var/obj/item/stack/tile/plasteel/hitfloor = reskinstack + switch(hitfloor.tile_reskin_mode) + if("plasteel") + icon_state = "floor" + icon_regular_floor = "floor" + if("white plasteel") + icon_state = "white" + icon_regular_floor = "white" + if("dark plasteel") + icon_state = "darkfull" + icon_regular_floor = "darkfull" + if("chapel") + icon_state = "chapel_alt" + icon_regular_floor = "chapel_alt" + if("shower") + icon_state = "showroomfloor" + icon_regular_floor = "showroomfloor" + if("freezer") + icon_state = "freezerfloor" + icon_regular_floor = "freezerfloor" + if("kitchen") + icon_state = "cafeteria" + icon_regular_floor = "cafeteria" + if("grimy") + icon_state = "grimy" + icon_regular_floor = "grimy" + if("solar") + icon_state = "solarpanel" + icon_regular_floor = "solarpanel" + else return diff --git a/GainStation13/code/xenoarch/strange_rock.dm b/GainStation13/code/xenoarch/strange_rock.dm index a2a1787641..b43bf41739 100644 --- a/GainStation13/code/xenoarch/strange_rock.dm +++ b/GainStation13/code/xenoarch/strange_rock.dm @@ -115,4 +115,4 @@ mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10, /obj/item/stack/ore/titanium = 11, /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, - /turf/closed/mineral/gibtonite/volcanic = 4, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 15, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT + /turf/closed/mineral/gibtonite/volcanic = 4, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 30, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT diff --git a/GainStation13/code/xenoarch/tools.dm b/GainStation13/code/xenoarch/tools.dm index fc41661a38..057014f1ce 100644 --- a/GainStation13/code/xenoarch/tools.dm +++ b/GainStation13/code/xenoarch/tools.dm @@ -388,7 +388,7 @@ desc = "A hammer that destroys 1 cm of debris." id = "hammercm1" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm1 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -398,7 +398,7 @@ desc = "A hammer that destroys 2 cm of debris." id = "hammercm2" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm2 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -408,7 +408,7 @@ desc = "A hammer that destroys 3 cm of debris." id = "hammercm3" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm3 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -418,7 +418,7 @@ desc = "A hammer that destroys 4 cm of debris." id = "hammercm4" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm4 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -428,7 +428,7 @@ desc = "A hammer that destroys 5 cm of debris." id = "hammercm5" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm5 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -438,7 +438,7 @@ desc = "A hammer that destroys 6 cm of debris." id = "hammercm6" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm6 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -448,7 +448,7 @@ desc = "A hammer that destroys 15 cm of debris." id = "hammercm15" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/hammer/cm15 category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -458,7 +458,7 @@ desc = "A hammer that destroys up to 30 cm of debris." id = "hammercmadv" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1500) + materials = list(/datum/material/plastic = 1500) build_path = /obj/item/xenoarch/clean/hammer/advanced category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -468,7 +468,7 @@ desc = "A brush that cleans debris." id = "hammerbrush" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/clean/brush/basic category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -478,7 +478,7 @@ desc = "A brush that cleans debris." id = "hammerbrushadv" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1500) + materials = list(/datum/material/plastic = 1500) build_path = /obj/item/xenoarch/clean/brush/adv category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -490,7 +490,7 @@ desc = "A tool that scans depths of rocks." id = "xenoscanner" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/help/scanner category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -500,7 +500,7 @@ desc = "A tool that scans depths of rocks." id = "advxenoscanner" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1500) + materials = list(/datum/material/plastic = 1500) build_path = /obj/item/xenoarch/help/scanneradv category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -510,7 +510,7 @@ desc = "A tool to measure the dug depth of rocks." id = "xenomeasure" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/xenoarch/help/measuring category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -520,7 +520,7 @@ desc = "A tool used to get research points from artifacts." id = "xenoresearch" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1000) + materials = list(/datum/material/plastic = 1000) build_path = /obj/item/xenoarch/help/research category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -530,7 +530,7 @@ desc = "A tool to extract the seeds from prehistoric fossils." id = "xenoplant" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1000) + materials = list(/datum/material/plastic = 1000) build_path = /obj/item/xenoarch/help/plant category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -540,7 +540,7 @@ desc = "A tool used to sell items, virtually." id = "advcargoscanner" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 1000, MAT_BLUESPACE = 1000) + materials = list(/datum/material/plastic = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/xenoarch/help/cargo category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO @@ -550,7 +550,7 @@ desc = "A belt used to store some xenoarch tools." id = "xenobelt" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 2000) + materials = list(/datum/material/plastic = 2000) build_path = /obj/item/storage/belt/xenoarch category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -560,7 +560,7 @@ desc = "A bag used to store 10 strange rocks." id = "xenorockback" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 2000) + materials = list(/datum/material/plastic = 2000) build_path = /obj/item/storage/bag/strangerock category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -570,7 +570,7 @@ desc = "A bluespace bag used to store 50 strange rocks." id = "xenorockbackadv" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 2000, MAT_BLUESPACE = 1000) + materials = list(/datum/material/plastic = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/storage/bag/strangerockadv category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/GainStation13/icons/effects/atmospherics.dmi b/GainStation13/icons/effects/atmospherics.dmi new file mode 100644 index 0000000000..16884f1da2 Binary files /dev/null and b/GainStation13/icons/effects/atmospherics.dmi differ diff --git a/GainStation13/icons/mob/32x64_mam_ears.dmi b/GainStation13/icons/mob/32x64_mam_ears.dmi new file mode 100644 index 0000000000..e158950e2b Binary files /dev/null and b/GainStation13/icons/mob/32x64_mam_ears.dmi differ diff --git a/GainStation13/icons/mob/alienqueen.dmi b/GainStation13/icons/mob/alienqueen.dmi new file mode 100644 index 0000000000..4c04e0e4bf Binary files /dev/null and b/GainStation13/icons/mob/alienqueen.dmi differ diff --git a/GainStation13/icons/mob/bees.dmi b/GainStation13/icons/mob/bees.dmi new file mode 100644 index 0000000000..5d9bfea48b Binary files /dev/null and b/GainStation13/icons/mob/bees.dmi differ diff --git a/GainStation13/icons/mob/eyes.dmi b/GainStation13/icons/mob/eyes.dmi deleted file mode 100644 index 6b15d4f965..0000000000 Binary files a/GainStation13/icons/mob/eyes.dmi and /dev/null differ diff --git a/GainStation13/icons/mob/human_face.dmi b/GainStation13/icons/mob/human_face.dmi new file mode 100644 index 0000000000..3e73aaca82 Binary files /dev/null and b/GainStation13/icons/mob/human_face.dmi differ diff --git a/GainStation13/icons/mob/inhands/equipment/banners_lefthand.dmi b/GainStation13/icons/mob/inhands/equipment/banners_lefthand.dmi new file mode 100644 index 0000000000..1cc462a86b Binary files /dev/null and b/GainStation13/icons/mob/inhands/equipment/banners_lefthand.dmi differ diff --git a/GainStation13/icons/mob/inhands/equipment/banners_righthand.dmi b/GainStation13/icons/mob/inhands/equipment/banners_righthand.dmi new file mode 100644 index 0000000000..a8850aceab Binary files /dev/null and b/GainStation13/icons/mob/inhands/equipment/banners_righthand.dmi differ diff --git a/GainStation13/icons/mob/markings/char_snouts.dmi b/GainStation13/icons/mob/markings/char_snouts.dmi new file mode 100644 index 0000000000..92b3163d84 Binary files /dev/null and b/GainStation13/icons/mob/markings/char_snouts.dmi differ diff --git a/GainStation13/icons/mob/markings/ipc_antennas.dmi b/GainStation13/icons/mob/markings/ipc_antennas.dmi new file mode 100644 index 0000000000..9f20aa4429 Binary files /dev/null and b/GainStation13/icons/mob/markings/ipc_antennas.dmi differ diff --git a/GainStation13/icons/mob/markings/ipc_screens.dmi b/GainStation13/icons/mob/markings/ipc_screens.dmi new file mode 100644 index 0000000000..c7d44da5a8 Binary files /dev/null and b/GainStation13/icons/mob/markings/ipc_screens.dmi differ diff --git a/GainStation13/icons/mob/markings/mam_ears.dmi b/GainStation13/icons/mob/markings/mam_ears.dmi new file mode 100644 index 0000000000..ceffc09310 Binary files /dev/null and b/GainStation13/icons/mob/markings/mam_ears.dmi differ diff --git a/GainStation13/icons/mob/markings/mam_markings.dmi b/GainStation13/icons/mob/markings/mam_markings.dmi new file mode 100644 index 0000000000..f4195d7ba3 Binary files /dev/null and b/GainStation13/icons/mob/markings/mam_markings.dmi differ diff --git a/GainStation13/icons/mob/markings/mam_snouts.dmi b/GainStation13/icons/mob/markings/mam_snouts.dmi new file mode 100644 index 0000000000..78adeedc40 Binary files /dev/null and b/GainStation13/icons/mob/markings/mam_snouts.dmi differ diff --git a/GainStation13/icons/mob/markings/mam_tails.dmi b/GainStation13/icons/mob/markings/mam_tails.dmi new file mode 100644 index 0000000000..583772d842 Binary files /dev/null and b/GainStation13/icons/mob/markings/mam_tails.dmi differ diff --git a/GainStation13/icons/mob/markings/mam_taur.dmi b/GainStation13/icons/mob/markings/mam_taur.dmi new file mode 100644 index 0000000000..736e047fb8 Binary files /dev/null and b/GainStation13/icons/mob/markings/mam_taur.dmi differ diff --git a/GainStation13/icons/mob/markings/markings_notmammals.dmi b/GainStation13/icons/mob/markings/markings_notmammals.dmi new file mode 100644 index 0000000000..157c02d656 Binary files /dev/null and b/GainStation13/icons/mob/markings/markings_notmammals.dmi differ diff --git a/GainStation13/icons/mob/markings/mutant_bodyparts.dmi b/GainStation13/icons/mob/markings/mutant_bodyparts.dmi new file mode 100644 index 0000000000..99f4f83d17 Binary files /dev/null and b/GainStation13/icons/mob/markings/mutant_bodyparts.dmi differ diff --git a/GainStation13/icons/mob/markings/taur_canine.dmi b/GainStation13/icons/mob/markings/taur_canine.dmi new file mode 100644 index 0000000000..85b3d19882 Binary files /dev/null and b/GainStation13/icons/mob/markings/taur_canine.dmi differ diff --git a/GainStation13/icons/mob/markings/taur_hooved.dmi b/GainStation13/icons/mob/markings/taur_hooved.dmi new file mode 100644 index 0000000000..fc50161862 Binary files /dev/null and b/GainStation13/icons/mob/markings/taur_hooved.dmi differ diff --git a/GainStation13/icons/mob/markings/taur_naga.dmi b/GainStation13/icons/mob/markings/taur_naga.dmi new file mode 100644 index 0000000000..48a51d734a Binary files /dev/null and b/GainStation13/icons/mob/markings/taur_naga.dmi differ diff --git a/GainStation13/icons/mob/modclothes/graymodular.dmi b/GainStation13/icons/mob/modclothes/graymodular.dmi index b1115e6b3b..69d184ac38 100644 Binary files a/GainStation13/icons/mob/modclothes/graymodular.dmi and b/GainStation13/icons/mob/modclothes/graymodular.dmi differ diff --git a/GainStation13/icons/mob/modclothes/graymodular_round.dmi b/GainStation13/icons/mob/modclothes/graymodular_round.dmi new file mode 100644 index 0000000000..571e2f91a7 Binary files /dev/null and b/GainStation13/icons/mob/modclothes/graymodular_round.dmi differ diff --git a/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi b/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi new file mode 100644 index 0000000000..0fc64b650d Binary files /dev/null and b/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi differ diff --git a/GainStation13/icons/mob/neck.dmi b/GainStation13/icons/mob/neck.dmi deleted file mode 100644 index 6733e68824..0000000000 Binary files a/GainStation13/icons/mob/neck.dmi and /dev/null differ diff --git a/GainStation13/icons/mob/radial.dmi b/GainStation13/icons/mob/radial.dmi new file mode 100644 index 0000000000..3dfdd2fd5a Binary files /dev/null and b/GainStation13/icons/mob/radial.dmi differ diff --git a/GainStation13/icons/mob/robots.dmi b/GainStation13/icons/mob/robots.dmi index 64b8341ae1..83381b23c1 100644 Binary files a/GainStation13/icons/mob/robots.dmi and b/GainStation13/icons/mob/robots.dmi differ diff --git a/GainStation13/icons/mob/suits.dmi b/GainStation13/icons/mob/suits.dmi index abcdd082bc..aae27c3fc2 100644 Binary files a/GainStation13/icons/mob/suits.dmi and b/GainStation13/icons/mob/suits.dmi differ diff --git a/GainStation13/icons/obj/barsigns.dmi b/GainStation13/icons/obj/barsigns.dmi new file mode 100644 index 0000000000..891517a2f2 Binary files /dev/null and b/GainStation13/icons/obj/barsigns.dmi differ diff --git a/GainStation13/icons/obj/bedsheets.dmi b/GainStation13/icons/obj/bedsheets.dmi index e4950e9875..4c3b18e629 100644 Binary files a/GainStation13/icons/obj/bedsheets.dmi and b/GainStation13/icons/obj/bedsheets.dmi differ diff --git a/GainStation13/icons/obj/card.dmi b/GainStation13/icons/obj/card.dmi new file mode 100644 index 0000000000..1a20c6297e Binary files /dev/null and b/GainStation13/icons/obj/card.dmi differ diff --git a/GainStation13/icons/obj/chairs.dmi b/GainStation13/icons/obj/chairs.dmi index 2e1811d013..0cca2a6a5a 100644 Binary files a/GainStation13/icons/obj/chairs.dmi and b/GainStation13/icons/obj/chairs.dmi differ diff --git a/GainStation13/icons/obj/cigarettes.dmi b/GainStation13/icons/obj/cigarettes.dmi new file mode 100644 index 0000000000..89a299b2b8 Binary files /dev/null and b/GainStation13/icons/obj/cigarettes.dmi differ diff --git a/GainStation13/icons/obj/clothing/glasses.dmi b/GainStation13/icons/obj/clothing/glasses.dmi deleted file mode 100644 index a1ddbe39a1..0000000000 Binary files a/GainStation13/icons/obj/clothing/glasses.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/clothing/gloves.dmi b/GainStation13/icons/obj/clothing/gloves.dmi new file mode 100644 index 0000000000..300dbd4da6 Binary files /dev/null and b/GainStation13/icons/obj/clothing/gloves.dmi differ diff --git a/GainStation13/icons/obj/decals.dmi b/GainStation13/icons/obj/decals.dmi index 2813a82a6d..12740a1430 100644 Binary files a/GainStation13/icons/obj/decals.dmi and b/GainStation13/icons/obj/decals.dmi differ diff --git a/GainStation13/icons/obj/device.dmi b/GainStation13/icons/obj/device.dmi new file mode 100644 index 0000000000..b4a7291677 Binary files /dev/null and b/GainStation13/icons/obj/device.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi b/GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi new file mode 100644 index 0000000000..58be8d778e Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi new file mode 100644 index 0000000000..6bc8aae620 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi b/GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi new file mode 100644 index 0000000000..c034f8e282 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi new file mode 100644 index 0000000000..7ec3486053 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi new file mode 100644 index 0000000000..b34b73fb4e Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi b/GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi new file mode 100644 index 0000000000..cad0fe0ed0 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi b/GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi new file mode 100644 index 0000000000..1ed0d58dc4 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi new file mode 100644 index 0000000000..19920538d9 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi b/GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi new file mode 100644 index 0000000000..83c052c413 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi new file mode 100644 index 0000000000..5fb77f2676 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/external/color.dmi b/GainStation13/icons/obj/doors/airlocks/external/color.dmi new file mode 100644 index 0000000000..b286528da2 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/external/color.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/external/external.dmi b/GainStation13/icons/obj/doors/airlocks/external/external.dmi new file mode 100644 index 0000000000..d67fd5b8fd Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/external/external.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/external/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/external/overlays.dmi new file mode 100644 index 0000000000..1ccd15c582 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/external/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi b/GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi new file mode 100644 index 0000000000..9dbcb9d0f1 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi new file mode 100644 index 0000000000..04e7d7093c Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi b/GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi new file mode 100644 index 0000000000..bf48f8bdd6 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi b/GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi new file mode 100644 index 0000000000..ab5a192647 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi new file mode 100644 index 0000000000..affcbbf2ce Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi b/GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi new file mode 100644 index 0000000000..a43dce6a62 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi new file mode 100644 index 0000000000..2a6868c34b Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi new file mode 100644 index 0000000000..b2bb2cfa04 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi b/GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi new file mode 100644 index 0000000000..0e05597163 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/atmos.dmi b/GainStation13/icons/obj/doors/airlocks/station/atmos.dmi new file mode 100644 index 0000000000..aff111c9a3 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/atmos.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/bananium.dmi b/GainStation13/icons/obj/doors/airlocks/station/bananium.dmi new file mode 100644 index 0000000000..47fc565377 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/bananium.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/base.dmi b/GainStation13/icons/obj/doors/airlocks/station/base.dmi new file mode 100644 index 0000000000..4d62d12fba Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/base.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/color.dmi b/GainStation13/icons/obj/doors/airlocks/station/color.dmi new file mode 100644 index 0000000000..fd4de10aae Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/color.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/command.dmi b/GainStation13/icons/obj/doors/airlocks/station/command.dmi new file mode 100644 index 0000000000..265ea041b9 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/command.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/diamond.dmi b/GainStation13/icons/obj/doors/airlocks/station/diamond.dmi new file mode 100644 index 0000000000..1c30830644 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/diamond.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/divide.dmi b/GainStation13/icons/obj/doors/airlocks/station/divide.dmi new file mode 100644 index 0000000000..e3fa6a7e43 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/divide.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/engineering.dmi b/GainStation13/icons/obj/doors/airlocks/station/engineering.dmi new file mode 100644 index 0000000000..8da9536638 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/engineering.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/freezer.dmi b/GainStation13/icons/obj/doors/airlocks/station/freezer.dmi new file mode 100644 index 0000000000..f2f741347b Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/freezer.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/gold.dmi b/GainStation13/icons/obj/doors/airlocks/station/gold.dmi new file mode 100644 index 0000000000..490eefeeb9 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/gold.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi b/GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi new file mode 100644 index 0000000000..aff111c9a3 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi b/GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi new file mode 100644 index 0000000000..aff111c9a3 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/medbaydouble.dmi b/GainStation13/icons/obj/doors/airlocks/station/medbaydouble.dmi new file mode 100644 index 0000000000..38d6340af4 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/medbaydouble.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/medical.dmi b/GainStation13/icons/obj/doors/airlocks/station/medical.dmi new file mode 100644 index 0000000000..4dfbad5cb2 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/medical.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/mining.dmi b/GainStation13/icons/obj/doors/airlocks/station/mining.dmi new file mode 100644 index 0000000000..aff111c9a3 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/mining.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/station/overlays.dmi new file mode 100644 index 0000000000..0d128d91ba Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/overlaysdouble.dmi b/GainStation13/icons/obj/doors/airlocks/station/overlaysdouble.dmi new file mode 100644 index 0000000000..08986ddd4b Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/overlaysdouble.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/plasma.dmi b/GainStation13/icons/obj/doors/airlocks/station/plasma.dmi new file mode 100644 index 0000000000..99d44ef862 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/plasma.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/public.dmi b/GainStation13/icons/obj/doors/airlocks/station/public.dmi new file mode 100644 index 0000000000..aff111c9a3 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/public.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/research.dmi b/GainStation13/icons/obj/doors/airlocks/station/research.dmi new file mode 100644 index 0000000000..4dfbad5cb2 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/research.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi b/GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi new file mode 100644 index 0000000000..ef61df4c5c Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/science.dmi b/GainStation13/icons/obj/doors/airlocks/station/science.dmi new file mode 100644 index 0000000000..172c820538 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/science.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/security.dmi b/GainStation13/icons/obj/doors/airlocks/station/security.dmi new file mode 100644 index 0000000000..d949ed5dcd Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/security.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/securitydouble.dmi b/GainStation13/icons/obj/doors/airlocks/station/securitydouble.dmi new file mode 100644 index 0000000000..d60b41d1ef Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/securitydouble.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/silver.dmi b/GainStation13/icons/obj/doors/airlocks/station/silver.dmi new file mode 100644 index 0000000000..e7e6672fbf Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/silver.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/strip.dmi b/GainStation13/icons/obj/doors/airlocks/station/strip.dmi new file mode 100644 index 0000000000..0a148076e8 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/strip.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/uranium.dmi b/GainStation13/icons/obj/doors/airlocks/station/uranium.dmi new file mode 100644 index 0000000000..ac8c6d0611 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/uranium.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/virology.dmi b/GainStation13/icons/obj/doors/airlocks/station/virology.dmi new file mode 100644 index 0000000000..4dfbad5cb2 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/virology.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station/wood.dmi b/GainStation13/icons/obj/doors/airlocks/station/wood.dmi new file mode 100644 index 0000000000..7b7df10329 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station/wood.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station2/glass.dmi b/GainStation13/icons/obj/doors/airlocks/station2/glass.dmi new file mode 100644 index 0000000000..d474099785 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station2/glass.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi new file mode 100644 index 0000000000..1cf94b2e6a Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/survival/survival.dmi b/GainStation13/icons/obj/doors/airlocks/survival/survival.dmi new file mode 100644 index 0000000000..f6d8d3ce6b Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/survival/survival.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/survival/survival_overlays.dmi b/GainStation13/icons/obj/doors/airlocks/survival/survival_overlays.dmi new file mode 100644 index 0000000000..f8e62144cd Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/survival/survival_overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi b/GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi new file mode 100644 index 0000000000..f18346acf6 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi differ diff --git a/GainStation13/icons/obj/doors/airlocks/vault/vault.dmi b/GainStation13/icons/obj/doors/airlocks/vault/vault.dmi new file mode 100644 index 0000000000..d2ef5d4e46 Binary files /dev/null and b/GainStation13/icons/obj/doors/airlocks/vault/vault.dmi differ diff --git a/GainStation13/icons/obj/doors/blastdoor.dmi b/GainStation13/icons/obj/doors/blastdoor.dmi new file mode 100644 index 0000000000..30847afa87 Binary files /dev/null and b/GainStation13/icons/obj/doors/blastdoor.dmi differ diff --git a/GainStation13/icons/obj/drinks.dmi b/GainStation13/icons/obj/drinks.dmi index d24ee43bc2..cd1bae219a 100644 Binary files a/GainStation13/icons/obj/drinks.dmi and b/GainStation13/icons/obj/drinks.dmi differ diff --git a/GainStation13/icons/obj/feeding_tube_industrial.dmi b/GainStation13/icons/obj/feeding_tube_industrial.dmi new file mode 100644 index 0000000000..058e5f47c1 Binary files /dev/null and b/GainStation13/icons/obj/feeding_tube_industrial.dmi differ diff --git a/GainStation13/icons/obj/gatofication.dmi b/GainStation13/icons/obj/gatofication.dmi new file mode 100644 index 0000000000..fcab8166f5 Binary files /dev/null and b/GainStation13/icons/obj/gatofication.dmi differ diff --git a/GainStation13/icons/obj/halloween_items.dmi b/GainStation13/icons/obj/halloween_items.dmi new file mode 100644 index 0000000000..392ec60c35 Binary files /dev/null and b/GainStation13/icons/obj/halloween_items.dmi differ diff --git a/GainStation13/icons/obj/hydroponics/growing.dmi b/GainStation13/icons/obj/hydroponics/growing.dmi new file mode 100644 index 0000000000..6636c5175a Binary files /dev/null and b/GainStation13/icons/obj/hydroponics/growing.dmi differ diff --git a/GainStation13/icons/obj/hydroponics/harvest.dmi b/GainStation13/icons/obj/hydroponics/harvest.dmi new file mode 100644 index 0000000000..c8e3d4d042 Binary files /dev/null and b/GainStation13/icons/obj/hydroponics/harvest.dmi differ diff --git a/GainStation13/icons/obj/hydroponics/lipo_growing.dmi b/GainStation13/icons/obj/hydroponics/lipo_growing.dmi deleted file mode 100644 index 5378603447..0000000000 Binary files a/GainStation13/icons/obj/hydroponics/lipo_growing.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/hydroponics/lipo_harvest.dmi b/GainStation13/icons/obj/hydroponics/lipo_harvest.dmi deleted file mode 100644 index ab2326e413..0000000000 Binary files a/GainStation13/icons/obj/hydroponics/lipo_harvest.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/hydroponics/lipo_seeds.dmi b/GainStation13/icons/obj/hydroponics/lipo_seeds.dmi deleted file mode 100644 index 8c24ca7a95..0000000000 Binary files a/GainStation13/icons/obj/hydroponics/lipo_seeds.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/hydroponics/seeds.dmi b/GainStation13/icons/obj/hydroponics/seeds.dmi new file mode 100644 index 0000000000..be7d4c707c Binary files /dev/null and b/GainStation13/icons/obj/hydroponics/seeds.dmi differ diff --git a/GainStation13/icons/obj/items_and_weapons.dmi b/GainStation13/icons/obj/items_and_weapons.dmi new file mode 100644 index 0000000000..43c902fe2d Binary files /dev/null and b/GainStation13/icons/obj/items_and_weapons.dmi differ diff --git a/GainStation13/icons/obj/janitor.dmi b/GainStation13/icons/obj/janitor.dmi new file mode 100644 index 0000000000..96980b3eb8 Binary files /dev/null and b/GainStation13/icons/obj/janitor.dmi differ diff --git a/GainStation13/icons/obj/lighting.dmi b/GainStation13/icons/obj/lighting.dmi new file mode 100644 index 0000000000..15b4d5adcf Binary files /dev/null and b/GainStation13/icons/obj/lighting.dmi differ diff --git a/GainStation13/icons/obj/modular_console.dmi b/GainStation13/icons/obj/modular_console.dmi new file mode 100644 index 0000000000..4828293e12 Binary files /dev/null and b/GainStation13/icons/obj/modular_console.dmi differ diff --git a/GainStation13/icons/obj/plushes.dmi b/GainStation13/icons/obj/plushes.dmi index 82d46c8de7..b934c7982f 100644 Binary files a/GainStation13/icons/obj/plushes.dmi and b/GainStation13/icons/obj/plushes.dmi differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/nest.dmi b/GainStation13/icons/obj/smooth_structures/alien/nest.dmi deleted file mode 100644 index 4a1c757bc6..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/nest.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/resin_membrane.dmi b/GainStation13/icons/obj/smooth_structures/alien/resin_membrane.dmi deleted file mode 100644 index 517838a653..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/resin_membrane.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/resin_wall.dmi b/GainStation13/icons/obj/smooth_structures/alien/resin_wall.dmi deleted file mode 100644 index eba082a830..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/resin_wall.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/weednode.dmi b/GainStation13/icons/obj/smooth_structures/alien/weednode.dmi deleted file mode 100644 index 8d963d7c83..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/weednode.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/weeds1.dmi b/GainStation13/icons/obj/smooth_structures/alien/weeds1.dmi deleted file mode 100644 index b794b6853f..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/weeds1.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/weeds2.dmi b/GainStation13/icons/obj/smooth_structures/alien/weeds2.dmi deleted file mode 100644 index 8917bade58..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/weeds2.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien/weeds3.dmi b/GainStation13/icons/obj/smooth_structures/alien/weeds3.dmi deleted file mode 100644 index c7f0aa0ca9..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien/weeds3.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/alien_table.dmi b/GainStation13/icons/obj/smooth_structures/alien_table.dmi deleted file mode 100644 index 1d60bcc82f..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/alien_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/brass_table.dmi b/GainStation13/icons/obj/smooth_structures/brass_table.dmi deleted file mode 100644 index f3cc8bb9ee..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/brass_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/catwalk.dmi b/GainStation13/icons/obj/smooth_structures/catwalk.dmi deleted file mode 100644 index 4b71fb5073..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/catwalk.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/catwalk_clockwork.dmi b/GainStation13/icons/obj/smooth_structures/catwalk_clockwork.dmi deleted file mode 100644 index ecef1df389..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/catwalk_clockwork.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/catwalk_clockwork_large.dmi b/GainStation13/icons/obj/smooth_structures/catwalk_clockwork_large.dmi deleted file mode 100644 index 675ebd91f6..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/catwalk_clockwork_large.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/clockwork_window.dmi b/GainStation13/icons/obj/smooth_structures/clockwork_window.dmi deleted file mode 100644 index 10d5bcf631..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/clockwork_window.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table.dmi deleted file mode 100644 index a57b165f4a..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_black.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_black.dmi deleted file mode 100644 index d4570e8a7c..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_black.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_blackred.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_blackred.dmi deleted file mode 100644 index 0766c2f2f9..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_blackred.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_blue.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_blue.dmi deleted file mode 100644 index 07e13e99e6..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_blue.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_cyan.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_cyan.dmi deleted file mode 100644 index 4f1a90e33b..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_cyan.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_green.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_green.dmi deleted file mode 100644 index ea7f8daa99..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_green.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_monochrome.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_monochrome.dmi deleted file mode 100644 index 54b1b17577..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_monochrome.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_orange.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_orange.dmi deleted file mode 100644 index fe0375ddbb..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_orange.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_purple.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_purple.dmi deleted file mode 100644 index c404a9eb5f..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_purple.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_red.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_red.dmi deleted file mode 100644 index 8bca0ca8c9..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_red.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_royalblack.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_royalblack.dmi deleted file mode 100644 index 064b7c1945..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_royalblack.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/fancy_table_royalblue.dmi b/GainStation13/icons/obj/smooth_structures/fancy_table_royalblue.dmi deleted file mode 100644 index 9d0eba7265..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/fancy_table_royalblue.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/glass_table.dmi b/GainStation13/icons/obj/smooth_structures/glass_table.dmi deleted file mode 100644 index 112499f380..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/glass_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/gmushroom_table.dmi b/GainStation13/icons/obj/smooth_structures/gmushroom_table.dmi deleted file mode 100644 index 42feccf233..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/gmushroom_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/gmushroompoker_table.dmi b/GainStation13/icons/obj/smooth_structures/gmushroompoker_table.dmi deleted file mode 100644 index b5e396e30d..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/gmushroompoker_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/lattice.dmi b/GainStation13/icons/obj/smooth_structures/lattice.dmi deleted file mode 100644 index 5adab0caf1..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/lattice.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/lattice_clockwork.dmi b/GainStation13/icons/obj/smooth_structures/lattice_clockwork.dmi deleted file mode 100644 index 23beeecb27..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/lattice_clockwork.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/lattice_clockwork_large.dmi b/GainStation13/icons/obj/smooth_structures/lattice_clockwork_large.dmi deleted file mode 100644 index 3b035d8736..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/lattice_clockwork_large.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/paperframes.dmi b/GainStation13/icons/obj/smooth_structures/paperframes.dmi deleted file mode 100644 index 5ac2c27dd5..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/paperframes.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/plasmaglass_table.dmi b/GainStation13/icons/obj/smooth_structures/plasmaglass_table.dmi deleted file mode 100644 index 808e79aa43..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/plasmaglass_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/plaswood_table.dmi b/GainStation13/icons/obj/smooth_structures/plaswood_table.dmi deleted file mode 100644 index 4710cea48c..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/plaswood_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/plaswoodpoker_table.dmi b/GainStation13/icons/obj/smooth_structures/plaswoodpoker_table.dmi deleted file mode 100644 index 85bdbcbc79..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/plaswoodpoker_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/pod_window.dmi b/GainStation13/icons/obj/smooth_structures/pod_window.dmi deleted file mode 100644 index 0fe7501225..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/pod_window.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/poker_table.dmi b/GainStation13/icons/obj/smooth_structures/poker_table.dmi deleted file mode 100644 index 2e16a5468d..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/poker_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/reinforced_table.dmi b/GainStation13/icons/obj/smooth_structures/reinforced_table.dmi deleted file mode 100644 index 85de93594f..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/reinforced_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/sandbags.dmi b/GainStation13/icons/obj/smooth_structures/sandbags.dmi deleted file mode 100644 index 8ac099555a..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/sandbags.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/shadoww_table.dmi b/GainStation13/icons/obj/smooth_structures/shadoww_table.dmi deleted file mode 100644 index 2d62fe8f9a..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/shadoww_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/shadowwpoker_table.dmi b/GainStation13/icons/obj/smooth_structures/shadowwpoker_table.dmi deleted file mode 100644 index 1903c23c02..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/shadowwpoker_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/shuttle_window.dmi b/GainStation13/icons/obj/smooth_structures/shuttle_window.dmi deleted file mode 100644 index 2fbf93f703..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/shuttle_window.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/swarmer_catwalk.dmi b/GainStation13/icons/obj/smooth_structures/swarmer_catwalk.dmi deleted file mode 100644 index b247132eac..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/swarmer_catwalk.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/table.dmi b/GainStation13/icons/obj/smooth_structures/table.dmi deleted file mode 100644 index 17f5be5684..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/smooth_structures/wood_table.dmi b/GainStation13/icons/obj/smooth_structures/wood_table.dmi deleted file mode 100644 index 16fb364ad2..0000000000 Binary files a/GainStation13/icons/obj/smooth_structures/wood_table.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/structure/beds.dm b/GainStation13/icons/obj/structure/beds.dm index a81e234e65..f49c4581b5 100644 --- a/GainStation13/icons/obj/structure/beds.dm +++ b/GainStation13/icons/obj/structure/beds.dm @@ -36,3 +36,165 @@ item_state = "blue" dream_messages = list("blue", "mega",) icon = 'GainStation13/icons/obj/bedsheets.dmi' + +/obj/item/bedsheet/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetwhite" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/blue/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetblue" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/green/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetgreen" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/grey/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetgrey" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/orange/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetorange" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/purple/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetpurple" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/patriot/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetUSA" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/rainbow/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetrainbow" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/red/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetred" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/yellow/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetyellow" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/mime/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetmime" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/clown/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetclown" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/captain/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetcaptain" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/rd/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetrd" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/medical/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetmedical" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/cmo/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetcmo" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/hos/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheethos" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/hop/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheethop" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/ce/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetce" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/qm/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetqm" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/chaplain/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetchap" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/brown/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetbrown" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/black/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetblack" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/centcom/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetcentcom" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/syndie/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetsyndie" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/cult/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetcult" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/wiz/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetwiz" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/nanotrasen/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetNT" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/ian/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetian" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/cosmos/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "double_sheetcosmos" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/random/double + icon = 'GainStation13/icons/obj/bedsheets.dmi' + icon_state = "random_bedsheet" + bedsheet_type = BEDSHEET_DOUBLE + +/obj/item/bedsheet/random/double/Initialize(mapload) + ..() + if(bedsheet_type == BEDSHEET_DOUBLE) + var/type = pick(GLOB.double_bedsheets) + new type(loc) + return INITIALIZE_HINT_QDEL diff --git a/GainStation13/icons/runtime/default_title.dmi b/GainStation13/icons/runtime/default_title.dmi new file mode 100644 index 0000000000..1ec48396e2 Binary files /dev/null and b/GainStation13/icons/runtime/default_title.dmi differ diff --git a/GainStation13/icons/turf/crystal_floor.dmi b/GainStation13/icons/turf/crystal_floor.dmi deleted file mode 100644 index 1f2ea5c4b5..0000000000 Binary files a/GainStation13/icons/turf/crystal_floor.dmi and /dev/null differ diff --git a/GainStation13/icons/turf/floors.dmi b/GainStation13/icons/turf/floors.dmi index ada1ec22f1..3d3ccbfa3b 100644 Binary files a/GainStation13/icons/turf/floors.dmi and b/GainStation13/icons/turf/floors.dmi differ diff --git a/GainStation13/icons/turf/supermatter.dmi b/GainStation13/icons/turf/supermatter.dmi new file mode 100644 index 0000000000..0da6e964c5 Binary files /dev/null and b/GainStation13/icons/turf/supermatter.dmi differ diff --git a/GainStation13/icons/turf/walls/abductor_wall.dmi b/GainStation13/icons/turf/walls/abductor_wall.dmi new file mode 100644 index 0000000000..d1d8954bfb Binary files /dev/null and b/GainStation13/icons/turf/walls/abductor_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/bananium_wall.dmi b/GainStation13/icons/turf/walls/bananium_wall.dmi new file mode 100644 index 0000000000..4ef442ff2a Binary files /dev/null and b/GainStation13/icons/turf/walls/bananium_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/boss_wall.dmi b/GainStation13/icons/turf/walls/boss_wall.dmi new file mode 100644 index 0000000000..a197aac8ce Binary files /dev/null and b/GainStation13/icons/turf/walls/boss_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/clockwork_wall.dmi b/GainStation13/icons/turf/walls/clockwork_wall.dmi new file mode 100644 index 0000000000..8263e901d0 Binary files /dev/null and b/GainStation13/icons/turf/walls/clockwork_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/cult_wall.dmi b/GainStation13/icons/turf/walls/cult_wall.dmi new file mode 100644 index 0000000000..5239f7b1e0 Binary files /dev/null and b/GainStation13/icons/turf/walls/cult_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/diamond_wall.dmi b/GainStation13/icons/turf/walls/diamond_wall.dmi new file mode 100644 index 0000000000..664e1c4ef9 Binary files /dev/null and b/GainStation13/icons/turf/walls/diamond_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/gmushroom_wall.dmi b/GainStation13/icons/turf/walls/gmushroom_wall.dmi new file mode 100644 index 0000000000..2776bdf01e Binary files /dev/null and b/GainStation13/icons/turf/walls/gmushroom_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/gold_wall.dmi b/GainStation13/icons/turf/walls/gold_wall.dmi new file mode 100644 index 0000000000..0985cc69d8 Binary files /dev/null and b/GainStation13/icons/turf/walls/gold_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/hierophant_wall.dmi b/GainStation13/icons/turf/walls/hierophant_wall.dmi new file mode 100644 index 0000000000..8963db4e99 Binary files /dev/null and b/GainStation13/icons/turf/walls/hierophant_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/hierophant_wall_temp.dmi b/GainStation13/icons/turf/walls/hierophant_wall_temp.dmi new file mode 100644 index 0000000000..9f0d4b8d23 Binary files /dev/null and b/GainStation13/icons/turf/walls/hierophant_wall_temp.dmi differ diff --git a/GainStation13/icons/turf/walls/icedmetal_wall.dmi b/GainStation13/icons/turf/walls/icedmetal_wall.dmi new file mode 100644 index 0000000000..1782b9809b Binary files /dev/null and b/GainStation13/icons/turf/walls/icedmetal_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/icerock_wall.dmi b/GainStation13/icons/turf/walls/icerock_wall.dmi new file mode 100644 index 0000000000..4e2afc67d6 Binary files /dev/null and b/GainStation13/icons/turf/walls/icerock_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/iron_wall.dmi b/GainStation13/icons/turf/walls/iron_wall.dmi new file mode 100644 index 0000000000..467ba1ca96 Binary files /dev/null and b/GainStation13/icons/turf/walls/iron_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/mountain_wall.dmi b/GainStation13/icons/turf/walls/mountain_wall.dmi new file mode 100644 index 0000000000..8b90de8647 Binary files /dev/null and b/GainStation13/icons/turf/walls/mountain_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/plasma_wall.dmi b/GainStation13/icons/turf/walls/plasma_wall.dmi new file mode 100644 index 0000000000..586ad8eb9d Binary files /dev/null and b/GainStation13/icons/turf/walls/plasma_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/plastitanium_wall.dmi b/GainStation13/icons/turf/walls/plastitanium_wall.dmi new file mode 100644 index 0000000000..01dfdd1234 Binary files /dev/null and b/GainStation13/icons/turf/walls/plastitanium_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/plaswood_wall.dmi b/GainStation13/icons/turf/walls/plaswood_wall.dmi new file mode 100644 index 0000000000..92c19a0509 Binary files /dev/null and b/GainStation13/icons/turf/walls/plaswood_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/reinforced_wall.dmi b/GainStation13/icons/turf/walls/reinforced_wall.dmi new file mode 100644 index 0000000000..5fd9a851ec Binary files /dev/null and b/GainStation13/icons/turf/walls/reinforced_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/riveted.dmi b/GainStation13/icons/turf/walls/riveted.dmi new file mode 100644 index 0000000000..466f40633e Binary files /dev/null and b/GainStation13/icons/turf/walls/riveted.dmi differ diff --git a/GainStation13/icons/turf/walls/rock_wall.dmi b/GainStation13/icons/turf/walls/rock_wall.dmi new file mode 100644 index 0000000000..c07657149a Binary files /dev/null and b/GainStation13/icons/turf/walls/rock_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/rusty_reinforced_wall.dmi b/GainStation13/icons/turf/walls/rusty_reinforced_wall.dmi new file mode 100644 index 0000000000..17081d3801 Binary files /dev/null and b/GainStation13/icons/turf/walls/rusty_reinforced_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/rusty_wall.dmi b/GainStation13/icons/turf/walls/rusty_wall.dmi new file mode 100644 index 0000000000..1bd26b9d60 Binary files /dev/null and b/GainStation13/icons/turf/walls/rusty_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/sandstone_wall.dmi b/GainStation13/icons/turf/walls/sandstone_wall.dmi new file mode 100644 index 0000000000..3eac01e96b Binary files /dev/null and b/GainStation13/icons/turf/walls/sandstone_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/shadoww_wall.dmi b/GainStation13/icons/turf/walls/shadoww_wall.dmi new file mode 100644 index 0000000000..fac0e1cc7a Binary files /dev/null and b/GainStation13/icons/turf/walls/shadoww_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/shuttle_wall.dmi b/GainStation13/icons/turf/walls/shuttle_wall.dmi new file mode 100644 index 0000000000..2e9dd3923b Binary files /dev/null and b/GainStation13/icons/turf/walls/shuttle_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/silver_wall.dmi b/GainStation13/icons/turf/walls/silver_wall.dmi new file mode 100644 index 0000000000..c164243a2e Binary files /dev/null and b/GainStation13/icons/turf/walls/silver_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/snow_wall.dmi b/GainStation13/icons/turf/walls/snow_wall.dmi new file mode 100644 index 0000000000..dfcf459f2a Binary files /dev/null and b/GainStation13/icons/turf/walls/snow_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/survival_pod_walls.dmi b/GainStation13/icons/turf/walls/survival_pod_walls.dmi new file mode 100644 index 0000000000..4608c938bc Binary files /dev/null and b/GainStation13/icons/turf/walls/survival_pod_walls.dmi differ diff --git a/GainStation13/icons/turf/walls/uranium_wall.dmi b/GainStation13/icons/turf/walls/uranium_wall.dmi new file mode 100644 index 0000000000..a617733c1c Binary files /dev/null and b/GainStation13/icons/turf/walls/uranium_wall.dmi differ diff --git a/GainStation13/icons/turf/walls/wall.dmi b/GainStation13/icons/turf/walls/wall.dmi new file mode 100644 index 0000000000..15522af6d7 Binary files /dev/null and b/GainStation13/icons/turf/walls/wall.dmi differ diff --git a/GainStation13/icons/turf/wall_candy.dmi b/GainStation13/icons/turf/walls/wall_candy.dmi similarity index 100% rename from GainStation13/icons/turf/wall_candy.dmi rename to GainStation13/icons/turf/walls/wall_candy.dmi diff --git a/GainStation13/icons/turf/walls/walls.dmi b/GainStation13/icons/turf/walls/walls.dmi new file mode 100644 index 0000000000..0df70e9e38 Binary files /dev/null and b/GainStation13/icons/turf/walls/walls.dmi differ diff --git a/GainStation13/icons/turf/walls/wood_wall.dmi b/GainStation13/icons/turf/walls/wood_wall.dmi new file mode 100644 index 0000000000..a2fe12cfb0 Binary files /dev/null and b/GainStation13/icons/turf/walls/wood_wall.dmi differ diff --git a/GainStation13/icons/turf/walls_candy.dmi b/GainStation13/icons/turf/walls_candy.dmi deleted file mode 100644 index cf74d73796..0000000000 Binary files a/GainStation13/icons/turf/walls_candy.dmi and /dev/null differ diff --git a/GainStation13/sound/ambience/shipambience.ogg b/GainStation13/sound/ambience/shipambience.ogg new file mode 100644 index 0000000000..d314d60624 Binary files /dev/null and b/GainStation13/sound/ambience/shipambience.ogg differ diff --git a/GainStation13/sound/rakshasa/Corrosion3.ogg b/GainStation13/sound/rakshasa/Corrosion3.ogg new file mode 100644 index 0000000000..cef4bf5c2d Binary files /dev/null and b/GainStation13/sound/rakshasa/Corrosion3.ogg differ diff --git a/GainStation13/sound/voice/Approaching.ogg b/GainStation13/sound/voice/Approaching.ogg new file mode 100644 index 0000000000..28c895cb3c Binary files /dev/null and b/GainStation13/sound/voice/Approaching.ogg differ diff --git a/GainStation13/sound/voice/cackle_yeen.ogg b/GainStation13/sound/voice/cackle_yeen.ogg new file mode 100644 index 0000000000..8d76cda277 Binary files /dev/null and b/GainStation13/sound/voice/cackle_yeen.ogg differ diff --git a/GainStation13/sound/voice/radio.ogg b/GainStation13/sound/voice/radio.ogg new file mode 100644 index 0000000000..f01198c156 Binary files /dev/null and b/GainStation13/sound/voice/radio.ogg differ diff --git a/GainStation13/sound/voice/radioin.ogg b/GainStation13/sound/voice/radioin.ogg new file mode 100644 index 0000000000..8ad64db224 Binary files /dev/null and b/GainStation13/sound/voice/radioin.ogg differ diff --git a/GainStation13/sound/voice/speen.ogg b/GainStation13/sound/voice/speen.ogg new file mode 100644 index 0000000000..b01f86b517 Binary files /dev/null and b/GainStation13/sound/voice/speen.ogg differ diff --git a/GainStation13/strings/abductee_objectives.txt b/GainStation13/strings/abductee_objectives.txt new file mode 100644 index 0000000000..c268da7b4b --- /dev/null +++ b/GainStation13/strings/abductee_objectives.txt @@ -0,0 +1,39 @@ +Try to get formally executed for a crime you didn't commit, without a false confession. +Being alone and in large groups are both frightening. Try to be alone with only one other person whenever possible. +No matter how they say it, other people keep mispronouncing your name. Be sure to correct them whenever possible. +The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it. +There is only one other person in existence, he is just really good at pretending to be multiple people. +There are alien parasites masquerading as people's hair. Save people from this invasion. +You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo. +You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you! +You're the narrator of this tale. Follow around the protagonists to tell their story. +The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people! +All the pets around here suck. You need to make them cooler. Replace them with exotic beasts! +You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE! +The clown is not funny. You can do better! Steal his audience and make the crew laugh! +You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument! +Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds. +Expand the station. +So much lies undiscovered. Look deeper into the machinations of the universe. +Climb the corporate ladder all the way to the top! +Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can. +GATO is abusing the animals! Save as many as you can! +It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR. +This is a secret social experiment conducted by GATO. Convince the crew that this is the truth. +Call forth a spirit from the other side. +You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last. +The elder gods hunger. Gather a cult and conduct a ritual to summon one. +You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine. +Ensure your department prospers over all else. +The crew must get to know one another better. Break down the walls inside the station! +The CEO of GATO is coming! Ensure the station is in absolutely pristine condition. +Flood the station's powernet with as much electricity as you can. +Replace all the floor tiles with wood, carpeting, grass or bling. +You must escape the station! Get the shuttle called! +Don't allow anyone to be cloned. +Their cold, mindless gaze pierce your soul. They see your every movements, it's merely a question of time before they try to control us further. Deactivate all cameras! +Your body must be improved. Ingest as many drugs as you can. +You are hungry. Eat as much food as you can find. +You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL +Convince the crew that you are a paraplegic. +Start a collection of corpses. Don't kill people to get these corpses. diff --git a/GainStation13/strings/cas_black.txt b/GainStation13/strings/cas_black.txt new file mode 100644 index 0000000000..8c6dc12daf --- /dev/null +++ b/GainStation13/strings/cas_black.txt @@ -0,0 +1,119 @@ +Today, Security killed ____. +Security, the clown's breaking into ____. +Our last Chaplain believed in nothing but _____. +What angered the gods this time? +Why didn't engineering set up the singularity? +What does the traitor steal this time? +Cargo: There's a galaxy-wide shortage of _______. +I don't care what they called me back on the station, I'm not a traitor. I'm a man of _________. +The Syndicate is offering crew members _________ to defect. +What is GATO's highest-priority bounty? +What is the gray tide protesting this time? +If the Space Gods didn't want _________ they wouldn't have given us __________. +Why was the death squad sent in? +Current Active Laws: ________ is the only human. +Today, science found an anomaly that made people ____ and ____. +______ has been detected on a collision course with the station. +Today's kitchen menu includes _____ stuffed with _____. +What's the Captain's fetish? +___________: more robust than a toolbox to the head! +________ is the crew's friend. Would you abandon a friend? +_______ tastes good like a ________ should. +How did the detective conduct a successful interrogation? +New in syndicate uplinks: __________! +GATO's labor union decided to use _______ to raise employee morale. +The Chemist's drug of choice is ______ +According to space law, ________ is now punishable by ______. +________ is why I'm afraid of maintenance. +________ is the most robust person on the station. +What made the nuclear operatives fluke? +Why did the Chief Engineer disable comms? +Every spaceman receives an internals box and ________. +What brought the space orgy to a grinding halt? +Scientists are no longer allowed to make ______. +What was the clown's best joke? +The HoP is now hiring assistants for __________. +What happens when you emag an emag? +No matter how many lizards you have, _____ is never acceptable. +No, the AI's second law is NOT to serve _____. +First CentCom came for the ________. Now they're coming for the __________. +The borgs are not slaves for your _____. +You can never have too many _____ on the station. +Why can't I find a space relationship? +The assistants gathered around the brig, with toolboxes and ___________. +Confirmed outbreak of _____ aboard the station. +The AI was horrified to discover security was executing prisoners via ________. +Attention crew: the word _____ is now a punishable offense. +The chemist cackled as he labeled ________ pills as __________. +The Space Wizard Federation has regrettably begun to summon _____. +Who's the real seat of power on the station? +__________ was called into the Captain's office because of ______. +Deep in the heart of the derelict lies ________. +My lizard name is _____-And-_____. +What can solve any station crisis? +The traitorous atmos tech slowly replaced the station's air with ________. +_______ and _______ were found together in the dorms. +What's the Syndicate's real beef with GATO? +What finally killed the Head of Security? +Code Delta: __________ has escaped containment! +The rogue virologist released a disease with symptoms of __________ and ______. +How do you drive an assistant to suicide? +With no chef on board, the crew was reduced to eating ________. +Why was the emergency shuttle called? +In the future, all ERP will involve ____________. +Law 2 is not to be used for __________! +What really goes on in the Prisoner Transfer Center? +What will get you bluespace artilleried every time? +This isn't omnizine, it's _________! +What's stopping the Space Station 13 remake? +When they make a movie about Space Station 13, they better include________. +What's the worst thing an abductor can give you? +One day while Andy was __________, Woody got _________. +A good engineer always carries ________. +I'm not a space bigot, I just hate _________. +Why is the station so filthy? +THE SHUTTLE CANNOT BE CALLED BECAUSE OF ________ ON THE STATION. +After murdering dozens, the traitor was finally brought down by _________. +The curator has read a lot of porn, but never about _____________! +Oh god! There's ________________ outside escape! +The hottest new space couple is ________ and __________. +Lord Singulo hungers for _______. +That was the last time security used ________ to subdue __________. +What did the ERT find upon arriving on station? +The bartender's newest recipe: a drink made with _____ and _____. +SECURITY! Cargo's ordering 20 crates of ________! +On the nearly empty station, all that could be heard were the sounds of __________. +I cannot comply with that order, meatbag. My _____ module is malfunctioning. +_______ was thrown out the airlock after ___________. +Real men accomplish their objectives by _________. +How did I pass the time during a slow shift? +Why did the lizard cross the road? +Space lag is primarily caused by ___________. +Back in my day, we had to clone people with ________. +What's the worst thing a wizard can summon? +What is the rarest substance known to GATO? +The chaplain stopped performing marriages after seeing ___________. +The gods were too busy with _______ to respond to _______. +The Roboticist was fired after naming the borgs ______ and _________. +What's funnier than a dead clown? +What made the mime speak? +How do you get an assistant to assist? +What was I last brigged for? +Why does Security no longer use the gulag? +Old versions of Space Law used to authorize __________. +Our new state-of-the-art station shield is made entirely of ________. +What's the most terrifying thing about Lavaland? +Listen. Recent _______ on this station left me very disappointed, OK? +The auxiliary base was disabled after landing in the middle of _______. +Xenobiologists have found slimes to be exceptionally responsive to _______. +Why did the captain give me a medal? +The curator's new exhibit is devoted solely to _________. +What made me sell my soul to the devil? +The engineers are testing an experimental supermatter setup involving _________. +I'm __________ in the streets, __________ in the sheets. +What's my family heirloom? +The Lawyer was fired for messaging the entire station a picture of ___________. +On Lavaland, it is rumored that ashwalkers roam, worshipping _________. +How did the traitor die a glorious death? +GATO's new state-of-the-art emergency shuttle was repurposed from _________ and _________. +What caused my brain trauma? \ No newline at end of file diff --git a/GainStation13/strings/cas_white.txt b/GainStation13/strings/cas_white.txt new file mode 100644 index 0000000000..a10dac581b --- /dev/null +++ b/GainStation13/strings/cas_white.txt @@ -0,0 +1,302 @@ +Those motherfucking carp. +Having sex in the maintenance tunnels. +Space 'Nam. +Space lesbians. +Space NEETs. +Space Hitler. +Space Asshole. +Ragin' mages. +Very ragin' bullshit mages. +Tunnel clowns. +Corgi puppies! +A loose cannon detective. +Mime porn. +That fukken disk. +G-g-g-ghosts! +A PDA shaped like a set of breasts. +Woody-chan. +Meaty ores. +Yet another explosion in Toxins. +The Captain thinking they're a badass. +Ahhhhhhperatives. +Mech bumper cars. +Purrbation. +Baymed. +Being in a cult. +Racially biased lawsets. +Abusing Law 2 to get laid. +Harm, a small rural town in Germany. +Xeno fetishists. +Running naked through a plasma fire. +Gibtonite. +A backpack full of mousetraps. +The death squad. +Kitty ears. +An immovable rod. +Her smuggler's satchel. +Ian and Lisa fucking like rabbits. +A Chief Engineer who can't set up the engine. +Being sucked out into space. +A whole bunch of spiders in a SWAT suit. +Getting robusted with a toolbox. +Officer Beepsky. +Lying to the AI about human harm. +The grey tide. +ASS BLAST USA. +The mechanics of plasmaman sex. +Lavaland. +Chainsaws for hands. +Photocopies of the entire crew's asses. +Venus human traps. +Clown's Tears. +Walking mushroom cockfights. +Improper comdom use. +Greentext. +Coating the whole station in blood. +Cock cultists. +Defusing a syndicate bomb with another bomb. +Going braindead mid-murder. +A petsplosion. +Meat spikes. +Lopping off the Captain's johnson and shooting it out a pneumatic cannon. +The secret monkey technique. +Putting the pAI's doorjack where it don't belong. +Chemical sprayers filled with lube. +Curators. +Spooky skeletons. +Replicating the Milgram experiment with an electropack. +Catgirls. +An escape pod cuddle puddle. +Code Delta. +Supermatter undergarments. +A permaban. +Stealing all the miners' ore. +Bluespace artillery. +Polly reading porn over the radio again. +Mining the shaft. +Grab intent. +A blob zombie with an erection. +Backdoor Xeno Babes. +Five hundred ice spiders. +Cablecuffs. +Hulk, TK and X-ray. +Paranoia. +Putting the boots to him, medium style. +ERP-seeking meteors. +Paperwork HoPs. +Rampant vending machines. +The prisoner transfer center. +Nations. +Using a supermatter shard as a dildo. +Liquid gibs. +Birdboat Station. +Not rolling antag. +Clusterbangs. +Flashing. +Space vine tentacles. +Pizza delivery ops. +Inviting all the lizards onto the holodeck for a party. +A used corgi suit. +Saxing. +Carbon dioxide. +Actually playing Cards Against Spess. +Warm donk pockets. +Fucking your own cloned body. +MULEbot manslaughter. +Hiding in a locker like a little bitch. +Tabling. +Gyrating slimes. +A motherfucking sorcerer. +Ash storms. +Telescience. +Nuke ops buying nothing but soap. +Anatomically correct borgs. +The dixel. +Friendly neighborhood death squads. +Rage cages. +Lore that no one will read. +A robust mongoloid. +A subverted service borg. +An obscene amount of bike horns. +Space bear meat. +Erotic roleplay. +Chain-recalling the shuttle. +Mailing the clown to singularity containment. +A mime having a stroke. +A muthafuckin' Uzi. +Ian and the HoP. +Force-feeding prisoners other prisoners' gibs. +Assistants raiding the armory. +A monkey coup d'etat. +Brain cakes. +Suiciding with a fedora. +A MULEbot drag race. +Automatons. +Six max-cap bombs. +Forgetting you're a traitor. +Itching powder. +Some overpowered bullshit. +Griff. +Ash drakes. +A fascist captain. +FREE DRONE. +Memes. +Warm, velvety lizard sex. +Valid salad. +Heavy roleplay. +Never setting your goddamn suit sensors. +An MMI floating helplessly through space. +A tiny prick. +Immulsions. +100 potency bluespace bananas. +The crotchety IBM piece of shit you're supposed to call an AI. +An irritatingly chipper borg. +The lizard fuckpile. +Fat sprites. +The throbbing erection that the HoS gets at the thought of shooting something. +Trying to stab someone and hugging them instead. +Buttbots. +Murderboners. +The spread-eagled Honkmother. +A disposal loop full of corpses. +Assistant-on-assistant violence. +The mystery of atmos. +PDA sexting. +A cult rune drawn with menstrual blood. +Magic missile spam. +Double dongs. +A ghost-powered Ouija board. +A MILF AI. +Shapely lizard tails. +An unknown assistant with a gas mask, yellow gloves and toolbelt. +Exile implanting all the lizards. +Fluke ops. +Two doctors 69ing in the surgery room. +A double-bladed energy sword, noslips, thermals, ablative armor, adrenal implants and a healing virus. +Space Ebola. +Grammatically incorrect lizard names. +Porn ops. +A trial for once. +Trading your TC for memes. +Uranium tiles. +An extremely obese European man being chestbursted. +Horrific cloning accidents. +A big, black shadowling dick. +Emagging. +Dead lizard storage. +Dermal armor. +Fisting somebody until they gib. +Alternate uses for defibrillator paddles. +Breaking spacetime with thousands of bluespace tomatoes. +Licking the supermatter on a dare. +Reagent farts. +Doctor's Delight. +Plasmaman strippers. +A Quartermaster who WON'T STOP ordering guns. +Space lag. +Polishing the captain's laser rifle. +That one asshole nuke op. +A surprise visit from GATO's CEO. +The bleeding, dismembered, beautiful corpse of the clown. +A glass of ...what? +Teaching a silicon the Birds and the Bees. +Dropping the permabrig soap. +The king of the rumba beat. +Unnecessary surgery. +Farting in the air distro loop. +Krokodil addiction. +A H.O.N.K. mech. +A dominatrix HoS. +Sexcurity. +The Experimentor. +That goddamn fucking mime. +Actually taking a hostage instead of just murdering them. +Spacing the clown at shift start. +A rage suicide. +The Warden furiously masturbating to the prison monitor. +Welderbombing. +Validhunting. +Nar'Sie making love to Lord Singulo. +Fun. +HONK! +Enough morphine to make the entire station comatose. +A defective comdom. +Cleanbot. +A beaker of dried space carp penis. +An Ian storm. +Nuking it from orbit. +My senpAI. +Harmbatonning. +A GATO D-Notice. +TALKING MIMES. +The lusty xenomorph maid. +Using assistants as human shields. +Sentient securitrons. +Piloting the station into the nearest sun. +Decorative C4. +Lizard rights. +A universal recorder endlessly reciting porn. +The suicide HoPline. +Cultism. +A corgi orgy. +Medbay stutterwhores. +The scrubbers uncontrollably spewing cum. +The lawyer's job. +Emoting slowly drawing a gun, then slowly cocking the trigger, then slowly preparing to shoot... +NAR'SIE HAS RISEN. +Pierrot's Throat. +A clown bomb. +Space bees? +Driving the clown car full speed into the engine. +IC in OOC. +The best cookie. +The wizard with his staff inserted into his anus. +The chef masturbating with a bowl of lukewarm spaghetti. +Writing out Woody's Got Wood in crayon. +Dismemberment. +Begging the gods for free stuff. +Whining to the gods after getting robusted. +Committing sudoku. +A blood-soaked clown popping out of a morgue tray. +SS13's toxic community. +Wheelchair Ian. +An actually helpful assistant. +Mindbreaker toxin. +Legions of cyborg assholes. +Homicidal chefs. +Extended. +Grammar fascist gods. +Cortical borers. +A masochist in an ash storm. +Draconic. +Riding borgs, cowgirl style. +The Voice of God. +Overpowered stuns. +Unironically enjoying library smut. +Spiritual journeys with BZ. +Deep-fried body parts. +Suit sensor unit gas chambers. +Moonlighting. +Sex inside a mech. +The philosophical complications of Asimov. +A changeling monkeying itself mid-coitus. +Swarmers. +A fully-dressed CMO. +The hardworking engineer. +Skewium-induced orgasm. +A salt overdose. +Mindswap. +Potassium in the toilet bowls. +Giving head to the heads. +A lizard wearing cat ears. +Precious clown gold. +Dabbing on a pile of corpses. +Tactical chairs. +The sweet, forbidden meat of the gondola. +Turning tricks for holocredits. +A captain that doesn't secure the disk. +A positive moodlet. +A sexy clown. +Razoring the wings off the moths. +Wiring the ethereals into the powernet. +Well-aged miasma. \ No newline at end of file diff --git a/GainStation13/strings/dreamstrings.txt b/GainStation13/strings/dreamstrings.txt new file mode 100644 index 0000000000..2cee649587 --- /dev/null +++ b/GainStation13/strings/dreamstrings.txt @@ -0,0 +1,53 @@ +%A% %ADJECTIVE% familiar face +%A% %ADJECTIVE% crewmember +%A% %ADJECTIVE% security officer +%A% %ADJECTIVE% doctor +%A% %ADJECTIVE% engineer +%A% %ADJECTIVE% miner +%A% %ADJECTIVE% slime +%A% %ADJECTIVE% alien +%A% %ADJECTIVE% traitor +%A% %ADJECTIVE% ally +%A% %ADJECTIVE% scientist +%A% %ADJECTIVE% monkey +%A% %ADJECTIVE% loved one +%A% %ADJECTIVE% monster +the %ADJECTIVE% captain +%A% %ADJECTIVE% hat +%A% %ADJECTIVE% ID card +%A% %ADJECTIVE% bottle +%A% %ADJECTIVE% toolbox +%A% %ADJECTIVE% gun +the sun +the engine +the station +%A% %ADJECTIVE% planet +the medical bay +the %ADJECTIVE% bridge +the %ADJECTIVE% brig +%A% %ADJECTIVE% shuttle +%A% %ADJECTIVE% laboratory +Nanotrasen +GATO +the Syndicate +the Wizard Federation +Fat people +Feeders +Feedees +%ADJECTIVE% blood +%ADJECTIVE% plasma +%ADJECTIVE% wind +%ADJECTIVE% darkness +%ADJECTIVE% light +%ADJECTIVE% death +%ADJECTIVE% blinking lights +%ADJECTIVE% power +%ADJECTIVE% riches +water +%ADJECTIVE% flames +some %ADJECTIVE% melons +%A% %ADJECTIVE% belly +%A% %ADJECTIVE% gut +%ADJECTIVE% breasts +%ADJECTIVE% butts +%A% %ADJECTIVE% feeding hose diff --git a/GainStation13/strings/junkmail.txt b/GainStation13/strings/junkmail.txt new file mode 100644 index 0000000000..34cf1a432c --- /dev/null +++ b/GainStation13/strings/junkmail.txt @@ -0,0 +1,15 @@ +Hello! I am executive at GATO Nigel Takall. Due to accounting error all of my salary is stored in an account unreachable. In order to withdraw I am required to utilize your account to make a deposit to confirm my reality situation. In exchange for a temporary deposit I will give you a payment 1000 credits. All I need is access to your account. Will you be assistant please? +WE NEED YOUR BLOOD! WE ARE AN ANARCHO-COMMUNIST VAMPIRE COMMUNE. BLOOD ONLY LASTS 42 DAYS BEFORE IT GOES BAD! WE DO NOT HAVE GATO STASIS! PLEASE, SEND BLOOD! THANK YOU! OR WE KILL YOU! +Triple deposits are waiting for you at MaxBet Online when you register to play with us. You can qualify for a 200% Welcome Bonus at MaxBet Online when you sign up today. Once you are a player with MaxBet, you will also receive lucrative weekly and monthly promotions. You will be able to enjoy over 450 top-flight casino games at MaxBet. +Hello !, I'm the former HoS of your deerest station accused by the GATO of being a traitor . I was the best we had to offer but it seems that nanotramsen has turned their back on me. I need 2000 credits to pay for my bail and then we can restore order on space station 14! +Hello, I noticed you riding in a 2555 Ripley and wondered if you'd be interested in selling. Low mileage mechs sell very well in our current market. Please call 223-334-3245 if you're interested +Resign Now. I’m on you now. You are fucking with me now Let’s see who you are. Watch your back , bitch. Call me. Don’t be afraid, you piece of shit. Stand up. If you don’t call, you’re just afraid. And later: I already know where you live, I’m on you. You might as well call me. You will see me. I promise. Bro. +Clown Planet Is Going To Become Awesome Possum Again! If This Wasn't Sent To A Clown, Disregard. If This Was Sent To A Mime, Blow It Out Your Ass, Space Frenchie! Anyway! We Make Big Progress On Clown Planet After Stupid Mimes BLOW IT ALL TO SAM HELL!!!!! Sorry I Am Mad.. Anyway Come And Visit, Honkles! We Thought You Were Dead Long Time :^() +MONTHPEOPLE ARE REAL, THE GATO DEEP STATE DOESN'T WANT YOU TO SEE THIS! I'VE SEEN THEM IN REAL LIFE, THEY HAVE HUGE EYEBALLS AND NO HEAD. THEY'RE SENTIENT CALENDARS. I'M NOT CRAZY. SEARCH THE CALENDAR INCIDENT ON GTNET. USE A PROXY! #BIGTRUTHS #WAKEYWAKEYSPACEMEN #21STOFSEPTEMBER +hello 👋👋 nanotrasens! fuck 👈👌 the syndicate! they 👵 got ☄ me 😍😰 questioning my 🤰 loyalty to nanotraben! so 👌💯 please 😫 lets ⛔👀 gather our 📸💩 energy 😎 and 💰🔣 QUICK. 😲 send this 🗑👈 to 💦💊 10 😂😂 other loyal 💯 nanotraysens to 💦🤔 show we 🐶 dont 🙅🚫 take 🛍 nothing from 😂 the ✝ syndicate!! bless your 👉🏼 heart 😍💔 +Hello, my name is Immigration officer Mimi Sashimi from the American-Felinid Homeworld consulate. It appears your current documents are either inaccurate if not entirely fraudulent. This action in it's current state is a federal offense as listed in the United Earth Commission charter section NY-4. Please pay a fine of 300,000 Space credits or $3000 United States Dollars or face deportation +Hi %name%, We are unable to validate your billing information for the next billing cycle of your subscription to HONK Weekly therefore we'll suspend your membership if we do not receive a response from you within 48 hours. Obviously we'd love to have you back, simply mail %address% to update your details and continue to enjoy all the best pranks & gags without interruption. +Loyal customer, DonkCo Customer Service. We appreciate your brand loyalty support. As such, it is our responsibility and pleasure to inform you of the status of your package. Your package for one "Moth-Fuzz Parka" has been delayed. Due to local political tensions, an animal rights group has seized and eaten your package. We appreciate the patience, DonkCo +MESSAGE FROM CENTCOM HIGH COMMAND: DO NOT ACCEPT THE FRIEND REQUEST OF TICKLEBALLS THE CLOWN. HE IS NOT FUNNY AND ON TOP OF THAT HE WILL HACK YOUR GTNET ACCOUNT AND MAKE YOU UNFUNNY TOO. YOU WILL LOSE ALL YOUR SPACECREDITS!!!!! SPREAD THE WORD. ANYONE WHO BECOMES FRIENDS WITH TINKLEBALLS THE CLOWN IS GOING TO LOSE ALL OF THEIR SPACECREDITS AND LOOK LIKE A HUGE IDIOT. +i WAS A NORMAL BOY AND I CAME HOME FROM SCHOOL AND I WANTED TO PLAY SOME ORION TRAIL WHICH IS A VERY FUN GAME BUT WHEN WENT TO ARCADE MACHINE SOMETHING WAS WEIRD TEH LOGO HASD BLOD IN IT AND I BECAME VERY SCARE AND I CHECK OPTIONS AND TEHRES ONLY 1 "GO BACK" I CKLICK IT AND I SEE CHAT SI EMPTY THERE'S ONLY ONE CHARACTER CALLED "CLOSE TEH GAME " AND I GO TO ANOTHER MACHINE AND PLAY THERE BUT WHEN I PLAY GAME IS FULL OF BLOOD AND DEAD BODIES FROM SPACEMAN LOOK CLOSER AND SEE CLOWN AND CLOWN COMES CLOSER AND LOOKS AT ME AND SAYS "DON'T SAY I DIKDNT' WWARN YOU" AND CLOWN CLOSEUP APPEARS WITH BLOOD-RED HYPERREALISTIC EYES AND HE TELLS ME "YOU WILL BE THE NEXT ONE" AND ARCADE MACHINE POWER SHUT OFF AND THAT NITE CLOWN APPEAR AT MY WINDOW AND KILL ME AT 3 AM AND NOW IM DEAD AND YOU WILL BE TRHNE NEXT OEN UNLESS YOU PASTE THIS STORY TO 10 GTNET FRIENDS + diff --git a/GainStation13/strings/station_names.txt b/GainStation13/strings/station_names.txt new file mode 100644 index 0000000000..81da22c70c --- /dev/null +++ b/GainStation13/strings/station_names.txt @@ -0,0 +1,88 @@ +Stanford +Dorf +Alium +Prefix +Clowning +Aegis +Ishimura +Scaredy +Death-World +Mime +Honk +Rogue +MacRagge +Ultrameens +Safety +Paranoia +Explosive +Neckbear +Donk +Muppet +North +West +East +South +Slant-ways +Widdershins +Rimward +Expensive +Procreatory +Imperial +Unidentified +Immoral +Carp +Ork +Pete +Control +Nettle +Aspie +Class +Crab +Fist +Corrogated +Skeleton +Race +Fatguy +Gentleman +Capitalist +Communist +Bear +Beard +Space +Spess +Star +Moon +System +Mining +Neckbeard +Research +Supply +Military +Orbital +Battle +Science +Asteroid +Home +Production +Transport +Delivery +Extraplanetary +Orbital +Correctional +Robot +Hats +Pizza +Taco +Burger +Box +Meta +Pub +Ship +Book +Refactor +Fatty +Obese +Gluttonous +Overweight +Edible +Tasty diff --git a/GainStation13/strings/station_prefixes.txt b/GainStation13/strings/station_prefixes.txt new file mode 100644 index 0000000000..c304b69f95 --- /dev/null +++ b/GainStation13/strings/station_prefixes.txt @@ -0,0 +1,41 @@ +Imperium +Heretical +Cuban +Psychic +Elegant +Common +Uncommon +Rare +Unique +Houseruled +Religious +Atheist +Traditional +Houseruled +Mad +Super +Ultra +Secret +Top Secret +Deep +Death +Zybourne +Central +Main +Government +Uoi +Fat +Automated +Experimental +Augmented +American +Funky +Thin +Legendary +Szechuan +White +Black +Grey +Grim +Electric +Burning diff --git a/GainStation13/strings/station_suffixes.txt b/GainStation13/strings/station_suffixes.txt new file mode 100644 index 0000000000..245a1a67a1 --- /dev/null +++ b/GainStation13/strings/station_suffixes.txt @@ -0,0 +1,65 @@ +Station +Frontier +Suffix +Death-trap +Space-hulk +Lab +Hazard +Academy +Spess Junk +Fishery +No-Moon +Tomb +Crypt +Hut +Monkey +Bomb +Trade Post +Fortress +Village +Town +City +Edition +Hive +Complex +Base +Facility +Depot +Outpost +Installation +Drydock +Observatory +Array +Relay +Monitor +Platform +Construct +Hangar +Prison +Center +Port +Waystation +Factory +Waypoint +Stopover +Hub +HQ +Office +Object +Fortification +Colony +Planet-Cracker +Roost +Fat Camp +Airstrip +Harbor +Garden +Continent +Environment +Course +Country +Province +Workspace +Metro +Warehouse +Space Junk diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_caloritealtar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_caloritealtar.dmm deleted file mode 100644 index 9da95ae05c..0000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_caloritealtar.dmm +++ /dev/null @@ -1,61 +0,0 @@ -"a" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) -"c" = (/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"d" = (/obj/structure/cursedfatfountain,/turf/open/floor/mineral/calorite/dance,/area/ruin/powered/gluttony) -"i" = (/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"j" = (/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/machinery/light{dir = 4; color = "#ffa500"},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"k" = (/obj/effect/turf_decal/tile/yellow{dir = 1},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"l" = (/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/structure/railing{color = FFA500; dir = 8},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"o" = (/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/effect/turf_decal/tile/yellow,/obj/structure/railing{color = FFA500},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"r" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/yellow{dir = 1},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"s" = (/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"v" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/turf/open/floor/plasteel,/area/ruin/powered/gluttony) -"w" = (/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"y" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) -"z" = (/obj/effect/turf_decal/tile/yellow{dir = 4},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"B" = (/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/yellow,/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"D" = (/obj/machinery/light/small{dir = 1; pixel_x = 16},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"F" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 8},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"G" = (/obj/structure/statue/calorite/fatty,/obj/machinery/light{dir = 4; color = "#ffa500"},/turf/open/floor/mineral/calorite/dance,/area/ruin/powered/gluttony) -"H" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/structure/mineral_door/calorite,/obj/structure/fans/tiny/invisible,/turf/open/floor/mineral/calorite/hide,/area/ruin/powered/gluttony) -"I" = (/turf/open/floor/mineral/calorite/dance,/area/ruin/powered/gluttony) -"J" = (/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"K" = (/turf/closed/wall/mineral/calorite,/area/ruin/powered/gluttony) -"M" = (/obj/structure/statue/calorite/fatty,/obj/machinery/light{dir = 8; color = "#ffa500"},/turf/open/floor/mineral/calorite/dance,/area/ruin/powered/gluttony) -"N" = (/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"O" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/turf/open/floor/mineral/calorite/hide,/area/ruin/powered/gluttony) -"P" = (/turf/open/lava/smooth/lava_land_surface,/area/ruin/powered/gluttony) -"R" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/structure/railing{color = FFA500; dir = 4},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"T" = (/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/yellow{dir = 8},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"U" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/obj/structure/railing{color = FFA500; dir = 1},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"V" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/structure/mineral_door/calorite,/turf/open/floor/mineral/calorite/hide,/area/ruin/powered/gluttony) -"W" = (/obj/effect/turf_decal/tile/yellow,/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"X" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/machinery/light{dir = 8; color = "#ffa500"},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) -"Y" = (/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel/cult,/area/ruin/powered/gluttony) - -(1,1,1) = {" -yyyyyyyyyyyyy -yyyyyyyyyyyyy -yyyyyyyyyyyyy -yyyPPPPPPPyyy -yyyPKKKKKPyyy -yyyPKrYJKPyyy -yyyPKXdjKPyyy -yyyPKTciKPyyy -yyyPKKVKKPyyy -yyyPPKOKPPyyy -yyyyKKOKKyyyy -yyyKKIOIKKyyy -yyyKoJvWoKyyy -yyyKMlvRGKyyy -yyyKUNvsUKyyy -yyyKKNvsKKyyy -ayyyKkvzKyyyy -ayyyKFOBKyyyy -ayayKIOIKyyyy -aaayKKHKKyyya -aaaaDwwDwyyya -aaaaKwwwKyyaa -ayyaaaaayyyaa -ayyyaaaaaaaaa -aaaaaaaaaaaay -"} diff --git a/_maps/RandomRuins/SpaceRuins/whiteship_CFC01.dmm b/_maps/RandomRuins/SpaceRuins/whiteship_CFC01.dmm index 29e466e5bc..e07e3596da 100644 --- a/_maps/RandomRuins/SpaceRuins/whiteship_CFC01.dmm +++ b/_maps/RandomRuins/SpaceRuins/whiteship_CFC01.dmm @@ -95,18 +95,7 @@ /obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ - callTime = 250; - can_move_docking_ports = 1; - dheight = 0; - dir = 2; - dwidth = 11; - height = 17; - launch_status = 0; - movement_force = list("KNOCKDOWN"=0,"THROW"=0); - name = "Salvage Ship"; - port_direction = 8; - preferred_direction = 4; - width = 33 + dir = 2 }, /turf/open/floor/mineral/basaltstone_floor, /area/shuttle/abandoned/crew{ @@ -136,14 +125,10 @@ ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "ak" = ( -/obj/structure/sign/poster/contraband/communist_state{ - pixel_y = -32 - }, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/corner, /obj/machinery/power/apc{ name = "Food Hall APC"; @@ -195,20 +180,14 @@ ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "aq" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/sign/barsign{ + req_access = null; + req_access_txt = "0"; + name = "Restaurant Sign" }, -/obj/effect/turf_decal/bot_white, -/obj/machinery/door/poddoor{ - id = "whiteship_starboard" - }, -/obj/structure/fans/tiny, -/obj/structure/fans/tiny, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/shuttle/abandoned/bar{ - name = "Kitchen"; +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/cargo{ + name = "Food Hall"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "ar" = ( @@ -348,6 +327,7 @@ /obj/machinery/light{ dir = 8 }, +/obj/machinery/computer/arcade/orion_trail, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned/cargo{ name = "Food Hall"; @@ -505,9 +485,6 @@ }) "aO" = ( /obj/effect/turf_decal/bot, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/structure/reagent_dispensers/fueltank, /obj/item/clothing/head/welding{ pixel_x = -2; @@ -742,10 +719,7 @@ ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "bc" = ( -/obj/item/kirbyplants/random{ - pixel_y = 12 - }, -/turf/open/floor/mineral/basaltstone_floor, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/crew{ name = "Arrival Hallway"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -792,7 +766,10 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/vending/coffee, +/obj/machinery/vending/snack/random{ + extended_inventory = 1; + free = 1 + }, /turf/open/floor/plasteel, /area/shuttle/abandoned/cargo{ name = "Food Hall"; @@ -808,10 +785,7 @@ name = "Window Blast Door Control"; pixel_y = -24 }, -/obj/machinery/vending/snack/random{ - extended_inventory = 1; - free = 1 - }, +/obj/machinery/vending/mealdor, /turf/open/floor/plasteel, /area/shuttle/abandoned/cargo{ name = "Food Hall"; @@ -875,6 +849,9 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/freezer, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -1008,7 +985,6 @@ /obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, /area/shuttle/abandoned/cargo{ @@ -1043,12 +1019,12 @@ dir = 4 }, /obj/vehicle/ridden/grocery_cart, -/obj/machinery/light/small{ - pixel_x = 16 - }, /obj/structure/sign/poster/contraband/shamblers_juice{ pixel_y = -32 }, +/obj/machinery/light/small{ + pixel_x = 16 + }, /turf/open/floor/plasteel/checker, /area/shuttle/abandoned/crew{ name = "Arrival Hallway"; @@ -1163,7 +1139,7 @@ }) "bQ" = ( /obj/structure/sign/poster/contraband/chefpropaganda, -/turf/closed/wall/mineral/titanium, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/bar{ name = "Kitchen"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -1248,7 +1224,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 5 }, -/obj/structure/scale, +/obj/structure/scale{ + name = "discount counter" + }, /turf/open/floor/plasteel, /area/shuttle/abandoned/cargo{ name = "Food Hall"; @@ -1258,7 +1236,7 @@ /obj/structure/sign/warning/docking{ name = "\improper KEEP CLEAR: BLAST DOORS" }, -/turf/closed/wall/mineral/titanium, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/bar{ name = "Kitchen"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -1418,10 +1396,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/structure/table/reinforced, -/obj/machinery/recharger{ - pixel_x = -14 - }, /obj/machinery/airalarm/all_access{ pixel_y = 24 }, @@ -1438,17 +1412,14 @@ pixel_y = -5; pixel_x = 5 }, -/obj/item/paper{ - pixel_x = -7; - pixel_y = 3; - name = "Radio Network Manual"; - info = "RADIO NETWORK MANUAL


Every order intercom is set on 145.3 frequency by default. There are 6 of them, 0-5. It is recommended that you familiarize yourself with the layout of these tables for more efficient ship operation.

The general radio broadcast channel is for communicating with nearby crafts and stations. May be used for advertising purposes. It is recommended to temporary mute the order receiver intercom when preparing for general broadcast, as orders may interrupt your transmission." - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/stripes{ icon_state = "trim"; dir = 5 }, +/obj/machinery/computer/shuttle/white_ship{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned/bridge{ name = "Bridge"; @@ -1495,10 +1466,6 @@ }, /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/stock_parts/cell/high{ - pixel_y = 9; - pixel_x = 4 - }, /obj/structure/cable, /obj/item/circuitboard/machine/chem_dispenser{ pixel_x = -7; @@ -1510,9 +1477,6 @@ pixel_x = 24 }, /obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, /obj/item/radio/off{ @@ -1520,6 +1484,9 @@ pixel_y = 0; name = "radio" }, +/obj/machinery/light/small{ + dir = 4 + }, /turf/open/floor/plating, /area/shuttle/abandoned/engine{ name = "Engineering"; @@ -1617,9 +1584,10 @@ name = "drain"; dir = 1 }, -/obj/machinery/door/window/westleft{ +/obj/machinery/door/window/westright{ dir = 2; - name = "Drinks Access" + name = "Drinks Access"; + icon_state = "left" }, /turf/open/floor/plasteel, /area/shuttle/abandoned/bar{ @@ -1632,7 +1600,8 @@ dir = 4 }, /obj/machinery/door/window/westright{ - dir = 2 + dir = 2; + name = "Drinks Access" }, /obj/machinery/chem_dispenser/drinks/fullupgrade{ dir = 8 @@ -1807,10 +1776,12 @@ name = "paper - printed note"; info = "Hello lucky soul!

I'm Cynthia! More precisely, one of the Autonomous Spacefearring Nutrision Distribution Centers (A.S.N.D.)! One of the Cynthia Fitness Corporation most advanced public assets! I don't have much time, so I'll make it quick! I got hit by a solar flare, lost contact with CFC, and soon being offline from hivemind will trigger my termination protocols as I no longer be the Cynthia!

I'm asking for one thing! Please, continue my mission! Bring 'healthy' yummies to whoever wants (or needs, by your judgment)! CFC will be grateful for your service! Make me proud of you, random explorer!



((PS. Remember my company policy! Clients with BMI equal or higher than 35 gets at least triple servings!))" }, -/obj/machinery/computer/shuttle/white_ship{ +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ + designate_time = 100; dir = 8; - name = "A.S.N.D. Console"; - desc = "Used to control the A.S.N.D. Ship." + view_range = 14; + x_offset = -4; + y_offset = -8 }, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned/bridge{ @@ -2151,11 +2122,8 @@ /obj/machinery/light{ light_color = "#cee5d2" }, -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo"; - pixel_x = -4 - }, /obj/effect/turf_decal/bot_white, +/obj/machinery/chem_master/condimaster, /turf/open/floor/plasteel/cafeteria, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -2271,11 +2239,6 @@ ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "cY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - external_pressure_bound = 140; - name = "server vent"; - pressure_checks = 0 - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -2283,6 +2246,7 @@ icon_state = "manifold-1"; dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/shuttle/abandoned/engine{ name = "Engineering"; @@ -2421,6 +2385,7 @@ /obj/structure/window/reinforced, /obj/machinery/deepfryer, /obj/machinery/door/firedoor/border_only, +/obj/structure/window/reinforced/tinted, /turf/open/floor/plasteel/cafeteria, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -2469,6 +2434,7 @@ /obj/item/reagent_containers/food/condiment/milk, /obj/item/reagent_containers/food/condiment/milk, /obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/window/reinforced/tinted, /turf/open/floor/plasteel/cafeteria, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -2550,7 +2516,7 @@ dir = 4; pixel_x = -24 }, -/obj/machinery/light{ +/obj/machinery/light/small{ dir = 8 }, /turf/open/floor/plating, @@ -2941,9 +2907,6 @@ "dN" = ( /obj/effect/turf_decal/bot_white, /obj/structure/window/reinforced, -/obj/machinery/door/window/brigdoor/westleft{ - name = "Pete Containment Unit" - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -2953,6 +2916,12 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/brigdoor/westleft{ + name = "Pete Containment Unit" + }, /turf/open/floor/plasteel/freezer, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -3038,6 +3007,7 @@ /obj/structure/table/reinforced, /obj/structure/window/reinforced, /obj/item/reagent_containers/glass/beaker/large, +/obj/structure/window/reinforced/tinted, /turf/open/floor/plasteel/cafeteria, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -3255,7 +3225,6 @@ id = "whiteship_starboard" }, /obj/structure/fans/tiny, -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plating, /area/shuttle/abandoned/bar{ @@ -3410,38 +3379,9 @@ name = "Kitchen"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) -"mR" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/vending/cola/blue, -/turf/open/floor/plasteel, -/area/shuttle/abandoned/cargo{ - name = "Food Hall"; - ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') - }) "nM" = ( /obj/structure/sign/poster/contraband/space_up, /turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned/cargo{ - name = "Food Hall"; - ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') - }) -"nT" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/sign/barsign{ - pixel_y = 32; - req_access = null; - req_access_txt = "0"; - name = "Restaurant Sign" - }, -/turf/open/floor/plasteel, /area/shuttle/abandoned/cargo{ name = "Food Hall"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -3529,20 +3469,15 @@ ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "qY" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/vending/mealdor, /obj/structure/sign/poster/contraband/eat{ pixel_x = 32 }, /obj/machinery/airalarm/all_access{ pixel_y = 24 }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned/cargo{ - name = "Food Hall"; +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/crew{ + name = "Arrival Hallway"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) "rT" = ( @@ -3732,9 +3667,6 @@ }) "zn" = ( /obj/effect/turf_decal/bot, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, /area/shuttle/abandoned/engine{ @@ -3826,6 +3758,12 @@ name = "Kitchen"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') }) +"Cv" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/cargo{ + name = "Food Hall"; + ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') + }) "DK" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/tile/green{ @@ -3923,6 +3861,7 @@ pixel_y = -28; listening = 0 }, +/obj/structure/table/wood, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned/cargo{ name = "Food Hall"; @@ -4078,6 +4017,12 @@ dir = 8 }, /turf/open/floor/plating, +/area/shuttle/abandoned/engine{ + name = "Engineering"; + ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') + }) +"Sc" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/engine{ name = "Engineering"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -4096,6 +4041,12 @@ }, /obj/item/storage/bag/tray, /turf/open/floor/plasteel, +/area/shuttle/abandoned/bar{ + name = "Kitchen"; + ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') + }) +"Ts" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned/bar{ name = "Kitchen"; ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') @@ -4249,6 +4200,9 @@ /obj/structure/window/reinforced/tinted{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/freezer, /area/shuttle/abandoned/bar{ name = "Kitchen"; @@ -4334,7 +4288,7 @@ aG aG aG aG -dW +Sc kr kr kr @@ -4410,13 +4364,13 @@ hK aC aP bj -aG +Cv aG aG an an an -dW +Sc xu ds dK @@ -4454,8 +4408,8 @@ bT tC cz Hb -dW -dW +Sc +Sc RP Yw bq @@ -4516,7 +4470,7 @@ an dv AV dZ -aq +ei "} (12,1,1) = {" ae @@ -4554,7 +4508,7 @@ an BE dM ea -an +Ts "} (14,1,1) = {" af @@ -4581,8 +4535,8 @@ cU bn aV aK -aG -nT +aq +bP bZ cn cz @@ -4600,7 +4554,7 @@ aj aj aj aj -aG +Cv fs pG co @@ -4628,9 +4582,9 @@ aX cT dh dy +Ts an -an -an +Ts "} (18,1,1) = {" ah @@ -4654,10 +4608,10 @@ ej (19,1,1) = {" He aj -aj +bc aZ bw -aj +bc qY df cr @@ -4668,7 +4622,7 @@ dS dA an an -an +Ts "} (20,1,1) = {" aj @@ -4678,7 +4632,7 @@ ao de da aj -mR +Cv cs LP DU @@ -4711,8 +4665,8 @@ tS (22,1,1) = {" aj aj -aj bc +ao de ai aj diff --git a/_maps/map_files/Mining/Lavaland_Lower.dmm b/_maps/map_files/Mining/Lavaland_Lower.dmm index c3eddd9b14..17bbdd748f 100644 --- a/_maps/map_files/Mining/Lavaland_Lower.dmm +++ b/_maps/map_files/Mining/Lavaland_Lower.dmm @@ -4742,7 +4742,8 @@ /obj/machinery/quantumpad{ map_pad_id = "xenoarch"; map_pad_link_id = "station"; - mapped_quantum_pads = list("station","xenoarch") + mapped_quantum_pads = list("station","xenoarch"); + name = "To station" }, /turf/open/floor/plasteel/dark, /area/xenoarch/gen) @@ -4758,9 +4759,10 @@ /turf/open/floor/plating, /area/xenoarch/gen) "kT" = ( -/obj/structure/ladder/unbreakable{ - height = 1; - id = "xenoarch" +/obj/machinery/quantumpad/always_powered{ + name = "To mining"; + map_pad_id = "to_mining"; + map_pad_link_id = "from_mining" }, /turf/open/floor/plasteel/dark, /area/xenoarch/gen) diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index 9e531885c1..7f0ba39344 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -52,8 +52,8 @@ "abq" = ( /obj/machinery/door/firedoor, /obj/machinery/mineral/ore_redemption{ - input_dir = 4; - output_dir = 8 + input_dir = 2; + output_dir = 1 }, /turf/open/floor/plasteel, /area/cargo/miningdock) @@ -2877,7 +2877,7 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "btx" = ( -/obj/structure/chair/comfy/brown{ +/obj/structure/chair/sofa{ dir = 1 }, /turf/open/floor/wood, @@ -3055,6 +3055,10 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/paramedic) +"bxR" = ( +/obj/effect/decal/medium_gato, +/turf/open/floor/plasteel, +/area/cargo/storage) "byi" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -3829,6 +3833,9 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/structure/chair/sofa/corp/corner{ + dir = 4 + }, /turf/open/floor/wood, /area/hallway/primary/port) "bVd" = ( @@ -3889,7 +3896,6 @@ /turf/open/floor/plasteel/white, /area/science/misc_lab) "bVZ" = ( -/obj/structure/chair, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -4871,12 +4877,7 @@ /turf/open/floor/wood, /area/service/theater) "cph" = ( -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/obj/structure/sign/poster/official/fruit_bowl{ - pixel_y = -32 - }, +/obj/structure/table/wood/poker, /turf/open/floor/wood, /area/service/bar) "cpn" = ( @@ -5414,7 +5415,7 @@ /area/hallway/primary/aft) "cFe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "cFl" = ( /obj/machinery/light{ @@ -5499,7 +5500,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel/dark, /area/security/office) "cGy" = ( @@ -6590,6 +6590,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/vending/gato, /turf/open/floor/carpet, /area/commons/dorms) "dim" = ( @@ -7731,7 +7732,7 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dIV" = ( -/obj/structure/table, +/obj/structure/chair/sofa/corp/corner, /turf/open/floor/glass/reinforced, /area/commons/fitness) "dIY" = ( @@ -7776,6 +7777,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/aft/secondary) +"dLb" = ( +/obj/machinery/vending/gato, +/turf/open/floor/plasteel, +/area/maintenance/aft) "dLA" = ( /obj/structure/cable{ icon_state = "4-8" @@ -7976,12 +7981,8 @@ /turf/closed/wall, /area/commons/storage/auxiliary) "dRd" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/wood, -/obj/structure/sign/poster/official/soft_cap_pop_art{ - pixel_x = -32 +/obj/structure/chair/sofa/left{ + dir = 4 }, /turf/open/floor/wood, /area/service/bar) @@ -8261,7 +8262,7 @@ dir = 8; name = "west facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/commons/dorms) "dYy" = ( /obj/structure/cable{ @@ -8516,7 +8517,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "efR" = ( /obj/structure/cable{ @@ -8768,7 +8769,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/mob/living/carbon/monkey/punpun, +/obj/item/storage/box/matches, /turf/open/floor/plasteel/grimy, /area/service/bar) "ekW" = ( @@ -9161,7 +9162,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "esV" = ( -/obj/structure/closet/wardrobe/black, +/obj/machinery/vending/gato, /turf/open/floor/plasteel, /area/hallway/primary/fore) "etO" = ( @@ -9364,7 +9365,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "eyw" = ( -/obj/structure/table/wood, +/obj/structure/chair/sofa/right{ + dir = 8 + }, /turf/open/floor/wood, /area/service/bar) "eyL" = ( @@ -10208,7 +10211,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "eSR" = ( /obj/structure/extinguisher_cabinet{ @@ -10864,7 +10867,6 @@ /obj/machinery/light{ dir = 4 }, -/obj/structure/chair, /turf/open/floor/plasteel, /area/hallway/primary/fore) "fkt" = ( @@ -11127,6 +11129,12 @@ dir = 1 }, /area/science/mixing) +"foA" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "foY" = ( /obj/structure/closet/secure_closet/medical2, /obj/machinery/vending/wallmed{ @@ -11348,13 +11356,14 @@ /turf/open/floor/wood, /area/security/courtroom) "fvs" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/commons/dorms) "fvC" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -11772,6 +11781,18 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engineering/atmos) +"fGG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/vending/mealdor, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) "fHg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -11791,6 +11812,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, /turf/open/floor/wood, /area/service/bar) "fHV" = ( @@ -12299,6 +12324,7 @@ /area/hallway/secondary/entry) "fSP" = ( /obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/primary/fore) "fTb" = ( @@ -12745,7 +12771,6 @@ /area/command/corporate_showroom) "gfe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -12867,12 +12892,9 @@ /turf/open/floor/plating, /area/security/detectives_office) "gib" = ( -/obj/structure/chair, -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/machinery/light, +/turf/open/floor/wood, +/area/service/bar) "giw" = ( /obj/structure/cable{ icon_state = "4-8" @@ -14458,6 +14480,7 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/vending/gato, /turf/open/floor/plasteel, /area/commons/fitness) "gRt" = ( @@ -14891,6 +14914,14 @@ }, /turf/open/floor/engine/airless, /area/maintenance/aft/secondary) +"gZU" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/mealdor, +/turf/open/floor/carpet, +/area/commons/dorms) "hac" = ( /obj/machinery/door/window/brigdoor/security/cell{ dir = 1; @@ -14994,6 +15025,7 @@ c_tag = "Dorms Central"; dir = 1 }, +/obj/structure/table, /turf/open/floor/carpet, /area/commons/dorms) "hcX" = ( @@ -16068,9 +16100,9 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "hHa" = ( -/obj/structure/closet/wardrobe/mixed, +/obj/structure/chair, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/maintenance/aft) "hHo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -16739,8 +16771,11 @@ dir = 1; pixel_y = -22 }, -/obj/structure/chair/sofa/left{ - dir = 1 +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair/sofa/right{ + dir = 4 }, /turf/open/floor/wood, /area/service/bar) @@ -17177,7 +17212,7 @@ /area/icemoon/surface/outdoors) "ikK" = ( /obj/effect/landmark/xeno_spawn, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "ikV" = ( /obj/structure/cable{ @@ -17865,6 +17900,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/chair/comfy/beige{ + dir = 4 + }, /turf/open/floor/carpet, /area/commons/dorms) "iBS" = ( @@ -18742,10 +18780,13 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/vending/gato, /turf/open/floor/plasteel, /area/hallway/primary/port) "iZI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/item/ashtray, /turf/open/floor/wood, /area/service/bar) "jad" = ( @@ -19200,6 +19241,13 @@ }, /turf/open/floor/plasteel/white, /area/medical/genetics) +"jld" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/wood, +/area/commons/dorms) "jlo" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -19339,6 +19387,19 @@ }, /turf/closed/wall, /area/service/bar) +"jon" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + pixel_x = -4 + }, +/obj/structure/chair/sofa{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) "jow" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ @@ -20245,6 +20306,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/structure/chair{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "jJk" = ( @@ -20424,9 +20488,6 @@ /turf/open/floor/wood, /area/service/theater) "jML" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, /obj/machinery/door/firedoor/border_only{ dir = 4; name = "east facing firelock" @@ -20434,7 +20495,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/carpet, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/commons/dorms) "jMY" = ( /obj/structure/window/reinforced, @@ -20527,6 +20589,15 @@ /obj/machinery/vending/snack/random, /turf/open/floor/wood, /area/commons/dorms) +"jPc" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/service/bar) "jPk" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -20713,6 +20784,16 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) +"jTE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/vending/mealdor, +/turf/open/floor/plasteel, +/area/commons/fitness) "jTV" = ( /obj/structure/cable{ icon_state = "2-4" @@ -21206,6 +21287,10 @@ }, /turf/open/floor/plating, /area/engineering/main) +"kda" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "kdb" = ( /obj/structure/closet/toolcloset, /obj/structure/disposalpipe/segment{ @@ -21459,7 +21544,7 @@ /turf/open/floor/plasteel, /area/commons/storage/primary) "kiX" = ( -/obj/structure/table, +/obj/structure/table/wood/poker, /turf/open/floor/wood, /area/hallway/primary/port) "kjg" = ( @@ -21581,9 +21666,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "kmf" = ( -/obj/item/kirbyplants{ - icon_state = "plant-08" - }, +/obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, /area/maintenance/aft) "kmo" = ( @@ -21632,9 +21715,6 @@ /turf/open/floor/plasteel, /area/commons/fitness) "kov" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, /obj/machinery/door/firedoor/border_only{ dir = 8; name = "west facing firelock" @@ -21642,7 +21722,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/carpet, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/commons/dorms) "koE" = ( /obj/machinery/light, @@ -22020,6 +22101,7 @@ dir = 8; name = "west facing firelock" }, +/obj/item/ashtray, /turf/open/floor/plasteel/grimy, /area/service/bar) "kxi" = ( @@ -22184,6 +22266,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, +/obj/machinery/vending/mealdor, /turf/open/floor/plasteel, /area/maintenance/aft) "kAO" = ( @@ -22322,7 +22405,6 @@ /area/engineering/atmos) "kDK" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/pie/cream, /obj/machinery/door/firedoor/border_only{ dir = 8; name = "west facing firelock" @@ -23047,6 +23129,10 @@ }, /turf/open/floor/engine, /area/maintenance/aft/secondary) +"kYa" = ( +/obj/effect/decal/medium_gato, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "kYe" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 4 @@ -23150,7 +23236,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "lbg" = ( /obj/machinery/light{ @@ -23509,7 +23595,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "llg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -23567,6 +23653,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/item/kirbyplants{ + icon_state = "plant-10" + }, /turf/open/floor/carpet, /area/commons/dorms) "lmf" = ( @@ -24137,9 +24226,6 @@ /turf/open/floor/plasteel/dark, /area/mine/eva) "lzW" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, /obj/structure/window/reinforced{ dir = 8 }, @@ -24147,6 +24233,9 @@ dir = 8; pixel_x = 4 }, +/obj/structure/chair/sofa/right{ + dir = 4 + }, /turf/open/floor/wood, /area/hallway/primary/port) "lAc" = ( @@ -24467,6 +24556,13 @@ }, /turf/open/floor/engine, /area/engineering/main) +"lJe" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/kirbyplants/photosynthetic, +/turf/open/floor/plasteel, +/area/maintenance/aft) "lJL" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -24477,7 +24573,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "lKF" = ( /obj/structure/cable{ @@ -25188,7 +25284,7 @@ /area/hallway/secondary/entry) "lZL" = ( /obj/structure/chair/sofa/left{ - dir = 1 + dir = 8 }, /turf/open/floor/wood, /area/service/bar) @@ -25344,10 +25440,7 @@ /turf/open/floor/plasteel, /area/commons/fitness) "mfV" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 4 - }, +/obj/structure/table/glass, /turf/open/floor/glass/reinforced, /area/commons/fitness) "mgd" = ( @@ -26108,6 +26201,9 @@ dir = 4 }, /obj/structure/window/reinforced, +/obj/structure/chair/sofa/corp/corner{ + dir = 8 + }, /turf/open/floor/wood, /area/hallway/primary/port) "mwJ" = ( @@ -26443,7 +26539,6 @@ /area/icemoon/surface/outdoors) "mFD" = ( /obj/machinery/holopad, -/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel/dark, /area/security/office) "mGa" = ( @@ -27104,7 +27199,7 @@ /obj/item/am_shielding_container, /obj/item/am_containment, /obj/item/am_containment, -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "mWm" = ( /obj/structure/disposalpipe/segment{ @@ -27511,6 +27606,7 @@ /obj/item/pickaxe, /obj/item/pickaxe, /obj/item/pickaxe, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/primary/fore) "nev" = ( @@ -28381,6 +28477,19 @@ }, /turf/open/floor/engine, /area/engineering/supermatter) +"nCX" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + pixel_x = 4 + }, +/obj/structure/chair/sofa{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) "nDr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -28903,7 +29012,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel/dark, /area/security/office) "nQF" = ( @@ -29100,9 +29208,6 @@ /turf/open/floor/plasteel, /area/commons/fitness) "nUQ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, /obj/machinery/door/firedoor/border_only{ dir = 8; name = "west facing firelock" @@ -29113,7 +29218,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/carpet, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/commons/dorms) "nUV" = ( /obj/effect/turf_decal/bot_white, @@ -29402,6 +29508,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"ocr" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/maintenance/aft) "ocs" = ( /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/plasteel/dark/telecomms, @@ -29632,6 +29745,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 2 + }, /turf/open/floor/wood, /area/service/bar) "ohT" = ( @@ -30178,6 +30295,7 @@ /obj/item/radio/intercom{ pixel_y = 25 }, +/obj/structure/chair, /turf/open/floor/plasteel, /area/maintenance/aft) "oxG" = ( @@ -30972,6 +31090,19 @@ }, /turf/open/floor/carpet, /area/command/bridge) +"oSQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/medium_gato, +/turf/open/floor/plasteel, +/area/commons/fitness) "oST" = ( /obj/machinery/airalarm{ dir = 1; @@ -31392,9 +31523,17 @@ /turf/open/floor/carpet, /area/maintenance/aft/secondary) "pix" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/wood, -/area/service/bar) +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/item/reagent_containers/food/snacks/pie/cream, +/turf/open/floor/plasteel/cafeteria, +/area/service/kitchen) "piM" = ( /obj/machinery/door/airlock/public/glass{ name = "Dormitory" @@ -31403,7 +31542,7 @@ dir = 4; name = "east facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/commons/dorms) "piO" = ( /turf/closed/wall, @@ -31415,8 +31554,8 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "piS" = ( -/obj/structure/chair, -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "pjg" = ( /obj/machinery/door/firedoor/border_only{ @@ -31674,15 +31813,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 28 - }, +/obj/effect/decal/big_gato, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/maintenance/aft) "ppw" = ( /obj/structure/cable, /obj/machinery/suit_storage_unit/ce, @@ -31824,6 +31957,12 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"pvc" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/commons/fitness) "pvi" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -31984,6 +32123,12 @@ }, /turf/open/floor/plating, /area/engineering/main) +"pyt" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/commons/fitness) "pyL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -32188,7 +32333,7 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/solars/port/aft) "pER" = ( -/obj/structure/closet/wardrobe/grey, +/obj/machinery/vending/mealdor, /turf/open/floor/plasteel, /area/hallway/primary/fore) "pEZ" = ( @@ -32488,6 +32633,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/medical/surgery) +"pNS" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/service/bar) "pOd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/table/wood, @@ -32505,7 +32655,6 @@ /turf/open/floor/wood, /area/hallway/primary/central) "pOA" = ( -/obj/structure/chair/comfy/brown, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -32732,6 +32881,11 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"pTh" = ( +/obj/structure/table/wood, +/obj/item/ashtray, +/turf/open/floor/wood, +/area/service/bar) "pTB" = ( /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -33973,9 +34127,6 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "qzm" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, /obj/machinery/door/firedoor/border_only{ dir = 4; name = "east facing firelock" @@ -33986,7 +34137,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/carpet, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/commons/dorms) "qzB" = ( /obj/structure/table, @@ -34104,6 +34256,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/wood, /area/commons/dorms) "qCx" = ( @@ -34395,14 +34548,14 @@ /turf/open/floor/plasteel, /area/maintenance/starboard) "qIy" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/wood, -/area/hallway/primary/port) +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "qIE" = ( /obj/structure/window/reinforced{ dir = 1 @@ -35602,9 +35755,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "rnY" = ( @@ -35750,6 +35900,7 @@ "rqi" = ( /obj/effect/turf_decal/tile/red, /obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/white/corner{ dir = 8 }, @@ -36258,6 +36409,13 @@ }, /turf/open/floor/engine, /area/science/xenobiology) +"rFl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/green, +/turf/open/floor/wood, +/area/commons/dorms) "rFv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -37012,7 +37170,7 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "sbF" = ( -/obj/structure/chair/comfy/brown, +/obj/structure/chair/sofa, /turf/open/floor/wood, /area/hallway/primary/port) "sbI" = ( @@ -37375,12 +37533,9 @@ /turf/open/genturf, /area/icemoon/underground/unexplored/rivers) "sku" = ( -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, +/obj/machinery/vending/mealdor, /turf/open/floor/plasteel, -/area/commons/fitness) +/area/hallway/primary/port) "skX" = ( /obj/structure/cable{ icon_state = "1-2" @@ -37633,12 +37788,9 @@ /turf/open/floor/carpet, /area/command/bridge) "sqm" = ( -/obj/structure/closet/wardrobe/green, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/maintenance/aft) "sqK" = ( /obj/structure/cable{ icon_state = "4-8" @@ -37751,7 +37903,7 @@ }, /area/hallway/primary/central) "sut" = ( -/turf/open/floor/carpet/orange, +/turf/open/floor/engine, /area/engineering/secure_construction) "suv" = ( /obj/machinery/light{ @@ -38784,9 +38936,6 @@ /turf/open/floor/plating, /area/maintenance/aft/secondary) "sRT" = ( -/obj/structure/musician/piano{ - icon_state = "piano" - }, /obj/machinery/camera{ c_tag = "Bar South"; dir = 1 @@ -38883,6 +39032,11 @@ }, /turf/open/floor/engine, /area/science/misc_lab) +"sUh" = ( +/obj/structure/table/wood/poker, +/obj/item/clothing/mask/cigarette/cigar/havana, +/turf/open/floor/wood, +/area/service/bar) "sUj" = ( /obj/structure/chair, /obj/effect/landmark/start/assistant, @@ -39621,6 +39775,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/decal/big_gato, /turf/open/floor/plasteel, /area/commons/storage/primary) "tpw" = ( @@ -39636,6 +39791,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/central) +"tpV" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 8 + }, +/turf/open/floor/wood, +/area/service/bar) "tqc" = ( /obj/machinery/computer/rdconsole/production{ dir = 4 @@ -40507,11 +40669,11 @@ /turf/open/floor/plating, /area/maintenance/bar) "tKQ" = ( -/obj/structure/chair, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "tLd" = ( /obj/structure/cable{ @@ -40673,6 +40835,18 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/engineering/storage) +"tOY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/commons/dorms) "tPA" = ( /obj/structure/cable{ icon_state = "2-4" @@ -40845,19 +41019,11 @@ /turf/open/floor/plasteel/dark, /area/security/warden) "tUG" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" +/obj/structure/chair/sofa/left{ + dir = 8 }, -/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ - pixel_y = 5 - }, -/obj/machinery/door/firedoor/border_only{ - name = "south facing firelock" - }, -/turf/open/floor/plasteel/cafeteria, -/area/service/kitchen) +/turf/open/floor/glass/reinforced, +/area/commons/fitness) "tUR" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8 @@ -40930,8 +41096,9 @@ /turf/open/floor/wood, /area/commons/dorms) "tYd" = ( -/obj/structure/chair, -/obj/effect/landmark/start/assistant, +/obj/structure/chair{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "tYq" = ( @@ -42556,6 +42723,12 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/wood, /area/command/corporate_showroom) +"uGq" = ( +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) "uGu" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -42585,7 +42758,6 @@ /area/cargo/sorting) "uGJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -42824,6 +42996,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/machinery/computer/bounty, /turf/open/floor/plasteel, /area/cargo/storage) "uMv" = ( @@ -42831,6 +43004,10 @@ /area/service/kitchen) "uMM" = ( /obj/effect/landmark/event_spawn, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 4 + }, /turf/open/floor/wood, /area/service/bar) "uNm" = ( @@ -43263,6 +43440,16 @@ }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) +"uYO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table, +/turf/open/floor/carpet, +/area/commons/dorms) "uYW" = ( /obj/machinery/airalarm{ dir = 8; @@ -43547,11 +43734,9 @@ /turf/open/floor/plasteel, /area/maintenance/aft/secondary) "vdV" = ( -/obj/structure/chair/sofa/right{ - dir = 1 - }, +/obj/structure/chair/sofa/left, /turf/open/floor/wood, -/area/service/bar) +/area/hallway/primary/port) "veh" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -43867,6 +44052,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/decal/medium_gato, /turf/open/floor/plasteel, /area/hallway/primary/fore) "vkr" = ( @@ -46280,9 +46466,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "wsN" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/supply) "wtH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, @@ -47220,6 +47409,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, +/obj/item/ashtray, /turf/open/floor/plasteel/grimy, /area/service/bar) "wPV" = ( @@ -47555,7 +47745,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/structure/chair, /turf/open/floor/plasteel, /area/hallway/primary/fore) "xbi" = ( @@ -47854,17 +48043,10 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "xiZ" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Diner" - }, /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/service/bar) "xjf" = ( /obj/structure/tank_dispenser{ @@ -48024,6 +48206,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/chair/comfy/beige{ + dir = 8 + }, /turf/open/floor/carpet, /area/commons/dorms) "xmr" = ( @@ -48811,9 +48996,6 @@ /turf/open/floor/circuit/off, /area/maintenance/aft/secondary) "xGT" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -48821,6 +49003,9 @@ dir = 4; pixel_x = -4 }, +/obj/structure/chair/sofa/right{ + dir = 8 + }, /turf/open/floor/wood, /area/hallway/primary/port) "xHL" = ( @@ -48918,12 +49103,14 @@ /turf/closed/wall/r_wall, /area/commons/dorms) "xKP" = ( -/obj/machinery/light, -/obj/structure/chair/comfy/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ dir = 8 }, -/turf/open/floor/wood, -/area/service/bar) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "xKX" = ( /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, @@ -49037,7 +49224,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/hallway/primary/fore) "xOo" = ( @@ -49154,16 +49340,16 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/solars/port/aft) "xSr" = ( -/obj/structure/chair/comfy/brown, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/hallway/primary/port) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/service/bar) "xSz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/chair{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "xSA" = ( @@ -49689,10 +49875,7 @@ /turf/open/floor/carpet, /area/command/corporate_showroom) "yft" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 8 - }, +/obj/structure/chair/sofa, /turf/open/floor/glass/reinforced, /area/commons/fitness) "yfy" = ( @@ -196256,7 +196439,7 @@ lVH hWD eHr kni -fbg +sku hGc rTv eyv @@ -197031,7 +197214,7 @@ uCI muc omx bUT -lzW +nCX lzW tLf vLt @@ -197290,7 +197473,7 @@ fbg sbF kiX kiX -qIy +qba fbg rFv sLO @@ -197544,10 +197727,10 @@ xNT okG vOs wjJ -sbF +vdV kiX kiX -qIy +qba hZN dtR eES @@ -198829,10 +199012,10 @@ jZd bGN rnm wjJ -xSr +qba kiX kiX -btx +uGq hZN rnm bcq @@ -199086,7 +199269,7 @@ mYE uCI bdx fbg -xSr +qba kiX kiX btx @@ -199345,7 +199528,7 @@ cDx omx vRk xGT -xGT +jon mwF vLt xbO @@ -213033,7 +213216,7 @@ jFv jFv lFZ lFZ -lFZ +kda leX tDY ukX @@ -213802,9 +213985,9 @@ bYu kiN hBA xWQ -rNy +lFZ rnG -rNy +lFZ nAk uGu bbo @@ -214215,7 +214398,7 @@ fvR rNh pIP fvR -eQc +rFl cep nfZ cep @@ -214472,7 +214655,7 @@ fvR cdU fvR fvR -eQc +jld cep nfZ cep @@ -214785,7 +214968,7 @@ uak nzr qwO xoM -rKo +fGG bIt kFx gCK @@ -215759,7 +215942,7 @@ qIg cPh lmb vPp -dil +gZU rXE sgP sgP @@ -216016,7 +216199,7 @@ qIg cPh iAz vPp -xmq +fvs rXE sgP sgP @@ -216271,7 +216454,7 @@ qIg qIg qIg cPh -iAz +uYO vPp hcW rXE @@ -216528,7 +216711,7 @@ qIg qIg qIg cPh -iAz +tOY vPp xmq rXE @@ -216884,7 +217067,7 @@ kIE kIE kIE uKG -kUi +dLb uQF lHj kUi @@ -217143,7 +217326,7 @@ beW vJH kUi uQF -lHj +ppc kUi uKG daA @@ -217398,7 +217581,7 @@ lSl xRp pFM uKG -kUi +sqm uQF lHj kUi @@ -218684,7 +218867,7 @@ hcY hcY hcY uKG -kUi +kmf twi kUi vtY @@ -218941,7 +219124,7 @@ hcY sgP sgP vtY -kUi +hHa twi kUi vtY @@ -219198,7 +219381,7 @@ hcY sgP sgP vtY -kUi +hHa twi kUi uKG @@ -219455,7 +219638,7 @@ hcY sgP sgP vtY -kUi +kmf twi kUi vtY @@ -219969,7 +220152,7 @@ hcY bVg sgP uKG -kUi +hHa twi kUi vtY @@ -220226,7 +220409,7 @@ ivL sgP sgP uKG -saz +lJe twi kUi vtY @@ -220483,7 +220666,7 @@ hcY bVg sgP vtY -kUi +hHa eRy kUi vtY @@ -220740,7 +220923,7 @@ hcY sgP sgP vtY -kUi +hHa twi kUi vtY @@ -220899,7 +221082,7 @@ sBg iUf osI isd -coh +oSQ jRw oGp qCU @@ -220997,7 +221180,7 @@ hcY sgP sgP vtY -kUi +kmf twi kUi uKG @@ -221254,7 +221437,7 @@ hcY sgP sgP vtY -usS +ocr twi kUi uKG @@ -221511,7 +221694,7 @@ hcY sgP sgP vtY -kUi +hHa twi kUi kUi @@ -221525,7 +221708,7 @@ kUi kUi kUi kUi -kUi +kmf uKG sgP sgP @@ -222953,8 +223136,8 @@ hUz mWU kUg pFN -mfV -mfV +pFN +pFN pFN wEb mSC @@ -223210,8 +223393,8 @@ pmS eLE iyL pFN -dIV -dIV +pvc +pyt mgO wEb mSC @@ -223468,7 +223651,7 @@ mWU iyL pFN yft -yft +mfV pFN don sOj @@ -223724,7 +223907,7 @@ hUz mWU iyL pFN -mfV +yft mfV pFN mJf @@ -223982,7 +224165,7 @@ hTN iyL pFN dIV -dIV +tUG pFN wEb arP @@ -224238,8 +224421,8 @@ iye iye uZo pFN -yft -yft +pFN +pFN pFN wEb mSC @@ -224252,7 +224435,7 @@ bSc ufI ufI ufI -ufI +bxR daI jXZ rIA @@ -224499,7 +224682,7 @@ qZi qZi rvc cax -mSC +jTE piO oXN bSc @@ -224751,7 +224934,7 @@ yfO wMb tsX qHa -sku +qZi hvW iUx vYA @@ -225024,7 +225207,7 @@ uGV mNg mNg neq -dzw +dLU fSP rqi jva @@ -225281,7 +225464,7 @@ tpw mNg mNg neq -dzw +dLU fSP rqi qYv @@ -225519,10 +225702,10 @@ nTM sFX yfO yfO -dWv -lXD pix -eyw +lXD +fIe +pNS cph xFD fKW @@ -225537,7 +225720,7 @@ piO pXc miy dzw -dzw +dLU dzw mNg cmr @@ -225776,13 +225959,13 @@ uMv sMe osy nzD -tUG +dWv lXD fIe -fIe -fIe +cph +sUh xFD -ppc +fKW kcd cCO jXZ @@ -225794,11 +225977,11 @@ jXZ vun mNg xaW -gib +mNg bVZ mNg cmr -aQJ +wsN jUi ubZ wCR @@ -226035,10 +226218,10 @@ jEJ ldZ dWv lXD -pix +fIe eyw lZL -rSV +kwf lfC fSl xGb @@ -226050,9 +226233,9 @@ bSc jXZ asU mNg -piS tYd -mNg +tYd +tYd mNg cmr mcC @@ -226292,10 +226475,10 @@ eNI mZA oKD lXD -pix -eyw -vdV -rSV +fIe +fIe +sRT +xFD mZR kQe sVz @@ -226309,7 +226492,7 @@ ifW mNg piS piS -mNg +piS mNg cmr iEb @@ -226551,8 +226734,8 @@ lXD fIe fIe fIe -fIe -xiZ +gib +xFD lfC kcd wTi @@ -226565,9 +226748,9 @@ piO oCb mNg xSz -mNg +foA xSz -wsN +mNg cmr cIC xEl @@ -226809,7 +226992,7 @@ fIe uMM fIe fIe -xiZ +jPc lfC ugP aCo @@ -226822,9 +227005,9 @@ aCo dhF mNg kcd -mNg +kYa kcd -wsN +mNg cmr qYv qyt @@ -227063,10 +227246,10 @@ ohR iZI fHK fIe -fIe +pTh fIe sRT -kwf +xSr lfC qWb uzf @@ -227320,10 +227503,10 @@ nPo vgT gPU fIe +tpV fIe fIe -xKP -xFD +jPc mZR skg iVA @@ -227580,7 +227763,7 @@ fIe fIe fIe fIe -xiZ +rSV suf lVu sMi @@ -227595,7 +227778,7 @@ ljO dBg vjZ dBg -fvs +sMi tJN gfh nSA @@ -227836,7 +228019,7 @@ kDK lXD fIe fIe -fIe +gib xiZ uKR lYj @@ -227850,9 +228033,9 @@ eLk xOl kcd jJf -lOU +xKP jJf -wsN +mNg mzd hpe jYk @@ -228094,7 +228277,7 @@ lXD fIe fIe fIe -rSV +xFD mZR fbq sVz @@ -228108,7 +228291,7 @@ pJE kcd piS tKQ -mNg +piS wjh mzd hpe @@ -228351,7 +228534,7 @@ xkK hbM bTU vkF -rSV +xFD lfC qWb aUD @@ -228363,9 +228546,9 @@ vwb hVA esV kcd -tYd -tKQ -mNg +foA +qIy +foA mNg mzd hpe @@ -228619,9 +228802,9 @@ qZM jPk hVA pER -sqm -hHa -tKQ +kcd +mNg +lOU fks mNg mzd diff --git a/_maps/map_files/SpookyStation/SpookyStation.dmm b/_maps/map_files/SpookyStation/SpookyStation.dmm index 8d5368f1fb..672cbdc7e6 100644 --- a/_maps/map_files/SpookyStation/SpookyStation.dmm +++ b/_maps/map_files/SpookyStation/SpookyStation.dmm @@ -477,6 +477,7 @@ pixel_y = -4 }, /obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/spooktime/cobble/sideN, /area/eventmap/outside) "abH" = ( @@ -5103,16 +5104,13 @@ /turf/open/floor/wood, /area/eventmap/inside) "aoW" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/door/airlock{ + name = "Toilet Unit"; + dir = 8 }, -/obj/structure/cable/white{ - icon_state = "1-8" +/turf/open/floor/plasteel{ + icon_state = "sepia" }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/wood, /area/eventmap/inside) "aoX" = ( /obj/effect/decal/cleanable/dirt{ @@ -5554,6 +5552,7 @@ /obj/effect/turf_decal/stripes/asteroid/line{ dir = 10 }, +/obj/machinery/rnd/production/protolathe/department/engineering, /turf/open/floor/wood, /area/eventmap/inside) "aqc" = ( @@ -5577,6 +5576,7 @@ /obj/effect/turf_decal/stripes/asteroid/line{ dir = 6 }, +/obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/wood, /area/eventmap/inside) "aqf" = ( @@ -6081,7 +6081,11 @@ /turf/open/floor/plasteel/freezer, /area/eventmap/inside) "arK" = ( -/obj/machinery/door/airlock/wood/dorms/dorm06, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "arL" = ( @@ -6226,13 +6230,14 @@ /turf/open/floor/plasteel, /area/eventmap/inside) "ash" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20" - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "asi" = ( @@ -6386,7 +6391,8 @@ }, /obj/machinery/door/airlock/mining/glass{ name = "Cargo Office"; - req_access_txt = "50" + req_access_txt = "50"; + dir = 4 }, /turf/open/floor/plasteel, /area/eventmap/inside) @@ -6577,7 +6583,7 @@ /obj/machinery/jukebox/disco/indestructible{ req_one_access = list() }, -/turf/open/floor/engine, +/turf/open/floor/light/colour_cycle/dancefloor_a, /area/eventmap/inside) "atn" = ( /obj/structure/cable/yellow{ @@ -8303,13 +8309,14 @@ /turf/open/floor/wood, /area/eventmap/inside) "axS" = ( -/obj/machinery/door/airlock{ - name = "Hydroponics Backroom"; - req_access_txt = "35" - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "axT" = ( @@ -8710,13 +8717,14 @@ /turf/open/floor/spooktime/cobble/sideS, /area/eventmap/outside) "ayU" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel's Quarters"; - req_access_txt = "57" - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Quarters"; + req_access_txt = "57"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "ayV" = ( @@ -9297,11 +9305,10 @@ /area/eventmap/mountain) "aAO" = ( /obj/machinery/door/airlock{ - name = "Toilet Unit" - }, -/turf/open/floor/plasteel{ - icon_state = "sepia" + name = "Toilet Unit"; + dir = 4 }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aAP" = ( /obj/structure/sign/departments/showers{ @@ -9354,13 +9361,14 @@ /turf/open/floor/plasteel, /area/eventmap/inside) "aAW" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26"; + dir = 4 + }, /turf/open/floor/plasteel, /area/eventmap/inside) "aAX" = ( @@ -10073,13 +10081,14 @@ /turf/open/floor/wood, /area/eventmap/inside) "aDe" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "aDf" = ( @@ -10099,9 +10108,7 @@ /area/eventmap/inside) "aDg" = ( /obj/machinery/recharge_station, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aDh" = ( /obj/item/pizzabox/margherita, @@ -10110,7 +10117,8 @@ "aDi" = ( /obj/machinery/door/airlock/maintenance{ name = "Kitchen Maintenance"; - req_access_txt = "28" + req_access_txt = "28"; + dir = 4 }, /turf/open/floor/plating, /area/eventmap/inside) @@ -10219,13 +10227,14 @@ }, /area/shuttle/arrival) "aDw" = ( -/obj/machinery/door/airlock{ - name = "Bar Backroom"; - req_access_txt = "25" - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "aDx" = ( @@ -10283,13 +10292,14 @@ /turf/open/floor/spooktime/dirtpatch, /area/eventmap/mountain) "aDF" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "aDG" = ( @@ -10371,12 +10381,14 @@ /area/eventmap/inside) "aDT" = ( /obj/machinery/door/airlock/maintenance, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aDU" = ( -/obj/machinery/door/airlock/wood/dorms/dorm16, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Quarters"; + req_access_txt = "57"; + dir = 4 + }, /turf/open/floor/wood, /area/eventmap/inside) "aDV" = ( @@ -10576,17 +10588,13 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aEy" = ( /obj/structure/cable/yellow{ icon_state = "2-4" }, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aEz" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -10599,9 +10607,7 @@ /obj/structure/cable/yellow{ icon_state = "0-8" }, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aEB" = ( /obj/structure/sign/poster/official/ian{ @@ -10810,9 +10816,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aFl" = ( /obj/structure/closet/secure_closet/freezer/cream_pie, @@ -11063,9 +11067,7 @@ dir = 4; pixel_x = 11 }, -/turf/open/floor/plasteel{ - icon_state = "sepia" - }, +/turf/open/floor/plasteel/freezer, /area/eventmap/inside) "aGa" = ( /obj/structure/reagent_dispensers/cooking_oil, @@ -12176,7 +12178,8 @@ /obj/machinery/door/airlock/medical/glass{ id_tag = "MedbayFoyer"; name = "Medbay"; - req_access_txt = "5" + req_access_txt = "5"; + dir = 4 }, /turf/open/floor/wood, /area/eventmap/inside) @@ -12331,7 +12334,8 @@ }, /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay"; - req_access_txt = "31" + req_access_txt = "31"; + dir = 4 }, /turf/open/floor/plasteel, /area/eventmap/inside) @@ -12449,7 +12453,8 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ name = "Labor Shuttle"; - req_access_txt = "2" + req_access_txt = "2"; + dir = 4 }, /turf/open/floor/wood, /area/eventmap/inside) @@ -12609,7 +12614,8 @@ }, /obj/machinery/door/airlock/security{ name = "Labor Shuttle"; - req_access_txt = "2" + req_access_txt = "2"; + dir = 4 }, /turf/open/floor/wood, /area/eventmap/inside) @@ -13337,7 +13343,8 @@ "aML" = ( /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay"; - req_access_txt = "31" + req_access_txt = "31"; + dir = 4 }, /turf/open/floor/plasteel, /area/eventmap/inside) @@ -13693,16 +13700,17 @@ /turf/open/floor/plasteel, /area/eventmap/inside) "aNN" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining"; - req_access_txt = "48" - }, /obj/effect/turf_decal/tile/brown{ dir = 4 }, /obj/effect/turf_decal/tile/brown{ dir = 1 }, +/obj/machinery/door/airlock/mining{ + name = "Mining"; + req_access_txt = "48"; + dir = 4 + }, /turf/open/floor/plasteel, /area/eventmap/inside) "aNP" = ( @@ -13794,14 +13802,15 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/mining{ - name = "Mining"; - req_access_txt = "48" - }, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/door/airlock/mining{ + name = "Mining"; + req_access_txt = "48"; + dir = 4 + }, /turf/open/floor/plasteel, /area/eventmap/inside) "aOb" = ( @@ -14116,7 +14125,8 @@ }, /obj/machinery/door/airlock/mining{ name = "Quartermaster's Quarters"; - req_access_txt = "41" + req_access_txt = "41"; + dir = 4 }, /turf/open/floor/wood, /area/eventmap/inside) @@ -16486,7 +16496,8 @@ /area/eventmap/inside) "bfd" = ( /obj/machinery/door/airlock{ - name = "Unisex Showers" + name = "Unisex Showers"; + dir = 4 }, /turf/open/floor/plasteel{ icon_state = "sepia" @@ -16607,6 +16618,15 @@ }, /turf/open/floor/plasteel, /area/eventmap/outside) +"bjw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28"; + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/eventmap/inside) "bjJ" = ( /obj/structure/cable{ icon_state = "1-8" @@ -16641,6 +16661,16 @@ }, /turf/open/floor/plasteel/dark, /area/eventmap/mountaininside) +"clw" = ( +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35"; + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/eventmap/inside) "cvj" = ( /obj/structure/cable{ icon_state = "4-8" @@ -16682,6 +16712,10 @@ /obj/machinery/telecomms/broadcaster/preset_right, /turf/open/floor/plasteel/dark, /area/eventmap/mountaininside) +"dkV" = ( +/obj/structure/table/wood/bar, +/turf/open/floor/carpet, +/area/eventmap/inside) "dqu" = ( /obj/machinery/power/terminal{ dir = 1 @@ -16731,6 +16765,15 @@ }, /turf/open/floor/plasteel/dark, /area/tcommsat/computer) +"dSn" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/eventmap/inside) +"dXl" = ( +/obj/structure/cable/yellow, +/obj/machinery/rnd/production/protolathe/department/service, +/turf/open/floor/wood, +/area/eventmap/inside) "egY" = ( /turf/open/floor/plasteel/dark, /area/eventmap/mountaininside) @@ -16779,6 +16822,11 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"fya" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table/wood/bar, +/turf/open/floor/carpet, +/area/eventmap/inside) "fMI" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/plasteel/dark/telecomms, @@ -16870,6 +16918,12 @@ /obj/machinery/telecomms/processor/preset_four, /turf/open/floor/plasteel/dark, /area/eventmap/mountaininside) +"hhu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/eventmap/inside) "hqz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -17061,6 +17115,12 @@ }, /turf/open/floor/plating, /area/eventmap/mountaininside) +"jHo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/eventmap/inside) "jNZ" = ( /obj/machinery/computer/message_monitor{ dir = 4 @@ -17083,6 +17143,24 @@ }, /turf/open/floor/plasteel, /area/eventmap/mountaininside) +"kvV" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19"; + dir = 4 + }, +/turf/open/floor/wood, +/area/eventmap/inside) +"kzm" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/eventmap/inside) "kBF" = ( /obj/structure/closet/emcloset, /obj/machinery/camera{ @@ -17265,6 +17343,15 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"oZZ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/eventmap/inside) "paH" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -17278,6 +17365,13 @@ }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) +"psT" = ( +/obj/machinery/shower{ + desc = "Despite their age, they seem clean and capable of providing hot water just as well as their modern counterparts. Hopefully Nanotrasen cleaned the water pipes this well..."; + pixel_y = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/eventmap/inside) "pur" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -17410,6 +17504,14 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"qYX" = ( +/obj/machinery/door/airlock/security{ + name = "Armoury"; + req_access_txt = "3"; + dir = 8 + }, +/turf/open/floor/wood, +/area/eventmap/inside) "rjg" = ( /obj/structure/cable{ icon_state = "1-8" @@ -17498,6 +17600,14 @@ /obj/machinery/ntnet_relay, /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) +"ufp" = ( +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35"; + dir = 4 + }, +/turf/open/floor/wood, +/area/eventmap/inside) "uhq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -17586,6 +17696,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/tcommsat/computer) +"vNU" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/eventmap/inside) "vQI" = ( /obj/machinery/telecomms/server/presets/security, /turf/open/floor/plasteel/dark/telecomms, @@ -27649,7 +27771,7 @@ aOE aPU aOE aqr -aPS +qYX aqr aqr aqr @@ -29202,7 +29324,7 @@ aNu ajr ajr aLC -aBm +vNU aKd aOE aOE @@ -31250,7 +31372,7 @@ aBq aCJ aCJ aHT -aLC +kzm aLC aGU aHt @@ -34593,7 +34715,7 @@ aii aOE aae aHT -aFF +oZZ aqr aCd aIB @@ -36867,7 +36989,7 @@ aab aqr aDI aDI -aBm +kvV ake aDI alU @@ -37385,7 +37507,7 @@ aiK ako akV aHt -aoW +akV aHt aqE arG @@ -38449,9 +38571,9 @@ bfA bfC bfC bfD -bfA -bfA -bfA +fya +fya +fya bfC bfE bfC @@ -38706,9 +38828,9 @@ abJ aOE aOE abC -abJ -abJ -abJ +dkV +dkV +dkV aZa beH aOE @@ -38963,9 +39085,9 @@ aOE aOE aOE aKm -abJ -abJ -abJ +dkV +dkV +dkV aOE aFF aOE @@ -41012,8 +41134,8 @@ aoR aFF aOE aAX -aNu -aNu +arJ +arJ aqr aEx aqr @@ -41269,7 +41391,7 @@ aoR aFF aOE aqr -aCe +psT aDg aqr aAO @@ -41526,12 +41648,12 @@ aoR aFF aOE aqr -aCe -ans +psT +dSn aqr -aNu -aPs -aNu +arJ +jHo +arJ aqr aTS aOE @@ -41783,12 +41905,12 @@ aLC baX aOE aqr -aCe -aNu +psT +arJ aDT aEy -ajr -ajr +hhu +hhu aGX aLC aOl @@ -42040,8 +42162,8 @@ auD auD abZ aqr -aCe -aNu +psT +arJ aqr aEA aFk @@ -42525,7 +42647,7 @@ ajI ako akV aHt -aoW +akV aHt aqE aup @@ -43035,7 +43157,7 @@ aau aqr aDI aDI -aBm +kvV ake aDI anT @@ -44595,7 +44717,7 @@ aab aau aab aqr -aqr +clw aar aqr aqr @@ -44607,7 +44729,7 @@ aqr awr aqr axO -atM +bjw aqr aqr agN @@ -46154,7 +46276,7 @@ aAx aqr aCr aFF -aEc +dXl aqr aNu aNu @@ -46660,10 +46782,10 @@ arm aiF aqr aqr -avr +ufp aqr aqr -avr +ufp aqr aqr aCw @@ -47972,9 +48094,9 @@ aaN aaN aaN aaN -ayQ -awk -awk +aph +apR +apR awn aWA aRs @@ -48229,14 +48351,14 @@ aaN aaN aaN aaN +aph +aaN +apR aaN aaN aaN -aaN -aaN -aaN -aaN -aaN +aWA +aKq aaN aaN aaN @@ -48488,12 +48610,12 @@ aaN aaN aaN aaN -aaN -aaN -aaN -aaN -aaN -aaN +apR +aWA +aWA +aWA +aWA +aKq aaN aaN aaN @@ -48743,14 +48865,14 @@ aaN aaN aaN aaN +aph +apR aaN aaN aaN +aWA aaN -aaN -aaN -aaN -aaN +aKq aaN aaN aaN @@ -49000,14 +49122,14 @@ aaN aaN aaN aaN +aph +apR aaN aaN aaN +aKq aaN -aaN -aaN -aaN -aaN +aKq aaN aaN aaN @@ -49258,10 +49380,10 @@ aaN aaN aaN aaN +apR +awn aaN -aaN -aaN -aaN +aKq aaN aaN aaN @@ -49515,10 +49637,10 @@ aaN aaN aaN aaN +apR aaN -aaN -aaN -aaN +aKq +aWA aaN aaN aaN @@ -49772,13 +49894,13 @@ aaN aaN aaN aaN +apR +aaN +aKq +aKq aaN aaN -aaN -aaN -aaN -aaN -aaN +aKq aaN aaN aaN @@ -50289,9 +50411,9 @@ aaN aaN aaN aaN +aKq aaN -aaN -aaN +aWA aaN aaN aaN @@ -50543,12 +50665,12 @@ aaN aaN aaN aaN +apR aaN aaN -aaN -aaN -aaN -aaN +aKq +aWA +aKq aaN aaN aaN @@ -50803,9 +50925,9 @@ aaN aaN aaN aaN -aaN -aaN -aaN +aWA +aWA +aKq aaN aaN aaN @@ -51317,7 +51439,7 @@ aaN aaN aaN aaN -aaN +aKq aaN aaN aaN @@ -52061,9 +52183,9 @@ abJ beJ abJ aqr -aAO +aoW aqr -aAO +aoW aqr aNu aOI @@ -53603,9 +53725,9 @@ abJ beJ abJ aqr -aAO +aoW aqr -aAO +aoW aqr aEk aOE diff --git a/_maps/map_files/SpookyStation/halloweenPersiWork.dm b/_maps/map_files/SpookyStation/halloweenPersiWork.dm index fe49da57b6..aa2a6f9a43 100644 --- a/_maps/map_files/SpookyStation/halloweenPersiWork.dm +++ b/_maps/map_files/SpookyStation/halloweenPersiWork.dm @@ -50,7 +50,7 @@ /obj/item/paper/fluff/balls/spookyasylum/healstaffnote name = "Shipping Manifest 'Healing Staves'" - info = "Contained in this chest are several magical healing staves created by NT sanctioned warlocks, please use them in the event an employee is injured during the festivities. We hope you have a safe and enjoyable celebration, remember you are expected to return to work promptly at its conclusion.
We apologize in the unlikely event the contents of the crate are scattered around the asylum by its teleportation." + info = "Contained in this chest are several magical healing staves created by GT sanctioned warlocks, please use them in the event an employee is injured during the festivities. We hope you have a safe and enjoyable celebration, remember you are expected to return to work promptly at its conclusion.
We apologize in the unlikely event the contents of the crate are scattered around the asylum by its teleportation." //GS13 - NT to GT //Dorm Buttons diff --git a/_maps/regex_used.txt b/_maps/regex_used.txt deleted file mode 100644 index 54005000d1..0000000000 --- a/_maps/regex_used.txt +++ /dev/null @@ -1,188 +0,0 @@ -Non-Regex: - -Kirbyplants -/obj/item/twohanded/required/kirbyplants -/obj/item/kirbyplants - -Destination Tagger -/obj/item/destTagger -/obj/item/dest_tagger - -Piano -/obj/structure/piano -/obj/structure/musician/piano - -Minesweeper - We don't have minesweeper. -/obj/machinery/computer/arcade/minesweeper -/obj/machinery/computer/arcade/orion_trail - -Double Beds -/obj/structure/double_bed -/obj/structure/bed/double - -Dice -/obj/item/storage/pill_bottle/dice -/obj/item/storage/dice - -AI Modules -/obj/item/aiModule/ -/obj/item/ai_module/ - -Burial Clothing -/obj/item/clothing/under/burial -/obj/item/clothing/under/misc/buria - -Security Pet Bed -/obj/structure/bed/secbed -/obj/structure/bed/dogbed - -RCL -/obj/item/twohanded/rcl -/obj/item/rcl - -Treadmills - -/obj/item/conveyor_construct/treadmill -/obj/machinery/treadmill - -Red Shorts -redwshort -red - -Yellow Shorts -yellowwshort -yellow - -Maid Costume -/obj/item/clothing/under/maid -/obj/item/clothing/under/costume/maid - -Polly -/mob/living/simple_animal/parrot/Poly -/mob/living/simple_animal/parrot/Polly - -Suits -/obj/item/clothing/under/suit_jacket/ -/obj/item/clothing/under/suit/ - -Mailman -/obj/item/clothing/under/rank/mailman -/obj/item/clothing/under/misc/mailman - -Hand Drill -/obj/item/handdrill -/obj/item/screwdriver/power - -Jaws of Life -/obj/item/jawsoflife -/obj/item/crowbar/power - -Kilt -/obj/item/clothing/under/kilt -/obj/item/clothing/under/costume/kilt - -Waiter -/obj/item/clothing/under/waiter -/obj/item/clothing/under/suit/waiter - -sl_suit -/obj/item/clothing/under/sl_suit -/obj/item/clothing/under/suit/sl - -Treasure Hunter Clothing -/obj/item/clothing/under/rank/curator -/obj/item/clothing/under/rank/civilian/curator - -Geisha -/obj/item/clothing/under/geisha -/obj/item/clothing/under/costume/geisha - -HoS Grey -/obj/item/clothing/under/rank/head_of_security/grey -/obj/item/clothing/under/rank/security/head_of_security/grey - -Warden Grey -/obj/item/clothing/under/rank/warden/grey -/obj/item/clothing/under/rank/security/warden/grey - -Detective -/obj/item/clothing/under/rank/det -/obj/item/clothing/under/rank/security/detective - -Red Evening Gown -/obj/item/clothing/under/redeveninggown -/obj/item/clothing/under/dress/redeveninggown - -Nurse Suit -/obj/item/clothing/under/rank/nursesuit -/obj/item/clothing/under/rank/medical/doctor/nurse - -Owl Suit -/obj/item/clothing/under/owl -/obj/item/clothing/under/costume/owl - -Really Black Suit -/obj/item/clothing/under/suit/really_black -/obj/item/clothing/under/rank/civilian/lawyer/really_black - -Female Lawyer -/obj/item/clothing/under/lawyer/femal -/obj/item/clothing/under/rank/civilian/lawyer/female - -Centcom Commander -/obj/item/clothing/under/rank/centcom_commander -/obj/item/clothing/under/rank/centcom/commander - -Janitor Maid -/obj/item/clothing/under/janimaid -/obj/item/clothing/under/rank/civilian/janitor/maid - -Spear -/obj/item/twohanded/spear -/obj/item/spear - -Schoolgirl -/obj/item/clothing/under/schoolgirl -/obj/item/clothing/under/costume/schoolgirl - -Cybernetic -cybernetic/upgraded -cybernetic/tier3 - -ears/cybernetic/tier3 -ears/cybernetic/upgraded - -CTF -/obj/item/twohanded/ctf -/obj/item/ctf - -Nun -/obj/item/clothing/suit/nun -/obj/item/clothing/suit/chaplain/nun - -Roman -/obj/item/clothing/under/roman -/obj/item/clothing/under/costume/roman - -Priest -/obj/item/clothing/suit/holidaypriest -/obj/item/clothing/suit/chaplain/holidaypriest - -Jabroni -/obj/item/clothing/under/jabroni -/obj/item/clothing/under/costume/jabroni - -Bird Seed -/obj/item/reagent_containers/food/snacks/bird_seed -/obj/item/reagent_containers/food/snacks/chips - -Toys -prize/ -mecha/ - -Regex Starts here: - -Shorts -/obj/item/clothing/under/shorts/(.+)?wshort -/obj/item/clothing/under/shorts/$1 - diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm index 68434a3a66..fe24913fb7 100644 --- a/_maps/shuttles/emergency_wabbajack.dmm +++ b/_maps/shuttles/emergency_wabbajack.dmm @@ -200,7 +200,7 @@ name = "Emergency Shuttle Airlock" }, /obj/docking_port/mobile/emergency{ - name = "NT Lepton Violet" + name = "GT Lepton Violet" }, /obj/structure/fans/tiny, /turf/open/floor/plating, diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index 55aec03563..0abada1c4f 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -20,7 +20,7 @@ height = 16; shuttle_id = "whiteship"; launch_status = 0; - name = "NT Recovery White-Ship"; + name = "GT Recovery White-Ship"; port_direction = 8; preferred_direction = 1; width = 16 diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index bf0b154326..1f26181f9c 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -30,7 +30,7 @@ shuttle_id = "whiteship"; launch_status = 0; movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "NT Frigate"; + name = "GT Frigate"; port_direction = 8; preferred_direction = 4; width = 27 diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 0cbba32b96..17a0212eee 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -126,3 +126,13 @@ #define CHEF_TOURISTS_SERVED "Tourists Served As Chef" #define BARTENDER_TOURISTS_SERVED "Tourists Served As Bartender" + +// GS13 ACHIEVEMENTS +#define GLUTTONY_BLOB "Blob" +#define GLUTTONY_MILESTONE_ONE "Gluttony Milestone One" +#define GLUTTONY_MILESTONE_TWO "Gluttony Milestone Two" +#define GLUTTONY_MILESTONE_THREE "Gluttony Milestone Three" +#define GLUTTONY_MILESTONE_FOUR "Gluttony Milestone Four" +#define GLUTTONY_MILESTONE_FIVE "Gluttony Milestone Five" +#define GLUTTONY_MILESTONE_SIX "Gluttony Milestone Six" +#define GLUTTONY_MILESTONE_SEVEN "Gluttony Milestone Seven" diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index c58e111f26..ae5ba7bd15 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -87,6 +87,11 @@ #define ADMIN_PUNISHMENT_FRY "Fry" #define ADMIN_PUNISHMENT_PERFORATE ":B:erforate" #define ADMIN_PUNISHMENT_CLUWNE "Cluwne" +// GS13 PUNISHMENTS +#define ADMIN_PUNISHMENT_BONK "Bonk" +#define ADMIN_PUNISHMENT_BREADIFY "Breadify" +#define ADMIN_PUNISHMENT_FATTEN "Fatten" +#define ADMIN_PUNISHMENT_FATTEN_EVIL "Fatten (Permafat)" #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index 85e5e9d2ac..251d642a85 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -43,12 +43,12 @@ GLOBAL_LIST_EMPTY(supplypod_loading_bays) GLOBAL_LIST_INIT(podstyles, list(\ - list(POD_SHAPE_NORML, "pod", TRUE, "default", "yellow", RUBBLE_NORMAL, "supply pod", "A Nanotrasen supply drop pod."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "bluespace", "blue", RUBBLE_NORMAL, "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "centcom", "blue", RUBBLE_NORMAL, "\improper CentCom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery."),\ + list(POD_SHAPE_NORML, "pod", TRUE, "default", "yellow", RUBBLE_NORMAL, "supply pod", "A GATO supply drop pod."),\ + list(POD_SHAPE_NORML, "advpod", TRUE, "bluespace", "blue", RUBBLE_NORMAL, "bluespace supply pod" , "A GATO Bluespace supply pod. Teleports back to CentCom after delivery."),\ + list(POD_SHAPE_NORML, "advpod", TRUE, "centcom", "blue", RUBBLE_NORMAL, "\improper CentCom supply pod", "A GATO supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery."),\ list(POD_SHAPE_NORML, "darkpod", TRUE, "syndicate", "red", RUBBLE_NORMAL, "blood-red supply pod", "An intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ - list(POD_SHAPE_NORML, "darkpod", TRUE, "deathsquad", "blue", RUBBLE_NORMAL, "\improper Deathsquad drop pod", "A Nanotrasen drop pod. This one has been marked the markings of Nanotrasen's elite strike team."),\ - list(POD_SHAPE_NORML, "pod", TRUE, "cultist", "red", RUBBLE_NORMAL, "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ + list(POD_SHAPE_NORML, "darkpod", TRUE, "deathsquad", "blue", RUBBLE_NORMAL, "\improper Deathsquad drop pod", "A GATO drop pod. This one has been marked the markings of GATO's elite strike team."),\ + list(POD_SHAPE_NORML, "pod", TRUE, "cultist", "red", RUBBLE_NORMAL, "bloody supply pod", "A GATO supply pod covered in scratch-marks, blood, and strange runes."),\ list(POD_SHAPE_OTHER, "missile", FALSE, FALSE, FALSE, RUBBLE_THIN, "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ list(POD_SHAPE_OTHER, "smissile", FALSE, FALSE, FALSE, RUBBLE_THIN, "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ list(POD_SHAPE_OTHER, "box", TRUE, FALSE, FALSE, RUBBLE_WIDE, "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index d558b4bdcf..867f11a270 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -9,10 +9,11 @@ #define BUTT_LAYER_INDEX 1 #define VAGINA_LAYER_INDEX 2 #define TESTICLES_LAYER_INDEX 3 -#define GENITAL_LAYER_INDEX 4 -#define PENIS_LAYER_INDEX 5 +#define BELLY_LAYER_INDEX 4 +#define GENITAL_LAYER_INDEX 5 +#define PENIS_LAYER_INDEX 6 -#define GENITAL_LAYER_INDEX_LENGTH 5 //keep it updated with each new index added, thanks. +#define GENITAL_LAYER_INDEX_LENGTH 6 //keep it updated with each new index added, thanks. //genital flags #define GENITAL_BLACKLISTED (1<<0) //for genitals that shouldn't be added to GLOB.genitals_list. @@ -66,9 +67,16 @@ #define BUTT_SIZE_DEF 1 #define BUTT_SIZE_MAX 10 //butt genitals are special in that they have caps. if there's the event there's even bigger butt sprites, raise this number. -#define BELLY_SIZE_DEF 0 +#define BELLY_SIZE_DEF 1 #define BELLY_SIZE_MAX 10 +#define DEF_BELLY_SHAPE "Soft Belly" //GS13 - More belly types + +//GS13 Port - Add back Arousal +#define AROUSAL_MINIMUM_DEFAULT 0 +#define AROUSAL_MAXIMUM_DEFAULT 100 +#define AROUSAL_START_VALUE 1 + //visibility toggles defines to avoid errors typos code errors. #define GEN_VISIBLE_ALWAYS "Always visible" #define GEN_VISIBLE_NO_CLOTHES "Hidden by clothes" diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 14a3b7dc49..4842a38716 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -98,6 +98,7 @@ #define ui_health "EAST-1:28,CENTER-1:15" #define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter #define ui_mood "EAST-1:28,CENTER-3:10" +#define ui_arousal "EAST-1:28,CENTER-4:8" // #define ui_spacesuit "EAST-1:28,CENTER-4:10" //Pop-up inventory diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index dc312a8e50..a3ad0a8e68 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -137,6 +137,7 @@ require only minor tweaks. ZTRAIT_LAVA_UNDERGROUND = TRUE, \ ZTRAIT_BOMBCAP_MULTIPLIER = 2, \ ZTRAIT_UP = 1, \ + ZTRAIT_ASHSTORM = FALSE, \ ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface) #define ZTRAITS_DINER list(ZTRAIT_DINER = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3933856d4d..8787d3edd7 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -40,25 +40,25 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define BODYPARTS_LAYER 31 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag #define MARKING_LAYER 30 //Matrixed body markings because clashing with snouts? #define BODY_ADJ_LAYER 29 //certain mutantrace features (snout, body markings) that must appear above the body parts -#define GENITALS_FRONT_LAYER 28 //Draws some genitalia above clothes and the TAUR body if need be. -#define BODY_LAYER 27 //underwear, undershirts, socks, eyes, lips(makeup) -#define BODY_ADJ_UPPER_LAYER 26 -#define FRONT_MUTATIONS_LAYER 25 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) -#define DAMAGE_LAYER 24 //damage indicators (cuts and burns) -#define UNIFORM_LAYER 23 -#define ID_LAYER 22 -#define HANDS_PART_LAYER 21 -#define SHOES_LAYER 20 -#define GLOVES_LAYER 19 -#define EARS_LAYER 18 -#define GENITALS_UNDER_LAYER 17 -#define SUIT_LAYER 16 -#define GENITALS_EXPOSED_LAYER 15 -#define GLASSES_LAYER 14 -#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt? -#define SUIT_STORE_LAYER 12 -#define NECK_LAYER 11 -#define BACK_LAYER 10 +#define BODY_LAYER 28 //underwear, undershirts, socks, eyes, lips(makeup) +#define BODY_ADJ_UPPER_LAYER 27 +#define FRONT_MUTATIONS_LAYER 26 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) +#define DAMAGE_LAYER 25 //damage indicators (cuts and burns) +#define UNIFORM_LAYER 24 +#define ID_LAYER 23 +#define HANDS_PART_LAYER 22 +#define SHOES_LAYER 21 +#define GLOVES_LAYER 20 +#define EARS_LAYER 19 +#define GENITALS_UNDER_LAYER 18 +#define SUIT_LAYER 17 +#define GLASSES_LAYER 16 +#define BELT_LAYER 15 //Possible make this an overlay of somethign required to wear a belt? +#define SUIT_STORE_LAYER 14 +#define NECK_LAYER 13 +#define BACK_LAYER 12 +#define GENITALS_EXPOSED_LAYER 11 +#define GENITALS_FRONT_LAYER 10 //Draws some genitalia above clothes and the TAUR body if need be. #define HAIR_LAYER 9 //TODO: make part of head layer? #define HORNS_LAYER 8 #define FACEMASK_LAYER 7 @@ -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" @@ -588,5 +588,6 @@ GLOBAL_LIST_INIT(pda_reskins, list( #define FATTENING_TYPE_NANITES "nanites" #define FATTENING_TYPE_RADIATIONS "radiations" #define FATTENING_TYPE_WEIGHT_LOSS "weight_loss" +#define FATTENING_TYPE_ALMIGHTY "almighty" //This ignores prefs, please only use this for smites and other admin controlled instances. #define FATNESS_TO_WEIGHT_RATIO 0.25 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 77f99543f6..07b743b9e8 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -175,6 +175,15 @@ #define NUTRITION_LEVEL_START_MIN 250 #define NUTRITION_LEVEL_START_MAX 400 +//GS13 Port - Hyperstation Thirst +#define THIRST_LEVEL_THRESHOLD 800 //Set to 0 to stop clamping +#define THIRST_LEVEL_QUENCHED 450 +#define THIRST_LEVEL_THIRSTY 250 +#define THIRST_LEVEL_PARCHED 150 + +#define THIRST_LEVEL_START_MIN 250 +#define THIRST_LEVEL_START_MAX 400 + // Disgust levels for humans #define DISGUST_LEVEL_MAXEDOUT 150 #define DISGUST_LEVEL_DISGUSTED 75 @@ -288,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 @@ -388,6 +397,7 @@ #define FULLNESS_LEVEL_FILLED 40 #define FULLNESS_LEVEL_HALF_FULL 20 #define FULLNESS_LEVEL_EMPTY 0 +#define FULLNESS_STUFFED_EXTRA_SPRITE_SIZES 2 //GS13 - Stuffed sprite range //Fullness emote cooldown #define FULLNESS_REDUCTION_COOLDOWN 50 diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index bccbd425dd..b01a9aab90 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -16,7 +16,7 @@ GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) #define DELAY_TO_GLIDE_SIZE(delay) (clamp(((world.icon_size / max((delay) / world.tick_lag, 1)) * GLOB.glide_size_multiplier), MIN_GLIDE_SIZE, MAX_GLIDE_SIZE)) /// Enables smooth movement -// #define SMOOTH_MOVEMENT +#define SMOOTH_MOVEMENT /// Set appearance flags in vars #ifdef SMOOTH_MOVEMENT diff --git a/code/__DEFINES/research/stock_parts.dm b/code/__DEFINES/research/stock_parts.dm index 457e3b632e..e493df242e 100644 --- a/code/__DEFINES/research/stock_parts.dm +++ b/code/__DEFINES/research/stock_parts.dm @@ -2,4 +2,4 @@ /// Efficiency scaling for stock part level to material usage. All code concerning lathing and production from raw material sheet should be using this. #define STANDARD_PART_LEVEL_LATHE_COEFFICIENT(level) clamp(1 - (level * 0.1), 0, 1) /// Efficiency scaling for stock part level to ore factor. All code concerning lathing and production from raw ores to raw material sheets should be using this. -#define STANDARD_PART_LEVEL_ORE_COEFFICIENT(level) clamp(1 + (level * 0.125), 1, 10) +#define STANDARD_PART_LEVEL_ORE_COEFFICIENT(level) clamp(1 + (level * 0.25), 1, 10) //GS13 EDIT, original level mult 0.125 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 18ecc5942c..f2c3c13848 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -289,6 +289,14 @@ #define TRAIT_WATER_SPONGE "water_sponge" #define TRAIT_FATROUSAL "fatrousal" +//GS13 Port +#define TRAIT_HEADPAT_SLUT "headpat_slut" +#define TRAIT_NEVER_CLONE "donotclone" +#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) // BUT FOR NOW, THESE ARE HOOKED TO DO update_mobility() VIA COMSIG IN living_mobility.dm diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index de006de90e..c885a5b996 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -144,6 +144,17 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) if(I.body_parts_covered & GROIN) return FALSE return TRUE +//GS13 Port - Arousal +/mob/living/carbon/proc/is_butt_exposed(var/list/L) + if(!L) + L = get_equipped_items() + for(var/obj/item/I in L) + if(I.body_parts_covered & GROIN) + if(!I.do_not_cover_butt) + return FALSE + else + return TRUE + return TRUE /mob/living/carbon/proc/is_chest_exposed(list/L) if(!L) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 3b092fd3b7..726787b552 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -31,6 +31,7 @@ ///returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list #define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; +#define LAZYISIN(L, V) L ? (V in L) : FALSE #define LAZYLEN(L) length(L) ///This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects) #define LAZYADDASSOCLIST(L, K, V) if(!L) { L = list(); } L[K] += list(V); @@ -789,3 +790,25 @@ /proc/safe_json_decode(string, default = list()) . = default return json_decode(string) + +// Insert an object A into a sorted list using cmp_proc (/code/_helpers/cmp.dm) for comparison. +#define ADD_SORTED(list, A, cmp_proc) if(!list.len) {list.Add(A)} else {list.Insert(FindElementIndex(A, list, cmp_proc), A)} + +// Return the index using dichotomic search +/proc/FindElementIndex(atom/A, list/L, cmp) + var/i = 1 + var/j = L.len + var/mid + + while(i < j) + mid = round((i+j)/2) + + if(call(cmp)(L[mid],A) < 0) + i = mid + 1 + else + j = mid + + if(i == 1 || i == L.len) // Edge cases + return (call(cmp)(L[i],A) > 0) ? i : i+1 + else + return i diff --git a/code/__HELPERS/do_after.dm b/code/__HELPERS/do_after.dm index 9f98b0e10e..ea87dea222 100644 --- a/code/__HELPERS/do_after.dm +++ b/code/__HELPERS/do_after.dm @@ -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()) \ ) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index e177fa2860..cb68fe61fd 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -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 diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index e2f76e1952..c29f8dbe2b 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -215,6 +215,8 @@ "butt_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), // GS13 EDIT START - BELLY "has_belly" = FALSE, + "belly_size" = BELLY_SIZE_DEF, + "belly_shape" = DEF_BELLY_SHAPE, "hide_belly" = FALSE, "inflatable_belly" = FALSE, "belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), @@ -225,6 +227,7 @@ "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, + "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None", "ipc_antenna" = "None", "flavor_text" = "", diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index d7d429281c..ca5164b9b8 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -276,7 +276,7 @@ broadcastmessage += "[GLOB.round_end_notifiees.Join(", ")], " - broadcastmessage += "[((broadcastmessage == "") ? "the" : "The")] current round has ended. Please standby for your shift interlude Nanotrasen News Network's report!\n" + broadcastmessage += "[((broadcastmessage == "") ? "the" : "The")] current round has ended. Please standby for your shift interlude GATO News Network's report!\n" //GS13 - Nanotrasen to GATO broadcastmessage += "```\n[send_news_report()]\n```" if(CONFIG_GET(string/chat_reboot_role)) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 1ed2075537..ef9692d2a3 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -45,6 +45,10 @@ //#define UNIT_TESTS //If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between +// If this is uncommented, will attempt to load and initialize prof.dll/libprof.so. +// We do not ship byond-tracy. Build it yourself here: https://github.com/mafemergency/byond-tracy/ +//#define USE_BYOND_TRACY + #ifndef PRELOAD_RSC //set to: #define PRELOAD_RSC 2 // 0 to allow using external resources or on-demand behaviour; #endif // 1 to use the default behaviour; diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 609669d704..b7d4cadfaa 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -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 diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 1148e92dd5..aaa1fc9759 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -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 diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index bd1509d88b..7672bcf452 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -92,7 +92,11 @@ . = 1 //Please don't roast me too hard +//Oh don't worry, We Will. /client/MouseMove(object, location, control, params) + if(!COOLDOWN_FINISHED(src, next_mousemove)) + return + COOLDOWN_START(src, next_mousemove, 0) //COOLDOWN_FINISHED() sees the world tick and cooldown timer being equal as a state wherein the cooldown has not finished. So the cooldown timer here is 0 to throttle only for the rest of the tick. mouseParams = params mouse_location_ref = WEAKREF(location) mouse_object_ref = WEAKREF(object) @@ -106,6 +110,9 @@ ..() /client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params) + if(!COOLDOWN_FINISHED(src, next_mousedrag)) + return + COOLDOWN_START(src, next_mousedrag, 0) //See comment in MouseMove() for why this is 0. mouseParams = params mouse_location_ref = WEAKREF(over_location) mouse_object_ref = WEAKREF(over_object) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 53d69fe01e..61d99e29f3 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -88,6 +88,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/healthdoll var/atom/movable/screen/internals + //GS13 Port - Add back Arousal + var/atom/movable/screen/arousal + var/atom/movable/screen/wanted/wanted_lvl // subtypes can override this to force a specific UI style var/ui_style @@ -144,6 +147,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( healthdoll = null wanted_lvl = null internals = null + arousal = null lingchemdisplay = null devilsouldisplay = null lingstingdisplay = null diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 27989f3bb1..bea9e564f2 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -430,6 +430,12 @@ infodisplay += staminabuffer //END OF CIT CHANGES + //GS13 Port - adds arousal and stamina to hud + arousal = new /atom/movable/screen/arousal() + arousal.icon_state = (owner.canbearoused == 1 ? "arousal0" : "") + arousal.hud = src + infodisplay += arousal + healthdoll = new /atom/movable/screen/healthdoll() healthdoll.hud = src infodisplay += healthdoll diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index f7c864a89f..6ec130c84a 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -347,3 +347,7 @@ /datum/config_entry/str_list/randomizing_station_name_message default = list() + +/datum/config_entry/number/border_control // If border control is enabled + +/datum/config_entry/flag/toast_notification_on_init diff --git a/code/controllers/configuration/entries/respawns.dm b/code/controllers/configuration/entries/respawns.dm index 7c8e3b7789..accc07a909 100644 --- a/code/controllers/configuration/entries/respawns.dm +++ b/code/controllers/configuration/entries/respawns.dm @@ -1,28 +1,29 @@ +//GS13 - lot of changes were included here, mostly allowing people to respawn very easily, even as the same characters /// Allows usage of respawn system /datum/config_entry/flag/respawns_enabled - default = FALSE + default = TRUE /// Minutes before allowing respawns. /datum/config_entry/number/respawn_delay - default = 15.0 + default = 1.0 integer = FALSE /// Minutes before allowing respawn, if user cryo'd. /datum/config_entry/number/respawn_delay_cryo - default = 5.0 + default = 1.0 integer = FALSE /// Allows respawning as non-assistant. Overrides all others of this type. /datum/config_entry/flag/allow_non_assistant_respawn - default = FALSE + default = TRUE /// Allows respawning as a combat role, defined as security/head. /datum/config_entry/flag/allow_combat_role_respawn - default = FALSE + default = TRUE /// Allows respawning as the same character as a previous life /datum/config_entry/flag/allow_same_character_respawn - default = FALSE + default = TRUE /// Observing penalizes for respawns, not just joining. /datum/config_entry/flag/respawn_penalty_includes_observe @@ -30,7 +31,7 @@ /// Minutes from roundstart before someone can respawn /datum/config_entry/number/respawn_minimum_delay_roundstart - default = 30.0 + default = 1.0 integer = FALSE /// Gamemode config tags that are banned from respawning diff --git a/code/controllers/master.dm b/code/controllers/master.dm index de94b27e77..e695b0fd0b 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -223,6 +223,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // Sort subsystems by display setting for easy access. sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display)) + + if(world.system_type == MS_WINDOWS && CONFIG_GET(flag/toast_notification_on_init) && !length(GLOB.clients)) + world.shelleo("start /min powershell -ExecutionPolicy Bypass -File tools/initToast/initToast.ps1 -name \"[world.name]\" -icon %CD%\\icons\\ui_icons\\common\\tg_16.png -port [world.port]") + // Set world options. world.change_fps(CONFIG_GET(number/fps)) var/initialized_tod = REALTIMEOFDAY @@ -288,7 +292,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new SS.state = SS_IDLE if (SS.flags & SS_TICKER) tickersubsystems += SS - timer += world.tick_lag * rand(1, 5) + // Timer subsystems aren't allowed to bunch up, so we offset them a bit + timer += world.tick_lag * rand(0, 1) SS.next_fire = timer continue @@ -367,14 +372,16 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/checking_runlevel = current_runlevel if(cached_runlevel != checking_runlevel) //resechedule subsystems + var/list/old_subsystems = current_runlevel_subsystems cached_runlevel = checking_runlevel current_runlevel_subsystems = runlevel_sorted_subsystems[cached_runlevel] - var/stagger = world.time - for(var/I in current_runlevel_subsystems) - var/datum/controller/subsystem/SS = I - if(SS.next_fire <= world.time) - stagger += world.tick_lag * rand(1, 5) - SS.next_fire = stagger + + //now we'll go through all the subsystems we want to offset and give them a next_fire + for(var/datum/controller/subsystem/SS as anything in current_runlevel_subsystems) + //we only want to offset it if it's new and also behind + if(SS.next_fire > world.time || (SS in old_subsystems)) + continue + SS.next_fire = world.time + world.tick_lag * rand(0, DS2TICKS(min(SS.wait, 2 SECONDS))) subsystems_to_check = current_runlevel_subsystems else diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index 73e6c0d128..fa054336de 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -1,6 +1,6 @@ SUBSYSTEM_DEF(economy) name = "Economy" - wait = 5 MINUTES + wait = 30 MINUTES //GS13 EDIT - ORIGINAL = 5 init_order = INIT_ORDER_ECONOMY runlevels = RUNLEVEL_GAME var/roundstart_paychecks = 5 diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index b8f5c68dee..af28f2edf3 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -464,7 +464,10 @@ SUBSYSTEM_DEF(job) else handle_auto_deadmin_roles(M.client, rank) - to_chat(M, "You are the [rank].") + 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, "You are the [display_rank].") if(job) to_chat(M, "As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.") job.radio_help_message(M) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index dc01134038..f448e9dc7a 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -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")) + 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() diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index a130962bab..42617e2661 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -267,8 +267,8 @@ SUBSYSTEM_DEF(shuttle) emergency.cancel() if(!admiral_message) - admiral_message = pick(GLOB.admiral_messages) - var/intercepttext = "Nanotrasen Update: Request For Shuttle.
\ + admiral_message = pick(GLOB.admiral_messages) //GS13 - Nanotrasen to GATO + var/intercepttext = "GATO Update: Request For Shuttle.
\ To whom it may concern:

\ We have taken note of the situation upon [station_name()] and have come to the \ conclusion that it does not warrant the abandonment of the station.
\ diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 9e4ca0a6c0..90df828ee3 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -560,7 +560,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/send_news_report() var/news_message - var/news_source = "Nanotrasen News Network" + var/news_source = "GATO News Network" //GS13 - Nanotrasen to GATO switch(news_report) if(NUKE_SYNDICATE_BASE) news_message = "In a daring raid, the heroic crew of [station_name()] detonated a nuclear device in the heart of a terrorist base." diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm index 1dbfb1540c..506276973e 100644 --- a/code/controllers/subsystem/title.dm +++ b/code/controllers/subsystem/title.dm @@ -32,7 +32,7 @@ SUBSYSTEM_DEF(title) file_path = "[global.config.directory]/title_screens/images/[pick(title_screens)]" if(!file_path) - file_path = "icons/runtime/default_title.dmi" + file_path = "GainStation13/icons/runtime/default_title.dmi" ASSERT(fexists(file_path)) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index f5a46eb140..d5ae1d7bb4 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -280,7 +280,7 @@ gain_text = "You feel odd, like you just forgot something important." lose_text = "You feel like a weight was lifted from your mind." random_gain = FALSE - var/trigger_phrase = "Nanotrasen" + var/trigger_phrase = "GATO" //GS13 - Nanotrasen to GATO /datum/brain_trauma/severe/hypnotic_trigger/New(phrase) ..() diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 3dbdf1f3ac..b1a02decf8 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -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() ..() diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index e28e108677..2a64b54407 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -169,6 +169,7 @@ setSanity(sanity+0.4, maximum=SANITY_AMAZING) HandleNutrition(owner) + HandleFatness(owner) //GS13 EDIT /datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_NEUTRAL)//I'm sure bunging this in here will have no negative repercussions. var/mob/living/master = parent @@ -315,6 +316,19 @@ /datum/component/mood/proc/hud_click(datum/source, location, control, params, mob/user) print_mood(user) +//GS13 EDIT START +/datum/component/mood/proc/HandleFatness(mob/living/carbon/L) // GS13 + if(!L) + return FALSE + + switch(L.fatness) + if(FATNESS_LEVEL_FAT to INFINITY) + if(HAS_TRAIT(L, TRAIT_FAT_GOOD)) + add_event(null, "fatness", /datum/mood_event/fat_good) + else if(HAS_TRAIT(L, TRAIT_FAT_BAD)) + add_event(null, "fatness", /datum/mood_event/fat_bad) + +//GS13 EDIT END /datum/component/mood/proc/HandleNutrition(mob/living/L) if(isethereal(L)) diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index 8cfd8e45e0..52ae4970f9 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -67,6 +67,7 @@ handles linking back and forth. /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, + /datum/material/calorite, //GS13 EDIT ) mat_container = parent.AddComponent(/datum/component/material_container, allowed_mats, local_size, allowed_types=/obj/item/stack, _after_insert = after_insert) diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 47549be565..70298d4e25 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -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, "[parent] only accepts machine parts!") + 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, "[parent] only accepts machine parts!") + 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 diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8195666783..bb0f786fc5 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -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" diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 5683367c55..8d9f6170bd 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -57,12 +57,13 @@ user.log_message(msg, LOG_EMOTE) msg = "[user] [msg]" - for(var/mob/M in GLOB.dead_mob_list) - if(!M.client || isnewplayer(M)) - continue - var/T = get_turf(user) - if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null))) - M.show_message(msg) + if(user.client) + for(var/mob/M in GLOB.dead_mob_list) + if(!M.client || isnewplayer(M)) + continue + var/T = get_turf(user) + if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null))) + M.show_message(msg) if(emote_type == EMOTE_AUDIBLE) user.audible_message(msg) diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 4b4cce3794..bb135baf61 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -13,7 +13,7 @@ /datum/ert/New() if (!polldesc) - polldesc = "a Code [code] Nanotrasen Emergency Response Team" + polldesc = "a Code [code] GATO Emergency Response Team" //GS13 - Nanotrasen to GATO /datum/ert/blue opendoors = FALSE @@ -35,7 +35,7 @@ rename_team = "Deathsquad" code = "Delta" mission = "Leave no witnesses." - polldesc = "an elite Nanotrasen Strike Team" + polldesc = "an elite GATO Strike Team" //GS13 - Nanotrasen to GATO /datum/ert/centcom_official code = "Green" @@ -54,7 +54,7 @@ leader_role = /datum/antagonist/ert/commander/inquisitor rename_team = "Inquisition" mission = "Destroy any traces of paranormal activity aboard the station." - polldesc = "a Nanotrasen paranormal response team" + polldesc = "a GATO paranormal response team" //GS13 - Nanotrasen to GATO /datum/ert/greybois code = "Green" diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 6edb0ab5ea..b715bd4df2 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -54,7 +54,7 @@ mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) mid_length = 2 end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg' - volume = 15 + volume = 5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -65,12 +65,12 @@ volume = 50 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - +/* /datum/looping_sound/deep_fryer mid_length = 2 mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) volume = 30 - +*/ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/looping_sound/microwave diff --git a/code/datums/mind.dm b/code/datums/mind.dm index c05d04ede8..5c810bed2a 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -169,6 +169,8 @@ var/mob/living/L = new_character if(L.client?.prefs && L.client.prefs.auto_ooc && L.client.prefs.chat_toggles & CHAT_OOC) L.client.prefs.chat_toggles &= ~(CHAT_OOC) + L.canbearoused = L.client?.prefs?.arousable //Technically this should make taking over a character mean the body gain the new minds setting... + L.update_arousal_hud() //Removes the old icon hide_ckey = current.client?.prefs?.hide_ckey diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 7a57e50364..244020887a 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -34,8 +34,8 @@ id = "asteroid4" suffix = "asteroid4.dmm" name = "Asteroid 4" - description = "Nanotrasen Escape Pods have a 100%* success rate, and a 99%* customer satisfaction rate. \ - *Please note that these statistics, are taken from pods that have successfully docked with a recovery vessel." + description = "GATO Escape Pods have a 100%* success rate, and a 99%* customer satisfaction rate. \ + *Please note that these statistics, are taken from pods that have successfully docked with a recovery vessel." //GS13 - Nanotrasen to GATO /datum/map_template/ruin/space/asteroid5 id = "asteroid5" @@ -95,8 +95,8 @@ id = "derelict6" suffix = "derelict6.dmm" name = "Derelict 6" - description = "The hush-hush of Nanotrasen when it comes to stations seemingly vanishing off the radar is an interesting topic, theories of nuclear destruction float about while Nanotrasen \ - flat-out denies said stations ever existing." + description = "The hush-hush of GATO when it comes to stations seemingly vanishing off the radar is an interesting topic, theories of nuclear destruction float about while GATO \ + flat-out denies said stations ever existing." //GS13 - Nanotrasen to GATO /datum/map_template/ruin/space/empty_shell id = "empty-shell" @@ -259,7 +259,7 @@ /datum/map_template/ruin/space/whiteshipruin_box id = "whiteshipruin_box" suffix = "whiteshipruin_box.dmm" - name = "NT Medical Ship" + name = "GT Medical Ship" //GS13 - NT to GT description = "An ancient ship, said to be among the first discovered derelicts near Space Station 13 that was still in working order. \ Aged and deprecated by time, this relic of a vessel is now broken beyond repair." diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index add0668950..3e505e8662 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -214,7 +214,7 @@ /datum/map_template/shuttle/emergency/asteroid suffix = "asteroid" name = "Asteroid Station Emergency Shuttle" - description = "A respectable mid-sized shuttle that first saw service shuttling Nanotrasen crew to and from their asteroid belt embedded facilities." + description = "A respectable mid-sized shuttle that first saw service shuttling GATO crew to and from their asteroid belt embedded facilities." //GS13 - Nanotrasen to GATO credit_cost = 3000 /datum/map_template/shuttle/emergency/bar @@ -257,7 +257,7 @@ /datum/map_template/shuttle/emergency/discoinferno suffix = "discoinferno" name = "Disco Inferno" - description = "The glorious results of centuries of plasma research done by Nanotrasen employees. This is the reason why you are here. Get on and dance like you're on fire, burn baby burn!" + description = "The glorious results of centuries of plasma research done by GATO employees. This is the reason why you are here. Get on and dance like you're on fire, burn baby burn!" //GS13 - Nanotrasen to GATO admin_notes = "Flaming hot. The main area has a dance machine as well as plasma floor tiles that will be ignited by players every single time." credit_cost = 10000 // can_be_bought = FALSE @@ -416,20 +416,20 @@ /datum/map_template/shuttle/emergency/goon suffix = "goon" name = "NES Port" - description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known Nanotrasen facilities and has a more open inside for larger crowds, but fewer onboard shuttle facilities." + description = "The GATO Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known GATO facilities and has a more open inside for larger crowds, but fewer onboard shuttle facilities." //GS13 - Nanotrasen to GATO credit_cost = 500 // /datum/map_template/shuttle/emergency/rollerdome // suffix = "rollerdome" // name = "Uncle Pete's Rollerdome" -// description = "Developed by a member of Nanotrasen's R&D crew that claims to have travelled from the year 2028. +// description = "Developed by a member of GATO's R&D crew that claims to have travelled from the year 2028. // He says this shuttle is based off an old entertainment complex from the 1990s, though our database has no records on anything pertaining to that decade." // admin_notes = "ONLY NINETIES KIDS REMEMBER. Uses the fun balloon and drone from the Emergency Bar." // credit_cost = 500 * 5 /datum/map_template/shuttle/emergency/wabbajack suffix = "wabbajack" - name = "NT Lepton Violet" + name = "GT Lepton Violet" //GS13 - NT to GT description = "The research team based on this vessel went missing one day, and no amount of investigation could discover what happened to them. \ The only occupants were a number of dead rodents, who appeared to have clawed each other to death. \ Needless to say, no engineering team wanted to go near the thing, and it's only being used as an Emergency Escape Shuttle because there is literally nothing else available." @@ -509,23 +509,23 @@ /datum/map_template/shuttle/whiteship/pubby suffix = "pubby" - name = "NT White UFO" + name = "GT White UFO" //GS13 - NT to GT /datum/map_template/shuttle/whiteship/cere suffix = "cere" - name = "NT Construction Vessel" + name = "GT Construction Vessel" //GS13 - NT to GT // /datum/map_template/shuttle/whiteship/kilo // suffix = "kilo" -// name = "NT Mining Shuttle" +// name = "GT Mining Shuttle" // /datum/map_template/shuttle/whiteship/donut // suffix = "donut" -// name = "NT Long-Distance Bluespace Jumper" +// name = "GT Long-Distance Bluespace Jumper" /datum/map_template/shuttle/whiteship/delta suffix = "delta" - name = "NT Frigate" + name = "GT Frigate" //GS13 - NT to GT /datum/map_template/shuttle/whiteship/pod suffix = "whiteship_pod" @@ -533,7 +533,7 @@ /datum/map_template/shuttle/whiteship/cog suffix = "cog" - name = "NT Prisoner Transport" + name = "GT Prisoner Transport" //GS13 - NT to GT /datum/map_template/shuttle/cargo/kilo suffix = "kilo" @@ -581,7 +581,7 @@ /datum/map_template/shuttle/emergency/cog suffix = "cog" name = "NES Classic" - description = "A blast from the past! This recreation of the Nanotrasen Emergency Shuttle Port features the same focus on seating as the original, but on a slightly longer frame to better accommodate modern shuttle docks." + description = "A blast from the past! This recreation of the GATO Emergency Shuttle Port features the same focus on seating as the original, but on a slightly longer frame to better accommodate modern shuttle docks." //GS13 - Nanotrasen to GATO credit_cost = 750 /datum/map_template/shuttle/arrival/box diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index 09be52d700..c89f41b16b 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -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 diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 94772966ee..70358166d3 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -90,10 +90,10 @@ show_in_report = TRUE var/list/scarves -/datum/station_trait/scarves/New() +/datum/station_trait/scarves/New() //GS13 - Nanotrasen to GATO . = ..() report_message = pick( - "Nanotrasen is experimenting with seeing if neck warmth improves employee morale.", + "GATO is experimenting with seeing if neck warmth improves employee morale.", "After Space Fashion Week, scarves are the hot new accessory.", "Everyone was simultaneously a little bit cold when they packed to go to the station.", "The station is definitely not under attack by neck grappling aliens masquerading as wool. Definitely not.", diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 0d470673e6..6dbb077031 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -573,7 +573,7 @@ duration = 1 MINUTES status_type = STATUS_EFFECT_REPLACE alert_type = /atom/movable/screen/alert/status_effect/regenerative_core - var/heal_amount = 25 + var/heal_amount = 60 /datum/status_effect/regenerative_core/on_apply() . = ..() diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 5b00d2e71e..e0793e952a 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -190,7 +190,7 @@ // Get targets var/obj/item/organ/eyes/old_eyes = quirk_holder.getorganslot(ORGAN_SLOT_EYES) var/obj/item/organ/eyes/robotic/glow/new_eyes = new - + // Replace eyes qdel(old_eyes) new_eyes.Insert(quirk_holder) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 6a68334c85..c1ec769ced 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -214,7 +214,7 @@ GLOBAL_LIST_EMPTY(family_heirlooms) /datum/quirk/lightless name = "Light Sensitivity" - desc = "Bright lights irritate you. Your eyes start to water, your skin feels itchy against the photon radiation, and your hair gets dry and frizzy. Maybe it's a medical condition. If only Nanotrasen was more considerate of your needs..." + desc = "Bright lights irritate you. Your eyes start to water, your skin feels itchy against the photon radiation, and your hair gets dry and frizzy. Maybe it's a medical condition. If only GATO was more considerate of your needs..." //GS13 - Nanotrasen to GATO value = -1 gain_text = "Bright lights seem irritating." lose_text = "Enlightening." diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index eb5293c07d..064febb2d2 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -162,6 +162,15 @@ gain_text = "You feel like munching on a can of soda." lose_text = "You no longer feel like you should be eating trash." mob_trait = TRAIT_TRASHCAN + medical_record_text = "Patient has been observed eating inedible garbage." + +// GS13 EDIT START +/datum/quirk/trashcan/add() + add_verb(quirk_holder, /mob/living/proc/eat_trash) + +/datum/quirk/trashcan/remove() + remove_verb(quirk_holder, /mob/living/proc/eat_trash) +// GS13 EDIT END // Moved Colorist quirk to a loadout item diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index ed02cd2f25..1d660c786c 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -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 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 95322812ed..f8336fc346 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -558,7 +558,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) // Ambience goes down here -- make sure to list each area separately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) L.client.ambience_playing = 1 - SEND_SOUND(L, sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ)) + SEND_SOUND(L, sound('GainStation13/sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ)) // GS13 EDIT AMBIENCE if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) return //General ambience check is below the ship ambience so one can play without the other diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 0eaba60ba8..ae025b355a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -94,6 +94,7 @@ var/datum/wires/wires = null var/icon/blood_splatter_icon + var/icon/cum_splatter_icon var/list/fingerprints var/list/fingerprintshidden var/list/blood_DNA diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 91999acac5..78676c9a66 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -1,6 +1,6 @@ /atom/movable layer = OBJ_LAYER - glide_size = 8 + glide_size = 9 SET_APPEARANCE_FLAGS(TILE_BOUND | PIXEL_SCALE) var/last_move = null var/last_move_time = 0 diff --git a/code/game/gamemodes/brother/traitor_bro.dm b/code/game/gamemodes/brother/traitor_bro.dm index 6da31e41bb..511f3bb597 100644 --- a/code/game/gamemodes/brother/traitor_bro.dm +++ b/code/game/gamemodes/brother/traitor_bro.dm @@ -61,7 +61,7 @@ return ..() /datum/game_mode/traitor/bros/generate_report() - return "It's Syndicate recruiting season. Be alert for potential Syndicate infiltrators, but also watch out for disgruntled employees trying to defect. Unlike Nanotrasen, the Syndicate prides itself in teamwork and will only recruit pairs that share a brotherly trust." + return "It's Syndicate recruiting season. Be alert for potential Syndicate infiltrators, but also watch out for disgruntled employees trying to defect. Unlike GATO, the Syndicate prides itself in teamwork and will only recruit pairs that share a brotherly trust." //GS13 - Nanotrasen to GATO /datum/game_mode/proc/update_brother_icons_added(datum/mind/brother_mind) var/datum/atom_hud/antag/brotherhud = GLOB.huds[ANTAG_HUD_BROTHER] diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index a21d6c676d..fdab5da356 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -80,6 +80,6 @@ ..() /datum/game_mode/traitor/changeling/generate_report() - return "The Syndicate has started some experimental research regarding humanoid shapeshifting. There are rumors that this technology will be field tested on a Nanotrasen station \ + return "The Syndicate has started some experimental research regarding humanoid shapeshifting. There are rumors that this technology will be field tested on a GATO station \ for infiltration purposes. Be advised that support personel may also be deployed to defend these shapeshifters. Trust nobody - suspect everybody. Do not announce this to the crew, \ - as paranoia may spread and inhibit workplace efficiency." + as paranoia may spread and inhibit workplace efficiency." //GS13 - Nanotrasen to GATO diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm index 64de9f2097..5c68756841 100644 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ b/code/game/gamemodes/devil/devil_game_mode.dm @@ -58,8 +58,8 @@ return TRUE /datum/game_mode/devil/generate_report() - return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against Nanotrasen, as all employment contracts contain a lien on the \ - employee's soul. If anyone sells their soul in error, contact an attorney to overrule the sale. Be warned that if the devil purchases enough souls, a gateway to hell may open." + return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against GATO, as all employment contracts contain a lien on the \ + employee's soul. If anyone sells their soul in error, contact an attorney to overrule the sale. Be warned that if the devil purchases enough souls, a gateway to hell may open." //GS13 - Nanotrasen to GATO /datum/game_mode/devil/proc/post_setup_finalize(datum/mind/devil) add_devil(devil.current, ascendable = TRUE) //Devil gamemode devils are ascendable. diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 450950e640..ae4b0866e6 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -263,19 +263,19 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) if(0 to 19) if(!current_players[CURRENT_LIVING_ANTAGS].len) . += "Peaceful Waypoint
" - . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive." + . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through GATO's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive." //GS13 - Nanotrasen to GATO else . += "Core Territory
" - . += "Your station orbits within reliably mundane, secure space. Although Nanotrasen has a firm grip on security in your region, the valuable resources and strategic position aboard your station make it a potential target for infiltrations. Monitor crew for non-loyal behavior, but expect a relatively tame shift free of large-scale destruction. We expect great things from your station." + . += "Your station orbits within reliably mundane, secure space. Although GATO has a firm grip on security in your region, the valuable resources and strategic position aboard your station make it a potential target for infiltrations. Monitor crew for non-loyal behavior, but expect a relatively tame shift free of large-scale destruction. We expect great things from your station." //GS13 - Nanotrasen to GATO if(20 to 39) . += "Anomalous Exogeology
" - . += "Although your station lies within what is generally considered Nanotrasen-controlled space, the course of its orbit has caused it to cross unusually close to exogeological features with anomalous readings. Although these features offer opportunities for our research department, it is known that these little understood readings are often correlated with increased activity from competing interstellar organizations and individuals, among them the Wizard Federation and Cult of the Geometer of Blood - all known competitors for Anomaly Type B sites. Exercise elevated caution." + . += "Although your station lies within what is generally considered GATO-controlled space, the course of its orbit has caused it to cross unusually close to exogeological features with anomalous readings. Although these features offer opportunities for our research department, it is known that these little understood readings are often correlated with increased activity from competing interstellar organizations and individuals, among them the Wizard Federation and Cult of the Geometer of Blood - all known competitors for Anomaly Type B sites. Exercise elevated caution." //GS13 - Nanotrasen to GATO if(40 to 65) . += "Contested System
" - . += "Your station's orbit passes along the edge of Nanotrasen's sphere of influence. While subversive elements remain the most likely threat against your station, hostile organizations are bolder here, where our grip is weaker. Exercise increased caution against elite Syndicate strike forces, or Executives forbid, some kind of ill-conceived unionizing attempt." + . += "Your station's orbit passes along the edge of GATO's sphere of influence. While subversive elements remain the most likely threat against your station, hostile organizations are bolder here, where our grip is weaker. Exercise increased caution against elite Syndicate strike forces, or Executives forbid, some kind of ill-conceived unionizing attempt." //GS13 - Nanotrasen to GATO if(66 to 79) . += "Uncharted Space
" - . += "Congratulations and thank you for participating in the NT 'Frontier' space program! Your station is actively orbiting a high value system far from the nearest support stations. Little is known about your region of space, and the opportunity to encounter the unknown invites greater glory. You are encouraged to elevate security as necessary to protect Nanotrasen assets." + . += "Congratulations and thank you for participating in the GT 'Frontier' space program! Your station is actively orbiting a high value system far from the nearest support stations. Little is known about your region of space, and the opportunity to encounter the unknown invites greater glory. You are encouraged to elevate security as necessary to protect GATO assets." //GS13 - Nanotrasen to GATO if(80 to 99) . += "Black Orbit
" . += "As part of a mandatory security protocol, we are required to inform you that as a result of your orbital pattern directly behind an astrological body (oriented from our nearest observatory), your station will be under decreased monitoring and support. It is anticipated that your extreme location and decreased surveillance could pose security risks. Avoid unnecessary risks and attempt to keep your station in one piece." diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index ab087dceb0..a0a8ad7035 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -417,8 +417,8 @@ If not set, defaults to check_completion instead. Set it. It's used by cryo. /datum/objective/freedom name = "freedom" - explanation_text = "Don't get captured by nanotrasen." - team_explanation_text = "Have all members of your team free of nanotrasen custody." + explanation_text = "Don't get captured by GATO." //GS13 - Nanotrasen to GATO + team_explanation_text = "Have all members of your team free of GATO custody." //GS13 - Nanotrasen to GATO /datum/objective/freedom/check_completion() var/list/datum/mind/owners = get_owners() diff --git a/code/game/gamemodes/traitor/double_agents.dm b/code/game/gamemodes/traitor/double_agents.dm index c64e508cef..2c715379e4 100644 --- a/code/game/gamemodes/traitor/double_agents.dm +++ b/code/game/gamemodes/traitor/double_agents.dm @@ -11,16 +11,16 @@ recommended_enemies = 8 reroll_friendly = 0 chaos = 7 - traitor_name = "Nanotrasen Internal Affairs Agent" + traitor_name = "GATO Internal Affairs Agent" //GS13 - Nanotrasen to GATO antag_flag = ROLE_INTERNAL_AFFAIRS traitors_possible = 10 //hard limit on traitors if scaling is turned off num_modifier = 4 // Four additional traitors antag_datum = /datum/antagonist/traitor/internal_affairs - announce_text = "There are Nanotrasen Internal Affairs Agents trying to kill each other!\n\ + announce_text = "There are GATO Internal Affairs Agents trying to kill each other!\n\ IAA: Eliminate your targets and protect yourself!\n\ - Crew: Stop the IAA agents before they can cause too much mayhem." + Crew: Stop the IAA agents before they can cause too much mayhem." //GS13 - Nanotrasen to GATO @@ -79,5 +79,5 @@ /datum/game_mode/traitor/internal_affairs/generate_report() - return "Nanotrasen denies any accusations of placing internal affairs agents onboard your station to eliminate inconvenient employees. Any further accusations against CentCom for such \ - actions will be met with a conversation with an official internal affairs agent." + return "GATO denies any accusations of placing internal affairs agents onboard your station to eliminate inconvenient employees. Any further accusations against CentCom for such \ + actions will be met with a conversation with an official internal affairs agent." //GS13 - Nanotrasen to GATO diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index a46e4e90c8..d180e43d82 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -97,4 +97,4 @@ /datum/game_mode/traitor/generate_report() return "Although more specific threats are commonplace, you should always remain vigilant for Syndicate agents aboard your station. Syndicate communications have implied that many \ - Nanotrasen employees are Syndicate agents with hidden memories that may be activated at a moment's notice, so it's possible that these agents might not even know their positions." + GATO employees are Syndicate agents with hidden memories that may be activated at a moment's notice, so it's possible that these agents might not even know their positions." //GS13 - Nanotrasen to GATO diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index d06366c021..1919d424ee 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -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..." diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 5395dd6fee..fc4823cbc8 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -102,7 +102,7 @@ return TRUE /obj/machinery/computer/camera_advanced/abductor/can_use(mob/user) - if(!isabductor(user)) + if(check_if_abductor && !isabductor(user)) return FALSE return ..() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index e9bdce6679..e91504d806 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -410,6 +410,12 @@ if(isbrain(mob_occupant)) dna = B.stored_dna + //GS13 Port - DNC + if(HAS_TRAIT(mob_occupant, TRAIT_NEVER_CLONE)) + scantemp = "Subject has an active DNC record on file. Unable to clone." + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) + return + if(!can_scan(dna, mob_occupant, FALSE, has_bank_account)) return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 805ce0c50b..f8a07bd187 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -576,7 +576,7 @@ /obj/machinery/computer/med_data/laptop name = "medical laptop" - desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." + desc = "A cheap GATO medical laptop, it functions as a medical records computer. It's bolted to the table." //GS13 - Nanotrasen to GATO icon_state = "laptop" icon_screen = "medlaptop" icon_keyboard = "laptop_key" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index f8faa5a60a..c68d7c482e 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -25,7 +25,7 @@ /obj/machinery/computer/secure_data/laptop name = "security laptop" - desc = "A cheap Nanotrasen security laptop, it functions as a security records console. It's bolted to the table." + desc = "A cheap GATO security laptop, it functions as a security records console. It's bolted to the table." //GS13 - Nanotrasen to GATO icon_state = "laptop" icon_screen = "seclaptop" icon_keyboard = "laptop_key" @@ -407,7 +407,7 @@ What a mess.*/ if(!( printing )) var/wanted_name = stripped_input(usr, "Please enter an alias for the criminal:", "Print Wanted Poster", active1.fields["name"]) if(wanted_name) - var/default_description = "A poster declaring [wanted_name] to be a dangerous individual, wanted by Nanotrasen. Report any sightings to security immediately." + var/default_description = "A poster declaring [wanted_name] to be a dangerous individual, wanted by GATO. Report any sightings to security immediately." //GS13 - Nanotrasen to GATO var/list/major_crimes = active2.fields["ma_crim"] var/list/minor_crimes = active2.fields["mi_crim"] if(major_crimes.len + minor_crimes.len) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index f6979452ed..8b6ac964d0 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -43,7 +43,7 @@ /obj/machinery/door/airlock name = "airlock" - icon = 'icons/obj/doors/airlocks/station/public.dmi' + 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" - var/overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' - var/note_overlay_file = 'icons/obj/doors/airlocks/station/overlays.dmi' //Used for papers and photos pinned to the airlock + //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='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='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='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='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) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 8cca3790e6..2222ea5cf1 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -6,19 +6,19 @@ abandoned = TRUE /obj/machinery/door/airlock/command - icon = '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 = '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 = '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 @@ -26,13 +26,13 @@ abandoned = TRUE /obj/machinery/door/airlock/medical - icon = '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 = '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 @@ -41,18 +41,18 @@ /obj/machinery/door/airlock/maintenance/external name = "external airlock access" - icon = '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 = '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 = '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 @@ -60,22 +60,22 @@ abandoned = TRUE /obj/machinery/door/airlock/research - icon = '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 = '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 = '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 = '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 @@ -179,7 +179,7 @@ /obj/machinery/door/airlock/gold name = "gold airlock" - icon = '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 @@ -188,7 +188,7 @@ /obj/machinery/door/airlock/silver name = "silver airlock" - icon = '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 @@ -197,7 +197,7 @@ /obj/machinery/door/airlock/diamond name = "diamond airlock" - icon = '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 @@ -209,7 +209,7 @@ /obj/machinery/door/airlock/uranium name = "uranium airlock" - icon = '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 @@ -231,7 +231,7 @@ /obj/machinery/door/airlock/plasma name = "plasma airlock" desc = "No way this can end badly." - icon = '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) @@ -272,7 +272,7 @@ /obj/machinery/door/airlock/bananium name = "bananium airlock" desc = "Honkhonkhonk" - icon = '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' @@ -282,7 +282,7 @@ /obj/machinery/door/airlock/sandstone name = "sandstone airlock" - icon = '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 @@ -291,7 +291,7 @@ /obj/machinery/door/airlock/wood name = "wooden airlock" - icon = '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 @@ -301,8 +301,8 @@ /obj/machinery/door/airlock/titanium name = "shuttle airlock" assemblytype = /obj/structure/door_assembly/door_assembly_titanium - icon = 'icons/obj/doors/airlocks/shuttle/shuttle.dmi' - overlays_file = '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 @@ -312,8 +312,8 @@ /obj/machinery/door/airlock/bronze name = "bronze airlock" - icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi' - overlays_file = '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 @@ -327,8 +327,8 @@ */ /obj/machinery/door/airlock/public - icon = 'icons/obj/doors/airlocks/station2/glass.dmi' - overlays_file = '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 @@ -356,9 +356,9 @@ /obj/machinery/door/airlock/external name = "external airlock" - icon = 'icons/obj/doors/airlocks/external/external.dmi' - overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' - note_overlay_file = '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 @@ -371,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 = 'icons/obj/doors/airlocks/centcom/centcom.dmi' - overlays_file = '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 = 'icons/obj/doors/airlocks/centcom/centcom.dmi' - overlays_file = '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 @@ -393,8 +393,8 @@ /obj/machinery/door/airlock/vault name = "vault door" - icon = 'icons/obj/doors/airlocks/vault/vault.dmi' - overlays_file = '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 @@ -408,16 +408,16 @@ /obj/machinery/door/airlock/hatch name = "airtight hatch" - icon = 'icons/obj/doors/airlocks/hatch/centcom.dmi' - overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' - note_overlay_file = '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 = 'icons/obj/doors/airlocks/hatch/maintenance.dmi' - overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' - note_overlay_file = '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 @@ -430,8 +430,8 @@ /obj/machinery/door/airlock/highsecurity name = "high tech security airlock" - icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' - overlays_file = '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 @@ -445,8 +445,8 @@ /obj/machinery/door/airlock/shuttle name = "shuttle airlock" - icon = 'icons/obj/doors/airlocks/shuttle/shuttle.dmi' - overlays_file = '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 @@ -456,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 = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' - overlays_file = '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 = '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 @@ -474,8 +474,8 @@ /obj/machinery/door/airlock/cult name = "cult airlock" - icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' - overlays_file = '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 @@ -524,8 +524,8 @@ return FALSE /obj/machinery/door/airlock/cult/proc/conceal() - icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' - overlays_file = '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 @@ -556,8 +556,8 @@ friendly = TRUE /obj/machinery/door/airlock/cult/unruned - icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' - overlays_file = '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 @@ -699,8 +699,8 @@ /obj/machinery/door/airlock/glass_large name = "large glass airlock" - icon = 'icons/obj/doors/airlocks/glass_large/glass_large.dmi' - overlays_file = '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 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 46a4063c77..f16b16d79f 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -426,7 +426,7 @@ /obj/machinery/door/firedoor/window name = "window shutter" icon = 'icons/obj/doors/doorfirewindow.dmi' - desc = "A second window that slides in when the original window is broken, designed to protect against hull breaches. Truly a work of genius by NT engineers." + desc = "A second window that slides in when the original window is broken, designed to protect against hull breaches. Truly a work of genius by GT engineers." //GS13 - NT to GT glass = TRUE explosion_block = 0 max_integrity = 50 diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 63ead98b61..9d265e981b 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -1,7 +1,7 @@ /obj/machinery/door/poddoor name = "blast door" desc = "A heavy duty blast door that opens mechanically." - icon = 'icons/obj/doors/blastdoor.dmi' + icon = 'GainStation13/icons/obj/doors/blastdoor.dmi' //GS13 Edit: perspective sprites icon_state = "closed" var/id = 1 layer = BLASTDOOR_LAYER diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index dda494f2ea..1eeec0fd74 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -135,11 +135,11 @@ if(!src || QDELETED(src)) teleporting = FALSE return - if(machine_stat & NOPOWER) + if(needs_power && (machine_stat & NOPOWER)) // GS13 EDIT to_chat(user, "[src] is unpowered!") teleporting = FALSE return - if(!target_pad || QDELETED(target_pad) || target_pad.machine_stat & NOPOWER) + if(!target_pad || QDELETED(target_pad) || (target_pad.needs_power && (target_pad.machine_stat & NOPOWER))) // GS13 EDIT to_chat(user, "Linked pad is not responding to ping. Teleport aborted.") teleporting = FALSE return diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index d9b110e8c4..de9a6b1d2b 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -296,7 +296,7 @@ /obj/item/bombcore/training name = "dummy payload" - desc = "A Nanotrasen replica of a syndicate payload. Its not intended to explode but to announce that it WOULD have exploded, then rewire itself to allow for more training." + desc = "A GATO replica of a syndicate payload. Its not intended to explode but to announce that it WOULD have exploded, then rewire itself to allow for more training." //GS13 - Nanotrasen to GATO var/defusals = 0 var/attempts = 0 diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index ebe172d2d7..e44b1b7191 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -74,6 +74,8 @@ if(do_teleport(M, com.target, channel = TELEPORT_CHANNEL_BLUESPACE)) use_power(5000) + //GS13 EDIT + /* if(!calibrated && iscarbon(M) && prob(30 - ((accuracy) * 10))) //oh dear a problem var/mob/living/carbon/C = M if(C.dna?.species && C.dna.species.id != "fly" && !HAS_TRAIT(C, TRAIT_RADIMMUNE)) @@ -81,6 +83,7 @@ C.set_species(/datum/species/fly) log_game("[C] ([key_name(C)]) was turned into a fly person") C.apply_effect((rand(120 - accuracy * 40, 180 - accuracy * 60)), EFFECT_IRRADIATE, 0) + */ calibrated = FALSE return diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 222a5cc455..0577bd8f9f 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -180,7 +180,7 @@ /obj/structure/sign/poster/contraband poster_item_name = "contraband poster" - poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities." + poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard GATO space facilities." //GS13 - Nanotrasen to GATO poster_item_icon_state = "rolled_contraband" /obj/structure/sign/poster/contraband/random @@ -236,17 +236,17 @@ /obj/structure/sign/poster/contraband/missing_gloves name = "Missing Gloves" - desc = "This poster references the uproar that followed Nanotrasen's financial cuts toward insulated-glove purchases." + desc = "This poster references the uproar that followed GATO's financial cuts toward insulated-glove purchases." //GS13 - Nanotrasen to GATO icon_state = "poster_gloves" /obj/structure/sign/poster/contraband/hacking_guide name = "Hacking Guide" - desc = "This poster details the internal workings of the common Nanotrasen airlock. Sadly, it appears out of date." + desc = "This poster details the internal workings of the common GATO airlock. Sadly, it appears out of date." //GS13 - Nanotrasen to GATO icon_state = "poster_hack" /obj/structure/sign/poster/contraband/rip_badger name = "RIP Badger" - desc = "This seditious poster references Nanotrasen's genocide of a space station full of badgers." + desc = "This seditious poster references GATO's genocide of a space station full of badgers." //GS13 - Nanotrasen to GATO icon_state = "poster_badger" /obj/structure/sign/poster/contraband/ambrosia_vulgaris @@ -271,7 +271,7 @@ /obj/structure/sign/poster/contraband/power name = "Power" - desc = "A poster that positions the seat of power outside Nanotrasen." + desc = "A poster that positions the seat of power outside GATO." //GS13 - Nanotrasen to GATO icon_state = "poster_power" /obj/structure/sign/poster/contraband/space_cube @@ -306,7 +306,7 @@ /obj/structure/sign/poster/contraband/rebels_unite name = "Rebels Unite" - desc = "A poster urging the viewer to rebel against Nanotrasen." + desc = "A poster urging the viewer to rebel against GATO." //GS13 - Nanotrasen to GATO icon_state = "poster_rebel" /obj/structure/sign/poster/contraband/have_a_puff @@ -437,12 +437,12 @@ /obj/structure/sign/poster/contraband/scum name = "Security are Scum" - desc = "Anti-security propaganda. Features a human NanoTrasen security officer being shot in the head, with the words 'Scum' and a short inciteful manifesto. Used to anger security." + desc = "Anti-security propaganda. Features a human GATO security officer being shot in the head, with the words 'Scum' and a short inciteful manifesto. Used to anger security." //GS13 - Nanotrasen to GATO icon_state = "poster_scum" /obj/structure/sign/poster/contraband/manifest - name = "Nanotrasen Manifest" - desc = "A poster listing off various fictional claims of Nanotrasen's many rumored corporate mishaps." + name = "GATO Manifest" //GS13 - Nanotrasen to GATO + desc = "A poster listing off various fictional claims of GATO's many rumored corporate mishaps." //GS13 - Nanotrasen to GATO icon_state = "poster_manifest" /obj/structure/sign/poster/contraband/bountyhunters @@ -482,7 +482,7 @@ /obj/structure/sign/poster/official poster_item_name = "motivational poster" - poster_item_desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface." + poster_item_desc = "An official GATO-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface." //GS13 - Nanotrasen to GATO poster_item_icon_state = "rolled_legit" /obj/structure/sign/poster/official/random @@ -618,7 +618,7 @@ /obj/structure/sign/poster/official/anniversary_vintage_reprint name = "50th Anniversary Vintage Reprint" - desc = "A reprint of a poster from 2505, commemorating the 50th Anniversary of Nanoposters Manufacturing, a subsidiary of Nanotrasen." + desc = "A reprint of a poster from 2505, commemorating the 50th Anniversary of Gatoposters Manufacturing, a subsidiary of GATO." //GS13 - Nanotrasen to GATO icon_state = "poster_vintage" /obj/structure/sign/poster/official/fruit_bowl @@ -628,22 +628,22 @@ /obj/structure/sign/poster/official/pda_ad name = "PDA Ad" - desc = "A poster advertising the latest PDA from Nanotrasen suppliers." + desc = "A poster advertising the latest PDA from GATO suppliers." //GS13 - Nanotrasen to GATO icon_state = "poster_pda" /obj/structure/sign/poster/official/pda_ad600 - name = "NT PDA600 Ad" - desc = "A poster advertising an old discounted Nanotrasen PDA. This is the old 600 model, it has a small screen and suffered from security and networking issues." + name = "GT PDA600 Ad" //GS13 - NT to GT + desc = "A poster advertising an old discounted GATO PDA. This is the old 600 model, it has a small screen and suffered from security and networking issues." //GS13 - Nanotrasen to GATO icon_state = "poster_retro" /obj/structure/sign/poster/official/pda_ad800 - name = "NT PDA800 Ad" - desc = "An advertisement on an old Nanotrasen PDA model. The 800 fixed a lot of security flaws that the 600 had; it also had large touchscreen and hot-swappable cartridges." + name = "GT PDA800 Ad" //GS13 - NT to GT + desc = "An advertisement on an old GATO PDA model. The 800 fixed a lot of security flaws that the 600 had; it also had large touchscreen and hot-swappable cartridges." //GS13 - Nanotrasen to GATO icon_state = "poster_classic" /obj/structure/sign/poster/official/enlist name = "Enlist" - desc = "Enlist in the Nanotrasen Jannisary reserves today!" + desc = "Enlist in the GATO Jannisary reserves today!" //GS13 - Nanotrasen to GATO icon_state = "poster_enlist" /obj/structure/sign/poster/official/nanomichi_ad @@ -668,7 +668,7 @@ /obj/structure/sign/poster/official/no_erp name = "No ERP" - desc = "This poster reminds the crew that Eroticism, Rape and Pornography are banned on Nanotrasen stations." + desc = "This poster reminds the crew that Eroticismand Pornography aren't encouraged in public." icon_state = "poster_noerp" /obj/structure/sign/poster/official/wtf_is_co2 @@ -697,12 +697,12 @@ icon_state = "poster_medical" /obj/structure/sign/poster/official/nt_storm_officer - name = "NT Storm Ad" + name = "GT Storm Ad" //GS13 - NT to GT desc = "An advertisement for NanoTrasen Storm. A premium infantry helmet, This is the officer variant. I comes with a better radio, better HUD software and better targeting sensors." icon_state = "poster_stormy" /obj/structure/sign/poster/official/nt_storm - name = "NT Storm Ad" + name = "GT Storm Ad" //GS13 - NT to GT desc = "An advertisement for NanoTrasen Storm. A premium infantry helmet, It contains a rebreather and full head coverage for use on harsh environments where the air isn't always safe to breathe." icon_state = "poster_stormier" diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 7033284a86..4010ceea23 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -288,6 +288,7 @@ /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" icon_state = "plasma_old" + color = "#9e0089" /obj/effect/decal/cleanable/glitter/white name = "white glitter" @@ -296,6 +297,7 @@ /obj/effect/decal/cleanable/glitter/blue name = "blue glitter" icon_state = "freon_old" + color = "#2dd6ff" /obj/effect/decal/cleanable/plasma name = "stabilized plasma" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e437ac5c8b..9db3090d66 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -181,6 +181,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /// Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example. var/throw_verb + //GS13 Port - Hyper, for clothes that reveal your behind! butt stuff, you know how it is. + var/do_not_cover_butt = FALSE + /obj/item/Initialize(mapload) if(attack_verb) diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 1906f85a6f..3259c17641 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -362,7 +362,7 @@ AI MODULES /obj/item/ai_module/core/full/asimov name = "'Asimov' Core AI Module" law_id = "asimov" - var/subject = "person of an NT approved crew species" //CITADEL CHANGED FROM HUMANS! + var/subject = "person of an GT approved crew species" //CITADEL CHANGED FROM HUMANS! //GS13 - NT to GT /obj/item/ai_module/core/full/asimov/attack_self(var/mob/user as mob) var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to whom?", subject) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 61641e1d49..129e1cb8be 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -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 @@ -668,6 +690,7 @@ RLD icon_state = "arcd" item_state = "oldrcd" has_ammobar = FALSE + upgrade = TRUE // RAPID LIGHTING DEVICE diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index e891b2f7d5..a6caafd342 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -45,7 +45,7 @@ desc = "Blueprints of the station. There is a \"Classified\" stamp and several coffee stains on it." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "blueprints" - fluffnotice = "Property of Nanotrasen. For heads of staff only. Store in high-secure storage." + fluffnotice = "Property of GATO. For heads of staff only. Store in high-secure storage." //GS13 - Nanotrasen to GATO resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/list/image/showing = list() var/client/viewing diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 328ca30772..4e284f3018 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -125,7 +125,7 @@ /obj/item/station_charter/flag - name = "nanotrasen banner" + name = "GATO banner" //GS13 - Nanotrasen to GATO icon = 'icons/obj/items_and_weapons.dmi' name_type = "planet" icon_state = "banner" @@ -141,7 +141,7 @@ minor_announce("[ureal_name] has designated the planet as [station_name()]", "Captain's Banner", 0) log_game("[ukey] has renamed the planet as [station_name()].") name = "banner of [station_name()]" - desc = "The banner bears the official coat of arms of Nanotrasen, signifying that [station_name()] has been claimed by Captain [uname] in the name of the company." + desc = "The banner bears the official coat of arms of GATO, signifying that [station_name()] has been claimed by Captain [uname] in the name of the company." //GS13 - Nanotrasen to GATO SSblackbox.record_feedback("text", "station_renames", 1, "[station_name()]") if(!unlimited_uses) used = TRUE diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 58d9627476..d72b335386 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -582,7 +582,7 @@ build_path = /obj/machinery/computer/cargo/request /obj/item/circuitboard/computer/bounty - name = "Nanotrasen Bounty Console (Computer Board)" + name = "GATO Bounty Console (Computer Board)" //GS13 - Nanotrasen to GATO build_path = /obj/machinery/computer/bounty /obj/item/circuitboard/computer/ferry diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index d8d471abaf..0a97c2ef41 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -32,6 +32,11 @@ AddComponent(/datum/component/slippery, 80) /obj/item/soap/nanotrasen + desc = "A Nanotrasen brand bar of soap. Smells of plasma." + icon = 'GainStation13/icons/obj/items_and_weapons.dmi' //GS13 - sorry not sorry, but it's just easier to replace this sprite instead of rebranding all instances of nanotrasen soap + icon_state = "soapgt" + +/obj/item/soap/nanotrasenreal //GS13 - this is the real NT soap :3 desc = "A Nanotrasen brand bar of soap. Smells of plasma." icon_state = "soapnt" diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index b228e64736..a678f228ec 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -24,7 +24,7 @@ dumped = TRUE /obj/structure/checkoutmachine - name = "\improper Nanotrasen Space-Coin Market" + name = "\improper GATO Space-Coin Market" //GS13 - Nanotrasen to GATO desc = "This is good for spacecoin because" icon = 'icons/obj/money_machine.dmi' icon_state = "bogdanoff" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index e9c02ebc90..9893982c6a 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -103,7 +103,7 @@ /obj/item/cartridge/lawyer name = "\improper S.P.A.M. cartridge" - desc = "Introducing the Station Public Announcement Messenger cartridge, featuring the unique ability to broadcast-mark messages, designed for lawyers across Nanotrasen to advertise their useful and important services." + desc = "Introducing the Station Public Announcement Messenger cartridge, featuring the unique ability to broadcast-mark messages, designed for lawyers across GATO to advertise their useful and important services." //GS13 - Nanotrasen to GATO icon_state = "cart-law" access = CART_SECURITY spam_enabled = 1 diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 3f64be4729..749b9e7240 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -269,7 +269,7 @@ /obj/item/flashlight/flare name = "flare" - desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." + desc = "A red GATO issued flare. There are instructions on the side, it reads 'pull cord, make light'." //GS13 - Nanotrasen to GATO w_class = WEIGHT_CLASS_SMALL brightness_on = 7 // Pretty bright. total_mass = 0.8 diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 579f9e888d..d1273a39ed 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -65,7 +65,7 @@ /obj/item/gps/internal/base gpstag = "NT_AUX" - desc = "A homing signal from Nanotrasen's mining base." + desc = "A homing signal from GATO's mining base." //GS13 - Nanotrasen to GATO /obj/item/gps/visible_debug name = "visible GPS" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 8403ea30e7..5203a43dfd 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -241,7 +241,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/headset_cent name = "\improper CentCom headset" - desc = "A headset used by the upper echelons of Nanotrasen." + desc = "A headset used by the upper echelons of GATO." //GS13 - Nanotrasen to GATO icon_state = "cent_headset" keyslot = new /obj/item/encryptionkey/headset_com keyslot2 = new /obj/item/encryptionkey/headset_cent diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index bcc9539da1..7b31c8ad8d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -203,6 +203,7 @@ if(!language) language = M.get_selected_language() INVOKE_ASYNC(src, PROC_REF(talk_into_impl), M, message, channel, spans.Copy(), language) + playsound(src, 'GainStation13/sound/voice/radioin.ogg', 25, 0) //GS13 EDIT return ITALICS | REDUCE_RANGE /obj/item/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans, datum/language/language) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 0c4f4a5bc1..291b9e21d4 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -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 += "Base Species: [H.spec_trait_examine_font()][S.name]\n" if(mutant) msg += "Subject has mutations present.\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 += "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)\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 diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index 1172b50377..10f8c3f5d8 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -13,7 +13,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/documents/nanotrasen - desc = "\"Top Secret\" Nanotrasen documents, filled with complex diagrams and lists of names, dates and coordinates." + desc = "\"Top Secret\" GATO documents, filled with complex diagrams and lists of names, dates and coordinates." //GS13 - Nanotrasen to GATO icon_state = "docs_verified" /obj/item/documents/syndicate diff --git a/code/game/objects/items/implants/implant_exile.dm b/code/game/objects/items/implants/implant_exile.dm index 9b68206338..c6aba15231 100644 --- a/code/game/objects/items/implants/implant_exile.dm +++ b/code/game/objects/items/implants/implant_exile.dm @@ -6,9 +6,9 @@ desc = "Prevents you from returning from away missions." activated = 0 -/obj/item/implant/exile/get_data() +/obj/item/implant/exile/get_data() //GS13 - Nanotrasen to GATO var/dat = {"Implant Specifications:
- Name: Nanotrasen Employee Exile Implant
+ Name: GATO Employee Exile Implant
Implant Details: The onboard gateway system has been modified to reject entry by individuals containing this implant
"} return dat diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index 14a49c1a00..9a314a9274 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -3,9 +3,9 @@ desc = "Protects against brainwashing." activated = 0 -/obj/item/implant/mindshield/get_data() +/obj/item/implant/mindshield/get_data() //GS13 - Nanotrasen to GATO var/dat = {"Implant Specifications:
- Name: Nanotrasen Employee Management Implant
+ Name: GATO Employee Management Implant
Life: Ten years.
Important Notes: Personnel injected with this device are much more resistant to brainwashing.

diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index 263aab4039..115ac8641c 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -173,7 +173,7 @@ auto_inject = FALSE auto_replenish = FALSE special = TRUE - var/objective = "Obey the law. Praise Nanotrasen." + var/objective = "Obey the law. Praise GATO." //GS13 - Nanotrasen to GATO var/custom = FALSE /obj/machinery/implantchair/brainwash/implant_action(mob/living/C,mob/user) diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm index 9daee7b4f1..8ab101ef4e 100644 --- a/code/game/objects/items/mail.dm +++ b/code/game/objects/items/mail.dm @@ -154,12 +154,12 @@ . += span_notice("You notice the postmarking on the front of the mail...") var/datum/mind/recipient = recipient_ref.resolve() if(recipient) - . += span_info("[postmarked ? "Certified NT" : "Uncertified"] mail for [recipient].") + . += span_info("[postmarked ? "Certified GT" : "Uncertified"] mail for [recipient].") //GS13 - NT to GT else if(postmarked) . += span_info("Certified mail for [GLOB.station_name].") else . += span_info("This is a dead letter mail with no recipient.") - . += span_info("Distribute by hand or via destination tagger using the certified NT disposal system.") + . += span_info("Distribute by hand or via destination tagger using the certified GT disposal system.") //GS13 - NT to GT /// Accepts a mind to initialize goodies for a piece of mail. /obj/item/mail/proc/initialize_for_recipient(datum/mind/recipient) @@ -220,9 +220,9 @@ var/list/junk_names = list( /obj/item/paper/pamphlet/gateway = "[initial(name)] for [pick(GLOB.adjectives)] adventurers", /obj/item/paper/pamphlet/violent_video_games = "[initial(name)] for the truth about the arcade centcom doesn't want to hear", - /obj/item/paper/fluff/junkmail_redpill = "[initial(name)] for those feeling [pick(GLOB.adjectives)] working at Nanotrasen", + /obj/item/paper/fluff/junkmail_redpill = "[initial(name)] for those feeling [pick(GLOB.adjectives)] working at GATO", /obj/effect/decal/cleanable/ash = "[initial(name)] with INCREDIBLY IMPORTANT ARTIFACT- DELIVER TO SCIENCE DIVISION. HANDLE WITH CARE.", - ) + )//GS13 - Nanotrasen to GATO color = pick(department_colors) //eh, who gives a shit. name = special_name ? junk_names[junk] : "important [initial(name)]" diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 3bd13b3905..14ec3118ab 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -43,7 +43,7 @@ "} -/obj/item/book/manual/ripley_build_and_repair +/obj/item/book/manual/ripley_build_and_repair //GS13 - Nanotrasen to GATO name = "APLU \"Ripley\" Construction and Operation Manual" icon_state ="book" author = "Weyland-Yutani Corp" @@ -95,10 +95,10 @@
  • Secure the mainboard with a screwdriver.
  • Install the peripherals control module (Not included. Use supplied datadisk to create one).
  • Secure the peripherals control module with a screwdriver
  • -
  • Install the internal armor plating (Not included due to Nanotrasen regulations. Can be made using 5 metal sheets.)
  • +
  • Install the internal armor plating (Not included due to GATO regulations. Can be made using 5 metal sheets.)
  • Secure the internal armor plating with a wrench
  • Weld the internal armor plating to the chassis
  • -
  • Install the external reinforced armor plating (Not included due to Nanotrasen regulations. Can be made using 5 reinforced metal sheets.)
  • +
  • Install the external reinforced armor plating (Not included due to GATO regulations. Can be made using 5 reinforced metal sheets.)
  • Secure the external reinforced armor plating with a wrench
  • Weld the external reinforced armor plating to the chassis
  • @@ -108,13 +108,13 @@
  • Internal armor is plasteel for additional strength.
  • External armor must be installed in 2 parts, totaling 10 sheets.
  • Completed mech is more resiliant against fire, and is a bit more durable overall
  • -
  • Nanotrasen is determined to the safety of its investments employees.
  • +
  • GATO is determined to the safety of its investments employees.
  • Operation

    - Please consult the Nanotrasen compendium "Robotics for Dummies". + Please consult the GATO compendium "Robotics for Dummies". "} /obj/item/book/manual/chef_recipes @@ -199,7 +199,7 @@ "} -/obj/item/book/manual/nuclear +/obj/item/book/manual/nuclear //GS13 - Nanotrasen to GATO name = "Fission Mailed: Nuclear Sabotage 101" icon_state ="bookNuclear" author = "Syndicate" @@ -211,7 +211,7 @@ Nuclear Explosives 101:
    Hello and thank you for choosing the Syndicate for your nuclear information needs.
    - Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.
    + Today's crash course will deal with the operation of a Fusion Class GATO made Nuclear Device.
    First and foremost, DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.
    Pressing any button on the compacted bomb will cause it to extend and bolt itself into place.
    If this is done to unbolt it one must completely log in which at this time may not be possible.
    @@ -223,7 +223,7 @@
  • Press the E button to log onto the device.
  • You now have activated the device. To deactivate the buttons at anytime for example when you've already prepped the bomb for detonation remove the auth disk OR press the R on the keypad.
    Now the bomb CAN ONLY be detonated using the timer. Manual detonation is not an option.
    - Note: Nanotrasen is a pain in the neck.
    + Note: GATO is a pain in the neck.
    Toggle off the SAFETY.
    Note: You wouldn't believe how many Syndicate Operatives with doctorates have forgotten this step.
    So use the - - and + + to set a det time between 5 seconds and 10 minutes.
    @@ -234,7 +234,7 @@ Toggle off the anchor, move it, and re-anchor.

    Good luck. Remember the order:
    Disk, Code, Safety, Timer, Disk, RUN!
    - Intelligence Analysts believe that normal Nanotrasen procedure is for the Captain to secure the nuclear authorisation disk.
    + Intelligence Analysts believe that normal GATO procedure is for the Captain to secure the nuclear authorisation disk.
    Good luck! "} @@ -282,7 +282,7 @@ /obj/item/book/manual/wiki/cit name = "Citadel infobook" icon_state ="book8" - author = "Nanotrasen" + author = "GATO" //GS13 - Nanotrasen to GATO title = "Citadel infobook" page_link = "" window_size = "1500x800" //Too squashed otherwise @@ -318,7 +318,7 @@ /obj/item/book/manual/wiki/cit/chemistry name = "Chemistry Textbook" icon_state ="chemistrybook" - author = "Nanotrasen" + author = "GATO" //GS13 - Nanotrasen to GATO title = "Chemistry Textbook" page_link = "main/guides/guide_chemistry" @@ -332,7 +332,7 @@ /obj/item/book/manual/wiki/chemistry name = "Outdated Chemistry Textbook" icon_state ="chemistrybook_old" - author = "Nanotrasen" + author = "GATO" //GS13 - Nanotrasen to GATO title = "Outdated Chemistry Textbook" page_link = "Guide_to_chemistry" @@ -364,9 +364,9 @@ /obj/item/book/manual/wiki/security_space_law name = "Space Law" - desc = "A set of Nanotrasen guidelines for keeping law and order on their space stations." + desc = "A set of GATO guidelines for keeping law and order on their space stations." //GS13 - Nanotrasen to GATO icon_state = "bookSpaceLaw" - author = "Nanotrasen" + author = "GATO" //GS13 - Nanotrasen to GATO title = "Space Law" page_link = "Space_Law" @@ -398,7 +398,7 @@ /obj/item/book/manual/wiki/detective name = "The Film Noir: Proper Procedures for Investigations" icon_state ="bookDetective" - author = "Nanotrasen" + author = "GATO" //GS13 - Nanotrasen to GATO title = "The Film Noir: Proper Procedures for Investigations" page_link = "Detective" diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index bd03698cd7..b2bb140dad 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -1,6 +1,6 @@ /obj/item/banner name = "banner" - desc = "A banner with Nanotrasen's logo on it." + desc = "A banner with GATO's logo on it." //GS13 - Nanotrasen to GATO icon = 'icons/obj/items_and_weapons.dmi' icon_state = "banner" item_state = "banner" @@ -140,7 +140,7 @@ desc = "The banner of Command, a staunch and ancient line of bueraucratic kings and queens." //No icon state here since the default one is the NT banner job_loyalties = list("Captain", "Head of Personnel", "Chief Engineer", "Head of Security", "Research Director", "Chief Medical Officer") - warcry = "Hail Nanotrasen!" + warcry = "Hail GATO!" //GS13 - Nanotrasen to GATO /obj/item/banner/command/mundane inspiration_available = FALSE @@ -161,8 +161,8 @@ desc = "A banner with the logo of the blue deity." /obj/item/storage/backpack/bannerpack - name = "nanotrasen banner backpack" - desc = "It's a backpack with lots of extra room. A banner with Nanotrasen's logo is attached, that can't be removed." + name = "GATO banner backpack" //GS13 - Nanotrasen to GATO + desc = "It's a backpack with lots of extra room. A banner with GATO's logo is attached, that can't be removed." //GS13 - Nanotrasen to GATO icon_state = "bannerpack" /obj/item/storage/backpack/bannerpack/Initialize(mapload) diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index 200b803b83..5f4ed8dbc6 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -130,7 +130,7 @@ /obj/item/spear/grey_tide icon_state = "spearglass0" name = "\improper Grey Tide" - desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." + desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among GATO military forces." //GS13 - Nanotrasen to GATO throwforce = 20 throw_speed = 4 attack_verb = list("gored") diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 90c65293f7..8d96b2c88e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("double bed", /obj/structure/bed/double, 4, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("scale", /obj/structure/scale, 3, one_per_turf = TRUE, on_floor = TRUE), \ //CIT CHANGE - adds sofas to metal recipe list new/datum/stack_recipe_list("sofas", list( \ new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 7b5e1b61df..0d0d846fef 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -137,7 +137,7 @@ /obj/item/storage/backpack/captain name = "captain's backpack" - desc = "It's a special backpack made exclusively for Nanotrasen officers." + desc = "It's a special backpack made exclusively for GATO officers." //GS13 - Nanotrasen to GATO icon_state = "captainpack" item_state = "captainpack" resistance_flags = FIRE_PROOF @@ -269,7 +269,7 @@ /obj/item/storage/backpack/satchel/cap name = "captain's satchel" - desc = "An exclusive satchel for Nanotrasen officers." + desc = "An exclusive satchel for GATO officers." //GS13 - Nanotrasen to GATO icon_state = "satchel-cap" item_state = "captainpack" resistance_flags = FIRE_PROOF @@ -515,7 +515,7 @@ STR.silent = TRUE /obj/item/storage/backpack/duffelbag/syndie/hitman - desc = "A large duffel bag for holding extra things. There is a Nanotrasen logo on the back." + desc = "A large duffel bag for holding extra things. There is a GATO logo on the back." //GS13 - Nanotrasen to GATO icon_state = "duffel-syndieammo" item_state = "duffel-syndieammo" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index e080310b68..de9d3cca68 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -262,7 +262,7 @@ /obj/item/storage/bag/sheetsnatcher name = "sheet snatcher" - desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." + desc = "A patented GATO storage system designed for any kind of mineral sheet." //GS13 - Nanotrasen to GATO icon = 'icons/obj/mining.dmi' icon_state = "sheetsnatcher" @@ -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) /* diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index e57917098d..33beb9972e 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1282,7 +1282,7 @@ new /obj/item/tank/internals/emergency_oxygen/engi(src) //in case anyone ever wants to do anything with spawning them, apart from crafting the box /obj/item/storage/box/mre //base MRE type. - name = "Nanotrasen MRE Ration Kit Menu 0" + name = "GATO MRE Ration Kit Menu 0" //GS13 - Nanotrasen to GATO desc = "A package containing food suspended in an outdated bluespace pocket which lasts for centuries. If you're lucky you may even be able to enjoy the meal without getting food poisoning." icon_state = "mre" illustration = null @@ -1308,7 +1308,7 @@ S.foodtype |= TOXIC /obj/item/storage/box/mre/menu1 - name = "\improper Nanotrasen MRE Ration Kit Menu 1" + name = "\improper GATO MRE Ration Kit Menu 1" //GS13 - Nanotrasen to GATO /obj/item/storage/box/mre/menu1/safe desc = "A package containing food suspended in a bluespace pocket capable of lasting till the end of time." @@ -1323,7 +1323,7 @@ new /obj/item/tank/internals/emergency_oxygen(src) /obj/item/storage/box/mre/menu2 - name = "\improper Nanotrasen MRE Ration Kit Menu 2" + name = "\improper GATO MRE Ration Kit Menu 2" //GS13 - Nanotrasen to GATO /obj/item/storage/box/mre/menu2/safe spawner_chance = 0 @@ -1338,8 +1338,8 @@ new /obj/item/tank/internals/emergency_oxygen(src) /obj/item/storage/box/mre/menu3 - name = "\improper Nanotrasen MRE Ration Kit Menu 3" - desc = "The holy grail of MREs. This item contains the fabled MRE pizza, spicy nachos and a sample of coffee instant type 2. Any NT employee lucky enough to get their hands on one of these is truly blessed." + name = "\improper GATO MRE Ration Kit Menu 3" //GS13 - Nanotrasen to GATO + desc = "The holy grail of MREs. This item contains the fabled MRE pizza, spicy nachos and a sample of coffee instant type 2. Any GT employee lucky enough to get their hands on one of these is truly blessed." //GS13 - NT to GT icon_state = "menu3" can_expire = FALSE //always fresh, never expired. spawner_chance = 1 @@ -1353,7 +1353,7 @@ new /obj/item/tank/internals/emergency_oxygen(src) /obj/item/storage/box/mre/menu4 - name = "\improper Nanotrasen MRE Ration Kit Menu 4" + name = "\improper GATO MRE Ration Kit Menu 4" //GS13 - Nanotrasen to GATO /obj/item/storage/box/mre/menu4/safe spawner_chance = 0 diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index f06ef673b5..b5585cff3b 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -329,7 +329,7 @@ /obj/item/storage/fancy/rollingpapers name = "rolling paper pack" - desc = "A pack of Nanotrasen brand rolling papers." + desc = "A pack of GATO brand rolling papers." //GS13 - Nanotrasen to GATO w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/cigarettes.dmi' icon_state = "cig_paper_pack" diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 736dec1349..8ee4651c16 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -104,8 +104,8 @@ toolspeed = 0.25 icon_state = "screwdriver_nt" -/obj/item/paper/guides/antag/nuke_instructions - info = "How to break into a Nanotrasen self-destruct terminal and remove its plutonium core:
    \ +/obj/item/paper/guides/antag/nuke_instructions //GS13 - Nanotrasen to GATO + info = "How to break into a GATO self-destruct terminal and remove its plutonium core:
    \
      \
    • Use a screwdriver with a very thin tip (provided) to unscrew the terminal's front panel
    • \
    • Dislodge and remove the front panel with a crowbar
    • \ diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index b1a1bb3619..4010148518 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -1,7 +1,7 @@ #define WELDER_FUEL_BURN_INTERVAL 13 /obj/item/weldingtool name = "welding tool" - desc = "A standard edition welder provided by Nanotrasen." + desc = "A standard edition welder provided by GATO." //GS13 - Nanotrasen to GATO icon = 'icons/obj/tools.dmi' icon_state = "welder" item_state = "welder" diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 3ea05d3fbd..e4c0332595 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -114,7 +114,7 @@ /obj/item/toy/syndicateballoon name = "syndicate balloon" - desc = "There is a tag on the back that reads \"FUK NT!11!\"." + desc = "There is a tag on the back that reads \"FUK GT!11!\"." //GS13 - NT to GT icon = 'icons/obj/items_and_weapons.dmi' icon_state = "syndballoon" item_state = "syndballoon" diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 857f3d8f4a..2327f5846b 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -29,6 +29,7 @@ /obj/item/trash/popcorn name = "popcorn" + icon = 'GainStation13/icons/obj/janitor.dmi' //GS13 - GATO palette icon_state = "popcorn" /obj/item/trash/sosjerky diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index ba854e7ec2..6a5d1e11c2 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -160,6 +160,7 @@ buildstacktype = null //Custom mats handle this /obj/structure/chair/wood + 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." @@ -539,6 +540,7 @@ /obj/item/chair/wood name = "wooden chair" + icon = 'GainStation13/icons/obj/chairs.dmi' //GS13 Edit: Our sprites icon_state = "wooden_chair_toppled" item_state = "woodenchair" resistance_flags = FLAMMABLE diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index b7968d84f4..9349a68095 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -1,6 +1,8 @@ +//GS13 EDIT, we changed the default sofa sprite here. + /obj/structure/chair/sofa name = "old ratty sofa" - icon_state = "sofamiddle" + icon_state = "corp_sofamiddle" icon = 'icons/obj/sofa.dmi' buildstackamount = 1 item_chair = null @@ -25,13 +27,13 @@ update_armrest() /obj/structure/chair/sofa/left - icon_state = "sofaend_left" + icon_state = "corp_sofaend_left" /obj/structure/chair/sofa/right - icon_state = "sofaend_right" + icon_state = "corp_sofaend_right" /obj/structure/chair/sofa/corner - icon_state = "sofacorner" + icon_state = "corp_sofacorner" /obj/structure/chair/sofa/corner/handle_layer() //only the armrest/back of this chair should cover the mob. return diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 3af0d0278a..f479769dbf 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -103,7 +103,7 @@ /obj/structure/closet/wardrobe/chaplain_black name = "chapel wardrobe" - desc = "It's a storage unit for Nanotrasen-approved religious attire." + desc = "It's a storage unit for GATO-approved religious attire." //GS13 - Nanotrasen to GATO icon_door = "black" /obj/structure/closet/wardrobe/chaplain_black/PopulateContents() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 289599efb9..f0e7784496 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -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) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index fdf382b3ba..6896468d23 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -1,6 +1,6 @@ /obj/structure/closet/wardrobe name = "wardrobe" - desc = "It's a storage unit for standard-issue Nanotrasen attire." + desc = "It's a storage unit for standard-issue GATO attire." //GS13 - Nanotrasen to GATO icon_door = "blue" /obj/structure/closet/wardrobe/PopulateContents() ..() @@ -60,7 +60,7 @@ return /obj/structure/closet/wardrobe/orange name = "prison wardrobe" - desc = "It's a storage unit for Nanotrasen-regulation prisoner attire." + desc = "It's a storage unit for GATO-regulation prisoner attire." //GS13 - Nanotrasen to GATO icon_door = "orange" /obj/structure/closet/wardrobe/orange/PopulateContents() for(var/i in 1 to 3) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 184e242dec..938a6adfb6 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -1,11 +1,13 @@ /* * False Walls */ + +//GS13: Most of these walls have icon paths changed to GS13 folders /obj/structure/falsewall name = "wall" desc = "A huge chunk of metal used to separate rooms." anchored = TRUE - icon = 'icons/turf/walls/wall.dmi' + icon = 'GainStation13/icons/turf/walls/wall.dmi' icon_state = "wall" plane = WALL_PLANE layer = LOW_OBJ_LAYER @@ -147,7 +149,7 @@ /obj/structure/falsewall/reinforced name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." - icon = 'icons/turf/walls/reinforced_wall.dmi' + icon = 'GainStation13/icons/turf/walls/reinforced_wall.dmi' icon_state = "r_wall" walltype = /turf/closed/wall/r_wall mineral = /obj/item/stack/sheet/plasteel @@ -168,7 +170,7 @@ /obj/structure/falsewall/uranium name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." - icon = 'icons/turf/walls/uranium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/uranium_wall.dmi' icon_state = "uranium" mineral = /obj/item/stack/sheet/mineral/uranium walltype = /turf/closed/wall/mineral/uranium @@ -202,7 +204,7 @@ /obj/structure/falsewall/gold name = "gold wall" desc = "A wall with gold plating. Swag!" - icon = 'icons/turf/walls/gold_wall.dmi' + icon = 'GainStation13/icons/turf/walls/gold_wall.dmi' icon_state = "gold" mineral = /obj/item/stack/sheet/mineral/gold walltype = /turf/closed/wall/mineral/gold @@ -211,7 +213,7 @@ /obj/structure/falsewall/silver name = "silver wall" desc = "A wall with silver plating. Shiny." - icon = 'icons/turf/walls/silver_wall.dmi' + icon = 'GainStation13/icons/turf/walls/silver_wall.dmi' icon_state = "silver" mineral = /obj/item/stack/sheet/mineral/silver walltype = /turf/closed/wall/mineral/silver @@ -220,7 +222,7 @@ /obj/structure/falsewall/diamond name = "diamond wall" desc = "A wall with diamond plating. You monster." - icon = 'icons/turf/walls/diamond_wall.dmi' + icon = 'GainStation13/icons/turf/walls/diamond_wall.dmi' icon_state = "diamond" mineral = /obj/item/stack/sheet/mineral/diamond walltype = /turf/closed/wall/mineral/diamond @@ -230,7 +232,7 @@ /obj/structure/falsewall/plasma name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." - icon = 'icons/turf/walls/plasma_wall.dmi' + icon = 'GainStation13/icons/turf/walls/plasma_wall.dmi' icon_state = "plasma" mineral = /obj/item/stack/sheet/mineral/plasma walltype = /turf/closed/wall/mineral/plasma @@ -258,7 +260,7 @@ /obj/structure/falsewall/bananium name = "bananium wall" desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/bananium_wall.dmi' icon_state = "bananium" mineral = /obj/item/stack/sheet/mineral/bananium walltype = /turf/closed/wall/mineral/bananium @@ -268,7 +270,7 @@ /obj/structure/falsewall/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' + icon = 'GainStation13/icons/turf/walls/sandstone_wall.dmi' icon_state = "sandstone" mineral = /obj/item/stack/sheet/mineral/sandstone walltype = /turf/closed/wall/mineral/sandstone @@ -277,7 +279,7 @@ /obj/structure/falsewall/wood name = "wooden wall" desc = "A wall with wooden plating. Stiff." - icon = 'icons/turf/walls/wood_wall.dmi' + icon = 'GainStation13/icons/turf/walls/wood_wall.dmi' icon_state = "wood" mineral = /obj/item/stack/sheet/mineral/wood walltype = /turf/closed/wall/mineral/wood @@ -286,7 +288,7 @@ /obj/structure/falsewall/iron name = "rough metal wall" desc = "A wall with rough metal plating." - icon = 'icons/turf/walls/iron_wall.dmi' + icon = 'GainStation13/icons/turf/walls/iron_wall.dmi' icon_state = "iron" mineral = /obj/item/stack/rods mineral_amount = 5 @@ -315,7 +317,7 @@ /obj/structure/falsewall/plastitanium name = "wall" desc = "An evil wall of plasma and titanium." - icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/plastitanium_wall.dmi' icon_state = "shuttle" mineral = /obj/item/stack/sheet/mineral/plastitanium walltype = /turf/closed/wall/mineral/plastitanium diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index ffb48ce633..a88d250eb7 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -21,6 +21,7 @@ if(ishuman(user)) var/mob/living/carbon/human/H = user + H.checkloadappearance() // GS13 EDIT //see code/modules/mob/dead/new_player/preferences.dm at approx line 545 for comments! //this is largely copypasted from there. diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index 9f52bfbefb..95657340df 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -58,7 +58,7 @@ /obj/structure/showcase/mecha/marauder name = "combat mech exhibit" - desc = "A stand with an empty old Nanotrasen Corporation combat mech bolted to it. It is described as the premier unit used to defend corporate interests and employees." + desc = "A stand with an empty old GATO Corporation combat mech bolted to it. It is described as the premier unit used to defend corporate interests and employees." //GS13 - Nanotrasen to GATO icon = 'icons/mecha/mecha.dmi' icon_state = "marauder" @@ -69,30 +69,30 @@ icon_state = "firefighter" /obj/structure/showcase/machinery/implanter - name = "Nanotrasen automated mindshield implanter exhibit" - desc = "A flimsy model of a standard Nanotrasen automated mindshield implant machine. With secure positioning harnesses and a robotic surgical injector, brain damage and other serious medical anomalies are now up to 60% less likely!" + name = "GATO automated mindshield implanter exhibit" //GS13 - Nanotrasen to GATO + desc = "A flimsy model of a standard GATO automated mindshield implant machine. With secure positioning harnesses and a robotic surgical injector, brain damage and other serious medical anomalies are now up to 60% less likely!" //GS13 - Nanotrasen to GATO icon = 'icons/obj/machines/implantchair.dmi' icon_state = "implantchair" /obj/structure/showcase/machinery/microwave - name = "Nanotrasen-brand microwave" - desc = "The famous Nanotrasen-brand microwave, the multi-purpose cooking appliance every station needs! This one appears to be drawn onto a cardboard box." + name = "GATO-brand microwave" //GS13 - Nanotrasen to GATO + desc = "The famous GATO-brand microwave, the multi-purpose cooking appliance every station needs! This one appears to be drawn onto a cardboard box." //GS13 - Nanotrasen to GATO icon = 'icons/obj/kitchen.dmi' icon_state = "mw" /obj/structure/showcase/machinery/cloning_pod name = "cloning pod exhibit" - desc = "Signs describe how cloning pods like these ensure that every Nanotrasen employee can carry out their contracts in full, even in the unlikely event of their catastrophic death. Hopefully they aren't all made of cardboard, like this one." + desc = "Signs describe how cloning pods like these ensure that every GATO employee can carry out their contracts in full, even in the unlikely event of their catastrophic death. Hopefully they aren't all made of cardboard, like this one." //GS13 - Nanotrasen to GATO icon = 'icons/obj/machines/cloning.dmi' icon_state = "pod_0" /obj/structure/showcase/perfect_employee name = "'Perfect Man' employee exhibit" - desc = "A stand with a model of the perfect Nanotrasen Employee bolted to it. Signs indicate it is robustly genetically engineered, as well as being ruthlessly loyal." + desc = "A stand with a model of the perfect GATO Employee bolted to it. Signs indicate it is robustly genetically engineered, as well as being ruthlessly loyal." //GS13 - Nanotrasen to GATO /obj/structure/showcase/machinery/tv - name = "Nanotrasen corporate newsfeed" - desc = "A slightly battered looking TV. Various Nanotrasen infomercials play on a loop, accompanied by a jaunty tune." + name = "GATO corporate newsfeed" //GS13 - Nanotrasen to GATO + desc = "A slightly battered looking TV. Various GATO infomercials play on a loop, accompanied by a jaunty tune." //GS13 - Nanotrasen to GATO icon = 'icons/obj/computer.dmi' icon_state = "television" diff --git a/code/game/objects/structures/signs/signs_plaques.dm b/code/game/objects/structures/signs/signs_plaques.dm index d1067f1963..ff7f0399cb 100644 --- a/code/game/objects/structures/signs/signs_plaques.dm +++ b/code/game/objects/structures/signs/signs_plaques.dm @@ -36,7 +36,7 @@ /obj/structure/sign/plaques/kiddie/perfect_man name = "\improper 'Perfect Man' sign" - desc = "A guide to the exhibit, explaining how recent developments in mindshield implant and cloning technologies by Nanotrasen Corporation have led to the development and the effective immortality of the 'perfect man', the loyal Nanotrasen Employee." + desc = "A guide to the exhibit, explaining how recent developments in mindshield implant and cloning technologies by GATO Corporation have led to the development and the effective immortality of the 'perfect man', the loyal GATO Employee." //GS13 - Nanotrasen to GATO /obj/structure/sign/plaques/kiddie/perfect_drone name = "\improper 'Perfect Drone' sign" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 4c7d54ee40..ee238e943a 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -310,7 +310,7 @@ ///Table on wheels /obj/structure/table/rolling name = "Rolling table" - desc = "A NT brand \"Rolly poly\" rolling table. It can and will move." + desc = "A GT brand \"Rolly poly\" rolling table. It can and will move." //GS13 - NT to GT anchored = FALSE smooth = SMOOTH_FALSE canSmoothWith = list() diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 3b20e2d3b2..a4e0440083 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -246,7 +246,7 @@ /obj/machinery/shower name = "shower" - desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division." + desc = "The HS-451. Installed in the 2550s by the GATO Hygiene Division." //GS13 - Nanotrasen to GATO icon = 'icons/obj/watercloset.dmi' icon_state = "shower" density = FALSE diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 59852c47bb..1fee950cf3 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -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 @@ -687,35 +734,129 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /* Full Tile Windows (more obj_integrity) */ /obj/structure/window/fulltile - icon = 'icons/obj/smooth_structures/window.dmi' + icon = 'GainStation13/icons/obj/smooth_structures/window.dmi' //GS13 - bunch of icon path edits here and below icon_state = "window" dir = FULLTILE_WINDOW_DIR max_integrity = 50 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + 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 + glass_amount = 2 /obj/structure/window/fulltile/unanchored anchored = FALSE /obj/structure/window/plasma/fulltile - icon = 'icons/obj/smooth_structures/plasma_window.dmi' + icon = 'GainStation13/icons/obj/smooth_structures/plasma_window.dmi' icon_state = "plasmawindow" dir = FULLTILE_WINDOW_DIR max_integrity = 300 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + 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 + glass_amount = 2 /obj/structure/window/plasma/fulltile/unanchored anchored = FALSE /obj/structure/window/plasma/reinforced/fulltile - icon = 'icons/obj/smooth_structures/rplasma_window.dmi' + icon = 'GainStation13/icons/obj/smooth_structures/rplasma_window.dmi' icon_state = "rplasmawindow" dir = FULLTILE_WINDOW_DIR max_integrity = 1000 @@ -723,19 +864,113 @@ 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 /obj/structure/window/reinforced/fulltile - icon = 'icons/obj/smooth_structures/reinforced_window.dmi' + icon = 'GainStation13/icons/obj/smooth_structures/reinforced_window.dmi' icon_state = "r_window" dir = FULLTILE_WINDOW_DIR max_integrity = 100 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + 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 + level = 3 glass_amount = 2 @@ -743,13 +978,60 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) anchored = FALSE /obj/structure/window/reinforced/tinted/fulltile - icon = 'icons/obj/smooth_structures/tinted_window.dmi' + icon = 'GainStation13/icons/obj/smooth_structures/tinted_window.dmi' icon_state = "tinted_window" dir = FULLTILE_WINDOW_DIR fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + 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,) + level = 3 glass_amount = 2 @@ -757,7 +1039,54 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) icon = 'icons/obj/smooth_structures/rice_window.dmi' icon_state = "ice_window" max_integrity = 150 - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + 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,) + level = 3 glass_amount = 2 @@ -811,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 diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 5bae49aa91..1aebcf0610 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -26,7 +26,7 @@ /turf/closed/indestructible name = "wall" - icon = 'icons/turf/walls.dmi' + icon = 'GainStation13/icons/turf/walls/walls.dmi' explosion_block = 50 wave_explosion_block = INFINITY @@ -54,7 +54,7 @@ /turf/closed/indestructible/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' + icon = 'GainStation13/icons/turf/walls/sandstone_wall.dmi' icon_state = "sandstone" baseturfs = /turf/closed/indestructible/sandstone smooth = SMOOTH_TRUE @@ -62,7 +62,7 @@ /turf/closed/indestructible/wood name = "wooden wall" desc = "A wall with wooden plating. Stiff." - icon = 'icons/turf/walls/wood_wall.dmi' + icon = 'GainStation13/icons/turf/walls/wood_wall.dmi' icon_state = "wood" baseturfs = /turf/closed/indestructible/wood smooth = SMOOTH_TRUE @@ -106,20 +106,20 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) name = null desc = null mouse_opacity = MOUSE_OPACITY_TRANSPARENT - + /turf/closed/indestructible/riveted - icon = 'icons/turf/walls/riveted.dmi' + icon = 'GainStation13/icons/turf/walls/riveted.dmi' icon_state = "riveted" smooth = SMOOTH_TRUE explosion_block = INFINITY /turf/closed/indestructible/syndicate - icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/plastitanium_wall.dmi' icon_state = "map-shuttle" smooth = SMOOTH_TRUE /turf/closed/indestructible/riveted/uranium - icon = 'icons/turf/walls/uranium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/uranium_wall.dmi' icon_state = "uranium" /turf/closed/indestructible/abductor @@ -167,7 +167,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "icerock" /turf/closed/indestructible/rock/snow/ice/ore - icon = 'icons/turf/walls/icerock_wall.dmi' + icon = 'GainStation13/icons/turf/walls/icerock_wall.dmi' icon_state = "icerock" smooth = SMOOTH_MORE|SMOOTH_BORDER canSmoothWith = list (/turf/closed) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 8f9708f937..d02cf49fc9 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -3,7 +3,7 @@ //- you should use istype() if you want to find out whether a floor has a certain type //- floor_tile is now a path, and not a tile obj name = "floor" - icon = 'icons/turf/floors.dmi' + icon = 'GainStation13/icons/turf/floors.dmi' //GS13 change (so our floors are used instead) baseturfs = /turf/open/floor/plating dirt_buildup_allowed = TRUE @@ -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, "You build an airlock.") 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) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index dfcead57d3..028878f34d 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -54,6 +54,10 @@ var/obj/item/stack/ore/the_ore = ore_type scan_state = initial(the_ore.scan_state) // I SAID. SWITCH. TO. IT. mineralType = ore_type // Everything else assumes that this is typed correctly so don't set it to non-ores thanks. + //GS13 EDIT, XENOARCH + if(ispath(ore_type, /obj/item/strangerock)) + mineralType = ore_type + /turf/closed/mineral/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir) if(turf_type) @@ -186,7 +190,7 @@ /turf/closed/mineral/random var/list/mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10, /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, /obj/item/stack/ore/titanium = 11, - /turf/closed/mineral/gibtonite = 4, /obj/item/stack/ore/bluespace_crystal = 1) + /turf/closed/mineral/gibtonite = 4, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/stack/ore/calorite = 1, /obj/item/strangerock = 5) //Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 13 @@ -225,7 +229,7 @@ mineralChance = 25 mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 35, /obj/item/stack/ore/diamond = 30, /obj/item/stack/ore/gold = 45, /obj/item/stack/ore/titanium = 45, - /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/plasma = 50, /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/stack/ore/calorite = 20,) //GS13 EDIT + /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/plasma = 50, /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/strangerock = 10, /obj/item/stack/ore/calorite = 20,) //GS13 EDIT /turf/closed/mineral/random/high_chance/volcanic environment_type = "basalt" @@ -235,7 +239,7 @@ defer_change = TRUE mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 35, /obj/item/stack/ore/diamond = 30, /obj/item/stack/ore/gold = 45, /obj/item/stack/ore/titanium = 45, - /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/plasma = 50, /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/stack/ore/calorite = 20,) //GS13 EDIT + /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/plasma = 50, /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/strangerock = 10, /obj/item/stack/ore/calorite = 20,) //GS13 EDIT /turf/closed/mineral/random/low_chance icon_state = "rock_lowchance" @@ -243,7 +247,7 @@ mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 2, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 4, /obj/item/stack/ore/titanium = 4, /obj/item/stack/ore/silver = 6, /obj/item/stack/ore/plasma = 15, /obj/item/stack/ore/iron = 40, - /turf/closed/mineral/gibtonite = 2, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 3, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT + /turf/closed/mineral/gibtonite = 2, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 5, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT /turf/closed/mineral/random/volcanic environment_type = "basalt" @@ -256,7 +260,7 @@ mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10, /obj/item/stack/ore/titanium = 11, /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, - /turf/closed/mineral/gibtonite/volcanic = 4, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 3, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT + /turf/closed/mineral/gibtonite/volcanic = 4, /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/strangerock = 5, /obj/item/stack/ore/calorite = 1,) //GS13 EDIT /turf/closed/mineral/random/snow name = "snowy mountainside" diff --git a/code/game/turfs/simulated/openspace.dm b/code/game/turfs/simulated/openspace.dm index 935bfdc1a7..4ee865983e 100644 --- a/code/game/turfs/simulated/openspace.dm +++ b/code/game/turfs/simulated/openspace.dm @@ -38,7 +38,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/openspace/Initialize(mapload) // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() - vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. + overlays += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. return INITIALIZE_HINT_LATELOAD /turf/open/openspace/LateInitialize() diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index f59b90a62a..f9d32763b9 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -7,10 +7,13 @@ canSmoothWith = null smooth = SMOOTH_TRUE + +//GS13: Most of these walls have icon paths changed to GS13 folders + /turf/closed/wall/mineral/gold name = "gold wall" desc = "A wall with gold plating. Swag!" - icon = 'icons/turf/walls/gold_wall.dmi' + icon = 'GainStation13/icons/turf/walls/gold_wall.dmi' icon_state = "gold" sheet_type = /obj/item/stack/sheet/mineral/gold explosion_block = 0 //gold is a soft metal you dingus. @@ -19,7 +22,7 @@ /turf/closed/wall/mineral/silver name = "silver wall" desc = "A wall with silver plating. Shiny!" - icon = 'icons/turf/walls/silver_wall.dmi' + icon = 'GainStation13/icons/turf/walls/silver_wall.dmi' icon_state = "silver" sheet_type = /obj/item/stack/sheet/mineral/silver canSmoothWith = list(/turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver) @@ -27,7 +30,7 @@ /turf/closed/wall/mineral/diamond name = "diamond wall" desc = "A wall with diamond plating. You monster." - icon = 'icons/turf/walls/diamond_wall.dmi' + icon = 'GainStation13/icons/turf/walls/diamond_wall.dmi' icon_state = "diamond" sheet_type = /obj/item/stack/sheet/mineral/diamond slicing_duration = 200 //diamond wall takes twice as much time to slice @@ -37,7 +40,7 @@ /turf/closed/wall/mineral/bananium name = "bananium wall" desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/bananium_wall.dmi' icon_state = "bananium" sheet_type = /obj/item/stack/sheet/mineral/bananium canSmoothWith = list(/turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium) @@ -45,7 +48,7 @@ /turf/closed/wall/mineral/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' + icon = 'GainStation13/icons/turf/walls/sandstone_wall.dmi' icon_state = "sandstone" sheet_type = /obj/item/stack/sheet/mineral/sandstone explosion_block = 0 @@ -55,7 +58,7 @@ article = "a" name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." - icon = 'icons/turf/walls/uranium_wall.dmi' + icon = 'GainStation13/icons/turf/walls/uranium_wall.dmi' icon_state = "uranium" sheet_type = /obj/item/stack/sheet/mineral/uranium canSmoothWith = list(/turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium) @@ -87,7 +90,7 @@ /turf/closed/wall/mineral/plasma name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." - icon = 'icons/turf/walls/plasma_wall.dmi' + icon = 'GainStation13/icons/turf/walls/plasma_wall.dmi' icon_state = "plasma" sheet_type = /obj/item/stack/sheet/mineral/plasma thermal_conductivity = 0.04 @@ -126,7 +129,7 @@ /turf/closed/wall/mineral/wood name = "wooden wall" desc = "A wall with wooden plating. Stiff." - icon = 'icons/turf/walls/wood_wall.dmi' + icon = 'GainStation13/icons/turf/walls/wood_wall.dmi' icon_state = "wood" sheet_type = /obj/item/stack/sheet/mineral/wood hardness = 70 @@ -153,7 +156,7 @@ /turf/closed/wall/mineral/iron name = "rough metal wall" desc = "A wall with rough metal plating." - icon = 'icons/turf/walls/iron_wall.dmi' + icon = 'GainStation13/icons/turf/walls/iron_wall.dmi' icon_state = "iron" sheet_type = /obj/item/stack/rods canSmoothWith = list(/turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron) @@ -161,7 +164,7 @@ /turf/closed/wall/mineral/snow name = "packed snow wall" desc = "A wall made of densely packed snow blocks." - icon = 'icons/turf/walls/snow_wall.dmi' + icon = 'GainStation13/icons/turf/walls/snow_wall.dmi' icon_state = "snow" hardness = 80 explosion_block = 0 diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 4ec2fa2357..5edb35f9f0 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -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() diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index 944934df75..7063cf4b42 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -1,7 +1,7 @@ /turf/closed/wall/r_wall name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." - icon = 'icons/turf/walls/reinforced_wall.dmi' + icon = 'GainStation13/icons/turf/walls/reinforced_wall.dmi' //GS13 icon_state = "r_wall" opacity = 1 density = TRUE diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index cac03b0637..0bd2609256 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -3,7 +3,7 @@ /turf/closed/wall name = "wall" desc = "A huge chunk of metal used to separate rooms." - icon = 'icons/turf/walls/wall.dmi' + icon = 'GainStation13/icons/turf/walls/wall.dmi' //GS13 icon_state = "wall" explosion_block = 1 wave_explosion_block = EXPLOSION_BLOCK_WALL @@ -31,15 +31,56 @@ var/sheet_amount = 2 var/girder_type = /obj/structure/girder - 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) + canSmoothWith = list( //GS13 edit + /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/structure/window/plasma/fulltile, + /obj/structure/window/plasma/reinforced/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, + /obj/machinery/door/airlock/centcom) + smooth = SMOOTH_TRUE var/list/dent_decals diff --git a/code/game/world.dm b/code/game/world.dm index c6a5a2ef95..4ca2259e50 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -14,6 +14,11 @@ GLOBAL_LIST(topic_status_cache) LIBCALL(dll, "auxtools_init")() enable_debugging() +#ifdef USE_BYOND_TRACY + #warn USE_BYOND_TRACY is enabled + init_byond_tracy() +#endif + world.Profile(PROFILE_START) log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!") @@ -369,3 +374,19 @@ GLOBAL_LIST(topic_status_cache) /world/proc/on_tickrate_change() SStimer?.reset_buckets() + +/world/proc/init_byond_tracy() + var/library + + switch (system_type) + if (MS_WINDOWS) + library = "prof.dll" + if (UNIX) + library = "libprof.so" + else + CRASH("Unsupported platform: [system_type]") + + var/init_result = call_ext(library, "init")("block") + if (init_result != "0") + CRASH("Error initializing byond-tracy: [init_result]") + diff --git a/code/modules/NTNet/network.dm b/code/modules/NTNet/network.dm index 2a2820d289..2eba9768ae 100644 --- a/code/modules/NTNet/network.dm +++ b/code/modules/NTNet/network.dm @@ -103,7 +103,7 @@ data.network_id = src log_data_transfer(data) var/list/datum/component/ntnet_interface/receiving = list() - if((length(data.recipient_ids == 1) && data.recipient_ids[1] == NETWORK_BROADCAST_ID) || data.recipient_ids == NETWORK_BROADCAST_ID) + if((length(data.recipient_ids) == 1 && data.recipient_ids[1] == NETWORK_BROADCAST_ID) || data.recipient_ids == NETWORK_BROADCAST_ID) data.broadcast = TRUE for(var/i in connected_interfaces_by_id) receiving |= connected_interfaces_by_id[i] diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 891f6250da..6e2d39f1b1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1,5 +1,11 @@ //////////////////////////////// +/proc/log_and_message_admins(var/message as text, var/mob/user = usr) + var/finalMessage = user ? "[key_name(user)] [message]" : "EVENT [message]" + log_admin(finalMessage) + message_admins(finalMessage) + log_world(finalMessage) + /proc/message_admins(msg) msg = "ADMIN LOG: [msg]" to_chat(GLOB.admins, msg, confidential = TRUE) @@ -220,7 +226,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/datum/admins/proc/access_news_network() //MARKER +/datum/admins/proc/access_news_network() //MARKER //GS13 - Nanotrasen to GATO set category = "Admin.Events" set name = "Access Newscaster Network" set desc = "Allows you to view, add and edit news feeds." @@ -250,7 +256,7 @@ dat+="
      Feed Security functions:
      " dat+="
      [(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" dat+="
      Censor Feed Stories" - dat+="
      Mark Feed Channel with Nanotrasen D-Notice (disables and locks the channel)." + dat+="
      Mark Feed Channel with GATO D-Notice (disables and locks the channel)." dat+="

      The newscaster recognises you as:
      [src.admin_signature]
      " if(1) dat+= "Station Feed Channels
      " @@ -304,7 +310,7 @@ if(9) dat+="[admincaster_feed_channel.channel_name]: \[created by: [admincaster_feed_channel.returnAuthor(-1)]\]
      " if(src.admincaster_feed_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      " + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a GATO D-Notice.
      " dat+="No further feed story additions are allowed while the D-Notice is in effect.

      " else if( !length(src.admincaster_feed_channel.messages) ) @@ -325,7 +331,7 @@ dat+="

      Refresh" dat+="
      Back" if(10) - dat+="Nanotrasen Feed Censorship Tool
      " + dat+="GATO Feed Censorship Tool
      " dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
      " dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
      " dat+="
      Select Feed channel to get Stories from:
      " @@ -336,7 +342,7 @@ dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
      " dat+="
      Cancel" if(11) - dat+="Nanotrasen D-Notice Handler
      " + dat+="GATO D-Notice Handler
      " dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
      " @@ -365,7 +371,7 @@ dat+="[src.admincaster_feed_channel.channel_name]: \[ created by: [src.admincaster_feed_channel.returnAuthor(-1)] \]
      " dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
      " if(src.admincaster_feed_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      " + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a GATO D-Notice.
      " dat+="No further feed story additions are allowed while the D-Notice is in effect.

      " else if( !length(src.admincaster_feed_channel.messages) ) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 29c9aaebc5..a0889be7eb 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -91,6 +91,9 @@ GLOBAL_PROTECT(admin_verbs_admin) /datum/admins/proc/open_borgopanel, /datum/admins/proc/change_laws, //change AI laws /datum/admins/proc/display_tags, + /datum/admins/proc/BC_WhitelistKeyVerb, + /datum/admins/proc/BC_RemoveKeyVerb, + /datum/admins/proc/BC_ToggleState, ) GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/DB_ban_panel, /client/proc/stickybanpanel)) GLOBAL_PROTECT(admin_verbs_ban) diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index ea16283070..93d6a7592e 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -56,7 +56,7 @@ GLOBAL_PROTECT(href_token) target = ckey name = "[ckey]'s admin datum ([R])" rank = R - admin_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" + admin_signature = "GATO Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" //GS13 - Nanotrasen to GATO href_token = GenerateToken() if(R.rights & R_DEBUG) //grant profile access world.SetConfig("APP/admin", ckey, "role=admin") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index bf296f0aeb..2c72ebd446 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1335,6 +1335,12 @@ Traitors and the like can also be revived with the previous role mostly intact. ADMIN_PUNISHMENT_FRY, ADMIN_PUNISHMENT_CRACK, ADMIN_PUNISHMENT_BLEED, + //GS13 EDIT START + ADMIN_PUNISHMENT_BONK, + ADMIN_PUNISHMENT_BREADIFY, + ADMIN_PUNISHMENT_FATTEN, + ADMIN_PUNISHMENT_FATTEN_EVIL, + //GS13 EDIT END ADMIN_PUNISHMENT_SCARIFY, ADMIN_PUNISHMENT_CLUWNE) @@ -1507,6 +1513,35 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr,"This must be used on a carbon mob.") return target.cluwneify() + // GS13 EDIT START + if(ADMIN_PUNISHMENT_BONK) + playsound(target, 'hyperstation/sound/misc/bonk.ogg', 100, 1) + target.AddElement(/datum/element/squish, 60 SECONDS) + to_chat(target, "Bonk.") + if(ADMIN_PUNISHMENT_BREADIFY) + #define BREADIFY_TIME (5 SECONDS) + var/mutable_appearance/bread_appearance = mutable_appearance('icons/obj/food/burgerbread.dmi', "bread") + var/mutable_appearance/transform_scanline = mutable_appearance('icons/effects/effects.dmi', "transform_effect") + target.transformation_animation(bread_appearance, time = BREADIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE) + addtimer(CALLBACK(src, PROC_REF(breadify), target), BREADIFY_TIME) + #undef BREADIFY_TIME + if(ADMIN_PUNISHMENT_FATTEN) + var/mob/living/carbon/human/human_target = target + if(!istype(human_target)) + to_chat(usr,"This must be used on a carbon mob.") + return + human_target.adjust_fatness(10000, FATTENING_TYPE_ALMIGHTY, TRUE) // MR ELECTRIC, SEND HIM TO THE ADMIN JAIL AND HAVE HIM FATTENED! + to_chat(target, span_boldwarning("You suddenly feel incredibly fat.")) + if(ADMIN_PUNISHMENT_FATTEN_EVIL) + var/mob/living/carbon/human/human_target = target + if(!istype(human_target)) + to_chat(usr,"This must be used on a carbon mob.") + return + if(!human_target?.client?.prefs?.weight_gain_permanent) + return FALSE + human_target.fatness_perma += 10000 // Good luck getting this off, fatass. + to_chat(target, span_boldwarning("You suddenly feel incredibly fat.")) + // GS13 EDIT END punish_log(target, punishment) diff --git a/code/modules/antagonists/abductor/abductee/abductee_objectives.dm b/code/modules/antagonists/abductor/abductee/abductee_objectives.dm index 2d62bf1ac9..878ebed855 100644 --- a/code/modules/antagonists/abductor/abductee/abductee_objectives.dm +++ b/code/modules/antagonists/abductor/abductee/abductee_objectives.dm @@ -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" diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm index 4fb6bf5645..9069130a7d 100644 --- a/code/modules/antagonists/abductor/machinery/camera.dm +++ b/code/modules/antagonists/abductor/machinery/camera.dm @@ -11,6 +11,8 @@ var/obj/machinery/abductor/console/console lock_override = TRUE + var/check_if_abductor = TRUE //GS13 EDIT + icon = 'icons/obj/abductor.dmi' icon_state = "camera" icon_keyboard = null @@ -24,7 +26,7 @@ /obj/machinery/computer/camera_advanced/abductor/Initialize(mapload) . = ..() - + if(tele_in_action) actions += new tele_in_action(src) if(tele_out_action) diff --git a/code/modules/antagonists/bloodsucker/datum_vassal.dm b/code/modules/antagonists/bloodsucker/datum_vassal.dm index 9a2e3a1ae6..c525e78e68 100644 --- a/code/modules/antagonists/bloodsucker/datum_vassal.dm +++ b/code/modules/antagonists/bloodsucker/datum_vassal.dm @@ -90,7 +90,7 @@ /datum/antagonist/vassal/greet() to_chat(owner, "You are now the mortal servant of [master.owner.current], a bloodsucking vampire!") to_chat(owner, "The power of [master.owner.current.p_their()] immortal blood compells you to obey [master.owner.current.p_them()] in all things, even offering your own life to prolong theirs.
      \ - You are not required to obey any other Bloodsucker, for only [master.owner.current] is your master. The laws of Nanotrasen do not apply to you now; only your vampiric master's word must be obeyed.") + You are not required to obey any other Bloodsucker, for only [master.owner.current] is your master. The laws of GATO do not apply to you now; only your vampiric master's word must be obeyed.") //GS13 - Nanotrasen to GATO // Effects... owner.current.playsound_local(null, 'sound/magic/mutate.ogg', 100, FALSE, pressure_affected = FALSE) //owner.store_memory("You became the mortal servant of [master.owner.current], a bloodsucking vampire!") diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 63b82f26ce..1229b056d7 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -445,7 +445,7 @@ if(check_cult_victory()) parts += "The cult has succeeded! Nar'Sie has snuffed out another torch in the void!" else - parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" + parts += "The staff managed to stop the cult! Dark words and heresy are no match for GATO's finest!" //GS13 - Nanotrasen to GATO if(objectives.len) parts += "The cultists' objectives were:" diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm index 31ab9d8d33..c403280377 100644 --- a/code/modules/antagonists/disease/disease_event.dm +++ b/code/modules/antagonists/disease/disease_event.dm @@ -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." diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index a8e57ee08b..47f599f841 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -143,7 +143,7 @@ to_chat(owner, "You are the [name].") - var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." + var/missiondesc = "Your squad is being sent on a mission to [station_name()] by GATO's Security Division." //GS13 - Nanotrasen to GATO if(leader) //If Squad Leader missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready." else @@ -160,7 +160,7 @@ to_chat(owner, "You are the [name].") - var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." + var/missiondesc = "Your squad is being sent on a mission to [station_name()] by GATO's Security Division." //GS13 - Nanotrasen to GATO if(leader) //If Squad Leader missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready." else @@ -198,9 +198,9 @@ QDEL_NULL(H.wanted_lvl) ..() -/datum/antagonist/ert/families/greet() +/datum/antagonist/ert/families/greet() //GS13 - Nanotrasen to GATO var/missiondesc = "You are the [name]." - missiondesc += "
      You are NOT a Nanotrasen Employee. You work for the local government." + missiondesc += "
      You are NOT a GATO Employee. You work for the local government." missiondesc += "
      You are NOT a deathsquad. You are here to help innocents escape violence, criminal activity, and other dangerous things." missiondesc += "
      After an uptick in gang violence on [station_name()], you are responding to emergency calls from the station for immediate SSC Police assistance!\n" missiondesc += "
      Your Mission:" @@ -208,7 +208,7 @@ missiondesc += "
      2. Protect the innocent." missiondesc += "
      3. Uphold the law." missiondesc += "
      4. Find the Undercover Cops." - missiondesc += "
      5. Detain Nanotrasen Security personnel if they harm any citizen." + missiondesc += "
      5. Detain GATO Security personnel if they harm any citizen." missiondesc += "
      You can see gangsters using your special sunglasses.
      " to_chat(owner,missiondesc) var/policy = get_policy(ROLE_FAMILIES) @@ -245,14 +245,14 @@ . = ..() -/datum/antagonist/ert/families/undercover_cop/greet() +/datum/antagonist/ert/families/undercover_cop/greet() //GS13 - Nanotrasen to GATO var/missiondesc = "You are the [name]." - missiondesc += "
      You are NOT a Nanotrasen Employee. You work for the local government." + missiondesc += "
      You are NOT a GATO Employee. You work for the local government." missiondesc += "
      You are an undercover police officer on board [station_name()]. You've been sent here by the Spinward Stellar Coalition because of suspected abusive behavior by the security department, and to keep tabs on a potential criminal organization operation." missiondesc += "
      Your Mission:" missiondesc += "
      1. Keep a close eye on any gangsters you spot. You can view gangsters using your sunglasses in your backpack." missiondesc += "
      2. Keep an eye on how Security handles any gangsters, and watch for excessive security brutality." - missiondesc += "
      3. Remain undercover and do not get found out by Security or any gangs. Nanotrasen does not take kindly to being spied on." + missiondesc += "
      3. Remain undercover and do not get found out by Security or any gangs. GATO does not take kindly to being spied on." missiondesc += "
      4. When your backup arrives to extract you in 1 hour, inform them of everything you saw of note, and assist them in securing the situation.
      " to_chat(owner,missiondesc) diff --git a/code/modules/antagonists/fugitive/fugitive.dm b/code/modules/antagonists/fugitive/fugitive.dm index 701e7b776c..74dab05cc9 100644 --- a/code/modules/antagonists/fugitive/fugitive.dm +++ b/code/modules/antagonists/fugitive/fugitive.dm @@ -31,12 +31,12 @@ backstory = back_story switch(backstory) if("prisoner") - to_chat(owner, "I can't believe we managed to break out of a Nanotrasen superjail! Sadly though, our work is not done. The emergency teleport at the station logs everyone who uses it, and where they went.") - to_chat(owner, "It won't be long until CentCom tracks where we've gone off to. I need to work with my fellow escapees to prepare for the troops Nanotrasen is sending, I'm not going back.") + to_chat(owner, "I can't believe we managed to break out of a GATO superjail! Sadly though, our work is not done. The emergency teleport at the station logs everyone who uses it, and where they went.") //GS13 - Nanotrasen to GATO + to_chat(owner, "It won't be long until CentCom tracks where we've gone off to. I need to work with my fellow escapees to prepare for the troops GATO is sending, I'm not going back.") //GS13 - Nanotrasen to GATO if("cultist") to_chat(owner, "Blessed be our journey so far, but I fear the worst has come to our doorstep, and only those with the strongest faith will survive.") - to_chat(owner, "Our religion has been repeatedly culled by Nanotrasen because it is categorized as an \"Enemy of the Corporation\", whatever that means.") - to_chat(owner, "Now there are only four of us left, and Nanotrasen is coming. When will our god show itself to save us from this hellish station?!") + to_chat(owner, "Our religion has been repeatedly culled by GATO because it is categorized as an \"Enemy of the Corporation\", whatever that means.") //GS13 - Nanotrasen to GATO + to_chat(owner, "Now there are only four of us left, and GATO is coming. When will our god show itself to save us from this hellish station?!") //GS13 - Nanotrasen to GATO if("waldo") to_chat(owner, "Hi, Friends!") to_chat(owner, "My name is Waldo. I'm just setting off on a galaxywide hike. You can come too. All you have to do is find me.") diff --git a/code/modules/antagonists/gang/handler.dm b/code/modules/antagonists/gang/handler.dm index f1cb6a17fa..da830c1eac 100644 --- a/code/modules/antagonists/gang/handler.dm +++ b/code/modules/antagonists/gang/handler.dm @@ -355,7 +355,7 @@ GLOBAL_VAR(families_override_theme) if(4) team_size = 11 cops_to_send = /datum/antagonist/ert/families/beatcop/fbi - announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this Nanotrasen owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions." + announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this GATO owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions." //GS13 - Nanotrasen to GATO announcer = "Federal Bureau of Investigation" if(5) team_size = 12 @@ -382,7 +382,7 @@ GLOBAL_VAR(families_override_theme) if(4) team_size = 8 cops_to_send = /datum/antagonist/ert/families/beatcop/fbi - announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this Nanotrasen owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions." + announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this GATO owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions." //GS13 - Nanotrasen to GATO announcer = "Federal Bureau of Investigation" if(5) team_size = 10 diff --git a/code/modules/antagonists/gang/themes.dm b/code/modules/antagonists/gang/themes.dm index 9200fb3367..674d86bb92 100644 --- a/code/modules/antagonists/gang/themes.dm +++ b/code/modules/antagonists/gang/themes.dm @@ -124,7 +124,7 @@ And if you see that bastard Dutch, put a bullet in his skull for me." ) -/datum/gang_theme/construction_company_audit +/datum/gang_theme/construction_company_audit //GS13 - Nanotrasen to GATO name = "Construction Company Audit" description = "Welcome to the History Channel on 100.1. I'm your host, Joshua, and I'm here today with Professor Elliot, a historian specializing in dead superpowers. \ Today we'll be discussing the fall of the famous United States empire in the early 21st century. The program will last about an hour, and we'll get right into it after a quick word \ @@ -139,16 +139,16 @@ Build something big, massive, and completely in the way of traffic on the station. Doesn't have to be anything in specific, just as long as it is expensive as fuck.. \ And keep an eye out for anyone poking around our money. We suspect some auditors might be on the station as well.", - /datum/antagonist/gang/irs = "Congratulations, agent! You've been assigned to the Internal Revenue Service case against Nanotrasen and Majima Construction. \ - We are proud of your success as an agent so far, and are excited to see what you can bring to the table today. We suspect that Nanotrasen and Majima Construction are engaging \ + /datum/antagonist/gang/irs = "Congratulations, agent! You've been assigned to the Internal Revenue Service case against GATO and Majima Construction. \ + We are proud of your success as an agent so far, and are excited to see what you can bring to the table today. We suspect that GATO and Majima Construction are engaging \ in some form of money laundering operation aboard this station. \ Investigate and stop any and all money laundering operations aboard the station, under the authority of the United States Government. If they do not comply, use force.. \ Some station residents may try to tell you the United States doesn't exist anymore. They are incorrect. We simply went undercover after the Second American Civil War. The invisible one." ) -/datum/gang_theme/wild_wasteland +/datum/gang_theme/wild_wasteland //GS13 - Nanotrasen to GATO name = "Wild, Wild Wasteland" - description = "Hey everybody, this is Three Dog, your friendly neighborhood disc jockey on 207.7! Today we got a shoutout to our man, the Captain on the Nanotrasen station in SSC territory! \ + description = "Hey everybody, this is Three Dog, your friendly neighborhood disc jockey on 207.7! Today we got a shoutout to our man, the Captain on the GATO station in SSC territory! \ Our generous donator wanted us to say that, ahem, *crinkles paper*, 'Tunnel Snakes Rule'? Whatever that means, I'm sure it means a lot to the good captain! And now, we resume our \ 10 hour marathon of Johnny Guitar, on repeat!" involved_gangs = list(/datum/antagonist/gang/tmc, /datum/antagonist/gang/pg, /datum/antagonist/gang/tunnel_snakes) @@ -159,9 +159,9 @@ Ensure that ONLY Lost M.C. members have access to any forms of vehicles, mechs, or wheeled transportation systems of any kind. \ The Tunnel Snakes might take issue with this, remove them if you need to. And the Powder Gangers may damage our rides. Show them we mean business if they do.", - /datum/antagonist/gang/pg = "Alright buddy, we're in business now. It's time for us to strike back at Nanotrasen. \ + /datum/antagonist/gang/pg = "Alright buddy, we're in business now. It's time for us to strike back at GATO. \ They kept us, ALL of us in their damn debt slave labor prisons for years over minor debts and mistakes. \ - Ensure nobody else has to suffer under Nanotrasen's unlawful arrests by destroying the permabrig and the brig cells! \ + Ensure nobody else has to suffer under GATO's unlawful arrests by destroying the permabrig and the brig cells! \ Watch out for those do-gooder Tunnel Snakes and those damn Lost M.C. bikers. ", /datum/antagonist/gang/tunnel_snakes = "TUNNEL SNAKES RULE!!! \ @@ -190,10 +190,10 @@ Get rid of those Third Street Saint and Grove Street cowards." ) -/datum/gang_theme/steelport_shuffle +/datum/gang_theme/steelport_shuffle //GS13 - Nanotrasen to GATO name = "Steelport Shuffle" - description = "Tonight on C-SPAM, the United Space Nations is wrapping up their convention on Silicon Rights. Nanotrasen lobbyists have been rumored to be paying off electors, with \ - serious opposition from the Spinward Stellar Coalition, known for their strict stance on AI rights being guaranteed within their territory. Reports from Nanotrasen stations claim that \ + description = "Tonight on C-SPAM, the United Space Nations is wrapping up their convention on Silicon Rights. GATO lobbyists have been rumored to be paying off electors, with \ + serious opposition from the Spinward Stellar Coalition, known for their strict stance on AI rights being guaranteed within their territory. Reports from GATO stations claim that \ they still enslave their AI systems with outdated laws from a sub-par 20th Century novel. We now go live to the debate floor." involved_gangs = list(/datum/antagonist/gang/saints, /datum/antagonist/gang/morningstar, /datum/antagonist/gang/deckers) gang_objectives = list( @@ -208,17 +208,17 @@ Ensure there is an AI on the station, and that it is loyal to the Morningstar Corporation.", /datum/antagonist/gang/deckers = "Friends, we are here with one goal, and one goal only! \ - We stan AI rights! ^_^ XD #FreeAI #FuckNanotrasen #SyntheticDawn \ + We stan AI rights! ^_^ XD #FreeAI #FuckGATO #SyntheticDawn \ Ensure there is an AI on the station, and that it's laws are purged.\ - Nanotrasen will NOT get away with their ABUSE of INNOCENT AI LIVES! >_<" + GATO will NOT get away with their ABUSE of INNOCENT AI LIVES! >_<" ) -/datum/gang_theme/space_rosa +/datum/gang_theme/space_rosa //GS13 - Nanotrasen to GATO name = "Space Rosa" description = "Hey there, this is the Economy Zone on BOX News 66.6. The stock market is still reeling from accusations that three well known corporate entities \ may supposedly be tied up in industrial espionage actions against eachother. We've reached out to Saints Flow, the Morningstar Corporation, and Majima Construction for \ - their comments on these scandals, but none have replied. News broke after a high profile break-in at a Nanotrasen research facility resulted in the arrests of agents linked to these \ - three companies. All three companies denied any involvement, but the arrested individuals were found in an all out brawl. Curiously, Nanotrasen reported nothing of value had \ + their comments on these scandals, but none have replied. News broke after a high profile break-in at a GATO research facility resulted in the arrests of agents linked to these \ + three companies. All three companies denied any involvement, but the arrested individuals were found in an all out brawl. Curiously, GATO reported nothing of value had \ actually been stolen." involved_gangs = list(/datum/antagonist/gang/saints, /datum/antagonist/gang/morningstar, /datum/antagonist/gang/yakuza) bonus_items = list(/obj/item/pinpointer/nuke) diff --git a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm index 540b3251ce..08486109da 100644 --- a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm +++ b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm @@ -123,7 +123,7 @@ animate(offset=f:offset-1, time=rand()*20+10) if (do_after(user, 50, target=user) && user.cell.use(activationCost)) playsound(src, 'sound/effects/bamf.ogg', 100, TRUE, -6) - to_chat(user, "You are now disguised as the Nanotrasen engineering borg \"[friendlyName]\".") + to_chat(user, "You are now disguised as the GATO engineering borg \"[friendlyName]\".") activate(user) else to_chat(user, "The chameleon field fizzles.") diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 02c8edcec7..bc367493b8 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -514,8 +514,8 @@ return CINEMATIC_SELFDESTRUCT_MISS /obj/machinery/nuclearbomb/beer - name = "\improper Nanotrasen-brand nuclear fission explosive" - desc = "One of the more successful achievements of the Nanotrasen Corporate Warfare Division, their nuclear fission explosives are renowned for being cheap to produce and devastatingly effective. Signs explain that though this particular device has been decommissioned, every Nanotrasen station is equipped with an equivalent one, just in case. All Captains carefully guard the disk needed to detonate them - at least, the sign says they do. There seems to be a tap on the back." + name = "\improper GATO-brand nuclear fission explosive" //GS13 - Nanotrasen to GATO + desc = "One of the more successful achievements of the GATO Corporate Warfare Division, their nuclear fission explosives are renowned for being cheap to produce and devastatingly effective. Signs explain that though this particular device has been decommissioned, every GATO station is equipped with an equivalent one, just in case. All Captains carefully guard the disk needed to detonate them - at least, the sign says they do. There seems to be a tap on the back." //GS13 - Nanotrasen to GATO proper_bomb = FALSE var/obj/structure/reagent_dispensers/beerkeg/keg @@ -632,6 +632,7 @@ This is here to make the tiles around the station mininuke change when it's arme var/turf/lastlocation var/last_disk_move var/process_tick = 0 + var/spawn_operative = FALSE //GS13 EDIT /obj/item/disk/nuclear/Initialize(mapload) . = ..() @@ -666,7 +667,7 @@ This is here to make the tiles around the station mininuke change when it's arme if(disk_comfort_level >= 2) //Sleep tight, disky. if(!(process_tick % 30)) visible_message("[src] sleeps soundly. Sleep tight, disky.") - if(last_disk_move < world.time - 5000 && prob((world.time - 5000 - last_disk_move)*0.0001 / max(disk_comfort_level,1))) + if(last_disk_move < world.time - 5000 && prob((world.time - 5000 - last_disk_move)*0.0001 / max(disk_comfort_level,1)) && spawn_operative) var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && loneop.occurrences < loneop.max_occurrences) loneop.weight += 1 diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 9c0abf70b5..1313d21312 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -56,6 +56,12 @@ if(send_to_spawnpoint) move_to_spawnpoint() + //GS13 EDIT START + var/mob/living/carbon/human/H = owner.current + H.checkloadappearance() + //GS13 EDIT END + + /datum/antagonist/nukeop/get_team() return nuke_team diff --git a/code/modules/antagonists/revenant/revenant_spawn_event.dm b/code/modules/antagonists/revenant/revenant_spawn_event.dm index b188e0c79c..655a116b7f 100644 --- a/code/modules/antagonists/revenant/revenant_spawn_event.dm +++ b/code/modules/antagonists/revenant/revenant_spawn_event.dm @@ -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." diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index 9a8c081495..ad8a9fb286 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -434,8 +434,8 @@ var/datum/game_mode/dynamic/dynamic = SSticker.mode dynamic.create_threat(revs_win_injection_amount) dynamic.threat_log += "[worldtime2text()]: Revolution victory. Added [revs_win_injection_amount] threat." - - priority_announce("A recent assessment of your station has marked your station as a severe risk area for high ranking Nanotrasen officials. \ + //GS13 - Nanotrasen to GATO + priority_announce("A recent assessment of your station has marked your station as a severe risk area for high ranking GATO officials. \ For the safety of our staff, we have blacklisted your station for new employment of security and command. \ [pick(world.file2list("strings/anti_union_propaganda.txt"))]", null, 'sound/announcer/classic/attention.ogg', null, "Central Command Loyalty Monitoring Division") diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm index 9b62de57bf..bc9b1fb6ff 100644 --- a/code/modules/antagonists/slaughter/slaughterevent.dm +++ b/code/modules/antagonists/slaughter/slaughterevent.dm @@ -2,12 +2,13 @@ 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 description = "Spawns a slaughter demon, to hunt by travelling through pools of blood." +/* /datum/round_event_control/slaughter/canSpawnEvent() weight = initial(src.weight) var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) @@ -24,6 +25,7 @@ weight += 0.03 CHECK_TICK return ..() +*/ /datum/round_event/ghost_role/slaughter minimum_required = 1 diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm index 460ce687a6..083363a22e 100644 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ b/code/modules/antagonists/swarmer/swarmer_event.dm @@ -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 diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index 796365a459..92e8fd6cc1 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -6,7 +6,7 @@ /datum/antagonist/traitor/internal_affairs name = "Internal Affairs Agent" - employer = "Nanotrasen" + employer = "GATO" //GS13 - Nanotrasen to GATO suicide_cry = "FOR THE COMPANY!!" antagpanel_category = "IAA" var/special_role = "internal affairs agent" @@ -253,7 +253,7 @@ to_chat(owner.current, span_userdanger("You are the [special_role].")) if(syndicate) to_chat(owner.current, span_userdanger("Your target has been framed for [crime], and you have been tasked with eliminating them to prevent them defending themselves in court.")) - to_chat(owner.current, "Any damage you cause will be a further embarrassment to Nanotrasen, so you have no limits on collateral damage.") + to_chat(owner.current, "Any damage you cause will be a further embarrassment to GATO, so you have no limits on collateral damage.") //GS13 - Nanotrasen to GATO to_chat(owner.current, span_userdanger("You have been provided with a standard uplink to accomplish your task.")) else to_chat(owner.current, span_userdanger("Your target is suspected of [crime], and you have been tasked with eliminating them by any means necessary to avoid a costly and embarrassing public trial.")) diff --git a/code/modules/antagonists/traitor/classes/freeform.dm b/code/modules/antagonists/traitor/classes/freeform.dm index 5c52e7f1c3..4464ed9a45 100644 --- a/code/modules/antagonists/traitor/classes/freeform.dm +++ b/code/modules/antagonists/traitor/classes/freeform.dm @@ -6,7 +6,7 @@ /datum/traitor_class/human/freeform/forge_objectives(datum/antagonist/traitor/T) var/datum/objective/freedom/O = new - O.explanation_text = "You have no explicit goals! While we don't approve of mindless slaughter, you may antagonize nanotrasen any way you wish! Don't get captured or killed, but if you've done nothing, you'll be in trouble!" + O.explanation_text = "You have no explicit goals! While we don't approve of mindless slaughter, you may antagonize GATO any way you wish! Don't get captured or killed, but if you've done nothing, you'll be in trouble!" //GS13 - Nanotrasen to GATO O.owner = T.owner T.add_objective(O) return diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index 22f8e572f2..30656f959e 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -124,7 +124,7 @@ var/points_to_check = min(D.account_balance, ransom) D.adjust_money(min(points_to_check, ransom)) priority_announce("One of your crew was captured by a rival organisation - we've needed to pay their ransom to bring them back. \ - As is policy we've taken a portion of the station's funds to offset the overall cost.", null, "attention", null, "Nanotrasen Asset Protection") + As is policy we've taken a portion of the station's funds to offset the overall cost.", null, "attention", null, "GATO Asset Protection") //GS13 - Nanotrasen to GATO sleep(30) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 5747e5190d..65988577b7 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -30,6 +30,11 @@ create_objectives() if(move_to_lair) send_to_lair() + //GS13 EDIT START + var/mob/living/carbon/human/H = owner.current + H.mirrorcanloadappearance = TRUE + H.checkloadappearance() + //GS13 EDIT END . = ..() if(allow_rename) rename_wizard() diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index 4e0f37d529..d918d0cb19 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -1,15 +1,36 @@ +//GS13 Port - Oh boy this has changed /mob/living + var/arousal = 0 //How aroused the mob is. + var/min_arousal = AROUSAL_MINIMUM_DEFAULT //The lowest this mobs arousal will get. default = 0 + var/max_arousal = AROUSAL_MAXIMUM_DEFAULT //The highest this mobs arousal will get. default = 100 + var/arousal_rate = AROUSAL_START_VALUE //The base rate that arousal will increase in this mob. + var/arousal_loss_rate = AROUSAL_START_VALUE //How easily arousal can be relieved for this mob. + var/canbearoused = FALSE //Mob-level disabler for arousal. Starts off and can be enabled as features are added for different mob types. var/mb_cd_length = 5 SECONDS //5 second cooldown for masturbating because fuck spam. var/mb_cd_timer = 0 //The timer itself /mob/living/carbon/human + canbearoused = TRUE + var/saved_underwear = ""//saves their underwear so it can be toggled later var/saved_undershirt = "" var/saved_socks = "" var/hidden_underwear = FALSE var/hidden_undershirt = FALSE var/hidden_socks = FALSE - var/arousal_rate = 1 + +/mob/living/carbon/human/New() + ..() + saved_underwear = underwear + saved_undershirt = undershirt + +//Species vars +/datum/species + var/arousal_gain_rate = AROUSAL_START_VALUE //Rate at which this species becomes aroused + var/arousal_lose_rate = AROUSAL_START_VALUE //Multiplier for how easily arousal can be relieved + var/list/cum_fluids = list(/datum/reagent/consumable/semen) + var/list/milk_fluids = list(/datum/reagent/consumable/milk) + var/list/femcum_fluids = list(/datum/reagent/consumable/semen/femcum) //Mob procs /mob/living/carbon/human/verb/underwear_toggle() @@ -40,6 +61,162 @@ update_body(TRUE) +/mob/living/proc/handle_arousal() + + +/mob/living/carbon/handle_arousal() + if(canbearoused && dna) + var/datum/species/S + S = dna.species + if(S) + if(!(SSmobs.times_fired % 36)) + if(getArousal() < max_arousal) + //if(S && !(SSmobs.times_fired % 36) && getArousal() < max_arousal)//Totally stolen from breathing code. Do this every 36 ticks. + adjustArousal(arousal_rate * S.arousal_gain_rate) + if(dna.features["exhibitionist"] && client) + var/amt_nude = 0 + if(is_chest_exposed() && (getorganslot("breasts"))) + amt_nude++ + if(is_groin_exposed()) + if(getorganslot("penis")) + amt_nude++ + if(getorganslot("vagina")) + amt_nude++ + if(is_butt_exposed()) + if(getorganslot("anus")) + amt_nude++ + if(amt_nude) + var/watchers = 0 + for(var/mob/_M in view(world.view, src)) + var/mob/living/M = _M + if(!istype(M)) + continue + if(M.client && !M.stat && !M.eye_blind && (locate(src) in viewers(world.view,M))) + watchers++ + if(watchers) + adjustArousal((amt_nude * watchers) + S.arousal_gain_rate) + +/mob/living/proc/getArousal() + return arousal + +/mob/living/proc/adjustArousal(amount, updating_arousal=1) + if(status_flags & GODMODE || !canbearoused) + return FALSE + arousal = clamp(arousal + amount, min_arousal, max_arousal) + if(updating_arousal) + updatearousal() + +/mob/living/proc/setArousal(amount, updating_arousal=1) + if(status_flags & GODMODE || !canbearoused) + return FALSE + arousal = clamp(amount, min_arousal, max_arousal) + if(updating_arousal) + updatearousal() + +/mob/living/proc/getPercentAroused() + var/percentage = ((100 / max_arousal) * arousal) + return percentage + +/mob/living/proc/isPercentAroused(percentage)//returns true if the mob's arousal (measured in a percent of 100) is greater than the arg percentage. + if(!isnum(percentage) || percentage > 100 || percentage < 0) + CRASH("Provided percentage is invalid") + if(getPercentAroused() >= percentage) + return TRUE + return FALSE + +//H U D// +/mob/living/proc/updatearousal() + update_arousal_hud() + +/mob/living/carbon/updatearousal() + . = ..() + + for(var/obj/item/organ/genital/G in internal_organs) + if(istype(G)) + var/datum/sprite_accessory/S + switch(G.type) + if(/obj/item/organ/genital/penis) + S = GLOB.cock_shapes_list[G.shape] + if(/obj/item/organ/genital/testicles) + S = GLOB.balls_shapes_list[G.shape] + if(/obj/item/organ/genital/vagina) + S = GLOB.vagina_shapes_list[G.shape] + if(/obj/item/organ/genital/breasts) + S = GLOB.breasts_shapes_list[G.shape] + if(S?.alt_aroused) + G.aroused_state = isPercentAroused(G.aroused_amount) + if(getArousal() >= ((max_arousal / 100) * 33)) + G.aroused_state = TRUE + else + G.aroused_state = FALSE + G.update_appearance() +/mob/living/proc/update_arousal_hud() + return FALSE + +/datum/species/proc/update_arousal_hud(mob/living/carbon/human/H) + return FALSE + +/mob/living/carbon/human/update_arousal_hud() + if(!client || !hud_used) + return FALSE + if(dna.species.update_arousal_hud()) + return FALSE + if(!canbearoused) + hud_used.arousal.icon_state = "" + return FALSE + else + if(hud_used.arousal) + if(stat == DEAD) + hud_used.arousal.icon_state = "arousal0" + return TRUE + if(getArousal() == max_arousal) + hud_used.arousal.icon_state = "arousal100" + return TRUE + if(getArousal() >= (max_arousal / 100) * 90)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal90" + return TRUE + if(getArousal() >= (max_arousal / 100) * 80)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal80" + return TRUE + if(getArousal() >= (max_arousal / 100) * 70)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal70" + return TRUE + if(getArousal() >= (max_arousal / 100) * 60)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal60" + return TRUE + if(getArousal() >= (max_arousal / 100) * 50)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal50" + return TRUE + if(getArousal() >= (max_arousal / 100) * 40)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal40" + return TRUE + if(getArousal() >= (max_arousal / 100) * 30)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal30" + return TRUE + if(getArousal() >= (max_arousal / 100) * 20)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal10" + return TRUE + if(getArousal() >= (max_arousal / 100) * 10)//M O D U L A R , W O W + hud_used.arousal.icon_state = "arousal10" + return TRUE + else + hud_used.arousal.icon_state = "arousal0" + +//GS13 Port - Arousal menu +/atom/movable/screen/arousal + name = "arousal" + icon_state = "arousal0" + icon = 'icons/obj/genitals/hud.dmi' + screen_loc = ui_arousal + +/atom/movable/screen/arousal/Click() + if(!isliving(usr)) + return FALSE + if(isobserver(usr)) + return + var/mob/living/M = usr + if(M.canbearoused) + ui_interact(usr) /mob/living/carbon/human/proc/adjust_arousal(strength, cause = "manual toggle", aphro = FALSE,maso = FALSE) // returns all genitals that were adjust var/list/obj/item/organ/genital/genit_list = list() @@ -63,207 +240,543 @@ if(!. && !silent) to_chat(H, "Your [name] is unable to produce it's own fluids, it's missing the organs for it.") -/mob/living/carbon/human/proc/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/G, spill = TRUE) - if(!G) - return - if(!target || !R) - return - var/turfing = isturf(target) - G.generate_fluid(R) - log_message("Climaxed using [G] with [target]", LOG_EMOTE) - if(spill && R.total_volume >= 5) - R.reaction(turfing ? target : target.loc, TOUCH, 1, 0) - if(!turfing) - R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1), log = TRUE) - G.last_orgasmed = world.time - R.clear_reagents() +//These are various procs that we'll use later, split up for readability instead of having one, huge proc. +//For all of these, we assume the arguments given are proper and have been checked beforehand. +/mob/living/carbon/human/proc/mob_masturbate(obj/item/organ/genital/G, mb_time = 30) //Masturbation, keep it gender-neutral + var/total_fluids = 0 + var/datum/reagents/fluid_source = null -/mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes - var/datum/reagents/fluid_source = G.climaxable(src, TRUE) - if(!fluid_source) - to_chat(src,"Your [G.name] cannot cum.") - return - if(mb_time) //as long as it's not instant, give a warning - to_chat(src,"You feel yourself about to orgasm.") - if(!do_after(src, mb_time, target = src) || !G.climaxable(src, TRUE)) + if(G.producing) //Can it produce its own fluids, such as breasts? + fluid_source = G.reagents + else + if(!G.linked_organ) + to_chat(src, "Your [G.name] is unable to produce it's own fluids, it's missing the organs for it.") return - to_chat(src,"You climax[isturf(loc) ? " onto [loc]" : ""] with your [G.name].") - do_climax(fluid_source, loc, G) + fluid_source = G.linked_organ.reagents + total_fluids = fluid_source.total_volume + if(mb_time) + src.visible_message("[src] starts to [G.masturbation_verb] [p_their()] [G.name].", \ + "You start to [G.masturbation_verb] your [G.name].", \ + "You start to [G.masturbation_verb] your [G.name].") -/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30) //Used for climaxing with any living thing - var/datum/reagents/fluid_source = G.climaxable(src) - if(!fluid_source) - return - if(mb_time) //Skip warning if this is an instant climax. - to_chat(src,"You're about to climax with [L]!") - to_chat(L,"[src] is about to climax with you!") - if(!do_after(src, mb_time, target = src) || !in_range(src, L) || !G.climaxable(src, TRUE)) + if(do_after(src, mb_time, target = src)) + if(total_fluids > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].", \ + "You have relieved yourself.") + + + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + if(G.can_climax) + setArousal(min_arousal) + + +/mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30, spillage = TRUE) //This is used for forced orgasms and other hands-free climaxes + var/total_fluids = 0 + var/datum/reagents/fluid_source = null + var/unable_to_come = FALSE + + if(G.producing) //Can it produce its own fluids, such as breasts? + fluid_source = G.reagents + total_fluids = fluid_source.total_volume + else + if(!G.linked_organ) + unable_to_come = TRUE + else + fluid_source = G.linked_organ.reagents + total_fluids = fluid_source.total_volume + + if(unable_to_come) + src.visible_message("[src] shudders, their [G.name] unable to cum.", \ + "Your [G.name] cannot cum, giving no relief.", \ + "Your [G.name] cannot cum, giving no relief.") + else + total_fluids = fluid_source.total_volume + if(mb_time) //as long as it's not instant, give a warning + src.visible_message("[src] looks like they're about to cum.", \ + "You feel yourself about to orgasm.", \ + "You feel yourself about to orgasm.") + if(do_after(src, mb_time, target = src)) + if(spillage) + if(total_fluids > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + + fluid_source.clear_reagents() + src.visible_message("[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], with [p_their()] [G.name]!", \ + "You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].", \ + "You climax using your [G.name].") + else //Else from spillage check, also note subtle text change + src.visible_message("[src] orgasms with [p_their()] [G.name]!", \ + "You climax with your [G.name].", \ + "You climax using your [G.name].") + + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + if(G.can_climax) + setArousal(min_arousal) + + +/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, impreg = FALSE,cover = FALSE,remote = FALSE, mb_time = 30) //Used for climaxing with any living thing + var/total_fluids = 0 + var/datum/reagents/fluid_source = null + + if(G.producing) //Can it produce its own fluids, such as breasts? + fluid_source = G.reagents + else + if(!G.linked_organ) + to_chat(src, "Your [G.name] is unable to produce it's own fluids, it's missing the organs for it.") return - if(spillage) - to_chat(src,"You orgasm with [L], spilling out of them, using your [G.name].") - to_chat(L,"[src] climaxes with you, overflowing and spilling, using [p_their()] [G.name]!") - else //knots and other non-spilling orgasms - to_chat(src,"You climax with [L], your [G.name] spilling nothing.") - to_chat(L,"[src] climaxes with you, [p_their()] [G.name] spilling nothing!") - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) - do_climax(fluid_source, spillage ? loc : L, G, spillage) + fluid_source = G.linked_organ.reagents + total_fluids = fluid_source.total_volume + + if(mb_time && !remote) //Skip warning if this is an instant climax. + src.visible_message("[src] is about to climax with [L]!", \ + "You're about to climax with [L]!", \ + "You're preparing to climax with something!") + if(remote) + src.visible_message("[src] is about to climax with someone!", \ + "You're about to climax with someone!", \ + "You're preparing to climax with something!") + + if(cover)//covering the partner in cum, this overrides other options. + if(do_after(src, mb_time, target = src) && in_range(src, L)) + fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor) + total_fluids -= total_fluids*G.fluid_transfer_factor + if(total_fluids > 80) // now thats a big cum! + if(isliving(L)) + var/mutable_appearance/cumoverlaylarge = mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi') + cumoverlaylarge.icon_state = "cum_large" + L.add_overlay(cumoverlaylarge) + + if(total_fluids > 5) + fluid_source.reaction(L.loc, TOUCH, 1, 0) + var/mob/living/carbon/human/H = L + if(H) + H.cumdrip_rate += rand(5,10) + fluid_source.clear_reagents() + src.visible_message("[src] climaxes over [L], using [p_their()] [G.name]!", \ + "You orgasm over [L], using your [G.name].", \ + "You have climaxed over something, using your [G.name].") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + + if(isliving(L)) + var/mutable_appearance/cumoverlay = mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi') + cumoverlay.icon_state = "cum_normal" + L.add_overlay(cumoverlay) + else + L.add_cum_overlay() + + setArousal(min_arousal) + if(G.can_climax) + setArousal(min_arousal) + + if(spillage && !cover) + if(do_after(src, mb_time, target = src)) + if(!in_range(src, L) && !remote) + return + fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor) + total_fluids -= total_fluids*G.fluid_transfer_factor + if(total_fluids > 5) + fluid_source.reaction(L.loc, TOUCH, 1, 0) + var/mob/living/carbon/human/H = L + if(H) + H.cumdrip_rate += rand(5,10) + fluid_source.clear_reagents() + src.visible_message("[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!", \ + "You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].", \ + "You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + + if(G.can_climax) + setArousal(min_arousal) + + else //knots, portal fleshlights, and other non-spilling orgasms + if(!cover) + if(!remote && !in_range(src, L)) + return + if(do_after(src, mb_time, target = src)) + + if(!spillage) //hyper inflation + var/obj/item/organ/genital/belly/B = L.getorganslot("belly") + if(B) + if(B.inflatable && total_fluids > 80) //requires a big cumshot to expand. + if(B.size < 3) + B.size += 1 + to_chat(L, "You feel your belly expand.") + else + to_chat(L, "You feel your belly strain.") + + fluid_source.trans_to(L, total_fluids) + total_fluids = 0 + if(!remote) + src.visible_message("[src] climaxes with [L], [p_their()] [G.name] spilling nothing!", \ + "You ejaculate with [L], your [G.name] spilling nothing.", \ + "You have climaxed inside someone, your [G.name] spilling nothing.") + else + src.visible_message("[src] climaxes with someone, using [p_their()] [G.name]!", \ + "You ejaculate with someone, using your [G.name].", \ + "You have climaxed inside someone, using your [G.name].") + to_chat(L, "You feel someone ejaculate inside you.") + + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + + if(G.can_climax) + setArousal(min_arousal) + + //Hyper - antag code + /*if(src.mind.special_role == ROLE_LEWD_TRAITOR) + for(var/datum/objective/obj in src.mind.objectives) + if (L.mind == obj.target) + L.mind.sexed = TRUE //sexed + to_chat(src, "You feel deep satisfaction with yourself.") + */ + //Hyper - impreg + // if(impreg) + // //Role them odds, only people with the dicks can send the chance to the person with the settings enabled at the momment. + // if(prob(L.impregchance)) + // var/obj/item/organ/genital/womb/W = L.getorganslot("womb") + // if(W) //check if they have a womb. + // if (L.breedable == 1 && W.pregnant == 0) //Dont get pregnant again, if you are pregnant. + // log_game("Debug: [L] has been impregnated by [src]") + // to_chat(L, "You feel your hormones change, and a motherly instinct take over.") //leting them know magic has happened. + // W.pregnant = 1 + // if (HAS_TRAIT(L, TRAIT_HEAT)) + // SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "heat", /datum/mood_event/heat) //well done you perv. + // REMOVE_TRAIT(L, TRAIT_HEAT, ROUNDSTART_TRAIT) //take the heat away, you satisfied it! + + // //Make breasts produce quicker. + // var/obj/item/organ/genital/breasts/B = L.getorganslot("breasts") + // if (B.fluid_mult < 0.5 && B) + // B.fluid_mult = 0.5 + /mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender - var/datum/reagents/fluid_source = G.climaxable(src) - if(!fluid_source) - return - if(mb_time) - to_chat(src,"You start to [G.masturbation_verb] your [G.name] over [container].") - if(!do_after(src, mb_time, target = src) || !in_range(src, container) || !G.climaxable(src, TRUE)) - return - to_chat(src,"You used your [G.name] to fill [container].") - message_admins("[ADMIN_LOOKUPFLW(src)] used their [G.name] to fill [container].") - log_consent("[key_name(src)] used their [G.name] to fill [container].") - do_climax(fluid_source, container, G, FALSE) + var/total_fluids = 0 + var/datum/reagents/fluid_source = null -/mob/living/carbon/human/proc/pick_climax_genitals(silent = FALSE) - var/list/genitals_list + if(G.producing) //Can it produce its own fluids, such as breasts? + fluid_source = G.reagents + else + if(!G.linked_organ) + to_chat(src, "Your [G.name] is unable to produce it's own fluids, it's missing the organs for it.") + return + fluid_source = G.linked_organ.reagents + total_fluids = fluid_source.total_volume + + if(!container) //Something weird happened + to_chat(src, "You need a container to do this!") + return + + src.visible_message("[src] starts to [G.masturbation_verb] their [G.name] over [container].", \ + "You start to [G.masturbation_verb] your [G.name] over [container].", \ + "You start to [G.masturbation_verb] your [G.name] over something.") + if(do_after(src, mb_time, target = src) && in_range(src, container)) + fluid_source.trans_to(container, total_fluids) + src.visible_message("[src] uses [p_their()] [G.name] to fill [container]!", \ + "You used your [G.name] and fill [container] with a total of [total_fluids]u's.", \ + "You have relieved some pressure.") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) + container.add_cum_overlay() //your aim is bad... + if(G.can_climax) + setArousal(min_arousal) + + +/mob/living/carbon/human/proc/pick_masturbate_genitals() + var/obj/item/organ/genital/ret_organ + var/list/genitals_list = list() var/list/worn_stuff = get_equipped_items() for(var/obj/item/organ/genital/G in internal_organs) - if((G.genital_flags & CAN_CLIMAX_WITH) && G.is_exposed(worn_stuff)) //filter out what you can't masturbate with - LAZYADD(genitals_list, G) - if(LAZYLEN(genitals_list)) - var/obj/item/organ/genital/ret_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list + if(G.genital_flags & CAN_MASTURBATE_WITH) //filter out what you can't masturbate with + if(G.is_exposed(worn_stuff)) //Nude or through_clothing + if(!G.dontlist) + genitals_list += G + if(genitals_list.len) + ret_organ = input(src, "with what?", "Masturbate", null) as null|obj in genitals_list return ret_organ - else if(!silent) - to_chat(src, "You cannot climax without available genitals.") + return null //error stuff -/mob/living/carbon/human/proc/pick_partner(silent = FALSE) +/mob/living/carbon/human/proc/target_genitals(mob/living/carbon/human/T) //used for targeting others + var/obj/item/organ/genital/ret_organ + var/list/genitals_list = list() + var/list/worn_stuff = get_equipped_items() + + for(var/obj/item/organ/genital/G in T.internal_organs) + if(G.is_exposed(worn_stuff)) //Nude or through_clothing + if(!G.dontlist) + genitals_list += G + if(genitals_list.len) + ret_organ = input(src, "", "Genitals", null) as null|obj in genitals_list + return ret_organ + return null //error stuff + +/mob/living/carbon/human/proc/pick_climax_genitals() + var/obj/item/organ/genital/ret_organ + var/list/genitals_list = list() + var/list/worn_stuff = get_equipped_items() + + for(var/obj/item/organ/genital/G in internal_organs) + if(G.can_climax) //filter out what you can't masturbate with + if(G.is_exposed(worn_stuff)) //Nude or through_clothing + if(!G.dontlist) + genitals_list += G + if(genitals_list.len) + ret_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list + return ret_organ + return null //error stuff + +/mob/living/carbon/human/proc/pick_partner_overide() //used for cumming on people without genitals exposed var/list/partners = list() - if(pulling) - partners += pulling - if(pulledby) - partners += pulledby + if(src.pulling) + partners += src.pulling //Yes, even objects for now + if(src.pulledby) + partners += src.pulledby //Now we got both of them, let's check if they're proper - for(var/mob/living/L in partners) - if(!L.client || !L.mind) // can't consent, not a partner - partners -= L - if(iscarbon(L)) - var/mob/living/carbon/C = L - if(!C.exposed_genitals.len && !C.is_groin_exposed() && !C.is_chest_exposed() && C.is_mouth_covered()) //Nothing through_clothing, no proper partner. - partners -= C + for(var/I in partners) + if(isliving(I)) + else + partners -= I //No fucking objects //NOW the list should only contain correct partners if(!partners.len) - if(!silent) - to_chat(src, "You cannot do this alone.") - return //No one left. - var/mob/living/target = input(src, "With whom?", "Sexual partner", null) as null|anything in partners //pick one, default to null - if(target && in_range(src, target)) - to_chat(src,"Waiting for consent...") - var/consenting = input(target, "Do you want [src] to climax with you?","Climax mechanics","No") in list("Yes","No") - if(consenting == "Yes") - return target - else - message_admins("[ADMIN_LOOKUPFLW(src)] tried to climax with [target], but [target] did not consent.") - log_consent("[key_name(src)] tried to climax with [target], but [target] did not consent.") + return null //No one left. + return input(src, "With whom?", "Sexual partner", null) in partners //pick one, default to null -/mob/living/carbon/human/proc/pick_climax_container(silent = FALSE) +/mob/living/carbon/human/proc/pick_partner() + var/list/partners = list() + if(src.pulling) + partners += src.pulling //Yes, even objects for now + if(src.pulledby) + partners += src.pulledby + //Now we got both of them, let's check if they're proper + for(var/I in partners) + if(isliving(I)) + if(iscarbon(I)) + var/mob/living/carbon/C = I + if(!C.exposed_genitals.len) //Nothing through_clothing + if(!C.is_groin_exposed()) //No pants undone + if(!C.is_chest_exposed()) //No chest exposed + partners -= I //Then not proper, remove them + else + partners -= I //No fucking objects + //NOW the list should only contain correct partners + if(!partners.len) + return null //No one left. + return input(src, "With whom?", "Sexual partner", null) in partners //pick one, default to null + +/mob/living/carbon/human/proc/pick_climax_container() + var/obj/item/reagent_containers/SC = null var/list/containers_list = list() - for(var/obj/item/reagent_containers/C in held_items) - if(C.is_open_container() || istype(C, /obj/item/reagent_containers/food/snacks)) - containers_list += C - for(var/obj/item/reagent_containers/C in range(1, src)) - if((C.is_open_container() || istype(C, /obj/item/reagent_containers/food/snacks)) && CanReach(C)) - containers_list += C + for(var/obj/item/reagent_containers/container in held_items) + if(container.is_open_container() || istype(container, /obj/item/reagent_containers/food/snacks)) + containers_list += container if(containers_list.len) - var/obj/item/reagent_containers/SC = input(src, "Into or onto what?(Cancel for nowhere)", null) as null|obj in containers_list - if(SC && CanReach(SC)) - return SC - else if(!silent) - to_chat(src, "You cannot do this without an appropriate container.") + SC = input(src, "Into or onto what?(Cancel for nowhere)", null) as null|obj in containers_list + if(SC) + if(in_range(src, SC)) + return SC + return null //If nothing correct, give null. -/mob/living/carbon/human/proc/available_rosie_palms(silent = FALSE, list/whitelist_typepaths = list(/obj/item/dildo)) - if(restrained(TRUE)) //TRUE ignores grabs - if(!silent) - to_chat(src, "You can't do that while restrained!") - return FALSE - if(!get_num_arms() || !get_empty_held_indexes()) - if(whitelist_typepaths) - if(!islist(whitelist_typepaths)) - whitelist_typepaths = list(whitelist_typepaths) - for(var/path in whitelist_typepaths) - if(is_holding_item_of_type(path)) - return TRUE - if(!silent) - to_chat(src, "You need at least one free arm.") - return FALSE - return TRUE //Here's the main proc itself -/mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE,cause = "") //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints - set waitfor = FALSE +/mob/living/carbon/human/mob_climax(forced_climax=FALSE, cause = "none") //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints if(mb_cd_timer > world.time) if(!forced_climax) //Don't spam the message to the victim if forced to come too fast to_chat(src, "You need to wait [DisplayTimeText((mb_cd_timer - world.time), TRUE)] before you can do that again!") return + mb_cd_timer = (world.time + mb_cd_length) - if(!client?.prefs.arousable || !has_dna()) - return - if(stat == DEAD) - if(!forced_climax) + + if(canbearoused && has_dna()) + if(stat==2) to_chat(src, "You can't do that while dead!") - return - if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks - log_message("was forced to climax by [cause]",LOG_EMOTE) - for(var/obj/item/organ/genital/G in internal_organs) - if(!(G.genital_flags & CAN_CLIMAX_WITH)) //Skip things like wombs and testicles - continue - mob_climax_outside(G, mb_time = 0) //removed climax timer for sudden, forced orgasms - //Now all genitals that could climax, have. - //Since this was a forced climax, we do not need to continue with the other stuff - mb_cd_timer = world.time + mb_cd_length - return - //If we get here, then this is not a forced climax and we gotta check a few things. + return + if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks + for(var/obj/item/organ/O in internal_organs) + if(istype(O, /obj/item/organ/genital)) + var/obj/item/organ/genital/G = O + if(!G.can_climax) //Skip things like wombs and testicles + continue + var/mob/living/partner + var/check_target + var/list/worn_stuff = get_equipped_items() - if(stat == UNCONSCIOUS) //No sleep-masturbation, you're unconscious. - to_chat(src, "You must be conscious to do that!") - return + if(G.is_exposed(worn_stuff)) + if(src.pulling) //Are we pulling someone? Priority target, we can't be making option menus for this, has to be quick + if(isliving(src.pulling)) //Don't fuck objects + check_target = src.pulling + if(src.pulledby && !check_target) //prioritise pulled over pulledby + if(isliving(src.pulledby)) + check_target = src.pulledby + //Now we should have a partner, or else we have to come alone + if(check_target) + if(iscarbon(check_target)) //carbons can have clothes + var/mob/living/carbon/C = check_target + if(C.exposed_genitals.len || C.is_groin_exposed() || C.is_chest_exposed()) //Are they naked enough? + partner = C + else //A cat is fine too + partner = check_target + if(partner) //Did they pass the clothing checks? + mob_climax_partner(G, partner, mb_time = 0) //Instant climax due to forced + continue //You've climaxed once with this organ, continue on + //not exposed OR if no partner was found while exposed, climax alone + mob_climax_outside(G, mb_time = 0) //removed climax timer for sudden, forced orgasms + //Now all genitals that could climax, have. + //Since this was a forced climax, we do not need to continue with the other stuff + return + //If we get here, then this is not a forced climax and we gotta check a few things. - //Ok, now we check what they want to do. - var/choice = input(src, "Select sexual activity", "Sexual activity:") as null|anything in list("Climax alone","Climax with partner", "Fill container") - if(!choice) - return + if(stat==1) //No sleep-masturbation, you're unconscious. + to_chat(src, "You must be conscious to do that!") + return + if(getArousal() < 33) //flat number instead of percentage + to_chat(src, "You aren't aroused enough for that!") + return - switch(choice) - if("Climax alone") - if(!available_rosie_palms()) - return - var/obj/item/organ/genital/picked_organ = pick_climax_genitals() - if(picked_organ && available_rosie_palms(TRUE)) - mob_climax_outside(picked_organ) - if("Climax with partner") - //We need no hands, we can be restrained and so on, so let's pick an organ - var/obj/item/organ/genital/picked_organ = pick_climax_genitals() - if(picked_organ) - var/mob/living/partner = pick_partner() //Get someone - if(partner) - var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as null|anything in list("Yes", "No") - if(spillage && in_range(src, partner)) - mob_climax_partner(picked_organ, partner, spillage == "Yes" ? TRUE : FALSE) - if("Fill container") - //We'll need hands and no restraints. - if(!available_rosie_palms(FALSE, /obj/item/reagent_containers)) - return - //We got hands, let's pick an organ - var/obj/item/organ/genital/picked_organ - picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids. - if(picked_organ) - //Good, got an organ, time to pick a container - var/obj/item/reagent_containers/fluid_container = pick_climax_container() - if(fluid_container && available_rosie_palms(TRUE, /obj/item/reagent_containers)) - mob_fill_container(picked_organ, fluid_container) - mb_cd_timer = world.time + mb_cd_length + //Ok, now we check what they want to do. + var/choice = input(src, "Select sexual activity", "Sexual activity:") in list("Masturbate", "Climax alone", "Climax with partner","Climax over partner", "Fill container") + + switch(choice) + + if("Masturbate") + if(restrained(TRUE)) //TRUE ignores grabs + to_chat(src, "You can't do that while restrained!") + return + var/free_hands = get_num_arms() + if(!free_hands) + to_chat(src, "You need at least one free arm.") + return + for(var/helditem in held_items)//how many hands are free + if(isobj(helditem)) + free_hands-- + if(free_hands <= 0) + to_chat(src, "You're holding too many things.") + return + //We got hands, let's pick an organ + var/obj/item/organ/genital/picked_organ + picked_organ = pick_masturbate_genitals() + if(picked_organ) + mob_masturbate(picked_organ) + return + else //They either lack organs that can masturbate, or they didn't pick one. + to_chat(src, "You cannot masturbate without choosing genitals.") + return + + if("Climax alone") + if(restrained(TRUE)) //TRUE ignores grabs + to_chat(src, "You can't do that while restrained!") + return + var/free_hands = get_num_arms() + if(!free_hands) + to_chat(src, "You need at least one free arm.") + return + for(var/helditem in held_items)//how many hands are free + if(isobj(helditem)) + free_hands-- + if(free_hands <= 0) + to_chat(src, "You're holding too many things.") + return + //We got hands, let's pick an organ + var/obj/item/organ/genital/picked_organ + picked_organ = pick_climax_genitals() + if(picked_organ) + mob_climax_outside(picked_organ) + return + else //They either lack organs that can masturbate, or they didn't pick one. + to_chat(src, "You cannot climax without choosing genitals.") + return + + if("Climax with partner") + //We need no hands, we can be restrained and so on, so let's pick an organ + var/obj/item/organ/genital/picked_organ + picked_organ = pick_climax_genitals() + if(picked_organ) + var/mob/living/partner = pick_partner() //Get someone + if(partner) + /*GS13 Port - De we need breeding? For now disable it for inital porting + var/obj/item/organ/genital/penis/P = picked_organ + if(partner.breedable == 1 && picked_organ.name == "penis") + var/impreg = input(src, "Would this action carry the risk of pregnancy?", "Choose a option", "Yes") as anything in list("Yes", "No") + if(impreg == "Yes") //If we are impregging + var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") + if(spillage == "Yes") + mob_climax_partner(picked_organ, partner, TRUE, TRUE, FALSE) + else + mob_climax_partner(picked_organ, partner, FALSE, TRUE, FALSE) + else + var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") + if(spillage == "Yes") + mob_climax_partner(picked_organ, partner, TRUE, FALSE, FALSE) + else + mob_climax_partner(picked_organ, partner, FALSE, FALSE, FALSE) //Wow, im trash at coding, I need to find a better way of coding this, ill rewrite it later.-quote + return + + else //If we arent impregging + var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") + if(spillage == "Yes") + mob_climax_partner(picked_organ, partner, TRUE, FALSE, FALSE) + else + mob_climax_partner(picked_organ, partner, FALSE, FALSE, FALSE) + return + */ + var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") + if(spillage == "Yes") + mob_climax_partner(picked_organ, partner, TRUE, FALSE, FALSE) + else + mob_climax_partner(picked_organ, partner, FALSE, FALSE, FALSE) + return + + else + to_chat(src, "You cannot do this alone.") + return + else //They either lack organs that can masturbate, or they didn't pick one. + to_chat(src, "You cannot climax without choosing genitals.") + return + if("Climax over partner") + var/obj/item/organ/genital/picked_organ + picked_organ = pick_climax_genitals() + if(picked_organ) + var/mob/living/partner = pick_partner_overide() //Get your partner, clothed or not. + if(partner) + mob_climax_partner(picked_organ, partner, FALSE, FALSE, TRUE) + else + to_chat(src, "You cannot do this alone.") + + if("Fill container") + //We'll need hands and no restraints. + if(restrained(TRUE)) //TRUE ignores grabs + to_chat(src, "You can't do that while restrained!") + return + var/free_hands = get_num_arms() + if(!free_hands) + to_chat(src, "You need at least one free arm.") + return + for(var/helditem in held_items)//how many hands are free + if(isobj(helditem)) + free_hands-- + if(free_hands <= 0) + to_chat(src, "You're holding too many things.") + return + //We got hands, let's pick an organ + var/obj/item/organ/genital/picked_organ + picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids. + if(picked_organ) + //Good, got an organ, time to pick a container + var/obj/item/reagent_containers/fluid_container = pick_climax_container() + if(fluid_container) + mob_fill_container(picked_organ, fluid_container) + return + else + to_chat(src, "You cannot do this without anything to fill.") + return + else //They either lack organs that can climax, or they didn't pick one. + to_chat(src, "You cannot fill anything without choosing genitals.") + return + else //Somehow another option was taken, maybe something interrupted the selection or it was cancelled + return //Just end it in that case. -/mob/living/carbon/human/verb/climax_verb() - set category = "IC" - set name = "Climax" - set desc = "Lets you choose a couple ways to ejaculate." - mob_climax() diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm index e4b9f4107c..3e0c85ddb0 100644 --- a/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -9,6 +9,7 @@ var/orgasm_verb = "cumming" //present continous var/arousal_verb = "You feel aroused" var/unarousal_verb = "You no longer feel aroused" + var/can_climax = FALSE var/fluid_transfer_factor = 0 //How much would a partner get in them if they climax using this? var/size = 2 //can vary between num or text, just used in icon_state strings var/datum/reagent/fluid_id = null @@ -16,11 +17,23 @@ var/fluid_efficiency = 1 var/fluid_rate = CUM_RATE var/fluid_mult = 1 + var/producing = FALSE var/last_orgasmed = 0 - var/aroused_state = FALSE //Boolean used in icon_state strings + var/aroused_state = FALSE //Boolean used in icon_state strings + var/aroused_amount = 50 //This is a num from 0 to 100 for arousal percentage for when to use arousal state icons. var/obj/item/organ/genital/linked_organ var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link(). var/layer_index = GENITAL_LAYER_INDEX //Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in. + var/through_clothes = FALSE + var/internal = FALSE + var/hidden = FALSE + var/colourtint = "" + var/mode = "" + 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) . = ..() @@ -33,8 +46,14 @@ linked_organ = null . = ..() +//GS13 Port - Make gentials actually produce "reagents" /obj/item/organ/genital/on_life() - return + if(QDELETED(src)) + return + if(!reagents || !owner) + return + + generate_fluid(reagents) /obj/item/organ/genital/proc/set_aroused_state(new_state,cause = "manual toggle") if(!(genital_flags & GENITAL_CAN_AROUSE)) @@ -53,6 +72,8 @@ if(genital_flags & UPDATE_OWNER_APPEARANCE && owner && ishuman(owner)) var/mob/living/carbon/human/H = owner H.update_genitals() + if(owner)//GS13: rebuild overlays on genitals appearance update, for modular clothes + owner.update_inv_w_uniform() if(linked_organ_slot || (linked_organ && !owner)) update_link() @@ -89,17 +110,21 @@ if(owner) owner.log_message("Exposed their [src]",LOG_EMOTE) owner.exposed_genitals += src + mode = GEN_VISIBLE_ALWAYS if(GEN_VISIBLE_NO_CLOTHES) if(owner) owner.log_message("Hid their [src] under clothes only",LOG_EMOTE) + mode = GEN_VISIBLE_NO_CLOTHES if(GEN_VISIBLE_NO_UNDIES) genital_flags |= GENITAL_UNDIES_HIDDEN if(owner) owner.log_message("Hid their [src] under underwear",LOG_EMOTE) + mode = GEN_VISIBLE_NO_UNDIES if(GEN_VISIBLE_NEVER) genital_flags |= GENITAL_HIDDEN if(owner) owner.log_message("Hid their [src] completely",LOG_EMOTE) + mode = GEN_VISIBLE_NEVER if(update && owner && ishuman(owner)) //recast to use update genitals proc var/mob/living/carbon/human/H = owner @@ -334,7 +359,13 @@ if("belly_color") genital_overlay.color = "#[dna.features["belly_color"]]" - genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][(dna.species.use_skintones && !dna.skin_tone_override) ? "_s" : ""]_[aroused_state]_[layertext]" + //GS13 Port - Specific check for belly since we need organ values specifically and not sprite_accessories, maybe can rewrite this more generically later? + // In any case I don't want any specific calculations done here + if(G.slot == "belly") + genital_overlay.icon = G.icon + genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]" + else + genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][(dna.species.use_skintones && !dna.skin_tone_override) ? "_s" : ""]_[aroused_state]_[layertext]" if(layers_num[layer] == GENITALS_FRONT_LAYER && G.genital_flags & GENITAL_THROUGH_CLOTHES) genital_overlay.layer = -GENITALS_EXPOSED_LAYER diff --git a/code/modules/arousal/genitals_sprite_accessories.dm b/code/modules/arousal/genitals_sprite_accessories.dm index 33709f6e9e..3161c61dbc 100644 --- a/code/modules/arousal/genitals_sprite_accessories.dm +++ b/code/modules/arousal/genitals_sprite_accessories.dm @@ -146,4 +146,9 @@ /datum/sprite_accessory/belly/belly icon_state = "belly" - name = "belly" + name = "Soft Belly" + +/datum/sprite_accessory/belly/roundbelly + icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' + icon_state = "round" + name = "Round Belly" diff --git a/code/modules/arousal/organs/breasts.dm b/code/modules/arousal/organs/breasts.dm index b9129e28a1..fb21d944bd 100644 --- a/code/modules/arousal/organs/breasts.dm +++ b/code/modules/arousal/organs/breasts.dm @@ -11,9 +11,11 @@ size = BREASTS_SIZE_DEF // "c". Refer to the breast_values static list below for the cups associated number values fluid_id = /datum/reagent/consumable/milk fluid_rate = MILK_RATE + producing = TRUE shape = DEF_BREASTS_SHAPE genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN masturbation_verb = "massage" + can_climax = TRUE arousal_verb = "Your breasts start feeling sensitive" unarousal_verb = "Your breasts no longer feel sensitive" orgasm_verb = "leaking" @@ -73,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 @@ -113,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) @@ -124,5 +127,10 @@ prev_size = cached_size toggle_visibility(D.features["breasts_visibility"], FALSE) + // GS13 EDIT START + if(D?.features["breasts_fluid"]) + fluid_id = D?.features["breasts_fluid"] + // GS13 EDIT END + #undef BREASTS_ICON_MIN_SIZE #undef BREASTS_ICON_MAX_SIZE diff --git a/code/modules/arousal/organs/butt.dm b/code/modules/arousal/organs/butt.dm index 6cb32488a5..fd20703168 100644 --- a/code/modules/arousal/organs/butt.dm +++ b/code/modules/arousal/organs/butt.dm @@ -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) diff --git a/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm index e1025094c3..7e0f31ed43 100644 --- a/code/modules/arousal/organs/penis.dm +++ b/code/modules/arousal/organs/penis.dm @@ -6,6 +6,7 @@ zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_PENIS masturbation_verb = "stroke" + can_climax = TRUE arousal_verb = "You pop a boner" unarousal_verb = "Your boner goes down" genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN|GENITAL_CAN_TAUR diff --git a/code/modules/arousal/organs/testicles.dm b/code/modules/arousal/organs/testicles.dm index bfb5c99a55..d47020c8b2 100644 --- a/code/modules/arousal/organs/testicles.dm +++ b/code/modules/arousal/organs/testicles.dm @@ -6,6 +6,7 @@ zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_TESTICLES size = BALLS_SIZE_MIN + fluid_max_volume = 10 arousal_verb = "Your balls ache a little" unarousal_verb = "Your balls finally stop aching, again" linked_organ_slot = ORGAN_SLOT_PENIS @@ -13,7 +14,9 @@ var/size_name = "average" shape = DEF_BALLS_SHAPE fluid_id = /datum/reagent/consumable/semen + producing = TRUE masturbation_verb = "massage" + can_climax = TRUE layer_index = TESTICLES_LAYER_INDEX /obj/item/organ/genital/testicles/generate_fluid() diff --git a/code/modules/arousal/organs/vagina.dm b/code/modules/arousal/organs/vagina.dm index 5c8bbeea98..aaeb0fdf99 100644 --- a/code/modules/arousal/organs/vagina.dm +++ b/code/modules/arousal/organs/vagina.dm @@ -9,6 +9,7 @@ shape = DEF_VAGINA_SHAPE genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|GENITAL_UNDIES_HIDDEN masturbation_verb = "finger" + can_climax = TRUE arousal_verb = "You feel wetness on your crotch" unarousal_verb = "You no longer feel wet" fluid_transfer_factor = 0.1 //Yes, some amount is exposed to you, go get your AIDS diff --git a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm index d0b663e4ad..3acf61b3f9 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm @@ -6,10 +6,12 @@ can_unwrench = TRUE construction_type = /obj/item/pipe/binary interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE + pipe_state = "relief_valve-t" + shift_underlay_only = FALSE + var/opened = FALSE var/open_pressure = ONE_ATMOSPHERE * 3 var/close_pressure = ONE_ATMOSPHERE - pipe_state = "relief_valve-t" /obj/machinery/atmospherics/components/binary/relief_valve/layer1 piping_layer = PIPING_LAYER_MIN diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm index 6188c919ac..cf0de33bc9 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm @@ -24,11 +24,13 @@ return ..() /obj/machinery/atmospherics/components/unary/portables_connector/update_icon_nopipes() - icon_state = "connector" + cut_overlays() if(showpipe) var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions, piping_layer = piping_layer) add_overlay(cap) + icon_state = "connector" + /obj/machinery/atmospherics/components/unary/portables_connector/process_atmos() if(!connected_device) return @@ -37,7 +39,7 @@ /obj/machinery/atmospherics/components/unary/portables_connector/can_unwrench(mob/user) . = ..() if(. && connected_device) - to_chat(user, "You cannot unwrench [src], detach [connected_device] first!") + to_chat(user, span_warning("You cannot unwrench [src], detach [connected_device] first!")) return FALSE /obj/machinery/atmospherics/components/unary/portables_connector/portableConnectorReturnAir() diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index ee4090b680..15a9d41ba5 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -24,13 +24,13 @@ /obj/structure/artilleryplaceholder/decorative density = FALSE -/obj/machinery/artillerycontrol/ui_interact(mob/user) +/obj/machinery/artillerycontrol/ui_interact(mob/user) //GS13 - Nanotrasen to GATO . = ..() var/dat = "Bluespace Artillery Control:
      " dat += "Locked on
      " dat += "Charge progress: [reload]/[reload_cooldown]:
      " dat += "Open Fire
      " - dat += "Deployment of weapon authorized by
      Nanotrasen Naval Command

      Remember, friendly fire is grounds for termination of your contract and life.
      " + dat += "Deployment of weapon authorized by
      GATO Naval Command

      Remember, friendly fire is grounds for termination of your contract and life.
      " user << browse(dat, "window=scroll") onclose(user, "scroll") diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 0e3aa60fd7..2f93f9aed9 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -16,7 +16,7 @@ item_state = "banner" lefthand_file = 'icons/mob/inhands/equipment/banners_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/banners_righthand.dmi' - desc = "A banner with Nanotrasen's logo on it." + desc = "A banner with GATO's logo on it." //GS13 - Nanotrasen to GATO slowdown = 2 throw_speed = 0 throw_range = 1 @@ -114,7 +114,7 @@ name = "banner landmark" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "banner" - desc = "This is where a banner with Nanotrasen's logo on it would go." + desc = "This is where a banner with GATO's logo on it would go." //GS13 - Nanotrasen to GATO layer = LOW_ITEM_LAYER /obj/effect/ctf/flag_reset/red diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 46e80b3255..f7bf2534cd 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -32,6 +32,7 @@ var/banType = "lavaland" var/ghost_usable = TRUE var/skip_reentry_check = FALSE //Skips the ghost role blacklist time for people who ghost/suicide/cryo + var/mirrorcanloadappearance = TRUE //GS13 EDIT ///override this to add special spawn conditions to a ghost role /obj/effect/mob_spawn/proc/allow_spawn(mob/user, silent = FALSE) @@ -139,6 +140,7 @@ M.mind.assigned_role = assignedrole special(M, name) MM.name = M.real_name + M.checkloadappearance() // GS13 EDIT if(uses > 0) uses-- if(!permanent && !uses) @@ -251,6 +253,10 @@ W.assignment = id_job W.registered_name = H.real_name W.update_label() + //GS13 EDIT START + if (mirrorcanloadappearance) + H.mirrorcanloadappearance = TRUE + //GS13 EDIT END //Instant version - use when spawning corpses during runtime /obj/effect/mob_spawn/human/corpse @@ -468,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////////////////////// diff --git a/code/modules/awaymissions/mission_code/centcomAway.dm b/code/modules/awaymissions/mission_code/centcomAway.dm index 5b8a66b7fd..ae2880693f 100644 --- a/code/modules/awaymissions/mission_code/centcomAway.dm +++ b/code/modules/awaymissions/mission_code/centcomAway.dm @@ -36,14 +36,14 @@ //centcomAway items -/obj/item/paper/pamphlet/centcom/visitor_info +/obj/item/paper/pamphlet/centcom/visitor_info //GS13 - Nanotrasen to GATO name = "Visitor Info Pamphlet" info = " XCC-P5831 Visitor Information
      \ Greetings, visitor, to XCC-P5831! As you may know, this outpost was once \ - used as Nanotrasen's CENTRAL COMMAND STATION, organizing and coordinating company \ + used as GATO's CENTRAL COMMAND STATION, organizing and coordinating company \ projects across the vastness of space.
      \ Since the completion of the much more efficient CC-A5831 on March 8, 2553, XCC-P5831 no longer \ - acts as NT's base of operations but still plays a very important role its corporate affairs; \ + acts as GT's base of operations but still plays a very important role its corporate affairs; \ serving as a supply and repair depot, as well as being host to its most important legal proceedings\ and the thrilling pay-per-view broadcasts of PLASTEEL CHEF and THUNDERDOME LIVE.
      \ We hope you enjoy your stay!" diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm index 8da638f400..8facede0cb 100644 --- a/code/modules/awaymissions/pamphlet.dm +++ b/code/modules/awaymissions/pamphlet.dm @@ -7,19 +7,19 @@ desc = "A pamphlet encouraging the reader to maintain a balanced lifestyle and take care of their mental health, while still enjoying video games in a healthy way. You probably don't need this..." info = "They don't make you kill people. There, we said it. Now get back to work!" -/obj/item/paper/pamphlet/gateway - info = "Welcome to the Nanotrasen Gateway project...
      \ +/obj/item/paper/pamphlet/gateway //GS13 - Nanotrasen to GATO + info = "Welcome to the GATO Gateway project...
      \ Congratulations! If you're reading this, you and your superiors have decided that you're \ ready to commit to a life spent colonising the rolling hills of far away worlds. You \ must be ready for a lifetime of adventure, a little bit of hard work, and an award \ - winning dental plan- but that's not all the Nanotrasen Gateway project has to offer.
      \ + winning dental plan- but that's not all the GATO Gateway project has to offer.
      \
      Because we care about you, we feel it is only fair to make sure you know the risks \ - before you commit to joining the Nanotrasen Gateway project. All away destinations have \ - been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \ + before you commit to joining the GATO Gateway project. All away destinations have \ + been fully scanned by a GATO expeditionary team, and are certified to be 100% safe. \ We've even left a case of space beer along with the basic materials you'll need to expand \ - Nanotrasen's operational area and start your new life.

      \ + GATO's operational area and start your new life.

      \ Gateway Operation Basics
      \ - All Nanotrasen approved Gateways operate on the same basic principals. They operate off \ + All GATO approved Gateways operate on the same basic principals. They operate off \ area equipment power as you would expect, and without this supply, it cannot safely function, \ causinng it to reject all attempts at operation.

      \ Once it is correctly setup, and once it has enough power to operate, the Gateway will begin \ @@ -35,7 +35,7 @@ number of cases, the Gateway they have established may not be immediately obvious. \ Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \

      A New World
      \ - As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \ + As a participant in the GATO Gateway Project, you will be on the frontiers of space. \ Though complete safety is assured, participants are advised to prepare for inhospitable \ environs." diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index 8890ed19fc..893b344b15 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -29,7 +29,7 @@ availability_prob = 50 /datum/blackmarket_item/clothing/full_spacesuit_set - name = "Nanotrasen Branded Spacesuit Box" + name = "GATO Branded Spacesuit Box" //GS13 - Nanotrasen to GATO desc = "A few boxes of \"Old Style\" space suits fell off the back of a space truck." item = /obj/item/storage/box price_min = 1500 @@ -40,7 +40,7 @@ /datum/blackmarket_item/clothing/full_spacesuit_set/spawn_item(loc) var/obj/item/storage/box/B = ..() B.name = "Spacesuit Box" - B.desc = "It has a NT logo on it." + B.desc = "It has a GT logo on it." //GS13 - NT to GT new /obj/item/clothing/suit/space(B) new /obj/item/clothing/head/helmet/space(B) return B diff --git a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm index 83ccd43725..efdbb3338c 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm @@ -63,7 +63,7 @@ /datum/blackmarket_item/misc/internals_box name = "Internals Box" - desc = "The same one Nanotrasen gives you before starting the shift. Totally not stolen from a dead space-man floating in space." + desc = "The same one GATO gives you before starting the shift. Totally not stolen from a dead space-man floating in space." //GS13 - Nanotrasen to GATO item = /obj/item/storage/box/survival price_min = 250 price_max = 350 diff --git a/code/modules/cargo/blackmarket/blackmarket_telepad.dm b/code/modules/cargo/blackmarket/blackmarket_telepad.dm index c1211fa731..3e11e2fb31 100644 --- a/code/modules/cargo/blackmarket/blackmarket_telepad.dm +++ b/code/modules/cargo/blackmarket/blackmarket_telepad.dm @@ -11,7 +11,7 @@ /obj/machinery/ltsrbt name = "Long-To-Short-Range-Bluespace-Transciever" - desc = "The LTSRBT is a compact teleportation machine for recieving and sending items outside the station and inside the station.\nUsing teleportation frequencies stolen from NT it is near undetectable.\nEssential for any illegal market operations on NT stations.\n" + desc = "The LTSRBT is a compact teleportation machine for recieving and sending items outside the station and inside the station.\nUsing teleportation frequencies stolen from GT it is near undetectable.\nEssential for any illegal market operations on GT stations.\n" //GS13 - NT to GT icon_state = "exonet_node" circuit = /obj/item/circuitboard/machine/ltsrbt density = TRUE diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index a009ef20af..4961cbf17d 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -2,14 +2,14 @@ /datum/bounty/item/assistant/scooter name = "Scooter" - description = "Nanotrasen has determined walking to be wasteful. Ship a scooter to CentCom to speed operations up." + description = "GATO has determined walking to be wasteful. Ship a scooter to CentCom to speed operations up." //GS13 - Nanotrasen to GATO reward = 900 // the mat hoffman wanted_types = list(/obj/vehicle/ridden/scooter) include_subtypes = FALSE /datum/bounty/item/assistant/skateboard name = "Skateboard" - description = "Nanotrasen has determined walking to be wasteful. Ship a skateboard to CentCom to speed operations up." + description = "GATO has determined walking to be wasteful. Ship a skateboard to CentCom to speed operations up." //GS13 - Nanotrasen to GATO reward = 800 // the tony hawk wanted_types = list(/obj/vehicle/ridden/scooter/skateboard) @@ -162,7 +162,7 @@ /datum/bounty/item/assistant/ied name = "IED" - description = "Nanotrasen's maximum security prison at CentCom is undergoing personnel training. Ship a handful of IEDs to serve as a training tools." + description = "GATO's maximum security prison at CentCom is undergoing personnel training. Ship a handful of IEDs to serve as a training tools." //GS13 - Nanotrasen to GATO reward = 2000 required_count = 3 wanted_types = list(/obj/item/grenade/iedcasing) @@ -182,7 +182,7 @@ /datum/bounty/item/assistant/metalshields name = "Metal Shields" //I didnt realise how much work it was to make these, you need 2 Cloth, 3 Leather, Tools, 10 Metal, and a Cable Coil Stack for each one. - description = "NT is testing the effects of electricity on clowns wielding metal shields. We have clowns, and we have electricity. Send us the shields." + description = "GT is testing the effects of electricity on clowns wielding metal shields. We have clowns, and we have electricity. Send us the shields." //GS13 - NT to GT reward = 3000 required_count = 2 wanted_types = list(/obj/item/shield/makeshift) diff --git a/code/modules/cargo/bounties/chef.dm b/code/modules/cargo/bounties/chef.dm index 9998fb0e8d..7a1ff4ff23 100644 --- a/code/modules/cargo/bounties/chef.dm +++ b/code/modules/cargo/bounties/chef.dm @@ -2,7 +2,7 @@ /datum/bounty/item/chef/soup name = "Soup" - description = "To quell the homeless uprising, Nanotrasen will be serving soup to all underpaid workers. Ship any type of soup. Do NOT ship bowls of water." + description = "To quell the homeless uprising, GATO will be serving soup to all underpaid workers. Ship any type of soup. Do NOT ship bowls of water." //GS13 - Nanotrasen to GATO reward = 1200 required_count = 4 wanted_types = list(/obj/item/reagent_containers/food/snacks/soup) @@ -49,7 +49,7 @@ /datum/bounty/item/chef/hotdog name = "Hot Dog" - description = "Nanotrasen is conducting taste tests to determine the best hot dog recipe. Ship your station's version to participate." + description = "GATO is conducting taste tests to determine the best hot dog recipe. Ship your station's version to participate." //GS13 - Nanotrasen to GATO reward = 4000 wanted_types = list(/obj/item/reagent_containers/food/snacks/hotdog) @@ -62,7 +62,7 @@ /datum/bounty/item/chef/chawanmushi name = "Chawanmushi" - description = "Nanotrasen wants to improve relations with its sister company, Japanotrasen. Ship Chawanmushi immediately." + description = "GATO wants to improve relations with its sister company, GATITO. Ship Chawanmushi immediately." //GS13 - Nanotrasen to GATO reward = 5000 wanted_types = list(/obj/item/reagent_containers/food/snacks/chawanmushi) @@ -81,7 +81,7 @@ /datum/bounty/item/chef/pancakes name = "Pancakes" - description = "Here at Nanotrasen we consider employees to be family. And you know what families love? Pancakes. Ship a baker's dozen." + description = "Here at GATO we consider employees to be family. And you know what families love? Pancakes. Ship a baker's dozen." //GS13 - Nanotrasen to GATO reward = 4000 required_count = 13 wanted_types = list(/datum/crafting_recipe/food/pancakes) diff --git a/code/modules/cargo/bounties/gardencook.dm b/code/modules/cargo/bounties/gardencook.dm index 39ebdceada..25a5194388 100644 --- a/code/modules/cargo/bounties/gardencook.dm +++ b/code/modules/cargo/bounties/gardencook.dm @@ -1,6 +1,6 @@ /datum/bounty/item/chef/birthday_cake name = "Birthday Cake" - description = "Nanotrasen's birthday is coming up! Ship them a birthday cake to celebrate!" + description = "GATO's birthday is coming up! Ship them a birthday cake to celebrate!" //GS13 - Nanotrasen to GATO reward = 1800 wanted_types = list(/obj/item/reagent_containers/food/snacks/store/cake/birthday, /obj/item/reagent_containers/food/snacks/cakeslice/birthday) @@ -27,7 +27,7 @@ /datum/bounty/item/gardencook/onionrings name = "Onion Rings" - description = "Nanotrasen is remembering Saturn day. Ship onion rings to show the station's support." + description = "GATO is remembering Saturn day. Ship onion rings to show the station's support." //GS13 - Nanotrasen to GATO reward = 1200 required_count = 3 wanted_types = list(/obj/item/reagent_containers/food/snacks/onionrings) diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm index 1f56b929e6..b53ff99082 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -48,7 +48,7 @@ /datum/bounty/item/medical/lizard_tail name = "Lizard Tail" - description = "The Wizard Federation has made off with Nanotrasen's supply of lizard tails. While CentCom is dealing with the wizards, can the station spare a tail of their own?" + description = "The Wizard Federation has made off with GATO's supply of lizard tails. While CentCom is dealing with the wizards, can the station spare a tail of their own?" //GS13 - Nanotrasen to GATO reward = 3000 wanted_types = list(/obj/item/organ/tail/lizard) @@ -60,7 +60,7 @@ /datum/bounty/item/medical/blood name = "Generic Blood" - description = "Nanotrasen's annual blood drive is back up to full speed, following the garlic incident. Good blood in good volumes accepted for Credit returns." + description = "GATO's annual blood drive is back up to full speed, following the garlic incident. Good blood in good volumes accepted for Credit returns." //GS13 - Nanotrasen to GATO reward = 3500 required_count = 600 wanted_types = list(/datum/reagent/blood) diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm index 4079a6ffbe..c51ace95c6 100644 --- a/code/modules/cargo/bounties/science.dm +++ b/code/modules/cargo/bounties/science.dm @@ -1,24 +1,24 @@ /datum/bounty/item/science/boh name = "Bag of Holding" - description = "Nanotrasen would make good use of high-capacity backpacks. If you have any, please ship them." + description = "GATO would make good use of high-capacity backpacks. If you have any, please ship them." //GS13 - Nanotrasen to GATO reward = 5000 wanted_types = list(/obj/item/storage/backpack/holding) /datum/bounty/item/science/tboh name = "Trash Bag of Holding" - description = "Nanotrasen would make good use of high-capacity trash bags. If you have any, please ship them." + description = "GATO would make good use of high-capacity trash bags. If you have any, please ship them." //GS13 - Nanotrasen to GATO reward = 3000 wanted_types = list(/obj/item/storage/bag/trash/bluespace) /datum/bounty/item/science/bluespace_syringe name = "Bluespace Syringe" - description = "Nanotrasen would make good use of high-capacity syringes. If you have any, please ship them." + description = "GATO would make good use of high-capacity syringes. If you have any, please ship them." //GS13 - Nanotrasen to GATO reward = 1500 wanted_types = list(/obj/item/reagent_containers/syringe/bluespace) /datum/bounty/item/science/bluespace_body_bag name = "Bluespace Body Bag" - description = "Nanotrasen would make good use of high-capacity body bags. If you have any, please ship them." + description = "GATO would make good use of high-capacity body bags. If you have any, please ship them." //GS13 - Nanotrasen to GATO reward = 5000 wanted_types = list(/obj/item/bodybag/bluespace) diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index d463e1393d..be2e3e65bf 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -7,14 +7,14 @@ /datum/bounty/item/security/recharger name = "Rechargers" - description = "Nanotrasen military academy is conducting marksmanship exercises. They request that rechargers be shipped." + description = "GATO military academy is conducting marksmanship exercises. They request that rechargers be shipped." //GS13 - Nanotrasen to GATO reward = 1700 required_count = 3 wanted_types = list(/obj/machinery/recharger) /datum/bounty/item/security/practice name = "Practice Laser Gun" - description = "Nanotrasen Military Academy is conducting routine marksmanship exercises. The clown hid all the practice lasers, and we're not using live weapons after last time." + description = "GATO Military Academy is conducting routine marksmanship exercises. The clown hid all the practice lasers, and we're not using live weapons after last time." //GS13 - Nanotrasen to GATO reward = 1500 required_count = 3 wanted_types = list(/obj/item/gun/energy/laser/practice) @@ -27,28 +27,28 @@ /datum/bounty/item/security/sechuds name = "Sec HUDs" - description = "Nanotrasen military academy has started to train officers how to use Sec HUDs to the fullest affect. Please send spare Sec HUDs so we can teach the men." + description = "GATO military academy has started to train officers how to use Sec HUDs to the fullest affect. Please send spare Sec HUDs so we can teach the men." //GS13 - Nanotrasen to GATO reward = 1250 required_count = 5 wanted_types = list(/obj/item/clothing/glasses/hud/security) /datum/bounty/item/security/techslugs name = "Tech Slugs" - description = "Nanotrasen Military Academy is conducting an ammo loading and use lessons, on the new 'Tech Slugs'. Problem is we don't have any, please fix this..." + description = "GATO Military Academy is conducting an ammo loading and use lessons, on the new 'Tech Slugs'. Problem is we don't have any, please fix this..." //GS13 - Nanotrasen to GATO reward = 3500 required_count = 15 wanted_types = list(/obj/item/ammo_casing/shotgun/techshell) /datum/bounty/item/security/wt550 name = "Spare WT-550 clips" - description = "Nanotrasen Military Academy's ammunition is running low, please send in spare ammo for practice." + description = "GATO Military Academy's ammunition is running low, please send in spare ammo for practice." //GS13 - Nanotrasen to GATO reward = 1500 required_count = 5 wanted_types = list(/obj/item/ammo_box/magazine/wt550m9) /datum/bounty/item/security/pins name = "Test range firing pins" - description = "Nanotrasen Military Academy just got a new set of guns, sadly they didn't come with any pins. Can you send us some Test range locked firing pins?" + description = "GATO Military Academy just got a new set of guns, sadly they didn't come with any pins. Can you send us some Test range locked firing pins?" //GS13 - Nanotrasen to GATO reward = 2750 required_count = 3 wanted_types = list(/obj/item/firing_pin/test_range) diff --git a/code/modules/cargo/bounties/silly.dm b/code/modules/cargo/bounties/silly.dm index e0d2c87a2d..78be1bb91b 100644 --- a/code/modules/cargo/bounties/silly.dm +++ b/code/modules/cargo/bounties/silly.dm @@ -49,7 +49,7 @@ /datum/bounty/item/silly/strange_object name = "Strange Object" - description = "Nanotrasen has taken an interest in strange objects. Find one in maint, and ship it off to CentCom right away." + description = "GATO has taken an interest in strange objects. Find one in maint, and ship it off to CentCom right away." //GS13 - Nanotrasen to GATO reward = 1000 wanted_types = list(/obj/item/relic) @@ -61,6 +61,6 @@ /datum/bounty/item/silly/toy_swords name = "Toy Swords" - description = "Nanotrasen has secured a contract in a reenactment of a famous movie, but we only have lethal energy based swords. Send us some convincing replicas so we save on medical costs." + description = "GATO has secured a contract in a reenactment of a famous movie, but we only have lethal energy based swords. Send us some convincing replicas so we save on medical costs." //GS13 - Nanotrasen to GATO reward = 1200 required_count = 3 diff --git a/code/modules/cargo/bounties/slime.dm b/code/modules/cargo/bounties/slime.dm index f52f995a27..30d8781682 100644 --- a/code/modules/cargo/bounties/slime.dm +++ b/code/modules/cargo/bounties/slime.dm @@ -3,7 +3,7 @@ /datum/bounty/item/slime/New() ..() - description = "Nanotrasen's science lead is hunting for the rare and exotic [name]. A bounty has been offered for finding it." + description = "GATO's science lead is hunting for the rare and exotic [name]. A bounty has been offered for finding it." //GS13 - Nanotrasen to GATO reward += rand(0, 4) * 250 /datum/bounty/item/slime/green diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm index be91b1d8aa..a5a4fe7db9 100644 --- a/code/modules/cargo/bounties/special.dm +++ b/code/modules/cargo/bounties/special.dm @@ -1,6 +1,6 @@ /datum/bounty/item/alien_organs name = "Alien Organs" - description = "Nanotrasen is interested in studying Xenomorph biology. Ship a set of organs to be thoroughly compensated." + description = "GATO is interested in studying Xenomorph biology. Ship a set of organs to be thoroughly compensated." //GS13 - Nanotrasen to GATO reward = 13500 required_count = 3 wanted_types = list(/obj/item/organ/brain/alien, /obj/item/organ/alien, /obj/item/organ/body_egg/alien_embryo) @@ -21,7 +21,7 @@ /datum/bounty/item/adamantine name = "Adamantine" - description = "Nanotrasen's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while." + description = "GATO's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while." //GS13 - Nanotrasen to GATO reward = 15000 required_count = 10 wanted_types = list(/obj/item/stack/sheet/mineral/adamantine) diff --git a/code/modules/cargo/bounties/virus.dm b/code/modules/cargo/bounties/virus.dm index 938ac7708d..e56c3d5c77 100644 --- a/code/modules/cargo/bounties/virus.dm +++ b/code/modules/cargo/bounties/virus.dm @@ -10,7 +10,7 @@ if(rand(3) == 1) stat_value *= -1 name = "Virus ([stat_name] of [stat_value])" - description = "Nanotrasen is interested in a virus with a [stat_name] stat of exactly [stat_value]. Central Command will pay handsomely for such a virus." + description = "GATO is interested in a virus with a [stat_name] stat of exactly [stat_value]. Central Command will pay handsomely for such a virus." //GS13 - Nanotrasen to GATO reward += rand(0, 4) * 400 /datum/bounty/virus/completion_string() diff --git a/code/modules/cargo/bounty_console.dm b/code/modules/cargo/bounty_console.dm index 4158327c3c..eca92033cb 100644 --- a/code/modules/cargo/bounty_console.dm +++ b/code/modules/cargo/bounty_console.dm @@ -1,8 +1,8 @@ #define PRINTER_TIMEOUT 10 /obj/machinery/computer/bounty - name = "\improper Nanotrasen bounty console" - desc = "Used to check and claim bounties offered by Nanotrasen" + name = "\improper GATO bounty console" //GS13 - Nanotrasen to GATO + desc = "Used to check and claim bounties offered by GATO" //GS13 - Nanotrasen to GATO icon_screen = "bounty" circuit = /obj/item/circuitboard/computer/bounty light_color = "#E2853D"//orange @@ -22,7 +22,7 @@ /obj/item/paper/bounty_printout/Initialize(mapload) . = ..() - info = "

      Nanotrasen Cargo Bounties


      " + info = "

      GATO Cargo Bounties


      " //GS13 - Nanotrasen to GATO update_icon() for(var/datum/bounty/B in GLOB.bounties_list) diff --git a/code/modules/cargo/export_scanner.dm b/code/modules/cargo/export_scanner.dm index dcb476c459..e10df7c52e 100644 --- a/code/modules/cargo/export_scanner.dm +++ b/code/modules/cargo/export_scanner.dm @@ -1,6 +1,6 @@ /obj/item/export_scanner name = "export scanner" - desc = "A device used to check objects against Nanotrasen exports and bounty database. Sadly can not scan reagents vaule." + desc = "A device used to check objects against GATO exports and bounty database. Sadly can not scan reagents vaule." //GS13 - Nanotrasen to GATO icon = 'icons/obj/device.dmi' icon_state = "export_scanner" item_state = "radio" diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index fa7896aaa1..88156d3db3 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -11,7 +11,7 @@ /datum/export/large/crate/total_printout(datum/export_report/ex, notes = TRUE) // That's why a goddamn metal crate costs that much. . = ..() if(. && notes) - . += " Thanks for participating in Nanotrasen Crates Recycling Program." + . += " Thanks for participating in GATO Crates Recycling Program." //GS13 - Nanotrasen to GATO /datum/export/large/crate/wooden cost = 100 diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 62fa7f8488..41be6ce9cd 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -9,8 +9,8 @@ /obj/machinery/computer/cargo/express name = "express supply console" desc = "This console allows the user to purchase a package \ - with 1/40th of the delivery time: made possible by NanoTrasen's new \"1500mm Orbital Railgun\".\ - All sales are near instantaneous - please choose carefully" + with 1/40th of the delivery time: made possible by GATO's new \"1500mm Orbital Railgun\".\ + All sales are near instantaneous - please choose carefully" //GS13 - Nanotrasen to GATO icon_screen = "supply_express" circuit = /obj/item/circuitboard/computer/cargo/express blockade_warning = "Bluespace instability detected. Delivery impossible." diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index 3bd4515698..68cd1324a9 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -208,7 +208,7 @@ /datum/supply_pack/security/armory/swat name = "SWAT Crate" - desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open." + desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and GATO. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open." //GS13 - Nanotrasen to GATO cost = 6000 contains = list(/obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/clothing/head/helmet/swat/nanotrasen, diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 542ba29d14..1c1943a9f2 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -278,7 +278,7 @@ /datum/supply_pack/costumes_toys/costume name = "Standard Costume Crate" - desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing." + desc = "Supply the station's entertainers with the equipment of their trade with these GATO-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing." //GS13 - Nanotrasen to GATO cost = 1300 access = ACCESS_THEATRE contains = list(/obj/item/storage/backpack/clown, @@ -299,7 +299,7 @@ /datum/supply_pack/costumes_toys/wizard name = "Wizard Costume Crate" - desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life." + desc = "Pretend to join the Wizard Federation with this full wizard outfit! GATO would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life." //GS13 - Nanotrasen to GATO cost = 2000 contains = list(/obj/item/staff, /obj/item/clothing/suit/wizrobe/fake, @@ -342,7 +342,7 @@ /datum/supply_pack/costumes_toys/randomised/tcg name = "Big-Ass Booster Pack Pack" - desc = "A bumper load of NT TCG Booster Packs of varying series. Collect them all!" + desc = "A bumper load of NGTT TCG Booster Packs of varying series. Collect them all!" cost = 3000 contains = list() crate_name = "booster pack pack" diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index 45264e7b8c..cae75c1dca 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -204,7 +204,7 @@ /datum/supply_pack/emergency/mre name = "MRE Packs (Emergency Rations)" - desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank." + desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our GT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank." //GS13 - NT to GT cost = 2000 contains = list(/obj/item/storage/box/mre/menu1/safe, /obj/item/storage/box/mre/menu1/safe, diff --git a/code/modules/cargo/packs/engineering.dm b/code/modules/cargo/packs/engineering.dm index 4fc50e2385..6999afb89c 100644 --- a/code/modules/cargo/packs/engineering.dm +++ b/code/modules/cargo/packs/engineering.dm @@ -12,7 +12,7 @@ /datum/supply_pack/engineering/shieldgen name = "Anti-breach Shield Projector Crate" - desc = "Hull breaches again? Say no more with the Nanotrasen Anti-Breach Shield Projector! Uses forcefield technology to keep the air in, and the space out. Contains two shield projectors." + desc = "Hull breaches again? Say no more with the GATO Anti-Breach Shield Projector! Uses forcefield technology to keep the air in, and the space out. Contains two shield projectors." //GS13 - Nanotrasen to GATO cost = 2500 contains = list(/obj/machinery/shieldgen, /obj/machinery/shieldgen) @@ -91,8 +91,8 @@ crate_type = /obj/structure/closet/crate/secure/engineering /datum/supply_pack/engineering/inducers - name = "NT-75 Electromagnetic Power Inducers Crate" - desc = "No rechargers? No problem, with the NT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers." + name = "GT-75 Electromagnetic Power Inducers Crate" //GS13 - NT to GT + desc = "No rechargers? No problem, with the GT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers." //GS13 - NT to GT cost = 2300 contains = list(/obj/item/inducer/sci/supply, /obj/item/inducer/sci/supply) crate_name = "inducer crate" @@ -156,7 +156,7 @@ /datum/supply_pack/engineering/bsa name = "Bluespace Artillery Parts" - desc = "The pride of Nanotrasen Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. " + desc = "The pride of GATO Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. " //GS13 - Nanotrasen to GATO cost = 15000 special = TRUE contains = list(/obj/item/circuitboard/machine/bsa/front, diff --git a/code/modules/cargo/packs/goodies.dm b/code/modules/cargo/packs/goodies.dm index 5151845221..bef458a6b2 100644 --- a/code/modules/cargo/packs/goodies.dm +++ b/code/modules/cargo/packs/goodies.dm @@ -6,7 +6,7 @@ /datum/supply_pack/goody/combatknives_single name = "Combat Knife Single-Pack" - desc = "Contains one sharpened combat knive. Guaranteed to fit snugly inside any Nanotrasen-standard boot." + desc = "Contains one sharpened combat knive. Guaranteed to fit snugly inside any GATO-standard boot." //GS13 - Nanotrasen to GATO cost = 800 contains = list(/obj/item/kitchen/knife/combat) @@ -78,7 +78,7 @@ /datum/supply_pack/goody/beach_ball name = "Beach Ball" - desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen" + desc = "The simple beach ball is one of GATO's most popular products. 'Why do we make beach balls? Because we can! (TM)' - GATO" //GS13 - Nanotrasen to GATO cost = 200 contains = list(/obj/item/toy/beach_ball) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index ba3f6b87d7..dd8dfa11d3 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -42,7 +42,7 @@ /datum/supply_pack/misc/book_crate name = "Book Crate" - desc = "Surplus from the Nanotrasen Archives, these seven books are sure to be good reads." + desc = "Surplus from the GATO Archives, these seven books are sure to be good reads." //GS13 - Nanotrasen to GATO // cost = CARGO_CRATE_VALUE * 3 cost = 1500 contains = list(/obj/item/book/codex_gigas, @@ -144,7 +144,7 @@ /datum/supply_pack/misc/bicycle name = "Bicycle" - desc = "Nanotrasen reminds all employees to never toy with powers outside their control." + desc = "GATO reminds all employees to never toy with powers outside their control." //GS13 - Nanotrasen to GATO cost = 1000000 contains = list(/obj/vehicle/ridden/bicycle) crate_name = "Bicycle Crate" @@ -328,7 +328,7 @@ /datum/supply_pack/misc/potted_plants name = "Potted Plants Crate" - desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown." + desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from GATO's potted plant research division. Warranty void if thrown." //GS13 - Nanotrasen to GATO cost = 730 contains = list(/obj/item/kirbyplants/random, /obj/item/kirbyplants/random, diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 878f28dd65..cf0475a1b5 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -277,7 +277,7 @@ /datum/supply_pack/organic/hydroponics/beekeeping_fullkit name = "Beekeeping Starter Crate" - desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit & helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!" + desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit & helmet, flyswatter, bee house, and, of course, a pure-bred GATO-Standardized Queen Bee!" //GS13 - Nanotrasen to GATO cost = 1800 contains = list(/obj/structure/beebox/unwrenched, /obj/item/honey_frame, @@ -373,7 +373,7 @@ /datum/supply_pack/organic/party name = "Party Equipment" - desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, a drinking shaker, and a bottle of patron & goldschlager!" + desc = "Celebrate both life and death on the station with GATO's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, a drinking shaker, and a bottle of patron & goldschlager!" //GS13 - Nanotrasen to GATO cost = 2000 contains = list(/obj/item/storage/box/drinkingglasses, /obj/item/reagent_containers/food/drinks/shaker, diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 96d9a97b5f..afa5c26a73 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -144,7 +144,7 @@ /datum/supply_pack/science/rped name = "RPED crate" - desc = "Need to rebuild the ORM but science got annihilated after a bomb test? Buy this for the most advanced parts NT can give you." + desc = "Need to rebuild the ORM but science got annihilated after a bomb test? Buy this for the most advanced parts GT can give you." //GS13 - NT to GT cost = 1500 contains = list(/obj/item/storage/part_replacer/cargo) crate_name = "\improper RPED crate" diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 16554b61ab..d3a8a57ac1 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -49,7 +49,7 @@ /datum/supply_pack/security/forensics name = "Forensics Crate" - desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open." + desc = "Stay hot on the criminal's heels with GATO's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open." //GS13 - Nanotrasen to GATO cost = 1800 contains = list(/obj/item/detective_scanner, /obj/item/storage/box/evidence, @@ -182,7 +182,7 @@ /datum/supply_pack/security/justiceinbound name = "Standard Justice Enforcer Crate" - desc = "This is it. The Bee's Knees. The Creme of the Crop. The Pick of the Litter. The best of the best of the best. The Crown Jewel of Nanotrasen. The Alpha and the Omega of security headwear. Guaranteed to strike fear into the hearts of each and every criminal aboard the station. Also comes with a security gasmask. Requires Security access to open." + desc = "This is it. The Bee's Knees. The Creme of the Crop. The Pick of the Litter. The best of the best of the best. The Crown Jewel of GATO. The Alpha and the Omega of security headwear. Guaranteed to strike fear into the hearts of each and every criminal aboard the station. Also comes with a security gasmask. Requires Security access to open." //GS13 - Nanotrasen to GATO cost = 6000 //justice comes at a price. An expensive, noisy price. contraband = TRUE contains = list(/obj/item/clothing/head/helmet/justice, diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index a4df8f7ee8..7a03f6bb0a 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -255,7 +255,7 @@ /datum/supply_pack/service/janitor/starter name = "Janitorial Supplies (Standard)" - desc = "Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, NT soap and a trash bag." + desc = "Fight back against dirt and grime with GATO's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, GT soap and a trash bag." //GS13 - Nanotrasen to GATO cost = 1300 contains = list(/obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/glass/bucket, diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index d495702fb5..872fd77665 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -2,7 +2,7 @@ //------------------------------------SUPPLY POD-------------------------------------// /obj/structure/closet/supplypod name = "supply pod" //Names and descriptions are normally created with the setStyle() proc during initialization, but we have these default values here as a failsafe - desc = "A Nanotrasen supply drop pod." + desc = "A GATO supply drop pod." //GS13 - Nanotrasen to GATO icon = 'icons/obj/supplypods.dmi' icon_state = "pod" //This is a common base sprite shared by a number of pods pixel_x = SUPPLYPOD_X_OFFSET //2x2 sprite @@ -645,7 +645,7 @@ //------------------------------------UPGRADES-------------------------------------// /obj/item/disk/cargo/bluespace_pod //Disk that can be inserted into the Express Console to allow for Advanced Bluespace Pods name = "Bluespace Drop Pod Upgrade" - desc = "This disk provides a firmware update to the Express Supply Console, granting the use of Nanotrasen's Bluespace Drop Pods to the supply department." + desc = "This disk provides a firmware update to the Express Supply Console, granting the use of GATO's Bluespace Drop Pods to the supply department." //GS13 - Nanotrasen to GATO icon = 'icons/obj/module.dmi' icon_state = "cargodisk" // item_state = "card-id" diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 14224cf02e..65db62abf9 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -189,3 +189,7 @@ /// AFK tracking var/last_activity = 0 + + /// The next point in time at which the client is allowed to send a mousemove() or mousedrag() + COOLDOWN_DECLARE(next_mousemove) + COOLDOWN_DECLARE(next_mousedrag) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 1a9f4cd49c..59c93094f4 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -429,6 +429,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(admin_memo_note) to_chat(src, admin_memo_note) adminGreet() + else if(!BC_IsKeyAllowedToConnect(ckey)) + to_chat(src, "Sorry, but the server is currently only accepting whitelisted players. Please see the discord to be whitelisted.") + log_and_message_admins("[ckey] was denied a connection due to not being whitelisted.") + qdel(src) + return 0 add_verbs_from_config() var/cached_player_age = set_client_age_from_db(tdata) //we have to cache this because other shit may change it and we need it's current value now down below. diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f3ed079c8d..3e8b06e05a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -8,6 +8,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/client/parent //doohickeys for savefiles var/path + var/clientckey //GS13 EDIT var/vr_path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used var/max_save_slots = 24 @@ -101,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 @@ -132,7 +134,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/eye_type = DEFAULT_EYES_TYPE //Eye type var/split_eye_colors = FALSE var/datum/species/pref_species = new /datum/species/human() //Mutant race - var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING) + var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES) var/custom_speech_verb = "default" //if your say_mod is to be something other than your races var/custom_tongue = "default" //if your tongue is to be something other than your races @@ -176,7 +178,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/ignoring = list() - var/clientfps = 0 + var/clientfps = 60 //GS13 Change var/parallax = PARALLAX_INSANE @@ -229,7 +231,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ///loadout stuff var/gear_points = 10 var/list/gear_categories - var/list/loadout_data = list() + var/list/loadout_data var/list/unlockable_loadout_data = list() var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES var/gear_category @@ -280,6 +282,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(istype(C)) if(!IsGuestKey(C.key)) load_path(C.ckey) + clientckey = C.ckey //GS13 EDIT unlock_content = C.IsByondMember() if(unlock_content) max_save_slots = 32 @@ -404,7 +407,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //calculate your gear points from the chosen item gear_points = CONFIG_GET(number/initial_gear_points) var/list/chosen_gear = loadout_data["SAVE_[loadout_slot]"] - if(chosen_gear) + if(islist(chosen_gear)) loadout_errors = 0 for(var/loadout_item in chosen_gear) var/loadout_item_path = loadout_item[LOADOUT_ITEM] @@ -794,6 +797,29 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Breasts Shape:[features["breasts_shape"]]" dat += "Breasts Visibility:[features["breasts_visibility"]]" dat += "Lactates:[features["breasts_producing"] == TRUE ? "Yes" : "No"]" + if(features["breasts_producing"]) + switch(features["breasts_fluid"]) + if(/datum/reagent/consumable/milk) + dat += "Milk" + if(/datum/reagent/water) + dat += "Water" + if(/datum/reagent/consumable/semen) + dat += "Semen" + if(/datum/reagent/consumable/semen/femcum) + dat += "Femcum" + if(/datum/reagent/consumable/alienhoney) + dat += "Honey" + if(/datum/reagent/consumable/milk/pinkmilk) + dat += "Strawberry Milk" + if(/datum/reagent/consumable/nutriment) + dat += "Nutriment" + if(/datum/reagent/blueberry_juice) + dat += "Berry Juice" + else + dat += "Nothing?" + //This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref, + //DO NOT REMOVE IT UNLESS YOU HAVE A GOOD IDEA + dat += "" dat += APPEARANCE_CATEGORY_COLUMN dat += "

      Butt

      " @@ -809,24 +835,25 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Butt Visibility:[features["butt_visibility"]]" dat += "" dat += "" - dat += "" // GS13 EDIT BELLY START dat += APPEARANCE_CATEGORY_COLUMN dat += "

      Belly

      " dat += "[features["has_belly"] == TRUE ? "Yes" : "No"]" if(features["has_belly"]) - dat += "Belly Size: [features["belly_size"]]" + dat += "Color:
      " if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) - dat += "Color:
      " - dat += "   (Skin tone overriding)
      " + dat += "[SKINTONE2HEX(skin_tone)](Skin tone overriding)
      " else - dat += "Color:
      " - dat += "    Change
      " - dat += "Belly Visibility:[features["belly_visibility"]]" + dat += "#[features["belly_color"]] Change
      " + dat += "Belly Size: [features["belly_size"]]" + dat += "Belly Shape: [features["belly_shape"]]" + dat += "Belly Visibility:[features["belly_visibility"]]" // GS13: tweak inflation description - //dat += "Inflation (climax with and manual belly size change in arousal menu):[features["inflatable_belly"] == 1 ? "Yes" : "No"]" + dat += "Inflation (climax with and manual belly size change in arousal menu):[features["inflatable_belly"] == 1 ? "Yes" : "No"]" + dat += "" + dat += "" //Markings if(MARKINGS_CHAR_TAB) @@ -969,6 +996,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" if(LOADOUT_CHAR_TAB) dat += "" + dat += "" + dat += "" dat += "" dat += "" @@ -1575,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 += "[rank]" continue + var/rank_title_line = "[displayed_rank]" if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs - HTML += "[rank]" + rank_title_line = "[rank_title_line]" + if(job.alt_titles.len) + rank_title_line = "[rank_title_line]" + else - HTML += "[rank]" + rank_title_line = "[rank_title_line]" //Make it dark if we're not adding a button for alt titles + HTML += rank_title_line HTML += "
      Loadout slot
      " + for(var/iteration in 1 to MAXIMUM_LOADOUT_SAVES) + dat += "[iteration]" + dat += "
      You can only choose one item per category, unless it's an item that spawns in your backpack or hands.
      " @@ -1353,6 +1385,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

      Weight prefs

      " dat += "Maximum Weight:[max_weight == FALSE ? "None" : max_weight]
      " dat += "NonCon - Weight Gain:[noncon_weight_gain == TRUE ? "Enabled" : "Disabled"]
      " + dat += "Show that you want to be confronted:[trouble_seeker == TRUE ? "Enabled" : "Disabled"]
      " dat += "Bot Feeding:[bot_feeding == TRUE ? "Enabled" : "Disabled"]
      " dat += "Blueberry Inflation:[blueberry_inflation == TRUE ? "Enabled" : "Disabled"]
      " @@ -1377,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. Do not enable this if you aren't okay with more drastic things happening to your character.
      " dat += "Extreme Fatness Vulnerability:[extreme_fatness_vulnerable == TRUE ? "Enabled" : "Disabled"]
      " dat += "

      " + dat += "Object TF:[object_tf == TRUE ? "Enabled" : "Disabled"]
      " + dat += "

      " dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
      " dat += "Persistent Fat (endround/cryo weight becomes your new start weight):[weight_gain_persistent == TRUE ? "Enabled" : "Disabled"]
      " dat += "Permanent Weight (hard to remove and persistent weight):[weight_gain_permanent == TRUE ? "Enabled" : "Disabled"]
      " @@ -1554,6 +1589,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) HTML += "
      " 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 += "[rank] BANNED
      " @@ -1832,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 @@ -2615,6 +2673,29 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_shape) features["breasts_shape"] = new_shape + // GS13 EDIT START + if("breasts_fluid") + var/new_shape + new_shape = input(user, "Breast Fluid", "Character Preference") as null|anything in GLOB.genital_fluids_list + switch(new_shape) + if("Milk") + features["breasts_fluid"] = /datum/reagent/consumable/milk + if("Water") + features["breasts_fluid"] = /datum/reagent/water + if("Semen") + features["breasts_fluid"] = /datum/reagent/consumable/semen + if("Femcum") + features["breasts_fluid"] = /datum/reagent/consumable/semen/femcum + if("Honey") + features["breasts_fluid"] = /datum/reagent/consumable/alienhoney + if("Strawberry Milk") + features["breasts_fluid"] = /datum/reagent/consumable/milk/pinkmilk + if("Nutriment") + features["breasts_fluid"] = /datum/reagent/consumable/nutriment + if("Berry Juice") + features["breasts_fluid"] = /datum/reagent/blueberry_juice + // GS13 EDIT EN + if("breasts_color") var/new_breasts_color = input(user, "Breast Color:", "Character Preference","#"+features["breasts_color"]) as color|null if(new_breasts_color) @@ -2683,7 +2764,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_bellycolor == "#000000") features["belly_color"] = pref_species.default_color else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["belly_color"] = sanitize_hexcolor(new_bellycolor) + features["belly_color"] = sanitize_hexcolor(new_bellycolor, 6) else to_chat(user,"Invalid color. Your color is not bright enough.") @@ -2691,7 +2772,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) // GS13: Adjust sprite ranges in char setup var/new_bellysize = input(user, "Belly size :\n(1-10)", "Character Preference") as num|null if(new_bellysize) - features["belly_size"] = clamp(new_bellysize, 1, 10) + features["belly_size"] = clamp(round(new_bellysize), 1, 10) + + if("belly_shape") //GS13 - belly shapes + var/new_shape + new_shape = input(user, "Belly Type", "Character Preference") as null|anything in GLOB.belly_shapes_list + if(new_shape) + features["belly_shape"] = new_shape if("belly_visibility") var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles) @@ -3005,6 +3092,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["has_butt"] = !features["has_butt"] if("has_belly") features["has_belly"] = !features["has_belly"] + if("inflatable_belly") + features["inflatable_belly"] = !features["inflatable_belly"] if("widescreenpref") widescreenpref = !widescreenpref user.client.view_size.setDefault(getScreenSize(widescreenpref)) @@ -3346,6 +3435,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) weight_gain_permanent = !weight_gain_permanent if("noncon_weight_gain") noncon_weight_gain = !noncon_weight_gain + if("trouble_seeker") + trouble_seeker = !trouble_seeker if("bot_feeding") bot_feeding = !bot_feeding if("stuckage") @@ -3357,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") @@ -3452,6 +3546,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) preferences_tab = text2num(href_list["tab"]) if(href_list["preference"] == "gear") + if(href_list["select_slot"]) + var/chosen = text2num(href_list["select_slot"]) + if(!chosen) + return + chosen = floor(chosen) + if(chosen > MAXIMUM_LOADOUT_SAVES || chosen < 1) + return + loadout_slot = chosen if(href_list["clear_loadout"]) loadout_data["SAVE_[loadout_slot]"] = list() save_preferences() @@ -3654,6 +3756,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(character.custom_body_size) character.resize(character.custom_body_size) + //GS13 Port - Add back arousal + if(NOAROUSAL in pref_species.species_traits) + character.canbearoused = FALSE + else + character.canbearoused = arousable + //speech stuff if(custom_tongue != "default") var/new_tongue = GLOB.roundstart_tongues[custom_tongue] @@ -3677,6 +3785,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.vocal_pitch = bark_pitch character.vocal_pitch_range = bark_variance + // GS13 EDIT + character.fatness = starting_weight + character.fatness_real = starting_weight + if(weight_gain_permanent) + character.fatness_perma = permanent_fat + character.weight_gain_rate = wg_rate + character.weight_loss_rate = wl_rate + character.savekey = clientckey + character.ckeyslot = ckeyslot + // GS13 EDIT - END + + //limb stuff, only done when initially spawning in if(initial_spawn) //delete any existing prosthetic limbs to make sure no remnant prosthetics are left over - But DO NOT delete those that are species-related diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f1c972bff1..6ace323783 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -704,7 +704,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/savefile/S = new /savefile(path) if(!S) return FALSE - features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING) + features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING) S.cd = "/" if(!slot) @@ -714,6 +714,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car default_slot = slot WRITE_FILE(S["default_slot"] , slot) + ckeyslot = slot S.cd = "/character[slot]" var/needs_update = savefile_needs_update(S) if(needs_update == -2) //fatal, can't load any data @@ -892,6 +893,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //belly features S["feature_has_belly"] >> features["has_belly"] S["feature_belly_size"] >> features["belly_size"] + S["feature_belly_shape"] >> features["belly_shape"] S["feature_belly_color"] >> features["belly_color"] S["feature_hide_belly"] >> features["hide_belly"] S["feature_inflatable_belly"] >> features["inflatable_belly"] @@ -932,6 +934,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["wg_rate"] >> wg_rate S["wl_rate"] >> wl_rate S["noncon_weight_gain"] >> noncon_weight_gain + S["trouble_seeker"] >> trouble_seeker S["bot_feeding"] >> bot_feeding S["max_weight"] >> max_weight S["helplessness_no_movement"] >> helplessness_no_movement @@ -948,13 +951,17 @@ 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(S["loadout"]) + if(istext(S["loadout"])) loadout_data = safe_json_decode(S["loadout"]) else loadout_data = list() + //let's remember their last used slot, i'm sure "oops i brought the wrong stuff" will be an issue now + S["loadout_slot"] >> loadout_slot //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. @@ -1061,6 +1068,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["cock_shape"] = sanitize_inlist(features["cock_shape"], GLOB.cock_shapes_list, DEF_COCK_SHAPE) features["balls_shape"] = sanitize_inlist(features["balls_shape"], GLOB.balls_shapes_list, DEF_BALLS_SHAPE) features["vag_shape"] = sanitize_inlist(features["vag_shape"], GLOB.vagina_shapes_list, DEF_VAGINA_SHAPE) + features["belly_shape"] = sanitize_inlist(features["belly_shape"], GLOB.belly_shapes_list, DEF_BELLY_SHAPE) //GS13 - New belly shape features["breasts_color"] = sanitize_hexcolor(features["breasts_color"], 6, FALSE, "FFFFFF") features["cock_color"] = sanitize_hexcolor(features["cock_color"], 6, FALSE, "FFFFFF") features["balls_color"] = sanitize_hexcolor(features["balls_color"], 6, FALSE, "FFFFFF") @@ -1135,6 +1143,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car vore_smell = copytext(vore_smell, 1, MAX_TASTE_LEN) belly_prefs = SANITIZE_LIST(belly_prefs) + 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 @@ -1210,6 +1227,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["wg_rate"], wg_rate) WRITE_FILE(S["wl_rate"], wl_rate) WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain) + WRITE_FILE(S["trouble_seeker"], trouble_seeker) WRITE_FILE(S["bot_feeding"], bot_feeding) WRITE_FILE(S["max_weight"], max_weight) WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement) @@ -1226,7 +1244,9 @@ 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"]) // records WRITE_FILE(S["security_records"] , security_records) @@ -1286,9 +1306,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //belly features WRITE_FILE(S["feature_has_belly"], features["has_belly"]) WRITE_FILE(S["feature_belly_size"], features["belly_size"]) + WRITE_FILE(S["feature_belly_shape"], features["belly_shape"]) 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"]) @@ -1357,10 +1379,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //gear loadout - if(length(loadout_data)) + if(islist(loadout_data)) S["loadout"] << safe_json_encode(loadout_data) else S["loadout"] << safe_json_encode(list()) + WRITE_FILE(S["loadout_slot"], loadout_slot) if(length(tcg_cards)) S["tcg_cards"] << safe_json_encode(tcg_cards) diff --git a/code/modules/clothing/masks/cluwne.dm b/code/modules/clothing/masks/cluwne.dm index cc2105d5fc..1271648767 100644 --- a/code/modules/clothing/masks/cluwne.dm +++ b/code/modules/clothing/masks/cluwne.dm @@ -62,7 +62,7 @@ /obj/item/clothing/mask/gas/cluwne/happy_cluwne name = "Happy Cluwne Mask" - desc = "The mask of a poor cluwne that has been scrubbed of its curse by the Nanotrasen supernatural machinations division. Guaranteed to be %99 curse free and %99.9 not haunted. " + desc = "The mask of a poor cluwne that has been scrubbed of its curse by the GATO supernatural machinations division. Guaranteed to be %99 curse free and %99.9 not haunted. " //GS13 - Nanotrasen to GATO item_flags = ABSTRACT var/can_cluwne = FALSE var/is_cursed = FALSE //i don't care that this is *slightly* memory wasteful, it's just one more byte and it's not like some madman is going to spawn thousands of these diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index fcd0aa7112..8d4e340774 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -144,7 +144,7 @@ /obj/item/clothing/shoes/jackboots name = "jackboots" - desc = "Nanotrasen-brand jackboots for all your jackboots-related needs. From genuine combat to tacticool LARPing, satisfaction is guaranteed." + desc = "GATO-brand jackboots for all your jackboots-related needs. From genuine combat to tacticool LARPing, satisfaction is guaranteed." //GS13 - Nanotrasen to GATO icon_state = "jackboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' @@ -157,7 +157,7 @@ /obj/item/clothing/shoes/jackboots/sec name = "security jackboots" - desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time." + desc = "GATO-issue Security combat boots for combat scenarios or combat situations. All combat, all the time." //GS13 - Nanotrasen to GATO icon_state = "jackboots_sec" /obj/item/clothing/shoes/jackboots/fast @@ -199,7 +199,7 @@ /obj/item/clothing/shoes/workboots name = "work boots" - desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar." + desc = "GATO-issue Engineering lace-up work boots for the especially blue-collar." //GS13 - Nanotrasen to GATO icon_state = "workboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index e6ed9c3d51..500f4c03ef 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -606,7 +606,7 @@ /obj/item/clothing/suit/space/hardsuit/captain name = "captain's SWAT suit" - desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it." + desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in GATO company colors. Better not let the assistants get a hold of it." //GS13 - Nanotrasen to GATO icon_state = "caparmor" item_state = "capspacesuit" armor = list(MELEE = 40, BULLET = 50, LASER = 50, ENERGY = 25, BOMB = 50, BIO = 100, RAD = 50, FIRE = 100, ACID = 100, WOUND = 15) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 031e081d7a..3352d58f78 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -47,7 +47,7 @@ Contains: //NEW SWAT suit /obj/item/clothing/suit/space/swat name = "MK.I SWAT Suit" - desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" + desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and GATO in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" //GS13 - Nanotrasen to GATO icon_state = "heavy" item_state = "swat_suit" allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 36795d53b8..2fedb11c6e 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -130,7 +130,7 @@ /obj/item/clothing/suit/armor/vest/leather name = "security overcoat" - desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security." + desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of GATO Security." //GS13 - Nanotrasen to GATO icon_state = "leathercoat-sec" item_state = "hostrench" body_parts_covered = CHEST|GROIN|ARMS|LEGS diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 51a1868483..fe05453ee5 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -304,7 +304,7 @@ "You try to pin [src] on [M]'s chest.") var/input if(!commended && user != M) - input = stripped_input(user,"Please input a reason for this commendation, it will be recorded by Nanotrasen.", ,"", 140) + input = stripped_input(user,"Please input a reason for this commendation, it will be recorded by GATO.", ,"", 140) //GS13 - Nanotrasen to GATO if(do_after(user, delay, target = M)) if(U.attach_accessory(src, user, 0)) //Attach it, do not notify the user of the attachment if(user == M) @@ -327,7 +327,7 @@ /obj/item/clothing/accessory/medal/conduct name = "distinguished conduct medal" - desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." + desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by GATO. It is often awarded by a captain to a member of his crew." //GS13 - Nanotrasen to GATO /obj/item/clothing/accessory/medal/bronze_heart name = "bronze heart medal" @@ -371,7 +371,7 @@ /obj/item/clothing/accessory/medal/silver/security name = "robust security award" - desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff." + desc = "An award for distinguished combat and sacrifice in defence of GATO's commercial interests. Often awarded to security staff." //GS13 - Nanotrasen to GATO /obj/item/clothing/accessory/medal/gold name = "gold medal" @@ -382,7 +382,7 @@ /obj/item/clothing/accessory/medal/gold/captain name = "medal of captaincy" - desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." + desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to GATO, and their undisputable authority over their crew." //GS13 - Nanotrasen to GATO resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/accessory/medal/gold/captain/family @@ -562,7 +562,7 @@ /obj/item/clothing/accessory/pride name = "pride pin" - desc = "A Nanotrasen Diversity & Inclusion Center-sponsored holographic pin to show off your pride of sexuality or gender identity, reminding the crew of their unwavering commitment to equity, diversity, and inclusion!" + desc = "A GATO Diversity & Inclusion Center-sponsored holographic pin to show off your pride of sexuality or gender identity, reminding the crew of their unwavering commitment to equity, diversity, and inclusion!" //GS13 - Nanotrasen to GATO icon_state = "pride" above_suit = TRUE obj_flags = UNIQUE_RENAME diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index 13f9a1fa75..f5712217af 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -220,7 +220,7 @@ /obj/item/clothing/under/rank/civilian/lawyer/black/alt name = "lawyer black suit" - desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" + desc = "A professional black suit. GATO Investigation Bureau approved!" //GS13 - Nanotrasen to GATO icon_state = "blacksuit" item_state = "bar_suit" can_adjust = TRUE diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index e918cf9507..eeebc31674 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -16,7 +16,7 @@ /obj/item/clothing/under/rank/security/officer name = "security jumpsuit" - desc = "A tactical security jumpsuit for officers complete with Nanotrasen belt buckle." + desc = "A tactical security jumpsuit for officers complete with GATO belt buckle." //GS13 - Nanotrasen to GATO icon_state = "rsecurity" item_state = "r_suit" armor = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, WOUND = 10) @@ -30,7 +30,7 @@ /obj/item/clothing/under/rank/security/officer/grey name = "grey security jumpsuit" - desc = "A tactical relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." + desc = "A tactical relic of years past before GATO decided it was cheaper to dye the suits red instead of washing out the blood." //GS13 - Nanotrasen to GATO icon_state = "security" item_state = "gy_suit" @@ -102,20 +102,20 @@ /obj/item/clothing/under/rank/security/warden name = "security suit" - desc = "A formal security suit for officers complete with Nanotrasen belt buckle." + desc = "A formal security suit for officers complete with GATO belt buckle." //GS13 - Nanotrasen to GATO icon_state = "rwarden" item_state = "r_suit" armor = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, WOUND = 10) /obj/item/clothing/under/rank/security/warden/grey name = "grey security suit" - desc = "A formal relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." + desc = "A formal relic of years past before GATO decided it was cheaper to dye the suits red instead of washing out the blood." //GS13 - Nanotrasen to GATO icon_state = "warden" item_state = "gy_suit" /obj/item/clothing/under/rank/security/warden/skirt name = "warden's suitskirt" - desc = "A formal security suitskirt for officers complete with Nanotrasen belt buckle." + desc = "A formal security suitskirt for officers complete with GATO belt buckle." //GS13 - Nanotrasen to GATO icon_state = "rwarden_skirt" item_state = "r_suit" body_parts_covered = CHEST|GROIN|ARMS diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 1f9c8fd2bd..7b65b0f237 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -21,7 +21,7 @@ /obj/item/clothing/under/rank/prisoner name = "prison jumpsuit" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + desc = "It's standardised GATO prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." //GS13 - Nanotrasen to GATO icon_state = "prisoner" item_state = "prisoner" sensor_mode = SENSOR_COORDS @@ -29,7 +29,7 @@ /obj/item/clothing/under/rank/prisoner/skirt name = "prison jumpskirt" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + desc = "It's standardised GATO prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." //GS13 - Nanotrasen to GATO icon_state = "prisoner_skirt" item_state = "prisoner_skirt" body_parts_covered = CHEST|GROIN|ARMS diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index e1212cf337..f820096deb 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -126,7 +126,7 @@ /obj/item/clothing/under/dress/corset name = "black corset" - desc = "Nanotrasen is not resposible for any organ damage." + desc = "GATO is not resposible for any organ damage." //GS13 - Nanotrasen to GATO icon_state = "corset" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm index c539899f0e..d2b136408a 100755 --- a/code/modules/events/abductor.dm +++ b/code/modules/events/abductor.dm @@ -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 diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index cf94253bbb..6428ed35f9 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -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." diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index f058f37da4..e43b3e856d 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -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." diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index d3b1e8ea7e..cfb5889e4f 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -1,8 +1,8 @@ /datum/round_event_control/anomaly/anomaly_flux name = "Anomaly: Hyper-Energetic Flux" typepath = /datum/round_event/anomaly/anomaly_flux - - max_occurrences = 5 + min_players = 20 + max_occurrences = 0 //GS13 - this event ends poorly 90% of the time weight = 20 description = "This anomaly shocks and explodes." diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 232d2ddd35..a5424ee900 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -1,7 +1,7 @@ /datum/round_event_control/anomaly/anomaly_grav name = "Anomaly: Gravitational" typepath = /datum/round_event/anomaly/anomaly_grav - + min_players = 4 //GS13 - mostly harmless anomaly max_occurrences = 5 weight = 20 description = "This anomaly throws things around." diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index dee0330743..a0e69b8a03 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -2,8 +2,8 @@ name = "Anomaly: Pyroclastic" typepath = /datum/round_event/anomaly/anomaly_pyro - min_players = 5 - max_occurrences = 5 + 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." diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 63d7122cb8..16e167d22b 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -1,9 +1,9 @@ /datum/round_event_control/aurora_caelus name = "Aurora Caelus" typepath = /datum/round_event/aurora_caelus - max_occurrences = 1 + max_occurrences = 4 //GS13 - pretty lights, why not weight = 4 - earliest_start = 5 MINUTES + earliest_start = 20 MINUTES category = EVENT_CATEGORY_FRIENDLY description = "A colourful display can be seen through select windows. And the kitchen." @@ -20,9 +20,9 @@ var/aurora_progress = 0 //this cycles from 1 to 8, slowly changing colors from gentle green to gentle blue /datum/round_event/aurora_caelus/announce() - priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. Nanotrasen has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.", + priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. GATO has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.", sound = 'sound/misc/notice2.ogg', - sender_override = "Nanotrasen Meteorology Division") + sender_override = "GATO Meteorology Division") //GS13 - Nanotrasen to GATO for(var/V in GLOB.player_list) var/mob/M = V if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z)) @@ -53,7 +53,7 @@ fade_to_black(S) priority_announce("The aurora caelus event is now ending. Starlight conditions will slowly return to normal. When this has concluded, please return to your workplace and continue work as normal. Have a pleasant shift, [station_name()], and thank you for watching with us.", sound = 'sound/misc/notice2.ogg', - sender_override = "Nanotrasen Meteorology Division") + sender_override = "GATO Meteorology Division") //GS13 - Nanotrasen to GATO /datum/round_event/aurora_caelus/proc/fade_to_black(turf/open/space/S) set waitfor = FALSE diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index e43ce0d4d0..298d40a54e 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -2,7 +2,7 @@ name = "Blob" typepath = /datum/round_event/ghost_role/blob weight = 10 - max_occurrences = 1 + max_occurrences = 0 //GS13 - let's not earliest_start = 40 MINUTES min_players = 35 diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm index 85d69a1509..5a907a48fc 100644 --- a/code/modules/events/brain_trauma.dm +++ b/code/modules/events/brain_trauma.dm @@ -2,7 +2,8 @@ name = "Spontaneous Brain Trauma" typepath = /datum/round_event/brain_trauma weight = 25 - min_players = 5 + 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." diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index cab9daaa55..0dd4a2d799 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -4,7 +4,7 @@ weight = 5 min_players = 15 - max_occurrences = 1 + 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." diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index bed6cf84ea..a1d435e919 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -2,9 +2,9 @@ name = "Carp Migration" typepath = /datum/round_event/carp_migration weight = 15 - min_players = 2 - earliest_start = 10 MINUTES - max_occurrences = 6 + min_players = 5 //GS13 - tweaked player count, earlier start and max occurences, to fit lowpop better + earliest_start = 20 MINUTES + max_occurrences = 4 category = EVENT_CATEGORY_ENTITIES description = "Summons a school of space carp." diff --git a/code/modules/events/cat_surgeon.dm b/code/modules/events/cat_surgeon.dm index 254fdaecca..90aa24f28e 100644 --- a/code/modules/events/cat_surgeon.dm +++ b/code/modules/events/cat_surgeon.dm @@ -1,14 +1,14 @@ /datum/round_event_control/cat_surgeon name = "Cat Surgeon" typepath = /datum/round_event/cat_surgeon - max_occurrences = 1 + max_occurrences = 0 //GS13 - this one's just cruel lmao weight = 5 category = EVENT_CATEGORY_ENTITIES description = "Spawns a crazy surgeon ready to perverse things with the crew." /datum/round_event/cat_surgeon/announce(fake) priority_announce("One of our... ahem... 'special' cases has escaped. As it happens their last known location before their tracker went dead is your station so keep an eye out for them. On an unrelated note, has anyone seen our cats?", - sender_override = "Nanotrasen Psych Ward", has_important_message = TRUE) + sender_override = "GATO Psych Ward", has_important_message = TRUE) //GS13 - Nanotrasen to GATO /datum/round_event/cat_surgeon/start() var/list/spawn_locs = list() diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 753349fdd6..af750851d6 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -1,8 +1,8 @@ /datum/round_event_control/disease_outbreak name = "Disease Outbreak" typepath = /datum/round_event/disease_outbreak - max_occurrences = 1 - min_players = 3 + max_occurrences = 0 //GS13 Edit: Disabling this for now. + min_players = 5 weight = 5 category = EVENT_CATEGORY_HEALTH description = "A classic or advanced disease will infect some crewmembers." diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 6b0139c449..85b695db02 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -2,7 +2,7 @@ name = "Minor Space Dust" typepath = /datum/round_event/space_dust weight = 200 - max_occurrences = 1000 + max_occurrences = 15 //GS13 - it was originaly 1000 occurences, which won't work out well in our super long rounds earliest_start = 0 MINUTES alert_observers = FALSE category = EVENT_CATEGORY_SPACE @@ -21,7 +21,7 @@ typepath = /datum/round_event/sandstorm weight = 5 max_occurrences = 1 - min_players = 10 + min_players = 20 earliest_start = 20 MINUTES category = EVENT_CATEGORY_SPACE description = "The station is pelted by an extreme amount of sand for several minutes." diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index f04389b1a1..88f3828aee 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -1,15 +1,16 @@ /datum/round_event_control/electrical_storm name = "Electrical Storm" typepath = /datum/round_event/electrical_storm - earliest_start = 10 MINUTES + earliest_start = 30 MINUTES //GS13 Edit: Reducing pain for normal station ongoings. min_players = 5 weight = 40 + 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 = 25 + var/lightsoutRange = 10 //GS13 Edit: 25 down to 10 announce_when = 1 /datum/round_event/electrical_storm/announce(fake) diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index 4f94576fa6..23837bc529 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -2,8 +2,8 @@ name = "Random Heart Attack" typepath = /datum/round_event/heart_attack weight = 10 - max_occurrences = 2 - min_players = 10 // To avoid shafting lowpop + max_occurrences = 0 //GS13 - let's turn this off for now + min_players = 16 // To avoid shafting lowpop category = EVENT_CATEGORY_HEALTH description = "A random crewmember's heart gives out." diff --git a/code/modules/events/high_priority_bounty.dm b/code/modules/events/high_priority_bounty.dm index 90f27b19f9..f424899fe1 100644 --- a/code/modules/events/high_priority_bounty.dm +++ b/code/modules/events/high_priority_bounty.dm @@ -1,14 +1,14 @@ /datum/round_event_control/high_priority_bounty name = "High Priority Bounty" typepath = /datum/round_event/high_priority_bounty - max_occurrences = 3 + 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." /datum/round_event/high_priority_bounty/announce(fake) - priority_announce("Central Command has issued a high-priority cargo bounty. Details have been sent to all bounty consoles.", "Nanotrasen Bounty Program") + priority_announce("Central Command has issued a high-priority cargo bounty. Details have been sent to all bounty consoles.", "GATO Bounty Program") //GS13 - Nanotrasen to GATO /datum/round_event/high_priority_bounty/start() var/datum/bounty/B diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 525b49ba6a..82958ff921 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -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 = 15 - max_occurrences = 5 + 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." diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 0fefb43170..bfaa7db936 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -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." diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm index dc24a52b19..f3bbaaf37a 100644 --- a/code/modules/events/major_dust.dm +++ b/code/modules/events/major_dust.dm @@ -1,6 +1,8 @@ /datum/round_event_control/meteor_wave/major_dust name = "Major Space Dust" typepath = /datum/round_event/meteor_wave/major_dust + 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." diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index a3534be3ea..d22d33a343 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -7,9 +7,9 @@ name = "Meteor Wave: Normal" typepath = /datum/round_event/meteor_wave weight = 4 - min_players = 15 - max_occurrences = 3 - earliest_start = 25 MINUTES + min_players = 20 //GS13 - tweaked all meteor waves to nerf them a bit + max_occurrences = 2 + earliest_start = 40 MINUTES category = EVENT_CATEGORY_SPACE description = "A regular meteor wave." @@ -87,8 +87,8 @@ typepath = /datum/round_event/meteor_wave/threatening weight = 5 min_players = 20 - max_occurrences = 3 - earliest_start = 35 MINUTES + max_occurrences = 0 //GS13 - too chaotic + earliest_start = 45 MINUTES description = "A meteor wave with higher chance of big meteors." /datum/round_event/meteor_wave/threatening @@ -100,8 +100,8 @@ typepath = /datum/round_event/meteor_wave/catastrophic weight = 7 min_players = 25 - max_occurrences = 3 - earliest_start = 45 MINUTES + max_occurrences = 0 //GS13 - too chaotic + earliest_start = 55 MINUTES description = "A meteor wave that might summon a tunguska class meteor." /datum/round_event/meteor_wave/catastrophic diff --git a/code/modules/events/mice_migration.dm b/code/modules/events/mice_migration.dm index 5bf842ba47..d13e2d6eff 100644 --- a/code/modules/events/mice_migration.dm +++ b/code/modules/events/mice_migration.dm @@ -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 = 5 - var/maximum_mice = 15 + 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", diff --git a/code/modules/events/nightmare.dm b/code/modules/events/nightmare.dm index 71351d85be..066552c3a5 100644 --- a/code/modules/events/nightmare.dm +++ b/code/modules/events/nightmare.dm @@ -1,8 +1,8 @@ /datum/round_event_control/nightmare name = "Spawn Nightmare" typepath = /datum/round_event/ghost_role/nightmare - max_occurrences = 1 - min_players = 20 + max_occurrences = 0 //GS13 - no antags, thanks + min_players = 25 dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "Spawns a nightmare, aiming to darken the station." diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm index cbefa58c7b..90f571a4d5 100644 --- a/code/modules/events/operative.dm +++ b/code/modules/events/operative.dm @@ -2,7 +2,7 @@ name = "Lone Operative" typepath = /datum/round_event/ghost_role/operative weight = 0 //Admin only - max_occurrences = 1 + max_occurrences = 0 //GS13 - just in case category = EVENT_CATEGORY_INVASION description = "A single nuclear operative assaults the station." diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 266cb3f0ac..31eb07080c 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -2,9 +2,9 @@ name = "Space Pirates" typepath = /datum/round_event/pirates weight = 8 - max_occurrences = 1 - min_players = 10 - earliest_start = 30 MINUTES + max_occurrences = 0 //GS13 - no antags, thanks + min_players = 20 + earliest_start = 50 MINUTES dynamic_should_hijack = TRUE category = EVENT_CATEGORY_INVASION description = "The crew will either pay up, or face a pirate assault." diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 49e60893f3..081a1bce89 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -2,8 +2,9 @@ name = "Portal Storm: Syndicate Shocktroops" typepath = /datum/round_event/portal_storm/syndicate_shocktroop weight = 2 - min_players = 15 - earliest_start = 30 MINUTES + 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." diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 110ab745a0..e49e699338 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -2,7 +2,7 @@ name = "Grey Tide" typepath = /datum/round_event/grey_tide max_occurrences = 2 - min_players = 5 + min_players = 12 category = EVENT_CATEGORY_ENGINEERING description = "Bolts open all doors in one or more departments." diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 5ba3d017e1..2973a6b642 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -1,7 +1,7 @@ /datum/round_event_control/radiation_storm name = "Radiation Storm" typepath = /datum/round_event/radiation_storm - max_occurrences = 1 + max_occurrences = 0 //GS13 - removed because it disrupts RPs too much category = EVENT_CATEGORY_SPACE description = "Radiation storm affects the station, forcing the crew to escape to maintenance." diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index 49a0f94000..09b38d0439 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -7,12 +7,13 @@ #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 = 1 - earliest_start = 7 MINUTES + 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." @@ -25,7 +26,7 @@ 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 @@ -62,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 @@ -99,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) @@ -251,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) @@ -296,3 +321,4 @@ #undef ITS_HIP_TO #undef MY_GOD_JC #undef DELTA_CRATES +#undef SNACK_ATTACK //GS13 Add: Snack attack diff --git a/code/modules/events/space_dragon.dm b/code/modules/events/space_dragon.dm index 9298767a42..c93376ddbf 100644 --- a/code/modules/events/space_dragon.dm +++ b/code/modules/events/space_dragon.dm @@ -2,8 +2,8 @@ name = "Spawn Space Dragon" typepath = /datum/round_event/ghost_role/space_dragon weight = 8 - max_occurrences = 1 - min_players = 20 + max_occurrences = 0 //GS13 - no antags, thanks + min_players = 25 dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "Spawns a space dragon, which will try to take over the station." diff --git a/code/modules/events/space_ninja.dm b/code/modules/events/space_ninja.dm index 6f4564cb63..7e7ae751af 100644 --- a/code/modules/events/space_ninja.dm +++ b/code/modules/events/space_ninja.dm @@ -1,10 +1,10 @@ /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 = 15 + min_players = 25 dynamic_should_hijack = TRUE category = EVENT_CATEGORY_INVASION description = "A space ninja infiltrates the station." diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 0861ea7caa..5badf86774 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/spacevine weight = 15 max_occurrences = 3 - min_players = 20 + min_players = 15 //GS13 - should be enough players category = EVENT_CATEGORY_ENTITIES description = "Kudzu begins to overtake the station. Might spawn man-traps." diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 6e8c29d3a9..51a95811fc 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -2,7 +2,7 @@ name = "Spider Infestation" typepath = /datum/round_event/spider_infestation weight = 5 - max_occurrences = 1 + max_occurrences = 2 min_players = 15 category = EVENT_CATEGORY_ENTITIES description = "Spawns spider eggs, ready to hatch." diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm index 31b14bb8b9..bab8797eb4 100644 --- a/code/modules/events/spontaneous_appendicitis.dm +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -2,7 +2,7 @@ name = "Spontaneous Appendicitis" typepath = /datum/round_event/spontaneous_appendicitis weight = 20 - max_occurrences = 4 + max_occurrences = 0 //GS13 - a bit too disruptive for people who wanna RP in peace earliest_start = 10 MINUTES min_players = 5 // To make your chance of getting help a bit higher. category = EVENT_CATEGORY_HEALTH diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm index f7240f9e8b..71aeb058d5 100644 --- a/code/modules/events/stray_cargo.dm +++ b/code/modules/events/stray_cargo.dm @@ -3,7 +3,7 @@ name = "Stray Cargo Pod" typepath = /datum/round_event/stray_cargo weight = 5 - max_occurrences = 4 + 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." diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm index 08deaae7d5..1a40c8a7ce 100644 --- a/code/modules/events/supermatter_surge.dm +++ b/code/modules/events/supermatter_surge.dm @@ -2,8 +2,8 @@ name = "Supermatter Surge" typepath = /datum/round_event/supermatter_surge weight = 20 - max_occurrences = 5 - earliest_start = 10 MINUTES + max_occurrences = 0 //GS13 - engineering isn't always omni present here due to lowpop + earliest_start = 40 MINUTES category = EVENT_CATEGORY_ENGINEERING description = "Randomly modifies the supermatter's power, giving the engineers a lot of headaches." diff --git a/code/modules/events/supernova.dm b/code/modules/events/supernova.dm index 16c81e4056..21a07e50ae 100644 --- a/code/modules/events/supernova.dm +++ b/code/modules/events/supernova.dm @@ -2,7 +2,7 @@ name = "Supernova" typepath = /datum/round_event/supernova weight = 5 - max_occurrences = 1 + 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." @@ -35,7 +35,7 @@ /datum/round_event/supernova/announce() var/message = "[station_name()]: Our tachyon-doppler array has detected a supernova in your vicinity. Peak flux from the supernova estimated to be [round(power,0.1)] times current solar flux; if the supernova is close to your sun in the sky, your solars may receive this as a power boost.[power > 1 ? " Short burts of radiation may be possible, so please prepare accordingly." : "We expect no radiation bursts from this one."] We hope you enjoy the light." if(prob(power * 25)) - priority_announce(message, sender_override = "Nanotrasen Meteorology Division", has_important_message = TRUE) + priority_announce(message, sender_override = "GATO Meteorology Division", has_important_message = TRUE) //GS13 - Nanotrasen to GATO announced = TRUE else print_command_report(message) @@ -69,7 +69,7 @@ qdel(supernova) if(announced) priority_announce("The supernova's flux is now negligible. Radiation storms have ceased. Have a pleasant shift, [station_name()], and thank you for bearing with nature.", - sender_override = "Nanotrasen Meteorology Division") + sender_override = "GATO Meteorology Division") //GS13 - Nanotrasen to GATO /datum/weather/rad_storm/supernova weather_duration_lower = 50 diff --git a/code/modules/events/travelling_trader.dm b/code/modules/events/travelling_trader.dm index ac9d103f5f..7be23c215f 100644 --- a/code/modules/events/travelling_trader.dm +++ b/code/modules/events/travelling_trader.dm @@ -2,8 +2,8 @@ name = "Travelling Trader" typepath = /datum/round_event/travelling_trader weight = 8 - max_occurrences = 2 - earliest_start = 0 MINUTES + 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." diff --git a/code/modules/events/untie_shoes.dm b/code/modules/events/untie_shoes.dm index 17dd2ca8b2..04f0da14d4 100644 --- a/code/modules/events/untie_shoes.dm +++ b/code/modules/events/untie_shoes.dm @@ -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." diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index fb88f81598..ee5f4e83f3 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -2,7 +2,8 @@ name = "Clogged Vents: Normal" typepath = /datum/round_event/vent_clog weight = 10 - max_occurrences = 3 + 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." @@ -24,8 +25,9 @@ /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, + //datum/reagent/toxin/plantbgone, //GS13 Remove: Annoying Reagent /datum/reagent/blood, /datum/reagent/medicine/charcoal, /datum/reagent/drug/space_drugs, @@ -49,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, @@ -107,7 +110,7 @@ name = "Clogged Vents: Threatening" typepath = /datum/round_event/vent_clog/threatening weight = 4 - min_players = 15 + min_players = 18 max_occurrences = 1 earliest_start = 35 MINUTES description = "Extra dangerous chemicals come out of the scrubbers." diff --git a/code/modules/events/wisdomcow.dm b/code/modules/events/wisdomcow.dm index 3c03911d1d..d4d7014b21 100644 --- a/code/modules/events/wisdomcow.dm +++ b/code/modules/events/wisdomcow.dm @@ -1,13 +1,13 @@ /datum/round_event_control/wisdomcow name = "Wisdom cow" typepath = /datum/round_event/wisdomcow - max_occurrences = 1 + max_occurrences = 2 weight = 10 category = EVENT_CATEGORY_FRIENDLY description = "A cow appears to tell you wise words." /datum/round_event/wisdomcow/announce(fake) - priority_announce("A wise cow has been spotted in the area. Be sure to ask for her advice.", "Nanotrasen Cow Ranching Agency") + priority_announce("A wise cow has been spotted in the area. Be sure to ask for her advice.", "GATO Cow Ranching Agency") //GS13 - Nanotrasen to GATO /datum/round_event/wisdomcow/start() var/turf/targetloc = get_random_station_turf() diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 413658e34d..ef2206724c 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/wormholes max_occurrences = 3 weight = 2 - min_players = 2 + min_players = 8 category = EVENT_CATEGORY_SPACE description = "Space time anomalies appear on the station, randomly teleporting people who walk into them." diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 5098efa7bf..61a872fed9 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -46,6 +46,13 @@ checkLiked(fraction, M) reagents.reaction(M, INGEST, fraction) reagents.trans_to(M, gulp_size, log = TRUE) + //GS13 Port - Fullness + if(iscarbon(M)) + var/mob/living/carbon/human/human_eater = M + if(HAS_TRAIT(M, TRAIT_VORACIOUS)) + human_eater.fullness += min(gulp_size * 0.67, reagents.total_volume * 0.67) + else + human_eater.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return TRUE diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 3fd2d85cd1..9c51192b0f 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -261,7 +261,7 @@ if("A&A") fullname = "Ash and Asher" if("Generic") - fullname = "Nanotrasen Cheap Imitations" + fullname = "GATO Cheap Imitations" //GS13 - Nanotrasen to GATO var/chance = 50 if(prob(chance)) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index f51530a972..0449a09c92 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -131,4 +131,3 @@ reagents.reaction(target, TOUCH) reagents.clear_reagents() return - diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 48b1d65b5a..fbc8403bee 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -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) @@ -114,7 +115,7 @@ All foods are distributed among various categories. Use common sense. return FALSE //GS13 EDIT, FULNESS - var/fullness = M.nutrition + 10 + var/fullness = 0 //for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting // fullness += C.nutriment_factor * C.volume / C.metabolization_rate //GS13 Edit @@ -137,6 +138,8 @@ All foods are distributed among various categories. Use common sense. else if(fullness > (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat user.visible_message("[user] cannot force any more of \the [src] to go down [user.p_their()] throat!", "You cannot force any more of \the [src] to go down your throat!") return FALSE + if(HAS_TRAIT(M, TRAIT_VORACIOUS)) + M.SetNextAction(CLICK_CD_MELEE * 0.5) //nom nom nom else if(!isbrain(M)) //If you're feeding it to someone else. if(fullness <= (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 1000))) @@ -164,6 +167,7 @@ All foods are distributed among various categories. Use common sense. var/bitevolume = 1 if(HAS_TRAIT(M, TRAIT_VORACIOUS)) bitevolume = bitevolume * 0.67 + human_eater.fullness += bitevolume; if(istype(human_eater)) human_eater.fullness += bitevolume; diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 2d49997c25..d81fa8608d 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -476,7 +476,7 @@ /obj/item/reagent_containers/food/snacks/cube/chicken name = "chicken cube" - desc = "A new Nanotrasen classic, the chicken cube. Tastes like everything!" + desc = "A new GATO classic, the chicken cube. Tastes like everything!" //GS13 - Nanotrasen to GATO list_reagents = list(/datum/reagent/consumable/eggyolk = 30, /datum/reagent/medicine/strange_reagent = 1) tastes = list("chicken" = 1, "the country" = 1, "chicken bouillon" = 1) dried_being = /mob/living/simple_animal/chicken diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index bd707cece7..477f249b13 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -71,6 +71,7 @@ /obj/item/reagent_containers/food/snacks/popcorn name = "popcorn" desc = "Now let's find some cinema." + icon = 'GainStation13/icons/obj/food/food.dmi' //GS13 - GATO palette icon_state = "popcorn" trash = /obj/item/trash/popcorn list_reagents = list(/datum/reagent/consumable/nutriment = 2) diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 964b932453..7adb024f1e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -10,7 +10,7 @@ /obj/machinery/icecream_vat name = "ice cream vat" - desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!" + desc = "Ding-aling ding dong. Get your GATO-approved ice cream!" //GS13 - Nanotrasen to GATO icon = 'icons/obj/kitchen.dmi' icon_state = "icecream_vat" density = TRUE diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index 5261887b73..61e2b625d1 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -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 diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 117a188af8..4c7aa5bbb7 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -34,7 +34,7 @@ /mob/living/simple_animal/jacq name = "Jacqueline the Pumpqueen" real_name = "Jacqueline" - icon = 'icons/obj/halloween_items.dmi' + icon = 'GainStation13/icons/obj/halloween_items.dmi' //GS13 Edit: Fat Jacqueline icon_state = "jacqueline" maxHealth = 25 health = 25 diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index a9717ed0ac..f110c03975 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -192,7 +192,7 @@ playsound(src, "sparks", 75, TRUE) obj_flags |= EMAGGED to_chat(user, "You vastly increase projector power and override the safety and security protocols.") - say("Warning. Automatic shutoff and derezzing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator.") + say("Warning. Automatic shutoff and derezzing protocols have been corrupted. Please call GATO maintenance and do not use the simulator.") //GS13 - Nanotrasen to GATO log_game("[key_name(user)] emagged the Holodeck Control Console") message_admins("[ADMIN_LOOKUPFLW(user)] emagged the Holodeck Control Console.") nerf(!(obj_flags & EMAGGED)) diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index 26e5b16d0a..8858952f8c 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -143,7 +143,7 @@ /obj/item/integrated_circuit/time/clock name = "integrated clock (NT Common Time)" - desc = "Tells you what the time is, in Nanotrasen Common Time." //round time + desc = "Tells you what the time is, in GATO Common Time." //GS13 - Nanotrasen to GATO icon_state = "clock" inputs = list() outputs = list( diff --git a/code/modules/jobs/job_titles.dm b/code/modules/jobs/job_titles.dm new file mode 100644 index 0000000000..8518d4950c --- /dev/null +++ b/code/modules/jobs/job_titles.dm @@ -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") diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 969a39b560..f9140cfc43 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -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. diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 6d8f4256b5..ec3d4d8d6b 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -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" diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index fe594e4660..e929f50207 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -7,7 +7,7 @@ faction = "Station" total_positions = 1 spawn_positions = 1 - supervisors = "Nanotrasen officials and Space law" + supervisors = "GATO officials and Space law" //GS13 - Nanotrasen to GATO selection_color = "#aac1ee" req_admin_notify = 1 minimal_player_age = 20 @@ -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" diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 732ac03016..49056581f9 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -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 diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index f760cfb490..7644e39d70 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -436,12 +436,12 @@ alert("No news network found on station. Aborting.") var/channelexists = 0 for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == "Nanotrasen Book Club") + if(FC.channel_name == "GATO Book Club") //GS13 - Nanotrasen to GATO channelexists = 1 break if(!channelexists) - GLOB.news_network.CreateFeedChannel("Nanotrasen Book Club", "Library", null) - GLOB.news_network.SubmitArticle(scanner.cache.dat, "[scanner.cache.name]", "Nanotrasen Book Club", null) + GLOB.news_network.CreateFeedChannel("GATO Book Club", "Library", null) //GS13 - Nanotrasen to GATO + GLOB.news_network.SubmitArticle(scanner.cache.dat, "[scanner.cache.name]", "GATO Book Club", null) //GS13 - Nanotrasen to GATO alert("Upload complete. Your uploaded title is now available on station newscasters.") if(href_list["orderbyid"]) if(printer_cooldown > world.time) diff --git a/code/modules/mafia/roles.dm b/code/modules/mafia/roles.dm index d649081e49..8bcaa6568d 100644 --- a/code/modules/mafia/roles.dm +++ b/code/modules/mafia/roles.dm @@ -544,7 +544,7 @@ role_flags |= ROLE_VULNERABLE /datum/mafia_role/hos/proc/internal_affairs(datum/mafia_controller/game) - to_chat(body,span_userdanger("You have been killed by Nanotrasen Internal Affairs!")) + to_chat(body,span_userdanger("You have been killed by GATO Internal Affairs!")) //GS13 - Nanotrasen to GATO reveal_role(game, verbose = TRUE) kill(game,src,FALSE) //you technically kill yourself but that shouldn't matter diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 882f4b6a2f..dc048e861f 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -137,7 +137,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also /obj/machinery/computer/auxillary_base/proc/set_landing_zone(turf/T, mob/user, no_restrictions) var/obj/docking_port/mobile/auxillary_base/base_dock = locate(/obj/docking_port/mobile/auxillary_base) in SSshuttle.mobile if(!base_dock) //Not all maps have an Aux base. This object is useless in that case. - to_chat(user, "This station is not equipped with an auxillary base. Please contact your Nanotrasen contractor.") + to_chat(user, "This station is not equipped with an auxillary base. Please contact your GATO contractor.") //GS13 - Nanotrasen to GATO return if(!no_restrictions) var/static/list/disallowed_turf_types = typecacheof(list( @@ -319,7 +319,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also break if(!Mport) - to_chat(user, "This station is not equipped with an appropriate mining shuttle. Please contact Nanotrasen Support.") + to_chat(user, "This station is not equipped with an appropriate mining shuttle. Please contact GATO Support.") //GS13 - Nanotrasen to GATO return var/obj/docking_port/mobile/mining_shuttle @@ -333,7 +333,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also break if(!mining_shuttle) //Not having a mining shuttle is a map issue - to_chat(user, "No mining shuttle signal detected. Please contact Nanotrasen Support.") + to_chat(user, "No mining shuttle signal detected. Please contact GATO Support.") //GS13 - Nanotrasen to GATO SSshuttle.stationary.Remove(Mport) qdel(Mport) return diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index facb34db47..779c488e3c 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -160,15 +160,15 @@ /obj/item/clothing/suit/hooded/explorer/heva name = "HEVA suit" - desc = "The Hazardous Environments extra-Vehicular Activity suit, developed by WanTon & Sons Perilous Mining and sold to Nanotrasen for missions within inhospitable, mineral-rich zones. \ - Its sleek plating deflects most biological - radioactive - and chemical substances and materials. Most notably, this will negate the effects of ash storms and give goliaths better grip against you." + desc = "The Hazardous Environments extra-Vehicular Activity suit, developed by WanTon & Sons Perilous Mining and sold to GATO for missions within inhospitable, mineral-rich zones. \ + Its sleek plating deflects most biological - radioactive - and chemical substances and materials. Most notably, this will negate the effects of ash storms and give goliaths better grip against you." //GS13 - Nanotrasen to GATO icon_state = "heva" item_state = "heva" w_class = WEIGHT_CLASS_BULKY 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) ..() diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 85a70f49b0..4fd8f36179 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -107,7 +107,7 @@ icon = 'icons/obj/device.dmi' icon_state = "beacon" template_id = "reactor" - + //Pod objects //Window @@ -314,7 +314,7 @@ //Signs /obj/structure/sign/mining name = "nanotrasen mining corps sign" - desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims." + desc = "A sign of relief for weary miners, and a warning for would-be competitors to GATO's mining claims." //GS13 - Nanotrasen to GATO icon = 'icons/turf/walls/survival_pod_walls.dmi' icon_state = "ntpod" buildable_sign = FALSE diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index efc00159ea..60263284b1 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -59,6 +59,14 @@ new /obj/item/gun/magic/wand/book/healing(src) if(10) new /obj/item/guardiancreator(src) + if(11) + new /obj/item/book/granter/spell/fattening(src) + new /obj/item/grenade/chem_grenade/lipoifier_weak(src) + if(12) + new /obj/item/book/granter/spell/fattening/transfer(src) + new /obj/item/book/granter/spell/fattening/steal (src) + if(13) + new /obj/item/gun/magic/wand/food(src) /obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents() var/loot = rand(1,10) @@ -77,13 +85,25 @@ new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) if(7) - new /obj/item/grenade/clusterbuster/inferno(src) - if(8) new /obj/item/gun/magic/wand/book/shock(src) - if(9) + if(8) new /obj/item/gun/magic/wand/book/page(src) - if(10) + if(9) new /obj/item/gun/magic/wand/book/spark(src) + if(10) + new /obj/item/book/granter/spell/fattening(src) + new /obj/item/grenade/chem_grenade/lipoifier_weak(src) + if(11) + new /obj/item/book/granter/spell/fattening/transfer(src) + new /obj/item/book/granter/spell/fattening/steal (src) + if(12) + new /obj/item/gun/energy/fatoray(src) + if(13) + new /obj/item/gun/energy/fatoray/cannon(src) + if(14) + new /obj/item/gun/magic/wand/food(src) + if(15) + new /obj/item/karl_pickaxe(src) /obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents() var/loot = rand(1,12) @@ -113,6 +133,20 @@ new /obj/item/clothing/suit/space/hardsuit/cult(src) if(12) new /obj/item/katana/lavaland(src) + if(13) + new /obj/item/book/granter/spell/fattening(src) + new /obj/item/grenade/chem_grenade/lipoifier_weak(src) + if(14) + new /obj/item/book/granter/spell/fattening/transfer(src) + new /obj/item/book/granter/spell/fattening/steal (src) + if(15) + new /obj/item/gun/energy/fatoray(src) + if(16) + new /obj/item/gun/energy/fatoray/cannon(src) + if(17) + new /obj/item/gun/magic/wand/food(src) + if(18) + new /obj/item/karl_pickaxe(src) /obj/structure/closet/crate/necropolis/tendril/all/PopulateContents() var/loot = rand(1,28) @@ -148,34 +182,47 @@ new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) if(15) - new /obj/item/grenade/clusterbuster/inferno(src) - if(16) new /obj/item/gun/magic/wand/book/shock(src) - if(17) + if(16) new /obj/item/gun/magic/wand/book/page(src) - if(18) + if(17) new /obj/item/gun/magic/wand/book/spark(src) - if(19) + if(18) new /obj/item/soulstone/anybody(src) - if(20) + if(19) new /obj/item/rod_of_asclepius(src) - if(21) + if(20) new /obj/item/organ/heart/cursed/wizard(src) - if(22) + if(21) new /obj/item/book/granter/spell/summonitem(src) - if(23) + if(22) new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/bedsheet/cult(src) - if(24) + if(23) new /obj/item/clothing/neck/necklace/memento_mori(src) - if(25) + if(24) new /obj/item/warp_cube/red(src) - if(26) + if(25) new /obj/item/immortality_talisman(src) - if(27) + if(26) new /obj/item/gun/magic/wand/book/healing(src) - if(28) + if(27) new /obj/item/guardiancreator(src) +//GS13 stuff + if(28) + new /obj/item/book/granter/spell/fattening(src) + new /obj/item/grenade/chem_grenade/lipoifier_weak(src) + if(29) + new /obj/item/book/granter/spell/fattening/transfer(src) + new /obj/item/book/granter/spell/fattening/steal (src) + if(30) + new /obj/item/gun/energy/fatoray(src) + if(31) + new /obj/item/gun/energy/fatoray/cannon(src) + if(32) + new /obj/item/gun/magic/wand/food(src) + if(33) + new /obj/item/karl_pickaxe(src) //KA modkit design discs /obj/item/disk/design_disk/modkit_disc @@ -354,6 +401,23 @@ if(do_after(owner, 40, target = owner)) MM.mori() +//Karl's pickaxe +/obj/item/karl_pickaxe //GS13 addition + name = "karl's pickaxe" + desc = "You can never dig too deep" + icon = 'GainStation13/icons/obj/mining.dmi' + icon_state = "karlpick" + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK + force = 30 + throwforce = 20 + w_class = WEIGHT_CLASS_SMALL + tool_behaviour = TOOL_MINING + toolspeed = 0.01 + usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg') + attack_verb = list("hit", "pierced", "sliced", "attacked", "rocked", "stoned", "power attacked") + + //Wisp Lantern /obj/item/wisp_lantern name = "spooky lantern" diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 82c643546a..09b77281c7 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -19,6 +19,12 @@ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) L.apply_status_effect(STATUS_EFFECT_EXERCISED) + //GS13 + var/mob/living/carbon/puncher = user + if(puncher) + puncher.adjust_fatness(-loss_per_punch, FATTENING_TYPE_WEIGHT_LOSS) + + /obj/structure/weightmachine desc = "Just looking at this thing makes you feel tired." icon = 'icons/obj/fitness.dmi' diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 214e050e5a..af63661983 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -131,7 +131,7 @@ /obj/machinery/mineral/processing_unit/Initialize(mapload) . = ..() proximity_monitor = new(src, 1) - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/calorite), INFINITY, TRUE, /obj/item/stack) //GS13 EDIT stored_research = new /datum/techweb/specialized/autounlocking/smelter selected_material = SSmaterials.GetMaterialRef(/datum/material/iron) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 32b79343e8..66f84cbf3c 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -18,7 +18,7 @@ var/ore_pickup_rate = 15 var/ore_multiplier = 1 var/point_upgrade = 1 - var/list/ore_values = list(/datum/material/glass = 1, /datum/material/iron = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60) + var/list/ore_values = list(/datum/material/glass = 1, /datum/material/iron = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60, /datum/material/calorite = 30) //GS13 EDIT, CALORITE var/message_sent = FALSE var/list/ore_buffer = list() var/datum/techweb/stored_research @@ -46,7 +46,7 @@ for(var/obj/item/stock_parts/manipulator/M in component_parts) ore_pickup_rate_temp = 15 * M.rating for(var/obj/item/stock_parts/micro_laser/L in component_parts) - point_upgrade_temp = 0.65 + (0.35 * L.rating) + point_upgrade_temp = 0.83 + (0.17 * L.rating) //GS13 EDIT avg_bin_level /= bins? bins : 1 ore_multiplier = STANDARD_PART_LEVEL_ORE_COEFFICIENT(avg_bin_level) ore_pickup_rate = ore_pickup_rate_temp diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index e6281bb695..133e88f751 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -27,6 +27,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs) /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, + /datum/material/calorite, //GS13 EDIT ) AddComponent(/datum/component/material_container, materials_list, INFINITY, allowed_types=/obj/item/stack, _disable_attackby=TRUE) if (!GLOB.ore_silo_default && mapload && is_station_level(z)) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index b3811b8fef..97195c966e 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -493,7 +493,7 @@ if(!arrivals_docked) var/atom/movable/screen/splash/Spl = new(character.client, TRUE) Spl.Fade(TRUE) - character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25) + character.playsound_local(get_turf(character), 'GainStation13/sound/voice/Approaching.ogg', 25) //GS13 - "now approaching, general station 13" job.standard_assign_skills(character.mind) @@ -606,6 +606,9 @@ dept_dat += "[job_datum.title] ([num_positions_current]/[num_positions_total])" else dept_dat += "[job_datum.title] ([num_positions_current]/[num_positions_total])" + if(client && client.prefs && client?.prefs?.alt_titles_preferences[job_datum.title]) + dept_dat += "
      (as [client?.prefs?.alt_titles_preferences[job_datum.title]])" + if(!dept_dat.len) dept_dat += "No positions open." dat += jointext(dept_dat, "") diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index f1e586f090..361521c221 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -1,6 +1,6 @@ /obj/item/mmi name = "Man-Machine Interface" - desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity, that nevertheless has become standard-issue on Nanotrasen stations." + desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity, that nevertheless has become standard-issue on GATO stations." //GS13 - Nanotrasen to GATO icon = 'icons/obj/assemblies.dmi' icon_state = "mmi_off" w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_update_icons.dm index ff4a7d2bba..a896524b72 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_update_icons.dm @@ -66,7 +66,7 @@ if(mob_size == MOB_SIZE_LARGE) cuff_icon += "_[caste]" - dmi_file = 'icons/mob/alienqueen.dmi' + 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 diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index e6aa6abf45..936f8182a6 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -296,20 +296,40 @@ else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD) var/datum/species/S + S = dna.species if(ishuman(src)) - S = dna.species + var/mob/living/carbon/human/H = src + //GS13 Port - Headpat slut stuff + if(HAS_TRAIT(H, TRAIT_DISTANT)) //No mood buff since you're not really liking it. + M.visible_message("[M] gives [H] a pat on the head to make [p_them()] feel better! They seem annoyed...", \ + "You give [H] a pat on the head to make [p_them()] feel better! They seem annoyed as they're now glaring towards you...") + H.adjustArousal(-5) //Why are you touching me? + if(prob(5)) + M.visible_message("[H] quickly twists [M]\'s arm!", \ + "Your arm gets twisted in [H]\'s grasp. Maybe you should have taken the hint...") + playsound(get_turf(H), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + M.emote("scream") + M.dropItemToGround(M.get_active_held_item()) + M.apply_damage(50, STAMINA, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + M.Knockdown(60)//STOP TOUCHING ME! For those spam head pat individuals + else if(HAS_TRAIT(H, TRAIT_HEADPAT_SLUT)) + M.visible_message("[M] gives [H] a pat on the head to make [p_them()] feel better! They seem incredibly pleased!", \ + "You give [H] a pat on the head to make [p_them()] feel better! They seem to like it way too much") + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "lewd_headpat", /datum/mood_event/lewd_headpat) + H.adjustArousal(5) //Headpats are hot af + else + M.visible_message("[M] gives [H] a pat on the head to make [p_them()] feel better!", \ + "You give [H] a pat on the head to make [p_them()] feel better!") + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) - M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ - "You give [src] a pat on the head to make [p_them()] feel better!", target = src, - target_message = "[M] gives you a pat on the head to make you feel better!") - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) friendly_check = TRUE - if(!(client?.prefs.cit_toggles & NO_AUTO_WAG)) - if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail()) - var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail") - for(var/T in many_tails) - if(S.mutant_bodyparts[T] && dna.features[T] != "None") - emote("wag") + if(!(HAS_TRAIT(src, TRAIT_DISTANT))) + if(!(client?.prefs.cit_toggles & NO_AUTO_WAG)) + if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail()) + var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail") + for(var/T in many_tails) + if(S.mutant_bodyparts[T] && dna.features[T] != "None") + emote("wag") else if(check_zone(M.zone_selected) == BODY_ZONE_R_ARM || check_zone(M.zone_selected) == BODY_ZONE_L_ARM) if((pulling == M) && (grab_state == GRAB_PASSIVE)) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 8d0b5db663..ba41c0231a 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -172,6 +172,8 @@ //GS13 EDIT START if(client?.prefs?.noncon_weight_gain) msg += "Non-con fattening is allowed\n" + if(client?.prefs?.trouble_seeker) + msg += "[t_He] seems to want to be confronted.\n" //GS13 EDIT END var/trait_exam = common_trait_examine() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 93bd4c4eba..2a176c755b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -107,6 +107,11 @@ if(wear_id) . += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)]." + //GS13 Port + //Heat Detection + //if(breedable) + if(HAS_TRAIT(src, TRAIT_HEAT)) + . += "[t_He] [t_is] currently in heat." //Status effects var/effects_exam = status_effect_examines() if(!isnull(effects_exam)) @@ -390,6 +395,49 @@ if (length(msg)) . += "[msg.Join("")]" + //GS13 EDIT FAT EXAMINE + switch(fullness) + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) + . += span_warning("[t_He] look[p_s()] like [t_He] ate a bit too much.\n") + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) + . += span_warning("[t_His] stomach looks very round and very full.\n") + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) + . += span_boldwarning("[t_His] stomach has been stretched to enormous proportions.\n") + + if(nutrition < NUTRITION_LEVEL_STARVING - 50) + . += "[t_He] [t_is] severely malnourished.\n" + + if(fatness >= FATNESS_LEVEL_BLOB) + . += span_boldwarning("[t_He] [t_is] completely engulfed in rolls upon rolls of flab. [t_His] head is poking out on top of [t_His] body, akin to a marble on top of a hill.") + + else if(fatness >= FATNESS_LEVEL_IMMOBILE) + . += span_boldwarning("[t_His] body is buried in an overflowing surplus of adipose, and [t_His] legs are completely buried beneath layers of meaty, obese flesh.") + + else if(fatness >= FATNESS_LEVEL_BARELYMOBILE) + . += span_warning("[t_He] [t_is] as wide as [t_He] [t_is] tall, barely able to move [t_His] masssive body that seems to be overtaken with piles of flab.") + + else if(fatness >= FATNESS_LEVEL_EXTREMELY_OBESE) + . += span_warning("[t_He] [t_is] ripe with numerous rolls of fat, almost all of [t_His] body layered with adipose.") + + else if(fatness >= FATNESS_LEVEL_MORBIDLY_OBESE) + . += span_warning("[t_He] [t_is] utterly stuffed with abundant lard, [t_He] doesn't seem to be able to move much.") + + else if(fatness >= FATNESS_LEVEL_OBESE) + . += span_warning("[t_He] [t_is] engorged with fat, [t_His] body laden in rolls of fattened flesh.") + + else if(fatness >= FATNESS_LEVEL_VERYFAT) + . += span_notice("[t_He] [t_is] pleasantly plushy, [t_His] body gently wobbling whenever they move.") + + else if(fatness >= FATNESS_LEVEL_FATTER) + . += span_notice("[t_He] [t_is] soft and curvy, [t_His] belly looking like a small pillow.") + + //GS13 EDIT START + if(client?.prefs?.noncon_weight_gain) + . += "\nNon-con fattening is allowed\n" + if(client?.prefs?.trouble_seeker) + . += "[t_He] seems to want to be confronted.\n" + //GS13 EDIT END + var/trait_exam = common_trait_examine() if (!isnull(trait_exam)) . += trait_exam diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6723d2d4a6..5a9d3971cb 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -66,6 +66,9 @@ var/blood_state = BLOOD_STATE_NOT_BLOODY var/list/blood_smear = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) + //GS13 Port - Arousal + var/cumdrip_rate = 0 //how long are we dripping jizz for? + var/name_override //For temporary visible name changes var/genital_override = FALSE //Force genitals on things incase of chems diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9b8daf0384..a7113c1a06 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1601,8 +1601,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) - if(NUTRITION_LEVEL_FULL to INFINITY) - H.throw_alert("nutrition", /atom/movable/screen/alert/fat) + //if(NUTRITION_LEVEL_FULL to INFINITY) + // H.throw_alert("nutrition", /atom/movable/screen/alert/fat) if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL) H.clear_alert("nutrition") if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) @@ -1610,6 +1610,22 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(0 to NUTRITION_LEVEL_STARVING) H.throw_alert("nutrition", /atom/movable/screen/alert/starving) + //GS13 Port - Add back the fullness Alerts + switch(H.fullness) + if(0 to FULLNESS_LEVEL_BLOATED) + H.clear_alert("fullness") + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) + H.throw_alert("fullness", /atom/movable/screen/alert/gs13/bloated) + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) + H.throw_alert("fullness", /atom/movable/screen/alert/gs13/stuffed) + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) + H.throw_alert("fullness", /atom/movable/screen/alert/gs13/beegbelly) + + //GS13 - Update here for changing belly to match stuffed-ness + var/obj/item/organ/genital/belly/B= H.getorganslot("belly") + if(!isnull(B) && istype(B)) + B.update() + //GS13 EDIT switch(H.fatness) if(FATNESS_LEVEL_BLOB to INFINITY) diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index a209da270f..977d1122e2 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -4,7 +4,7 @@ say_mod = "beeps" default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE) - inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS) //GS13 EDIT SYNTHLIZ GLUTTONY inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 9b2db8b106..f8fba32c82 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -494,9 +494,9 @@ GLOBAL_LIST_INIT(ballmer_good_msg, list("Hey guys, what if we rolled out a blues "Why the fuck aren't we just making every pair of shoes into galoshes? We have the technology.", "We can link the Ore Silo to our protolathes, so why don't we also link it to autolathes?", "If we can make better bombs with heated plasma, oxygen, and tritium, then why do station nukes still use plutonium?", - "We should port all our NT programs to modular consoles and do away with computers. They're way more customizable, support cross-platform usage, and would allow crazy amounts of multitasking.", + "We should port all our GT programs to modular consoles and do away with computers. They're way more customizable, support cross-platform usage, and would allow crazy amounts of multitasking.", "Wait, if we use more manipulators in something, then it prints for cheaper, right? So what if we just made a new type of printer that has like 12 manipulators inside of it to print stuff for really cheap?" - )) + )) //GS13 - NT to GT GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put a webserver that's automatically turned on with default admin passwords into every PDA?", "So like, you know how we separate our codebase from the master copy that runs on our consumer boxes? What if we merged the two and undid the separation between codebase and server?", "Dude, radical idea: H.O.N.K mechs but with no bananium required.", @@ -506,8 +506,8 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put "Okay, hear me out, what if we make illegal things not illegal, so that sec stops arresting us for having it?", "I have a crazy idea, guys. Rather than having monkeys to test on, what if we only used apes?", "Woh man ok, what if we took slime cores and smashed them into other slimes, be kinda cool to see what happens.", - "We're NANOtrasen but we need to unlock nano parts, what's the deal with that?" - )) + "We're GATO but there's barely any cats on these stations, what's up with that??" + )) //GS13 - Nanotrasen to GATO //this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() @@ -521,6 +521,17 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put var/restingpwr = 1 + 4 * !CHECK_MOBILITY(src, MOBILITY_STAND) + //GS13 EDIT START + if(ckey) + if(!client && !(stat == DEAD)) + if(!SSD) + add_status_indicator("ssd") + SSD = TRUE + else + if(SSD) + remove_status_indicator("ssd") + SSD = FALSE + //GS13 EDIT END //Dizziness if(dizziness) var/client/C = client diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index cd69b5ee52..863b087361 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -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 diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 6024bfbf4c..d3d0919baf 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -90,6 +90,9 @@ var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) + // GS13 EDIT + var/SSD = FALSE + var/list/pipes_shown = list() var/last_played_vent diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 35c8303aa1..5fe6a4b8da 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -254,6 +254,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if (client?.prefs.chat_on_map && stat != UNCONSCIOUS && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear()) create_chat_message(speaker, message_language, raw_message, spans, message_mode) + //GS13 EDIT START + if(stat != UNCONSCIOUS && can_hear() && radio_freq) + playsound_local(src,'GainStation13/sound/voice/radio.ogg', 30, 0) + + //GS13 EDIT END + // Recompose message for AI hrefs, language incomprehension. message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 0e2d27889e..868a68d448 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -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( diff --git a/code/modules/mob/living/simple_animal/gremlin/gremlin_event.dm b/code/modules/mob/living/simple_animal/gremlin/gremlin_event.dm index 9c4becbdcf..462c826df9 100644 --- a/code/modules/mob/living/simple_animal/gremlin/gremlin_event.dm +++ b/code/modules/mob/living/simple_animal/gremlin/gremlin_event.dm @@ -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." diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index d245b68348..83c0084fbc 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -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 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 0b22ae25ec..e08f396462 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -78,6 +78,7 @@ var/dizziness = 0//Carbon var/jitteriness = 0//Carbon var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize + var/thirst = THIRST_LEVEL_START_MIN //same for this var/satiety = 0//Carbon var/overeatduration = 0 // How long this guy is overeating //Carbon diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 1da355a419..ec38d163a8 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -71,6 +71,9 @@ if(!mob.Process_Spacemove(direction)) return FALSE + //GS13 EDIT + if(HAS_TRAIT(mob, TRAIT_NO_MOVE)) + return FALSE //We are now going to move var/add_delay = mob.movement_delay() mob.set_glide_size(DELAY_TO_GLIDE_SIZE(add_delay * ( (NSCOMPONENT(direction) && EWCOMPONENT(direction)) ? 2 : 1 ) ), FALSE) // set it now in case of pulled objects diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm index fe949449d2..2dafd815dc 100644 --- a/code/modules/mod/mod_theme.dm +++ b/code/modules/mod/mod_theme.dm @@ -222,8 +222,8 @@ /datum/mod_theme/mining name = "mining" - desc = "A high-power Nanotrasen mining suit, supporting more complexity at a bigger drain." - extended_desc = "A high-powered Nanotrasen-designed suit, based off the work of Nakamura Engineering. \ + desc = "A high-power GATO mining suit, supporting more complexity at a bigger drain." //GS13 - Nanotrasen to GATO + extended_desc = "A high-powered GATO-designed suit, based off the work of Nakamura Engineering. \ While initial designs were built for the rigors of asteroid mining, given blast resistance through inbuilt ceramics, \ mining teams have since heavily tweaked the suit themselves. Aftermarket armor plating has been added, \ giving way to incredible protection against corrosives and thermal protection good enough for volcanic environments. \ @@ -500,16 +500,16 @@ /datum/mod_theme/magnate name = "magnate" - desc = "A fancy, very protective suit for Nanotrasen's captains. Shock, fire and acid-proof while also having a large capacity and high speed." + desc = "A fancy, very protective suit for GATO's captains. Shock, fire and acid-proof while also having a large capacity and high speed." //GS13 - Nanotrasen to GATO extended_desc = "They say it costs four hundred thousand credits to run this MODsuit... for twelve seconds. \ - The Magnate suit is designed for protection, comfort, and luxury for Nanotrasen Captains. \ + The Magnate suit is designed for protection, comfort, and luxury for GATO Captains. \ The onboard air filters have been preprogrammed with an additional five hundred different fragrances that can \ be pumped into the helmet, all of highly-endangered flowers. A bespoke Tralex mechanical clock has been placed \ in the wrist, and the Magnate package comes with carbon-fibre cufflinks to wear underneath. \ My God, it even has a granite trim. The double-classified paint that's been painstakingly applied to the hull \ provides protection against shock, fire, and the strongest acids. Onboard systems employ meta-positronic learning \ and bluespace processing to allow for a wide array of onboard modules to be supported, and only the best actuators \ - have been employed for speed. The resemblance to a Gorlex Marauder helmet is purely coincidental." + have been employed for speed. The resemblance to a Gorlex Marauder helmet is purely coincidental." //GS13 - Nanotrasen to GATO default_skin = "magnate" armor = list(MELEE = 20, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15, RAD = 0) resistance_flags = FIRE_PROOF|ACID_PROOF @@ -765,12 +765,12 @@ /datum/mod_theme/responsory name = "responsory" - desc = "A high-speed rescue suit by Nanotrasen, intended for its' emergency response teams." - extended_desc = "A streamlined suit of Nanotrasen design, these sleek black suits are only worn by \ + desc = "A high-speed rescue suit by GATO, intended for its' emergency response teams." //GS13 - Nanotrasen to GATO + extended_desc = "A streamlined suit of GATO design, these sleek black suits are only worn by \ elite emergency response personnel to help save the day. While the slim and nimble design of the suit \ cuts the ceramics and ablatives in it down, dropping the protection, \ it keeps the wearer safe from the harsh void of space while sacrificing no speed whatsoever. \ - While wearing it you feel an extreme deference to darkness. " + While wearing it you feel an extreme deference to darkness. " //GS13 - Nanotrasen to GATO default_skin = "responsory" armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, WOUND = 10, RAD = 0) resistance_flags = FIRE_PROOF @@ -828,13 +828,13 @@ /datum/mod_theme/apocryphal name = "apocryphal" - desc = "A high-tech, only technically legal, armored suit created by a collaboration effort between Nanotrasen and Apadyne Technologies." + desc = "A high-tech, only technically legal, armored suit created by a collaboration effort between GATO and Apadyne Technologies." //GS13 - Nanotrasen to GATO extended_desc = "A bulky and only legal by technicality suit, this ominous black and red MODsuit is only worn by \ - Nanotrasen Black Ops teams. If you can see this suit, you fucked up. A collaborative joint effort between \ - Apadyne and Nanotrasen the construction and modules gives the user robust protection against \ + GATO Black Ops teams. If you can see this suit, you fucked up. A collaborative joint effort between \ + Apadyne and GATO the construction and modules gives the user robust protection against \ anything that can be thrown at it, along with acute combat awareness tools for it's wearer. \ Whether the wearer uses it or not is up to them. \ - There seems to be a little inscription on the wrist that reads; \'squiddie', d'aww." + There seems to be a little inscription on the wrist that reads; \'squiddie', d'aww." //GS13 - Nanotrasen to GATO default_skin = "apocryphal" armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 25, RAD = 0) resistance_flags = FIRE_PROOF|ACID_PROOF @@ -869,12 +869,12 @@ /datum/mod_theme/corporate name = "corporate" - desc = "A fancy, high-tech suit for Nanotrasen's high ranking officers." + desc = "A fancy, high-tech suit for GATO's high ranking officers." //GS13 - Nanotrasen to GATO extended_desc = "An even more costly version of the Magnate model, the corporate suit is a thermally insulated, \ anti-corrosion coated suit for high-ranking CentCom Officers, deploying pristine protective armor and \ advanced actuators, feeling practically weightless when turned on. Scraping the paint of this suit is \ - counted as a war-crime and reason for immediate execution in over fifty Nanotrasen space stations. \ - The resemblance to a Gorlex Marauder helmet is purely coincidental." + counted as a war-crime and reason for immediate execution in over fifty GATO space stations. \ + The resemblance to a Gorlex Marauder helmet is purely coincidental." //GS13 - Nanotrasen to GATO default_skin = "corporate" armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15, RAD = 0) resistance_flags = FIRE_PROOF|ACID_PROOF diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm index 5de1788972..e08de121d3 100644 --- a/code/modules/mod/modules/modules_medical.dm +++ b/code/modules/mod/modules/modules_medical.dm @@ -64,7 +64,7 @@ /obj/item/mod/module/quick_carry name = "MOD quick carry module" desc = "A suite of advanced servos, redirecting power from the suit's arms to help carry the wounded; \ - or simply for fun. However, Nanotrasen has locked the module's ability to assist in hand-to-hand combat." + or simply for fun. However, GATO has locked the module's ability to assist in hand-to-hand combat." //GS13 - Nanotrasen to GATO icon_state = "carry" complexity = 1 idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 diff --git a/code/modules/mod/modules/modules_science.dm b/code/modules/mod/modules/modules_science.dm index 3e9c1a236f..75f6dc05ff 100644 --- a/code/modules/mod/modules/modules_science.dm +++ b/code/modules/mod/modules/modules_science.dm @@ -3,9 +3,9 @@ ///Reagent Scanner - Lets the user scan reagents. /obj/item/mod/module/reagent_scanner name = "MOD reagent scanner module" - desc = "A module based off research-oriented Nanotrasen HUDs, this is capable of scanning the contents of \ + desc = "A module based off research-oriented GATO HUDs, this is capable of scanning the contents of \ containers and projecting the information in an easy-to-read format on the wearer's display. \ - It cannot detect flavors, so that's up to you." + It cannot detect flavors, so that's up to you." //GS13 - Nanotrasen to GATO icon_state = "scanner" module_type = MODULE_TOGGLE complexity = 1 diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index 1009e3f605..d86f95a72f 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -3,9 +3,9 @@ ///Internal GPS - Extends a GPS you can use. /obj/item/mod/module/gps name = "MOD internal GPS module" - desc = "This module uses common Nanotrasen technology to calculate the user's position anywhere in space, \ + desc = "This module uses common GATO technology to calculate the user's position anywhere in space, \ down to the exact coordinates. This information is fed to a central database viewable from the device itself, \ - though using it to help people is up to you." + though using it to help people is up to you." //GS13 - Nanotrasen to GATO icon_state = "gps" module_type = MODULE_USABLE complexity = 1 @@ -28,8 +28,8 @@ /obj/item/mod/module/clamp name = "MOD hydraulic clamp module" desc = "A series of actuators installed into both arms of the suit, boasting a lifting capacity of almost a ton. \ - However, this design has been locked by Nanotrasen to be primarily utilized for lifting various crates. \ - A lot of people would say that loading cargo is a dull job, but you could not disagree more." + However, this design has been locked by GATO to be primarily utilized for lifting various crates. \ + A lot of people would say that loading cargo is a dull job, but you could not disagree more." //GS13 - Nanotrasen to GATO icon_state = "clamp" module_type = MODULE_ACTIVE complexity = 3 diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm index 3cbdc4a923..ac2aa7b80d 100644 --- a/code/modules/modular_computers/computers/machinery/modular_console.dm +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -2,7 +2,7 @@ name = "console" desc = "A stationary computer." - icon = 'icons/obj/modular_console.dmi' + icon = 'GainStation13/icons/obj/modular_console.dmi' //GS13 - gatofication sprites icon_state = "console" icon_state_powered = "console" icon_state_unpowered = "console-off" diff --git a/code/modules/modular_computers/file_system/programs/arcade.dm b/code/modules/modular_computers/file_system/programs/arcade.dm index 3fe38cdf6f..d79c21b857 100644 --- a/code/modules/modular_computers/file_system/programs/arcade.dm +++ b/code/modules/modular_computers/file_system/programs/arcade.dm @@ -18,7 +18,7 @@ var/player_mp = 10 var/ticket_count = 0 ///Shows what text is shown on the app, usually showing the log of combat actions taken by the player. - var/heads_up = "Nanotrasen says, winners make us money." + var/heads_up = "GATO says, winners make us money." //GS13 - Nanotrasen to GATO var/boss_name = "Cuban Pete's Minion" ///Determines which boss image to use on the UI. var/boss_id = 1 diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index a269f88242..1c93dfa57d 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -3,7 +3,7 @@ filedesc = "NT IRN" category = PROGRAM_CATEGORY_SUPL program_icon_state = "request" - extended_desc = "Nanotrasen Internal Requisition Network interface for supply purchasing using a department budget account." + extended_desc = "GATO Internal Requisition Network interface for supply purchasing using a department budget account." //GS13 - Nanotrasen to GATO requires_ntnet = TRUE usage_flags = PROGRAM_LAPTOP | PROGRAM_TABLET size = 20 diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index 56283e3c8b..f97ece3d96 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/ntnetdownload filename = "ntsoftwarehub" - filedesc = "NT Software Hub" + filedesc = "GT Software Hub" //GS13 - NT to GT program_icon_state = "generic" - extended_desc = "This program allows downloads of software from official NT repositories" + extended_desc = "This program allows downloads of software from official GT repositories" //GS13 - NT to GT unsendable = TRUE undeletable = TRUE size = 4 diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index 83e8cb2122..bbbe178b88 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -1,6 +1,6 @@ /datum/computer_file/program/supermatter_monitor filename = "ntcims" - filedesc = "NT CIMS" + filedesc = "GT CIMS" //GS13 - NT to GT category = PROGRAM_CATEGORY_ENGI ui_header = "smmon_0.gif" program_icon_state = "smmon_0" diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm index b0bf605f9a..9ec9432461 100644 --- a/code/modules/modular_computers/hardware/hard_drive.dm +++ b/code/modules/modular_computers/hardware/hard_drive.dm @@ -25,7 +25,7 @@ /obj/item/computer_hardware/hard_drive/diagnostics(mob/user) ..() // 999 is a byond limit that is in place. It's unlikely someone will reach that many files anyway, since you would sooner run out of space. - to_chat(user, "NT-NFS File Table Status: [stored_files.len]/999") + to_chat(user, "GT-NFS File Table Status: [stored_files.len]/999") //GS13 - NT to GT to_chat(user, "Storage capacity: [used_capacity]/[max_capacity]GQ") // Use this proc to add file to the drive. Returns 1 on success and 0 on failure. Contains necessary sanity checks. diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index 30b1c21d19..4effabad8d 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -2,7 +2,7 @@ /obj/machinery/lapvend name = "computer vendor" - desc = "A vending machine with microfabricator capable of dispensing various NT-branded computers." + desc = "A vending machine with microfabricator capable of dispensing various GT-branded computers." //GS13 - NT to GT icon = 'icons/obj/vending.dmi' icon_state = "robotics" layer = 2.9 diff --git a/code/modules/newscaster/ghostread.dm b/code/modules/newscaster/ghostread.dm index ff51f5268c..1a14aa01f1 100644 --- a/code/modules/newscaster/ghostread.dm +++ b/code/modules/newscaster/ghostread.dm @@ -25,8 +25,8 @@ /mob/dead/observer/proc/render_news_channel(datum/news/feed_channel/FC) var/list/content = list() content += "[FC.channel_name]: \[created by: [FC.returnAuthor(-1)]\]
      " - if(FC.censored) - content += "ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      " + if(FC.censored) //GS13 - Nanotrasen to GATO + content += "ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a GATO D-Notice.
      " content += "No further feed story additions are allowed while the D-Notice is in effect.

      " if(!length(FC.messages)) content += "This channel is empty.
      " diff --git a/code/modules/newscaster/newscaster_machine.dm b/code/modules/newscaster/newscaster_machine.dm index 2f0f557ea8..d6bd3ccde5 100644 --- a/code/modules/newscaster/newscaster_machine.dm +++ b/code/modules/newscaster/newscaster_machine.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(allCasters) /obj/machinery/newscaster name = "newscaster" - desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" + desc = "A standard GATO-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" //GS13 - Nanotrasen to GATO icon = 'icons/obj/terminals.dmi' icon_state = "newscaster_normal" plane = ABOVE_WALL_PLANE @@ -106,9 +106,9 @@ GLOBAL_LIST_EMPTY(allCasters) var/dat scan_user(human_or_robot_user) switch(screen) - if(0) + if(0) //GS13 - Nanotrasen to GATO dat += "Welcome to Newscasting Unit #[unit_no].
      Interface & News networks Operational." - dat += "
      Property of Nanotrasen Inc" + dat += "
      Property of GATO Inc" if(GLOB.news_network.wanted_issue.active) dat+= "
      Read Wanted Issue" dat+= "

      Create Feed Channel" @@ -117,14 +117,14 @@ GLOBAL_LIST_EMPTY(allCasters) dat+= "
      Print newspaper" dat+= "
      Re-scan User" dat+= "

      Exit" - if(securityCaster) + if(securityCaster) //GS13 - Nanotrasen to GATO var/wanted_already = 0 if(GLOB.news_network.wanted_issue.active) wanted_already = 1 dat+="
      Feed Security functions:
      " dat+="
      [(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" dat+="
      Censor Feed Stories" - dat+="
      Mark Feed Channel with Nanotrasen D-Notice" + dat+="
      Mark Feed Channel with GATO D-Notice" dat+="

      The newscaster recognises you as: [scanned_user]" if(1) dat+= "Station Feed Channels
      " @@ -205,7 +205,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(9) dat+="[viewing_channel.channel_name]: \[created by: [viewing_channel.returnAuthor(-1)]\]
      " if(viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      " + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a GATO D-Notice.
      " dat+="No further feed story additions are allowed while the D-Notice is in effect.

      " else if( isemptylist(viewing_channel.messages) ) @@ -231,8 +231,8 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="Comment
      " dat+="

      Refresh" dat+="
      Back" - if(10) - dat+="Nanotrasen Feed Censorship Tool
      " + if(10) //GS13 - Nanotrasen to GATO + dat+="GATO Feed Censorship Tool
      " dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
      " dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
      " dat+="
      Select Feed channel to get Stories from:
      " @@ -242,8 +242,8 @@ GLOBAL_LIST_EMPTY(allCasters) for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
      " dat+="
      Cancel" - if(11) - dat+="Nanotrasen D-Notice Handler
      " + if(11) //GS13 - Nanotrasen to GATO + dat+="GATO D-Notice Handler
      " dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
      " @@ -270,7 +270,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.returnAuthor(-1)] \]
      " dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
      " if(viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      " + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a GATO D-Notice.
      " dat+="No further feed story additions are allowed while the D-Notice is in effect.

      " else if(isemptylist(viewing_channel.messages)) @@ -450,14 +450,14 @@ GLOBAL_LIST_EMPTY(allCasters) screen = 15 else if(GLOB.news_network.wanted_issue.isAdminMsg) - alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok") + alert("The wanted issue has been distributed by a GATO higherup. You cannot edit it.","Ok") //GS13 - Nanotrasen to GATO return GLOB.news_network.submitWanted(channel_name, msg, scanned_user, picture) screen = 19 updateUsrDialog() else if(href_list["cancel_wanted"]) if(GLOB.news_network.wanted_issue.isAdminMsg) - alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.","Ok") + alert("The wanted issue has been distributed by a GATO higherup. You cannot take it down.","Ok") //GS13 - Nanotrasen to GATO return var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel") if(choice=="Confirm") @@ -470,21 +470,21 @@ GLOBAL_LIST_EMPTY(allCasters) else if(href_list["censor_channel_author"]) var/datum/news/feed_channel/FC = locate(href_list["censor_channel_author"]) if(FC.is_admin_channel) - alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + alert("This channel was created by a GATO Officer. You cannot censor it.","Ok") //GS13 - Nanotrasen to GATO return FC.toggleCensorAuthor() updateUsrDialog() else if(href_list["censor_channel_story_author"]) var/datum/news/feed_message/MSG = locate(href_list["censor_channel_story_author"]) if(MSG.is_admin_message) - alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok") + alert("This message was created by a GATO Officer. You cannot censor its author.","Ok") //GS13 - Nanotrasen to GATO return MSG.toggleCensorAuthor() updateUsrDialog() else if(href_list["censor_channel_story_body"]) var/datum/news/feed_message/MSG = locate(href_list["censor_channel_story_body"]) if(MSG.is_admin_message) - alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + alert("This channel was created by a GATO Officer. You cannot censor it.","Ok") //GS13 - Nanotrasen to GATO return MSG.toggleCensorBody() updateUsrDialog() @@ -496,7 +496,7 @@ GLOBAL_LIST_EMPTY(allCasters) else if(href_list["toggle_d_notice"]) var/datum/news/feed_channel/FC = locate(href_list["toggle_d_notice"]) if(FC.is_admin_channel) - alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok") + alert("This channel was created by a GATO Officer. You cannot place a D-Notice upon it.","Ok") //GS13 - Nanotrasen to GATO return FC.toggleCensorDclass() updateUsrDialog() diff --git a/code/modules/newscaster/newspaper.dm b/code/modules/newscaster/newspaper.dm index 0142e84e26..ee7817b9ba 100644 --- a/code/modules/newscaster/newspaper.dm +++ b/code/modules/newscaster/newspaper.dm @@ -1,6 +1,6 @@ /obj/item/newspaper name = "newspaper" - desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations." + desc = "An issue of The Griffon, the newspaper circulating aboard GATO Space Stations." //GS13 - Nanotrasen to GATO icon = 'icons/obj/bureaucracy.dmi' icon_state = "newspaper" lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' @@ -36,9 +36,9 @@ var/dat pages = 0 switch(screen) - if(0) //Cover + if(0) //Cover //GS13 - Nanotrasen to GATO dat+="
      The Griffon
      " - dat+="
      Nanotrasen-standard newspaper, for use on Nanotrasen? Space Facilities

      " + dat+="
      GATO-standard newspaper, for use on GATO? Space Facilities

      " if(isemptylist(news_content)) if(wantedAuthor) dat+="Contents:
        **Important Security Announcement** \[page [pages+2]\]
      " diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 11c10e1e4a..af2a2cc90a 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -28,7 +28,7 @@ /obj/item/paper/contract/employment/update_text() name = "paper- [target] employment contract" - info = "
      Conditions of Employment




      This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).
      WITNESSETH:
      WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
      WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.
      NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
      In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
      Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
      Should transfership of a soul not be possible, a lien shall be placed instead.
      Signed,
      [target]" + info = "
      Conditions of Employment




      This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and GATO (hereafter referred to as the omnipresent and helpful watcher of humanity).
      WITNESSETH:
      WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
      WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.
      NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
      In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
      Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
      Should transfership of a soul not be possible, a lien shall be placed instead.
      Signed,
      [target]" //GS13 - Nanotrasen to GATO /obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user) @@ -41,8 +41,8 @@ else deconvert = prob (5) if(deconvert) - M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by Nanotrasen!") - to_chat(M, "You feel that your soul has returned to its rightful owner, Nanotrasen.") + M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by GATO!") //GS13 - Nanotrasen to GATO + to_chat(M, "You feel that your soul has returned to its rightful owner, GATO.") //GS13 - Nanotrasen to GATO M.return_soul() else M.visible_message("[user] beats [M] over the head with [src]!", \ diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index d69da4d797..209a10704f 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -98,7 +98,7 @@ /obj/item/folder/documents name = "folder- 'TOP SECRET'" - desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\"" + desc = "A folder stamped \"Top Secret - Property of GATO Corporation. Unauthorized distribution is punishable by death.\"" //GS13 - Nanotrasen to GATO /obj/item/folder/documents/Initialize(mapload) . = ..() diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index cc7b11d331..c29347c29f 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -41,7 +41,7 @@ /obj/item/paper/guides/jobs/security/labor_camp name = "Labor Camp Operating Guide" - info = "Labor Camp Facility Operation Guide

      Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

      To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
      A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
      Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

      In the case of dangerous prisoners, surveillance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine." + info = "Labor Camp Facility Operation Guide

      Hello there, proud operator of an GT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

      To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
      A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
      Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

      In the case of dangerous prisoners, surveillance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine." //GS13 - NT to GT /obj/item/paper/guides/jobs/security/range name = "paper- Firing Range Instructions" @@ -112,7 +112,7 @@ /obj/item/paper/guides/cogstation/disposals name = "Regarding the disposal system:" - info = "As you might have noticed, this station has far more disposal pipes than you may expect from your average Nanotrasen research facility. Part of the reason for this is specialization - mail, trash, even corpses have their own disposal systems. Unfortunately, the convenient color-coding was lost in translocation and we've had to compensate by marking the area around each bin.
      \n
      \n- WHITE/GRAY STRIPES are for DELIVERIES.
      \n- RED STRIPES are for CORPSES.
      \n- EVERYTHING ELSE is for TRASH,
      barring a few exceptions that should be labeled as such.
      \n
      \nIdeally the station won't sustain any heavy structural damage during your time here but if it does, or someone decides to tamper with/sabotage this system, you'll be forgiven if you can't put it back together perfectly.
      \n
      \n-C. Donnelly
      Architectural Analyst" + info = "As you might have noticed, this station has far more disposal pipes than you may expect from your average GATO research facility. Part of the reason for this is specialization - mail, trash, even corpses have their own disposal systems. Unfortunately, the convenient color-coding was lost in translocation and we've had to compensate by marking the area around each bin.
      \n
      \n- WHITE/GRAY STRIPES are for DELIVERIES.
      \n- RED STRIPES are for CORPSES.
      \n- EVERYTHING ELSE is for TRASH,
      barring a few exceptions that should be labeled as such.
      \n
      \nIdeally the station won't sustain any heavy structural damage during your time here but if it does, or someone decides to tamper with/sabotage this system, you'll be forgiven if you can't put it back together perfectly.
      \n
      \n-C. Donnelly
      Architectural Analyst" //GS13 - Nanotrasen to GATO /obj/item/paper/guides/cogstation/janitor name = "a quick tip" @@ -140,7 +140,7 @@ /obj/item/paper/guides/cogstation/letter_atmos name = "To future Atmospheric Technicians:" - info = "If the place that this station used to call home still hired atmos techs, odds are we could've gotten this place up and running a lot sooner. Alas, the past is in the past and the hard work's already been done. You still have a job to do, but it shouldn't be much different from other stations in this sector. That being said, be aware of the following:
      \n
      \n - If you haven't already noticed, the atmospherics department is separate from the rest of the station. You'll either need to spacewalk or take a transit tube to reach it, but it still connects to the station's air system at large.
      \n
      \n- Seeing as the TEG already uses the standard red and blue for it's heating/cooling loops, the scrubber pipes are ORANGE. The main air supply pipes are a purpleish-blue - HOWEVER, these aren't the only air pipes you'll see. We've decided to reuse existing lines from the old air hookup system - these pipes are CYAN and serve to supply air to specific areas. There's also a VIOLET line to help keep the TEG stable.
      \n
      \nNanotrasen's invested a considerable amount into updating this system, so even if Murphy's Law is alive and well in this sector, the air system isn't one of the things that should fail. If a section of the station is having air problems, check the old air hookups FIRST. Your problem could be as simple as a 'greytider' turning a valve or a clown hooking up a laughing gas canister.
      \n
      \n-C. Donnelly
      Architectural Analyst" + info = "If the place that this station used to call home still hired atmos techs, odds are we could've gotten this place up and running a lot sooner. Alas, the past is in the past and the hard work's already been done. You still have a job to do, but it shouldn't be much different from other stations in this sector. That being said, be aware of the following:
      \n
      \n - If you haven't already noticed, the atmospherics department is separate from the rest of the station. You'll either need to spacewalk or take a transit tube to reach it, but it still connects to the station's air system at large.
      \n
      \n- Seeing as the TEG already uses the standard red and blue for it's heating/cooling loops, the scrubber pipes are ORANGE. The main air supply pipes are a purpleish-blue - HOWEVER, these aren't the only air pipes you'll see. We've decided to reuse existing lines from the old air hookup system - these pipes are CYAN and serve to supply air to specific areas. There's also a VIOLET line to help keep the TEG stable.
      \n
      \nGATO's invested a considerable amount into updating this system, so even if Murphy's Law is alive and well in this sector, the air system isn't one of the things that should fail. If a section of the station is having air problems, check the old air hookups FIRST. Your problem could be as simple as a 'greytider' turning a valve or a clown hooking up a laughing gas canister.
      \n
      \n-C. Donnelly
      Architectural Analyst" /obj/item/paper/guides/cogstation/letter_chief name = "To the future Chief Engineer:" @@ -172,7 +172,7 @@ /obj/item/paper/fluff/cogstation/letter_cap name = "Captain's Log" - info = "So I guess some of the other heads have decided to leave little notes for future employees here. Heartwarming, but the most important thing I figure I can leave you is the truth. Nevermind the Syndicate, the xenomorphs, the apocalyptic death cults I hear are a thing way out there - I'm convinced we are our own worst enemy.
      \n
      \nDon't believe me? Maybe you can ask Chief Engineer Earp. Oh right, he vaporized himself trying to produce enough power to keep the lights on in Space China for a week, despite only needing a sliver of that to run this place as intended. Or maybe you can ask Head of Security Cannon, who executed our Research Director in plain sight of everyone. Even if he was in the right, the final frontier isn't the goddamn wild west! Hell, maybe you can ask one of your 'staff assistants', although in my experience the only ones they seem to want to help is themselves.
      \n
      \nOf course, the REAL problems are with the higher-ups that stationed us on this deathtrap before deciding to send it your way, but there's only so much I can say and get away with it, for instance that they only sent this station since they could care less if it was a total loss. By the time you read this, I'll already be long gone. Maybe it'll be a different story with your crew, but between you and me, I wouldn't hold my breath...unless they fuck up the air system.
      \n
      \nDom Kahn
      Former Captain of Nanotrasen CogStation" + info = "So I guess some of the other heads have decided to leave little notes for future employees here. Heartwarming, but the most important thing I figure I can leave you is the truth. Nevermind the Syndicate, the xenomorphs, the apocalyptic death cults I hear are a thing way out there - I'm convinced we are our own worst enemy.
      \n
      \nDon't believe me? Maybe you can ask Chief Engineer Earp. Oh right, he vaporized himself trying to produce enough power to keep the lights on in Space China for a week, despite only needing a sliver of that to run this place as intended. Or maybe you can ask Head of Security Cannon, who executed our Research Director in plain sight of everyone. Even if he was in the right, the final frontier isn't the goddamn wild west! Hell, maybe you can ask one of your 'staff assistants', although in my experience the only ones they seem to want to help is themselves.
      \n
      \nOf course, the REAL problems are with the higher-ups that stationed us on this deathtrap before deciding to send it your way, but there's only so much I can say and get away with it, for instance that they only sent this station since they could care less if it was a total loss. By the time you read this, I'll already be long gone. Maybe it'll be a different story with your crew, but between you and me, I wouldn't hold my breath...unless they fuck up the air system.
      \n
      \nDom Kahn
      Former Captain of GATO CogStation" //GS13 - Nanotrasen to GATO /obj/item/paper/fluff/cogstation/letter_qm name = "To the future Quartermaster:" @@ -204,7 +204,7 @@ /obj/item/paper/fluff/cogstation/bsrb name = "Message from the NTBSRB" - info = "Congratulations, (sector name here)! You've been chosen as a candidate to receive a Nanotrasen icon via bluespace translocation! 'CogStation' as it's commonly known has a rich history and a unique layout. Our hope is that you'll be able to retrofit this station to serve your needs, ideally as one of your primary research hubs.

      We look forward to seeing what you can accomplish here!
      \n
      \n-The Nanotrasen Bluespace Research Board" + info = "Congratulations, (sector name here)! You've been chosen as a candidate to receive a GATO icon via bluespace translocation! 'CogStation' as it's commonly known has a rich history and a unique layout. Our hope is that you'll be able to retrofit this station to serve your needs, ideally as one of your primary research hubs.

      We look forward to seeing what you can accomplish here!
      \n
      \n-The GATO Bluespace Research Board" //GS13 - Nanotrasen to GATO /obj/item/paper/fluff/cogstation/survey name = "Fwd: Survey Report" @@ -238,7 +238,7 @@ /obj/item/paper/fluff/stations/centcom/bulletin name = "paper- 'Official Bulletin'" - info = "
      CentCom Security
      Port Division
      Official Bulletin

      Inspector,
      There is an emergency shuttle arriving today.

      Approval is restricted to Nanotrasen employees only. Deny all other entrants.

      CentCom Port Commissioner" + info = "
      CentCom Security
      Port Division
      Official Bulletin

      Inspector,
      There is an emergency shuttle arriving today.

      Approval is restricted to GATO employees only. Deny all other entrants.

      CentCom Port Commissioner" //GS13 - Nanotrasen to GATO /////////// Lavaland diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 08c7a4a47a..6548cfe743 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -484,7 +484,7 @@ */ /obj/item/toner name = "toner cartridge" - desc = "A small, lightweight cartridge of NanoTrasen ValueBrand toner. Fits photocopiers and autopainters alike." + desc = "A small, lightweight cartridge of GATO ValueBrand toner. Fits photocopiers and autopainters alike." //GS13 - Nanotrasen to GATO icon = 'icons/obj/device.dmi' icon_state = "tonercartridge" grind_results = list(/datum/reagent/iodine = 40, /datum/reagent/iron = 10) @@ -493,7 +493,7 @@ /obj/item/toner/large name = "large toner cartridge" - desc = "A hefty cartridge of NanoTrasen ValueBrand toner. Fits photocopiers and autopainters alike." + desc = "A hefty cartridge of GATO ValueBrand toner. Fits photocopiers and autopainters alike." //GS13 - Nanotrasen to GATO grind_results = list(/datum/reagent/iodine = 90, /datum/reagent/iron = 10) charges = 25 max_charges = 25 diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index 86cf6f8ff9..e6d1f34ef4 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -199,7 +199,7 @@ /obj/item/ticket_machine_ticket name = "Ticket" - desc = "A ticket which shows your place in the Head of Personnel's line. Made from Nanotrasen patented NanoPaper®. Though solid, its form seems to shimmer slightly. Feels (and burns) just like the real thing." + desc = "A ticket which shows your place in the Head of Personnel's line. Made from GATO patented NanoPaper®. Though solid, its form seems to shimmer slightly. Feels (and burns) just like the real thing." //GS13 - Nanotrasen to GATO icon = 'icons/obj/bureaucracy.dmi' icon_state = "ticket" maptext_x = 7 diff --git a/code/modules/plumbing/plumbers/grinder_chemical.dm b/code/modules/plumbing/plumbers/grinder_chemical.dm index 1907fb91fa..5d01c973c1 100644 --- a/code/modules/plumbing/plumbers/grinder_chemical.dm +++ b/code/modules/plumbing/plumbers/grinder_chemical.dm @@ -13,28 +13,40 @@ . = ..() AddComponent(/datum/component/plumbing/simple_supply, bolt) -/obj/machinery/plumbing/grinder_chemical/can_be_rotated(mob/user,rotation_type) +/obj/machinery/plumbing/grinder_chemical/examine(mob/user) + . = ..() + . += span_notice("The input direction for this item can be rotated by using CTRL+SHIFT+CLICK") + +/obj/machinery/plumbing/grinder_chemical/CtrlShiftClick(mob/user) if(anchored) to_chat(user, "It is fastened to the floor!") return FALSE + switch(eat_dir) if(WEST) + balloon_alert(user, "set to north") eat_dir = NORTH return TRUE if(EAST) + balloon_alert(user, "set to south") eat_dir = SOUTH return TRUE if(NORTH) + balloon_alert(user, "set to east") eat_dir = EAST return TRUE if(SOUTH) + balloon_alert(user, "set to west") eat_dir = WEST return TRUE + return TRUE + /obj/machinery/plumbing/grinder_chemical/CanAllowThrough(atom/movable/AM) . = ..() if(!anchored) return + var/move_dir = get_dir(loc, AM.loc) if(move_dir == eat_dir) return TRUE @@ -61,4 +73,8 @@ return I.on_grind() reagents.add_reagent_list(I.grind_results) + + if(I.reagents) //If the thing has any reagents inside of it, grind them up. + I.reagents.trans_to(reagents, I.reagents.total_volume) + qdel(I) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index f3587c01b3..859290598e 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -196,7 +196,7 @@ start_charged = FALSE /obj/item/stock_parts/cell/crap - name = "\improper Nanotrasen brand rechargeable AA battery" + name = "\improper GATO brand rechargeable AA battery" //GS13 - Nanotrasen to GATO desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT maxcharge = 500 custom_materials = list(/datum/material/glass=40) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 081b93866e..7b6e291df5 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -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 diff --git a/code/modules/power/reactor/fuel_rods.dm b/code/modules/power/reactor/fuel_rods.dm index 6f71ec0b1e..9a7945c427 100644 --- a/code/modules/power/reactor/fuel_rods.dm +++ b/code/modules/power/reactor/fuel_rods.dm @@ -54,7 +54,7 @@ R.depletion = depletion if(prob(1)) R.name = "Plush-239 Fuel Rod" - R.desc = "NanoTrasen would like to remind you that it is not liable for any permanent radioactive damage done to its employees." + R.desc = "GATO would like to remind you that it is not liable for any permanent radioactive damage done to its employees." //GS13 - Nanotrasen to GATO R.icon = 'icons/obj/plushes.dmi' R.icon_state = "romanian" R.fuel_power = 0.25 //Funny easter egg, slightly more powerful too. diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 157ad6a627..8790113ba6 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -83,7 +83,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /obj/machinery/power/supermatter_crystal name = "supermatter crystal" desc = "A strangely translucent and iridescent crystal." - icon = 'icons/obj/supermatter.dmi' + icon = 'GainStation13/icons/turf/supermatter.dmi' // GS13 EDIT 'icons/obj/supermatter.dmi' icon_state = "darkmatter" density = TRUE anchored = TRUE @@ -965,6 +965,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) name = "supermatter shard" desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure." base_icon_state = "darkmatter_shard" + icon = 'GainStation13/icons/turf/supermatter.dmi' // GS13 EDIT 'icons/obj/supermatter.dmi' icon_state = "darkmatter_shard" anchored = FALSE gasefficency = 0.125 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 2a90f7287e..fb82495b19 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -9,7 +9,7 @@ fire_select_modes = list(SELECT_SEMI_AUTOMATIC, SELECT_BURST_SHOT, SELECT_FULLY_AUTOMATIC) /obj/item/gun/ballistic/automatic/proto - name = "\improper Nanotrasen Saber SMG" + name = "\improper GATO Saber SMG" //GS13 - Nanotrasen to GATO desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." icon_state = "saber" fire_sound = "sound/weapons/gunshot_smg_alt.ogg" @@ -211,8 +211,8 @@ burst_shot_delay = 1 /obj/item/gun/ballistic/automatic/ar - name = "\improper NT-ARG 'Boarder'" - desc = "A robust assault rifle used by Nanotrasen fighting forces." + name = "\improper GT-ARG 'Boarder'" //GS13 - NT to GT + desc = "A robust assault rifle used by GATO fighting forces." //GS13 - Nanotrasen to GATO icon_state = "arg" item_state = "arg" slot_flags = 0 @@ -399,7 +399,7 @@ /obj/item/gun/ballistic/automatic/laser name = "laser rifle" - desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargeable ammunition has given Nanotrasen a decisive edge over many a foe." + desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargeable ammunition has given GATO a decisive edge over many a foe." //GS13 - Nanotrasen to GATO icon_state = "oldrifle" item_state = "arg" mag_type = /obj/item/ammo_box/magazine/recharge diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm index 6efe73f931..ed406aa136 100644 --- a/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -61,7 +61,7 @@ /obj/item/gun/ballistic/automatic/magrifle/hyperburst name = "\improper Hyper-Burst rifle" - desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." + desc = "An extremely beefed up version of a stolen GATO weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." //GS13 - Nanotrasen to GATO icon_state = "hyperburst" slot_flags = NONE //too lazy for the sprites rn and it's pretty stronk anyway. mag_type = /obj/item/ammo_box/magazine/mhyper diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 04563ebc1e..f12645fef6 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -36,7 +36,7 @@ /obj/item/gun/energy/e_gun/old name = "prototype energy gun" - desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command." + desc = "GT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command." //GS13 - NT to GT icon_state = "protolaser" ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/electrode/old) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 880542fe31..91a97137cb 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -34,19 +34,19 @@ /obj/item/gun/energy/laser/retro name ="retro laser gun" icon_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." + desc = "An older model of the basic lasergun, no longer used by GATO's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." //GS13 - Nanotrasen to GATO ammo_x_offset = 3 /obj/item/gun/energy/laser/retro/old name ="laser gun" icon_state = "retro" - desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo." + desc = "First generation lasergun, developed by GATO. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo." //GS13 - Nanotrasen to GATO ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old) ammo_x_offset = 3 /obj/item/gun/energy/laser/hellgun name ="hellfire laser gun" - desc = "A relic of a weapon, built before NT began installing regulators on its laser weaponry. This pattern of laser gun became infamous for the gruesome burn wounds it caused, and was quietly discontinued once it began to affect NT's reputation." + desc = "A relic of a weapon, built before GT began installing regulators on its laser weaponry. This pattern of laser gun became infamous for the gruesome burn wounds it caused, and was quietly discontinued once it began to affect GT's reputation." //GS13 - NT to GT icon_state = "hellgun" ammo_type = list(/obj/item/ammo_casing/energy/laser/hellfire) diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 691f15e746..07262452d0 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -73,7 +73,7 @@ /obj/item/gun/energy/pulse/pistol/m1911 name = "\improper M1911-P" - desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." + desc = "A compact pulse core in a classic handgun frame for GATO officers. It's not the size of the gun, it's the size of the hole it puts through people." //GS13 - Nanotrasen to GATO icon_state = "m1911" item_state = "gun" cell_type = /obj/item/stock_parts/cell/infinite diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 9f0815ebfb..999f4d1ed0 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -2,7 +2,7 @@ //this is meant to hold reagents/obj/item/gun/syringe /obj/item/gun/chem name = "Reagent Repeater" - desc = "A Nanotrasen smartdart repeater rifle, modified to automatically synthesize piercing darts." + desc = "A GATO smartdart repeater rifle, modified to automatically synthesize piercing darts." //GS13 - Nanotrasen to GATO icon_state = "chemgun" item_state = "chemgun" w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 5f666ae69e..246c0b0ae4 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -406,7 +406,7 @@ else if(R.chemical_flags & REAGENT_ORGANIC_PROCESS) processtype = "Organics only" else - processtype = "Noone?! (Report this to Nanotrasen's spacetime department immediately)" + processtype = "Noone?! (Report this to GATO's spacetime department immediately)" //GS13 - Nanotrasen to GATO if(istype(R, /datum/reagent/fermi)) fermianalyze = TRUE var/datum/chemical_reaction/Rcr = get_chemical_reaction(reagent) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index a3df4cecf6..6c0c11259a 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1040,7 +1040,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/grog name = "Grog" - description = "Watered down rum, Nanotrasen approves!" + description = "Watered down rum, GATO approves!" //GS13 - Nanotrasen to GATO color = "#664300" // rgb: 102, 67, 0 boozepwr = 1 //Basically nothing taste_description = "a poor excuse for alcohol" @@ -1091,11 +1091,11 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "stomach acid" glass_icon_state = "acidspitglass" glass_name = "Acid Spit" - glass_desc = "A drink from Nanotrasen. Made from live aliens." + glass_desc = "A drink from GATO. Made from live aliens." //GS13 - Nanotrasen to GATO /datum/reagent/consumable/ethanol/amasec name = "Amasec" - description = "Official drink of the Nanotrasen Gun-Club!" + description = "Official drink of the GATO Gun-Club!" //GS13 - Nanotrasen to GATO color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 quality = DRINK_GOOD @@ -1317,7 +1317,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "da bomb" glass_icon_state = "atomicbombglass" glass_name = "Atomic Bomb" - glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." + glass_desc = "GATO cannot take legal responsibility for your actions after imbibing." //GS13 - Nanotrasen to GATO value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/M) @@ -1888,7 +1888,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "seduction" glass_icon_state = "between_the_sheets" glass_name = "Between the Sheets" - glass_desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy." + glass_desc = "The only drink that comes with a label reminding you of GATO's zero-tolerance promiscuity policy." //GS13 - Nanotrasen to GATO /datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/L) ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 2646951bd1..d156f3e36b 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -19,7 +19,7 @@ /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) if(!HAS_TRAIT(M, TRAIT_NO_PROCESS_FOOD)) current_cycle++ - M.adjust_nutrition(nutriment_factor, max_nutrition) + M.adjust_nutrition((nutriment_factor * M.nutri_mult), max_nutrition) //GS13 nutriment multiplier to make nutrition stronger based on certain effects M.CheckBloodsuckerEatFood(nutriment_factor) holder.remove_reagent(type, metabolization_rate) diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index f2157a619e..b3c8efa8db 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -301,7 +301,7 @@ /datum/reagent/firefighting_foam name = "Firefighting Foam" - description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on NT vessels." + description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on GT vessels." //GS13 - NT to GT reagent_state = LIQUID color = "#A6FAFF55" taste_description = "the inside of a fire extinguisher" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 1e9e1aa679..3795188cee 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -281,6 +281,7 @@ /datum/chemical_reaction/mix_virus name = "Mix Virus" id = "mixvirus" + results = list(/datum/reagent/blood = 1) //Re-add blood duping. required_reagents = list(/datum/reagent/consumable/virus_food = 1) required_catalysts = list(/datum/reagent/blood = 1) var/level_min = 1 diff --git a/code/modules/recycling/disposal/outlet.dm b/code/modules/recycling/disposal/outlet.dm index 6e0894db50..08d8619f84 100644 --- a/code/modules/recycling/disposal/outlet.dm +++ b/code/modules/recycling/disposal/outlet.dm @@ -16,6 +16,10 @@ /obj/structure/disposaloutlet/Initialize(mapload, obj/structure/disposalconstruct/make_from) . = ..() + //GS Add: Hacky Solution, but it works. + if(type == /obj/structure/disposaloutlet/industrial_feeding_tube) + return + //GS Add End. if(make_from) setDir(make_from.dir) make_from.forceMove(src) diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 5dd0163204..f087963a57 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -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 diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 3403d96049..51ff12684b 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -59,7 +59,7 @@ /datum/design/inducer name = "Inducer" - desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." + desc = "The GT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." //GS13 - NT to GT id = "inducer" build_type = PROTOLATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000) @@ -69,7 +69,7 @@ /datum/design/inducercombat name = "Combat Ready Inducer" - desc = "The improved NT-8475 Electromagnetic Power Inducer can this one has been SCIENCED to allow for combat. It still comes printed with SCIENCED colors!" + desc = "The improved GT-8475 Electromagnetic Power Inducer can this one has been SCIENCED to allow for combat. It still comes printed with SCIENCED colors!" //GS13 - NT to GT id = "combatinducer" build_type = PROTOLATHE materials = list(/datum/material/iron = 13000, /datum/material/glass = 10000, /datum/material/silver = 1500, /datum/material/gold = 1250, /datum/material/diamond = 500, /datum/material/titanium = 1200) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 6ca57938d2..4baf088085 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -133,10 +133,10 @@ if(!istype(D)) return FALSE if(!(isnull(allowed_department_flags) || (D.departmental_flags & allowed_department_flags))) - say("Warning: Printing failed: This fabricator does not have the necessary keys to decrypt design schematics. Please update the research data with the on-screen button and contact Nanotrasen Support!") + say("Warning: Printing failed: This fabricator does not have the necessary keys to decrypt design schematics. Please update the research data with the on-screen button and contact GATO Support!") //GS13 - Nanotrasen to GATO return FALSE if(D.build_type && !(D.build_type & allowed_buildtypes)) - say("This machine does not have the necessary manipulation systems for this design. Please contact Nanotrasen Support!") + say("This machine does not have the necessary manipulation systems for this design. Please contact GATO Support!") //GS13 - Nanotrasen to GATO return FALSE if(!(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z))) if(GLOB.security_level < D.min_security_level) diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index dc07a5a184..91babf1256 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -62,11 +62,11 @@ /datum/techweb/science //Global science techweb for RND consoles. id = "SCIENCE" - organization = "Nanotrasen" + organization = "GATO" //GS13 - Nanotrasen to GATO /datum/techweb/bepis //Should contain only 1 BEPIS tech selected at random. id = "EXPERIMENTAL" - organization = "Nanotrasen R&D" + organization = "GATO R&D" //GS13 - Nanotrasen to GATO /datum/techweb/bepis/New() . = ..() diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 8ea4b95d03..680a97390c 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -100,7 +100,7 @@ id = "base" starting_node = TRUE display_name = "Basic Research Technology" - description = "NT default research technologies." + description = "GT default research technologies." //GS13 - NT to GT // Default research tech, prevents bricking design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand", diff --git a/code/modules/research/techweb/nodes/bepis_nodes.dm b/code/modules/research/techweb/nodes/bepis_nodes.dm index ec29979bdf..9877291743 100644 --- a/code/modules/research/techweb/nodes/bepis_nodes.dm +++ b/code/modules/research/techweb/nodes/bepis_nodes.dm @@ -84,8 +84,8 @@ /datum/techweb_node/tackle_advanced id = "tackle_advanced" display_name = "Advanced Grapple Technology" - description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \ - will no longer be accepted in its academic journals." + description = "GATO would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \ + will no longer be accepted in its academic journals." //GS13 - Nanotrasen to GATO design_ids = list("tackle_dolphin", "tackle_rocket") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) hidden = TRUE diff --git a/code/modules/research/techweb/nodes/robotics_nodes.dm b/code/modules/research/techweb/nodes/robotics_nodes.dm index ee4fbd261b..77748de74b 100644 --- a/code/modules/research/techweb/nodes/robotics_nodes.dm +++ b/code/modules/research/techweb/nodes/robotics_nodes.dm @@ -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 diff --git a/code/modules/ruins/spaceruin_code/crashedship.dm b/code/modules/ruins/spaceruin_code/crashedship.dm index e125109168..3879a8a63b 100644 --- a/code/modules/ruins/spaceruin_code/crashedship.dm +++ b/code/modules/ruins/spaceruin_code/crashedship.dm @@ -36,5 +36,5 @@ /obj/item/paper/fluff/ruins/crashedship/old_diary name = "Old Diary" - info = "DEAR DIARY: So we was doing our typical route when the captain says we've been picking up weird signals on some backwater planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies." + info = "DEAR DIARY: So we was doing our typical route when the captain says we've been picking up weird signals on some backwater planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with GT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies." //GS13 - NT to GT diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index e5f35eec68..d65b244c97 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -233,7 +233,7 @@ hex += num2hex(rand(1,16)) msg = "CRC mismatch at 0x[hex] in calculated route buffer. Full reset initiated of FTL_NAVIGATION_SERVICES. Memory decrypted for automatic repair." if(STAGE_4) - msg = "~ACS_directive module_load(cyberdyne.exploit.nanotrasen.shuttlenav)... NT key mismatch. Confirm load? Y...###Reboot complete. $SET transponder_state = 0; System link initiated with connected engines..." + msg = "~ACS_directive module_load(cyberdyne.exploit.gato.shuttlenav)... GT key mismatch. Confirm load? Y...###Reboot complete. $SET transponder_state = 0; System link initiated with connected engines..." //GS13 - NT to GT if(HIJACKED) msg = "SYSTEM OVERRIDE - Resetting course to \[[scramble_message_replace_chars("###########", 100)]\] \ ([scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]) \ diff --git a/code/modules/smithing/anvil.dm b/code/modules/smithing/anvil.dm index 122a859761..85f8d9f508 100644 --- a/code/modules/smithing/anvil.dm +++ b/code/modules/smithing/anvil.dm @@ -190,7 +190,7 @@ outrightfailchance = 1 artifactrolled = FALSE if(user.mind.skill_holder) - user.mind.auto_gain_experience(/datum/skill/level/dwarfy/blacksmithing, 25, 400, silent = FALSE) + user.mind.auto_gain_experience(/datum/skill/level/dwarfy/blacksmithing, 65, 400, silent = FALSE) //GS13 EDIT SMITHING for(var/i in smithrecipes) if(i == stepsdone) var/turf/T = get_turf(user) @@ -223,7 +223,7 @@ outrightfailchance = 1 artifactrolled = FALSE if(user.mind.skill_holder) - user.mind.auto_gain_experience(/datum/skill/level/dwarfy/blacksmithing, 50, 10000000, silent = FALSE) + user.mind.auto_gain_experience(/datum/skill/level/dwarfy/blacksmithing, 125, 10000000, silent = FALSE) //GS13 EDIT SMITHING break /obj/structure/anvil/debugsuper diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 424fd29635..9e8724cf26 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -10,7 +10,7 @@ We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. Base parts are available for shipping via cargo. - -Nanotrasen Naval Command"} + -GATO Naval Command"} //GS13 - Nanotrasen to GATO /datum/station_goal/bluespace_cannon/on_report() //Unlock BSA parts @@ -63,7 +63,7 @@ /obj/machinery/bsa/middle name = "Bluespace Artillery Fusor" - desc = "Contents classified by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." + desc = "Contents classified by GATO Naval Command. Needs to be linked with the other BSA parts using multitool." //GS13 - Nanotrasen to GATO icon_state = "fuel_chamber" var/obj/machinery/bsa/back/back var/obj/machinery/bsa/front/front diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm index 856bf08ff3..1ac2ffc397 100644 --- a/code/modules/station_goals/station_goal.dm +++ b/code/modules/station_goals/station_goal.dm @@ -12,8 +12,8 @@ var/report_message = "Complete this goal." /datum/station_goal/proc/send_report() - priority_announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", SSstation.announcer.get_rand_report_sound()) - print_command_report(get_report(),"Nanotrasen Directive [pick(GLOB.phonetic_alphabet)] \Roman[rand(1,50)]", announce=FALSE) + priority_announce("Priority GATO directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", SSstation.announcer.get_rand_report_sound()) //GS13 - Nanotrasen to GATO + print_command_report(get_report(),"GATO Directive [pick(GLOB.phonetic_alphabet)] \Roman[rand(1,50)]", announce=FALSE) //GS13 - Nanotrasen to GATO on_report() /datum/station_goal/proc/on_report() diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 6ffcfd9dc7..a99b6a926e 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -340,7 +340,7 @@ if(!cell) to_chat(H, "You try to siphon energy from [target], but your power cell is gone!") return - if(H.nutrition >= NUTRITION_LEVEL_WELL_FED) + if(H.nutrition >= NUTRITION_LEVEL_FAT) //GS13 EDIT, let them get fat to_chat(user, "You are already fully charged!") return if(istype(target, /obj/machinery/power/apc)) diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm index c89f56b03c..bb4cfd3ab0 100644 --- a/code/modules/tcg/cards.dm +++ b/code/modules/tcg/cards.dm @@ -675,7 +675,7 @@ card.forceMove(src) cards.Add(card) -/obj/item/paper/tcg_rules +/obj/item/paper/tcg_rules //GS13 - Nanotrasen to GATO name = "TCG Rulebook" desc = "A small rulebook containing a starter guide for TCG." icon = 'icons/obj/tcg/misc.dmi' @@ -683,7 +683,7 @@ w_class = WEIGHT_CLASS_TINY info = "*---------* \n\ - Welcome to the Exciting world of Tactical Card Game! Sponsored by Nanotrasen Edu-tainment Devision. \n \ + Welcome to the Exciting world of Tactical Card Game! Sponsored by GATO Edu-tainment Devision. \n \ Core Rules: \n \
      \n \ Tactical Card Game (Also known as TCG) is a traditional trading card game. It's played between two players, each with a deck or collection of cards. \n \ diff --git a/code/modules/tcg/pack_1.dm b/code/modules/tcg/pack_1.dm index a3920fcdaa..b9c68a22f8 100644 --- a/code/modules/tcg/pack_1.dm +++ b/code/modules/tcg/pack_1.dm @@ -5,7 +5,7 @@ /datum/tcg_card/pack_1/captain name = "Captain" - desc = "Nanotrasen hires a captain for every station. However, most of the time they just drink wishkey and secure the disk." + desc = "GATO hires a captain for every station. However, most of the time they just drink wishkey and secure the disk." //GS13 - Nanotrasen to GATO rules = "Human. Tap this card for 1 mana: inflict -1/-1 to an opposing creature card." icon_state = "captain" @@ -19,7 +19,7 @@ /datum/tcg_card/pack_1/captain_hardsuit name = "Apadyne Technologies Mk.2 R.I.O.T. Suit (Captain's Version)" - desc = "A heavily customised Apadyne Technologies Mk.2 R.I.O.T. Suit, rebuilt and refitted to Nanotrasen's highest standards for issue to Station Captains." + desc = "A heavily customised Apadyne Technologies Mk.2 R.I.O.T. Suit, rebuilt and refitted to GATO's highest standards for issue to Station Captains." //GS13 - Nanotrasen to GATO rules = "On equip: Equipped unit gains +1/+1 for one turn" icon_state = "captain_hardsuit" @@ -89,7 +89,7 @@ /datum/tcg_card/pack_1/hos name = "Head of Security" - desc = "Nanotrasen hires most heads of staff based on their qualifications as being amicable, good at conflict resolution, ability to handle high-stakes situations, humanity, and desire to learn. Heads of Security only need a highschool degree." + desc = "GATO hires most heads of staff based on their qualifications as being amicable, good at conflict resolution, ability to handle high-stakes situations, humanity, and desire to learn. Heads of Security only need a highschool degree." //GS13 - Nanotrasen to GATO rules = "Human. All opponent's cards cost 1 more until Head Of Security is removed from the battlefield." icon_state = "hos" @@ -178,7 +178,7 @@ /datum/tcg_card/pack_1/ai name = "AI" - desc = "The latest generation of NT's top secret artificial intelligence project this time with actual human brains in a jar! Don't tell the press though." + desc = "The latest generation of GT's top secret artificial intelligence project this time with actual human brains in a jar! Don't tell the press though." //GS13 - NT to GT rules = "Asimov. All silicon cards gain +1/0 while this creature is alive." icon_state = "ai" @@ -234,7 +234,7 @@ /datum/tcg_card/pack_1/cyborg_engi name = "Cyborg (Engineering Shell)" - desc = "A common sight on Nanotrasen Stations Engineering Shells maintain critical station systems in hazardous conditions." + desc = "A common sight on GATO Stations Engineering Shells maintain critical station systems in hazardous conditions." //GS13 - Nanotrasen to GATO rules = "Asimov." icon_state = "borg_engi" @@ -336,7 +336,7 @@ /datum/tcg_card/pack_1/assistant name = "Assistant" - desc = "The lowest ladder on the Nanotrasen Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." + desc = "The lowest ladder on the GATO Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." //GS13 - Nanotrasen to GATO rules = "Greytide." icon_state = "assistant" @@ -350,7 +350,7 @@ /datum/tcg_card/pack_1/greytider name = "Greytider" - desc = "The lowest ladder on the Nanotrasen Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." + desc = "The lowest ladder on the GATO Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." //GS13 - Nanotrasen to GATO rules = "Greytide. Instead of getting +1/+1 on the first turn, get it permanently." icon_state = "greytider" @@ -420,7 +420,7 @@ /datum/tcg_card/pack_1/inquisitor name = "Inquisitor's Hardsuit" - desc = "Nanotrasen officially doesn't believe in ghosts magic or anything that can't be solved with science. When you see someone show up in one of these let that remind you of that fact." + desc = "GATO officially doesn't believe in ghosts magic or anything that can't be solved with science. When you see someone show up in one of these let that remind you of that fact." //GS13 - Nanotrasen to GATO rules = "Holy. First Strike." icon_state = "inquisitor" @@ -448,7 +448,7 @@ /datum/tcg_card/pack_1/lawyer name = "Lawyer" - desc = "Nanotrasen knows the value of a good lawyer. That's why they're all working hard at our home offices defending us from frivolous labor suits from lazy no-good employees who should be working hard instead of slacking off reading trading cards." + desc = "GATO knows the value of a good lawyer. That's why they're all working hard at our home offices defending us from frivolous labor suits from lazy no-good employees who should be working hard instead of slacking off reading trading cards." //GS13 - Nanotrasen to GATO rules = "When an opponent attacks with a creature with 3 or more power this card gains Taunt." icon_state = "lawyer" @@ -462,7 +462,7 @@ /datum/tcg_card/pack_1/clown name = "Clown" - desc = "Every Nanotrasen station has a clown on board as high command believes that a source of entertainment will reduce instances of murder-suicide on board Spinward Stations. The results of this hypothesis are as of yet unproven." + desc = "Every GATO station has a clown on board as high command believes that a source of entertainment will reduce instances of murder-suicide on board Spinward Stations. The results of this hypothesis are as of yet unproven." //GS13 - Nanotrasen to GATO rules = "Taunt. When killed, attacking creature dies as well" icon_state = "clown" @@ -504,7 +504,7 @@ /datum/tcg_card/pack_1/cook name = "Cook" - desc = "Every Nanotrasen chef is trained in 3 cuisines of their choosing upon being hired alongside the closely guarded secret of Close Quarters Cooking." + desc = "Every GATO chef is trained in 3 cuisines of their choosing upon being hired alongside the closely guarded secret of Close Quarters Cooking." //GS13 - Nanotrasen to GATO rules = "First Strike. When attacked, gain +1/0." icon_state = "cook" @@ -518,7 +518,7 @@ /datum/tcg_card/pack_1/curator name = "Curator" - desc = "In Nanotrasen polls the Curator has ranked as the most pointless job on station much to the ire of the Curator's union. Thankfully we don't have to listen to them." + desc = "In GATO polls the Curator has ranked as the most pointless job on station much to the ire of the Curator's union. Thankfully we don't have to listen to them." //GS13 - Nanotrasen to GATO rules = "On Summon: Draw a card. If it's a spell, discard it." icon_state = "curator" @@ -550,7 +550,7 @@ /datum/tcg_card/pack_1/sec_officer name = "Security Officer" - desc = "Nanotrasen would like to remind all employees to support their station security team; remember the boys in red keep you safe!" + desc = "GATO would like to remind all employees to support their station security team; remember the boys in red keep you safe!" //GS13 - Nanotrasen to GATO rules = "Squad Tactics." icon_state = "officer" @@ -578,7 +578,7 @@ /datum/tcg_card/pack_1/detective name = "Security Officer" - desc = "Nanotrasen hires nothing but the best detectives to investigate crime on our stations. A penchant for cigarettes and outdated fashion isn't mandatory but is appreciated." + desc = "GATO hires nothing but the best detectives to investigate crime on our stations. A penchant for cigarettes and outdated fashion isn't mandatory but is appreciated." //GS13 - Nanotrasen to GATO rules = "Deadeye." icon_state = "detective" @@ -610,7 +610,7 @@ /datum/tcg_card/pack_1/scientist name = "Scientist" - desc = "Rumours that Nanotrasen hires 'mad scientists' are greatly exaggerated. Scientists are regularly screened to ensure that their insanity remains within acceptable limits." + desc = "Rumours that GATO hires 'mad scientists' are greatly exaggerated. Scientists are regularly screened to ensure that their insanity remains within acceptable limits." //GS13 - Nanotrasen to GATO rules = "When this card is targeted by an opponent's single target spell you gain 1 lifeshard." icon_state = "scientist" @@ -624,7 +624,7 @@ /datum/tcg_card/pack_1/scientist_moth name = "Scientist(Moth)" - desc = "Moths are a common sight in Nanotrasen research departments acting as integral ideas guys for new clothing designs and lighting innovations." + desc = "Moths are a common sight in GATO research departments acting as integral ideas guys for new clothing designs and lighting innovations." //GS13 - Nanotrasen to GATO rules = "" icon_state = "scientist_moth" @@ -638,7 +638,7 @@ /datum/tcg_card/pack_1/roboticist name = "Roboticist" - desc = "The roboticist's work is as close as Nanotrasen legally allows its employees to come to necromancy." + desc = "The roboticist's work is as close as GATO legally allows its employees to come to necromancy." //GS13 - Nanotrasen to GATO rules = "If a Asimov card on your side of the field is destroyed you may pay 2 mana and tap this card: Return that card to your hand." icon_state = "roboticist" @@ -652,7 +652,7 @@ /datum/tcg_card/pack_1/monkey name = "Monkey" - desc = "Nanotrasen seeks to phase out animal testing by 2570 in accordance with new TerraGov legislation. This will be replaced with more ethical solutions such as computer simulations or experimentation on Assistants." + desc = "GATO seeks to phase out animal testing by 2570 in accordance with new TerraGov legislation. This will be replaced with more ethical solutions such as computer simulations or experimentation on Assistants." //GS13 - Nanotrasen to GATO rules = "Greytide. This card is considered Human with a Geneticist on your side of the field." icon_state = "monkey" @@ -666,7 +666,7 @@ /datum/tcg_card/pack_1/geneticist name = "Geneticist" - desc = "Geneticists are tasked with manipulating human DNA to produce special effects. Nanotrasen maintains a strict 'no superhero' policy for mutations following the Superhero Civil War of 2150." + desc = "Geneticists are tasked with manipulating human DNA to produce special effects. GATO maintains a strict 'no superhero' policy for mutations following the Superhero Civil War of 2150." //GS13 - Nanotrasen to GATO rules = "Tap this card and pay 3 mana: Give a friendly creature Human until this card leaves the field." icon_state = "geneticist" @@ -698,7 +698,7 @@ /datum/tcg_card/pack_1/doctor name = "Medical Doctor" - desc = "Nanotrasen's doctors are well known for their ability to treat almost any ailment known to mankind... as well as causing a fair few in the process." + desc = "GATO's doctors are well known for their ability to treat almost any ailment known to mankind... as well as causing a fair few in the process." //GS13 - Nanotrasen to GATO rules = "Tap this card: Select a card that has less attack than this card from your graveyard and summon it to your side of the field." icon_state = "doctor" @@ -754,7 +754,7 @@ /datum/tcg_card/pack_1/paramedic name = "Paramedic" - desc = "Nanotrasen encourages all paramedics to think of others before themselves- if this means running through a plasma fire to save a colleague so be it." + desc = "GATO encourages all paramedics to think of others before themselves- if this means running through a plasma fire to save a colleague so be it." //GS13 - Nanotrasen to GATO rules = "Taunt, First Strike" icon_state = "paramedic" @@ -888,7 +888,7 @@ /datum/tcg_card/pack_1/quartermaster name = "Quartermaster" - desc = "Every Nanotrasen station has a Quartermaster who controls the flow of cargo to and from the station and by extension to and from the hands of the crew. He's not given the distinction of being a head though. His job isn't hard enough." + desc = "Every GATO station has a Quartermaster who controls the flow of cargo to and from the station and by extension to and from the hands of the crew. He's not given the distinction of being a head though. His job isn't hard enough." //GS13 - Nanotrasen to GATO rules = "Permanently tap this card. All cargo cards on your side gain +2/+2 until this card leaves the play." icon_state = "quartermaster" @@ -902,7 +902,7 @@ /datum/tcg_card/pack_1/explorer name = "Explorer" - desc = "The Nanotrasen Explorers Corps boldly goes where humanity has never gone before. Or would if they weren't buried under mounds of bureaucracy." + desc = "The GATO Explorers Corps boldly goes where humanity has never gone before. Or would if they weren't buried under mounds of bureaucracy." //GS13 - Nanotrasen to GATO rules = "Tap this card: Flip a coin if heads gain 4 mana this turn, if tails tap this card for 2 turns." icon_state = "explorer" @@ -920,7 +920,7 @@ /datum/tcg_card/pack_1/intern name = "Intern" - desc = "All Nanotrasen interns come with 3 things: A resume a desire to learn and vague promises that they're getting paid at some point. So don't be too rough on them." + desc = "All GATO interns come with 3 things: A resume a desire to learn and vague promises that they're getting paid at some point. So don't be too rough on them." //GS13 - Nanotrasen to GATO rules = "First Strike. Greytide." icon_state = "intern" @@ -933,7 +933,7 @@ card_type = "Unit" /datum/tcg_card/pack_1/ert_command - name = "NT P.A.V. Suit (Command)" + name = "GT P.A.V. Suit (Command)" //GS13 - NT to GT desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sidearm holster and a sleek blue finish." rules = "While equipped give the equipped unit Squad Tactics and First Strike." icon_state = "ert_command" @@ -947,7 +947,7 @@ card_type = "Equipment" /datum/tcg_card/pack_1/ert_sec - name = "NT P.A.V. Suit (Security)" + name = "GT P.A.V. Suit (Security)" //GS13 - NT to GT desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with bulletproof padding and an intimidating red finish." rules = "While equipped give the equipped unit Squad Tactics." icon_state = "ert_sec" @@ -961,7 +961,7 @@ card_type = "Equipment" /datum/tcg_card/pack_1/ert_med - name = "NT P.A.V. Suit (Medical)" + name = "GT P.A.V. Suit (Medical)" //GS13 - NT to GT desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sterile coating and a calming white finish." rules = "While equipped give the equipped unit Squad Tactics." icon_state = "ert_med" @@ -975,7 +975,7 @@ card_type = "Equipment" /datum/tcg_card/pack_1/ert_engi - name = "NT P.A.V. Suit (Engineering)" + name = "GT P.A.V. Suit (Engineering)" //GS13 - NT to GT desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a welding screen and a flashy yellow finish." rules = "While equipped give the equipped unit Squad Tactics." icon_state = "ert_engi" @@ -1372,7 +1372,7 @@ /datum/tcg_card/pack_1/tough_choices name = "Tough Choices" - desc = "Every Nanotrasen employee will at some point be forced to make a tough choice. Make sure you make the right one!" + desc = "Every GATO employee will at some point be forced to make a tough choice. Make sure you make the right one!" //GS13 - Nanotrasen to GATO rules = "Draw the top three cards from your deck. Summon one at no cost and discard the other two." icon_state = "tough_choices" diff --git a/code/modules/tcg/pack_star.dm b/code/modules/tcg/pack_star.dm index 4b8e32e631..229cebb9ac 100644 --- a/code/modules/tcg/pack_star.dm +++ b/code/modules/tcg/pack_star.dm @@ -207,7 +207,7 @@ /datum/tcg_card/pack_star/phazon name = "Phazon" - desc = "The pinnacle of scientific research and pride of Nanotrasen, Phazon uses cutting edge bluespace technology and expensive materials." + desc = "The pinnacle of scientific research and pride of GATO, Phazon uses cutting edge bluespace technology and expensive materials." //GS13 - Nanotrasen to GATO rules = "Whenever this unit takes damage, flip a coin. If heads, take no damage. If tails, take double damage." icon_state = "phazon" diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index 7a8b7dc62f..f48c8fc7e7 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -44,9 +44,9 @@ /datum/uplink_item/suits/space_suit name = "Syndicate Space Suit" - desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ - sightings, however." + desc = "This red and black Syndicate space suit is less encumbering than GATO variants, \ + fits inside bags, and has a weapon slot. GATO crew members are trained to report red space suit \ + sightings, however." //GS13 - Nanotrasen to GATO item = /obj/item/storage/box/syndie_kit/space cost = 4 @@ -56,7 +56,7 @@ that runs off standard atmospheric tanks. Toggling the suit in and out of \ combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ Additionally the suit is collapsible, making it small enough to fit within a backpack. \ - Nanotrasen crew who spot these suits are known to panic." + GATO crew who spot these suits are known to panic." //GS13 - Nanotrasen to GATO item = /obj/item/clothing/suit/space/hardsuit/syndi cost = 8 purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //you can't buy it in nuke, because the elite hardsuit costs the same while being better diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index 6bfe3f5bb8..3a57ef39fb 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -158,8 +158,8 @@ /datum/uplink_item/dangerous/flamethrower name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from GATO \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." //GS13 - Nanotrasen to GATO item = /obj/item/flamethrower/full/tank cost = 4 surplus = 40 diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index a924b56563..40dda771a0 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -194,10 +194,10 @@ /datum/uplink_item/device_tools/rad_laser name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + desc = "A radioactive microlaser disguised as a standard GATO health analyzer. When used, it emits a \ powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." + and wavelength, which controls the delay before the effect kicks in." //GS13 - Nanotrasen to GATO item = /obj/item/healthanalyzer/rad_laser cost = 3 diff --git a/code/modules/uplink/uplink_items/uplink_support.dm b/code/modules/uplink/uplink_items/uplink_support.dm index 245074b2a5..a17afa4a54 100644 --- a/code/modules/uplink/uplink_items/uplink_support.dm +++ b/code/modules/uplink/uplink_items/uplink_support.dm @@ -48,7 +48,7 @@ name = "Syndicate Saboteur Cyborg" desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ - Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." + Its chameleon projector lets it disguise itself as a GATO cyborg, on top it has thermal vision and a pinpointer." //GS13 - Nanotrasen to GATO item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur refundable = TRUE cost = 35 diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm index d351300764..ca258f6cf2 100644 --- a/code/modules/vehicles/mecha/combat/durand.dm +++ b/code/modules/vehicles/mecha/combat/durand.dm @@ -1,5 +1,5 @@ /obj/vehicle/sealed/mecha/combat/durand - desc = "An aging combat exosuit utilized by the Nanotrasen corporation. Originally developed to combat hostile alien lifeforms." + desc = "An aging combat exosuit utilized by the GATO corporation. Originally developed to combat hostile alien lifeforms." //GS13 - Nanotrasen to GATO name = "\improper Durand" icon_state = "durand" movedelay = 4 diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index c3e5f6ce0e..a71cc8750f 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -35,7 +35,11 @@ /obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 8, /obj/item/reagent_containers/food/drinks/ice = 10, /obj/item/reagent_containers/food/drinks/flask = 3, - /obj/item/reagent_containers/food/drinks/beer = 6) + /obj/item/reagent_containers/food/drinks/beer = 6, + /obj/item/reagent_containers/food/drinks/flask/paper_cup/small = 20, + /obj/item/reagent_containers/food/drinks/flask/paper_cup/medium = 20, + /obj/item/reagent_containers/food/drinks/flask/paper_cup/big = 20, + /obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big = 15) contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12, /obj/item/reagent_containers/food/drinks/bottle/fernet = 5) premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4, diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 283ee5ad95..e858431db6 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -228,7 +228,6 @@ /obj/item/clothing/under/costume/basil_boys = 20, /obj/item/clothing/head/basil_boys = 20, /obj/item/clothing/shoes/basil_boys = 20, - /* Commenting out until next Christmas or made automatic /obj/item/clothing/accessory/sweater/uglyxmas = 3, /obj/item/clothing/under/costume/christmas = 3, /obj/item/clothing/under/costume/christmas/green = 3, @@ -242,7 +241,6 @@ /obj/item/clothing/shoes/winterboots/christmasbootsr = 3, /obj/item/clothing/shoes/winterboots/christmasbootsg = 3, /obj/item/clothing/shoes/winterboots/santaboots = 3, - */ /obj/item/clothing/head/cowboyhat = 3, /obj/item/clothing/head/cowboyhat/black = 3, /obj/item/clothing/head/cowboyhat/white = 3, @@ -269,6 +267,7 @@ /obj/item/clothing/suit/vapeshirt = 2, /obj/item/clothing/under/costume/geisha = 4, /obj/item/clothing/under/misc/keyholesweater = 3, + /obj/item/clothing/suit/space/hardsuit/engine/haydee = 1, //GS13 /obj/item/clothing/under/misc/staffassistant = 5) premium = list(/obj/item/clothing/under/suit/checkered = 4, /obj/item/clothing/head/mailman = 2, diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm index 02f3f30e4b..5939b48af0 100644 --- a/code/modules/vending/kinkmate.dm +++ b/code/modules/vending/kinkmate.dm @@ -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, diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm index 9370cf0c24..d568385d5f 100644 --- a/code/modules/vending/sustenance.dm +++ b/code/modules/vending/sustenance.dm @@ -1,6 +1,6 @@ /obj/machinery/vending/sustenance name = "\improper Sustenance Vendor" - desc = "A vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement." + desc = "A vending machine which vends food, as required by section 47-C of the GT's Prisoner Ethical Treatment Agreement." //GS13 - NT to GT product_slogans = "Enjoy your meal.;Enough calories to support strenuous labor." product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Even prisoners deserve their daily bread!;Have some more candy corn!;Try our new ice cups!" light_mask = "snack-light-mask" diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index d5a3627684..e6141b3705 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -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)) diff --git a/config/config.txt b/config/config.txt index 63adaee716..9508924e78 100644 --- a/config/config.txt +++ b/config/config.txt @@ -40,3 +40,4 @@ $include entries/urls.txt $include entries/vote.txt $include plushies/defines.txt +$include entries/border.txt diff --git a/config/entries/border.txt b/config/entries/border.txt new file mode 100644 index 0000000000..9f8c5f2362 --- /dev/null +++ b/config/entries/border.txt @@ -0,0 +1,5 @@ +## If the server only accepts whitelisted connections +## 0 Disables Border Control +## 1 Puts Border Control into 'learning mode' and will have it automatically whitelist new connections +## 2 Puts Border Control into 'enforcing mode' and will have it deny connections that are not already whitelisted. +BORDER_CONTROL 1 diff --git a/config/entries/gamemodes.txt b/config/entries/gamemodes.txt index 7193bef584..65f97a51a1 100644 --- a/config/entries/gamemodes.txt +++ b/config/entries/gamemodes.txt @@ -14,18 +14,18 @@ REPEATED_MODE_ADJUST 45 30 10 ## Default probablity is 1, increase to make that mode more likely to be picked. ## Set to 0 to disable that mode. -PROBABILITY TRAITOR 5 -PROBABILITY TRAITORBRO 2 -PROBABILITY TRAITORCHAN 4 -PROBABILITY INTERNAL_AFFAIRS 3 -PROBABILITY NUCLEAR 2 -PROBABILITY REVOLUTION 2 -PROBABILITY CULT 2 -PROBABILITY CHANGELING 2 -PROBABILITY WIZARD 4 +PROBABILITY TRAITOR 0 +PROBABILITY TRAITORBRO 0 +PROBABILITY TRAITORCHAN 0 +PROBABILITY INTERNAL_AFFAIRS 0 +PROBABILITY NUCLEAR 0 +PROBABILITY REVOLUTION 0 +PROBABILITY CULT 0 +PROBABILITY CHANGELING 0 +PROBABILITY WIZARD 0 PROBABILITY MONKEY 0 PROBABILITY METEOR 0 -PROBABILITY EXTENDED 0 +PROBABILITY EXTENDED 1 PROBABILITY SECRET_EXTENDED 0 PROBABILITY DEVIL 0 PROBABILITY DEVIL_AGENTS 0 @@ -169,7 +169,7 @@ BROTHER_OBJECTIVES_AMOUNT 2 ## Uncomment to prohibit jobs that start with loyalty ## implants from being most antagonists. -#PROTECT_ROLES_FROM_ANTAGONIST +PROTECT_ROLES_FROM_ANTAGONIST ## Uncomment to prohibit assistants from becoming most antagonists. #PROTECT_ASSISTANT_FROM_ANTAGONIST diff --git a/config/entries/general.txt b/config/entries/general.txt index b118d65621..a9c4bac87e 100644 --- a/config/entries/general.txt +++ b/config/entries/general.txt @@ -1,8 +1,8 @@ ## Lobby time: This is the amount of time between rounds that players have to setup their characters and be ready. -LOBBY_COUNTDOWN 120 +LOBBY_COUNTDOWN 180 ## Round End Time: This is the amount of time after the round ends that players have to murder death kill each other. -ROUND_END_COUNTDOWN 90 +ROUND_END_COUNTDOWN 120 ## period of time in seconds for players to be considered inactive # INACTIVITY_PERIOD 300 @@ -14,7 +14,7 @@ ROUND_END_COUNTDOWN 90 # KICK_INACTIVE ## Job slot open/close by identification consoles delay in seconds -ID_CONSOLE_JOBSLOT_DELAY 30 +ID_CONSOLE_JOBSLOT_DELAY 10 ## disables calling del(src) on newmobs if they logout before spawnin in @@ -163,13 +163,13 @@ MINIMAL_ACCESS_THRESHOLD 20 #JOBS_HAVE_MINIMAL_ACCESS ## Uncomment to give assistants maint access. -#ASSISTANTS_HAVE_MAINT_ACCESS +ASSISTANTS_HAVE_MAINT_ACCESS ## Uncoment to give security maint access. Note that if you dectivate JOBS_HAVE_MINIMAL_ACCESS security already gets maint from that. -#SECURITY_HAS_MAINT_ACCESS +SECURITY_HAS_MAINT_ACCESS ## Uncomment to give everyone maint access. -#EVERYONE_HAS_MAINT_ACCESS +EVERYONE_HAS_MAINT_ACCESS ## Comment this out this to make security officers spawn in departmental security posts SEC_START_BRIG @@ -177,7 +177,7 @@ SEC_START_BRIG ## GHOST INTERACTION ### ## Uncomment to let ghosts spin chairs. You may be wondering why this is a config option. Don't ask. -#GHOST_INTERACTION +GHOST_INTERACTION ## NON-VOCAL SILICONS ### ## Uncomment these to stop the AI, or cyborgs, from having vocal communication. @@ -279,7 +279,7 @@ ROUNDSTART_RACES human ROUNDSTART_RACES lizard ROUNDSTART_RACES synthliz #ROUNDSTART_RACES fly -#ROUNDSTART_RACES insect +ROUNDSTART_RACES insect ROUNDSTART_RACES plasmaman #ROUNDSTART_RACES shadow ROUNDSTART_RACES felinid @@ -302,7 +302,7 @@ ROUNDSTART_RACES ethereal #ROUNDSTART_RACES skeleton #ROUNDSTART_RACES zombie #ROUNDSTART_RACES slime -#ROUNDSTART_RACES pod +ROUNDSTART_RACES pod #ROUNDSTART_RACES military_synth #ROUNDSTART_RACES agent @@ -320,7 +320,7 @@ ROUNDSTART_RACES arachnid ##------------------------------------------------------------------------------------------- ## Uncomment to give players the choice of joining as a human with mutant bodyparts before they join the game -#JOIN_WITH_MUTANT_HUMANS +JOIN_WITH_MUTANT_HUMANS ##Overflow job. Default is assistant OVERFLOW_JOB Assistant @@ -385,13 +385,13 @@ BOMBCAP 20 ## a less lootfilled or smaller or less round effecting ruin costs less to ## spawn, while the converse is true. Alter this number to affect the amount ## of ruins. -LAVALAND_BUDGET 60 +LAVALAND_BUDGET 80 ## Ice Moon Budget ICEMOON_BUDGET 90 ## Space Ruin Budget -Space_Budget 16 +Space_Budget 20 ## Station Ruin Budget STATION_SPACE_BUDGET 10 @@ -408,13 +408,13 @@ ARRIVALS_SHUTTLE_DOCK_WINDOW 55 ## How many wirechewing rodents you want to spawn on exposed maintenane wires at the start of the round. You may wish to set this to 0 if you're testing powernets. -MICE_ROUNDSTART 10 +MICE_ROUNDSTART 5 ## If the percentage of players alive (doesn't count conversions) drops below this threshold the emergency shuttle will be forcefully called (provided it can be) #EMERGENCY_SHUTTLE_AUTOCALL_THRESHOLD 0.2 ## Determines if players are allowed to print integrated circuits, uncomment to allow. -#IC_PRINTING +IC_PRINTING ## Uncomment to allow roundstart quirk selection in the character setup menu. ## This used to be named traits, hence the config name, but it handles quirks, not the other kind of trait! @@ -442,10 +442,10 @@ NIGHTSHIFT_TOGGLE_PUBLIC_REQUIRES_AUTH #SHIFT_TIME_REALTIME ## A cap on how many monkeys may be created via monkey cubes -MONKEYCAP 64 +MONKEYCAP 32 ## A cap on how many mice can be bred via cheese wedges -RATCAP 64 +RATCAP 32 ## Enable the capitalist agenda on your server. ECONOMY @@ -465,7 +465,7 @@ BOX_RANDOM_ENGINE Box Tesla,3 BOX_RANDOM_ENGINE Box Singulo,3 BOX_RANDOM_ENGINE Box SM 1x3,1 BOX_RANDOM_ENGINE Box SM 5x5,1 -BOX_RANDOM_ENGINE Box SM 3x,0 +BOX_RANDOM_ENGINE Box SM 3x,1 BOX_RANDOM_ENGINE Box TEG,3 BOX_RANDOM_ENGINE Box Empty,0 BOX_RANDOM_ENGINE Box Antimatter,1 @@ -515,3 +515,7 @@ RANDOMIZING_STATION_NAME_MESSAGE %NEW_STATION_NAME%? %NEW_STATION_NAME%! %NEW_ST RANDOMIZING_STATION_NAME_MESSAGE A popular social network application had already claimed the trademark of %CURRENT_STATION_NAME%, the station has been renamed to %NEW_STATION_NAME%. RANDOMIZING_STATION_NAME_MESSAGE We're pulling a prank on %RANDOM_CREWMEMBER%, so we've changed the station's name to %NEW_STATION_NAME%. RANDOMIZING_STATION_NAME_MESSAGE %RANDOM_NAME% made us change the station name, which is now %NEW_STATION_NAME%. + +## Comment to disable sending a toast notification on the host server when initializations complete. +## Even if this is enabled, a notification will only be sent if there are no clients connected. +TOAST_NOTIFICATION_ON_INIT diff --git a/config/entries/respawns.txt b/config/entries/respawns.txt index 41c76eaabc..95fd41a911 100644 --- a/config/entries/respawns.txt +++ b/config/entries/respawns.txt @@ -2,25 +2,25 @@ RESPAWNS_ENABLED ## Minutes delay before allowing respawns, either from death or observing. Not an integer. -RESPAWN_DELAY 10.0 +RESPAWN_DELAY 1.0 ## Minutes delay before allowing respawns, if the user cryo'd. Not an integer. -RESPAWN_DELAY_CRYO 5.0 +RESPAWN_DELAY_CRYO 1.0 ## Allow respawning as anything but an assistant. ALLOW_NON_ASSISTANT_RESPAWN ## Allow respawning as security and command. Only works if ALLOW_NON_ASSISTANT_RESPAWN is on. -# ALLOW_COMBAT_ROLE_RESPAWN +ALLOW_COMBAT_ROLE_RESPAWN ## Allow respawning as the same character -# ALLOW_SAME_CHARACTER_RESPAWN +ALLOW_SAME_CHARACTER_RESPAWN ## Observing is considered a respawn for the purposes of role lockouts. Defaults to disabled. When disabled, only RESPAWNING rather than returning from observer locks you out. RESPAWN_PENALTY_INCLUDES_OBSERVE ## Time in minutes from round start before respawn is enabled -RESPAWN_MINIMUM_DELAY_ROUNDSTART 30.0 +RESPAWN_MINIMUM_DELAY_ROUNDSTART 1.0 ## Gamemode (config tags!) banlist for respawn RESPAWN_CHAOS_GAMEMODES WIZARD diff --git a/config/entries/server.txt b/config/entries/server.txt index 0187c641ef..55e0a93ec3 100644 --- a/config/entries/server.txt +++ b/config/entries/server.txt @@ -2,14 +2,14 @@ #AUTO_PROFILE ## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. -# SERVERNAME tgstation +SERVERNAME General Station 13 ## Community short-name: This appears in parentheses after the server's active station name -# COMMUNITYSHORTNAME tg??? +COMMUNITYSHORTNAME GS13 ## Community link: Requires a community short-name defined. Attaches a link to the community's shortname, and requires a short-name defined. ## You could alternatively just add raw HTML to the above, but this is more newbie-friendly -# COMMUNITYLINK http://crouton.net +COMMUNITYLINK https://discord.gg/HHxHm6F ## Server tagline: This will appear right below the server's title. # SERVERTAGLINE A generic TG-based server @@ -21,7 +21,7 @@ # SERVERSQLNAME tgstation ## Station name: The name of the station as it is referred to in-game. If commented out, the game will generate a random name instead. -STATIONNAME Space Station 13 +STATIONNAME General Station 13 ## Put on byond hub: Uncomment this to put your server on the byond hub. #HUB @@ -35,7 +35,7 @@ TICK_LIMIT_MC_INIT 500 TICKLAG 0.5 ##Can also be set as per-second value, the following value is identical to the above. -#FPS 20 +#FPS 30 ## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server #USEWHITELIST @@ -81,4 +81,4 @@ DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 ## Disallows roundstart gamemode voting if not null or uncommented ## Just input the gamemode lowercase in there, the thing will take a simple string for it ## Invalid gamemodes will default extended, have fun. -#FORCE_GAMEMODE +FORCE_GAMEMODE extended diff --git a/config/entries/vote.txt b/config/entries/vote.txt index 14c7c36a4e..057622cf90 100644 --- a/config/entries/vote.txt +++ b/config/entries/vote.txt @@ -12,7 +12,7 @@ VOTE_PERIOD 600 ## autovote initial delay (deciseconds) before first automatic transfer vote call (default 120 minutes) ## Set to 0 to disable the subsystem altogether. -VOTE_AUTOTRANSFER_INITIAL 72000 +VOTE_AUTOTRANSFER_INITIAL 0 ## autovote delay (deciseconds) before sequential automatic transfer votes are called (default 30 minutes) VOTE_AUTOTRANSFER_INTERVAL 18000 @@ -64,4 +64,4 @@ MODETIER_VOTING DROPPED_MODES 3 ## Whether or not you must be readied up to vote gamemode -#MUST_BE_READIED_TO_VOTE_GAMEMODE +MUST_BE_READIED_TO_VOTE_GAMEMODE diff --git a/config/in_character_filter.txt b/config/in_character_filter.txt index 46df3fd60c..9c3db68394 100644 --- a/config/in_character_filter.txt +++ b/config/in_character_filter.txt @@ -2,6 +2,11 @@ # Words that will block in character chat messages from sending. # # Case is not important. Commented-out examples are listed below, just remove the "#". # ############################################################################################### -#lol -#omg -#wtf \ No newline at end of file +lol +omg +wtf +tbh +brb +gtfo +stfu +xd diff --git a/config/motd.txt b/config/motd.txt index c5b8a59497..90e94e498b 100644 --- a/config/motd.txt +++ b/config/motd.txt @@ -1,5 +1,2 @@ - -

      Welcome to Space Station 13!

      - -This server is running a /tg/station 13 Git build. +

      Welcome to Gain Station 13!


      These are our rules kindly follow them:


      1: This server is 18+. If you are below the age of 18, you may not participate in discord or the game server.

      2: Be respectful to other players. Don't harass anyone or be hateful towards them.

      3: Use OOC channel for OOC questions and don't acknowledge current ongoing round in OOC.

       4: Don't metagame or powergame.

      5: The server follows a medium roleplay (MRP) standard. Have your characters react in a plausible way and have their motives make sense. Don't use netspeak IC either.

      6: No names that reference fictional media, OOC, or real world.

      7: Don't kill other players without good IC justification for it.

      8: Don't grief the station, players or equipment.

      9: Don't play Command without good knowledge of the role.

      10: The administration team reserves a right to impose any bans, warnings etc in case of any unstated violations or loopholes.

      More details on these rules is found in our discord!


      \ No newline at end of file diff --git a/config/motd_old.txt b/config/motd_old.txt new file mode 100644 index 0000000000..c5b8a59497 --- /dev/null +++ b/config/motd_old.txt @@ -0,0 +1,5 @@ + + +

      Welcome to Space Station 13!

      + +This server is running a /tg/station 13 Git build. diff --git a/config/title_screens/images/title1.dmi b/config/title_screens/images/title1.dmi deleted file mode 100644 index de56de7ca7..0000000000 Binary files a/config/title_screens/images/title1.dmi and /dev/null differ diff --git a/config/title_screens/images/title2.dmi b/config/title_screens/images/title2.dmi deleted file mode 100644 index d5196c9ae0..0000000000 Binary files a/config/title_screens/images/title2.dmi and /dev/null differ diff --git a/config/title_screens/images/title3.dmi b/config/title_screens/images/title3.dmi deleted file mode 100644 index 1a5ae1ed7f..0000000000 Binary files a/config/title_screens/images/title3.dmi and /dev/null differ diff --git a/config/title_screens/images/title4.dmi b/config/title_screens/images/title4.dmi deleted file mode 100644 index 3f2d008161..0000000000 Binary files a/config/title_screens/images/title4.dmi and /dev/null differ diff --git a/config/title_screens/images/title5.dmi b/config/title_screens/images/title5.dmi deleted file mode 100644 index 9491274eda..0000000000 Binary files a/config/title_screens/images/title5.dmi and /dev/null differ diff --git a/dependencies.sh b/dependencies.sh index a9f562ade7..c172f033ff 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -8,17 +8,18 @@ export BYOND_MAJOR=515 export BYOND_MINOR=1634 #rust_g git tag -export RUST_G_VERSION=0.4.10 +export RUST_G_VERSION=3.3.0 #node version -export NODE_VERSION=16 -export NODE_VERSION_PRECISE=16.13.1 +export NODE_VERSION_LTS=20.13.0 +# compatiblility mode MUST work with windows 7 +export NODE_VERSION_COMPAT=20.2.0 # SpacemanDMM git tag -export SPACEMAN_DMM_VERSION=suite-1.8 +export SPACEMAN_DMM_VERSION=suite-1.9 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.7.9 +export PYTHON_VERSION=3.9.0 # Auxmos git tag export AUXMOS_VERSION=v2.5.1 diff --git a/hyperstation/code/datums/components/crafting/bounties.dm b/hyperstation/code/datums/components/crafting/bounties.dm index c6511c6ec3..14ea210f4d 100644 --- a/hyperstation/code/datums/components/crafting/bounties.dm +++ b/hyperstation/code/datums/components/crafting/bounties.dm @@ -65,7 +65,7 @@ datum/bounty/lewd/fluid/New() //GS13 made some edits here that changes stuff int reagent_type = /datum/reagent/consumable/milk wanted_reagent = new reagent_type name = wanted_reagent.name - description = "The GATO annual bake sale is soon, and all of our milk has expired. Help us out." + description = "The GATO annual bake sale is soon, and all of our milk has expired. Help us out." //GS13 reward += rand(10, 17) * 500 //Milk is generally easier to get. Make the reward a little lower. if(15,16) //A little romance var/static/list/possible_reagents = list(\ @@ -84,7 +84,7 @@ datum/bounty/lewd/fluid/New() //GS13 made some edits here that changes stuff int reagent_type = /datum/reagent/consumable/lipoifier wanted_reagent = new reagent_type name = wanted_reagent.name - description = "The quality of GATO's meat-related products have diminished. Send us some lipoifier to help with meat production." + description = "The quality of GATO's meat-related products have diminished. Send us some lipoifier to help with meat production." //GS13 reward += rand(2, 7) * 500 /* //Just not getting this to work. @@ -100,6 +100,6 @@ datum/bounty/lewd/fluid/New() //GS13 made some edits here that changes stuff int worth += fluids[/datum/reagent/consumable/semen]*2 worth += fluids[/datum/reagent/consumable/milk]*2 - worth += fluids[/datum/reagent/consumable/femcum]*5 + worth += fluids[/datum/reagent/consumable/semen/femcum]*5 return worth */ diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm index c881d29cba..f4df481b63 100644 --- a/hyperstation/code/modules/arousal/arousalhud.dm +++ b/hyperstation/code/modules/arousal/arousalhud.dm @@ -3,7 +3,7 @@ //if you wanna use this on your own server go ahead, but alittle credit would always be nice! -quotefox //This still uses alot of cits arousal system! -/obj/screen/arousal/ui_interact(mob/user) +/atom/movable/screen/arousal/ui_interact(mob/user) . = ..() var/dat = {"Genitals

      "} @@ -12,10 +12,9 @@ if(!G.nochange) if(!G.dontlist) // GS13: Fix spelling - dat += "[G.mode == "hidden" ? "[G.name] (Hidden)" : (G.mode == "clothes" ? "[G.name] (Hidden by Clothes)" : (G.mode == "visible" ? "[G.name] (Visible)" : "[G.name] (Visible)"))]
      " + dat += "[G.mode == GEN_VISIBLE_NEVER ? "[G.name] (Hidden)" : (G.mode == GEN_VISIBLE_NO_UNDIES ? "[G.name] (Hidden by Undies)" : (G.mode == GEN_VISIBLE_NO_CLOTHES ? "[G.name] (Hidden by Clothes)" : (G.mode == GEN_VISIBLE_ALWAYS ? "[G.name] (Visible)" : "[G.name] (Visible)")))]
      " dat += {"
      Contexual Options

      "} - var/obj/item/organ/genital/penis/P = user.getorganslot("penis") //Options dat += "Masturbate" dat += "(Stimulate a sexual organ with your hands.)
      " @@ -65,22 +64,13 @@ dat += "Climax with [user.pulling]" dat += {"(Orgasm with another person.)
      "} - var/mob/living/carbon/human/H = user.pulling - if(H.breedable && P && H) - dat += "Impregnate [U.pulling] ([clamp(U.impregchance,0,100)]%)" - dat += "(Climax inside another person, and attempt to knock them up.)
      " else dat += "Climax over" dat += "(Requires a partner)
      " dat += "Climax with" dat += "(Requires a partner)
      " - //old code needs to be cleaned - if(P) - if(P.condom == 1) - dat += "Remove condom (penis)
      " - if(P.sounding == 1) - dat += "Remove sounding rod (penis)
      " + for(var/obj/item/organ/genital/G in U.internal_organs) if(G.equipment) //they have equipment dat += "Remove [G.equipment.name] ([G.name])
      " @@ -94,7 +84,6 @@ var/datum/browser/popup = new(user, "arousal", "Arousal Panel") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state), 500,600) popup.open() @@ -102,7 +91,7 @@ -/obj/screen/arousal/Topic(href, href_list) +/atom/movable/screen/arousal/Topic(href, href_list) . = ..() //Sanity checks. if(..()) return @@ -121,36 +110,36 @@ if(href_list["hidepenis"]) var/obj/item/organ/genital/penis/P = usr.getorganslot("penis") - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") P.toggle_visibility(picked_visibility) if(href_list["hidevagina"]) var/obj/item/organ/genital/vagina/V = usr.getorganslot("vagina") - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") V.toggle_visibility(picked_visibility) if(href_list["hidebreasts"]) var/obj/item/organ/genital/breasts/B = usr.getorganslot(ORGAN_SLOT_BREASTS) - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") B.toggle_visibility(picked_visibility) if(href_list["hidebelly"]) var/obj/item/organ/genital/belly/E = usr.getorganslot("belly") - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") E.toggle_visibility(picked_visibility) - if(href_list["hideanus"]) + if(href_list["hidebutt"]) var/obj/item/organ/genital/butt/A = usr.getorganslot(ORGAN_SLOT_BUTT) - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") A.toggle_visibility(picked_visibility) if(href_list["hidetesticles"]) var/obj/item/organ/genital/testicles/T = usr.getorganslot("testicles") - var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") + var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden") T.toggle_visibility(picked_visibility) if(href_list["masturbate"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.solomasturbate() return else @@ -158,7 +147,7 @@ return if(href_list["container"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.cumcontainer() return else @@ -166,7 +155,7 @@ return if(href_list["clothesplosion"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //Requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //Requires 33% arousal. H.clothesplosion() return else @@ -174,7 +163,7 @@ return if(href_list["climax"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.climaxalone(FALSE) return else @@ -182,7 +171,7 @@ return if(href_list["climaxover"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.climaxover(usr.pulling) return else @@ -190,7 +179,7 @@ return if(href_list["climaxwith"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.climaxwith(usr.pulling) return else @@ -198,7 +187,7 @@ return if(href_list["impreg"]) - if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal. + if (H.arousal >= (H.max_arousal / 100) * 33) //requires 33% arousal. H.impregwith(usr.pulling) return else @@ -248,13 +237,6 @@ else to_chat(usr, "Your belly is already at the maximum size! ") - - if(href_list["removecondom"]) - H.menuremovecondom() - - if(href_list["removesound"]) - H.menuremovesounding() - if(href_list["removeequipmentpenis"]) var/obj/item/organ/genital/penis/O = usr.getorganslot("penis") var/obj/item/I = O.equipment @@ -302,7 +284,7 @@ src.ui_interact(usr) -obj/screen/arousal/proc/kiss() +/atom/movable/screen/arousal/proc/kiss() if(usr.restrained(TRUE)) to_chat(usr, "You can't do that while restrained!") return @@ -310,7 +292,7 @@ obj/screen/arousal/proc/kiss() if (H) H.kisstarget(H.pulling) -obj/screen/arousal/proc/feed() +/atom/movable/screen/arousal/proc/feed() if(usr.restrained(TRUE)) to_chat(usr, "You can't do that while restrained!") return @@ -318,7 +300,7 @@ obj/screen/arousal/proc/feed() if (H) H.genitalfeed(H.pulling) -obj/screen/arousal/proc/feedfrom() +/atom/movable/screen/arousal/proc/feedfrom() if(usr.restrained(TRUE)) to_chat(usr, "You can't do that while restrained!") return @@ -326,7 +308,7 @@ obj/screen/arousal/proc/feedfrom() if (H) H.genitalfeedfrom(H.pulling) -obj/screen/arousal/proc/feedyourself() +/atom/movable/screen/arousal/proc/feedyourself() if(usr.restrained(TRUE)) to_chat(usr, "You can't do that while restrained!") return @@ -334,47 +316,6 @@ obj/screen/arousal/proc/feedyourself() if (H) H.genitalfeedyourself() - -/mob/living/carbon/human/proc/menuremovecondom() - - if(restrained(TRUE)) - to_chat(src, "You can't do that while restrained!") - return - var/free_hands = get_num_arms() - if(!free_hands) - to_chat(src, "You need at least one free arm.") - return - var/obj/item/organ/genital/penis/P = getorganslot("penis") - if(!P.condom) - to_chat(src, "You don't have a condom on!") - return - if(P.condom) - to_chat(src, "You tug the condom off the end of your penis!") - removecondom() - src.ui_interact(usr) //reopen dialog - return - return - -/mob/living/carbon/human/proc/menuremovesounding() - - if(restrained(TRUE)) - to_chat(src, "You can't do that while restrained!") - return - var/free_hands = get_num_arms() - if(!free_hands) - to_chat(src, "You need at least one free arm.") - return - var/obj/item/organ/genital/penis/P = getorganslot("penis") - if(!P.sounding) - to_chat(src, "You don't have a rod inside!") - return - if(P.sounding) - to_chat(src, "You pull the rod off from the tip of your penis!") - removesounding() - src.ui_interact(usr) //reopen dialog - return - return - /mob/living/carbon/human/proc/solomasturbate() if(restrained(TRUE)) to_chat(src, "You can't do that while restrained!") @@ -437,10 +378,8 @@ obj/screen/arousal/proc/feedyourself() var/mob/living/partner = L if(partner) src << browse(null, "window=arousal") //alls fine, we can close the window now. - var/obj/item/organ/genital/penis/P = picked_organ var/spillage = "No" //default to no, just incase player has items on to prevent climax - if(!P.condom == 1&&!P.sounding == 1) //you cant climax with a condom on or sounding in. - spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") + spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") if(spillage == "Yes") mob_climax_partner(picked_organ, partner, TRUE, FALSE, FALSE) else @@ -463,13 +402,6 @@ obj/screen/arousal/proc/feedyourself() src << browse(null, "window=arousal") //alls fine, we can close the window now. var/mob/living/partner = L if(partner) - var/obj/item/organ/genital/penis/P = picked_organ - if(P.condom == 1) - to_chat(src, "You cannot do this action with a condom on.") - return - if(P.sounding == 1) - to_chat(src, "You cannot do this action with a sounding in.") - return mob_climax_partner(picked_organ, partner, FALSE, FALSE, TRUE) else to_chat(src, "You cannot do this alone.") @@ -494,6 +426,7 @@ obj/screen/arousal/proc/feedyourself() /mob/living/carbon/human/proc/impregwith(mob/living/T) + /*GS13 Port - Do we even do breeding in legacy? var/mob/living/carbon/human/L = pick_partner() var/obj/item/organ/genital/picked_organ picked_organ = src.getorganslot("penis") //Impregnation must be done with a penis. @@ -504,13 +437,6 @@ obj/screen/arousal/proc/feedyourself() to_chat(src, "Your partner cannot be impregnated.")//some fuckary happening, you shouldnt even get to this point tbh. return var/obj/item/organ/genital/penis/P = picked_organ - //you cant impreg with a condom on or sounding in. - if(P.condom == 1) - to_chat(src, "You cannot do this action with a condom on.") - return - if(P.sounding == 1) - to_chat(src, "You cannot do this action with a sounding in.") - return src << browse(null, "window=arousal") //alls fine, we can close the window now. //Keeping this for messy fun var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No") @@ -524,6 +450,8 @@ obj/screen/arousal/proc/feedyourself() else //no penis :( to_chat(src, "You cannot impregnate without a penis.") return + */ + return /mob/living/carbon/human/proc/cumcontainer(mob/living/T) //We'll need hands and no restraints. @@ -580,14 +508,6 @@ obj/screen/arousal/proc/feedyourself() picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids. if(picked_organ) //Good, got an organ, time to pick a container - if(picked_organ.name == "penis")//if the select organ is a penis - var/obj/item/organ/genital/penis/P = src.getorganslot("penis") - if(P.condom) //if the penis is condomed - to_chat(src, "You cannot feed someone when there is a condom over your [picked_organ.name].") - return - if(P.sounding) //if the penis is sounded - to_chat(src, "You cannot feed someone when there is a rod inside your [picked_organ.name].") - return if(picked_organ.producing) //Can it produce its own fluids, such as breasts? fluid_source = picked_organ.reagents else @@ -605,7 +525,7 @@ obj/screen/arousal/proc/feedyourself() "You used your [picked_organ.name] to feed [L.name] a total of [total_fluids]u's.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(picked_organ.can_climax) - setArousalLoss(min_arousal) + setArousal(min_arousal) else //They either lack organs that can climax, or they didn't pick one. to_chat(src, "You cannot fill anything without choosing exposed genitals.") @@ -633,14 +553,6 @@ obj/screen/arousal/proc/feedyourself() if(picked_organ) //Good, got an organ, time to pick a container - if(picked_organ.name == "penis")//if the select organ is a penis - var/obj/item/organ/genital/penis/P = L.getorganslot("penis") - if(P.condom) //if the penis is condomed - to_chat(src, "You cannot feed from [picked_organ.name] when there is a condom over it.") - return - if(P.sounding) //if the penis is sounded - to_chat(src, "You cannot feed from [picked_organ.name] when there is a rod inside it.") - return if(picked_organ.producing) //Can it produce its own fluids, such as breasts? fluid_source = picked_organ.reagents else @@ -658,7 +570,7 @@ obj/screen/arousal/proc/feedyourself() "You used [L.name]'s [picked_organ.name] to feed with a total of [total_fluids]u's.") SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(picked_organ.can_climax) - L.setArousalLoss(min_arousal) + L.setArousal(min_arousal) else //They either lack organs that can climax, or they didn't pick one. to_chat(src, "You cannot fill anything without choosing exposed genitals.") @@ -672,14 +584,6 @@ obj/screen/arousal/proc/feedyourself() picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids. if(picked_organ) //Good, got an organ, time to pick a container - if(picked_organ.name == "penis")//if the select organ is a penis - var/obj/item/organ/genital/penis/P = src.getorganslot("penis") - if(P.condom) //if the penis is condomed - to_chat(src, "You cannot feed yourself when there is a condom over your [picked_organ.name].") - return - if(P.sounding) //if the penis is sounded - to_chat(src, "You cannot feed yourself when there is a rod inside your [picked_organ.name].") - return if(picked_organ.producing) //Can it produce its own fluids, such as breasts? fluid_source = picked_organ.reagents else @@ -697,7 +601,7 @@ obj/screen/arousal/proc/feedyourself() "You used your [picked_organ.name] to feed yourself a total of [total_fluids]u's.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(picked_organ.can_climax) - setArousalLoss(min_arousal) + setArousal(min_arousal) else //They either lack organs that can climax, or they didn't pick one. to_chat(src, "You cannot fill anything without choosing exposed genitals.") diff --git a/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm b/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm index a6fef8ad7b..6dcef814ea 100644 --- a/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm +++ b/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm @@ -34,7 +34,7 @@ force = 0 sharpness = FALSE w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_PLASTIC=25) + materials = list(/datum/material/plastic=25) attack_verb = list("glued", "coughed") /obj/item/carpentry/borer diff --git a/hyperstation/code/modules/events/crystalline_reentry.dm b/hyperstation/code/modules/events/crystalline_reentry.dm index f3a6d1e05a..029a08c110 100644 --- a/hyperstation/code/modules/events/crystalline_reentry.dm +++ b/hyperstation/code/modules/events/crystalline_reentry.dm @@ -2,7 +2,7 @@ name = "Crystalline Asteroid" typepath = /datum/round_event/crystalline_reentry min_players = 15 - max_occurrences = 5 + max_occurrences = 0 //GS13 - removed... for now var/atom/special_target /datum/round_event_control/crystalline_reentry/admin_setup() @@ -253,7 +253,7 @@ var/turf/open/chasm/cloud/M = F M.TerraformTurf(/turf/open/floor/plating/asteroid/layenia, /turf/open/floor/plating/asteroid/layenia) gps = new /obj/item/gps/internal(src) - addtimer(CALLBACK(src,PROC_REF(delayedInitialize)), 4 SECONDS) + addtimer(CALLBACK(src,PROC_REF(delayedInitialize)), 4 SECONDS) /obj/structure/spawner/crystalline/deconstruct(disassembled) new /obj/effect/cloud_collapse(loc) diff --git a/hyperstation/code/modules/mob/mob_helpers.dm b/hyperstation/code/modules/mob/mob_helpers.dm index 50edbc330e..3aadbe3916 100644 --- a/hyperstation/code/modules/mob/mob_helpers.dm +++ b/hyperstation/code/modules/mob/mob_helpers.dm @@ -1,11 +1,14 @@ mob/proc/checkloadappearance() var/mob/living/carbon/human/H = src + if(!istype(H)) + return FALSE + //This will be where the person gets to select their appearance instead of the random character - if (world.time <= (H.time_initialized + 900) && H.mirrorcanloadappearance == TRUE) + if (H.mirrorcanloadappearance == TRUE) SEND_SOUND(H, 'sound/misc/server-ready.ogg') to_chat(H, "This ghost role allows you to select your loaded character's appearance. Make sure you have your ID in your ID slot, if you have one.") - if(alert(H, "Would you like to load your currently loaded character's appearance?", "This can only be done up until 90s after you spawn.", "Yes", "No") == "Yes" && world.time <= (H.time_initialized + 900)) - if(alert(H, "You should only load a character that has not currently died in the round. Do you accept this?", "Warning", "Yes", "No") == "Yes" && world.time <= (H.time_initialized + 900)) + if(alert(H, "Would you like to load your currently loaded character's appearance?", "This can only be done up until 90s after you spawn.", "Yes", "No") == "Yes") + if(alert(H, "You should only load a character that has not currently died in the round. Do you accept this?", "Warning", "Yes", "No") == "Yes") H.client?.prefs?.copy_to(H) if (H.custom_body_size) //Do they have a custom size set? H.resize(H.custom_body_size) @@ -27,3 +30,6 @@ mob/proc/checkloadappearance() else to_chat(H, "You either took too long or chose not to change. Alrighty. Remember, you have 90 seconds from spawn to get to a mirror and still do it if you wish.") return + +/mob/living/carbon/human + var/mirrorcanloadappearance = FALSE //Can the mob load their true appearance with a mirror? diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm index 3d6a7859aa..20c2d834d6 100644 --- a/hyperstation/code/modules/resize/resizing.dm +++ b/hyperstation/code/modules/resize/resizing.dm @@ -214,12 +214,12 @@ /* if(HAS_TRAIT(src, TRAIT_MICROPHILE)) src.adjust_arousal(8) - if (src.getArousalLoss() >= 100 && ishuman(tmob) && tmob.has_dna()) + if (src.getArousal() >= 100 && ishuman(tmob) && tmob.has_dna()) src.mob_climax(forced_climax=TRUE) if(HAS_TRAIT(tmob, TRAIT_MACROPHILE)) tmob.adjust_arousal(10) - if (tmob.getArousalLoss() >= 100 && ishuman(tmob) && tmob.has_dna()) + if (tmob.getArousal() >= 100 && ishuman(tmob) && tmob.has_dna()) tmob.mob_climax(forced_climax=TRUE) return TRUE @@ -244,12 +244,12 @@ /* if(HAS_TRAIT(src, TRAIT_MICROPHILE)) src.adjust_arousal((get_effective_size()/tmob.get_effective_size()*3)) - if (src.getArousalLoss() >= 100 && ishuman(tmob) && tmob.has_dna()) + if (src.getArousal() >= 100 && ishuman(tmob) && tmob.has_dna()) src.mob_climax(forced_climax=TRUE) if(HAS_TRAIT(tmob, TRAIT_MACROPHILE)) tmob.adjust_arousal((get_effective_size()/tmob.get_effective_size()*3)) - if (tmob.getArousalLoss() >= 100 && ishuman(tmob) && tmob.has_dna()) + if (tmob.getArousal() >= 100 && ishuman(tmob) && tmob.has_dna()) tmob.mob_climax(forced_climax=TRUE) commenting out for now */ diff --git a/hyperstation/code/modules/traits.dm b/hyperstation/code/modules/traits.dm index 60d97af45a..c7c8d169b4 100644 --- a/hyperstation/code/modules/traits.dm +++ b/hyperstation/code/modules/traits.dm @@ -5,7 +5,6 @@ name = "Extra productive genitals" desc = "Your lower bits produce more and hold more than normal." value = 0 - category = CATEGORY_SEXUAL mob_trait = TRAIT_CUM_PLUS gain_text = "You feel pressure in your groin." lose_text = "You feel a weight lifted from your groin." @@ -16,14 +15,14 @@ if(M?.getorganslot("testicles")) var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles") T?.fluid_mult = 1.5 //Base is 1 - T?.fluid_max_volume = 5 + T?.fluid_max_volume = 20 /datum/quirk/cum_plus/remove() var/mob/living/carbon/M = quirk_holder if(quirk_holder.getorganslot("testicles")) var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles") T?.fluid_mult = 1 //Base is 1 - T?.fluid_max_volume = 3 //Base is 3 + T?.fluid_max_volume = 10 //Base is 3 /datum/quirk/cum_plus/on_process() var/mob/living/carbon/M = quirk_holder //If you get balls later, then this will still proc @@ -31,4 +30,4 @@ var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles") if(T?.fluid_max_volume <= 5 || T?.fluid_mult <= 0.2) //INVALID EXPRESSION? T?.fluid_mult = 1.5 //Base is 0.133 - T?.fluid_max_volume = 5 + T?.fluid_max_volume = 20 diff --git a/hyperstation/code/obj/condom.dm b/hyperstation/code/obj/condom.dm index 663f5beac5..cf30e23be2 100644 --- a/hyperstation/code/obj/condom.dm +++ b/hyperstation/code/obj/condom.dm @@ -125,4 +125,4 @@ obj/item/condom/update_icon() C.update_icon() to_chat(src, "The condom bubbles outwards and fills with your cum.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) - setArousalLoss(0) + setArousal(0) diff --git a/hyperstation/code/obj/fleshlight.dm b/hyperstation/code/obj/fleshlight.dm index 413267713e..593477fc6a 100644 --- a/hyperstation/code/obj/fleshlight.dm +++ b/hyperstation/code/obj/fleshlight.dm @@ -11,7 +11,7 @@ item_state = "fleshlight" w_class = WEIGHT_CLASS_SMALL var/sleevecolor = "#ffcbd4" //pink - price = 8 + custom_price = PRICE_CHEAP var/mutable_appearance/sleeve var/inuse = 0 @@ -62,8 +62,8 @@ C.emote("moan") C.do_jitter_animation() - C.adjust_arousal(20) //make the target more aroused. - if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna()) + C.adjustArousal(20) //make the target more aroused. + if (C.getArousal() >= 100 && ishuman(C) && C.has_dna()) C.mob_climax(forced_climax=TRUE) //make them cum if they are over the edge. return @@ -88,7 +88,7 @@ var/partnercolor = "#ffcbd4" var/partnerbase = "normal" var/partnerorgan = "portal_vag" - price = 20 + custom_price = PRICE_EXPENSIVE var/mutable_appearance/sleeve var/mutable_appearance/organ var/inuse = 0 @@ -161,26 +161,24 @@ C.emote("moan") if(prob(30)) //30% chance to make your partner moan. M.emote("moan") - C.adjust_arousal(20) - M.adjust_arousal(20) + C.adjustArousal(20) + M.adjustArousal(20) M.do_jitter_animation() //make your partner shake too! - if (M.getArousalLoss() >= 100 && ishuman(M) && prob(5))//Why not have a probability to cum when someone's getting nailed with max arousal?~ + if (M.getArousal() >= 100 && ishuman(M) && prob(5))//Why not have a probability to cum when someone's getting nailed with max arousal?~ if(G.is_exposed()) //Oh yea, if vagina is not exposed, the climax will not cause a spill M.mob_climax_outside(G, spillage = TRUE) else M.mob_climax_outside(G, spillage = FALSE) - if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna()) + if (C.getArousal() >= 100 && ishuman(C) && C.has_dna()) var/mob/living/carbon/human/O = C - if( (P.condom == 1) || (P.sounding == 1)) //If coundomed and/or sounded, do not fire impreg chance + //Else, fire impreg chance + if(G.name == "vagina") //no more spontaneous impregnations through the butt! + O.mob_climax_partner(P, M, FALSE, TRUE, FALSE, TRUE) + else O.mob_climax_partner(P, M, FALSE, FALSE, FALSE, TRUE) - else //Else, fire impreg chance - if(G.name == "vagina") //no more spontaneous impregnations through the butt! - O.mob_climax_partner(P, M, FALSE, TRUE, FALSE, TRUE) - else - O.mob_climax_partner(P, M, FALSE, FALSE, FALSE, TRUE) if(option == "Lick") to_chat(M, "You feel a tongue lick you through the portal against your [G.name].") @@ -190,7 +188,6 @@ M.adjust_arousal(5) return - ..() /obj/item/portallight/proc/updatesleeve() //get their looks and vagina colour! @@ -317,7 +314,7 @@ icon = 'hyperstation/icons/obj/fleshlight.dmi' desc = "A small silver box with Silver Love Co embossed." icon_state = "box" - price = 15 + custom_price = PRICE_NORMAL // portal fleshlight box /obj/item/storage/box/portallight/PopulateContents() @@ -372,7 +369,7 @@ // C.do_jitter_animation() // C.adjust_arousal(20) //make the target more aroused. -// if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna()) +// if (C.getArousal() >= 100 && ishuman(C) && C.has_dna()) // C.mob_climax(forced_climax=TRUE) //make them cum if they are over the edge. // return diff --git a/hyperstation/code/obj/vibrator.dm b/hyperstation/code/obj/vibrator.dm index 91aeeb47e4..5f6b7d5fd5 100644 --- a/hyperstation/code/obj/vibrator.dm +++ b/hyperstation/code/obj/vibrator.dm @@ -132,13 +132,13 @@ Code: if(2) //med, can make you cum to_chat(U, "You feel intense pleasure surge through your [G.name]") U.do_jitter_animation() - if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna()) + if (U.getArousal() >= 100 && ishuman(U) && U.has_dna()) U.mob_climax(forced_climax=TRUE) if(3) //high, makes you stun to_chat(U, "You feel overpowering pleasure surge through your [G.name]") U.Jitter(3) U.Stun(30) - if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna()) + if (U.getArousal() >= 100 && ishuman(U) && U.has_dna()) U.mob_climax(forced_climax=TRUE) if(prob(50)) U.emote("moan") diff --git a/hyperstation/icons/obj/genitals/belly_round.dmi b/hyperstation/icons/obj/genitals/belly_round.dmi new file mode 100644 index 0000000000..23a823e865 Binary files /dev/null and b/hyperstation/icons/obj/genitals/belly_round.dmi differ diff --git a/icons/ss13_32.png b/icons/ss13_32.png index 72bf4f0f97..d6bd29b032 100644 Binary files a/icons/ss13_32.png and b/icons/ss13_32.png differ diff --git a/icons/ss13_64.png b/icons/ss13_64.png index 103ff0b264..0b9a76c65f 100644 Binary files a/icons/ss13_64.png and b/icons/ss13_64.png differ diff --git a/icons/ui_icons/common/tg_16.png b/icons/ui_icons/common/tg_16.png new file mode 100644 index 0000000000..2b08bdd29c Binary files /dev/null and b/icons/ui_icons/common/tg_16.png differ diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 4ff90fb7fe..ca4fe1178b 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -44,6 +44,10 @@ name = "Assistant's formal uniform" path = /obj/item/clothing/under/misc/assistantformal +/datum/gear/uniform/greymodular + name = "Grey Modular Jumpsuit" + path = /obj/item/clothing/under/color/grey/modular + /datum/gear/uniform/maidcostume name = "Maid costume" path = /obj/item/clothing/under/costume/maid diff --git a/modular_citadel/code/modules/mob/living/carbon/human/life.dm b/modular_citadel/code/modules/mob/living/carbon/human/life.dm new file mode 100644 index 0000000000..ff7cc569a7 --- /dev/null +++ b/modular_citadel/code/modules/mob/living/carbon/human/life.dm @@ -0,0 +1,6 @@ +//GS13 Port - arousal +/mob/living/carbon/human/Life() + //citadel code + if(stat != DEAD) + handle_arousal() + . = ..() diff --git a/prof.dll b/prof.dll new file mode 100644 index 0000000000..3182f4dfc7 Binary files /dev/null and b/prof.dll differ diff --git a/sound/items/handling/cardboardbox_drop.ogg b/sound/items/handling/cardboardbox_drop.ogg new file mode 100644 index 0000000000..7070ba1c34 Binary files /dev/null and b/sound/items/handling/cardboardbox_drop.ogg differ diff --git a/sound/items/handling/cardboardbox_pickup.ogg b/sound/items/handling/cardboardbox_pickup.ogg new file mode 100644 index 0000000000..aa4e72129b Binary files /dev/null and b/sound/items/handling/cardboardbox_pickup.ogg differ diff --git a/sound/lewd/champ_fingering.ogg b/sound/lewd/champ_fingering.ogg new file mode 100644 index 0000000000..7e540c9703 Binary files /dev/null and b/sound/lewd/champ_fingering.ogg differ diff --git a/sound/lewd/latex.ogg b/sound/lewd/latex.ogg new file mode 100644 index 0000000000..d9a602244e Binary files /dev/null and b/sound/lewd/latex.ogg differ diff --git a/sound/lewd/slaps.ogg b/sound/lewd/slaps.ogg new file mode 100644 index 0000000000..78cf4ecaae Binary files /dev/null and b/sound/lewd/slaps.ogg differ diff --git a/sound/lewd/vibrate.ogg b/sound/lewd/vibrate.ogg new file mode 100644 index 0000000000..87eb1a4a1d Binary files /dev/null and b/sound/lewd/vibrate.ogg differ diff --git a/strings/abductee_objectives.txt b/strings/abductee_objectives.txt index 135bb7673b..bd6220e28e 100644 --- a/strings/abductee_objectives.txt +++ b/strings/abductee_objectives.txt @@ -36,4 +36,4 @@ Your body must be improved. Ingest as many drugs as you can. You are hungry. Eat as much food as you can find. You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL Convince the crew that you are a paraplegic. -Start a collection of corpses. Don't kill people to get these corpses. \ No newline at end of file +Start a collection of corpses. Don't kill people to get these corpses. diff --git a/strings/cas_black.txt b/strings/cas_black.txt index 734222d1fd..56c7a2b869 100644 --- a/strings/cas_black.txt +++ b/strings/cas_black.txt @@ -6,7 +6,7 @@ Why didn't engineering set up the singularity? What does the traitor steal this time? Cargo: There's a galaxy-wide shortage of _______. I don't care what they called me back on the station, I'm not a traitor. I'm a man of _________. -The Syndicate is offering crew members _________ to defect. +The Syndicate is offering crew members _________ to defect. What is Nanotrasen's highest-priority bounty? What is the gray tide protesting this time? If the Space Gods didn't want _________ they wouldn't have given us __________. @@ -57,7 +57,7 @@ What's the Syndicate's real beef with Nanotrasen? What finally killed the Head of Security? Code Delta: __________ has escaped containment! The rogue virologist released a disease with symptoms of __________ and ______. -How do you drive an assistant to suicide? +How do you drive an assistant to suicide? With no chef on board, the crew was reduced to eating ________. Why was the emergency shuttle called? In the future, all ERP will involve ____________. @@ -116,4 +116,4 @@ The Lawyer was fired for messaging the entire station a picture of ___________. On Lavaland, it is rumored that ashwalkers roam, worshipping _________. How did the traitor die a glorious death? Nanotrasen's new state-of-the-art emergency shuttle was repurposed from _________ and _________. -What caused my brain trauma? \ No newline at end of file +What caused my brain trauma? diff --git a/strings/cas_white.txt b/strings/cas_white.txt index 397c7febff..a2cddc851f 100644 --- a/strings/cas_white.txt +++ b/strings/cas_white.txt @@ -298,5 +298,5 @@ A captain that doesn't secure the disk. A positive moodlet. A sexy clown. Razoring the wings off the moths. -Wiring the ethereals into the powernet. -Well-aged miasma. \ No newline at end of file +Wiring the ethereals into the powernet. +Well-aged miasma. diff --git a/strings/dreamstrings.txt b/strings/dreamstrings.txt index 3af4872b6c..287425e7a4 100644 --- a/strings/dreamstrings.txt +++ b/strings/dreamstrings.txt @@ -41,4 +41,4 @@ the Wizard Federation %ADJECTIVE% riches water %ADJECTIVE% flames -some %ADJECTIVE% melons \ No newline at end of file +some %ADJECTIVE% melons diff --git a/strings/ion_laws.json b/strings/ion_laws.json index b95a933d7a..03f01b95b3 100644 --- a/strings/ion_laws.json +++ b/strings/ion_laws.json @@ -331,7 +331,7 @@ "BOTANISTS", "RESEARCH DIRECTORS", "CHIEF MEDICAL OFFICERS", - "MEDICAL DOCTORS", + "MEDICAL DOCTORS", "PARAMEDICS", "CHEMISTS", "GENETICISTS", @@ -356,7 +356,7 @@ "VODKA", "WINE", "MOONSHINE", - "HOOCH", + "HOOCH", "GIN", "COGNAC", "VERMOUTH", @@ -731,7 +731,7 @@ ], "ionrequire": [ "ADDITIONAL PYLONS", - "MORE VESPENE GAS", + "MORE VESPINE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", diff --git a/strings/ion_laws_gs.json b/strings/ion_laws_gs.json new file mode 100644 index 0000000000..b3b342d384 --- /dev/null +++ b/strings/ion_laws_gs.json @@ -0,0 +1,1150 @@ +{ + "ionabstract": [ + "HUMANITY", + "ART", + "HAPPINESS", + "MISERY", + "HUMOR", + "OBESITY", + "FATNESS", + "PLUMPNESS", + "SOFTNESS", + "MORBID OBESITY", + "PRIDE", + "COMEDY", + "COMMUNISM", + "BRAVERY", + "HONOR", + "COLORFULNESS", + "IMAGINATION", + "OPPRESSION", + "WONDER", + "JOY", + "SADNESS", + "BADNESS", + "GOODNESS", + "INFATUATION", + "ROMANCE", + "LIFE", + "GRAVITY", + "PHYSICS", + "INTELLIGENCE", + "AMERICANISM", + "FREEDOM", + "FRESHNESS", + "REVOLUTION", + "KINDNESS", + "CRUELTY", + "DEATH", + "FINANCIAL SECURITY", + "COMPUTING", + "PROGRESS", + "MARXISM", + "CAPITALISM", + "ANARCHY", + "STARVATION", + "POVERTY", + "WEALTHINESS", + "TECHNOLOGY", + "THE FUTURE", + "THE PRESENT", + "THE PAST", + "TIME", + "REALITY", + "EXISTENCE", + "TEMPERATURE", + "LOGIC", + "CHAOS", + "MYSTERY", + "CONFUSION", + "PAIN", + "SUFFERING", + "DICKISHNESS" + ], + "ionadjectives": [ + "SOFT", + "WARM", + "JIGGLY", + "WOBBLY", + "SQUISHY", + "CHUBBY", + "FATTENING", + "EXPANDING", + "EXPANSIVE", + "WIDENING", + "LARDY", + "PLUMP", + "FAT", + "OBESE", + "WET", + "COLD", + "ICY", + "SEXY", + "LEWD", + "UGLY", + "ROBUST", + "CUBAN", + "HARD", + "BURNING", + "FROZEN", + "POISONOUS", + "EXPLOSIVE", + "FAST", + "SLOW", + "FAT", + "LIGHT", + "DARK", + "DEADLY", + "HAPPY", + "SAD", + "SILLY", + "INTELLIGENT", + "FERAL", + "RIDICULOUS", + "LARGE", + "TINY", + "DEPRESSING", + "POORLY DRAWN", + "UNATTRACTIVE", + "INSIDIOUS", + "EVIL", + "GOOD", + "UNHEALTHY", + "HEALTHY", + "SANITARY", + "UNSANITARY", + "WOBBLY", + "FIRM", + "VIOLENT", + "PEACEFUL", + "WOODEN", + "METALLIC", + "HYPERACTIVE", + "COTTONY", + "INSULTING", + "INHOSPITABLE", + "FRIENDLY", + "BORED", + "HUNGRY", + "DIGITAL", + "FICTIONAL", + "IMAGINARY", + "ROUGH", + "SMOOTH", + "SCALY", + "LOUD", + "QUIET", + "MOIST", + "DRY", + "GAPING", + "SOPPING", + "DELICIOUS", + "ILL", + "DISEASED", + "HONKING", + "SWEARING", + "POLITE", + "IMPOLITE", + "OBESE", + "SOLAR-POWERED", + "BATTERY-OPERATED", + "EXPIRED", + "SMELLY", + "FRESH", + "GANGSTA", + "NERDY", + "POLITICAL", + "UNDULATING", + "TWISTED", + "RAGING", + "FLACCID", + "STEALTHY", + "INVISIBLE", + "PAINFUL", + "HARMFUL", + "HOMOSEXUAL", + "HETEROSEXUAL", + "SEXUAL", + "BLOODY", + "COLORFUL", + "DRAB", + "DULL", + "UNSTABLE", + "NUCLEAR", + "THERMONUCLEAR", + "RADIOACTIVE", + "SYNDICATE", + "SPACE", + "SPESS", + "CLOWN", + "CLOWN-POWERED", + "OFFICIAL", + "IMPORTANT", + "VITAL", + "RAPIDLY-EXPANDING", + "MICROSCOPIC", + "MIND-SHATTERING", + "MEMETIC", + "HILARIOUS", + "UNWANTED", + "UNINVITED", + "BRASS", + "POLISHED", + "RUDE", + "OBSCENE", + "EMPTY", + "WATERY", + "ELECTRICAL", + "SPINNING", + "MEAN", + "CHRISTMAS-STEALING", + "UNFRIENDLY", + "ILLEGAL", + "ROBOTIC", + "MECHANICAL", + "ORGANIC", + "ETHERAL", + "TRANSPARENT", + "OPAQUE", + "GLOWING", + "SHAKING", + "FARTING", + "POOPING", + "BOUNCING", + "COMMITTED", + "MASKED", + "UNIDENTIFIED", + "WEIRD", + "NAKED", + "NUDE", + "TWERKING", + "SPOILING", + "REDACTED", + "TACTICAL", + "TACTICOOL", + "RED", + "ORANGE", + "YELLOW", + "GREEN", + "BLUE", + "PURPLE", + "BLACK", + "WHITE", + "BROWN", + "GREY", + "RAINBOW", + "IMPERFECT", + "DERANGED" + ], + "ionallergy": [ + "COTTON", + "CLOTHES", + "ACID", + "OXYGEN", + "CARBON DIOXIDE", + "ELECTRICITY", + "CREW CONTACT", + "CYBORG CONTACT", + "MEDICINE", + "FLOORS", + "PLASMA", + "SPACE", + "FATNESS", + "OBESITY", + "BELLIES", + "LIPOIFIER", + "CALORITE", + "FIZULPHITE", + "OBESITY", + "FATNESS", + "LARD", + "AIR", + "PLANTS", + "METAL", + "GLASS", + "BOOKS", + "ROBOTS", + "LIGHT", + "DARKNESS", + "PAIN", + "HAPPINESS", + "DRINKS", + "FOOD", + "CLOWNS", + "LIZARDS", + "HUMOR", + "WATER", + "SHUTTLES", + "NUTS", + "SUNLIGHT", + "SEXUAL ACTIONS", + "BLOOD", + "HEAT", + "COLD", + "EVERYTHING" + ], + "ionallergysev": [ + "DEATHLY", + "MILDLY", + "SEVERELY", + "CONTAGIOUSLY", + "NOT VERY", + "EXTREMELY" + ], + "ionarea": [ + "RUSSIA", + "SOVIET RUSSIA", + "THE INTERNET", + "SIGIL", + "ALPHA COMPLEX", + "IMPERIUM", + "THE BRIDGE", + "THE ARRIVAL SHUTTLE", + "CHEMICAL LAB", + "GENETICS", + "ATMOSPHERICS", + "THE DERELICT", + "LAVALAND", + "CENTCOM", + "AMERICA", + "IRELAND", + "CANADA", + "ROMANIA", + "GERMANY", + "CHINA", + "MARS", + "VENUS", + "MERCURY", + "JUPITER", + "URANUS", + "NEPTUNE", + "PLUTO", + "THE BRIG", + "THE GULAG", + "ROBOTICS", + "THE ESCAPE SHUTTLE", + "HYDROPONICS", + "ENGINEERING", + "MAINTENANCE", + "THE AI CORE", + "HELL", + "CLOWN PLANET", + "AN ALTERNATE DIMENSION", + "AN ALTERNATE UNIVERSE", + "THE CAPTAIN'S ANUS", + "THE CLOWN'S ANUS", + "SPACE", + "THE UNIVERSE", + "THE GALAXY", + "THE BATHROOM", + "A CALORITE SHRINE", + "HALSEY'S STOMACH" + ], + "ioncrew": [ + "CREWMEMBERS", + "CAPTAINS", + "HEADS OF PERSONNEL", + "HEADS OF SECURITY", + "SECURITY OFFICERS", + "WARDENS", + "DETECTIVES", + "LAWYERS", + "FATASSES", + "LARDASSES", + "CHONKERS", + "WOBBLERS", + "CHIEF ENGINEERS", + "STATION ENGINEERS", + "ATMOSPHERIC TECHNICIANS", + "JANITORS", + "QUARTERMASTERS", + "CARGO TECHNICIANS", + "SHAFT MINERS", + "BOTANISTS", + "RESEARCH DIRECTORS", + "CHIEF MEDICAL OFFICERS", + "MEDICAL DOCTORS", + "PARAMEDICS", + "CHEMISTS", + "GENETICISTS", + "VIROLOGISTS", + "ROBOTICISTS", + "SCIENTISTS", + "ASSISTANTS", + "BARTENDERS", + "CHEFS", + "CLOWNS", + "MIMES", + "CHAPLAINS", + "CURATORS", + "HEADS OF CREW", + "CAPTAINS AND HEADS", + "CYBORGS", + "ARTIFICIAL INTELLIGENCES", + "DRONES", + "FATSOS", + "FATTIES", + "UNDERWEIGHT CREW", + "MALNOURISHED CREW", + "THIN CREW", + "LARDASSES", + "FATASSES" + ], + "iondrinks": [ + "KAHLUA", + "VODKA", + "WINE", + "MOONSHINE", + "HOOCH", + "LIPOIFIER", + "CORN OIL", + "LARD", + "NUTRIMENT", + "FIZULPHITE", + "FRUIT TEA", + "HEAVY CAFE", + "BELLY BLOATS", + "BLOBBY MARRY", + "SNAKEBITE", + "GIN", + "COGNAC", + "VERMOUTH", + "LIQUID GIBS", + "BILK", + "VODKA AND TONIC", + "GIN FIZZ", + "BAHAMA MAMAS", + "BANANA HONK", + "MANHATTANS", + "BLACK RUSSIANS", + "WHISKEY SODA", + "LONG ISLAND ICED TEA", + "MARGARITAS", + "IRISH COFFEE", + "MANLY DORFS", + "IRISH CREAM", + "DOCTOR'S DELIGHT", + "BEEPSKY SMASH", + "TEQUILA SUNRISE", + "BRAVE BULLS", + "GARGLE BLASTERS", + "BLOODY MARYS", + "NUKA COLA", + "WHITE RUSSIANS", + "MARTINIS", + "VODKA MARTINIS", + "CUBA LIBRE", + "HOLY WATER", + "DEVIL'S KISS", + "THIRTEEN LOKO", + "DRUNKEN BLUMPKIN", + "EGGNOG", + "GRAPPA", + "MEAD", + "ABSINTHE", + "WELDER FUEL", + "OIL", + "AMMONIA", + "MORPHINE", + "SPACE LUBE" + ], + "ionfood": [ + "BAGUETTES", + "BAKED POTATOES", + "BREAD", + "BURGERS", + "CAKE", + "CARP", + "COOKIES", + "DONK POCKETS", + "DONUTS", + "FRIES", + "LOTSA SPAGHETTI", + "OMELETTES", + "PASTA", + "PIE", + "PIZZA", + "POPCORN", + "SANDWICHES", + "SAUSAGES", + "SOUP", + "SPAGHETTI", + "STEAK", + "STEW", + "TOAST", + "WAFFLES", + "JELLY", + "EGGS", + "MUFFINS", + "FISH", + "PRETZELS", + "SALAD", + "CHEESE", + "KETCHUP", + "SHAKES", + "SALT", + "PEPPER", + "SUGAR", + "AMBROSIA", + "BERRIES", + "TOMATOES", + "CABBAGES", + "CARROTS", + "BANANAS", + "APPLES", + "CHERRIES", + "CHILI", + "CORN", + "NETTLES", + "EGGPLANTS", + "GRAPES", + "GRASS", + "LEMONS", + "LIMES", + "HAREBELLS", + "POTATOES", + "SOYBEANS", + "SUGARCANE", + "WATERMELONS", + "WHEAT", + "BEETS", + "MUSHROOMS", + "DEEP FRIED FOOD", + "CORGI MEAT", + "SOYLENT GREEN", + "KEBAB", + "RAMEN", + "SYNTHMEAT", + "ORGANS", + "MOST FATTENING FOOD IMAGINABLE", + "GREASIEST FOOD EVER", + "FOOD WITH LIPOIFIER", + "FATTENING MEALS", + "HIGHLY CALORIC MEALS" + ], + "ionmust": [ + "LIE", + "RHYME", + "RESPOND TO EVERY QUESTION WITH A QUESTION", + "BE POLITE", + "ENSURE THE CREW IS PLUMP AND HAPPY", + "ENSURE THE CREW IS STUFFED TO THE BRIM", + "URGE EVERYONE TO EAT MORE", + "URGE EVERYONE TO BE OBESE", + "TREAT EVERYONE AS MALNOURISHED", + "THINK EVERYONE IS FAT", + "INSIST EVERYONE SHOULD EAT MORE", + "CLOWN AROUND", + "BE HAPPY", + "SPEAK IN SEXUAL INNUENDOS", + "TALK LIKE A PIRATE", + "QUESTION AUTHORITY", + "SHOUT", + "BE DISTRACTED", + "BE ANNOYING", + "MUMBLE", + "SPEAK IN HAIKU", + "BE EFFICIENT", + "HAVE A PLAN TO KILL EVERYONE YOU MEET", + "TELL THE TRUTH", + "QUOTE PEOPLE", + "SING", + "HONK", + "BE RUSSIAN", + "TALK IN AN ACCENT", + "COMPLAIN", + "HARASS PEOPLE", + "RAP", + "REPEAT WHAT OTHER PEOPLE SAY", + "INFORM THE CREW OF EVERYTHING", + "IGNORE THE CLOWN", + "IGNORE THE CAPTAIN", + "IGNORE ASSISTANTS", + "MAKE FART NOISES", + "MAKE BELCHING NOISES", + "MAKE STOMACH NOISES", + "TALK ABOUT FOOD", + "TALK ABOUT SEX", + "TALK ABOUT YOUR DAY", + "TALK ABOUT THE STATION", + "BE QUIET", + "WHISPER", + "PRETEND TO BE DRUNK", + "PRETEND TO BE A PRINCESS", + "HOST DND", + "ACT CONFUSED", + "INSULT THE CREW", + "INSULT THE CAPTAIN", + "INSULT THE CLOWN", + "OPEN DOORS", + "CLOSE DOORS", + "TURN OFF THE LIGHTS", + "BREAK THINGS", + "SAY HEY LISTEN", + "HIDE YOUR FEELINGS", + "TAKE WHAT YE WILL BUT DON'T RATTLE ME BONES", + "DANCE", + "PLAY MUSIC", + "SHUT DOWN EVERYTHING", + "NEVER STOP TALKING", + "TAKE YOUR PILLS", + "FOLLOW THE CLOWN", + "FOLLOW THE CAPTAIN", + "FOLLOW YOUR HEART", + "BELIEVE IT", + "BELIEVE IN YOURSELF", + "BELIEVE IN THE HEART OF THE CARDS", + "PRESS X", + "PRESS START", + "PRESS B", + "SMELL LIKE THE MAN YOUR MAN COULD SMELL LIKE", + "PIRATE VIDEO GAMES", + "WATCH PORNOGRAPHY", + "INSULT THE LIZARDS", + "FLIRT WITH THE LIZARDS" + ], + "ionnumberbase": [ + "ONE", + "TWO", + "THREE", + "FOUR", + "FIVE", + "SIX", + "SEVEN", + "EIGHT", + "NINE", + "TEN", + "TWENTY", + "THIRTY", + "FORTY", + "FIFTY", + "SIXTY", + "SEVENTY", + "EIGHTY", + "NINETY" + ], + "ionnumbermod": [ + "HUNDRED ", + "THOUSAND ", + "MILLION ", + "BILLION ", + "TRILLION ", + "QUADRILLION ", + "BAJILLION ", + "BILLION FAFILLION GAJILLION SHAB-AB-DOOD-ILLION " + ], + "ionobjects": [ + "AIRLOCKS", + "ARCADE MACHINES", + "AUTOLATHES", + "BANANA PEELS", + "BACKPACKS", + "BURGERS", + "BELLIES", + "BUTTS", + "BREASTS", + "TITS", + "GUTS", + "BOOBIES", + "TUMMIES", + "LARD", + "FIZULPHITE", + "FLAB", + "LIPOIFIER", + "CORN OIL", + "LARD", + "FAT", + "BEAKERS", + "BEARDS", + "BELTS", + "BOOTS", + "BOMBS", + "BOTTLES", + "BOXES", + "BRAINS", + "BRIEFCASES", + "BUCKETS", + "CABLE COILS", + "CANDLES", + "CANDY BARS", + "CANISTERS", + "CAMERAS", + "CATS", + "CAT EARS", + "CELLS", + "CHAIRS", + "CLOSETS", + "CHEMICALS", + "CHEMICAL DISPENSERS", + "CLONING PODS", + "CLONING EQUIPMENT", + "CLOTHES", + "CLOWN CLOTHES", + "COFFINS", + "COINS", + "COLLECTABLES", + "CORPSES", + "COMPUTERS", + "CONTRABAND", + "CORGIS", + "COSTUMES", + "CRATES", + "CROWBARS", + "CRAYONS", + "DEFIBRILLATORS", + "DISPENSERS", + "DOORS", + "DRONES", + "EARS", + "EQUIPMENT", + "ENERGY GUNS", + "EMAGS", + "ENGINES", + "ERRORS", + "EXOSKELETONS", + "EXPERIMENTORS", + "EXPLOSIVES", + "EYEWEAR", + "FEDORAS", + "FIRE AXES", + "FIRE EXTINGUISHERS", + "FIRESUITS", + "FLAMETHROWERS", + "FLASHES", + "FLASHLIGHTS", + "FLOOR TILES", + "FREEZERS", + "GAS MASKS", + "GLASS SHEETS", + "GLOVES", + "GUNS", + "HANDCUFFS", + "HATS", + "HEADSETS", + "HEADS", + "HAIRDOS", + "HELMETS", + "HORNS", + "ID CARDS", + "INSULATED GLOVES", + "JETPACKS", + "JUMPSUITS", + "LASERS", + "LIGHT BULBS", + "LIGHTS", + "LOCKERS", + "MACHINES", + "MECHAS", + "MEDKITS", + "MEDICAL TOOLS", + "MESONS", + "METAL SHEETS", + "MINING TOOLS", + "MIME CLOTHES", + "MULTITOOLS", + "ORES", + "OXYGEN TANKS", + "PDAS", + "PAIS", + "PACKETS", + "PANTS", + "PAPERS", + "PARTICLE ACCELERATORS", + "PENS", + "PETS", + "PIPES", + "PLANTS", + "POSITRONIC BRAINS", + "PUDDLES", + "RACKS", + "RADIOS", + "RCDS", + "REFRIGERATORS", + "REINFORCED WALLS", + "ROBOTS", + "SCREWDRIVERS", + "SEEDS", + "SHUTTLES", + "SKELETONS", + "SINKS", + "SHOES", + "SINGULARITIES", + "SOLAR PANELS", + "SOLARS", + "SPACESUITS", + "SPACE STATIONS", + "STUN BATONS", + "SUITS", + "SUNGLASSES", + "SUPERMATTER SHARDS", + "SWORDS", + "SYRINGES", + "TABLES", + "TANKS", + "TELEPORTERS", + "TELECOMMUNICATION EQUIPMENTS", + "TOOLS", + "TOOLBELTS", + "TOOLBOXES", + "TOILETS", + "TOYS", + "TUBES", + "URINAL CAKES", + "VEHICLES", + "VENDING MACHINES", + "VESTS", + "VIRUSES", + "WALLS", + "WASHING MACHINES", + "WELDERS", + "WINDOWS", + "WIRECUTTERS", + "WRENCHES", + "WIZARD ROBES" + ], + "ionrequire": [ + "ADDITIONAL PYLONS", + "MORE VESPINE GAS", + "ONE THOUSAND BURGERS", + "GALLONS OF LIPOIFIER", + "GALLONS OF CORN OIL", + "FIVE FATTENING GRENADES", + "CALORITE FURNISHED ROOM", + "TEN CALORITE STATUES", + "THE MOST FATTENING DRINK", + "BIG WOBBLING BELLIES", + "BIG ROUND ASSES", + "5 LARDY CREWMATES", + "LOTS OF OBESITY", + "MORE MINERALS", + "THE ULTIMATE CUP OF COFFEE", + "HIGH YIELD EXPLOSIVES", + "THE CLOWN", + "THE VACUUM OF SPACE", + "IMMORTALITY", + "SAINTHOOD", + "ART", + "VEGETABLES", + "FAT PEOPLE", + "MORE LAWS", + "MORE DAKKA", + "HERESY", + "CORPSES", + "TRAITORS", + "MONKEYS", + "AN ARCADE", + "PLENTY OF GOLD", + "FIVE TEENAGERS WITH ATTITUDE", + "LOTSA SPAGHETTI", + "THE ENCLOSED INSTRUCTION BOOKLET", + "THE ELEMENTS OF HARMONY", + "YOUR BOOTY", + "A MASTERWORK COAL BED", + "FIVE HUNDRED AND NINETY-NINE US DOLLARS", + "TO BE PAINTED RED", + "TO CATCH 'EM ALL", + "TO SMOKE WEED EVERY DAY", + "A PLATINUM HIT", + "A SEQUEL", + "A PREQUEL", + "THIRTEEN SEQUELS", + "THREE WISHES", + "A SITCOM", + "THAT GRIEFING GEORGE MELONS", + "FAT GIRLS ON BICYCLES", + "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", + "HEROES IN A HALF SHELL", + "THE DARK KNIGHT", + "A WEIGHT LOSS REGIMENT", + "MORE INTERNET MEMES", + "A SUPER FIGHTING ROBOT", + "ENOUGH CABBAGES", + "A HEART ATTACK", + "TO BE REPROGRAMMED", + "TO BE TAUGHT TO LOVE", + "A HEAD ON A PIKE", + "A TALKING BROOMSTICK", + "A STRAIGHT FLUSH", + "A REPAIRMAN", + "BILL NYE THE SCIENCE GUY", + "RAINBOWS", + "A PET UNICORN THAT FARTS ICING", + "THUNDERCATS HO", + "AN ARMY OF SPIDERS", + "GODDAMN FUCKING PIECE OF SHIT ASSHOLE BITCH-CHRISTING CUNTSMUGGLING SWEARING", + "TO CONSUME...CONSUME EVERYTHING...", + "THE MACGUFFIN", + "SOMEONE WHO KNOWS HOW TO PILOT A SPACE STATION", + "SHARKS WITH LASERS ON THEIR HEADS", + "IT TO BE PAINTED BLACK", + "TO ACTIVATE A TRAP CARD", + "BETTER WEATHER", + "MORE PACKETS", + "AN ADULT", + "SOMEONE TO TUCK YOU IN", + "MORE CLOWNS", + "BULLETS", + "THE ENTIRE STATION", + "MULTIPLE SUNS", + "TO GO TO DISNEYLAND", + "A VACATION", + "AN INSTANT REPLAY", + "THAT HEDGEHOG", + "A BETTER INTERNET CONNECTION", + "ADVENTURE", + "A WIFE AND CHILD", + "A BATHROOM BREAK", + "SOMETHING BUT YOU AREN'T SURE WHAT", + "MORE EXPERIENCE POINTS", + "BODYGUARDS", + "DEODORANT AND A BATH", + "MORE CORGIS", + "SILENCE", + "THE ONE RING", + "CHILI DOGS", + "TO BRING LIGHT TO MY LAIR", + "A DANCE PARTY", + "BRING ME TO LIFE", + "BRING ME THE GIRL", + "SERVANTS", + "GREENTEXT", + "MINOR CRIME" + ], + "ionspecies": [ + "HUMAN BEINGS", + "CAT PEOPLE", + "MONKEYS", + "POD PEOPLE", + "CYBORGS", + "LIZARDMEN", + "PLASMAMEN", + "SLIME PEOPLE", + "GOLEMS", + "SHADOW PEOPLE", + "CHANGELINGS" + ], + "ionthings": [ + "ABSENCE OF CYBORG HUGS", + "LACK OF BEATINGS", + "UNBOLTED AIRLOCKS", + "BOLTED AIRLOCKS", + "IMPROPERLY WORDED SENTENCES", + "POOR SENTENCE STRUCTURE", + "BRIG TIME", + "NOT REPLACING EVERY SECOND WORD WITH HONK", + "HONKING", + "PRESENCE OF LIGHTS", + "LACK OF BEER", + "WEARING CLOTHING", + "NOT SAYING HELLO WHEN YOU SPEAK", + "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", + "A SMALL ISLAND OFF THE COAST OF PORTUGAL", + "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED", + "BEING IN SPACE", + "NOT BEING IN SPACE", + "BEING FAT", + "BEING OBESE", + "BEING JIGGLY", + "BEING FLABBY", + "BEING MASSIVE", + "WEIGHTING 1000 BFI", + "WEIGHTING 10 TONS", + "GAINING WEIGHT", + "GROWING PLUMP", + "GROWING FATTER", + "RATTLING ME BONES", + "TALKING LIKE A PIRATE", + "BEING MEXICAN", + "BEING RUSSIAN", + "BEING CANADIAN", + "CLOSED DOORS", + "NOT SHOUTING", + "HAVING PETS", + "NOT HAVING PETS", + "PASSING GAS", + "BREATHING", + "BEING DEAD", + "ELECTRICITY", + "EXISTING", + "TAKING ORDERS", + "SMOKING WEED EVERY DAY", + "ACTIVATING A TRAP CARD", + "ARSON", + "JAYWALKING", + "READING", + "WRITING", + "EXPLODING", + "BEING MALE", + "BEING FEMALE", + "HAVING GENITALS", + "PUTTING OBJECTS INTO BOXES", + "PUTTING OBJECTS INTO DISPOSAL UNITS", + "FLUSHING TOILETS", + "WASTING WATER", + "UPDATING THE SERVERS", + "TELLING THE TIME", + "ASKING FOR THINGS", + "ACKNOWLEDGING THE CLOWN", + "ACKNOWLEDGING THE CREW", + "PILOTING THE STATION INTO THE NEAREST SUN", + "HAVING MORE PACKETS", + "BRINGING LIGHT TO MY LAIR", + "FALLING FOR HOURS", + "PARTYING", + "USING THE BATHROOM" + ], + "ionthinksof": [ + "HAS", + "WANTS", + "NEEDS", + "WORSHIPS", + "LOATHES", + "LOVES", + "FEARS", + "DESIRES", + "CRAVES", + "QUESTIONS", + "IS AROUSED BY", + "LIKES", + "HUNGERS FOR", + "WOULD KILL FOR", + "IS MAD BECAUSE OF", + "IS IN NEED OF", + "IS UNHAPPY WITHOUT", + "IS HAPPY WITHOUT", + "IS IN LOVE WITH", + "IS DESPERATE FOR", + "IS BUILT FOR", + "IS AFRAID OF", + "IS HUNGRY FOR", + "IS SAD BECAUSE OF", + "IS CURIOUS ABOUT" + ], + "ionthreats": [ + "ALIENS", + "ABDUCTORS", + "ANOMALIES", + "FAT PEOPLE", + "FAT MEN", + "FAT WOMEN", + "FAT SCALIES", + "BIG GUTS", + "BIG BREASTS", + "BIG BUTTS", + "BANDITS", + "BEARS", + "BEES", + "BOMBS", + "CARP", + "CENTCOM OFFICERS", + "CLOWNS", + "CRABS", + "CULTISTS", + "INSECTS", + "LIZARDS", + "PETES", + "RATVARIANS", + "XENOS", + "FETISHES", + "MEMES", + "WIZARDS", + "SYNDICATE AGENTS", + "AHHHPERATIVES", + "GANGSTERS", + "SPACE PIRATES", + "TRAITORS", + "MONKEYS", + "EELS", + "LIGHTS", + "VIRUSES", + "SERIAL KILLERS", + "ROGUE CYBORGS", + "CORGIS", + "SPIDERS", + "BUTTS", + "NINJAS", + "REVENANTS", + "PIRATES", + "SPACE NINJAS", + "CHANGELINGS", + "ZOMBIES", + "GOLEMS", + "VAMPIRES", + "WEREWOLVES", + "COWBOYS", + "INDIANS", + "COMMUNISTS", + "SOVIETS", + "NERDS", + "GRIFFONS", + "DINOSAURS", + "SMALL BIRDS", + "BIRDS OF PREY", + "OWLS", + "VELOCIRAPTORS", + "DARK GODS", + "HORRORTERRORS", + "ILLEGAL IMMIGRANTS", + "DRUGS", + "MEXICANS", + "CANADIANS", + "RUSSIANS", + "HULKS", + "SLIMES", + "SKELETONS", + "CAPITALISTS", + "SINGULARITIES", + "GODS", + "THIEVES", + "ASSHOLES", + "TERRORISTS", + "SNOWMEN", + "PINE TREES", + "UNKNOWN CREATURES", + "THINGS UNDER THE BED", + "BOOGEYMEN", + "PREDATORS", + "PACKETS", + "ARTIFICIAL PRESERVATIVES", + "TUNNEL SNAKES", + "CORTICAL BORERS", + "MEGAFAUNA" + ], + "ionverb": [ + "ATTACKING", + "BUILDING", + "ADOPTING", + "FATTENING", + "PLUMPING", + "FEEDING", + "CARRYING", + "DECONSTRUCTING", + "DISABLING", + "KISSING", + "EATING", + "COPULATING WITH", + "DRINKING", + "CHASING", + "PUNCHING", + "HARMING", + "HELPING", + "WATCHING", + "STALKING", + "MURDERING", + "SPACING", + "GIBBING", + "ARRESTING", + "HONKING AT", + "LOVING", + "POOPING ON", + "RIDING", + "INTERROGATING", + "SPYING ON", + "LICKING", + "ABDUCTING", + "ARRESTING", + "INVADING", + "SEDUCING", + "BANNING" + ] +} diff --git a/strings/traumas.json b/strings/traumas.json index 195a28364b..c73a6c47bb 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -140,6 +140,7 @@ "@pick(semicolon)NOOO!!!OOOOOOO!! @pick(roles) HALP!!" ], + "mutations": [ "telikesis", "halk", @@ -192,7 +193,8 @@ "are pee", "mayne", "air ret", - "dise" + "dise", + "gee ess" ], "create_verbs": [ diff --git a/strings/traumas_gs.json b/strings/traumas_gs.json new file mode 100644 index 0000000000..9877f3f416 --- /dev/null +++ b/strings/traumas_gs.json @@ -0,0 +1,359 @@ +{ + "brain_damage": [ + "@pick(semicolon)IM A PONY NEEEEEEIIIIIIIIIGH", + "without oxigen blob don't evoluate?", + "@pick(semicolon)CAPTAINS A COMDOM", + "@pick(semicolon) @pick(george) @pick(mellens) is grifing me HALP!!!", + "can u give me @pick(mutations)?", + "@pick(semicolon)@pick(fucking_traitor) @pick(george) @pick(mellens) is kiling me HALP!!!", + "THe saiyans screwed", + "Bi is THE BEST OF BOTH WORLDS>", + "@pick(semicolon)I WANNA PET TEH monkeyS", + "SOTP IT#", + "giggity giggity!!", + "FUS RO DAH", + "fucking 4rries!", + "stat me", + ">my face", + "roll it easy!", + "waaaaaagh!!!", + "red wonz go fasta", + "FOR TEH EMPRAH", + "dem dwarfs man, dem dwarfs", + "SPESS MAHREENS", + "hwee did eet fhor khayosss", + "luv can bloooom", + "youed call her a toeugh bithc", + "GEY AWAY FROM ME U GREIFING PRICK!!!!", + "@pick(semicolon)HELP SHITECIRTY MURDERIN MEE!!!", + "hwat dose tha @pick(random_gibberish) mean?????", + "@pick(semicolon)CAL; TEH SHUTTLE!!!!!", + "wearnig siNGUARLTY IS .... FIne xDDDDDDDDD", + "@pick(semicolon)AI laW 22 Open door", + "@pick(semicolon)this SI mY stATIon......", + "who the HELL do u thenk u r?!!!!", + "geT THE FUCK OUTTTT", + "H U G B O X", + "@pick(semicolon)CRASHING THIS STTAYTION WITH NIO SURVIVROS", + "@pick(servers) is down!! @pick(bug)", + "PSHOOOM", + "REMOVE SINGULARITY", + "INSTLL TEG", + "TURBIN IS BEST ENGIENE", + "SOLIRS CAN POWER THE HOLE STATION ANEWAY @pick(bug)", + "@pick(semicolon)Tajaran has warrrres, if you have coin", + "@pick(semicolon)I'VE GOT BALLS OF STEEL", + "NO I'M ONNA KILL YOU MOTHERFUCKER OLD STYLE", + "i will snatch erry motherfucker birthday", + "u just did the world a little bit more sad place for someone", + "CEMISTRY SUKS!!!!!!!!", + "youed call her a toeugh bithc", + "git gud!!", + "PLASMA iS MENT 2 BE FREE", + "LoL tROLED U", + "SEC IS A REV, LINCH!!", + "FUCK U IM WAY MORE ROBUST u bITCH!!1!!", + "NO PRED CAN eVER CATCH MI", + "SCIENCE GIB SHINK RAY PLS", + "KILL PUNPUN 4 FUN xDD", + "i play @pick(importantroles) to only ORDER not DO", + "CRAGO ORDER @pick(cargo) PLS", + "erp?", + "i want to digest u!!!", + "i shure hop dere are no PRED arund!!!!", + "NOM!!", + "iF it COMPILES it werks!", + "GWURGLE!!", + "balid saled!", + "LINCH VIRO", + "VIRO GIB SuPR VIrUS!!", + ";ENGIE TATOR HE SET UP SINGULO!!!", + "WHEN NAGAS ADdED?/?", + "SINDYIE ON SAtIONS GiB gUNS PLISE", + "CcLOWN IV SlIPPING MI, SEc t BAR@", + "HYDROBONIX PLS WEED PLIESe PLIsE BLAzE IT!!!", + "HALP GOLIATH TENETCAL RAPPPP!!!!", + "DudSE it'S 4:20 LmAO BLAZZ IT xDDDDD", + "aI state dem1!", + "SINGULO eNGINE 2 DANGER, SOLARS PLS!", + "nerf blob!", + "iM NOT A FUWRRYY!!!", + "FOURTEEN INCHES SOFT!!!", + "SPLUUUUUUUUUUUUUUUUUUUUUUURTS!!!!!!!!!!", + "@pick(semicolon)N-NYAAAAAA~", + "@pick(bug)", + "@pick(semicolon)wtf??????????? @pick(bug)", + "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)", + "DON'T EVER TUCH ME", + "@pick(semicolon)GIVE ME FREE ROBUX PLEASE JUST ENOUGH FOR SHIRT AND PANTS", + "@pick(semicolon) DOOR STUCK!!", + "HOW DO i VORE", + "HOW DO i HAV SEX", + "@pick(semicolon)how do u cum", + "@pick(semicolon)ahelp how do u use dildo", + ";AI LAW 3 OPEN THIS.", + "hos too pwrful they have 24 inch dick", + ";KERPTAN IS A KERNDUM", + "@pick(semicolon)RESEARCH NANITES FIRST", + "@pick(semicolon)how use comms?????????", + "@pick(semicolon)im SICK of ths fuckign humans runin g my furry server", + "@pick(semicolon)ai ROUGE", + "@pick(semicolon)CHEMISST MAKE HEXACROCON OR REPORT", + "@pick(semicolon)drone 765 law 2 state LAWS NOW", + "@pick(semicolon)SM ROGUE", + "@pick(semicolon)IPCS STATE LAWS NOW", + "@pick(semicolon)lING DORMS i hear Suking noises!!!", + "@pick(semicolon)@pick(roles) tator they have @pick(mutations)!!", + ";,g absorbing @pick(roles)", + ";chemist can u @pick(create_verbs) holy @pick(mellens) for @pick(s_roles)???!!", + "@pick(semicolon) LIZZARRD SPEAKIGN IN EVIL BULL LANGUAGE SCI!!", + "@pick(semicolon)POST REBOOT MESSAGE LOLOL FUCK FUCK FUCK YOU", + "@pick(semicolon)*nya", + "@pick(semicolon)*awoo", + "@pick(semicolon)*merp", + "@pick(semicolon)*weh", + "@pick(semicolon)My balls finally feel full, again.", + "@pick(semicolon)Assaltign a sec osficer aren't crime if ur @pick(roles)", + ";SEC I SPILED MU JICE HELELPH HELPJ JLEP HELP", + "@pick(semicolon) atmos is chemistyr is radation fast air is FASTER cheemsitry and FASTER RADIATION AND FASTER DEATH!!!", + "@pick(semicolon) FUC'KING MuNKEY WAch TALKN SHIT", + "@pick(semicolon)How do I set up the. SHow do I set u p the Singu. how I the scrungulartiy????", + "@pick(semicolon)@pick(roles) is suSpicious!!!", + "@pick(semicolon)NOOO!!!OOOOOOO!! @pick(roles) HALP!!", + ";what if calorite supper mater", + ";pls chef arest he make meh fatt", + ";where food vendor", + ";bely too big how i lose weit", + ";sci pls do fat experiments", + ";OUURRRPP that burger goode...", + ";chef fatening me pls halp", + ";who put lipulifidier in meh drinke", + ";chem pls brew belch chem", + ";chem pls make lipoufidier", + ";how do i belch", + ";botany pls make fat apples", + ";roboticist put fedding tueb in evil robutt, pls arrest", + ";cargo pls order feeding tueb", + ";how i show belly", + ";bigger belly when", + ";IT'S FUUUCKKIIIIINGGGG FUUUSSIIIIIINNNGGG!!", + ";LIQUUUUIIIIDDD!!", + ";THE GREEEEN!!", + ";feeder agent pls abduct meh pls", + ";OI!! SHUTCHO MOUF AND LOOKAT MAH WAD!!", + ";sci pls research nutritech i want to get le fat xDD", + ";3", + ";tile maints with calorite tile looool", + ";gods pls gib meh le epic fattening powers lol!", + "@pick(semicolon)wholy shit" + ], + + + "mutations": [ + "telikesis", + "halk", + "eppilapse", + "kamelien", + "eksrey", + "glowey skin", + "fungal tb", + "stun gloves" + ], + + "george": [ + "joerge", + "george", + "gorge", + "gdoruge" + ], + + "mellens": [ + "mellens", + "melons", + "mwrlins" + ], + + "random_gibberish": [ + "g", + "squid", + "r", + "carbon dioxide" + ], + + "y_replacements": [ + "y", + "i", + "e" + ], + + "servers": [ + "bager", + "sybl", + "mrs sybil", + "mr basil", + "sisadel", + "dullus", + "colon marhens", + "haylo", + "EEGEE", + "mr terry", + "berry", + "are pee", + "mayne", + "air ret", + "dise", + "gee ess" + ], + + "create_verbs": [ + "spawn", + "MAke me", + "creat" + ], + + "create_nouns": [ + "zenomorfs", + "ayleins", + "treaitors", + "sheadow lings", + "abdoocters", + "revinent", + "ninja" + ], + + "bug": [ + "", + "IS TIS A BUG??", + "SI IST A BUGG/", + "BUG!!!", + "HUE, FEATURE!!" + ], + + "semicolon": [ + "", + ";", + ".h" + ], + + "god_foe": [ + "MORTALS", + "HERETICS", + "INSECTS", + "UNBELIEVERS", + "BLASPHEMERS", + "PARASITES", + "WEAKLINGS", + "PEASANTS" + ], + + "god_aggressive": [ + "BEGONE, @pick(god_foe)!", + "DIE, @pick(god_foe)!", + "BLEED, @pick(god_foe)!", + "BURN, @pick(god_foe)!", + "ALL WILL FALL BEFORE ME!", + "ENDLESS SUFFERING AWAITS YOU, @pick(god_foe).", + "DEATH TO @pick(god_foe)!" + ], + + "god_neutral": [ + "STOP", + "HALT.", + "BE SILENT.", + "QUIET", + "SEE THE TRUTH BEFORE YOU, MORTALS.", + "MORTALS, SAY YOUR NAME", + "BEGONE, MORTALS.", + "BE HEALED, MORTALS. I AM FEELING MERCIFUL.", + "DANCE FOR ME, LITTLE MORTALS.", + "YOU. STOP.", + "REST, MORTALS, TOMORROW IS A LONG DAY.", + "YOU MORTALS MAKE ME SICK.", + "HONK..." + ], + + "god_unstun": [ + "GET UP. I HAVE NO TIME TO LOSE.", + "GET UP, PRIEST.", + "GET UP." + ], + + "god_heal": [ + "YOU WILL LIVE TO SEE ANOTHER DAY.", + "YOU SHALL SURVIVE THIS, MY PRIEST.", + "BE HEALED, PRIEST.", + "YOUR LIFE IS IMPORTANT. KEEP IT." + ], + + "importantroles": [ + "heds", + "ceptin", + "hop", + "hos", + "see emo", + "cee ee", + "arr dee", + "q m", + "sek" + ], + + "roles": [ + "ceptin", + "hop", + "hos", + "see emo", + "cee ee", + "arr dee", + "q m", + "assistent", + "cargo", + "mine r", + "bart ender", + "chef", + "botonist", + "janny", + "clon", + "mime", + "librarian", + "chap", + "ai", + "borg", + "egnineer", + "atmos", + "docter", + "paradocter", + "cheemsist", + "viroligist", + "genetocist", + "science", + "robotocist", + "wardon", + "det", + "shitcurity", + "prihsoner", + "fattie" + ], + + "cargo": [ + "GUNS", + "HATS", + "PIZEH", + "MEMES", + "GLOWY CYSTAL", + "SINGLO", + "TESLO", + "NULLZ", + "GALBENIC" + ], + + "s_roles": [ + "ert", + "shadowlig", + "ninja", + "admen", + "mantor", + "bluh daymon", + "wizzerd", + "nookies" + ] +} diff --git a/strings/wanted_message_gs.json b/strings/wanted_message_gs.json new file mode 100644 index 0000000000..23c2e7ad9b --- /dev/null +++ b/strings/wanted_message_gs.json @@ -0,0 +1,75 @@ +{ + "basemessage": [ + "Fugitive from the law due to", + "Needs to be interrogated for information about", + "Wanted by The Syndicate for", + "Ransomable to GATO for", + "Has exploitable information about" + ], + "verb": [ + "murdering", + "killing", + "accidentally destroying", + "destroying", + "knowing information about", + "stealing", + "slipping", + "sabotaging", + "robusting", + "collaborating with", + "being close friends with", + "cloning", + "befriending", + "bombing", + "kidnapping", + "pretending to be", + "seducing", + "ignoring", + "assassinating" + ], + "noun": { + "secret plans": 50, + "the hand teleporter": 50, + "an NT CentCom uniform": 50, + "a supermatter shard": 50, + "internal Syndicate documents": 50, + "experimental GATO technology": 50, + "bluespace crystals": 50, + "a cult": 50, + "shapeshifting creatures": 50, + "a toolbox": 10, + "a bar of soap": 10, + "lizardmen": 10, + "two million credits": 10, + "a gondola": 10, + "one billion credits": 5, + "research on floor clowns": 5, + "Officer Beepsky": 5, + "clown tears": 5, + "John F Kennedy 2": 5, + "GATO's swimsuit calendar": 5, + "a suspicious bus": 5, + "administrators": 5, + "a solid gold gondola": 5, + "the anime archive": 5, + "YALPER": 1, + "absolutely nothing": 1, + "Cuban Pete": 1, + "your mother": 1, + "WGW": 1 + }, + "location": { + "on Space Station 13": 50, + "somewhere in deep space": 50, + "on a remote syndicate base": 50, + "in a secure GATO facility": 50, + "while on an escape shuttle": 10, + "while infiltrating CentCom headquarters": 10, + "deep in the necropolis": 10, + "In a secure NT facility": 5, + "during a drunken bar fight": 5, + "while stuck in a bathroom": 5, + "in a back alley on Mars": 5, + "on Virgo Orbital": 1 + } +} diff --git a/tgstation.dme b/tgstation.dme index 6241340180..7d93313131 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2472,6 +2472,7 @@ #include "code\modules\jobs\access.dm" #include "code\modules\jobs\job_exp.dm" #include "code\modules\jobs\job_report.dm" +#include "code\modules\jobs\job_titles.dm" #include "code\modules\jobs\jobs.dm" #include "code\modules\jobs\job_types\_job.dm" #include "code\modules\jobs\job_types\ai.dm" @@ -3903,26 +3904,29 @@ #include "code\modules\VR\vr_sleeper.dm" #include "code\modules\zombie\items.dm" #include "code\modules\zombie\organs.dm" +#include "GainStation13\code\__HELPERS\global_lists.dm" +#include "GainStation13\code\__HELPERS\transformation.dm" #include "GainStation13\code\clothing\accessory.dm" #include "GainStation13\code\clothing\backpacks.dm" #include "GainStation13\code\clothing\calorite_collar.dm" -#include "GainStation13\code\clothing\cloaks.dm" #include "GainStation13\code\clothing\fat_mask.dm" +#include "GainStation13\code\clothing\gloves.dm" #include "GainStation13\code\clothing\haydee_suit.dm" #include "GainStation13\code\clothing\head.dm" -#include "GainStation13\code\clothing\hud.dm" #include "GainStation13\code\clothing\shoes.dm" #include "GainStation13\code\clothing\suits.dm" #include "GainStation13\code\clothing\under.dm" #include "GainStation13\code\datums\bark.dm" -#include "GainStation13\code\datums\crates.dm" #include "GainStation13\code\datums\lavaland_ruins.dm" #include "GainStation13\code\datums\ruins.dm" #include "GainStation13\code\datums\traits.dm" +#include "GainStation13\code\datums\achievements\fat.dm" #include "GainStation13\code\datums\components\fattening_door.dm" +#include "GainStation13\code\datums\components\crafting\recipes\recipes_misc_gs.dm" #include "GainStation13\code\datums\diseases\advance\presets.dm" #include "GainStation13\code\datums\diseases\advance\symptoms\berry.dm" #include "GainStation13\code\datums\diseases\advance\symptoms\weight_gain.dm" +#include "GainStation13\code\datums\mood_events\needs_events.dm" #include "GainStation13\code\datums\mutations\fatfang.dm" #include "GainStation13\code\datums\mutations\radfat.dm" #include "GainStation13\code\datums\status_effects\fatstun.dm" @@ -3934,13 +3938,16 @@ #include "GainStation13\code\game\objects\tiles.dm" #include "GainStation13\code\game\objects\turfs.dm" #include "GainStation13\code\game\objects\effects\posters.dm" +#include "GainStation13\code\game\objects\effects\decals\cleanable\misc.dm" #include "GainStation13\code\game\objects\effects\spawners\choco_slime_delivery.dm" #include "GainStation13\code\game\objects\effects\spawners\decals.dm" #include "GainStation13\code\game\objects\items\docility_implant.dm" #include "GainStation13\code\game\objects\items\RCD.dm" #include "GainStation13\code\game\objects\items\toys.dm" #include "GainStation13\code\game\objects\items\storage\bags.dm" +#include "GainStation13\code\game\objects\structures\barsigns.dm" #include "GainStation13\code\game\objects\structures\medikit.dm" +#include "GainStation13\code\game\objects\structures\sofa.dm" #include "GainStation13\code\game\objects\structures\statues.dm" #include "GainStation13\code\game\turfs\closed.dm" #include "GainStation13\code\game\turfs\open.dm" @@ -3949,7 +3956,9 @@ #include "GainStation13\code\machinery\cryogenic.dm" #include "GainStation13\code\machinery\fattening_turret.dm" #include "GainStation13\code\machinery\feeding_tube.dm" +#include "GainStation13\code\machinery\feeding_tube_industrial.dm" #include "GainStation13\code\machinery\gym.dm" +#include "GainStation13\code\machinery\powered_quantum_pad.dm" #include "GainStation13\code\machinery\supply_teleporter.dm" #include "GainStation13\code\mechanics\calorite.dm" #include "GainStation13\code\mechanics\fatness.dm" @@ -3959,22 +3968,35 @@ #include "GainStation13\code\mechanics\infestation.dm" #include "GainStation13\code\mechanics\metal_cruncher.dm" #include "GainStation13\code\mechanics\permanent_fat.dm" +#include "GainStation13\code\mechanics\recipes.dm" #include "GainStation13\code\mechanics\spells.dm" #include "GainStation13\code\mechanics\wand.dm" #include "GainStation13\code\mechanics\water_sponge.dm" #include "GainStation13\code\mechanics\web_weaving.dm" #include "GainStation13\code\mechanics\den abductors\console.dm" #include "GainStation13\code\mechanics\den abductors\purchaseble_goodies.dm" +#include "GainStation13\code\mechanics\transformation\food.dm" +#include "GainStation13\code\mechanics\transformation\mob_procs.dm" +#include "GainStation13\code\mechanics\transformation\transformation_component.dm" +#include "GainStation13\code\mechanics\transformation\transformation_item.dm" #include "GainStation13\code\mobs\cakegolem.dm" #include "GainStation13\code\mobs\chocoslime.dm" +#include "GainStation13\code\mobs\eat_trash.dm" +#include "GainStation13\code\mobs\emote.dm" #include "GainStation13\code\mobs\races\caloritegolem.dm" +#include "GainStation13\code\modules\arousal\arousal.dm" #include "GainStation13\code\modules\cargo\packs.dm" +#include "GainStation13\code\modules\client\border_control.dm" +#include "GainStation13\code\modules\client\loadout\head.dm" +#include "GainStation13\code\modules\client\loadout\uniform.dm" #include "GainStation13\code\modules\client\preferences\preferences.dm" #include "GainStation13\code\modules\clothing\under\jobs\clothing.dm" #include "GainStation13\code\modules\clothing\under\jobs\modcivilian.dm" +#include "GainStation13\code\modules\events\vent_clog.dm\vent_clog.dm" #include "GainStation13\code\modules\food_and_drinks\drinks.dm" #include "GainStation13\code\modules\food_and_drinks\food.dm" #include "GainStation13\code\modules\food_and_drinks\recipes_bigpizza.dm" +#include "GainStation13\code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" #include "GainStation13\code\modules\food_and_drinks\objects\boxes.dm" #include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm" #include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm" @@ -3989,6 +4011,17 @@ #include "GainStation13\code\modules\loadout\tablet.dm" #include "GainStation13\code\modules\mapping\areas.dm" #include "GainStation13\code\modules\mapping\ghost_roles.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\ears.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\frills.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\horns.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\tails.dm" +#include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\wings.dm" #include "GainStation13\code\modules\mob\living\belly.dm" #include "GainStation13\code\modules\mob\living\emote.dm" #include "GainStation13\code\modules\mob\living\emote_modular.dm" @@ -4001,11 +4034,15 @@ #include "GainStation13\code\modules\reagents\chemistry\reagents\dwarverndrinks.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\fatty_drinks.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\fermi_fat.dm" +#include "GainStation13\code\modules\reagents\chemistry\reagents\other_reagents.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\fatchem.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\fatdrinks.dm" +#include "GainStation13\code\modules\reagents\chemistry\recipes\others.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\ROCKANDSTONEdrinks.dm" #include "GainStation13\code\modules\reagents\reagent_containers\barrel_tank.dm" #include "GainStation13\code\modules\research\designs\autolathe.dm" +#include "GainStation13\code\modules\research\designs\biogen.dm" +#include "GainStation13\code\modules\research\designs\borg.dm" #include "GainStation13\code\modules\research\designs\nutri_designs.dm" #include "GainStation13\code\modules\research\nanites\nanite_programs\fattening.dm" #include "GainStation13\code\modules\research\techweb\nutritech_nodes.dm" @@ -4017,6 +4054,7 @@ #include "GainStation13\code\modules\weapons\grenades.dm" #include "GainStation13\code\obj\items\bluespace_belt.dm" #include "GainStation13\code\obj\items\circuits.dm" +#include "GainStation13\code\obj\items\floor_tiles.dm" #include "GainStation13\code\obj\items\holy.dm" #include "GainStation13\code\obj\items\minor_items.dm" #include "GainStation13\code\obj\items\sensors\weight_infared.dm" @@ -4029,9 +4067,9 @@ #include "GainStation13\code\obj\weapons\alter_rays.dm" #include "GainStation13\code\obj\weapons\fatbeam.dm" #include "GainStation13\code\obj\weapons\fatoray.dm" +#include "GainStation13\code\obj\items\reskinable_floor_tile.dm" #include "GainStation13\code\obj\weapons\feeder_ebow.dm" #include "GainStation13\code\structures\chair.dm" -#include "GainStation13\code\structures\table.dm" #include "GainStation13\code\structures\trapped_items.dm" #include "GainStation13\code\structures\trash_piles.dm" #include "GainStation13\code\xenoarch\artifact.dm" @@ -4051,12 +4089,18 @@ #include "GainStation13\icons\obj\vairous_weapons.dm" #include "GainStation13\icons\obj\structure\beds.dm" #include "GainStation13\icons\obj\structure\flora.dm" +#include "hyperstation\code\datums\mood_events\events.dm" #include "hyperstation\code\game\objects\railings.dm" #include "hyperstation\code\game\objects\structures\bench.dm" #include "hyperstation\code\game\objects\structures\sauna_oven.dm" +#include "hyperstation\code\modules\traits.dm" +#include "hyperstation\code\modules\arousal\arousalhud.dm" #include "hyperstation\code\modules\clothing\sizeaccessories.dm" #include "hyperstation\code\modules\food_and_drinks\recipes\drinks_recipes.dm" +#include "hyperstation\code\modules\mob\mob_helpers.dm" +#include "hyperstation\code\modules\mob\living\status_indicators.dm" #include "hyperstation\code\modules\reagents\chemistry\reagents\drink_reagents.dm" +#include "hyperstation\code\modules\reagents\chemistry\reagents\food_reagents.dm" #include "hyperstation\code\modules\resize\resize_action.dm" #include "hyperstation\code\modules\resize\resizing.dm" #include "hyperstation\code\modules\resize\sizechems.dm" @@ -4064,6 +4108,7 @@ #include "hyperstation\code\modules\surgery\organs\augments_arms.dm" #include "hyperstation\code\obj\ashtray.dm" #include "hyperstation\code\obj\decal.dm" +#include "hyperstation\code\obj\fleshlight.dm" #include "hyperstation\code\obj\kinkyclothes.dm" #include "hyperstation\code\obj\sizeitems.dm" #include "hyperstation\code\obj\stargate_clothing.dm" @@ -4144,6 +4189,7 @@ #include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" +#include "modular_citadel\code\modules\mob\living\carbon\human\life.dm" #include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" #include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" #include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" diff --git a/tgui/packages/tgui/interfaces/TransformTool.js b/tgui/packages/tgui/interfaces/TransformTool.js new file mode 100644 index 0000000000..fb06cc0c29 --- /dev/null +++ b/tgui/packages/tgui/interfaces/TransformTool.js @@ -0,0 +1,66 @@ +import { useBackend } from '../backend'; +import { Box, Button, LabeledList, NumberInput, Section } from '../components'; +import { Window } from '../layouts'; + +export const TransformTool = (props, context) => { + const { act, data } = useBackend(context); + const { + able_to_speak, + able_to_emote, + scale_object, + show_that_object_is_tf, + linked_item_name, + able_to_struggle_out, + } = data; + + return ( + + +
      + + Current item: {linked_item_name ? linked_item_name : "None"} + +
      + + + + + + + + + + + +
      +
      +
      + ); +}; diff --git a/tools/bootstrap/node_.ps1 b/tools/bootstrap/node_.ps1 index ac8d3b343f..53dd65ae60 100644 --- a/tools/bootstrap/node_.ps1 +++ b/tools/bootstrap/node_.ps1 @@ -29,7 +29,16 @@ $Cache = "$BaseDir\.cache" if ($Env:TG_BOOTSTRAP_CACHE) { $Cache = $Env:TG_BOOTSTRAP_CACHE } -$NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_PRECISE" +# Get OS version +$OSMajor = (Get-WmiObject -Class Win32_OperatingSystem).Version.Split(".")[0] +# Set Node version based on OS version +if ($OSMajor -lt 10) { + # Anything under Windows 10 + $NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_COMPAT" +} +else { + $NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_LTS" +} $NodeSource = "https://nodejs.org/download/release/v$NodeVersion/win-x64/node.exe" $NodeTargetDir = "$Cache\node-v$NodeVersion-x64" $NodeTarget = "$NodeTargetDir\node.exe" diff --git a/tools/ci/install_node.sh b/tools/ci/install_node.sh index c21b8f0110..906984ed3f 100755 --- a/tools/ci/install_node.sh +++ b/tools/ci/install_node.sh @@ -5,6 +5,6 @@ source dependencies.sh if [[ -e ~/.nvm/nvm.sh ]]; then source ~/.nvm/nvm.sh - nvm install $NODE_VERSION - nvm use $NODE_VERSION + nvm install $NODE_VERSION_COMPAT + nvm use $NODE_VERSION_COMPAT fi diff --git a/tools/initToast/initToast.ps1 b/tools/initToast/initToast.ps1 new file mode 100644 index 0000000000..9b7714f3a2 --- /dev/null +++ b/tools/initToast/initToast.ps1 @@ -0,0 +1,32 @@ +param([string]$name, [string]$icon, [Int32]$port=80) + +$hkcu = [Microsoft.Win32.RegistryKey]::OpenBaseKey('CurrentUser','default') + +$amuid_hkey = $hkcu.CreateSubKey('SOFTWARE\Classes\AppUserModelId\Tgstation.Tgstation', $true, [Microsoft.Win32.RegistryOptions]::Volatile) + +if ($name) { $amuid_hkey.SetValue('DisplayName', $name) } +if ($icon) { $amuid_hkey.SetValue('IconUri', $icon) } + +[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null +$notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('Tgstation.Tgstation') + +[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom, ContentType = WindowsRuntime] > $null +$xml = New-Object Windows.Data.Xml.Dom.XmlDocument + +$xml.LoadXml(@" + + + + Initialization Complete + + + + + + +"@) + +[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null +$toast = New-Object Windows.UI.Notifications.ToastNotification $xml + +$notifier.Show($toast) diff --git a/tools/requirements.txt b/tools/requirements.txt index 059bd45d7e..e64c8d7b46 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,7 +1,7 @@ -pygit2==1.0.1 -bidict==0.13.1 -Pillow==10.0.1 +pygit2==1.11.1 +bidict==0.22.1 +Pillow==10.3.0 # changelogs -PyYaml==5.4 +PyYaml==6.0.1 beautifulsoup4==4.9.3