diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index f81159d09315..bce78f5f7ab1 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -5,18 +5,26 @@
# to the same file or dir, add them to the end of under Multiple Owners
# Map Maintainers
+/_maps/ @DarkPack13/maptainers
+*.dmm @DarkPack13/maptainers
# Sprite Maintainers
-/icons/ @ApocryphaXIII/spritetainers
-*.dmi @ApocryphaXIII/spritetainers
+/icons/ @DarkPack13/spritetainers
+*.dmi @DarkPack13/spritetainers
# Code Maintainers
-/code/ @ApocryphaXIII/maintainers
-*.dm @ApocryphaXIII/maintainers
+/code/ @DarkPack13/maintainers
+*.dm @DarkPack13/maintainers
# MAINTAINERS
# FalloutFalcon
+/modular_darkpack/modules/cars/code/ @FalloutFalcon
+/modular_darkpack/modules/city_time/code/ @FalloutFalcon
+/modular_darkpack/modules/doors/code/vampdoor.dm @FalloutFalcon
+
+# XeonMations
+/modular_darkpack/modules/masquerade/code/ @XeonMations
# CONTRIBUTORS
diff --git a/.github/workflows/run_linters.yml b/.github/workflows/run_linters.yml
index 03e8cdb3266d..023cc283cb4b 100644
--- a/.github/workflows/run_linters.yml
+++ b/.github/workflows/run_linters.yml
@@ -66,7 +66,6 @@ jobs:
run: |
bash tools/ci/check_grep.sh
bash modular_darkpack/tools/darkpack_check_grep.sh # DARKPACK EDIT ADDITION - checking modular_darkpack code
- bash modular_zapoc/tools/apoc_check_grep.sh # APOC EDIT ADD
- name: Ticked File Enforcement
if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: |
diff --git a/README.md b/README.md
index 77ea01de5206..f3a96aec3961 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
-## The Apocrypha codebase
+## The Second City codebase
[](.github/images/comics/131-bug-free.png) [](.github/images/comics/106-tech-debt-modified.png) [](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a)
-| Website | Link |
-| ----------------------- | -------------------------------------------- |
-| Code | https://github.com/ApocryphaXIII/Apocrypha13 |
-| The Second City Discord | https://discord.gg/rmAbJcuChD |
-| Coderbus Discord | https://discord.gg/Vh8TJp9 |
+| Website | Link |
+| ----------------------- | -----------------------------------------|
+| Code | https://github.com/DarkPack13/SecondCity |
+| The Second City Discord | https://discord.gg/rmAbJcuChD |
+| Coderbus Discord | https://discord.gg/Vh8TJp9 |
-This is the codebase for Apocrypha13, a downstream/fork for the Darkpack13 Project, a fork of TGstation 2025
+This is the codebase for the Darkpack13 Project, a fork of TGstation 2025 for the purposes of being an upstream for The Final Nights, Apocrypha, Requiem and World of Darkness 13.
We are based on the Paradox Interactive World of Darkness(c) gamelines, with administrative oversight determining what we add to our game.
diff --git a/code/__DEFINES/~darkpack/branding.dm b/code/__DEFINES/~darkpack/branding.dm
index a823647f9bb8..3bb9d0dde720 100644
--- a/code/__DEFINES/~darkpack/branding.dm
+++ b/code/__DEFINES/~darkpack/branding.dm
@@ -6,14 +6,14 @@
#define SEPT_NAME "Sept of the Western Eye"
-#define EVIL_COMPANY "Pentex"
+#define EVIL_COMPANY "Pentex Group"
#define MAIN_EVIL_COMPANY EVIL_OIL_COMPANY // Only effects Pentex job slots
// Treated as subsidary of EVIL_COMPANY
/* MAJOR COMPANIES - Currently or at one time held the Top 21 Company title */
#define EVIL_TRASH_COMPANY "Ardus Enterprises"
-#define EVIL_TOY_COMPANY "Avalon Incorporated."
+#define EVIL_TOY_COMPANY "Avalon Incorporated"
#define EVIL_CIGARETTE_COMPANY "Circinus Brands"
#define EVIL_INVESTMENT_COMPANY "Consolidex Worldwide"
#define EVIL_OIL_COMPANY "Endron International"
@@ -21,6 +21,7 @@
#define EVIL_MINING_COMPANY "Harold and Harold Mining, Incorporated"
#define EVIL_PAPER_COMPANY "Good House International"
#define EVIL_FISHING_COMPANY "Hallahan Fishing Company"
+#define EVIL_HANDGUN_COMPANY "Herculean Firearms Incorporated"
#define EVIL_GROCERY_COMPANY "Herrick's"
#define EVIL_LIQUOR_COMPANY "King Breweries and Distilleries"
#define EVIL_PHARMA_COMPANY "Magadon, Incorporated"
@@ -42,7 +43,7 @@
#define EVIL_EGYPTIAN_OIL_COMPANY "EGPC"
/* HAROLD AND HAROLD SUBSIDIARIES */
-#define EVIL_EGYPTIAN_MINING_COMPANY "Kaulet Mining"
+#define EVIL_EGYPTIAN_MINING_COMPANY "Kauket Mining"
/* KING BREWERIES SUBSIDIARIES */
#define EVIL_WATERWAY_COMPANY "AquaClear Foundation"
@@ -83,13 +84,12 @@
#define EVIL_COSMETICS_COMPANY_3 "Pangloss Cosmetics" // Subsidiary of Siren Cosmetics
#define EVIL_WEAPON_COMPANY "Full Force Solutions"
#define EVIL_PR_COMPANY "Gaia Research Company"
-#define EVIL_HANDGUN_COMPANY "Herculean Firearms Incorporated"
#define EVIL_CONSTRUCTION_COMPANY "Hi-Quality Builders"
#define EVIL_LAW_COMPANY "Meyers, Feinstein and Hargrett"
#define EVIL_TECH_COMPANY "NikNak Computing"
#define EVIL_GAMING_COMPANY "Deep Dive Games" // Subsidiary of NikNak
#define EVIL_NEWS_COMPANY "RED Network"
-#define EVIL_CONTSTRUCTION_COMPANY_2 "Safe Haven Construction"
+#define EVIL_CONSTRUCTION_COMPANY_2 "Safe Haven Construction"
#define EVIL_INTEL_COMPANY "Shade, Inc."
#define EVIL_HORROR_COMPANY "Slaughterhouse Video"
#define EVIL_CONSULTING_COMPANY "Southeastern Tech Management"
diff --git a/code/__DEFINES/~darkpack/colors.dm b/code/__DEFINES/~darkpack/colors.dm
index ba63b538ad1b..ec2b32ba0e7c 100644
--- a/code/__DEFINES/~darkpack/colors.dm
+++ b/code/__DEFINES/~darkpack/colors.dm
@@ -1 +1,22 @@
-#define COLOR_ENDRON_GREEN "#015334"
+#define COLOR_CORP_PENTEX "#3B2033"
+
+#define COLOR_CORP_ARDUS "#9BADB7"
+#define COLOR_CORP_AVALON "#6556ED"
+#define COLOR_CORP_CIRCINUS "#FFBF82"
+#define COLOR_CORP_CONSOLIDEX "#DD28FF"
+#define COLOR_CORP_ENDRON "#015334"
+#define COLOR_CORP_HAROLD_HAROLD "#92483B"
+#define COLOR_CORP_GOOD_HOUSE "#B297BB"
+#define COLOR_CORP_HALLAHAN "#460DD1"
+#define COLOR_CORP_HERCULEAN "#FF1010"
+#define COLOR_CORP_HERRICKS "#9009BB"
+#define COLOR_CORP_KING "#CDAF58"
+#define COLOR_CORP_MAGADON "#45F7FF"
+#define COLOR_CORP_NASTRUM "#FF7DA2"
+#define COLOR_CORP_OMNI_TV "#ED795E"
+#define COLOR_CORP_OTOLLEYS "#8FEDC5"
+#define COLOR_CORP_BLACK_DOG "#E3EBFF"
+#define COLOR_CORP_RAINBOW_INC "#FFB6EE"
+#define COLOR_CORP_TELLUS "#66FF28"
+#define COLOR_CORP_VESUVIUS "#E7E8C7"
+#define COLOR_CORP_YOUNG_SMITH "#A5BB97"
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 11b20cfb2104..27e376927f6b 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -566,7 +566,8 @@ world
if(no_anim)
//Clean up repeated frames
- var/icon/cleaned = new /icon()
+ // Done this way otherwise Width() and Height() would always be 0 for this icon // DARKPACK EDIT ADD START - Company Logos
+ var/icon/cleaned = icon('icons/effects/effects.dmi', "nothing") // DARKPACK EDIT ADD END
cleaned.Insert(flat, "", SOUTH, 1, 0)
return cleaned
else
diff --git a/code/game/objects/items/skub.dm b/code/game/objects/items/skub.dm
index 12e6da344d0b..e9eee0ccc3ff 100644
--- a/code/game/objects/items/skub.dm
+++ b/code/game/objects/items/skub.dm
@@ -6,6 +6,7 @@
w_class = WEIGHT_CLASS_BULKY
attack_verb_continuous = list("skubs")
attack_verb_simple = list("skub")
+ brand = "badcode" // DARKPACK EDIT ADD - COMPANY_LOGOS - Proof of concept. I kinda like it. Leave it?
/obj/item/skub/Initialize(mapload)
. = ..()
diff --git a/modular_darkpack/master_files/code/game/objects/objs.dm b/modular_darkpack/master_files/code/game/objects/objs.dm
new file mode 100644
index 000000000000..3cb7449e497e
--- /dev/null
+++ b/modular_darkpack/master_files/code/game/objects/objs.dm
@@ -0,0 +1,9 @@
+/obj
+ // DARKPACK Module - COMPANY_LOGOS - If matching a /datum/brand's manufacturer, append a logo to the examine text. Element only added by default on /obj/
+ var/brand
+
+
+/obj/Initialize(mapload)
+ . = ..()
+ if(brand) // DARKPACK module - COMPANY_LOGOS - If we don't have a brand, disregard.
+ AddElement(/datum/element/corp_label, GLOB.all_brandnames[brand])
diff --git a/modular_darkpack/modules/company_logos/code/company_logos.dm b/modular_darkpack/modules/company_logos/code/company_logos.dm
new file mode 100644
index 000000000000..df579be462bd
--- /dev/null
+++ b/modular_darkpack/modules/company_logos/code/company_logos.dm
@@ -0,0 +1,71 @@
+GLOBAL_LIST_INIT(all_brands, init_subtypes_w_path_keys(/datum/brand, list()))
+GLOBAL_LIST_INIT(all_brandnames, brand_list_by_name())
+
+/proc/brand_list_by_name()
+ var/list/brand_list = GLOB.all_brands
+
+ for(var/path in brand_list)
+ var/datum/brand/this_brand = brand_list[path]
+ brand_list[this_brand.manufacturer] = this_brand
+ return brand_list
+
+/datum/element/corp_label
+ var/datum/brand/our_brand = /datum/brand
+ element_flags = ELEMENT_BESPOKE
+ argument_hash_start_idx = 1
+
+/datum/element/corp_label/Attach(datum/target, datum/brand/my_brand)
+ . = ..()
+ if(!isatom(target))
+ return ELEMENT_INCOMPATIBLE
+
+ var/obj/product = target
+
+ if(!product.brand)
+ return ELEMENT_INCOMPATIBLE
+
+ our_brand = my_brand
+
+ if(isnull(my_brand))
+ our_brand = /datum/brand
+
+ RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(target, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(on_examine_more))
+
+/datum/element/corp_label/Detach(datum/target)
+ UnregisterSignal(target, list(COMSIG_ATOM_EXAMINE))
+ return ..()
+
+/datum/element/corp_label/proc/on_examine(datum/source, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+ examine_list += span_notice(" This item is branded.. [EXAMINE_HINT("Look closer")] for more information.")
+
+/datum/element/corp_label/proc/on_examine_more(datum/source, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+ var/logo
+ if(our_brand.render_logo)
+ logo = "[icon2html(our_brand.logo_icon, user, our_brand.manufacturer, extra_classes = "corplogo")]"
+
+ examine_list += span_info("[logo ? "[logo] " : ""]Brought to you by [our_brand.full_name].")
+
+ if(our_brand.slogan)
+ examine_list += span_notice("\"[our_brand.slogan]\"")
+
+/datum/brand
+ abstract_type = /datum/brand
+
+ // Used to index the brand and reference the icon_state
+ var/manufacturer = "badcode"
+ // The full, plain-text name of the company.
+ var/full_name = "Bad Code Inc."
+ // Company slogan. Displayed alongside the logo in most cases.
+ var/slogan = "Bad Code Inc.: Telling America's Coders they screwed up since 1970."
+ // Formatting applied to the name in item descriptions
+ var/name_span = "hypnophrase"
+ // The icon file we're grabbing our icon_state from. Default dimensions in this file are 300x110.
+ var/logo_icon = 'modular_darkpack/modules/COMPANY_LOGOS/icons/corp_logos.dmi'
+ // If FALSE, skip rendering the logo in examine text.
+ var/render_logo = TRUE
+ // Company color used for coloring certain items that change depending on brand
+ var/company_color = COLOR_ADMIN_PINK
+
diff --git a/modular_darkpack/modules/company_logos/code/pentex.dm b/modular_darkpack/modules/company_logos/code/pentex.dm
new file mode 100644
index 000000000000..afd75319797a
--- /dev/null
+++ b/modular_darkpack/modules/company_logos/code/pentex.dm
@@ -0,0 +1,210 @@
+/datum/brand/pentex
+ manufacturer = "pentex"
+ full_name = EVIL_COMPANY
+ slogan = "Pentex: Making All The Really Tough Decisions For You!"
+ name_span = "corp_label_pentex"
+ company_color = COLOR_CORP_PENTEX
+
+// TOP 21 - Companies that are or were at one time in the top 21
+/datum/brand/pentex/ardus
+ manufacturer = "ardus"
+ full_name = EVIL_TRASH_COMPANY
+ slogan = "Keeping America's wilderness clean!"
+ name_span = "corp_label_ardus"
+ company_color = COLOR_CORP_ARDUS
+
+/datum/brand/pentex/avalon
+ manufacturer = "avalon"
+ full_name = EVIL_TOY_COMPANY
+ slogan = "Blast off to Fun!"
+ name_span = "corp_label_avalon"
+ company_color = COLOR_CORP_AVALON
+
+/datum/brand/pentex/circinus
+ manufacturer = "circinus"
+ full_name = EVIL_CIGARETTE_COMPANY
+ slogan = "The best taste in the tent."
+ name_span = "corp_label_circinus"
+ company_color = COLOR_CORP_CIRCINUS
+
+/datum/brand/pentex/consolidex
+ manufacturer = "consolidex"
+ full_name = EVIL_INVESTMENT_COMPANY
+ slogan = "Portfolio simplified."
+ name_span = "corp_label_consolidex"
+ company_color = COLOR_CORP_CONSOLIDEX
+
+/datum/brand/pentex/endron
+ manufacturer = "endron"
+ full_name = EVIL_OIL_COMPANY
+ slogan = "For a greener tomorrow!"
+ name_span = "corp_label_endron"
+ company_color = COLOR_CORP_ENDRON
+
+/datum/brand/pentex/endron/atlas
+ manufacturer = "atlas"
+ full_name = EVIL_NUCLEAR_COMPANY
+ slogan = "Atlas: Providers for Our Future."
+ render_logo = FALSE
+
+/datum/brand/pentex/harold_and_harold
+ manufacturer = "harold_and_harold"
+ full_name = EVIL_MINING_COMPANY
+ slogan = "Finding what makes the world work, underground."
+ name_span = "corp_label_harold_harold"
+ company_color = COLOR_CORP_HAROLD_HAROLD
+
+/datum/brand/pentex/good_house
+ manufacturer = "good_house"
+ full_name = EVIL_PAPER_COMPANY
+ slogan = "Sustainable stationary for a sustainable future."
+ name_span = "corp_label_good_house"
+ company_color = COLOR_CORP_GOOD_HOUSE
+
+/datum/brand/pentex/hallahan
+ manufacturer = "hallahan"
+ full_name = EVIL_FISHING_COMPANY
+ slogan = "Bounty of the sea straight to your plate."
+ name_span = "corp_label_hallahan"
+ company_color = COLOR_CORP_HALLAHAN
+
+/datum/brand/pentex/herculean
+ manufacturer = "herculean"
+ full_name = EVIL_HANDGUN_COMPANY
+ slogan = "No labour too great for a Herculean."
+ name_span = "corp_label_herculean"
+ company_color = COLOR_CORP_HERCULEAN
+
+/datum/brand/pentex/herricks
+ manufacturer = "herricks"
+ full_name = EVIL_GROCERY_COMPANY
+ slogan = "A full pantry without costing a full wallet."
+ name_span = "corp_label_herricks"
+ company_color = COLOR_CORP_HERRICKS
+
+/datum/brand/pentex/king
+ manufacturer = "king"
+ full_name = EVIL_LIQUOR_COMPANY
+ slogan = "Nobody is better at brewing than the King."
+ name_span = "corp_label_king"
+ company_color = COLOR_CORP_KING
+
+/datum/brand/pentex/magadon
+ manufacturer = "magadon"
+ full_name = EVIL_PHARMA_COMPANY
+ slogan = "Magadon: building a better you."
+ name_span = "corp_label_magadon"
+ company_color = COLOR_CORP_MAGADON
+
+/datum/brand/pentex/magadon/aesop
+ manufacturer = "aesop"
+ full_name = EVIL_COSMETICS_COMPANY
+ slogan = "Humane testing for Human needs."
+ render_logo = FALSE
+
+/datum/brand/pentex/magadon/autumn
+ manufacturer = "autumn"
+ full_name = EVIL_HOSPITAL_COMPANY
+ slogan = "Let our family care for your family."
+ render_logo = FALSE
+
+/datum/brand/pentex/nastrum
+ manufacturer = "nastrum"
+ full_name = EVIL_AVIATION_COMPANY
+ slogan = "Safety in efficiency."
+ name_span = "corp_label_nastrum"
+ company_color = COLOR_CORP_NASTRUM
+
+/datum/brand/pentex/omni
+ manufacturer = "omni"
+ full_name = EVIL_TELEVISION_COMPANY
+ slogan = "Omni: Entertainment at your fingertips."
+ name_span = "corp_label_omni_tv"
+ company_color = COLOR_CORP_OMNI_TV
+
+/datum/brand/pentex/otolleys
+ manufacturer = "otolleys"
+ full_name = EVIL_FAST_FOOD_COMPANY
+ slogan = "The family place."
+ name_span = "corp_label_otolleys"
+ company_color = COLOR_CORP_OTOLLEYS
+
+/datum/brand/pentex/black_dog
+ manufacturer = "black_dog"
+ full_name = EVIL_TTRPG_COMPANY
+ slogan = "Bring some Shadow to your table."
+ name_span = "corp_label_black_dog"
+ company_color = COLOR_CORP_BLACK_DOG
+
+/datum/brand/pentex/rainbow
+ manufacturer = "rainbow"
+ full_name = EVIL_PLASTIC_COMPANY
+ slogan = "Materials for the whole spectrum of products."
+ name_span = "corp_label_rainbow"
+ company_color = COLOR_CORP_RAINBOW_INC
+
+/datum/brand/pentex/tellus
+ manufacturer = "tellus"
+ full_name = EVIL_COMPUTER_COMPANY
+ slogan = "Tellus: Virtual worlds you could fall into."
+ name_span = "corp_label_tellus"
+ company_color = COLOR_CORP_TELLUS
+
+/datum/brand/pentex/tellus/sunburst
+ manufacturer = "sunburst"
+ full_name = EVIL_COMPUTER_COMPANY_2
+ slogan = "Computer parts should be sustainable. At Sunburst, they are."
+ render_logo = FALSE
+
+/datum/brand/pentex/vesuvius
+ manufacturer = "vesuvius"
+ full_name = EVIL_PUBLISHING_COMPANY
+ slogan = "Nobody tells a story like Vesuvius."
+ name_span = "corp_label_vesuvius"
+ company_color = COLOR_CORP_VESUVIUS
+
+/datum/brand/pentex/young_and_smith
+ manufacturer = "young_and_smith"
+ full_name = EVIL_FOOD_COMPANY
+ slogan = "Make your grocery trips simpler. Ask for Young and Smith."
+ name_span = "corp_label_young_smith"
+ company_color = COLOR_CORP_YOUNG_SMITH
+
+// EVERTHING ELSE - Pentex subsidiares that are not and have never been in the top 21
+/datum/brand/pentex/endron/easton
+ manufacturer = "easton"
+ full_name = EVIL_ENGINE_COMPANY
+ slogan = "Let Easton Exploratory be your guide on the search for the world's energy."
+ render_logo = FALSE
+
+/datum/brand/pentex/endron/falcon_motors
+ manufacturer = "falcon_motors"
+ full_name = EVIL_CAR_COMPANY
+ slogan = "The smoothest ride is on the wings of a Falcon."
+ render_logo = FALSE
+
+/datum/brand/pentex/endron/egpc // Is this the most niche subsidiary? Probably.
+ manufacturer = "egpc"
+ full_name = EVIL_EGYPTIAN_OIL_COMPANY
+ render_logo = FALSE
+
+/datum/brand/pentex/harold_and_harold/kauket // Nevermind. It's probably this one.
+ manufacturer = "kauket"
+ full_name = EVIL_EGYPTIAN_MINING_COMPANY
+ render_logo = FALSE
+
+/datum/brand/pentex/king/aquaclear
+ manufacturer = "aquaclear"
+ full_name = EVIL_WATERWAY_COMPANY
+ slogan = "Keeping the world flowing."
+ render_logo = FALSE
+
+/datum/brand/pentex/king/dragon_valley
+ manufacturer = "dragon_valley"
+ full_name = EVIL_WINE_COMPANY
+ slogan = "Raid the Dragon's Horde for a night you'll never forget."
+ render_logo = FALSE
+
+/datum/brand/pentex/king/king // Confusing, but meaningful distinction. The actual breweries that make the booze.
+ manufacturer = "king2"
+ full_name = EVIL_BEER_COMPANY
diff --git a/modular_darkpack/modules/company_logos/icons/corp_logos.dmi b/modular_darkpack/modules/company_logos/icons/corp_logos.dmi
new file mode 100644
index 000000000000..079cb0d7199a
Binary files /dev/null and b/modular_darkpack/modules/company_logos/icons/corp_logos.dmi differ
diff --git a/modular_darkpack/modules/company_logos/readme.md b/modular_darkpack/modules/company_logos/readme.md
new file mode 100644
index 000000000000..f007e1e53b94
--- /dev/null
+++ b/modular_darkpack/modules/company_logos/readme.md
@@ -0,0 +1,10 @@
+https://github.com/DarkPack13/SecondCity/pull/491
+
+## \
+
+Module ID: COMPANY_LOGOS
+
+### Credits:
+
+dwinters99
+Drulikar
diff --git a/modular_darkpack/modules/ert/code/items/first_team.dm b/modular_darkpack/modules/ert/code/items/first_team.dm
index f48bc483bc03..6db3421e5cce 100644
--- a/modular_darkpack/modules/ert/code/items/first_team.dm
+++ b/modular_darkpack/modules/ert/code/items/first_team.dm
@@ -19,12 +19,11 @@
inhand_icon_state = null
gender = PLURAL
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
-
+ brand = "pentex"
/obj/item/clothing/shoes/vampire/darkpack_ert/firstteam
name = "\improper First team boots"
desc = "Pitch-black boots with hard, industrial laces."
- icon_state = "ftboots"
armor_type = /datum/armor/shoes_jackboots
//------------GLOVES------------
@@ -35,12 +34,11 @@
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
icon_state = "ftgloves"
undyeable = TRUE
-
+ brand = "pentex"
/obj/item/clothing/gloves/vampire/darkpack_ert/firstteam
name = "\improper First Team gloves"
desc = "Provides protection from the good, the bad and the ugly."
- icon_state = "ftgloves"
body_parts_covered = HANDS
armor_type = /datum/armor/gloves_combat
@@ -52,11 +50,11 @@
inhand_icon_state = null
worn_icon = 'modular_darkpack/modules/ert/icons/worn.dmi'
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
+ brand = "pentex"
/obj/item/clothing/head/vampire/darkpack_ert/firstteam_helmet
name = "\improper First Team helmet"
desc = "A black helmet with two, green-glowing eye-pieces that seem to stare through your soul."
- icon_state = "fthelmet"
armor_type = /datum/armor/first_team
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR
visor_flags_inv = HIDEFACE|HIDESNOUT
@@ -66,7 +64,7 @@
//------------ARMOR------------
/obj/item/clothing/suit/vampire/darkpack_ert
- icon_state = "ftuni"
+ icon_state = "ftarmor"
icon = 'modular_darkpack/modules/ert/icons/clothing.dmi'
worn_icon = 'modular_darkpack/modules/ert/icons/worn.dmi'
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
@@ -79,6 +77,7 @@
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
max_integrity = 250
resistance_flags = NONE
+ brand = "pentex"
/obj/item/clothing/suit/vampire/darkpack_ert/Initialize()
. = ..()
@@ -88,7 +87,6 @@
/obj/item/clothing/suit/vampire/darkpack_ert/firstteam_armor
name = "\improper First Team Armoured Vest"
desc = "A strong looking, armoured-vest with a large '1' engraved onto the breast."
- icon_state = "ftarmor"
inhand_icon_state = null
armor_type = /datum/armor/first_team
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -108,7 +106,7 @@
icon = 'modular_darkpack/modules/ert/icons/clothing.dmi'
worn_icon = 'modular_darkpack/modules/ert/icons/worn.dmi'
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
-
+ brand = "pentex"
/obj/item/clothing/under/vampire/darkpack_ert/Initialize()
. = ..()
@@ -117,13 +115,14 @@
/obj/item/clothing/under/vampire/darkpack_ert/firstteam_uniform
name = "First Team uniform"
desc = "A completely blacked out uniform with a large '1' symbol sewn onto the shoulder-pad."
- icon_state = "ftuni"
armor_type = /datum/armor/clothing_under/security_head_of_security
+ brand = "pentex"
//------------Glasses------------
/obj/item/clothing/glasses/night/thermal
vision_flags = SEE_MOBS
+// brand = "mars" // TODO: implement the rest of the non-top 21 pentex subsids
//------------Weapons------------/obj/item/ammo_casing/vampire/c12gvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
/obj/item/ammo_box/darkpack/c556/bale //DONT EVER PUT THIS IN A MAP
@@ -179,6 +178,7 @@
ONFLOOR_ICON_HELPER('modular_darkpack/modules/ert/icons/onfloor.dmi')
icon_state = "f12"
base_icon_state = "f12"
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/projectile/bullet/darkpack/f12g
name = "12g explosive slug"
@@ -186,6 +186,7 @@
armour_penetration = 50
exposed_wound_bonus = 10
wound_bonus = 5
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/projectile/bullet/darkpack/f12g/on_hit(atom/target, blocked = 0, pierce_hit)
..()
@@ -199,6 +200,7 @@
icon_state = "12box_frag"
ammo_type = /obj/item/ammo_casing/vampire/c12g/f12g
max_ammo = 40
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/ammo_box/magazine/darkpack/px66f
name = "\improper PX66F magazine (5.56mm)"
@@ -212,6 +214,7 @@
caliber = CALIBER_556NATO
max_ammo = 30
multiple_sprites = AMMO_BOX_FULL_EMPTY
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/ammo_box/magazine/darkpack/px249f
name = "\improper PX249F box magazine (5.56mm)"
@@ -225,6 +228,7 @@
caliber = CALIBER_556NATO
max_ammo = 200
multiple_sprites = AMMO_BOX_FULL_EMPTY
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/ammo_box/magazine/internal/px12r
name = "shotgun internal magazine"
@@ -243,14 +247,17 @@
caliber = CALIBER_45
max_ammo = 12
multiple_sprites = AMMO_BOX_FULL_EMPTY
+ brand = "herculean"
/obj/item/ammo_box/magazine/darkpack/mk23/silver
name = "automatic pistol magazine (.45 ACP Silver)"
ammo_type = /obj/item/ammo_casing/vampire/c45acp/silver
+ brand = "herculean"
/obj/item/ammo_box/magazine/darkpack/mk23/hp
name = "automatic pistol magazine (.45 ACP HP)"
ammo_type = /obj/item/ammo_casing/vampire/c45acp/HP
+ brand = "herculean"
/obj/item/gun/ballistic/automatic/pistol/darkpack/mk23_socom
name = "\improper Mark 23 SOCOM Pistol"
@@ -273,6 +280,7 @@
can_suppress = FALSE
can_unsuppress = FALSE
fire_sound = 'modular_darkpack/modules/weapons/sounds/glock.ogg' //Doesnt matter when it's always using the supressed SFX
+ brand = "herculean"
/obj/item/gun/ballistic/automatic/darkpack/px66f //DO NOT DISTRIBUTE IN MAPPING
name = "\improper PX66F Rifle"
@@ -297,6 +305,7 @@
can_suppress = FALSE
fire_sound = 'modular_darkpack/modules/ert/sounds/silenced_rifle.ogg'
masquerade_violating = TRUE
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/gun/ballistic/automatic/darkpack/px66f/Initialize()
. = ..()
@@ -325,7 +334,7 @@
rack_sound = 'modular_darkpack/modules/ert/sounds/cycling.ogg'
inhand_x_dimension = 32
inhand_y_dimension = 32
-
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/gun/ballistic/automatic/l6_saw/darkpack
name = "\improper PX249F Light Machine Gun"
@@ -349,6 +358,7 @@
spread = 6
fire_sound = 'modular_darkpack/modules/ert/sounds/m249fire.ogg'
rack_sound = 'modular_darkpack/modules/ert/sounds/m249rack.ogg'
+// brand = "fullforce" // TODO: implement the rest of the non-top 21 pentex subsids
/obj/item/gun/ballistic/automatic/l6_saw/darkpack/update_icon_state()
. = ..()
diff --git a/modular_darkpack/modules/jobs/code/_departments.dm b/modular_darkpack/modules/jobs/code/_departments.dm
index 8e7ff562f174..bc42706a0805 100644
--- a/modular_darkpack/modules/jobs/code/_departments.dm
+++ b/modular_darkpack/modules/jobs/code/_departments.dm
@@ -128,4 +128,4 @@
department_experience_type = EXP_TYPE_SPIRAL
display_order = 1
label_class = "pentex"
- ui_color = COLOR_ENDRON_GREEN
+ ui_color = COLOR_CORP_ENDRON
diff --git a/modular_zapoc/master_files/readme.md b/modular_zapoc/master_files/readme.md
deleted file mode 100644
index ba8f51c92df9..000000000000
--- a/modular_zapoc/master_files/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-mirrors the file paths of the base repo.
-so modular_zapoc/master_files/code, modular_zapoc/master_files/icons, modular_zapoc/master_files/sounds
diff --git a/modular_zapoc/module_template.md b/modular_zapoc/module_template.md
deleted file mode 100644
index 7670953efb05..000000000000
--- a/modular_zapoc/module_template.md
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-https://github.com/ApocryphaXIII/Apocrypha13/pull/
-
-## \
-
-Module ID:
-
-### Description:
-
-
-
-### TG Proc/File Changes:
-
-- N/A
-
-
-### Modular Overrides:
-
-- N/A
-
-
-### Defines:
-
-- N/A
-
-
-### Included files that are not contained in this module:
-
-- N/A
-
-
-### Credits:
-
-
diff --git a/modular_zapoc/readme.md b/modular_zapoc/readme.md
deleted file mode 100644
index 4b459e2c3393..000000000000
--- a/modular_zapoc/readme.md
+++ /dev/null
@@ -1,393 +0,0 @@
-# The modularization handbook - Nova Sector style, v0.2
-## Note, this has some minor edits to change paths to represent our repo but the core ideas are the same
-
-## Failure to follow this guide will result in your PR being denied.
-
-## Introduction
-
-To develop and maintain a separate codebase is a big task, that many have failed and suffered the consequences of, such as outdated, and messy code.
-It's not necessarily the fault of lack of skill of the people maintaining it, merely the lack of resources and how much continuous effort such an endeavor takes.
-
-One of the solutions for such, is to base our server on a solid codebase, that is primarily maintained by somebody else, in this case tgstation, and insert our content in a modular fashion, while following the general code (but not gameplay) direction of the upstream, mirroring any changes they do for parity.
-
-Git, as a version control system, is very useful, however it is just a very methodical thing, that follows it's many algorithms, that sadly cannot always intelligently resolve certain changes in the code in an unambiguous way, giving us conflicts, that need to be resolved in a manual fashion.
-
-Due to maintainability being one of the main reasons behind our rebase to another codebase, **this protocol will seriously be enforced.**
-A well organized, documented and atomized code saves our maintainers a lot of headache, when being reviewed.
-Don't dump on them the work that you could have done yourself.
-
-This document is meant to be updated and changed, whenever any new exceptions are added onto it. It might be worth it to check, from time to time, whether we didn't define a more unique standardized way of handling some common change.
-
-## Important note - TEST YOUR PULL REQUESTS
-
-You are responsible for the testing of your content. You should not mark a pull request ready for review until you have actually tested it. If you require a separate client for testing, you can use a guest account by logging out of BYOND and connecting to your test server. Test merges are not for bug finding, they are for stress tests where local testing simply doesn't allow for this.
-
-### The nature of conflicts
-
-For example, let's have an original
-
-```byond
-var/something = 1
-```
-
-in the core code, that we decide to change from 1 to 2 on our end,
-
-```diff
-- var/something = 1
-+ var/something = 2 // APOC EDIT CHANGE - ORIGINAL: var/something = 1
-```
-
-but then our upstream introduces a change in their codebase, changing it from 1 to 4
-
-```diff
-- var/something = 1
-+ var/something = 4
-```
-
-As easy of an example as it is, it results in a relatively simple conflict, in the form of
-
-```byond
-var/something = 2 // APOC EDIT CHANGE - ORIGINAL: var/something = 4
-```
-
-where we pick the preferable option manually.
-
-### The solution
-
-That is something that cannot and likely shouldn't be resolved automatically, because it might introduce errors and bugs that will be very hard to track down, not to even bring up more complex examples of conflicts, such as ones that involve changes that add, remove and move lines of code all over the place.
-
-tl;dr it tries its best but ultimately is just a dumb program, therefore, we must ourselves do work to ensure that it can do most of the work, while minimizing the effort spent on manual involvement, in the cases where the conflicts will be inevitable.
-
-Our answer to this is modularization of the code.
-
-**Modularization** means, that most of the changes and additions we do, will be kept in a separate **`modular_zapoc/`** folder, as independent from the core code as possible, and those which absolutely cannot be modularized, will need to be properly marked by comments, specifying where the changes start, where they end, and which feature they are a part of, but more on that in the next section.
-
-## The modularization protocol
-
-Always start by thinking of the theme/purpose of your work. It's oftentimes a good idea to see if there isn't an already existing one, that you should append to.
-
-**If it's a tgcode-specific tweak or bugfix, first course of action should be an attempt to discuss and PR it upstream, instead of needlessly modularizing it here.**
-
-Otherwise, pick a new ID for your module. E.g. `DNA-FEATURE-WINGS` or `XENOARCHEAOLOGY` or `SHUTTLE_TOGGLE` - We will use this in future documentation. It is essentially your module ID. It must be uniform throughout the entire module. All references MUST be exactly the same. This is to allow for easy searching.
-
-And then you'll want to establish your core folder that you'll be working out of which is normally your module ID. E.g. `modular_zapoc/modules/shuttle_toggle`
-
-### Maps
-
-IMPORTANT: MAP CONTRIBUTION GUIDELINES HAVE BEEN UPDATED
-
-When you are adding a new item to the map you MUST follow this procedure:
-Start by deciding how big of a change it is going to be, if it is a small 1 item change, you should use the simple area automapper. If it is an entire room, you should use the template automapper.
-
-We will no longer have \_darkpack map versions.
-
-DO NOT CHANGE TG MAPS, THEY ARE HELD TO THE SAME STANDARD AS ICONS. USE THE ABOVE TO MAKE MAP EDITS.
-
-The automapper uses prebaked templates to override sections of a map using coordinates to plot the starting location. See entries in automapper_config.toml for examples.
-
-The simple area automapper uses datum entries to place down a single item in an area of a map that makes vauge sense.
-
-### Assets: images, sounds, icons and binaries
-
-Git doesn't handle conflicts of binary files well at all, therefore changes to core binary files are absolutely forbidden, unless you have a really _really_ **_really_** good reason to do otherwise.
-
-All assets added by us should be placed into the same modular folder as your code. This means everything is kept inside your module folder, sounds, icons and code files.
-
-- **_Example:_** You're adding a new lavaland mob.
-
- First of all you create your modular folder. E.g. `modular_zapoc/modules/lavalandmob`
-
- And then you'd want to create sub-folders for each component. E.g. `/code` for code and `/sounds` for sound files and `/icons` for any icon files.
-
- After doing this, you'll want to set your references within the code.
-
- ```byond
- /mob/lavaland/newmob
- icon = 'modular_zapoc/modules/lavalandmob/icons/mob.dmi'
- icon_state = "dead_1"
- sound = 'modular_zapoc/modules/lavalandmob/sounds/boom.ogg'
- ```
-
- This ensures your code is fully modular and will make it easier for future edits.
-
-- Other assets, binaries and tools, should usually be handled likewise, depending on the case-by-case context. When in doubt, ask a maintainer or other contributors for tips and suggestions.
-
-- Any additional clothing icon files you add MUST go into the existing files in master_files clothing section.
-
-### The `master_files` Folder
-
-You should always put any modular overrides of icons, sound, code, etc. inside this folder, and it **must** follow the core code folder layout.
-
-Example: `code/modules/mob/living/living.dm` -> `modular_zapoc/master_files/code/modules/mob/living/living.dm`
-
-This is to make it easier to figure out what changed about a base file without having to search through proc definitions.
-
-It also helps prevent modules needlessly overriding the same proc multiple times. More information on these types of edits come later.
-
-### Fully modular portions of your code
-
-This section will be fairly straightforward, however, I will try to go over the basics and give simple examples, as the guide is aimed at new contributors likewise.
-
-The rule of thumb is that if you don't absolutely have to, you shouldn't make any changes to core codebase files. With some exceptions that will be mentioned shortly.
-
-In short, most of the modular code will be placed in the subfolders of your main module folder **`modular_zapoc/modules/yourmodule/code/`**, with similar rules as with the assets. Do not mirror core code folder structures inside your modular folder.
-
-For example, `modular_zapoc/modules/xenoarcheaology/code` containing all the code, tools, items and machinery related to it.
-
-Such modules, unless _very_ simple, **need** to have a `readme.md` in their folder, containing the following:
-
-- links to the PRs that implemented this module or made any significant changes to it
-- short description of the module
-- list of files changed in the core code, with a short description of the change, and a list of changes in other modular files that are not part of the same module, that were necessary for this module to function properly
-- (optionally) a bit more elaborative documentation for future-proofing the code, that will be useful further development and maintenance
-- credits
-
-**_Template:_** [Here](module_template.md)
-
-## Modular Overrides (Important!!)
-
-Note, that it is possible to append code in front, or behind a core proc, in a modular fashion, without editing the original proc, through referring the parent proc, using `. = ..()` or `..()`. And likewise, it is possible to add a new var to an existing datum or obj, without editing the core files.
-
-**Note about proc overrides: Just because you can, doesn't mean you should!!**
-
-In general they are a good idea and encouraged whenever it is possible to do so. However this is not a hard rule, and sometimes Nova edits are preferable. Just try to use your common sense about it.
-
-For example: please do not copy paste an entire TG proc into a modular override, make one small change, and then bill it as 'fully modular'. These procs are an absolute nightmare to maintain because once something changes upstream you have to update the overridden proc.
-
-Sometimes you aren't even aware the override exists if it compiles fine and doesn't cause any bugs. This often causes features that were added upstream to be missing here. So yeah. Avoid that. It's okay if something isn't fully modular. Sometimes it's the better choice.
-
-The best candidates for modular proc overrides are ones where you can just tack something on after calling the parent, or weave a parent call cleverly in the middle somewhere to achieve your desired effect.
-
-Performance should also be considered when you are overriding a hot proc (like Life() for example), as each additional call adds overhead. Nova edits are much more performant in those cases. For most procs this won't be something you have to think about, though.
-
-### These modular overrides should be kept in `master_files`, and you should avoid putting them inside modules as much as possible.
-
-To keep it simple, let's assume you wanted to make guns spark when shot, for simulating muzzle flash or whatever other reasons, and you want potentially to use it with all kinds of guns.
-
-You could start, in a modular file, by adding a var.
-
-```byond
-/obj/item/gun
- var/muzzle_flash = TRUE
-```
-
-And it will work just fine. Afterwards, let's say you want to check that var and spawn your sparks after firing a shot.
-Knowing the original proc being called by shooting is
-
-```byond
-/obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
-```
-
-you can define a child proc for it, that will get inserted into the inheritance chain of the related procs (big words, but in simple cases like this, you don't need to worry)
-
-```byond
-/obj/item/gun/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
- . = ..() //. is the default return value, we assign what the parent proc returns to it, as we call it before ours
- if(muzzle_flash)
- spawn_sparks(src) //For simplicity, I assume you've already made a proc for this
-```
-
-And that wraps the basics of it up.
-
-### Non-modular changes to the core code - IMPORTANT
-
-Every once in a while, there comes a time, where editing the core files becomes inevitable.
-
-Please be sure to log these in the module readme.md. Any file changes.
-
-In those cases, we've decided to apply the following convention, with examples:
-
-- **Addition:**
-
- ```byond
- // APOC EDIT ADD START - SHUTTLE_TOGGLE - (Optional Reason/comment)
- var/adminEmergencyNoRecall = FALSE
- var/lastMode = SHUTTLE_IDLE
- var/lastCallTime = 6000
- // APOC EDIT ADD END
- ```
-
-- **Removal:**
-
- ```byond
-
- /* // APOC EDIT REMOVAL START - SHUTTLE_TOGGLE - (Optional Reason/comment)
- for(var/obj/docking_port/stationary/S in stationary)
- if(S.id = id)
- return S
- */ // APOC EDIT REMOVAL END
- WARNING("couldn't find dock with id: [id]")
- ```
-
- And for any removals that are moved to different files*:
- *Please avoid this however, only to be done if there is no other option.
-
- ```byond
- /* // APOC EDIT REMOVAL START - SHUTTLE_TOGGLE - (Moved to modular_zapoc/shuttle_toggle/randomverbs.dm)
- /client/proc/admin_call_shuttle()
- set category = "Admin - Events"
- set name = "Call Shuttle"
-
- if(EMERGENCY_AT_LEAST_DOCKED)
- return
-
- if(!check_rights(R_ADMIN))
- return
-
- var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
- if(confirm != "Yes")
- return
-
- SSshuttle.emergency.request()
- SSblackbox.record_feedback("tally", "admin_verb", 1, "Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- log_admin("[key_name(usr)] admin-called the emergency shuttle.")
- message_admins(span_adminnotice("[key_name_admin(usr)] admin-called the emergency shuttle."))
- return
- */ //APOC EDIT REMOVAL END
- ```
-
-- **Change:**
-
- ```byond
- if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE, SHUTTLE_DISABLED) // APOC EDIT CHANGE - ORIGINAL: if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE)
- ```
- Adding `- ORIGINAL:` is optional but prefered.
-
- Example: Removal/addition combo.
- This is the preferred way of dealing with changes that span more than one line and have varying
- indentation levels.
-
- ```byond
- /* // APOC EDIT REMOVAL START - Adds conditional
- return 1
- */ // APOC EDIT REMOVAL
- // APOC EDIT ADD START - Adds conditional
- if(!isnull(src))
- return 1
- // APOC EDIT ADD END
-
- It makes resolving diffs during merge conflicts far easier this way for us because it makes the
- diffs very clear and straightforward.
- ```
-
-## Exceptional cases of modular code
-
-From every rule, there's exceptions, due to many circumstances. Don't think about it too much.
-
-### Defines
-
-Due to the way byond loads files, it has become necessary to make a different folder for handling our modular defines.
-That folder is **`code/__DEFINES/~darkpack_defines`**, in which you can add them to the existing files, or create those files as necessary.
-
-If you have a define that's used in more than one file, it **must** be declared here.
-
-If you have a define that's used in one file, and won't be used anywhere else, declare it at the top, and `#undef MY_DEFINE` at the bottom of the file. This is to keep context menus clean, and to prevent confusion by those using IDEs with autocomplete.
-
-### Module folder layout
-
-To keep form and ensure most modules are easy to navigate and to keep control of the amount of files and folders being made in the repository, you are required to follow this layout.
-
-Ensure the folder names are exactly as stated.
-
-Top most folder: module_id
-
-**DO NOT COPY THE CORE CODE FILE STRUCTURE IN YOUR MODULE!!**
-
-**Code**: Any .DM files must go in here.
-
-- Good: /modular_zapoc/modules/example_module/code/disease_mob.dm
-- Bad: /modular_zapoc/modules/example_module/code/modules/antagonists/disease/disease_mob.dm
-
-**Icons**: Any .DMI files must go in here.
-
-- Good: /modular_zapoc/modules/example_module/icons/mining_righthand.dmi
-- Bad: /modular_zapoc/modules/example_module/icons/mob/inhands/equipment/mining_righthand.dmi
-
-**Sound**: Any SOUND files must go in here.
-
-- Good: See above.
-- Bad: See above.
-
-The readme should go into the parent folder, module_id.
-
-**DO NOT MIX AND MATCH FILE TYPES IN FOLDERS!**
-
-### Commenting out code - DON'T DO IT
-
-If you are commenting out redundant code in modules, do not comment it out, instead, delete it.
-
-Even if you think someone is going to redo whatever it is you're commenting out, don't, gitblame exists for a reason.
-
-This also applies to files, do not comment out entire files, just delete them instead. This helps us keep down on filebloat and pointless comments.
-
-**This does not apply to non-modular changes.**
-
-## Modular TGUI
-
-TGUI is another exceptional case, since it uses javascript and isn't able to be modular in the same way that DM code is.
-ALL of the tgui files are located in `/tgui/packages/tgui/interfaces` and its subdirectories; there is no specific folder for Nova Sector UIs.
-
-### Modifying upstream files
-
-When modifying upstream TGUI files the same rules apply as modifying upstream DM code, however the grammar for comments may be slightly different.
-
-You can do both `// APOC EDIT` and `/* APOC EDIT */`, though in some cases you may have to use one over the other.
-
-In general try to keep your edit comments on the same line as the change. Preferably inside the JSX tag. e.g:
-
-```js
-
-```
-
-```js
-
-```
-
-```js
-
-```
-
-If that is not possible, you can wrap your edit in curly brackets e.g.
-
-```js
-{
- /* APOC EDIT ADD START */
-}
-someProp="whatever";
-{
- /* APOC EDIT ADD END */
-}
-```
-
-### Creating new TGUI files
-
-**IMPORTANT! When creating a new TGUI file from scratch, please add the following at the very top of the file (line 1):**
-
-```js
-// THIS IS A APOC UI FILE
-```
-
-This way they are easily identifiable as modular TGUI .tsx/.jsx files. You do not have to do anything further, and there will never be any need for a Nova edit comment in a modular TGUI file.
-
-
-
-## Afterword
-
-It might seem like a lot to take in, but if we remain consistent, it will save us a lot of headache in the long run, once we start having to resolve conflicts manually.
-Thanks to a bit more scrupulous documentation, it will be immediately obvious what changes were done and where and by which features, things will be a lot less ambiguous and messy.
-
-Best of luck in your coding. Remember that the community is there for you, if you ever need help.
diff --git a/modular_zapoc/tools/apoc_check_grep.sh b/modular_zapoc/tools/apoc_check_grep.sh
deleted file mode 100644
index 60783dde9de2..000000000000
--- a/modular_zapoc/tools/apoc_check_grep.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-#ANSI Escape Codes for colors to increase contrast of errors
-RED="\033[0;31m"
-GREEN="\033[0;32m"
-BLUE="\033[0;34m"
-NC="\033[0m" # No Color
-
-echo -e "${BLUE}Re-running grep checks, but looking in zapoc_darkpack...${NC}"
-
-# Run the linters again, but modular DarkPack13 code.
-sed "s|code/\*\*/\*\.dm|zapoc_darkpack/\*\*/\*\.dm|g"