Merge branch 'KabKebab:master' into random_junk

This commit is contained in:
GDLW
2023-05-09 13:25:04 +02:00
committed by GitHub
36 changed files with 1502 additions and 66442 deletions
@@ -0,0 +1,31 @@
/obj/machinery/porta_turret/fattening
name = "Fatoray Turret"
installation = null
always_up = 1
use_power = NO_POWER_USE
has_cover = 0
scan_range = 9
req_access = list(ACCESS_SYNDICATE)
mode = TURRET_LETHAL
lethal_projectile = /obj/item/projectile/energy/fattening
lethal_projectile_sound = 'sound/weapons/laser.ogg'
icon_state = "turretCover"
base_icon_state = "standard"
faction = list(ROLE_SYNDICATE)
desc = "A laser turret with calorite focusing lens."
/obj/machinery/porta_turret/fattening/heavy
name = "Heavy Fatoray Turret"
lethal_projectile = /obj/item/projectile/energy/fattening/cannon
shot_delay = 30
/obj/machinery/porta_turret/fattening/ComponentInitialize()
. = ..()
AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
/obj/machinery/porta_turret/fattening/setup()
return
/obj/machinery/porta_turret/fattening/assess_perp(mob/living/carbon/human/perp)
return 10 //fattening turrets shoot everything except the syndicate
+2
View File
@@ -1,6 +1,8 @@
/obj/item/gun/magic/wand/food
name = "Wand of Gluttony"
desc = "Summons delicious fattening foods"
icon = 'GainStation13/icons/obj/magic.dmi'
icon_state = "food_wand"
max_charges = 15
ammo_type = /obj/item/ammo_casing/magic/food
+48
View File
@@ -0,0 +1,48 @@
/mob/living/simple_animal/hostile/feed
var/food_per_feeding = 5
var/food_fed = /datum/reagent/consumable/nutriment
/mob/living/simple_animal/hostile/feed/AttackingTarget()
. = ..()
var/mob/living/carbon/L = target
if(L.client.prefs.weight_gain_weapons)
if(L.reagents)
if(!L.is_mouth_covered(head_only = 1))
L.reagents.add_reagent(food_fed, food_per_feeding)
/mob/living/simple_animal/hostile/feed/chocolate_slime
name = "Chocolate slime"
desc = "It's a living blob of tasty chocolate!"
icon = 'GainStation13/icons/mob/candymonster.dmi'
icon_state = "a_c_slime"
icon_living = "a_c_slime"
icon_dead = "a_c_slime_dead"
speak_emote = list("blorbles")
emote_hear = list("blorbles")
speak_chance = 5
turns_per_move = 5
see_in_dark = 10
butcher_results = list(/obj/item/reagent_containers/food/snacks/chocolatebar = 4)
response_help = "pets"
response_disarm = "shoos"
response_harm = "hits"
maxHealth = 100
health = 100
obj_damage = 0
melee_damage_lower = 1
melee_damage_upper = 1
faction = list("slime")
pass_flags = PASSTABLE
move_to_delay = 7
ventcrawler = VENTCRAWLER_ALWAYS
attacktext = "glorps"
attack_sound = 'sound/weapons/tap.ogg'
unique_name = 1
gold_core_spawnable = HOSTILE_SPAWN
see_in_dark = 4
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
initial_language_holder = /datum/language_holder/slime
environment_smash = ENVIRONMENT_SMASH_STRUCTURES
@@ -0,0 +1,143 @@
var/charges = 3
/datum/species/golem/calorite //golems that heal people around them, and cook groovy food. essentially the support class of golems
name = "Calorite Golem"
id = "calorite golem"
prefix = "Calorite"
special_names = list("Callie Wright")
info_text = "As a <span class='danger'>Calorite Golem</span>, you have all kinds of cool magical abilities that allow you to heal the wounded, make food more nourishing and boost people's speed! Unfortunately, you are also very flimsy, and can't dish out much damage with your hands."
fixed_mut_color = "ffffff"
limbs_id = "cal_golem" //special sprites
attack_verb = "bop" //they don't hit too hard, so their attack verb is fittingly pretty soft
armor = 25
punchdamagelow = 5
punchstunthreshold = 0 //no chance to stun
punchdamagehigh = 5
var/datum/action/innate/aura/heal
var/datum/action/innate/bless/boost
var/datum/action/innate/unburden/speed
var/datum/action/innate/recharge/power
/datum/species/golem/calorite/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
if(ishuman(C))
heal = new
heal.Grant(C)
boost = new
boost.Grant(C)
speed = new
speed.Grant(C)
power = new
power.Grant(C)
/datum/species/golem/calorite/on_species_loss(mob/living/carbon/C)
if(heal)
heal.Remove(C)
if(boost)
boost.Remove(C)
if(speed)
speed.Remove(C)
if(power)
power.Remove(C)
..()
/datum/action/innate/aura
name = "Healing Pulse"
desc = "Emit a healing pulse around yourself, curing the wounds of all around you."
check_flags = AB_CHECK_CONSCIOUS
icon_icon = 'GainStation13/icons/mob/action_icons.dmi'
button_icon_state = "healing"
/datum/action/innate/unburden
name = "Lift Burdens"
desc = "Vitalise all those around you, giving them a boost of speed for a moment. The effects of this charm are more effective on those whom are heavily burdened"
check_flags = AB_CHECK_CONSCIOUS
icon_icon = 'GainStation13/icons/mob/action_icons.dmi'
button_icon_state = "boost"
/datum/action/innate/bless
name = "Bless Food"
desc = "infuse food near you with a fraction of your power to make it more nourishing"
check_flags = AB_CHECK_CONSCIOUS
icon_icon = 'GainStation13/icons/mob/action_icons.dmi'
button_icon_state = "cal_bless"
/datum/action/innate/recharge
name = "Recharge"
desc = "refresh and recharge your magical abilities"
check_flags = AB_CHECK_CONSCIOUS
icon_icon = 'GainStation13/icons/mob/action_icons.dmi'
button_icon_state = "cal_golem_sleepies"
/datum/action/innate/recharge/Activate()
charges = 3
if(ishuman(owner))
to_chat(owner, "<span class='notice'>You recharge yourself with magical energy!</span>")
/datum/action/innate/bless/Activate()
if(charges != 0)
charges -= 1
if(ishuman(owner))
to_chat(owner, "<span class='notice'>You bless the food around you!</span>")
for(var/obj/item/reagent_containers/food/O in view(1, owner))
if(O.foodtype != BLESSED)
O.reagents.add_reagent(/datum/reagent/consumable/nutriment, 10)
O.desc += " It faintly glows with warm, orange energy..."
O.foodtype = BLESSED
else
to_chat(owner, "<span class='notice'>You need to recharge...</span>")
/datum/action/innate/unburden/Activate()
if(charges != 0)
charges -= 1
if(ishuman(owner))
to_chat(owner, "<span class='notice'>You lift the burdens of those around you!</span>")
for(var/mob/living/L in view(3, owner))
if(iscarbon(L))
if(!HAS_TRAIT(L, TRAIT_GOTTAGOFAST))
L.reagents.add_reagent(/datum/reagent/consumable/caloriteblessing, 5)
else
to_chat(owner, "<span class='notice'>You need to recharge...</span>")
/datum/action/innate/aura/Activate()
if(charges != 0)
charges -= 1
if(ishuman(owner))
to_chat(owner, "<span class='notice'>You heal those around you!</span>")
for(var/mob/living/L in view(3, owner))
if(L.health < L.maxHealth)
new /obj/effect/temp_visual/heal(get_turf(L), "#375637")
if(iscarbon(L))
L.adjustBruteLoss(-3)
L.adjustFireLoss(-3)
L.adjustToxLoss(-3, forced = TRUE) //Because Slime People are people too
L.adjustOxyLoss(-3)
// L.adjustStaminaLoss(-3)
// L.adjustOrganLoss(ORGAN_SLOT_BRAIN, -3)
L.adjustCloneLoss(-1) //Becasue apparently clone damage is the bastion of all health
// else if(issilicon(L))
// L.adjustBruteLoss(-3)
// L.adjustFireLoss(-3)
else if(isanimal(L))
var/mob/living/simple_animal/SM = L
SM.adjustHealth(-3, forced = TRUE)
@@ -8,6 +8,18 @@
if ((pref_toggle == 0) || (M.client && M.client.prefs.cit_toggles & pref_toggle))
M.playsound_local(source, noise_name, 50, 1, S = noise)
/datum/emote/living/proc/reduce_fullness(var/mob/living/user, fullness_amount) // fullness_amount should be between 5 and 20 for balance and below 80 for functionality
if(!ishuman(user))
return FALSE
var/mob/living/N = user
if(N.fullness >= FULLNESS_LEVEL_BLOATED && N.fullness_reducion_timer + FULLNESS_REDUCTION_COOLDOWN < world.time)
N.fullness -= fullness_amount
if(fullness_amount <= 5)
to_chat(N, "You felt that make some space")
if(fullness_amount > 5)
to_chat(N, "You felt that make a lot of space")
/datum/emote/living/belch
key = "belch"
key_third_person = "belches loudly"
@@ -22,6 +34,7 @@
make_noise(user, "belch", BURPING_NOISES)
. = ..()
reduce_fullness(user, rand(6,12))
/datum/emote/living/brap
key = "brap"
@@ -39,6 +52,7 @@
make_noise(user, "brap", FARTING_NOISES)
. = ..()
reduce_fullness(user, rand(6,12))
/datum/emote/living/burp
key = "burp"
@@ -53,6 +67,7 @@
make_noise(user, "burp", BURPING_NOISES)
. = ..()
reduce_fullness(user, rand(4,8))
/datum/emote/living/fart
key = "fart"
@@ -68,6 +83,7 @@
make_noise(user, "fart", FARTING_NOISES)
. = ..()
reduce_fullness(user, rand(4,8))
/datum/emote/living/gurgle
key = "gurgle"
@@ -97,3 +113,14 @@
make_noise(user, "burunyu", 0)
. = ..()
/datum/emote/living/bellyrub
key = "bellyrub"
key_third_person = "bellyrubs"
message = "rubs their belly"
/datum/emote/living/bellyrub/run_emote(mob/living/user, params)
if(!ishuman(user))
return FALSE
. = ..()
reduce_fullness(user, rand(4,16))
@@ -37,7 +37,7 @@
/datum/reagent/consumable/extilphite
name = "Extilphite"
description = "A very useful chemical that helps soothe bloated stomachs."
color = "#2aed96"
color = "#2aed96"
reagent_state = LIQUID
taste_description = "smoothness"
metabolization_rate = 0.8 * REAGENTS_METABOLISM
@@ -75,3 +75,21 @@
else
return ..()
// calorite blessing chem, used in the golem ability
/datum/reagent/consumable/caloriteblessing
name = "Calorite blessing"
description = "A strange, viscous liquid derived from calorite. It is said to have physically enhancing properties surprisingly unrelated to weight gain when consumed"
color = "#eb6e00"
reagent_state = LIQUID
taste_description = "sweet salvation"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
/datum/reagent/consumable/caloriteblessing/on_mob_metabolize(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_GOTTAGOFAST, type)
/datum/reagent/consumable/caloriteblessing/on_mob_end_metabolize(mob/living/L)
REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, type)
..()
@@ -23,4 +23,4 @@
name = "extilphite"
id = /datum/reagent/consumable/extilphite
results = list(/datum/reagent/consumable/extilphite = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/sodium = 2, /datum/reagent/carbon = 2)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/hydrogen = 2, /datum/reagent/carbon = 2)