mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-11 16:08:32 +01:00
Calorite golems!
Calorite golems are a new type of golem that can be made using 10 sheets of calorite that, thanks to the combined magical forces of both adamantine and calorite, can use magic to heal the wounded, make food more nourishing, and make people around them faster for a moment. Unfortunately, calorite golems lack the armor that other golems have, and their fists cannot stun or do much damage on their own.
This commit is contained in:
@@ -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.5)
|
||||
L.adjustFireLoss(-3.5)
|
||||
L.adjustToxLoss(-3.5, forced = TRUE) //Because Slime People are people too
|
||||
L.adjustOxyLoss(-3.5)
|
||||
L.adjustStaminaLoss(-3.5)
|
||||
L.adjustOrganLoss(ORGAN_SLOT_BRAIN, -3.5)
|
||||
L.adjustCloneLoss(-1) //Becasue apparently clone damage is the bastion of all health
|
||||
else if(issilicon(L))
|
||||
L.adjustBruteLoss(-3.5)
|
||||
L.adjustFireLoss(-3.5)
|
||||
else if(isanimal(L))
|
||||
var/mob/living/simple_animal/SM = L
|
||||
SM.adjustHealth(-3.5, forced = TRUE)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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,19 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/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)
|
||||
..()
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 729 B |
@@ -14,6 +14,7 @@
|
||||
#define BREAKFAST (1<<13)
|
||||
#define CLOTH (1<<14)
|
||||
#define ANTITOXIC (1<<15)
|
||||
#define BLESSED (1<<16)
|
||||
|
||||
#define DRINK_NICE 1
|
||||
#define DRINK_GOOD 2
|
||||
|
||||
@@ -86,7 +86,8 @@
|
||||
/obj/item/stack/sheet/cardboard = /datum/species/golem/cardboard,
|
||||
/obj/item/stack/sheet/leather = /datum/species/golem/leather,
|
||||
/obj/item/stack/sheet/bone = /datum/species/golem/bone,
|
||||
/obj/item/stack/sheet/cotton/durathread = /datum/species/golem/durathread)
|
||||
/obj/item/stack/sheet/cotton/durathread = /datum/species/golem/durathread,
|
||||
/obj/item/stack/sheet/mineral/calorite = /datum/species/golem/calorite)
|
||||
|
||||
if(istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/O = I
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 59 KiB |
@@ -3081,8 +3081,11 @@
|
||||
#include "GainStation13\code\mechanics\wand.dm"
|
||||
#include "GainStation13\code\mechanics\web_weaving.dm"
|
||||
#include "GainStation13\code\mobs\cakegolem.dm"
|
||||
#include "GainStation13\code\mobs\races\caloritegolem.dm"
|
||||
#include "GainStation13\code\modules\client\preferences\preferences.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\drinks\drinks.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\food\megafoods.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\food\recipes.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"
|
||||
|
||||
Reference in New Issue
Block a user