Merge branch 'evilew:master' into master

This commit is contained in:
Alphas00
2024-09-05 17:59:09 +02:00
committed by GitHub
18 changed files with 3260 additions and 2181 deletions
@@ -155,13 +155,13 @@
/// How much credits do we currently have?
var/credits = 0
/// How many credits are we going to reward per pound gained?
var/credits_per_fatness = 1
var/credits_per_fatness = 0.25
/// A list containing all of the people we've scanned and their maximum weight.
var/list/scanned_people = list()
/// What is the current team number?
var/team_number = 27
/// What is the maximum ammount of credits that can be gained per person?
var/maximum_credits = 900 // A little bit over the fattness for blob.
var/maximum_credits = 1000 // A little bit over the fattness for blob.
/obj/structure/scale/credits/Initialize(mapload)
..()
@@ -191,14 +191,20 @@
var/credits_to_add = min((fatty.fatness * credits_per_fatness), maximum_credits)
var/credits_to_remove = 0
if(scanned_people[fatty])
if(scanned_people[fatty] >= maximum_credits)
return TRUE
credits_to_remove = scanned_people[fatty]
else
scanned_people[fatty] = 0
var/credit_total = max((credits_to_add - credits_to_remove), 0)
if(credit_total > 0)
say("[credit_total] credits have been deposited into the console.")
credits += credit_total
scanned_people[fatty] = max(credit_total, credits_to_remove)
scanned_people[fatty] += credit_total
return TRUE
/obj/machinery/abductor/pad/feeder
@@ -23,6 +23,11 @@
credit_cost = 150
item_to_dispense = /obj/item/autosurgeon/nutripump_turbo
/datum/feeders_den_goodie/nutripump_turbo
name = "Mobility Nanite Core Autosurgeon"
credit_cost = 400
item_to_dispense = /obj/item/autosurgeon/fat_mobility
/datum/feeders_den_goodie/fatbeam_gun
name = "Fatbeam gun"
credit_cost = 400
+38 -5
View File
@@ -25,8 +25,9 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/crew_quarters,
*
* * adjustment_amount - adjusts how much weight is gained or loss. Positive numbers add weight.
* * type_of_fattening - what type of fattening is being used. Look at the traits in fatness.dm for valid options.
* * ignore_rate - do we want to ignore the mob's weight gain/loss rate? This is only here for niche uses.
*/
/mob/living/carbon/proc/adjust_fatness(adjustment_amount, type_of_fattening = FATTENING_TYPE_ITEM)
/mob/living/carbon/proc/adjust_fatness(adjustment_amount, type_of_fattening = FATTENING_TYPE_ITEM, ignore_rate = FALSE)
if(!adjustment_amount || !type_of_fattening)
return FALSE
@@ -35,10 +36,11 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/crew_quarters,
return FALSE
var/amount_to_change = adjustment_amount
if(adjustment_amount > 0)
amount_to_change = amount_to_change * weight_gain_rate
else
amount_to_change = amount_to_change * weight_loss_rate
if(!ignore_rate)
if(adjustment_amount > 0)
amount_to_change = amount_to_change * weight_gain_rate
else
amount_to_change = amount_to_change * weight_loss_rate
fatness_real += amount_to_change
fatness_real = max(fatness_real, MINIMUM_FATNESS_LEVEL) //It would be a little silly if someone got negative fat.
@@ -204,3 +206,34 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/crew_quarters,
return "Immobile"
return "Blob"
/// Finds what the next fatness level for the parent mob would be based off of fatness_real.
/mob/living/carbon/proc/get_next_fatness_level()
if(fatness_real < FATNESS_LEVEL_FAT)
return FATNESS_LEVEL_FAT
if(fatness_real < FATNESS_LEVEL_FATTER)
return FATNESS_LEVEL_FATTER
if(fatness_real < FATNESS_LEVEL_VERYFAT)
return FATNESS_LEVEL_VERYFAT
if(fatness_real < FATNESS_LEVEL_OBESE)
return FATNESS_LEVEL_OBESE
if(fatness_real < FATNESS_LEVEL_MORBIDLY_OBESE)
return FATNESS_LEVEL_MORBIDLY_OBESE
if(fatness_real < FATNESS_LEVEL_EXTREMELY_OBESE)
return FATNESS_LEVEL_EXTREMELY_OBESE
if(fatness_real < FATNESS_LEVEL_BARELYMOBILE)
return FATNESS_LEVEL_BARELYMOBILE
if(fatness_real < FATNESS_LEVEL_IMMOBILE)
return FATNESS_LEVEL_IMMOBILE
if(fatness_real < FATNESS_LEVEL_BLOB)
return FATNESS_LEVEL_BLOB
return FATNESS_LEVEL_BLOB
/// How much real fatness does the current mob have to gain until they reach the next level? Return FALSE if they are maxed out.
/mob/living/carbon/proc/fatness_until_next_level()
var/needed_fatness = get_next_fatness_level() - fatness_real
needed_fatness = max(needed_fatness, 0)
return needed_fatness
@@ -68,6 +68,17 @@
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
/datum/design/cyberimp_fat_mobility
name = "Mobility Nanite Core"
desc = "This implant contains nanites that reinforce leg muscles, allowing for unimpeded movement at extreme weights."
id = "ci-fatmobility"
build_type = PROTOLATHE | MECHFAB
construction_time = 100
materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 750, MAT_URANIUM = 1000)
build_path = /obj/item/organ/cyberimp/chest/mobility
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
/datum/design/bluespace_belt
name = "Bluespace Belt"
desc = "A belt made using bluespace technology. The power of space and time, used to hide the fact you are fat."
@@ -5,7 +5,7 @@
display_name = "Nutri-Tech Tools"
description = "Ending world hunger was never made easier!"
prereq_ids = list("biotech", "adv_engi")
design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer", "cookie_synthesizer", "borg_upgrade_cookiesynthesizer", "borg_upgrade_feedingtube")
design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer", "cookie_synthesizer", "borg_upgrade_cookiesynthesizer", "borg_upgrade_feedingtube", "ci-fatmobility")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2)
export_price = 5000
@@ -9,3 +9,17 @@
hunger_threshold = NUTRITION_LEVEL_FULL
poison_amount = 10
message = "" //no message cuz spam is annoying
/obj/item/organ/cyberimp/chest/mobility
name = "Mobility Nanite Core"
desc = "This implant contains nanites that reinforce leg muscles, allowing for unimpeded movement at extreme weights."
icon_state = "chest_implant"
implant_color = "#9034db"
/obj/item/organ/cyberimp/chest/mobility/Insert(mob/living/carbon/M, special = 0)
..()
ADD_TRAIT(M, TRAIT_NO_FAT_SLOWDOWN, src)
/obj/item/organ/cyberimp/chest/mobility/Remove(mob/living/carbon/M, special = 0)
REMOVE_TRAIT(M, TRAIT_NO_FAT_SLOWDOWN, src)
..()
@@ -67,6 +67,11 @@
uses = 1
starting_organ = /obj/item/organ/cyberimp/chest/nutriment/turbo
/obj/item/autosurgeon/fat_mobility
desc = "A single use autosurgeon that contains a mobility nanite core. A screwdriver can be used to remove it, but implants can't be placed back in."
uses = 1
starting_organ = /obj/item/organ/cyberimp/chest/mobility
//fast food restaurant - closed / open signs
/obj/item/holosign_creator/restaurant
name = "Holosign Projector - Restaurant Adverts"
@@ -0,0 +1,25 @@
/obj/item/gun/energy/kinetic_accelerator/crossbow/feeder
name = "feeder's mini energy crossbow"
desc = "a modified version of the standard mini energy crossbow, designed to fatten up a target while incapacitating them."
icon_state = "crossbow_halloween"
item_state = "crossbow"
ammo_type = list(/obj/item/ammo_casing/energy/bolt/fattening)
/obj/item/ammo_casing/energy/bolt/fattening
projectile_type = /obj/item/projectile/energy/bolt/fattening
/obj/item/projectile/energy/bolt/fattening
damage = 0
/obj/item/projectile/energy/bolt/fattening/Initialize()
. = ..()
/obj/item/projectile/energy/bolt/fattening/on_hit(atom/target, blocked)
. = ..()
var/mob/living/carbon/target_mob = target
if(!istype(target_mob) || (blocked == 100))
return
target_mob.reagents.add_reagent(/datum/reagent/consumable/lipoifier, 2)
@@ -0,0 +1,39 @@
/obj/structure/fat_mirror
name = "mirror" //Exact same text. Good luck.
desc = "Mirror mirror on the wall, who's the most robust of them all?"
icon = 'icons/obj/watercloset.dmi'
icon_state = "mirror"
density = FALSE
anchored = TRUE
/// Does the item delete itself after being "used?"
var/single_use = TRUE
/obj/structure/fat_mirror/attack_hand(mob/user)
. = ..()
if(.)
return
var/mob/living/carbon/looker = user
if(!istype(looker) || !Adjacent(looker))
return
make_fat(looker)
return TRUE
/obj/structure/fat_mirror/proc/make_fat(mob/living/carbon/looker)
if(!istype(looker) || !looker.check_weight_prefs(FATTENING_TYPE_MAGIC))
return FALSE
var/fat_to_add = looker.fatness_until_next_level()
if(!fat_to_add)
fat_to_add = FATNESS_LEVEL_BLOB // If someone is a blob, just add the amount of fatness needed to be a blob in the first place.
fat_to_add += 25 // a little buffer so they don't instantly burn it off.
looker.adjust_fatness(fat_to_add, FATTENING_TYPE_MAGIC, TRUE)
to_chat(looker, span_warning("Taking a look in the mirror, you look fatter than you remeber being."))
if(single_use)
visible_message(span_warning("[src] shatters into pieces."))
qdel(src)