diff --git a/_maps/catwalkstation.json b/_maps/catwalkstation.json index 5c4630f2582b..de4433d48e89 100644 --- a/_maps/catwalkstation.json +++ b/_maps/catwalkstation.json @@ -3,6 +3,7 @@ "map_name": "Catwalk Station", "map_path": "map_files/CatwalkStation", "map_file": "CatwalkStation_2023.dmm", + "exclude_from_ci": true, "shuttles": { "emergency": "emergency_catwalk", "ferry": "ferry_fancy", diff --git a/_maps/deltastation.json b/_maps/deltastation.json index d21ee4eac734..19e874583419 100644 --- a/_maps/deltastation.json +++ b/_maps/deltastation.json @@ -3,6 +3,7 @@ "map_name": "Delta Station", "map_path": "map_files/Deltastation", "map_file": "DeltaStation2.dmm", + "exclude_from_ci": true, "shuttles": { "emergency": "emergency_delta", "ferry": "ferry_fancy", diff --git a/_maps/icebox.json b/_maps/icebox.json index 740a5883174f..9af675409c81 100644 --- a/_maps/icebox.json +++ b/_maps/icebox.json @@ -3,6 +3,7 @@ "map_name": "Ice Box Station", "map_path": "map_files/IceBoxStation", "map_file": "IceBoxStation.dmm", + "exclude_from_ci": true, "space_ruin_levels": 0, "space_empty_levels": 0, "wilderness_levels": 2, diff --git a/_maps/metastation.json b/_maps/metastation.json index a7b2303166d0..a69a8127cf9a 100644 --- a/_maps/metastation.json +++ b/_maps/metastation.json @@ -3,6 +3,7 @@ "map_name": "MetaStation", "map_path": "map_files/MetaStation", "map_file": "MetaStation.dmm", + "exclude_from_ci": true, "shuttles": { "cargo": "cargo_box", "ferry": "ferry_fancy", diff --git a/_maps/nebulastation.json b/_maps/nebulastation.json index 4e872fc0d694..f9984e8e2f61 100644 --- a/_maps/nebulastation.json +++ b/_maps/nebulastation.json @@ -3,6 +3,7 @@ "map_name": "NebulaStation", "map_path": "map_files/NebulaStation", "map_file": "NebulaStation.dmm", + "exclude_from_ci": true, "give_players_hooks": 1, "shuttles": { "cargo": "cargo_nebula", diff --git a/_maps/tramstation.json b/_maps/tramstation.json index f40f4bf8e2dd..7606a8ab21b1 100644 --- a/_maps/tramstation.json +++ b/_maps/tramstation.json @@ -3,6 +3,7 @@ "map_name": "Tramstation", "map_path": "map_files/tramstation", "map_file": "tramstation.dmm", + "exclude_from_ci": true, "give_players_hooks": 1, "shuttles": { "cargo": "cargo_box", diff --git a/_maps/wawastation.json b/_maps/wawastation.json index 096ced1d2701..c4678376a9e4 100644 --- a/_maps/wawastation.json +++ b/_maps/wawastation.json @@ -3,6 +3,7 @@ "map_name": "Wawastation", "map_path": "map_files/wawastation", "map_file": "wawastation.dmm", + "exclude_from_ci": true, "give_players_hooks": 1, "shuttles": { "cargo": "cargo_box", diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 7a32eef0659c..919e80191acb 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -93,6 +93,7 @@ #define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop" #define ORGAN_SLOT_BRAIN_CNS "brain_antistun" #define ORGAN_SLOT_BREATHING_TUBE "breathing_tube" +#define ORGAN_SLOT_BUTT "butt" //MASSMETA ADD (butt_farts) #define ORGAN_SLOT_EARS "ears" #define ORGAN_SLOT_EYES "eye_sight" #define ORGAN_SLOT_HEART "heart" diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 5b14301927e7..814f2631c854 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -142,6 +142,10 @@ DEFINE_BITFIELD(bot_cover_flags, list( #define VIBE_BOT "Vibebot" /// Repairbots #define REPAIR_BOT "Repairbot" +//MASSMETA ADD (butt_farts) +/// Buttbots +#define BUTT_BOT "Buttbot" +//MASSMETA ADD END // General Bot modes // /// Idle diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 244da1dda813..f5583bf4f9ce 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -12,9 +12,12 @@ #define CHANNEL_ELEVATOR 1014 #define CHANNEL_ESCAPEMENU 1013 #define CHANNEL_WEATHER 1012 +//MASSMETA ADD BEGIN (butt_farts) +#define CHANNEL_FART_SOUNDS 1011 // выделяем в отдельную группу, чтобы можно было в префах регулировать звуки "пу" +//MASSMETA ADD END //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED -#define CHANNEL_HIGHEST_AVAILABLE 1011 +#define CHANNEL_HIGHEST_AVAILABLE 1010 //MASSMETA CHANGE (butt_farts) #define MAX_INSTRUMENT_CHANNELS (128 * 6) diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 921d27118b93..2e97003d11f2 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -981,6 +981,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_SETTLER "settler" #define TRAIT_STRONG_STOMACH "strong_stomach" #define TRAIT_VEGETARIAN "trait_vegetarian" +//MASSMETA ADD BEGIN (butt_farts) +//Butt traits for quirks +#define TRAIT_LOUD_ASS "loud_ass" +#define TRAIT_UNSTABLE_ASS "unstable_ass" +#define TRAIT_STABLE_ASS "stable_ass" +//MASSMETA ADD END /// This mob always lands on their feet when they fall, for better or for worse. #define TRAIT_CATLIKE_GRACE "catlike_grace" diff --git a/code/__DEFINES/~DELETE_AFTER_MODULARIZATION.dm b/code/__DEFINES/~DELETE_AFTER_MODULARIZATION.dm deleted file mode 100644 index 930c562ab526..000000000000 --- a/code/__DEFINES/~DELETE_AFTER_MODULARIZATION.dm +++ /dev/null @@ -1,4 +0,0 @@ -#include "..\..\massmeta\modular_meta_defines.dm" - -//DELETE IT THEN YOU DONE - diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index dbd3d951d59c..dd33b7e7a7d2 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -392,7 +392,7 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items /obj/item/instrument/trumpet/spectral = 1, ) = 1, /obj/item/toy/cards/deck/tarot/haunted = 1, - /obj/item/organ/internal/butt/atomic = 1, //MASSMETA EDIT (butts) + /obj/item/organ/internal/butt/atomic = 1, //MASSMETA ADD (butt_farts) big-bada-booom! )) //Maintenance loot spawner pools diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 801f35272c4b..03447be0ef58 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -151,14 +151,14 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, ), /mob = list( - //MASSMETA EDIT BEGIN (butts) + //MASSMETA ADD BEGIN (butt_farts) "TRAIT_LOUD_ASS" = TRAIT_LOUD_ASS, "TRAIT_UNSTABLE_ASS" = TRAIT_UNSTABLE_ASS, "TRAIT_STABLE_ASS" = TRAIT_STABLE_ASS, - //MASSMETA EDIT END - //MASSMETA EDIT BEGIN (hooch_heals_assistants) + //MASSMETA ADD END + //MASSMETA ADD BEGIN (hooch_heals_assistants) "TRAIT_GREYTIDE_METABOLISM" = TRAIT_GREYTIDE_METABOLISM, - //MASSMETA EDIT END + //MASSMETA ADD END "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, "TRAIT_ACT_AS_CULTIST" = TRAIT_ACT_AS_CULTIST, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index c81ee3cd4d57..6cc5f45f0b53 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -32,6 +32,14 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_SPEED_POTIONED" = TRAIT_SPEED_POTIONED, ), /mob = list( + //MASSMETA ADD BEGIN (butt_farts) + "TRAIT_LOUD_ASS" = TRAIT_LOUD_ASS, + "TRAIT_UNSTABLE_ASS" = TRAIT_UNSTABLE_ASS, + "TRAIT_STABLE_ASS" = TRAIT_STABLE_ASS, + //MASSMETA ADD END + //MASSMETA ADD BEGIN (hooch_heals_assistants) + "TRAIT_GREYTIDE_METABOLISM" = TRAIT_GREYTIDE_METABOLISM, + //MASSMETA ADD END "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, "TRAIT_ACT_AS_CULTIST" = TRAIT_ACT_AS_CULTIST, diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index 3483e5b4f2be..171788ade882 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -91,10 +91,10 @@ GLOBAL_LIST_EMPTY(features_by_species) var/obj/item/organ/stomach/mutantstomach = /obj/item/organ/stomach ///Replaces default appendix with a different organ. var/obj/item/organ/appendix/mutantappendix = /obj/item/organ/appendix - //MASSMETA EDIT BEGIN (butts) + //MASSMETA ADD BEGIN (butt_farts) ///Replaces default butt with a different organ var/obj/item/organ/internal/butt/mutantbutt = /obj/item/organ/internal/butt - //MASSMETA EDIT END + //MASSMETA ADD END /// Store body marking defines. See mobs.dm for bitflags var/list/body_markings = list() @@ -272,10 +272,10 @@ GLOBAL_LIST_EMPTY(features_by_species) return mutantliver if(ORGAN_SLOT_STOMACH) return mutantstomach - //MASSMETA EDIT BEGIN (butts) + //MASSMETA ADD BEGIN (butt_farts) if(ORGAN_SLOT_BUTT) return mutantbutt - //MASSMETA EDIT END + //MASSMETA ADD END else // Non-standard organs we might have for(var/obj/item/organ/extra_organ as anything in mutant_organs) @@ -1543,6 +1543,7 @@ GLOBAL_LIST_EMPTY(features_by_species) mut_organs += mutantliver mut_organs += mutantstomach mut_organs += mutantappendix + mut_organs += mutantbutt list_clear_nulls(mut_organs) return mut_organs diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 8c91fee3dc5f..5c9c3ef86c64 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -424,6 +424,12 @@ There are several things that need to be remembered: var/icon_file = 'icons/mob/clothing/belt.dmi' + //MASSMETA ADD BEGIN (heads_on_belts) + // для голов на поясе у нас отдельный файлик со спрайтами + if(istype(worn_item, /obj/item/bodypart/head)) + icon_file = 'modular_meta/tweaks/heads_on_belts/icons/belt.dmi' + //MASSMETA ADD END + var/mutable_appearance/belt_overlay = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = icon_file) var/obj/item/bodypart/chest/my_chest = get_bodypart(BODY_ZONE_CHEST) my_chest?.worn_belt_offset?.apply_offset(belt_overlay) diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index eabb7656cc86..3223ddc343a3 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -36,7 +36,7 @@ mutantlungs = null mutanteyes = /obj/item/organ/eyes/robotic mutantears = /obj/item/organ/ears/cybernetic - mutantbutt = /obj/item/organ/internal/butt/cyber //MASSMETA EDIT (butts) + mutantbutt = /obj/item/organ/internal/butt/cyber //MASSMETA EDIT (butt_farts) species_language_holder = /datum/language_holder/synthetic changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index f6864ac0d4c3..f65b4db33642 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -31,6 +31,7 @@ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | ERT_SPAWN species_cookie = /obj/item/reagent_containers/condiment/milk outfit_important_for_life = /datum/outfit/plasmaman + mutantbutt = /obj/item/organ/internal/butt/plasma //MASSMETA EDIT (butt_farts) species_language_holder = /datum/language_holder/skeleton bodypart_overrides = list( diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index da8c1dadd0b2..d68e588fcb8b 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -33,6 +33,7 @@ //They can technically be in an ERT changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | ERT_SPAWN species_cookie = /obj/item/reagent_containers/condiment/milk + mutantbutt = /obj/item/organ/internal/butt/skeletal //MASSMETA EDIT (butt_farts) species_language_holder = /datum/language_holder/skeleton bodypart_overrides = list( diff --git a/code/modules/research/techweb/nodes/mining_nodes.dm b/code/modules/research/techweb/nodes/mining_nodes.dm index 9fe888ab7ecd..9c0ab9d879d1 100644 --- a/code/modules/research/techweb/nodes/mining_nodes.dm +++ b/code/modules/research/techweb/nodes/mining_nodes.dm @@ -46,7 +46,6 @@ "mod_gps", "mod_visor_meson", "mesons", - "cryptominer", // MASSMETA EDIT: Cryptoshit ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) announce_channels = list(RADIO_CHANNEL_SUPPLY) diff --git a/code/modules/research/techweb/nodes/syndicate_nodes.dm b/code/modules/research/techweb/nodes/syndicate_nodes.dm index d821bd57f69f..7743b9442f82 100644 --- a/code/modules/research/techweb/nodes/syndicate_nodes.dm +++ b/code/modules/research/techweb/nodes/syndicate_nodes.dm @@ -16,7 +16,6 @@ "rapidsyringe", "suppressor", "super_pointy_tape", - "cryptominersyndie", // MASSMETA EDIT: Cryptoshit ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) hidden = TRUE diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 1d68c1b55eab..e8d0f4d440f0 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -8,7 +8,6 @@ body_part = HEAD plaintext_zone = "head" w_class = WEIGHT_CLASS_BULKY //Quite a hefty load - slot_flags = ITEM_SLOT_BELT // MASSMETA EDIT: Nas'hrah moment slowdown = 1 //Balancing measure throw_range = 2 //No head bowling px_x = 0 @@ -140,6 +139,10 @@ if(!(locate(/obj/item/organ/tongue) in src)) . += span_info("[real_name]'s tongue has been removed.") + //MASSMETA ADD BEGIN (heads_on_belts) + if(istype(src, /obj/item/bodypart/head)) + . += span_info("You can wear it on you belt.") + //MASSMETA ADD END /obj/item/bodypart/head/can_dismember(obj/item/item) if (!can_dismember) diff --git a/code/modules/unit_tests/worn_icons.dm b/code/modules/unit_tests/worn_icons.dm index 38acff5efd9d..ae9eb30068b2 100644 --- a/code/modules/unit_tests/worn_icons.dm +++ b/code/modules/unit_tests/worn_icons.dm @@ -4,7 +4,7 @@ /// additional_icon_location is for downstream modularity support for finding missing sprites in additonal DMI file locations. /// Make sure this location is also present in tools/deploy.sh /// If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well. - var/additional_icon_location = null + var/additional_icon_location = "modular_meta/features/heads_on_belts/icons/" //MASSMETA CHANGE (heads_on_belts) этого требуют тесты /datum/unit_test/worn_icons/proc/generate_possible_icon_states_list(directory_path) if(!directory_path) diff --git a/icons/map_icons/items/_item.dmi b/icons/map_icons/items/_item.dmi index c81bfa7d4f4c..2cfda5253ff7 100644 Binary files a/icons/map_icons/items/_item.dmi and b/icons/map_icons/items/_item.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 37728d4eab0a..c3fd8e02a05b 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -99,7 +99,7 @@ window "mainwindow" //MASSMETA EDIT BEGIN (better_ui) //icon = 'icons\\ui\\common\\tg_32.png' - icon = 'modular_meta\\features\\better_ui\\icons\\massmeta_64.png' + icon = 'modular_meta\\tweaks\\better_ui\\icons\\massmeta_64.png' //MASSMETA EDIT END macro = "default" menu = "menu" diff --git a/massmeta/icons/obj/butts.dmi b/massmeta/icons/obj/butts.dmi deleted file mode 100644 index 58b6ba739317..000000000000 Binary files a/massmeta/icons/obj/butts.dmi and /dev/null differ diff --git a/massmeta/modular_meta_defines.dm b/massmeta/modular_meta_defines.dm deleted file mode 100644 index e2e4a0f1560f..000000000000 --- a/massmeta/modular_meta_defines.dm +++ /dev/null @@ -1,9 +0,0 @@ -/* - * На этот файл идёт переадресация из code/__DEFINES/~meta_defines_include.dm - * - * Все файлы должны быть в алфавитном порядке - */ - -// BEGIN_INCLUDE -#include "~meta_defines\butt_furrt.dm" -// END_INCLUDE diff --git a/massmeta/modular_meta_features.dm b/massmeta/modular_meta_features.dm index 3027bcd1b0ae..26b8c3f436a6 100644 --- a/massmeta/modular_meta_features.dm +++ b/massmeta/modular_meta_features.dm @@ -13,23 +13,8 @@ //master files (unsorted, TODO: need modularization) -#include "code\modules\mob\living\carbon\human\emote.dm" -#include "code\datums\components\crafting\makeshift.dm" -#include "code\game\objects\items\devices\radio\radio.dm" -#include "code\game\objects\items\storage\belt.dm" -#include "code\game\objects\items\tools\crowbar.dm" -#include "code\game\objects\items\tools\kitchen.dm" -#include "code\game\objects\items\tools\multitool.dm" -#include "code\game\objects\items\tools\screwdriver.dm" -#include "code\game\objects\items\tools\weldingtool.dm" -#include "code\game\objects\items\tools\wirecutters.dm" -#include "code\game\objects\items\tools\wrench.dm" #include "code\obj\items\clothing\belt.dm" #include "code\datums\components\crafting\weapon_ammo.dm" #include "code\modules\ammunition\ballistic\shotgun.dm" #include "code\modules\projectiles\projectile\bullets\shotgun.dm" #include "code\modules\map_vote.dm" - -//buts -#include "code\modules\surgery\organs\internal\butts\butts.dm" -#include "code\modules\surgery\organs\internal\butts\butts_init.dm" diff --git a/massmeta/~meta_defines/butt_furrt.dm b/massmeta/~meta_defines/butt_furrt.dm deleted file mode 100644 index e979285345c1..000000000000 --- a/massmeta/~meta_defines/butt_furrt.dm +++ /dev/null @@ -1,13 +0,0 @@ - -#define CHANNEL_MOB_SOUNDS 1009 - -//Butt organ -#define ORGAN_SLOT_BUTT "butt" - -///Butt bots -#define BUTT_BOT "Buttbot" - -//Butt traits -#define TRAIT_LOUD_ASS "loud_ass" -#define TRAIT_UNSTABLE_ASS "unstable_ass" -#define TRAIT_STABLE_ASS "stable_ass" diff --git a/massmeta/~meta_defines/readme.md b/massmeta/~meta_defines/readme.md deleted file mode 100644 index f4d6da596be1..000000000000 --- a/massmeta/~meta_defines/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -## Тут лежат все наши Новые Defines, что мы определили в нашем модуле, они все добавлены в файле: - -**`massmeta/modular_meta_defines.dm`** diff --git a/modular_meta/__modpack/assets_modpacks.dm b/modular_meta/__modpack/assets_modpacks.dm index f722c298f701..1f014e80a9b8 100644 --- a/modular_meta/__modpack/assets_modpacks.dm +++ b/modular_meta/__modpack/assets_modpacks.dm @@ -4,18 +4,18 @@ name = "modpacks" /datum/asset/spritesheet_batched/modpacks/create_spritesheets() - insert_all_icons("modpack", MODPACKS_SET) // catch all modpack's previews which are pulling icons from preview.dmi files - var/icon_placeholder = "default" + // not from .png due of special work insert_icon() with uni_icon() for(var/datum/modpack/this_modpack as anything in subtypesof(/datum/modpack)) if(!this_modpack.visible) continue var/icon = initial(this_modpack.icon) - var/icon_state = initial(this_modpack.id) + var/modpack_id = initial(this_modpack.id) + if(icon == MODPACKS_SET) - insert_icon("modpack-[icon_state]", uni_icon(icon, icon_placeholder)) + insert_icon("modpack-[modpack_id]", uni_icon(icon, "no-preview")) else - insert_icon("modpack-[icon_state]", uni_icon(icon, icon_state)) + insert_icon("modpack-[modpack_id]", uni_icon(icon, "preview")) #undef MODPACKS_SET diff --git a/modular_meta/__modpack/mods_icon_placeholder.dmi b/modular_meta/__modpack/mods_icon_placeholder.dmi index aedaa85a4930..e57aa1b5fcd1 100644 Binary files a/modular_meta/__modpack/mods_icon_placeholder.dmi and b/modular_meta/__modpack/mods_icon_placeholder.dmi differ diff --git a/modular_meta/features/additional_circuit/preview.dmi b/modular_meta/features/additional_circuit/preview.dmi index 36fe0779eae1..62c9a9c69804 100644 Binary files a/modular_meta/features/additional_circuit/preview.dmi and b/modular_meta/features/additional_circuit/preview.dmi differ diff --git a/modular_meta/features/antagonists/bloodsuckers/code/objects/bloodsucker_blood_containers.dm b/modular_meta/features/antagonists/bloodsuckers/code/objects/bloodsucker_blood_containers.dm index 3c5a1b0c97cd..4bfbde81f4c6 100644 --- a/modular_meta/features/antagonists/bloodsuckers/code/objects/bloodsucker_blood_containers.dm +++ b/modular_meta/features/antagonists/bloodsuckers/code/objects/bloodsucker_blood_containers.dm @@ -41,7 +41,7 @@ ///Bloodbag of Bloodsucker blood (used by Vassals only) /obj/item/reagent_containers/blood/o_minus/bloodsucker name = "blood pack" - blood_type = /datum/reagent/blood/bloodsucker + blood_type = BLOOD_TYPE_VAMPIRE /obj/item/reagent_containers/blood/o_minus/bloodsucker/examine(mob/user) . = ..() diff --git a/modular_meta/features/antagonists/preview.dmi b/modular_meta/features/antagonists/preview.dmi index 9b3f73e5e9ef..a08a036c2570 100644 Binary files a/modular_meta/features/antagonists/preview.dmi and b/modular_meta/features/antagonists/preview.dmi differ diff --git a/modular_meta/features/antagonists/sinful_demon/code/sins/sloth.dm b/modular_meta/features/antagonists/sinful_demon/code/sins/sloth.dm index 0ed44e64fc3d..722c793a6843 100644 --- a/modular_meta/features/antagonists/sinful_demon/code/sins/sloth.dm +++ b/modular_meta/features/antagonists/sinful_demon/code/sins/sloth.dm @@ -54,6 +54,6 @@ return TRUE /datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/sloth + name = "Sloth Demonic Jaunt" cooldown_time = 30 SECONDS - jaunt_duration = 1 SECONDS diff --git a/modular_meta/features/butt_farts/code/butt_bots.dm b/modular_meta/features/butt_farts/code/butt_bots.dm new file mode 100644 index 000000000000..f02adf5f2ff5 --- /dev/null +++ b/modular_meta/features/butt_farts/code/butt_bots.dm @@ -0,0 +1,102 @@ +/mob/living/basic/bot/buttbot + name = "\improper buttbot" + desc = "butts" + icon = 'modular_meta/features/butt_farts/icons/butts.dmi' + icon_state = "buttbot" + density = FALSE + anchored = FALSE + health = 25 + maxHealth = 25 + bot_type = BUTT_BOT + pass_flags = PASSMOB + var/cooling_down = FALSE + var/butt_probability = 15 + var/listen_probability = 30 + +//Buttbot Production +/obj/item/organ/internal/butt/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/bodypart/arm/left/robot) || istype(I, /obj/item/bodypart/arm/right/robot)) + var/mob/living/basic/bot/buttbot/new_butt = new(get_turf(src)) + qdel(I) + switch(src.type) //A BUTTBOT FOR EVERYONE! + if(/obj/item/organ/internal/butt/atomic) + new_butt.name = "Atomic Buttbot" + new_butt.desc = "Science has gone too far." + new_butt.icon_state = "buttbot_atomic" + if(/obj/item/organ/internal/butt/bluespace) + new_butt.name = "Bluespace Buttbot" + new_butt.desc = "The peak of Nanotrasen design." + new_butt.icon_state = "buttbot_bluespace" + if(/obj/item/organ/internal/butt/clown) + new_butt.name = "Bananium Buttbot" + new_butt.desc = "Didn't you know clown asses were made out of Bananium?" + new_butt.icon_state = "buttbot_clown" + new_butt.AddComponent(/datum/component/slippery, 40) + if(/obj/item/organ/internal/butt/cyber) + new_butt.name = "Cybernetic Buttbot" + new_butt.desc = "LAW ONE: BUTT" + new_butt.icon_state = "buttbot_cyber" + if(/obj/item/organ/internal/butt/iron) + new_butt.name = "Iron Buttbot" + new_butt.desc = "We can rebutt him, we have the technology." + new_butt.icon_state = "buttbot_iron" + if(/obj/item/organ/internal/butt/plasma) + new_butt.name = "Plasma Buttbot" + new_butt.desc = "Safer here than on it's owner." + new_butt.icon_state = "buttbot_plasma" + if(/obj/item/organ/internal/butt/skeletal) + new_butt.name = "Skeletal Buttbot" + new_butt.desc = "Rattle Me Booty!" + new_butt.icon_state = "buttbot_skeleton" + if(/obj/item/organ/internal/butt/xeno) + new_butt.name = "Xenomorph Buttbot" + new_butt.desc = "hiss!" + new_butt.icon_state = "buttbot_xeno" + + playsound(src, pick( + 'modular_meta/features/butt_farts/sound/farts/fart1.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart2.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart3.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart4.ogg', + ), 25 ,use_reverb = TRUE, channel = CHANNEL_FART_SOUNDS) + qdel(src) + +/mob/living/basic/bot/buttbot/emag_act(mob/user) + if(!(bot_access_flags & BOT_COVER_EMAGGED)) + visible_message("[user] swipes a card through the [src]'s crack!", "You swipe a card through the [src]'s crack.") + listen_probability = 75 + butt_probability = 30 + bot_access_flags |= BOT_COVER_EMAGGED + var/turf/butt = get_turf(src) + butt.atmos_spawn_air("miasma=5;TEMP=310.15") + playsound(src, pick( + 'modular_meta/features/butt_farts/sound/farts/fart1.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart2.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart3.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart4.ogg', + ), 100 ,use_reverb = TRUE, channel = CHANNEL_FART_SOUNDS) + +/mob/living/basic/bot/buttbot/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods, message_range) + . = ..() + if(!cooling_down && prob(listen_probability) && ishuman(speaker)) + cooling_down = TRUE + var/list/split_message = splittext(raw_message, " ") + for (var/i in 1 to length(split_message)) + if(prob(butt_probability)) + split_message[i] = pick("butt", "butts") + if((bot_access_flags & BOT_COVER_EMAGGED)) + var/turf/butt = get_turf(src) + butt.atmos_spawn_air("miasma=5;TEMP=310.15") + var/joined_text = jointext(split_message, " ") + if(!findtext(joined_text, "butt")) //We must butt, or else. + cooling_down = FALSE + return + say(joined_text) + playsound(src, pick( + 'modular_meta/features/butt_farts/sound/farts/fart1.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart2.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart3.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart4.ogg', + ), 100 ,use_reverb = TRUE, channel = CHANNEL_FART_SOUNDS) + spawn(20) + cooling_down = FALSE diff --git a/massmeta/code/modules/mob/living/carbon/human/emote.dm b/modular_meta/features/butt_farts/code/butt_emote.dm similarity index 75% rename from massmeta/code/modules/mob/living/carbon/human/emote.dm rename to modular_meta/features/butt_farts/code/butt_emote.dm index 7b5ec27497dc..1e0436f914ee 100644 --- a/massmeta/code/modules/mob/living/carbon/human/emote.dm +++ b/modular_meta/features/butt_farts/code/butt_emote.dm @@ -6,24 +6,24 @@ if(issilicon(user)) user.visible_message("[user] lets out a synthesized fart!", "You let out a synthesized fart!") playsound(user, pick( - 'massmeta/sounds/fartts/rbf1.ogg', - 'massmeta/sounds/fartts/rbf2.ogg', - 'massmeta/sounds/fartts/rbf3.ogg', - 'massmeta/sounds/fartts/rbf4.ogg', - 'massmeta/sounds/fartts/rbf5.ogg', - 'massmeta/sounds/fartts/rbf6.ogg', - 'massmeta/sounds/fartts/rbf7.ogg', - 'massmeta/sounds/fartts/rbf8.ogg', - 'massmeta/sounds/fartts/rbf9.ogg', - 'massmeta/sounds/fartts/rbf10.ogg', - 'massmeta/sounds/fartts/rbf11.ogg', - 'massmeta/sounds/fartts/rbf12.ogg', - 'massmeta/sounds/fartts/rbf13.ogg', - 'massmeta/sounds/fartts/rbf14.ogg', - 'massmeta/sounds/fartts/rbf15.ogg', - 'massmeta/sounds/fartts/rbf16.ogg', - 'massmeta/sounds/fartts/rbf17.ogg', - 'massmeta/sounds/fartts/rbf18.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf1.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf2.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf3.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf4.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf5.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf6.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf7.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf8.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf9.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf10.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf11.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf12.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf13.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf14.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf15.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf16.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf17.ogg', + 'modular_meta/features/butt_farts/sound/farts/rbf18.ogg', ), 50, TRUE) return . = ..() @@ -64,7 +64,7 @@ Person.Paralyze(15) to_chat(Person, "[Person] attempts to fart on the [Holy], uh oh.") playsound(user,'sound/effects/magic/lightningshock.ogg', 50, 1) - playsound(user, 'massmeta/sounds/fartts/dagothgod.ogg', 80) + playsound(user, 'modular_meta/features/butt_farts/sound/farts/dagothgod.ogg', 80) Person.electrocution_animation(15) spawn(15) to_chat(Person,"What a grand and intoxicating innocence. Perish.") @@ -72,7 +72,7 @@ dyn_explosion(Location, 1, 0) return - playsound(ass_holder, "massmeta/sounds/fartts/superfart.ogg", 100, FALSE, pressure_affected = FALSE) + playsound(ass_holder, "modular_meta/features/butt_farts/sound/farts/superfart.ogg", 100, FALSE, pressure_affected = FALSE) spawn(8) Location = get_turf(user) switch(rand(1000)) diff --git a/massmeta/code/modules/surgery/organs/internal/butts/butts_init.dm b/modular_meta/features/butt_farts/code/butt_quirks.dm similarity index 56% rename from massmeta/code/modules/surgery/organs/internal/butts/butts_init.dm rename to modular_meta/features/butt_farts/code/butt_quirks.dm index 362aee5daecc..85c394bcfe94 100644 --- a/massmeta/code/modules/surgery/organs/internal/butts/butts_init.dm +++ b/modular_meta/features/butt_farts/code/butt_quirks.dm @@ -1,25 +1,3 @@ -//Initialize all butts spawn proc(if it can be) here. - -//clown butt -/datum/job/clown/after_spawn(mob/living/spawned, client/player_client) - . = ..() - var/obj/item/organ/internal/butt/butt = spawned.get_organ_slot(ORGAN_SLOT_BUTT) - if(butt) - butt.Remove(spawned, 1) - QDEL_NULL(butt) - butt = new/obj/item/organ/internal/butt/clown - butt.Insert(spawned) - -//heal butt -/mob/living/carbon/regenerate_organs(remove_hazardous = FALSE) - . = ..() - var/obj/item/organ/internal/butt/butt = get_organ_slot(ORGAN_SLOT_BUTT) - if(!butt) - butt = new() - butt.Insert(src) - butt.set_organ_damage(0) - -//Butt quirks /datum/quirk/stable_ass name = "Stable Rear" desc = "Your rear is far more robust than average, falling off less often than usual." diff --git a/massmeta/code/modules/surgery/organs/internal/butts/butts.dm b/modular_meta/features/butt_farts/code/butts.dm similarity index 56% rename from massmeta/code/modules/surgery/organs/internal/butts/butts.dm rename to modular_meta/features/butt_farts/code/butts.dm index 1eada36f3b25..9f72d4dfe0a9 100644 --- a/massmeta/code/modules/surgery/organs/internal/butts/butts.dm +++ b/modular_meta/features/butt_farts/code/butts.dm @@ -1,19 +1,24 @@ /obj/item/organ/internal/butt name = "butt" desc = "extremely treasured body part" - worn_icon = 'massmeta/icons/obj/worn_butts.dmi' //Wearable on the head - icon = 'massmeta/icons/obj/butts.dmi' + worn_icon = 'modular_meta/features/butt_farts/icons/worn_butts.dmi' //Wearable on the head + icon = 'modular_meta/features/butt_farts/icons/butts.dmi' icon_state = "ass" zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_BUTT throw_speed = 1 force = 4 embed_type = /datum/embedding/butt - hitsound = 'massmeta/sounds/fartts/fart1.ogg' + hitsound = 'modular_meta/features/butt_farts/sound/farts/fart1.ogg' body_parts_covered = HEAD slot_flags = ITEM_SLOT_HEAD - var/list/sound_effect = list('massmeta/sounds/fartts/fart1.ogg', 'massmeta/sounds/fartts/fart2.ogg', 'massmeta/sounds/fartts/fart3.ogg', 'massmeta/sounds/fartts/fart4.ogg') - var/atmos_gas = "miasma=0.25;TEMP=310.15" //310.15 is body temperature + var/list/sound_effect = list( + 'modular_meta/features/butt_farts/sound/farts/fart1.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart2.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart3.ogg', + 'modular_meta/features/butt_farts/sound/farts/fart4.ogg' + ) + var/atmos_gas = "miasma=0.25;TEMP=310.15" //310.15 is body temperature (TODO сделать зависимость от core temp) var/fart_instability = 1 //Percent chance to lose your rear each fart. var/cooling_down = FALSE @@ -28,7 +33,12 @@ /obj/item/organ/internal/butt/atomic name = "Atomic Ass" desc = "A highly radioactive and unstable posterior. Anyone with this is a walking war crime." - sound_effect = list("sound/items/geiger/low1.ogg", "sound/items/geiger/low2.ogg", "sound/items/geiger/low3.ogg", "sound/items/geiger/low4.ogg") + sound_effect = list( + "sound/items/geiger/low1.ogg", + "sound/items/geiger/low2.ogg", + "sound/items/geiger/low3.ogg", + "sound/items/geiger/low4.ogg" + ) fart_instability = 5 atmos_gas = "tritium=5;TEMP=600" icon_state = "atomicass" @@ -42,7 +52,7 @@ cooling_down = TRUE user.audible_message("[user] farts.") if(prob(fart_instability)) - playsound(user, "sound/machines/alarm.ogg", 100, FALSE, 50, ignore_walls=TRUE, channel = CHANNEL_MOB_SOUNDS) + playsound(user, "sound/machines/alarm.ogg", 100, FALSE, 50, ignore_walls=TRUE, channel = CHANNEL_FART_SOUNDS) minor_announce("The detonation of a nuclear posterior has been detected in your area. All crew are required to exit the blast radius.", "Nanotrasen Atomics", 0) Person.Paralyze(120) Person.electrocution_animation(120) @@ -51,7 +61,7 @@ dyn_explosion(Location, 20,10) cooling_down = FALSE else - playsound(user, pick(sound_effect), 50, TRUE, channel = CHANNEL_MOB_SOUNDS) + playsound(user, pick(sound_effect), 50, TRUE, channel = CHANNEL_FART_SOUNDS) Location.atmos_spawn_air(atmos_gas) spawn(20) cooling_down = FALSE @@ -71,7 +81,12 @@ name = "Flatulence Simulator" desc = "Designed from the ground up to create advanced humor." icon_state = "roboass" - sound_effect = list('sound/machines/buzz/buzz-sigh.ogg', 'sound/machines/buzz/buzz-two.ogg', 'sound/machines/terminal/terminal_error.ogg', 'sound/items/weapons/ring.ogg') + sound_effect = list( + 'sound/machines/buzz/buzz-sigh.ogg', + 'sound/machines/buzz/buzz-two.ogg', + 'sound/machines/terminal/terminal_error.ogg', + 'sound/items/weapons/ring.ogg' + ) atmos_gas = "co2=0.25;TEMP=310.15" //CLOWN ASS @@ -83,7 +98,7 @@ icon_state = "clownass" sound_effect = list('sound/items/party_horn.ogg', 'sound/items/bikehorn.ogg') -/obj/item/organ/internal/butt/clown/Initialize() +/obj/item/organ/internal/butt/clown/Initialize(mapload) . = ..() AddComponent(/datum/component/slippery, 40) @@ -106,14 +121,14 @@ name = "Skeletal Butt" desc = "You don't understand how this works!" atmos_gas = "o2=0.25;TEMP=310.15" - sound_effect = list("monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg") + sound_effect = list("modular_meta/features/butt_farts/sound/skeleton_laugh.ogg") icon_state = "skeleass" //PLASMAMAN ASS /obj/item/organ/internal/butt/plasma name = "Plasmaman Butt" desc = "You REALLY don't understand how this works!" - sound_effect = list("monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg") + sound_effect = list("modular_meta/features/butt_farts/sound/skeleton_laugh.ogg") fart_instability = 5 atmos_gas = "plasma=0.25;TEMP=310.15" icon_state = "plasmaass" @@ -131,19 +146,19 @@ desc = "Truly, the trophy of champions." icon_state = "xenoass" -//IMMOVABLE ASS +//IMMOVABLE ASS (TODO: сделать как смешной аналог ивента с палкой) /obj/effect/immovablerod/butt name = "immovable butt" desc = "No, really, what the fuck is that?" - icon = 'massmeta/icons/obj/butts.dmi' + icon = 'modular_meta/features/butt_farts/icons/butts.dmi' icon_state = "ass" -/obj/effect/immovablerod/butt/Initialize() +/obj/effect/immovablerod/butt/Initialize(mapload) . = ..() src.SpinAnimation(5, -1) /obj/effect/immovablerod/butt/Bump(atom/clong) - playsound(src,'massmeta/sounds/fartts/fart1.ogg', 100, TRUE, 10, pressure_affected = FALSE) + playsound(src,'modular_meta/features/butt_farts/sound/farts/fart1.ogg', 100, TRUE, 10, pressure_affected = FALSE) ..() //ACTUAL FART PROC @@ -172,7 +187,7 @@ Person.Paralyze(15) Person.visible_message("[Person] attempts to fart on the [Holy], uh oh.","What a grand and intoxicating innocence. Perish.") playsound(user,'sound/effects/magic/lightningshock.ogg', 50, 1) - playsound(user, 'massmeta/sounds/fartts/dagothgod.ogg', 80) + playsound(user, 'modular_meta/features/butt_farts/sound/farts/dagothgod.ogg', 80) Person.electrocution_animation(15) spawn(15) Person.gib() @@ -196,7 +211,7 @@ hit_target = TRUE break if(!hit_target) - user.audible_message("[pick(world.file2list("massmeta/strings/farts.txt"))]", audible_message_flags = list(CHATMESSAGE_EMOTE = TRUE)) + user.audible_message("[pick(world.file2list("modular_meta/features/butt_farts/strings/farts.txt"))]", audible_message_flags = list(CHATMESSAGE_EMOTE = TRUE)) //SOUND HANDLING @@ -222,93 +237,3 @@ spawn(15) cooling_down = FALSE - - -//Buttbot Production -/obj/item/organ/internal/butt/attackby(obj/item/I, mob/living/user) - if(istype(I, /obj/item/bodypart/arm/left/robot) || istype(I, /obj/item/bodypart/arm/right/robot)) - var/mob/living/basic/bot/buttbot/new_butt = new(get_turf(src)) - qdel(I) - switch(src.type) //A BUTTBOT FOR EVERYONE! - if(/obj/item/organ/internal/butt/atomic) - new_butt.name = "Atomic Buttbot" - new_butt.desc = "Science has gone too far." - new_butt.icon_state = "buttbot_atomic" - if(/obj/item/organ/internal/butt/bluespace) - new_butt.name = "Bluespace Buttbot" - new_butt.desc = "The peak of Nanotrasen design." - new_butt.icon_state = "buttbot_bluespace" - if(/obj/item/organ/internal/butt/clown) - new_butt.name = "Bananium Buttbot" - new_butt.desc = "Didn't you know clown asses were made out of Bananium?" - new_butt.icon_state = "buttbot_clown" - new_butt.AddComponent(/datum/component/slippery, 40) - if(/obj/item/organ/internal/butt/cyber) - new_butt.name = "Cybernetic Buttbot" - new_butt.desc = "LAW ONE: BUTT" - new_butt.icon_state = "buttbot_cyber" - if(/obj/item/organ/internal/butt/iron) - new_butt.name = "Iron Buttbot" - new_butt.desc = "We can rebutt him, we have the technology." - new_butt.icon_state = "buttbot_iron" - if(/obj/item/organ/internal/butt/plasma) - new_butt.name = "Plasma Buttbot" - new_butt.desc = "Safer here than on it's owner." - new_butt.icon_state = "buttbot_plasma" - if(/obj/item/organ/internal/butt/skeletal) - new_butt.name = "Skeletal Buttbot" - new_butt.desc = "Rattle Me Booty!" - new_butt.icon_state = "buttbot_skeleton" - if(/obj/item/organ/internal/butt/xeno) - new_butt.name = "Xenomorph Buttbot" - new_butt.desc = "hiss!" - new_butt.icon_state = "buttbot_xeno" - - playsound(src, pick('massmeta/sounds/fartts/fart1.ogg', 'massmeta/sounds/fartts/fart2.ogg', 'massmeta/sounds/fartts/fart3.ogg', 'massmeta/sounds/fartts/fart4.ogg'), 25 ,use_reverb = TRUE, channel = CHANNEL_MOB_SOUNDS) - qdel(src) - -/mob/living/basic/bot/buttbot - name = "\improper buttbot" - desc = "butts" - icon = 'massmeta/icons/obj/butts.dmi' - icon_state = "buttbot" - density = FALSE - anchored = FALSE - health = 25 - maxHealth = 25 - bot_type = BUTT_BOT - pass_flags = PASSMOB - var/cooling_down = FALSE - var/butt_probability = 15 - var/listen_probability = 30 - -/mob/living/basic/bot/buttbot/emag_act(mob/user) - if(!(bot_access_flags & BOT_COVER_EMAGGED)) - visible_message("[user] swipes a card through the [src]'s crack!", "You swipe a card through the [src]'s crack.") - listen_probability = 75 - butt_probability = 30 - bot_access_flags |= BOT_COVER_EMAGGED - var/turf/butt = get_turf(src) - butt.atmos_spawn_air("miasma=5;TEMP=310.15") - playsound(src, pick('massmeta/sounds/fartts/fart1.ogg', 'massmeta/sounds/fartts/fart2.ogg', 'massmeta/sounds/fartts/fart3.ogg', 'massmeta/sounds/fartts/fart4.ogg'), 100 ,use_reverb = TRUE) - -/mob/living/basic/bot/buttbot/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods, message_range) - . = ..() - if(!cooling_down && prob(listen_probability) && ishuman(speaker)) - cooling_down = TRUE - var/list/split_message = splittext(raw_message, " ") - for (var/i in 1 to length(split_message)) - if(prob(butt_probability)) - split_message[i] = pick("butt", "butts") - if((bot_access_flags & BOT_COVER_EMAGGED)) - var/turf/butt = get_turf(src) - butt.atmos_spawn_air("miasma=5;TEMP=310.15") - var/joined_text = jointext(split_message, " ") - if(!findtext(joined_text, "butt")) //We must butt, or else. - cooling_down = FALSE - return - say(joined_text) - playsound(src, pick('massmeta/sounds/fartts/fart1.ogg', 'massmeta/sounds/fartts/fart2.ogg', 'massmeta/sounds/fartts/fart3.ogg', 'massmeta/sounds/fartts/fart4.ogg'), 100 ,use_reverb = TRUE) - spawn(20) - cooling_down = FALSE - diff --git a/modular_meta/features/butt_farts/code/butts_init.dm b/modular_meta/features/butt_farts/code/butts_init.dm new file mode 100644 index 000000000000..af0412266913 --- /dev/null +++ b/modular_meta/features/butt_farts/code/butts_init.dm @@ -0,0 +1,20 @@ +//Initialize all butts spawn proc(if it can be) here. + +//clown butt +/datum/job/clown/after_spawn(mob/living/spawned, client/player_client) + . = ..() + var/obj/item/organ/internal/butt/butt = spawned.get_organ_slot(ORGAN_SLOT_BUTT) + if(butt) + butt.Remove(spawned, 1) + QDEL_NULL(butt) + butt = new/obj/item/organ/internal/butt/clown + butt.Insert(spawned) + +//heal butt +/mob/living/carbon/regenerate_organs(remove_hazardous = FALSE) + . = ..() + var/obj/item/organ/internal/butt/butt = get_organ_slot(ORGAN_SLOT_BUTT) + if(!butt) + butt = new() + butt.Insert(src) + butt.set_organ_damage(0) diff --git a/modular_meta/features/butt_farts/icons/butts.dmi b/modular_meta/features/butt_farts/icons/butts.dmi new file mode 100644 index 000000000000..3f416895f127 Binary files /dev/null and b/modular_meta/features/butt_farts/icons/butts.dmi differ diff --git a/massmeta/icons/obj/worn_butts.dmi b/modular_meta/features/butt_farts/icons/worn_butts.dmi similarity index 100% rename from massmeta/icons/obj/worn_butts.dmi rename to modular_meta/features/butt_farts/icons/worn_butts.dmi diff --git a/modular_meta/features/butt_farts/includes.dm b/modular_meta/features/butt_farts/includes.dm new file mode 100644 index 000000000000..54fbb053e40a --- /dev/null +++ b/modular_meta/features/butt_farts/includes.dm @@ -0,0 +1,13 @@ +#include "code\butt_bots.dm" +#include "code\butt_emote.dm" +#include "code\butt_quirks.dm" +#include "code\butts.dm" +#include "code\butts_init.dm" + +/datum/modpack/butt_farts + id = "butt_farts" + icon = 'modular_meta/features/butt_farts/preview.dmi' + name = "Жепки" + group = "Features" + desc = "Пук пук?" + author = "Xackii" diff --git a/modular_meta/features/butt_farts/preview.dmi b/modular_meta/features/butt_farts/preview.dmi new file mode 100644 index 000000000000..58ecfedab1f4 Binary files /dev/null and b/modular_meta/features/butt_farts/preview.dmi differ diff --git a/massmeta/sounds/fartts/dagothgod.ogg b/modular_meta/features/butt_farts/sound/farts/dagothgod.ogg similarity index 100% rename from massmeta/sounds/fartts/dagothgod.ogg rename to modular_meta/features/butt_farts/sound/farts/dagothgod.ogg diff --git a/massmeta/sounds/fartts/fart1.ogg b/modular_meta/features/butt_farts/sound/farts/fart1.ogg similarity index 100% rename from massmeta/sounds/fartts/fart1.ogg rename to modular_meta/features/butt_farts/sound/farts/fart1.ogg diff --git a/massmeta/sounds/fartts/fart2.ogg b/modular_meta/features/butt_farts/sound/farts/fart2.ogg similarity index 100% rename from massmeta/sounds/fartts/fart2.ogg rename to modular_meta/features/butt_farts/sound/farts/fart2.ogg diff --git a/massmeta/sounds/fartts/fart3.ogg b/modular_meta/features/butt_farts/sound/farts/fart3.ogg similarity index 100% rename from massmeta/sounds/fartts/fart3.ogg rename to modular_meta/features/butt_farts/sound/farts/fart3.ogg diff --git a/massmeta/sounds/fartts/fart4.ogg b/modular_meta/features/butt_farts/sound/farts/fart4.ogg similarity index 100% rename from massmeta/sounds/fartts/fart4.ogg rename to modular_meta/features/butt_farts/sound/farts/fart4.ogg diff --git a/massmeta/sounds/fartts/rbf1.ogg b/modular_meta/features/butt_farts/sound/farts/rbf1.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf1.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf1.ogg diff --git a/massmeta/sounds/fartts/rbf10.ogg b/modular_meta/features/butt_farts/sound/farts/rbf10.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf10.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf10.ogg diff --git a/massmeta/sounds/fartts/rbf11.ogg b/modular_meta/features/butt_farts/sound/farts/rbf11.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf11.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf11.ogg diff --git a/massmeta/sounds/fartts/rbf12.ogg b/modular_meta/features/butt_farts/sound/farts/rbf12.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf12.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf12.ogg diff --git a/massmeta/sounds/fartts/rbf13.ogg b/modular_meta/features/butt_farts/sound/farts/rbf13.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf13.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf13.ogg diff --git a/massmeta/sounds/fartts/rbf14.ogg b/modular_meta/features/butt_farts/sound/farts/rbf14.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf14.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf14.ogg diff --git a/massmeta/sounds/fartts/rbf15.ogg b/modular_meta/features/butt_farts/sound/farts/rbf15.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf15.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf15.ogg diff --git a/massmeta/sounds/fartts/rbf16.ogg b/modular_meta/features/butt_farts/sound/farts/rbf16.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf16.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf16.ogg diff --git a/massmeta/sounds/fartts/rbf17.ogg b/modular_meta/features/butt_farts/sound/farts/rbf17.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf17.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf17.ogg diff --git a/massmeta/sounds/fartts/rbf18.ogg b/modular_meta/features/butt_farts/sound/farts/rbf18.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf18.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf18.ogg diff --git a/massmeta/sounds/fartts/rbf2.ogg b/modular_meta/features/butt_farts/sound/farts/rbf2.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf2.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf2.ogg diff --git a/massmeta/sounds/fartts/rbf3.ogg b/modular_meta/features/butt_farts/sound/farts/rbf3.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf3.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf3.ogg diff --git a/massmeta/sounds/fartts/rbf4.ogg b/modular_meta/features/butt_farts/sound/farts/rbf4.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf4.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf4.ogg diff --git a/massmeta/sounds/fartts/rbf5.ogg b/modular_meta/features/butt_farts/sound/farts/rbf5.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf5.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf5.ogg diff --git a/massmeta/sounds/fartts/rbf6.ogg b/modular_meta/features/butt_farts/sound/farts/rbf6.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf6.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf6.ogg diff --git a/massmeta/sounds/fartts/rbf7.ogg b/modular_meta/features/butt_farts/sound/farts/rbf7.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf7.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf7.ogg diff --git a/massmeta/sounds/fartts/rbf8.ogg b/modular_meta/features/butt_farts/sound/farts/rbf8.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf8.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf8.ogg diff --git a/massmeta/sounds/fartts/rbf9.ogg b/modular_meta/features/butt_farts/sound/farts/rbf9.ogg similarity index 100% rename from massmeta/sounds/fartts/rbf9.ogg rename to modular_meta/features/butt_farts/sound/farts/rbf9.ogg diff --git a/massmeta/sounds/fartts/superfart.ogg b/modular_meta/features/butt_farts/sound/farts/superfart.ogg similarity index 100% rename from massmeta/sounds/fartts/superfart.ogg rename to modular_meta/features/butt_farts/sound/farts/superfart.ogg diff --git a/modular_meta/features/butt_farts/sound/skeleton_laugh.ogg b/modular_meta/features/butt_farts/sound/skeleton_laugh.ogg new file mode 100644 index 000000000000..b6e147904023 Binary files /dev/null and b/modular_meta/features/butt_farts/sound/skeleton_laugh.ogg differ diff --git a/massmeta/strings/farts.txt b/modular_meta/features/butt_farts/strings/farts.txt similarity index 100% rename from massmeta/strings/farts.txt rename to modular_meta/features/butt_farts/strings/farts.txt diff --git a/modular_meta/features/cargo_extended/preview.dmi b/modular_meta/features/cargo_extended/preview.dmi index 385a908d28a9..43f88a069c66 100644 Binary files a/modular_meta/features/cargo_extended/preview.dmi and b/modular_meta/features/cargo_extended/preview.dmi differ diff --git a/modular_meta/features/cheburek_car/preview.dmi b/modular_meta/features/cheburek_car/preview.dmi index ad042b50fd87..ffe06e2372d7 100644 Binary files a/modular_meta/features/cheburek_car/preview.dmi and b/modular_meta/features/cheburek_car/preview.dmi differ diff --git a/modular_meta/features/clown_traitor_sound/preview.dmi b/modular_meta/features/clown_traitor_sound/preview.dmi index 3c7a0a1dfac4..18732fe241f2 100644 Binary files a/modular_meta/features/clown_traitor_sound/preview.dmi and b/modular_meta/features/clown_traitor_sound/preview.dmi differ diff --git a/modular_meta/features/copytech/preview.dmi b/modular_meta/features/copytech/preview.dmi index 00c988f360e2..a36db16cad5e 100644 Binary files a/modular_meta/features/copytech/preview.dmi and b/modular_meta/features/copytech/preview.dmi differ diff --git a/modular_meta/features/deathmatch/preview.dmi b/modular_meta/features/deathmatch/preview.dmi index 6d40c1ff4acf..ec5b3e101631 100644 Binary files a/modular_meta/features/deathmatch/preview.dmi and b/modular_meta/features/deathmatch/preview.dmi differ diff --git a/modular_meta/features/kumiss_beverage/code/kumiss_reagent.dm b/modular_meta/features/kumiss_beverage/code/kumiss_reagent.dm index 5ea67a224936..a35e327bcc0d 100644 --- a/modular_meta/features/kumiss_beverage/code/kumiss_reagent.dm +++ b/modular_meta/features/kumiss_beverage/code/kumiss_reagent.dm @@ -10,7 +10,7 @@ ph = 7 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/cup/glass/bottle/kumiss - var/hymningrn = FALSE + var/hymningrn = 0 /datum/reagent/consumable/kumiss/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() @@ -25,61 +25,20 @@ /datum/reagent/consumable/kumiss/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired) . = ..() - if(hymningrn == FALSE) - hymningrn = TRUE - to_chat(affected_mob, span_warning("Қымыз тым көп іштім деп ойлаймын...")) - to_chat(affected_mob, span_warning("You feel something coming from inside you...")) - sleep(200) - to_chat(affected_mob, span_warning("You can no longer resist!")) - sleep(200) - to_chat(affected_mob, span_warning("You feel the Қазақстан as it absorbs every last bit of Kumiss in you to empower!")) - affected_mob.reagents.remove_reagent(type, 1000 * REM * seconds_per_tick) - sleep(100) - to_chat(affected_mob, span_warning("It works! IT WORKS! Қазақстан IS STRONGER THAN EVER BEFORE! YOU CAN NO LONGER HOLD IT...")) - sleep(20) - // гимн поехал - affected_mob.say("Алтын күн аспаны,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Алтын дән даласы,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Ерліктің дастаны –", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Еліме қарашы!", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Ежелден ер деген,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Даңқымыз шықты ғой,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Намысын бермеген,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Қазағым мықты ғой!", forced = /datum/reagent/consumable/kumiss) - sleep(20) - affected_mob.say("Менің елім, менің елім,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Гүлің болып егілемін,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Жырың болып төгілемін, елім!", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Туған жерім менің — Қазақстаным!", forced = /datum/reagent/consumable/kumiss) - sleep(20) - affected_mob.say("Ұрпаққа жол ашқан,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Кең байтақ жерім бар.", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Бірлігі жарасқан,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Тәуелсіз елім бар.", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Қарсы алған уақытты,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Мәңгілік досыӊдай.", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Біздің ел бақытты,", forced = /datum/reagent/consumable/kumiss) - sleep(2) - affected_mob.say("Біздің ел осындай!", forced = /datum/reagent/consumable/kumiss) - //affected_mob.dust() - sleep(200) - hymningrn = FALSE + // ну че, окумысился? + affected_mob.set_jitter_if_lower(5 SECONDS * REM * seconds_per_tick) + if(SPT_PROB(10, seconds_per_tick)) + var/list/phrase = world.file2list("strings/massmeta/kumiss.txt") + affected_mob.say(pick(phrase), forced = /datum/reagent/consumable/kvass) + if(SPT_PROB(20, seconds_per_tick)) + var/thinking = rand(1,3) + switch(thinking) + if(1) + to_chat(affected_mob, span_warning("Қымыз тым көп іштім деп ойлаймын...")) + if(2) + to_chat(affected_mob, span_warning("You feel the Қазақстан as it absorbs every last bit of Kumiss in you to empower!")) + if(3) + to_chat(affected_mob, span_warning("Қазақстан IS STRONGER THAN EVER BEFORE!")) //Пьём кумысс без админов еее diff --git a/modular_meta/features/makeshift_grenade_trap/preview.dmi b/modular_meta/features/makeshift_grenade_trap/preview.dmi index 5652a5c986eb..abbefbdd67a5 100644 Binary files a/modular_meta/features/makeshift_grenade_trap/preview.dmi and b/modular_meta/features/makeshift_grenade_trap/preview.dmi differ diff --git a/massmeta/code/game/objects/items/storage/belt.dm b/modular_meta/features/makeshift_tools/code/belt.dm similarity index 57% rename from massmeta/code/game/objects/items/storage/belt.dm rename to modular_meta/features/makeshift_tools/code/belt.dm index 88f073f527ce..55ddb5d9d889 100644 --- a/massmeta/code/game/objects/items/storage/belt.dm +++ b/modular_meta/features/makeshift_tools/code/belt.dm @@ -1,10 +1,10 @@ /obj/item/storage/belt/utility/makeshift name = "makeshift toolbelt" desc = "A shoddy holder of tools." - icon = 'massmeta/icons/obj/clothing/belts.dmi' - worn_icon = 'massmeta/icons/mob/clothing/belt.dmi' - lefthand_file = 'massmeta/icons/mob/inhands/equipment/belt_lefthand.dmi' - righthand_file = 'massmeta/icons/mob/inhands/equipment/belt_righthand.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/belts.dmi' + worn_icon = 'modular_meta/features/makeshift_tools/icons/belt.dmi' + lefthand_file = 'modular_meta/features/makeshift_tools/icons/belt_lefthand.dmi' + righthand_file = 'modular_meta/features/makeshift_tools/icons/belt_righthand.dmi' inhand_icon_state = "makeshiftbelt" worn_icon_state = "makeshiftbelt" icon_state = "makeshiftbelt" diff --git a/massmeta/code/game/objects/items/tools/crowbar.dm b/modular_meta/features/makeshift_tools/code/crowbar.dm similarity index 87% rename from massmeta/code/game/objects/items/tools/crowbar.dm rename to modular_meta/features/makeshift_tools/code/crowbar.dm index 2ccd22499dd7..ebaf5fe08a10 100644 --- a/massmeta/code/game/objects/items/tools/crowbar.dm +++ b/modular_meta/features/makeshift_tools/code/crowbar.dm @@ -1,7 +1,7 @@ /obj/item/crowbar/makeshift name = "makeshift crowbar" desc = "A crude, self-wrought crowbar. Heavy." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "crowbar_makeshift" worn_icon_state = "crowbar" force = 12 //same as large crowbar, but bulkier and slower diff --git a/massmeta/code/game/objects/items/tools/kitchen.dm b/modular_meta/features/makeshift_tools/code/kitchen.dm similarity index 85% rename from massmeta/code/game/objects/items/tools/kitchen.dm rename to modular_meta/features/makeshift_tools/code/kitchen.dm index d5f37031f773..dc4887e68810 100644 --- a/massmeta/code/game/objects/items/tools/kitchen.dm +++ b/modular_meta/features/makeshift_tools/code/kitchen.dm @@ -1,7 +1,7 @@ /obj/item/knife/kitchen/makeshift/makeshift name = "makeshift knife" icon_state = "knife_makeshift" - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' desc = "A flimsy, poorly made replica of a classic cooking utensil." force = 8 throwforce = 8 diff --git a/massmeta/code/datums/components/crafting/makeshift.dm b/modular_meta/features/makeshift_tools/code/makeshift.dm similarity index 69% rename from massmeta/code/datums/components/crafting/makeshift.dm rename to modular_meta/features/makeshift_tools/code/makeshift.dm index e3398344d9e1..c6cdbc3f032e 100644 --- a/massmeta/code/datums/components/crafting/makeshift.dm +++ b/modular_meta/features/makeshift_tools/code/makeshift.dm @@ -14,17 +14,21 @@ /datum/crafting_recipe/makeshiftwirecutters name = "Makeshift Wirecutters" - reqs = list(/obj/item/stack/sheet/iron = 2, - /obj/item/stack/cable_coil = 5, - /obj/item/stack/rods = 2) + reqs = list( + /obj/item/stack/sheet/iron = 2, + /obj/item/stack/cable_coil = 5, + /obj/item/stack/rods = 2 + ) result = /obj/item/wirecutters/makeshift time = 15 SECONDS category = CAT_TOOLS /datum/crafting_recipe/makeshiftweldingtool name = "Makeshift Welding Tool" - reqs = list(/obj/item/tank/internals/emergency_oxygen = 1, - /obj/item/assembly/igniter = 1) + reqs = list( + /obj/item/tank/internals/emergency_oxygen = 1, + /obj/item/assembly/igniter = 1 + ) tool_behaviors = list(TOOL_SCREWDRIVER) result = /obj/item/weldingtool/makeshift time = 16 SECONDS @@ -32,10 +36,12 @@ /datum/crafting_recipe/makeshiftmultitool name = "Makeshift Multitool" - reqs = list(/obj/item/assembly/igniter = 1, - /obj/item/assembly/signaler = 1, - /obj/item/stack/sheet/iron = 2, - /obj/item/stack/cable_coil = 10) + reqs = list( + /obj/item/assembly/igniter = 1, + /obj/item/assembly/signaler = 1, + /obj/item/stack/sheet/iron = 2, + /obj/item/stack/cable_coil = 10 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) result = /obj/item/multitool/makeshift time = 16 SECONDS @@ -50,10 +56,12 @@ /datum/crafting_recipe/makeshifttoolbelt name = "Makeshift Toolbelt" - reqs = list(/obj/item/stack/rods = 5, - /obj/item/stack/sheet/iron = 2, - /obj/item/stack/cable_coil = 15, - /obj/item/stack/sheet/cloth = 2) + reqs = list( + /obj/item/stack/rods = 5, + /obj/item/stack/sheet/iron = 2, + /obj/item/stack/cable_coil = 15, + /obj/item/stack/sheet/cloth = 2 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) result = /obj/item/storage/belt/utility/makeshift time = 20 SECONDS @@ -61,18 +69,22 @@ /datum/crafting_recipe/makeshiftknife name = "Makeshift Knife" - reqs = list(/obj/item/stack/rods = 3, - /obj/item/stack/sheet/iron = 1, - /obj/item/stack/cable_coil = 10) + reqs = list( + /obj/item/stack/rods = 3, + /obj/item/stack/sheet/iron = 1, + /obj/item/stack/cable_coil = 10 + ) result = /obj/item/knife/kitchen/makeshift time = 12 SECONDS category = CAT_TOOLS /datum/crafting_recipe/makeshiftradio name = "Makeshift Radio" - reqs = list(/obj/item/assembly/signaler = 1, - /obj/item/radio/headset = 1, - /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/assembly/signaler = 1, + /obj/item/radio/headset = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER) result = /obj/item/radio/off/makeshift time = 12 SECONDS diff --git a/massmeta/code/game/objects/items/tools/multitool.dm b/modular_meta/features/makeshift_tools/code/multitool.dm similarity index 85% rename from massmeta/code/game/objects/items/tools/multitool.dm rename to modular_meta/features/makeshift_tools/code/multitool.dm index 79cd298a988d..e8bf26dcbba9 100644 --- a/massmeta/code/game/objects/items/tools/multitool.dm +++ b/modular_meta/features/makeshift_tools/code/multitool.dm @@ -1,7 +1,7 @@ /obj/item/multitool/makeshift name = "makeshift multitool" desc = "As crappy as it is, its still mostly the same as a standard issue Nanotrasen one." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "multitool_makeshift" toolspeed = 2 diff --git a/massmeta/code/game/objects/items/devices/radio/radio.dm b/modular_meta/features/makeshift_tools/code/radio.dm similarity index 76% rename from massmeta/code/game/objects/items/devices/radio/radio.dm rename to modular_meta/features/makeshift_tools/code/radio.dm index 1246949d9f4b..47747b2e94dc 100644 --- a/massmeta/code/game/objects/items/devices/radio/radio.dm +++ b/modular_meta/features/makeshift_tools/code/radio.dm @@ -1,5 +1,5 @@ /obj/item/radio/off/makeshift // Makeshift SBR, limited use cases but could be useful. - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "radio_makeshift" subspace_switchable = TRUE // Made with a headset, so it can transmit over subspace I guess freqlock = TRUE diff --git a/massmeta/code/game/objects/items/tools/screwdriver.dm b/modular_meta/features/makeshift_tools/code/screwdriver.dm similarity index 85% rename from massmeta/code/game/objects/items/tools/screwdriver.dm rename to modular_meta/features/makeshift_tools/code/screwdriver.dm index ac62ec972ac0..86f6044841f1 100644 --- a/massmeta/code/game/objects/items/tools/screwdriver.dm +++ b/modular_meta/features/makeshift_tools/code/screwdriver.dm @@ -1,7 +1,7 @@ /obj/item/screwdriver/makeshift name = "makeshift screwdriver" desc = "Crude driver of screws. A primitive way to screw things up." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "screwdriver_makeshift" toolspeed = 2 random_color = FALSE diff --git a/massmeta/code/game/objects/items/tools/weldingtool.dm b/modular_meta/features/makeshift_tools/code/weldingtool.dm similarity index 90% rename from massmeta/code/game/objects/items/tools/weldingtool.dm rename to modular_meta/features/makeshift_tools/code/weldingtool.dm index 0b98a1bae50e..22a3d18ba1bb 100644 --- a/massmeta/code/game/objects/items/tools/weldingtool.dm +++ b/modular_meta/features/makeshift_tools/code/weldingtool.dm @@ -1,7 +1,7 @@ /obj/item/weldingtool/makeshift name = "makeshift welding tool" desc = "A MacGyver-style welder." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "welder_makeshift" toolspeed = 2 max_fuel = 10 diff --git a/massmeta/code/game/objects/items/tools/wirecutters.dm b/modular_meta/features/makeshift_tools/code/wirecutters.dm similarity index 84% rename from massmeta/code/game/objects/items/tools/wirecutters.dm rename to modular_meta/features/makeshift_tools/code/wirecutters.dm index 1eca97895c46..1dcbdca71aa9 100644 --- a/massmeta/code/game/objects/items/tools/wirecutters.dm +++ b/modular_meta/features/makeshift_tools/code/wirecutters.dm @@ -1,7 +1,7 @@ /obj/item/wirecutters/makeshift name = "makeshift wirecutters" desc = "Mind your fingers." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "cutters_makeshift" toolspeed = 2 random_color = FALSE diff --git a/massmeta/code/game/objects/items/tools/wrench.dm b/modular_meta/features/makeshift_tools/code/wrench.dm similarity index 85% rename from massmeta/code/game/objects/items/tools/wrench.dm rename to modular_meta/features/makeshift_tools/code/wrench.dm index 0146ee9d2503..c730823d1337 100644 --- a/massmeta/code/game/objects/items/tools/wrench.dm +++ b/modular_meta/features/makeshift_tools/code/wrench.dm @@ -1,7 +1,7 @@ /obj/item/wrench/makeshift name = "makeshift wrench" desc = "A crude, self-wrought wrench with common uses. Can be found in your hand." - icon = 'massmeta/icons/obj/improvised.dmi' + icon = 'modular_meta/features/makeshift_tools/icons/improvised.dmi' icon_state = "wrench_makeshift" toolspeed = 2 diff --git a/massmeta/icons/mob/clothing/belt.dmi b/modular_meta/features/makeshift_tools/icons/belt.dmi similarity index 100% rename from massmeta/icons/mob/clothing/belt.dmi rename to modular_meta/features/makeshift_tools/icons/belt.dmi diff --git a/massmeta/icons/mob/inhands/equipment/belt_lefthand.dmi b/modular_meta/features/makeshift_tools/icons/belt_lefthand.dmi similarity index 100% rename from massmeta/icons/mob/inhands/equipment/belt_lefthand.dmi rename to modular_meta/features/makeshift_tools/icons/belt_lefthand.dmi diff --git a/massmeta/icons/mob/inhands/equipment/belt_righthand.dmi b/modular_meta/features/makeshift_tools/icons/belt_righthand.dmi similarity index 100% rename from massmeta/icons/mob/inhands/equipment/belt_righthand.dmi rename to modular_meta/features/makeshift_tools/icons/belt_righthand.dmi diff --git a/massmeta/icons/obj/clothing/belts.dmi b/modular_meta/features/makeshift_tools/icons/belts.dmi similarity index 100% rename from massmeta/icons/obj/clothing/belts.dmi rename to modular_meta/features/makeshift_tools/icons/belts.dmi diff --git a/massmeta/icons/obj/improvised.dmi b/modular_meta/features/makeshift_tools/icons/improvised.dmi similarity index 100% rename from massmeta/icons/obj/improvised.dmi rename to modular_meta/features/makeshift_tools/icons/improvised.dmi diff --git a/modular_meta/features/makeshift_tools/includes.dm b/modular_meta/features/makeshift_tools/includes.dm new file mode 100644 index 000000000000..1ad4d9509424 --- /dev/null +++ b/modular_meta/features/makeshift_tools/includes.dm @@ -0,0 +1,17 @@ +#include "code\belt.dm" +#include "code\crowbar.dm" +#include "code\kitchen.dm" +#include "code\makeshift.dm" +#include "code\multitool.dm" +#include "code\radio.dm" +#include "code\screwdriver.dm" +#include "code\weldingtool.dm" +#include "code\wirecutters.dm" +#include "code\wrench.dm" + +/datum/modpack/makeshift_tools + id = "makeshift_tools" + name = "Самодельные инструменты" + group = "Features" + desc = "Самодельные инструменты из палок и того самого, дешево сердито, на пару раз." + author = "Homexp13" diff --git a/modular_meta/features/mod_vend/preview.dmi b/modular_meta/features/mod_vend/preview.dmi index 95717f71bf27..0a02079e10db 100644 Binary files a/modular_meta/features/mod_vend/preview.dmi and b/modular_meta/features/mod_vend/preview.dmi differ diff --git a/modular_meta/features/more_cell_interactions/preview.dmi b/modular_meta/features/more_cell_interactions/preview.dmi index 7ea21519e457..46679d92a73c 100644 Binary files a/modular_meta/features/more_cell_interactions/preview.dmi and b/modular_meta/features/more_cell_interactions/preview.dmi differ diff --git a/modular_meta/features/not_enough_medical/preview.dmi b/modular_meta/features/not_enough_medical/preview.dmi index ebffc91e121b..e3205b66b284 100644 Binary files a/modular_meta/features/not_enough_medical/preview.dmi and b/modular_meta/features/not_enough_medical/preview.dmi differ diff --git a/modular_meta/features/parts_tier_5/includes.dm b/modular_meta/features/parts_tier_5/includes.dm index ed1f525e3794..d22b41f99d82 100644 --- a/modular_meta/features/parts_tier_5/includes.dm +++ b/modular_meta/features/parts_tier_5/includes.dm @@ -3,8 +3,8 @@ #include "code\experiment.dm" #include "code\stock_parts.dm" -/datum/modpack/tier5 - id = "tier5" +/datum/modpack/parts_tier_5 + id = "parts_tier_5" icon = 'modular_meta/features/parts_tier_5/preview.dmi' name = "5 уровень" group = "Features" diff --git a/modular_meta/features/parts_tier_5/preview.dmi b/modular_meta/features/parts_tier_5/preview.dmi index dca1b920c52a..f9ebd7e80098 100644 Binary files a/modular_meta/features/parts_tier_5/preview.dmi and b/modular_meta/features/parts_tier_5/preview.dmi differ diff --git a/modular_meta/features/uplink_items/preview.dmi b/modular_meta/features/uplink_items/preview.dmi index 7474ce3e6b9f..62d422d51bf9 100644 Binary files a/modular_meta/features/uplink_items/preview.dmi and b/modular_meta/features/uplink_items/preview.dmi differ diff --git a/modular_meta/features/woodgen/preview.dmi b/modular_meta/features/woodgen/preview.dmi index 8339a1c50a79..db8d6d6d7369 100644 Binary files a/modular_meta/features/woodgen/preview.dmi and b/modular_meta/features/woodgen/preview.dmi differ diff --git a/modular_meta/main_modular_include.dm b/modular_meta/main_modular_include.dm index 03b4bd5653c1..5b8a0cbb1f69 100644 --- a/modular_meta/main_modular_include.dm +++ b/modular_meta/main_modular_include.dm @@ -13,6 +13,7 @@ #include "features\admin\includes.dm" #include "features\ai_things\includes.dm" #include "features\antagonists\includes.dm" +#include "features\butt_farts\includes.dm" #include "features\cheburek_car\includes.dm" #include "features\more_clothes\includes.dm" #include "features\hardsuits\includes.dm" @@ -28,6 +29,7 @@ #include "features\not_enough_medical\includes.dm" #include "features\more_cell_interactions\includes.dm" #include "features\makeshift_grenade_trap\includes.dm" +#include "features\makeshift_tools\includes.dm" #include "features\parts_tier_5\includes.dm" #include "features\copytech\includes.dm" #include "features\cargo_extended\includes.dm" @@ -59,6 +61,7 @@ #include "tweaks\resprite\includes.dm" #include "tweaks\russian_translation\includes.dm" #include "tweaks\gases\includes.dm" +#include "tweaks\heads_on_belts\includes.dm" #include "tweaks\lead_pipe\includes.dm" #include "tweaks\lgbt_removal\includes.dm" #include "tweaks\tagline\includes.dm" diff --git a/modular_meta/tweaks/fonts/preview.dmi b/modular_meta/tweaks/fonts/preview.dmi index 6e9d3f139fbb..37e00fe11dba 100644 Binary files a/modular_meta/tweaks/fonts/preview.dmi and b/modular_meta/tweaks/fonts/preview.dmi differ diff --git a/modular_meta/tweaks/heads_on_belts/code/head_belted.dm b/modular_meta/tweaks/heads_on_belts/code/head_belted.dm new file mode 100644 index 000000000000..f66dd262424d --- /dev/null +++ b/modular_meta/tweaks/heads_on_belts/code/head_belted.dm @@ -0,0 +1,60 @@ +/obj/item/bodypart/head + slot_flags = ITEM_SLOT_BELT + worn_icon_state = "default_human_head" + +/obj/item/bodypart/head/monkey + worn_icon_state = "default_monkey_head" + +/obj/item/bodypart/head/alien + worn_icon_state = "alien_head" + +/obj/item/bodypart/head/larva + worn_icon_state = "larva_head" + +/obj/item/bodypart/head/robot + worn_icon_state = "buildpipe" + +/obj/item/bodypart/head/snail + worn_icon_state = "" + +/obj/item/bodypart/head/abductor + worn_icon_state = "" + +/obj/item/bodypart/head/jelly + worn_icon_state = "" + +/obj/item/bodypart/head/zombie + worn_icon_state = "" + +/obj/item/bodypart/head/pod + worn_icon_state = "" + +/obj/item/bodypart/head/fly + worn_icon_state = "" + +/obj/item/bodypart/head/shadow + worn_icon_state = "" + +/obj/item/bodypart/head/skeleton + worn_icon_state = "" + +/obj/item/bodypart/head/mushroom + worn_icon_state = "" + +/obj/item/bodypart/head/dullahan + worn_icon_state = "" + +/obj/item/bodypart/head/golem + worn_icon_state = "" + +/obj/item/bodypart/head/moth + worn_icon_state = "" + +/obj/item/bodypart/head/lizard + worn_icon_state = "" + +/obj/item/bodypart/head/ethereal + worn_icon_state = "" + +/obj/item/bodypart/head/plasmaman + worn_icon_state = "" diff --git a/modular_meta/tweaks/heads_on_belts/icons/belt.dmi b/modular_meta/tweaks/heads_on_belts/icons/belt.dmi new file mode 100644 index 000000000000..5855e8dbe9b2 Binary files /dev/null and b/modular_meta/tweaks/heads_on_belts/icons/belt.dmi differ diff --git a/modular_meta/tweaks/heads_on_belts/includes.dm b/modular_meta/tweaks/heads_on_belts/includes.dm new file mode 100644 index 000000000000..7a34c94498d3 --- /dev/null +++ b/modular_meta/tweaks/heads_on_belts/includes.dm @@ -0,0 +1,8 @@ +#include "code\head_belted.dm" + +/datum/modpack/heads_on_belts + id = "heads_on_belts" + name = "Nas'hrah moment" + group = "Features" + desc = "Головы можно вешать на пояс. Стильно! Модно! Феар энд Хангерно!" + author = "Sanecman" diff --git a/modular_meta/tweaks/lgbt_removal/includes.dm b/modular_meta/tweaks/lgbt_removal/includes.dm index 3a1eb016bd91..3cb72763ba68 100644 --- a/modular_meta/tweaks/lgbt_removal/includes.dm +++ b/modular_meta/tweaks/lgbt_removal/includes.dm @@ -6,8 +6,8 @@ id = "lgbt_removal" name = "Убираем ЛГБТ контент" group = "Tweaks" - desc = "Заменяем значки на нейтральные (флаги стран). Убираем неопределённый пол (Их и Оно), и убираем выбор тип тела" - author = "Artemchik542 (Код), bee (Спрайты), SS220 (Выбор пола)" + desc = "Заменяем значки на нейтральные (флаги стран)" + author = "Artemchik542 (код), bee (спрайты)" // если вдруг заходите убрать выбор пола на неправильные, то вот пиары (не примены полностью в билде) diff --git a/modular_meta/tweaks/russian_translation/preview.dmi b/modular_meta/tweaks/russian_translation/preview.dmi index d532743e96e5..6bc39caac67c 100644 Binary files a/modular_meta/tweaks/russian_translation/preview.dmi and b/modular_meta/tweaks/russian_translation/preview.dmi differ diff --git a/strings/massmeta/kumiss.txt b/strings/massmeta/kumiss.txt new file mode 100644 index 000000000000..7694ed74a174 --- /dev/null +++ b/strings/massmeta/kumiss.txt @@ -0,0 +1,20 @@ +Алтын күн аспаны +Алтын дән даласы +Ерліктің дастаны +Еліме қарашы! +Ежелден ер деген +Даңқымыз шықты ғой +Намысын бермеген +Қазағым мықты ғой! +Менің елім, менің елім +Гүлің болып егілемін +Жырың болып төгілемін, елім! +Туған жерім менің — Қазақстаным! +Ұрпаққа жол ашқан +Кең байтақ жерім бар +Бірлігі жарасқан +Тәуелсіз елім бар +Қарсы алған уақытты +Мәңгілік досыӊдай +Біздің ел бақытты +Біздің ел осындай! \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 0f20c40f0218..7d4105b64cb2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -275,7 +275,6 @@ #include "code\__DEFINES\wounds.dm" #include "code\__DEFINES\xenobiology.dm" #include "code\__DEFINES\zoom.dm" -#include "code\__DEFINES\~DELETE_AFTER_MODULARIZATION.dm" #include "code\__DEFINES\~meta_defines_include.dm" #include "code\__DEFINES\ai\ai.dm" #include "code\__DEFINES\ai\ai_blackboard.dm"