diff --git a/.vs/GS13/v16/Browse.VC.db b/.vs/GS13/v16/Browse.VC.db new file mode 100644 index 00000000..6293875e Binary files /dev/null and b/.vs/GS13/v16/Browse.VC.db differ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 00000000..0cf5ea50 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": "No Configurations" +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 00000000..6b611411 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 00000000..fa05a017 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/GS13/GS13.dme b/GS13/GS13.dme new file mode 100644 index 00000000..34af4462 --- /dev/null +++ b/GS13/GS13.dme @@ -0,0 +1,17 @@ +// DM Environment file for GS13.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. +// New source code should be placed in .dm files: choose File/New --> Code File. + +// BEGIN_INTERNALS +// END_INTERNALS + +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR + +// BEGIN_PREFERENCES +// END_PREFERENCES + +// BEGIN_INCLUDE +// END_INCLUDE + diff --git a/code/modules/projectiles/guns/misc/fatbeam.dm b/code/modules/projectiles/guns/misc/fatbeam.dm new file mode 100644 index 00000000..db1a2c8d --- /dev/null +++ b/code/modules/projectiles/guns/misc/fatbeam.dm @@ -0,0 +1,132 @@ +/obj/item/gun/fatbeam + name = "Fatbeam Gun" + desc = "New invention of GATO's most degenerate engineers." + icon = 'icons/obj/fatbeam.dmi' + icon_state = "chronogun" + item_state = "chronogun" + w_class = WEIGHT_CLASS_NORMAL + + var/mob/living/current_target + var/last_check = 0 + var/check_delay = 10 //Check los as often as possible, max resolution is SSobj tick though + var/max_range = 8 + var/active = 0 + var/datum/beam/current_beam = null + var/mounted = 0 //Denotes if this is a handheld or mounted version + + weapon_weight = WEAPON_MEDIUM + +/obj/item/gun/fatbeam/Initialize() + . = ..() + START_PROCESSING(SSobj, src) + +/obj/item/gun/fatbeam/Destroy(mob/user) + STOP_PROCESSING(SSobj, src) + LoseTarget() + return ..() + +/obj/item/gun/fatbeam/dropped(mob/user) + ..() + LoseTarget() + +/obj/item/gun/fatbeam/equipped(mob/user) + ..() + LoseTarget() + +/obj/item/gun/fatbeam/proc/LoseTarget() + if(active) + qdel(current_beam) + current_beam = null + active = 0 + on_beam_release(current_target) + current_target = null + +/obj/item/gun/fatbeam/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + if(isliving(user)) + add_fingerprint(user) + + if(current_target) + LoseTarget() + if(!isliving(target)) + return + + current_target = target + active = TRUE + current_beam = new(user,current_target,time=6000,beam_icon_state="fatbeam",btype=/obj/effect/ebeam/medical) + INVOKE_ASYNC(current_beam, /datum/beam.proc/Start) + + SSblackbox.record_feedback("tally", "gun_fired", 1, type) + +/obj/item/gun/fatbeam/process() + + var/source = loc + if(!mounted && !isliving(source)) + LoseTarget() + return + + if(!current_target) + LoseTarget() + return + + if(world.time <= last_check+check_delay) + return + + last_check = world.time + + if(get_dist(source, current_target)>max_range || !los_check(source, current_target)) + LoseTarget() + if(isliving(source)) + to_chat(source, "You lose control of the beam!") + return + + if(current_target) + on_beam_tick(current_target) + +/obj/item/gun/fatbeam/proc/los_check(atom/movable/user, mob/target) + var/turf/user_turf = user.loc + if(mounted) + user_turf = get_turf(user) + else if(!istype(user_turf)) + return 0 + var/obj/dummy = new(user_turf) + dummy.pass_flags |= PASSTABLE|PASSGLASS|PASSGRILLE //Grille/Glass so it can be used through common windows + for(var/turf/turf in getline(user_turf,target)) + if(mounted && turf == user_turf) + continue //Mechs are dense and thus fail the check + if(turf.density) + qdel(dummy) + return 0 + for(var/atom/movable/AM in turf) + if(!AM.CanPass(dummy,turf,1)) + qdel(dummy) + return 0 + for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams! + if(B.owner.origin != current_beam.origin) + explosion(B.loc,0,1,3,4) + qdel(dummy) + return 0 + qdel(dummy) + return 1 + +/obj/item/gun/fatbeam/proc/on_beam_hit(var/mob/living/target) + return + +/obj/item/gun/fatbeam/proc/on_beam_tick(var/mob/living/target) + if(target.health != target.maxHealth) + new /obj/effect/temp_visual/heal(get_turf(target), "#FFC2F8") + target.nutrition += 100 + return + +/obj/item/gun/fatbeam/proc/on_beam_release(var/mob/living/target) + return + +/obj/effect/ebeam/medical + name = "fattening beam" + +//////////////////////////////Mech Version/////////////////////////////// +/obj/item/gun/fatbeam/mech + mounted = 1 + +/obj/item/gun/fatbeam/mech/Initialize() + . = ..() + STOP_PROCESSING(SSobj, src) //Mech mediguns do not process until installed, and are controlled by the holder obj diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index bad913ec..509be330 100644 Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index e8e36dc6..cacfe25b 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi index 96d6d793..6733e688 100644 Binary files a/icons/mob/neck.dmi and b/icons/mob/neck.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 42048eca..1452e389 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index a2e286d7..787c2e72 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index a3b4d00d..cf2fd945 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index 9543c12c..a1a4c748 100644 Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index c568ea27..3759a177 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 95d36176..f74bf730 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index b81863b8..e62579c8 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/fatbeam.dmi b/icons/obj/fatbeam.dmi new file mode 100644 index 00000000..c7105bde Binary files /dev/null and b/icons/obj/fatbeam.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 64642b8a..09277581 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index d0718900..ed56f364 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ diff --git a/strings/dreamstrings.txt b/strings/dreamstrings.txt index e6cc9b3e..b434eb31 100644 --- a/strings/dreamstrings.txt +++ b/strings/dreamstrings.txt @@ -28,7 +28,7 @@ the %ADJECTIVE% brig %A% %ADJECTIVE% shuttle %A% %ADJECTIVE% laboratory Nanotrasen -Kinaris +GATO the Syndicate the Wizard Federation %ADJECTIVE% blood diff --git a/strings/redpill.json b/strings/redpill.json index 2526d254..2a0d9592 100644 --- a/strings/redpill.json +++ b/strings/redpill.json @@ -4,7 +4,7 @@ "Why is it called the emergency shuttle if it arrives every single shift?", "Where does the Cook get all this meat from?", "Space wind? How does that even make sense?", - "Why does Kinaris hire Clowns and Mimes for every single station?", + "Why does GATO hire Clowns and Mimes for every single station?", "Why is the station's air supply connected to the plasma tank?", "Why are there fire alarms everywhere but no sprinklers?", "Why is this a plasma research station if we know everything about plasma already?", @@ -16,7 +16,7 @@ "How come a hole in the floor doesn't suck you out into space?", "Why is space cold?", "Why does space circle around on itself?", - "Kinaris just clones us every shift.", + "GATO just clones us every shift.", "There's no biological difference between lizards and humans.", "Why is there a floor, but no roof?", "The universe always ends after we reach CentCom.", diff --git a/tgstation.dme b/tgstation.dme index bb90d4ed..4b6791eb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2622,6 +2622,7 @@ #include "code\modules\projectiles\guns\misc\beam_rifle.dm" #include "code\modules\projectiles\guns\misc\blastcannon.dm" #include "code\modules\projectiles\guns\misc\chem_gun.dm" +#include "code\modules\projectiles\guns\misc\fatbeam.dm" #include "code\modules\projectiles\guns\misc\grenade_launcher.dm" #include "code\modules\projectiles\guns\misc\medbeam.dm" #include "code\modules\projectiles\guns\misc\syringe_gun.dm" diff --git a/tgui-next/packages/tgui/assets/bg-kinaris.svg b/tgui-next/packages/tgui/assets/bg-kinaris.svg index 56502e7f..7be1bf30 100644 --- a/tgui-next/packages/tgui/assets/bg-kinaris.svg +++ b/tgui-next/packages/tgui/assets/bg-kinaris.svg @@ -1,63 +1,3 @@ - - - - - - - - - - image/svg+xml - - - - - - - - + + diff --git a/tgui-next/packages/tgui/assets/bg-knrs_backup.svg b/tgui-next/packages/tgui/assets/bg-knrs_backup.svg new file mode 100644 index 00000000..56502e7f --- /dev/null +++ b/tgui-next/packages/tgui/assets/bg-knrs_backup.svg @@ -0,0 +1,63 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/tools/CreditsTool/obj/Debug/CreditsTool.csprojAssemblyReference.cache b/tools/CreditsTool/obj/Debug/CreditsTool.csprojAssemblyReference.cache new file mode 100644 index 00000000..0aa3d7c8 Binary files /dev/null and b/tools/CreditsTool/obj/Debug/CreditsTool.csprojAssemblyReference.cache differ diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csprojAssemblyReference.cache b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csprojAssemblyReference.cache new file mode 100644 index 00000000..33e112f9 Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csprojAssemblyReference.cache differ diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Release/UnstandardnessTestForDM.csprojAssemblyReference.cache b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Release/UnstandardnessTestForDM.csprojAssemblyReference.cache new file mode 100644 index 00000000..036cf09a Binary files /dev/null and b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Release/UnstandardnessTestForDM.csprojAssemblyReference.cache differ