diff --git a/GainStation13/code/modules/research/designs/nutri_designs.dm b/GainStation13/code/modules/research/designs/nutri_designs.dm index f62e6a00..fa28e3d5 100644 --- a/GainStation13/code/modules/research/designs/nutri_designs.dm +++ b/GainStation13/code/modules/research/designs/nutri_designs.dm @@ -2,11 +2,13 @@ ///GS13 designs / nutri designs ///////////////////////////////////////// + +//nutritech weapons /datum/design/fatoray_weak name = "Basic Fatoray" id = "fatoray_weak" build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_GLASS = 6000, MAT_CALORITE = 20000) + materials = list(MAT_METAL = 8000, MAT_GLASS = 6000, MAT_CALORITE = 10000) construction_time = 75 build_path = /obj/item/gun/energy/fatoray/weak category = list("Weapons") @@ -16,12 +18,23 @@ name = "Cannonshot Fatoray" id = "fatoray_cannon_weak" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 8000, MAT_CALORITE = 30000) + materials = list(MAT_METAL = 10000, MAT_GLASS = 8000, MAT_CALORITE = 20000) construction_time = 200 build_path = /obj/item/gun/energy/fatoray/cannon_weak category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY +/datum/design/alter_ray + name = "AL-T-Ray: Metabolism" + id = "alter_ray" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 8000, MAT_CALORITE = 26000) + construction_time = 200 + build_path = /obj/item/gun/energy/laser/alter_ray/gainrate + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY + +//nutritech tools /datum/design/calorite_collar name = "Calorite Collar" desc = "A collar that amplifies caloric intake of the wearer." diff --git a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm index 8434df4f..72931afc 100644 --- a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm +++ b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm @@ -16,7 +16,7 @@ display_name = "Nutri-Tech Weapons" description = "Ever wanted to reach your daily caloric intake in just 5 seconds?" prereq_ids = list("biotech", "adv_engi") - design_ids = list("fatoray_weak", "fatoray_cannon_weak") + design_ids = list("fatoray_weak", "fatoray_cannon_weak", "alter_ray") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) 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 = 10000 diff --git a/GainStation13/code/obj/structure/fountain.dm b/GainStation13/code/obj/structure/fountain.dm index ab18274e..b7623248 100644 --- a/GainStation13/code/obj/structure/fountain.dm +++ b/GainStation13/code/obj/structure/fountain.dm @@ -22,7 +22,7 @@ return if (ishuman(user) && user.has_dna()) user.cursed_fat = 1 - user.fattening_steps_left += 100 + user.fattening_steps_left += 2000 icon_state = "empty" to_chat(user, "The glittering orange liquid disappears instantly as you touch it. You feel a strange, warm sensation inside, growing stronger the more you move...") curse_given = 1 diff --git a/GainStation13/code/obj/weapons/alter_rays.dm b/GainStation13/code/obj/weapons/alter_rays.dm new file mode 100644 index 00000000..9c232095 --- /dev/null +++ b/GainStation13/code/obj/weapons/alter_rays.dm @@ -0,0 +1,144 @@ +/////GS13 - rayguns for metabolism and breasts/ass manipulation + +//this is pretty wonky code, but ig it works + +/obj/item/gun/energy/laser/alter_ray + name = "alter-ray" + icon = 'icons/obj/guns/energy.dmi' + icon_state = "lasernew" + desc = "This weapon is capable of altering one's body capabilities." + item_state = null + selfcharge = EGUN_SELFCHARGE + charge_delay = 5 + ammo_x_offset = 2 + clumsy_check = 1 + +/obj/item/gun/energy/laser/alter_ray/gainrate + name = "AL-T-Ray: Metabolism" + desc = "This weapon is capable of altering one's body capabilities. This model appears to be capable of altering one's weight gain and loss rate by 10%." + ammo_type = list(/obj/item/ammo_casing/energy/laser/gainrate_decrease, /obj/item/ammo_casing/energy/laser/gainrate_increase, /obj/item/ammo_casing/energy/laser/lossrate_decrease, /obj/item/ammo_casing/energy/laser/lossrate_increase) + + +// /obj/item/gun/energy/laser/alter_ray/assbreasts //genius name, I know +// name = "AL-T-Ray: Voluptousness" +// desc = "This weapon is capable of altering one's body capabilities. This model appears to be capable of altering the size's of one's breasts or buttocks." +// ammo_type = list(/obj/item/ammo_casing/energy/laser/shrinkray, /obj/item/ammo_casing/energy/laser/growthray) + + +/obj/item/projectile/alter_ray + name = "sizeray beam" + icon_state = "omnilaser" + hitsound = null + damage = 0 + damage_type = STAMINA + flag = "laser" + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + ricochets_max = 50 + ricochet_chance = 80 + is_reflectable = TRUE + var/ratechange_amount = 0.1 + + +//projectile biz + +/obj/item/projectile/alter_ray/gainrate_decrease + icon_state="bluelaser" + +/obj/item/projectile/alter_ray/gainrate_increase + icon_state="laser" + +/obj/item/projectile/alter_ray/lossrate_decrease + icon_state="bluelaser" + +/obj/item/projectile/alter_ray/lossrate_increase + icon_state="laser" + +// /obj/item/projectile/alter_ray/breast_decrease +// icon_state="bluelaser" + +// /obj/item/projectile/alter_ray/breast_increase +// icon_state="laser" + +// /obj/item/projectile/alter_ray/butt_decrease +// icon_state="bluelaser" + +// /obj/item/projectile/alter_ray/butt_increase +// icon_state="laser" + +//laser hitting / changing code + +//wg rate increase +/obj/item/projectile/alter_ray/gainrate_increase/on_hit(atom/target, blocked) + . = ..() + + var/mob/living/carbon/gainer = target + + if(iscarbon(gainer)) + if(gainer.weight_gain_rate <= 3) + gainer.weight_gain_rate += ratechange_amount + return TRUE + return FALSE + + return FALSE + + +//wg rate decrease +/obj/item/projectile/alter_ray/gainrate_decrease/on_hit(atom/target, blocked) + . = ..() + + var/mob/living/carbon/gainer = target + + if(iscarbon(gainer)) + if(gainer.weight_gain_rate >= 0.11) + gainer.weight_gain_rate -= ratechange_amount + return TRUE + if(gainer.weight_gain_rate <= 0.1) + return FALSE + + return FALSE + +//wl rate increase +/obj/item/projectile/alter_ray/lossrate_increase/on_hit(atom/target, blocked) + . = ..() + + var/mob/living/carbon/gainer = target + + if(iscarbon(gainer)) + if(gainer.weight_loss_rate <= 3) + gainer.weight_loss_rate += ratechange_amount + return TRUE + return FALSE + + return FALSE + +//wl rate decrease +/obj/item/projectile/alter_ray/lossrate_decrease/on_hit(atom/target, blocked) + . = ..() + + var/mob/living/carbon/gainer = target + + if(iscarbon(gainer)) + if(gainer.weight_loss_rate >= 0.11) + gainer.weight_loss_rate -= ratechange_amount + return TRUE + if(gainer.weight_loss_rate <= 0.1) + return FALSE + + return FALSE + +//ammo casings - these are needed to allow guns to switch between firing modes +/obj/item/ammo_casing/energy/laser/gainrate_increase + projectile_type = /obj/item/projectile/alter_ray/gainrate_increase + select_name = "Weight Gain Increase" + +/obj/item/ammo_casing/energy/laser/gainrate_decrease + projectile_type = /obj/item/projectile/alter_ray/gainrate_decrease + select_name = "Weight Gain Decrease" + +/obj/item/ammo_casing/energy/laser/lossrate_increase + projectile_type = /obj/item/projectile/alter_ray/lossrate_increase + select_name = "Weight Loss Increase" + +/obj/item/ammo_casing/energy/laser/lossrate_decrease + projectile_type = /obj/item/projectile/alter_ray/lossrate_decrease + select_name = "Weight Loss Decrease" diff --git a/GainStation13/code/obj/weapons/fatoray.dm b/GainStation13/code/obj/weapons/fatoray.dm index 21b78e11..8de22d38 100644 --- a/GainStation13/code/obj/weapons/fatoray.dm +++ b/GainStation13/code/obj/weapons/fatoray.dm @@ -30,8 +30,12 @@ is_reflectable = TRUE light_range = 2 light_color = LIGHT_COLOR_ORANGE + ricochets_max = 50 + ricochet_chance = 80 + is_reflectable = TRUE ///How much fat is added to the target mob? var/fat_added = 100 + ////// Fatoray - cannon variant, strong but can be charged diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 4c0c9180..7f5b0543 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 3e2b8a80..9950ebb3 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3095,8 +3095,8 @@ #include "GainStation13\code\modules\food_and_drinks\drinks.dm" #include "GainStation13\code\modules\food_and_drinks\food.dm" #include "GainStation13\code\modules\food_and_drinks\recipes_bigpizza.dm" -#include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm" #include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm" +#include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm" #include "GainStation13\code\modules\mob\living\emote.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\consumable_reagents.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\dwarverndrinks.dm" @@ -3117,8 +3117,9 @@ #include "GainStation13\code\obj\structure\fountain.dm" #include "GainStation13\code\obj\structure\gsstatues.dm" #include "GainStation13\code\obj\structure\scale.dm" -#include "GainStation13\code\obj\weapons\fatoray.dm" +#include "GainStation13\code\obj\weapons\alter_rays.dm" #include "GainStation13\code\obj\weapons\fatbeam.dm" +#include "GainStation13\code\obj\weapons\fatoray.dm" #include "hyperstation\code\__DEFINES\economy.dm" #include "hyperstation\code\__DEFINES\wendigo.dm" #include "hyperstation\code\controllers\subsystem\economy.dm"