diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm index 1226d120..8b7edef6 100644 --- a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm +++ b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm @@ -93,3 +93,20 @@ /datum/reagent/consumable/caloriteblessing/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, type) ..() + + +//BLUEBERRY CHEM - ONLY CHANGES PLAYER'S COLOR AND NOTHING MORE + +/datum/reagent/blueberry_juice + name = "Blueberry Juice" + description = "Non-infectious. Hopefully." + reagent_state = LIQUID + color = "#0004ff" + var/list/random_color_list = list("#0058db","#5d00c7","#0004ff","#0057e7") + taste_description = "blueberry pie" + var/no_mob_color = FALSE + +/datum/reagent/blueberry_juice/on_mob_life(mob/living/carbon/M) + if(!no_mob_color) + M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) + ..() diff --git a/GainStation13/code/modules/vending/mealdor.dm b/GainStation13/code/modules/vending/mealdor.dm index 4973fc1c..3c050243 100644 --- a/GainStation13/code/modules/vending/mealdor.dm +++ b/GainStation13/code/modules/vending/mealdor.dm @@ -42,10 +42,11 @@ /obj/item/reagent_containers/food/snacks/salad = 20, /obj/item/reagent_containers/food/snacks/salad/hellcobb = 10, /obj/item/clothing/under/cowkini = 5, + /obj/item/reagent_containers/food/snacks/blueberry_gum = 5 ) premium = list( - /obj/item/reagent_containers/food/drinks/soda_cans/air = 1, - /obj/item/reagent_containers/food/snacks/donut/chaos = 2 + /obj/item/reagent_containers/food/drinks/soda_cans/air = 3, + /obj/item/reagent_containers/food/snacks/donut/chaos = 3 ) refill_canister = /obj/item/vending_refill/mealdor diff --git a/GainStation13/code/obj/items/minor_items.dm b/GainStation13/code/obj/items/minor_items.dm index 7a8da914..9a4b6122 100644 --- a/GainStation13/code/obj/items/minor_items.dm +++ b/GainStation13/code/obj/items/minor_items.dm @@ -1,13 +1,60 @@ -/////GS13 - miscellanous items +/////GS13 - miscellanous items. If it's a small item, a container or something +/////then it should land here, instead of making a seperate .dm file + +//fatoray research scraps (maintloot) /obj/item/trash/fatoray_scrap1 name = "raygun scraps" - icon = 'GainStation13/icons/obj/fatoray_scrap.dmi' + icon = 'GainStation13/icons/obj/fatoray.dmi' icon_state = "fatoray_scrap1" desc = "Small parts that seemingly once belonged to some sort of a raygun." /obj/item/trash/fatoray_scrap2 name = "raygun scraps" - icon = 'GainStation13/icons/obj/fatoray_scrap.dmi' + icon = 'GainStation13/icons/obj/fatoray.dmi' icon_state = "fatoray_scrap2" desc = "Small parts that seemingly once belonged to some sort of a raygun." + +// GS13 fatty liquid beakers defs, for admin stuff and mapping junk + +/obj/item/reagent_containers/glass/beaker/lipoifier + list_reagents = list(/datum/reagent/consumable/lipoifier = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/reagent/consumable/cornoil = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/reagent/blueberry_juice = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/chemical_reaction/fizulphite = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/chemical_reaction/extilphite = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/reagent/consumable/caloriteblessing = 50) + +/obj/item/reagent_containers/glass/beaker/cornoil + list_reagents = list(/datum/reagent/consumable/flatulose = 50) + +//blueberry gum snack + +/obj/item/reagent_containers/food/snacks/blueberry_gum + name = "blueberry gum" + icon = 'GainStation13/icons/obj/gum.dmi' + icon_state = "gum_wrapped" + desc = "Doesn't cause anything more than some discoloration... probably." + trash = /obj/item/trash/blueberry_gum + list_reagents = list(/datum/reagent/blueberry_juice = 0.5) + filling_color = "#001aff" + tastes = list("blueberry gum" = 1) + foodtype = FRUIT + price = 5 + +//blueberry gum trash + +/obj/item/trash/blueberry_gum + name = "chewed gum" + icon = 'GainStation13/icons/obj/gum.dmi' + icon_state = "gum_chewed" diff --git a/GainStation13/code/obj/structure/calorite_doors.dm b/GainStation13/code/obj/structure/calorite_doors.dm new file mode 100644 index 00000000..0d0602ff --- /dev/null +++ b/GainStation13/code/obj/structure/calorite_doors.dm @@ -0,0 +1,92 @@ + + +/obj/structure/mineral_door/calorite //GS13 + name = "calorite door" + icon = 'GainStation13/icons/obj/structure/calorite_door.dmi' + icon_state = "calorite" + sheetType = /obj/item/stack/sheet/mineral/calorite + max_integrity = 200 + light_range = 1 + var/fatten = FALSE // whether player will be fattened + var/fatten_delay = 1 // ticks per periodic loop + var/fat_to_add = 2 // fatness per tick stunned + var/stuck = FALSE // whether player is stuck + var/stuck_delay = 0 // set in proc/Fatten + var/blocked = FALSE // whether door is blocked + +// override /obj/structure/mineral_door/proc/Open() +/obj/structure/mineral_door/calorite/Open() //GS13 + isSwitchingStates = 1 + playsound(src, openSound, 100, 1) + set_opacity(FALSE) + flick("[initial_state]opening",src) + sleep(10) + density = FALSE + state = 1 + air_update_turf(1) + update_icon() + isSwitchingStates = 0 + + if(close_delay != -1) + addtimer(CALLBACK(src, .proc/Close), close_delay) + + // start periodic loop + stuck = FALSE + addtimer(CALLBACK(src, .proc/Fatten), fatten_delay) + +/obj/structure/mineral_door/calorite/proc/Fatten() //GS13 + if(state == 1) // door must be open + // check periodically + addtimer(CALLBACK(src, .proc/Fatten), fatten_delay) + // check for mobs in open door + var/turf/T = get_turf(src) + blocked = FALSE + for(var/mob/living/carbon/M in T) + blocked = TRUE + // determine if mob should get stuck and be fattened + if(M.fatness >= FATNESS_LEVEL_BARELYMOBILE) + fatten = TRUE + if (!stuck) + stuck_delay = 120 + M.visible_message( + "[M] gets stuck in the doorway!", + "You feel yourself get stuck in the doorway!") + else if(M.fatness >= FATNESS_LEVEL_MORBIDLY_OBESE) + fatten = TRUE + if (!stuck) + stuck_delay = 50 + M.visible_message( + "[M] barely squeezes through the doorway!", + "You feel your sides barely squeeze through the doorway!") + else if(M.fatness >= FATNESS_LEVEL_FATTER) + fatten = TRUE + if (!stuck) + stuck_delay = 15 + M.visible_message( + "[M]'s sides briefly smush against the doorway.", + "You feel your sides smush against the doorway!.") + else if(M.fatness >= FATNESS_LEVEL_FAT) + fatten = TRUE + if (!stuck) + stuck_delay = 5 + M.visible_message( + "[M]'s sides briefly brush against the doorway.", + "You feel your sides briefly brush against the doorway!") + else + fatten = FALSE + stuck = FALSE + stuck_delay = 0 + + if (fatten) // get stuck + if (!stuck) + M.Stun(stuck_delay/2) // give player time to escape + stuck = TRUE + if (stuck_delay > 0) // wait for stun to end + stuck_delay = stuck_delay - fatten_delay + if (stuck_delay <= 0) + stuck_delay = 0 + // gain weight while stuck + M.adjust_fatness(fat_to_add, FATTENING_TYPE_ITEM) + + if (!blocked) + stuck = FALSE // ready to go again diff --git a/GainStation13/code/obj/weapons/fatoray.dm b/GainStation13/code/obj/weapons/fatoray.dm index 8876532c..ff931d0c 100644 --- a/GainStation13/code/obj/weapons/fatoray.dm +++ b/GainStation13/code/obj/weapons/fatoray.dm @@ -31,7 +31,7 @@ light_range = 2 light_color = LIGHT_COLOR_ORANGE ///How much fat is added to the target mob? - var/fat_added = 50 //Around 12.5 pounds per hit. + var/fat_added = 100 ////// Fatoray - cannon variant, strong but can be charged @@ -75,7 +75,7 @@ desc = "An energy gun that fattens up anyone it hits. This version is considerably weaker than its original counterpart, the technology behind it seemingly still not perfected." icon = 'GainStation13/icons/obj/fatoray.dmi' icon_state = "fatoray_weak" - pin = null + pin = /obj/item/firing_pin ammo_type = list(/obj/item/ammo_casing/energy/fattening/weak) /obj/item/ammo_casing/energy/fattening/weak @@ -89,7 +89,7 @@ icon = 'GainStation13/icons/obj/fatoray.dmi' icon_state = "ray" ///How much fat is added to the target mob? - fat_added = 20 + fat_added = 50 /////////////////////////////////////////////////// @@ -102,7 +102,7 @@ can_charge = 0 recoil = 3 slowdown = 1 - pin = null + pin = /obj/item/firing_pin // charge_sections = 3 weapon_weight = WEAPON_HEAVY ammo_type = list(/obj/item/ammo_casing/energy/fattening/cannon_weak) @@ -110,7 +110,7 @@ /obj/item/ammo_casing/energy/fattening/cannon_weak name = "one-shot fattening weapon lens" select_name = "fatten" - e_cost = 300 + e_cost = 200 projectile_type = /obj/item/projectile/energy/fattening/cannon_weak /obj/item/projectile/energy/fattening/cannon_weak diff --git a/GainStation13/icons/obj/fatoray.dmi b/GainStation13/icons/obj/fatoray.dmi index fb45d0ba..0e59d334 100644 Binary files a/GainStation13/icons/obj/fatoray.dmi and b/GainStation13/icons/obj/fatoray.dmi differ diff --git a/GainStation13/icons/obj/fatoray_scrap.dmi b/GainStation13/icons/obj/fatoray_scrap.dmi deleted file mode 100644 index efde51f3..00000000 Binary files a/GainStation13/icons/obj/fatoray_scrap.dmi and /dev/null differ diff --git a/GainStation13/icons/obj/sugarland/unusualtentical.dmi b/GainStation13/icons/obj/mobs/unusualtentical.dmi similarity index 100% rename from GainStation13/icons/obj/sugarland/unusualtentical.dmi rename to GainStation13/icons/obj/mobs/unusualtentical.dmi diff --git a/GainStation13/icons/obj/structure/calorite_door.dmi b/GainStation13/icons/obj/structure/calorite_door.dmi new file mode 100644 index 00000000..21d3892c Binary files /dev/null and b/GainStation13/icons/obj/structure/calorite_door.dmi differ diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index dd45f3d4..d5820d52 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -290,13 +290,14 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \ sheettype = "calorite" materials = list(MAT_CALORITE=MINERAL_MATERIAL_AMOUNT) novariants = TRUE - grind_results = list(/datum/reagent/consumable/lipoifier = 5) + grind_results = list(/datum/reagent/consumable/lipoifier = 3) point_value = 40 merge_type = /obj/item/stack/sheet/mineral/calorite GLOBAL_LIST_INIT(calorite_recipes, list ( \ - new/datum/stack_recipe("calorite tile", /obj/item/stack/tile/mineral/calorite, 1, 4, 20), \ - new/datum/stack_recipe("Fatty Statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1), + new/datum/stack_recipe("Calorite tile", /obj/item/stack/tile/mineral/calorite, 1, 4, 20), \ + new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1), + new/datum/stack_recipe("Calorite doors", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1), )) /obj/item/stack/sheet/mineral/calorite/Initialize(mapload, new_amount, merge = TRUE) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 69f21035..ad4dd87a 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -173,7 +173,7 @@ initial_gas_mix = LAVALAND_DEFAULT_ATMOS defer_change = 1 mineralSpawnChanceList = list( - /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, + /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/calorite = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 26e8f34b..0ef733d0 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -275,7 +275,7 @@ export_types = list(/obj/structure/statue/bananium/clown) /datum/export/large/fattystatue //GS13 - cost = 2000 + cost = 1500 unit_name = "Fatty statue" export_types = list(/obj/structure/statue/calorite/fatty) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index cff9bad7..b8a14a9d 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -122,9 +122,11 @@ LateChoices() return - if(client.prefs.real_name in client.pastcharacters) //if character has been spawned before - to_chat(usr, "You have played that character before this round, please select a new one!") - return + // if(client.prefs.real_name in client.pastcharacters) //if character has been spawned before + // to_chat(usr, "You have played that character before this round, please select a new one!") + // return + + //GS13 - commented it out to allow players to rejoin if(SSticker.queued_players.len || (relevant_cap && living_player_count() >= relevant_cap && !(ckey(key) in GLOB.admin_datums))) to_chat(usr, "[CONFIG_GET(string/hard_popcap_message)]") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index ab20dc2d..2133535c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -451,10 +451,12 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA //if they didnt join as a observer, add their name to the past character list so they cannot play them again. if(!usr.client.respawn_observing) - var/responserespawn = alert(src,"If you respawn now, you cannot rejoin the game as your current character! Are you sure you want to respawn?","Warning","Yes","No") - if(responserespawn != "Yes") - return - usr.client.pastcharacters += usr.real_name + var/responserespawn = alert(src,"Are you sure you want to respawn?","Warning","Yes","No") + // if(responserespawn != "Yes") + // return + // usr.client.pastcharacters += usr.real_name + + //GS13 - commented out to allow players to rejoin with the same char if(!client) log_game("[key_name(usr)] AM failed due to disconnect.") diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e2468c83..cb38d885 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -254,12 +254,6 @@ /obj/item/reagent_containers/glass/beaker/synthflesh list_reagents = list(/datum/reagent/medicine/synthflesh = 50) -/obj/item/reagent_containers/glass/beaker/lipoifier - list_reagents = list(/datum/reagent/consumable/lipoifier = 50) //GS13 - -/obj/item/reagent_containers/glass/beaker/cornoil - list_reagents = list(/datum/reagent/consumable/cornoil = 50) //GS13 - /obj/item/reagent_containers/glass/bucket name = "bucket" desc = "It's a bucket." diff --git a/tgstation.dme b/tgstation.dme index 8f63a30f..196a60f9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -23,8 +23,9 @@ #define FILE_DIR "GainStation13/icons/obj" #define FILE_DIR "GainStation13/icons/obj/clothing" #define FILE_DIR "GainStation13/icons/obj/lavaland_demone" +#define FILE_DIR "GainStation13/icons/obj/mobs" #define FILE_DIR "GainStation13/icons/obj/spells" -#define FILE_DIR "GainStation13/icons/obj/sugarland" +#define FILE_DIR "GainStation13/icons/obj/structure" #define FILE_DIR "GainStation13/icons/turf" #define FILE_DIR "GainStation13/sound" #define FILE_DIR "GainStation13/sound/voice" @@ -3343,6 +3344,7 @@ #include "GainStation13\code\modules\vending\GBBurrito.dm" #include "GainStation13\code\modules\vending\mealdor.dm" #include "GainStation13\code\obj\items\minor_items.dm" +#include "GainStation13\code\obj\structure\calorite_doors.dm" #include "GainStation13\code\obj\structure\scale.dm" #include "GainStation13\code\obj\weapons\fatoray.dm" #include "hyperstation\code\__DEFINES\economy.dm"