mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-31 00:49:06 +01:00
Singletons + refactor of /datum/observ (#15487)
This commit is contained in:
@@ -233,7 +233,7 @@
|
||||
if(do_after(src, 30))
|
||||
visible_message(SPAN_NOTICE("[src] eliminates the pests in \the [A]."))
|
||||
T.pestlevel = 0
|
||||
T.reagents.add_reagent(/decl/reagent/nutriment, 0.5)
|
||||
T.reagents.add_reagent(/singleton/reagent/nutriment, 0.5)
|
||||
T.update_icon()
|
||||
if(FARMBOT_NUTRIMENT)
|
||||
action = "fertile"
|
||||
@@ -242,7 +242,7 @@
|
||||
attacking = TRUE
|
||||
if(do_after(src, 30))
|
||||
visible_message(SPAN_NOTICE("[src] waters \the [A]."))
|
||||
T.reagents.add_reagent(/decl/reagent/ammonia, 10)
|
||||
T.reagents.add_reagent(/singleton/reagent/ammonia, 10)
|
||||
attacking = FALSE
|
||||
action = ""
|
||||
update_icon()
|
||||
@@ -255,7 +255,7 @@
|
||||
visible_message(SPAN_NOTICE("[src] starts refilling its tank from \the [A]."))
|
||||
attacking = TRUE
|
||||
while(do_after(src, 10) && tank.reagents.total_volume < tank.reagents.maximum_volume)
|
||||
tank.reagents.add_reagent(/decl/reagent/water, 10)
|
||||
tank.reagents.add_reagent(/singleton/reagent/water, 10)
|
||||
if(prob(5))
|
||||
playsound(get_turf(src), 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
attacking = FALSE
|
||||
@@ -304,7 +304,7 @@
|
||||
return FALSE
|
||||
if(tray.dead && removes_dead || tray.harvest && collects_produce)
|
||||
return FARMBOT_COLLECT
|
||||
else if(waters_trays && tray.waterlevel < 10 && !tray.reagents.has_reagent(/decl/reagent/water))
|
||||
else if(waters_trays && tray.waterlevel < 10 && !tray.reagents.has_reagent(/singleton/reagent/water))
|
||||
return FARMBOT_WATER
|
||||
else if(uproots_weeds && tray.weedlevel >= 5)
|
||||
return FARMBOT_UPROOT
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
var/injection_amount = 10 //How much reagent do we inject at a time?
|
||||
var/heal_threshold = 10 //Start healing when they have this much damage in a category
|
||||
var/use_beaker = 0 //Use reagents in beaker instead of default treatment agents.
|
||||
var/treatment_brute = /decl/reagent/tricordrazine
|
||||
var/treatment_oxy = /decl/reagent/tricordrazine
|
||||
var/treatment_fire = /decl/reagent/tricordrazine
|
||||
var/treatment_tox = /decl/reagent/tricordrazine
|
||||
var/treatment_emag = /decl/reagent/toxin
|
||||
var/treatment_brute = /singleton/reagent/tricordrazine
|
||||
var/treatment_oxy = /singleton/reagent/tricordrazine
|
||||
var/treatment_fire = /singleton/reagent/tricordrazine
|
||||
var/treatment_tox = /singleton/reagent/tricordrazine
|
||||
var/treatment_emag = /singleton/reagent/toxin
|
||||
var/declare_treatment = 0 //When attempting to treat a patient, should it notify everyone wearing medhuds?
|
||||
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
// If they're injured, we're using a beaker, and they don't have on of the chems in the beaker
|
||||
if(reagent_glass && use_beaker && ((H.getBruteLoss() >= heal_threshold) || (H.getToxLoss() >= heal_threshold) || (H.getToxLoss() >= heal_threshold) || (H.getOxyLoss() >= (heal_threshold + 15))))
|
||||
for(var/_R in reagent_glass.reagents.reagent_volumes)
|
||||
var/decl/reagent/R = decls_repository.get_decl(_R)
|
||||
var/singleton/reagent/R = GET_SINGLETON(_R)
|
||||
if(!H.reagents.has_reagent(R))
|
||||
return TRUE
|
||||
continue
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
step_away(src,M,15)
|
||||
sleep(3)
|
||||
step_away(src,M,15)
|
||||
playsound(loc, /decl/sound_category/punch_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punch_sound, 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("<span class='danger'>[] has punched []!</span>", M, src), 1)
|
||||
@@ -52,7 +52,7 @@
|
||||
adjustBruteLoss(damage)
|
||||
updatehealth()
|
||||
else
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("<span class='danger'>[] has attempted to punch []!</span>", M, src), 1)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
density = 0
|
||||
mouth_size = 2 //how large of a creature it can swallow at once, and how big of a bite it can take out of larger things
|
||||
eat_types = 0 //This is a bitfield which must be initialised in New(). The valid values for it are in devour.dm
|
||||
composition_reagent = /decl/reagent/nutriment //Dionae are plants, so eating them doesn't give animal protein
|
||||
composition_reagent = /singleton/reagent/nutriment //Dionae are plants, so eating them doesn't give animal protein
|
||||
name = "diona nymph"
|
||||
voice_name = "diona nymph"
|
||||
accent = ACCENT_ROOTSONG
|
||||
@@ -195,14 +195,14 @@
|
||||
vessel = new/datum/reagents(600)
|
||||
vessel.my_atom = src
|
||||
|
||||
vessel.add_reagent(/decl/reagent/blood, 560, temperature = species.body_temperature)
|
||||
vessel.add_reagent(/singleton/reagent/blood, 560, temperature = species.body_temperature)
|
||||
fixblood()
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/fixblood()
|
||||
if(!REAGENT_DATA(vessel, /decl/reagent/blood))
|
||||
if(!REAGENT_DATA(vessel, /singleton/reagent/blood))
|
||||
return
|
||||
var/list/new_blood_data = get_blood_data()
|
||||
vessel.reagent_data[/decl/reagent/blood] = vessel.reagent_data[/decl/reagent/blood] ^ new_blood_data | new_blood_data
|
||||
vessel.reagent_data[/singleton/reagent/blood] = vessel.reagent_data[/singleton/reagent/blood] ^ new_blood_data | new_blood_data
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/setup_dionastats()
|
||||
var/MLS = (1.5 / 2.1) //Maximum energy lost per second, in total darkness
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
return 0
|
||||
|
||||
src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution")
|
||||
playsound(loc, /decl/sound_category/spark_sound, 50, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/spark_sound, 50, 1, -1)
|
||||
if(shock_damage > 15 || tesla_shock)
|
||||
src.visible_message(
|
||||
SPAN_WARNING("[src] was shocked by the [source]!"), \
|
||||
|
||||
@@ -612,9 +612,9 @@ var/list/diona_banned_languages = list(
|
||||
if(do_mob(user, H, 40, needhand = FALSE))
|
||||
var/remove_amount = H.species.blood_volume * 0.05
|
||||
if(remove_amount > 0)
|
||||
H.vessel.remove_reagent(/decl/reagent/blood, remove_amount, TRUE)
|
||||
H.vessel.remove_reagent(/singleton/reagent/blood, remove_amount, TRUE)
|
||||
user.adjustNutritionLoss(-remove_amount * 0.5)
|
||||
var/list/data = REAGENT_DATA(H.vessel, /decl/reagent/blood)
|
||||
var/list/data = REAGENT_DATA(H.vessel, /singleton/reagent/blood)
|
||||
var/newDNA = data["blood_DNA"]
|
||||
|
||||
if(!newDNA) //Fallback. Adminspawned mobs, and possibly some others, have null dna.
|
||||
@@ -623,7 +623,7 @@ var/list/diona_banned_languages = list(
|
||||
H.adjustBruteLoss(4)
|
||||
user.visible_message(SPAN_NOTICE("[user] sucks some blood from \the [H].") , SPAN_NOTICE("You extract a delicious mouthful of blood from \the [H]!"))
|
||||
to_chat(H, SPAN_NOTICE("You feel some liquid being injected at the bite site."))
|
||||
H.reagents.add_reagent(/decl/reagent/mortaphenyl/aphrodite, 5)
|
||||
H.reagents.add_reagent(/singleton/reagent/mortaphenyl/aphrodite, 5)
|
||||
if(H.client)
|
||||
INVOKE_ASYNC(src, .proc/memory_transfer, user, H)
|
||||
if(newDNA in sampled_DNA)
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
// ========
|
||||
/datum/medical_effect/headache
|
||||
name = "Headache"
|
||||
triggers = list(/decl/reagent/cryoxadone = 10, /decl/reagent/bicaridine = 15, /decl/reagent/tricordrazine = 15)
|
||||
cures = list(/decl/reagent/alkysine, /decl/reagent/mortaphenyl, /decl/reagent/perconol, /decl/reagent/oxycomorphine)
|
||||
triggers = list(/singleton/reagent/cryoxadone = 10, /singleton/reagent/bicaridine = 15, /singleton/reagent/tricordrazine = 15)
|
||||
cures = list(/singleton/reagent/alkysine, /singleton/reagent/mortaphenyl, /singleton/reagent/perconol, /singleton/reagent/oxycomorphine)
|
||||
cure_message = "Your head stops throbbing..."
|
||||
|
||||
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -99,8 +99,8 @@
|
||||
// ===========
|
||||
/datum/medical_effect/bad_stomach
|
||||
name = "Bad Stomach"
|
||||
triggers = list(/decl/reagent/kelotane = 30, /decl/reagent/dermaline = 15)
|
||||
cures = list(/decl/reagent/dylovene)
|
||||
triggers = list(/singleton/reagent/kelotane = 30, /singleton/reagent/dermaline = 15)
|
||||
cures = list(/singleton/reagent/dylovene)
|
||||
cure_message = "Your stomach feels a little better now..."
|
||||
|
||||
/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -116,8 +116,8 @@
|
||||
// ======
|
||||
/datum/medical_effect/cramps
|
||||
name = "Cramps"
|
||||
triggers = list(/decl/reagent/dylovene = 30, /decl/reagent/mortaphenyl = 15)
|
||||
cures = list(/decl/reagent/inaprovaline)
|
||||
triggers = list(/singleton/reagent/dylovene = 30, /singleton/reagent/mortaphenyl = 15)
|
||||
cures = list(/singleton/reagent/inaprovaline)
|
||||
cure_message = "The cramps let up..."
|
||||
|
||||
/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -134,8 +134,8 @@
|
||||
// ====
|
||||
/datum/medical_effect/itch
|
||||
name = "Itch"
|
||||
triggers = list(/decl/reagent/space_drugs = 10)
|
||||
cures = list(/decl/reagent/inaprovaline)
|
||||
triggers = list(/singleton/reagent/space_drugs = 10)
|
||||
cures = list(/singleton/reagent/inaprovaline)
|
||||
cure_message = "The itching stops..."
|
||||
|
||||
/datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength)
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
// ========
|
||||
/datum/medical_effect/headache
|
||||
name = "Headache"
|
||||
triggers = list(/decl/reagent/cryoxadone = 10, /decl/reagent/bicaridine = 15, /decl/reagent/tricordrazine = 15)
|
||||
cures = list(/decl/reagent/alkysine, /decl/reagent/mortaphenyl, /decl/reagent/perconol, /decl/reagent/oxycomorphine)
|
||||
triggers = list(/singleton/reagent/cryoxadone = 10, /singleton/reagent/bicaridine = 15, /singleton/reagent/tricordrazine = 15)
|
||||
cures = list(/singleton/reagent/alkysine, /singleton/reagent/mortaphenyl, /singleton/reagent/perconol, /singleton/reagent/oxycomorphine)
|
||||
cure_message = "Your head stops throbbing..."
|
||||
|
||||
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -99,8 +99,8 @@
|
||||
// ===========
|
||||
/datum/medical_effect/bad_stomach
|
||||
name = "Bad Stomach"
|
||||
triggers = list(/decl/reagent/kelotane = 30, /decl/reagent/dermaline = 15)
|
||||
cures = list(/decl/reagent/dylovene)
|
||||
triggers = list(/singleton/reagent/kelotane = 30, /singleton/reagent/dermaline = 15)
|
||||
cures = list(/singleton/reagent/dylovene)
|
||||
cure_message = "Your stomach feels a little better now..."
|
||||
|
||||
/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -116,8 +116,8 @@
|
||||
// ======
|
||||
/datum/medical_effect/cramps
|
||||
name = "Cramps"
|
||||
triggers = list(/decl/reagent/dylovene = 30, /decl/reagent/mortaphenyl = 15)
|
||||
cures = list(/decl/reagent/inaprovaline)
|
||||
triggers = list(/singleton/reagent/dylovene = 30, /singleton/reagent/mortaphenyl = 15)
|
||||
cures = list(/singleton/reagent/inaprovaline)
|
||||
cure_message = "The cramps let up..."
|
||||
|
||||
/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -134,8 +134,8 @@
|
||||
// ====
|
||||
/datum/medical_effect/itch
|
||||
name = "Itch"
|
||||
triggers = list(/decl/reagent/space_drugs = 10)
|
||||
cures = list(/decl/reagent/inaprovaline)
|
||||
triggers = list(/singleton/reagent/space_drugs = 10)
|
||||
cures = list(/singleton/reagent/inaprovaline)
|
||||
cure_message = "The itching stops..."
|
||||
|
||||
/datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/setup_gestalt()
|
||||
composition_reagent = /decl/reagent/nutriment //Dionae are plants, so eating them doesn't give animal protein
|
||||
composition_reagent = /singleton/reagent/nutriment //Dionae are plants, so eating them doesn't give animal protein
|
||||
setup_dionastats()
|
||||
verbs += /mob/living/carbon/human/proc/check_light
|
||||
verbs += /mob/living/carbon/human/proc/diona_split_nymph
|
||||
|
||||
@@ -519,7 +519,7 @@
|
||||
|
||||
apply_damage(shock_damage, BURN, area, used_weapon="Electrocution")
|
||||
shock_damage *= 0.4
|
||||
playsound(loc, /decl/sound_category/spark_sound, 50, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/spark_sound, 50, 1, -1)
|
||||
|
||||
if (shock_damage > 15)
|
||||
visible_message(
|
||||
@@ -1184,7 +1184,7 @@
|
||||
/mob/living/carbon/human/revive(reset_to_roundstart = TRUE)
|
||||
|
||||
if(species && !(species.flags & NO_BLOOD))
|
||||
vessel.add_reagent(/decl/reagent/blood,560-vessel.total_volume, temperature = species.body_temperature)
|
||||
vessel.add_reagent(/singleton/reagent/blood,560-vessel.total_volume, temperature = species.body_temperature)
|
||||
fixblood()
|
||||
|
||||
// Fix up all organs.
|
||||
@@ -1473,8 +1473,8 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/fill_out_culture_data()
|
||||
culture = decls_repository.get_decl(species.possible_cultures[1])
|
||||
origin = decls_repository.get_decl(culture.possible_origins[1])
|
||||
culture = GET_SINGLETON(species.possible_cultures[1])
|
||||
origin = GET_SINGLETON(culture.possible_origins[1])
|
||||
accent = pick(origin.possible_accents)
|
||||
citizenship = origin.possible_citizenships[1]
|
||||
religion = origin.possible_religions[1]
|
||||
@@ -1728,11 +1728,11 @@
|
||||
if(self)
|
||||
U.visible_message(SPAN_DANGER("[U] pops their [current_limb.joint] back in!"), \
|
||||
SPAN_DANGER("You pop your [current_limb.joint] back in!"))
|
||||
playsound(src.loc, /decl/sound_category/fracture_sound, 50, 1, -2)
|
||||
playsound(src.loc, /singleton/sound_category/fracture_sound, 50, 1, -2)
|
||||
else
|
||||
U.visible_message(SPAN_DANGER("[U] pops [S]'s [current_limb.joint] back in!"), \
|
||||
SPAN_DANGER("You pop [S]'s [current_limb.joint] back in!"))
|
||||
playsound(src.loc, /decl/sound_category/fracture_sound, 50, 1, -2)
|
||||
playsound(src.loc, /singleton/sound_category/fracture_sound, 50, 1, -2)
|
||||
current_limb.undislocate()
|
||||
|
||||
/mob/living/carbon/human/drop_from_inventory(var/obj/item/W, var/atom/target = null)
|
||||
@@ -1960,7 +1960,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/make_adrenaline(var/amount)
|
||||
if(stat == CONSCIOUS)
|
||||
reagents.add_reagent(/decl/reagent/adrenaline, amount)
|
||||
reagents.add_reagent(/singleton/reagent/adrenaline, amount)
|
||||
|
||||
/mob/living/carbon/human/proc/gigashatter()
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
H.do_attack_animation(src)
|
||||
var/damage = rand(0, 9)
|
||||
if(!damage)
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
visible_message("<span class='danger'>[H] has attempted to punch [src]!</span>")
|
||||
return 0
|
||||
var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting))
|
||||
@@ -87,7 +87,7 @@
|
||||
if(HAS_FLAG(H.mutations, HULK) || H.is_berserk())
|
||||
damage += 5
|
||||
|
||||
playsound(loc, /decl/sound_category/punch_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punch_sound, 25, 1, -1)
|
||||
|
||||
visible_message("<span class='danger'>[H] has punched [src]!</span>")
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
LAssailant = WEAKREF(M)
|
||||
|
||||
H.do_attack_animation(src)
|
||||
playsound(loc, /decl/sound_category/grab_sound, 50, FALSE, -1)
|
||||
playsound(loc, /singleton/sound_category/grab_sound, 50, FALSE, -1)
|
||||
if(H.gloves && istype(H.gloves,/obj/item/clothing/gloves/force/syndicate)) //only antag gloves can do this for now
|
||||
G.state = GRAB_AGGRESSIVE
|
||||
G.icon_state = "grabbed1"
|
||||
@@ -453,7 +453,7 @@
|
||||
to_chat(M, SPAN_WARNING("You cannot disarm \the [I] from \the [src], as it's attached to them!"))
|
||||
//No return here is intentional, as it will then try to disarm other items, and/or play a failed disarm message
|
||||
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
visible_message("<span class='danger'>[M] attempted to disarm [src]!</span>")
|
||||
return
|
||||
|
||||
|
||||
@@ -359,8 +359,8 @@ This function restores the subjects blood to max.
|
||||
*/
|
||||
/mob/living/carbon/human/proc/restore_blood()
|
||||
if(!(species.flags & NO_BLOOD))
|
||||
var/total_blood = REAGENT_VOLUME(vessel, /decl/reagent/blood)
|
||||
vessel.add_reagent(/decl/reagent/blood,560.0-total_blood, temperature = species.body_temperature)
|
||||
var/total_blood = REAGENT_VOLUME(vessel, /singleton/reagent/blood)
|
||||
vessel.add_reagent(/singleton/reagent/blood,560.0-total_blood, temperature = species.body_temperature)
|
||||
|
||||
|
||||
/*
|
||||
@@ -437,7 +437,7 @@ This function restores all organs.
|
||||
return FALSE
|
||||
|
||||
if(damage > 15 && prob(damage*4) && ORGAN_CAN_FEEL_PAIN(organ))
|
||||
if(REAGENT_VOLUME(reagents, /decl/reagent/adrenaline) < 15)
|
||||
if(REAGENT_VOLUME(reagents, /singleton/reagent/adrenaline) < 15)
|
||||
make_adrenaline(round(damage/10))
|
||||
|
||||
switch(damagetype)
|
||||
@@ -479,4 +479,4 @@ This function restores all organs.
|
||||
|
||||
/mob/living/carbon/human/remove_blood_simple(var/blood)
|
||||
if(should_have_organ(BP_HEART))
|
||||
vessel.remove_reagent(/decl/reagent/blood, blood)
|
||||
vessel.remove_reagent(/singleton/reagent/blood, blood)
|
||||
|
||||
@@ -18,7 +18,7 @@ emp_act
|
||||
var/deflection_chance = check_martial_deflection_chance()
|
||||
if(prob(deflection_chance))
|
||||
visible_message(SPAN_WARNING("\The [src] deftly dodges \the [P]!"), SPAN_NOTICE("You deftly dodge \the [P]!"))
|
||||
playsound(src, /decl/sound_category/bulletflyby_sound, 75, TRUE)
|
||||
playsound(src, /singleton/sound_category/bulletflyby_sound, 75, TRUE)
|
||||
return PROJECTILE_DODGED
|
||||
|
||||
def_zone = check_zone(def_zone)
|
||||
|
||||
@@ -111,8 +111,8 @@
|
||||
var/list/equipment_overlays = list() // Extra overlays from equipped items
|
||||
|
||||
var/is_noisy = FALSE // if TRUE, movement should make sound.
|
||||
var/bodyfall_sound = /decl/sound_category/bodyfall_sound
|
||||
var/footsound = /decl/sound_category/blank_footsteps
|
||||
var/bodyfall_sound = /singleton/sound_category/bodyfall_sound
|
||||
var/footsound = /singleton/sound_category/blank_footsteps
|
||||
|
||||
var/last_x = 0
|
||||
var/last_y = 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/carbon/human/get_acrobatics_multiplier(var/decl/maneuver/attempting_maneuver)
|
||||
/mob/living/carbon/human/get_acrobatics_multiplier(var/singleton/maneuver/attempting_maneuver)
|
||||
. = ..()
|
||||
|
||||
// Broken limb checks
|
||||
@@ -15,7 +15,7 @@
|
||||
if(suspension && . < 3)
|
||||
. = max(. + suspension.jump_bonus, 3)
|
||||
|
||||
/mob/living/carbon/human/can_do_maneuver(var/decl/maneuver/maneuver, var/silent = FALSE)
|
||||
/mob/living/carbon/human/can_do_maneuver(var/singleton/maneuver/maneuver, var/silent = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(nutrition <= 20)
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
/mob/living/carbon/human/proc/handle_trace_chems()
|
||||
//New are added for reagents to random organs.
|
||||
for(var/_A in reagents.reagent_volumes)
|
||||
var/decl/reagent/A = decls_repository.get_decl(_A)
|
||||
var/singleton/reagent/A = GET_SINGLETON(_A)
|
||||
var/obj/item/organ/O = pick(organs)
|
||||
O.trace_chemicals[A.name] = 100
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
O.set_dna(dna)
|
||||
|
||||
/mob/living/carbon/human/proc/get_blood_alcohol()
|
||||
return round(intoxication/max(REAGENT_VOLUME(vessel, /decl/reagent/blood),1),0.01)
|
||||
return round(intoxication/max(REAGENT_VOLUME(vessel, /singleton/reagent/blood),1),0.01)
|
||||
|
||||
/mob/living/proc/is_asystole()
|
||||
return FALSE
|
||||
|
||||
@@ -895,7 +895,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
D.create_reagents(200)
|
||||
if(!src)
|
||||
return
|
||||
D.reagents.add_reagent(/decl/reagent/fuel/napalm, 200)
|
||||
D.reagents.add_reagent(/singleton/reagent/fuel/napalm, 200)
|
||||
D.set_color()
|
||||
D.set_up(my_target, rand(6,8), 1, 50)
|
||||
return
|
||||
@@ -940,7 +940,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
adjustBruteLoss(-10*O.amount)
|
||||
adjustFireLoss(-10*O.amount)
|
||||
if(!(species.flags & NO_BLOOD))
|
||||
vessel.add_reagent(/decl/reagent/blood,20*O.amount, temperature = species.body_temperature)
|
||||
vessel.add_reagent(/singleton/reagent/blood,20*O.amount, temperature = species.body_temperature)
|
||||
qdel(O)
|
||||
last_special = world.time + 50
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
sleeping = max(sleeping, 6 SECONDS)
|
||||
adjustBrainLoss(1,5)
|
||||
|
||||
if (bac > INTOX_DEATH*SR && !src.reagents.has_reagent(/decl/reagent/ethylredoxrazine)) //Death usually occurs here
|
||||
if (bac > INTOX_DEATH*SR && !src.reagents.has_reagent(/singleton/reagent/ethylredoxrazine)) //Death usually occurs here
|
||||
add_chemical_effect(CE_HEPATOTOXIC, 10)
|
||||
adjustOxyLoss(3,100)
|
||||
adjustBrainLoss(1,50)
|
||||
|
||||
@@ -697,9 +697,9 @@
|
||||
// TODO: stomach and bloodstream organ.
|
||||
if(!isSynthetic())
|
||||
handle_trace_chems()
|
||||
if(vessel && (/decl/reagent/blood in vessel.reagent_data))
|
||||
if(vessel && (/singleton/reagent/blood in vessel.reagent_data))
|
||||
// update the trace chems in our blood vessels
|
||||
var/decl/reagent/blood/B = decls_repository.get_decl(/decl/reagent/blood)
|
||||
var/singleton/reagent/blood/B = GET_SINGLETON(/singleton/reagent/blood)
|
||||
B.handle_trace_chems(vessel)
|
||||
|
||||
for(var/_R in chem_doses)
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
)
|
||||
var/list/unarmed_attacks = null // For empty hand harm-intent attack
|
||||
var/standing_jump_range = 2
|
||||
var/list/maneuvers = list(/decl/maneuver/leap)
|
||||
var/list/maneuvers = list(/singleton/maneuver/leap)
|
||||
|
||||
var/pain_mod = 1 // Pain multiplier
|
||||
var/brute_mod = 1 // Physical damage multiplier.
|
||||
@@ -170,9 +170,9 @@
|
||||
|
||||
// Order matters, higher pain level should be higher up
|
||||
var/list/pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/scream, /decl/emote/audible/whimper, /decl/emote/audible/moan, /decl/emote/audible/cry) = 70,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/moan) = 40,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan) = 10,
|
||||
list(/singleton/emote/audible/scream, /singleton/emote/audible/whimper, /singleton/emote/audible/moan, /singleton/emote/audible/cry) = 70,
|
||||
list(/singleton/emote/audible/grunt, /singleton/emote/audible/groan, /singleton/emote/audible/moan) = 40,
|
||||
list(/singleton/emote/audible/grunt, /singleton/emote/audible/groan) = 10,
|
||||
)
|
||||
|
||||
// HUD data vars.
|
||||
@@ -276,13 +276,13 @@
|
||||
var/default_g_style = "None"
|
||||
|
||||
var/list/possible_cultures = list(
|
||||
/decl/origin_item/culture/unknown
|
||||
/singleton/origin_item/culture/unknown
|
||||
)
|
||||
|
||||
var/zombie_type //What zombie species they become
|
||||
var/list/character_color_presets
|
||||
var/bodyfall_sound = /decl/sound_category/bodyfall_sound //default, can be used for species specific falling sounds
|
||||
var/footsound = /decl/sound_category/blank_footsteps //same as above but for footsteps without shoes
|
||||
var/bodyfall_sound = /singleton/sound_category/bodyfall_sound //default, can be used for species specific falling sounds
|
||||
var/footsound = /singleton/sound_category/blank_footsteps //same as above but for footsteps without shoes
|
||||
|
||||
var/list/alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH, BP_APPENDIX) //what internal organs can be changed in character setup
|
||||
var/list/possible_external_organs_modifications = list("Normal","Amputated","Prosthesis")
|
||||
@@ -720,7 +720,7 @@
|
||||
return FALSE
|
||||
|
||||
/datum/species/proc/get_digestion_product()
|
||||
return /decl/reagent/nutriment
|
||||
return /singleton/reagent/nutriment
|
||||
|
||||
/datum/species/proc/can_commune()
|
||||
return FALSE
|
||||
@@ -744,7 +744,7 @@
|
||||
var/pain_level = pain_emotes_with_pain_level[pain_emotes]
|
||||
if(pain_power >= pain_level)
|
||||
// This assumes that if a pain-level has been defined it also has a list of emotes to go with it
|
||||
var/decl/emote/E = decls_repository.get_decl(pick(pain_emotes))
|
||||
var/singleton/emote/E = GET_SINGLETON(pick(pain_emotes))
|
||||
return E.key
|
||||
|
||||
/datum/species/proc/get_injection_modifier()
|
||||
|
||||
@@ -211,8 +211,8 @@
|
||||
infection_chance -= target.get_blocked_ratio(zone, BRUTE, damage_flags = DAM_SHARP|DAM_EDGE, damage = damage)*100
|
||||
if(prob(infection_chance))
|
||||
if(target.reagents)
|
||||
var/trioxin_amount = REAGENT_VOLUME(target.reagents, /decl/reagent/toxin/trioxin)
|
||||
target.reagents.add_reagent(/decl/reagent/toxin/trioxin, min(10, ZOMBIE_MAX_TRIOXIN - trioxin_amount))
|
||||
var/trioxin_amount = REAGENT_VOLUME(target.reagents, /singleton/reagent/toxin/trioxin)
|
||||
target.reagents.add_reagent(/singleton/reagent/toxin/trioxin, min(10, ZOMBIE_MAX_TRIOXIN - trioxin_amount))
|
||||
|
||||
/datum/unarmed_attack/golem
|
||||
attack_verb = list("smashed", "crushed", "rammed")
|
||||
|
||||
@@ -112,17 +112,17 @@
|
||||
max_hydration_factor = -1
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/xrim,
|
||||
/decl/origin_item/culture/eum,
|
||||
/decl/origin_item/culture/narrows,
|
||||
/decl/origin_item/culture/diona_biesel,
|
||||
/decl/origin_item/culture/diona_sol,
|
||||
/decl/origin_item/culture/diona_eridani,
|
||||
/decl/origin_item/culture/diona_dominia,
|
||||
/decl/origin_item/culture/dionae_moghes,
|
||||
/decl/origin_item/culture/dionae_nralakk,
|
||||
/decl/origin_item/culture/diona_coalition,
|
||||
/decl/origin_item/culture/deep_space
|
||||
/singleton/origin_item/culture/xrim,
|
||||
/singleton/origin_item/culture/eum,
|
||||
/singleton/origin_item/culture/narrows,
|
||||
/singleton/origin_item/culture/diona_biesel,
|
||||
/singleton/origin_item/culture/diona_sol,
|
||||
/singleton/origin_item/culture/diona_eridani,
|
||||
/singleton/origin_item/culture/diona_dominia,
|
||||
/singleton/origin_item/culture/dionae_moghes,
|
||||
/singleton/origin_item/culture/dionae_nralakk,
|
||||
/singleton/origin_item/culture/diona_coalition,
|
||||
/singleton/origin_item/culture/deep_space
|
||||
)
|
||||
|
||||
alterable_internal_organs = list()
|
||||
|
||||
@@ -384,7 +384,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL,
|
||||
death_message = "shatters into many shards!"
|
||||
death_message_range = 7
|
||||
|
||||
death_sound = /decl/sound_category/glass_break_sound
|
||||
death_sound = /singleton/sound_category/glass_break_sound
|
||||
|
||||
heat_level_1 = T0C+350
|
||||
heat_level_2 = T0C+550
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/biesellite,
|
||||
/decl/origin_item/culture/solarian,
|
||||
/decl/origin_item/culture/dominia,
|
||||
/decl/origin_item/culture/coalition,
|
||||
/decl/origin_item/culture/elyran
|
||||
/singleton/origin_item/culture/biesellite,
|
||||
/singleton/origin_item/culture/solarian,
|
||||
/singleton/origin_item/culture/dominia,
|
||||
/singleton/origin_item/culture/coalition,
|
||||
/singleton/origin_item/culture/elyran
|
||||
)
|
||||
|
||||
zombie_type = SPECIES_ZOMBIE
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
var/obj/item/organ/internal/stomach/S = H.internal_organs_by_name[BP_STOMACH]
|
||||
if(S)
|
||||
for(var/_R in S.ingested.reagent_volumes)
|
||||
if(_R == /decl/reagent/rmt)
|
||||
if(_R == /singleton/reagent/rmt)
|
||||
return 0
|
||||
|
||||
return 4
|
||||
@@ -84,7 +84,7 @@
|
||||
var/obj/item/organ/internal/stomach/S = H.internal_organs_by_name[BP_STOMACH]
|
||||
if(S)
|
||||
for(var/_R in S.ingested.reagent_volumes)
|
||||
if(_R == /decl/reagent/rmt)
|
||||
if(_R == /singleton/reagent/rmt)
|
||||
return
|
||||
|
||||
var/pain_message = pick("You feel sluggish as if something is weighing you down.",
|
||||
|
||||
@@ -119,17 +119,17 @@
|
||||
max_hydration_factor = -1
|
||||
max_nutrition_factor = -1
|
||||
|
||||
bodyfall_sound = /decl/sound_category/bodyfall_machine_sound
|
||||
bodyfall_sound = /singleton/sound_category/bodyfall_machine_sound
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/ipc_sol,
|
||||
/decl/origin_item/culture/ipc_elyra,
|
||||
/decl/origin_item/culture/ipc_coalition,
|
||||
/decl/origin_item/culture/ipc_tau_ceti,
|
||||
/decl/origin_item/culture/golden_deep,
|
||||
/decl/origin_item/culture/megacorporate,
|
||||
/decl/origin_item/culture/scrapper,
|
||||
/decl/origin_item/culture/orepit_trinary
|
||||
/singleton/origin_item/culture/ipc_sol,
|
||||
/singleton/origin_item/culture/ipc_elyra,
|
||||
/singleton/origin_item/culture/ipc_coalition,
|
||||
/singleton/origin_item/culture/ipc_tau_ceti,
|
||||
/singleton/origin_item/culture/golden_deep,
|
||||
/singleton/origin_item/culture/megacorporate,
|
||||
/singleton/origin_item/culture/scrapper,
|
||||
/singleton/origin_item/culture/orepit_trinary
|
||||
)
|
||||
|
||||
alterable_internal_organs = list()
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
/mob/living/carbon/human/proc/check_tag,
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
|
||||
bodyfall_sound = /decl/sound_category/bodyfall_sound
|
||||
bodyfall_sound = /singleton/sound_category/bodyfall_sound
|
||||
|
||||
/datum/species/machine/shell/get_species(var/reference, var/mob/living/carbon/human/H, var/records)
|
||||
if(reference)
|
||||
@@ -161,7 +161,7 @@
|
||||
appearance_flags = HAS_EYE_COLOR | HAS_UNDERWEAR | HAS_SOCKS
|
||||
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap/industrial
|
||||
/singleton/maneuver/leap/industrial
|
||||
)
|
||||
|
||||
heat_level_1 = 800
|
||||
@@ -460,7 +460,7 @@
|
||||
/mob/living/carbon/human/proc/check_tag
|
||||
)
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap/zenghu
|
||||
/singleton/maneuver/leap/zenghu
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
default_h_style = "Headtails"
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/federation,
|
||||
/decl/origin_item/culture/non_federation
|
||||
/singleton/origin_item/culture/federation,
|
||||
/singleton/origin_item/culture/non_federation
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
@@ -96,15 +96,15 @@
|
||||
)
|
||||
|
||||
zombie_type = SPECIES_ZOMBIE_SKRELL
|
||||
bodyfall_sound = /decl/sound_category/bodyfall_skrell_sound
|
||||
footsound = /decl/sound_category/footstep_skrell_sound
|
||||
bodyfall_sound = /singleton/sound_category/bodyfall_skrell_sound
|
||||
footsound = /singleton/sound_category/footstep_skrell_sound
|
||||
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
|
||||
|
||||
/datum/species/skrell/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
|
||||
var/list/trail_info = ..()
|
||||
if(!length(trail_info) && !H.shoes)
|
||||
var/list/blood_data = REAGENT_DATA(H.vessel, /decl/reagent/blood)
|
||||
var/list/blood_data = REAGENT_DATA(H.vessel, /singleton/reagent/blood)
|
||||
trail_info["footprint_DNA"] = list(blood_data["blood_DNA"] = blood_data["blood_type"])
|
||||
trail_info["footprint_color"] = rgb(H.r_skin, H.g_skin, H.b_skin, 25)
|
||||
trail_info["footprint_type"] = /obj/effect/decal/cleanable/blood/tracks/footprints/barefoot/del_dry // makes skrellprints del on dry
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/datum/unarmed_attack/bite/sharp
|
||||
)
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap/tajara
|
||||
/singleton/maneuver/leap/tajara
|
||||
)
|
||||
darksight = 8
|
||||
slowdown = -1
|
||||
@@ -95,8 +95,8 @@
|
||||
default_h_style = "Tajaran Ears"
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/adhomian,
|
||||
/decl/origin_item/culture/offworld_tajara
|
||||
/singleton/origin_item/culture/adhomian,
|
||||
/singleton/origin_item/culture/offworld_tajara
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
climb_coeff = 1.1
|
||||
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap
|
||||
/singleton/maneuver/leap
|
||||
)
|
||||
|
||||
resist_mod = 1.5 // ZHAN POWERRRRRR
|
||||
@@ -42,8 +42,8 @@
|
||||
hydration_loss_factor = 0.7
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/adhomian/zhan,
|
||||
/decl/origin_item/culture/offworld_tajara/zhan
|
||||
/singleton/origin_item/culture/adhomian/zhan,
|
||||
/singleton/origin_item/culture/offworld_tajara/zhan
|
||||
)
|
||||
|
||||
/datum/species/tajaran/m_sai
|
||||
@@ -63,7 +63,7 @@
|
||||
ethanol_resistance = 0.6 // Species Default 0.8
|
||||
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap/tajara/msai
|
||||
/singleton/maneuver/leap/tajara/msai
|
||||
)
|
||||
|
||||
cold_level_1 = 220 //RaceDefault 200 Default 260
|
||||
@@ -87,6 +87,6 @@
|
||||
hydration_loss_factor = 0.9
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/adhomian/msai,
|
||||
/decl/origin_item/culture/offworld_tajara/msai
|
||||
/singleton/origin_item/culture/adhomian/msai,
|
||||
/singleton/origin_item/culture/offworld_tajara/msai
|
||||
)
|
||||
@@ -113,9 +113,9 @@
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
|
||||
|
||||
pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/wheeze, /decl/emote/audible/roar, /decl/emote/audible/bellow) = 80,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/wheeze, /decl/emote/audible/hiss) = 50,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/hiss) = 20,
|
||||
list(/singleton/emote/audible/wheeze, /singleton/emote/audible/roar, /singleton/emote/audible/bellow) = 80,
|
||||
list(/singleton/emote/audible/grunt, /singleton/emote/audible/groan, /singleton/emote/audible/wheeze, /singleton/emote/audible/hiss) = 50,
|
||||
list(/singleton/emote/audible/grunt, /singleton/emote/audible/groan, /singleton/emote/audible/hiss) = 20,
|
||||
)
|
||||
|
||||
pain_messages = list("It hurts so much", "You really need some painkillers", "Ancestors, it hurts")
|
||||
@@ -123,10 +123,10 @@
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/izweski,
|
||||
/decl/origin_item/culture/traditionalists,
|
||||
/decl/origin_item/culture/spaceborn,
|
||||
/decl/origin_item/culture/dominian_unathi
|
||||
/singleton/origin_item/culture/izweski,
|
||||
/singleton/origin_item/culture/traditionalists,
|
||||
/singleton/origin_item/culture/spaceborn,
|
||||
/singleton/origin_item/culture/dominian_unathi
|
||||
)
|
||||
|
||||
zombie_type = SPECIES_ZOMBIE_UNATHI
|
||||
|
||||
@@ -131,9 +131,9 @@
|
||||
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/zora,
|
||||
/decl/origin_item/culture/klax,
|
||||
/decl/origin_item/culture/cthur
|
||||
/singleton/origin_item/culture/zora,
|
||||
/singleton/origin_item/culture/klax,
|
||||
/singleton/origin_item/culture/cthur
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -94,9 +94,9 @@
|
||||
flags = NO_SLIP | NO_ARTERIES | PHORON_IMMUNE
|
||||
|
||||
possible_cultures = list(
|
||||
/decl/origin_item/culture/zora_breeder,
|
||||
/decl/origin_item/culture/klax_breeder,
|
||||
/decl/origin_item/culture/cthur_breeder
|
||||
/singleton/origin_item/culture/zora_breeder,
|
||||
/singleton/origin_item/culture/klax_breeder,
|
||||
/singleton/origin_item/culture/cthur_breeder
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/claws/vaurca_bulwark)
|
||||
maneuvers = list(
|
||||
/decl/maneuver/leap/bulwark
|
||||
/singleton/maneuver/leap/bulwark
|
||||
)
|
||||
|
||||
natural_armor = list(
|
||||
|
||||
@@ -7,8 +7,8 @@ var/global/list/sparring_attack_cache = list()
|
||||
var/desc = "A simple unarmed attack."
|
||||
var/damage = 0 // Extra empty hand attack damage.
|
||||
var/armor_penetration = 0
|
||||
var/attack_sound = /decl/sound_category/punch_sound
|
||||
var/miss_sound = /decl/sound_category/punchmiss_sound
|
||||
var/attack_sound = /singleton/sound_category/punch_sound
|
||||
var/miss_sound = /singleton/sound_category/punchmiss_sound
|
||||
var/shredding = 0 // Calls the old attack_alien() behavior on objects/mobs when on harm intent.
|
||||
var/attack_door = 0 // Whether the attack can damage airlocks and how much damage it does
|
||||
var/crowbar_door = FALSE
|
||||
@@ -213,7 +213,7 @@ var/global/list/sparring_attack_cache = list()
|
||||
attack_name = "palm"
|
||||
|
||||
/datum/unarmed_attack/palm/unathi // only one more damage, pretty much just for show
|
||||
attack_sound = /decl/sound_category/punch_bassy_sound
|
||||
attack_sound = /singleton/sound_category/punch_bassy_sound
|
||||
desc = "Striking your opponent with your palm. A method of dishing out damage without risking your claws or shredding your opponent to ribbons. This method of attack showcases some more restraint, the damage output is more stable, too."
|
||||
damage = 3
|
||||
|
||||
@@ -224,7 +224,7 @@ var/global/list/sparring_attack_cache = list()
|
||||
/datum/unarmed_attack/kick
|
||||
attack_verb = list("kicked", "kicked", "kicked", "kneed")
|
||||
attack_noun = list("kick", "kick", "kick", "knee strike")
|
||||
attack_sound = /decl/sound_category/swing_hit_sound
|
||||
attack_sound = /singleton/sound_category/swing_hit_sound
|
||||
desc = "A high risk, pretty low reward move. It could be useful if your shoes has a knife sticking out the front, or if you're a trained martial arts master. Make sure to target the lower parts of the body, or else you won't be able to reach!"
|
||||
damage = 0
|
||||
attack_name = "kick"
|
||||
@@ -270,7 +270,7 @@ var/global/list/sparring_attack_cache = list()
|
||||
/datum/unarmed_attack/stomp
|
||||
attack_verb = null
|
||||
attack_noun = list("stomp")
|
||||
attack_sound = /decl/sound_category/swing_hit_sound
|
||||
attack_sound = /singleton/sound_category/swing_hit_sound
|
||||
desc = "An incredible tactic for turning a downed opponent into tenderized meat! Stomping is a safe and sound method of dispatching downed enemies, but it only works if they're already lying down."
|
||||
damage = 0
|
||||
attack_name = "stomp"
|
||||
@@ -332,4 +332,4 @@ var/global/list/sparring_attack_cache = list()
|
||||
desc = "Sparring: A heavy strike to your opponent. With poise and precision, no evidence will be left behind! They WILL ABSOLUTELY feel this, but will suffer no dangerous side effect, unless you punch them into cardiac arrest! Show off your might!"
|
||||
damage = 4
|
||||
attack_name = "heavy hit"
|
||||
attack_sound = /decl/sound_category/punch_bassy_sound
|
||||
attack_sound = /singleton/sound_category/punch_bassy_sound
|
||||
@@ -31,7 +31,7 @@
|
||||
/obj/item/slime_extract/Initialize()
|
||||
. = ..()
|
||||
create_reagents(100)
|
||||
reagents.add_reagent(/decl/reagent/slimejelly, 30)
|
||||
reagents.add_reagent(/singleton/reagent/slimejelly, 30)
|
||||
|
||||
/obj/item/slime_extract/grey
|
||||
name = "grey slime extract"
|
||||
@@ -295,8 +295,8 @@
|
||||
G.set_species(golem_type)
|
||||
G.name = G.species.get_random_name()
|
||||
G.real_name = G.name
|
||||
G.culture = decls_repository.get_decl(/decl/origin_item/culture/golem)
|
||||
G.origin = decls_repository.get_decl(/decl/origin_item/origin/golem)
|
||||
G.culture = GET_SINGLETON(/singleton/origin_item/culture/golem)
|
||||
G.origin = GET_SINGLETON(/singleton/origin_item/origin/golem)
|
||||
G.accent = G.origin.possible_accents[1]
|
||||
G.citizenship = G.origin.possible_citizenships[1]
|
||||
G.religion = G.origin.possible_religions[1]
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
var/is_adult = 0
|
||||
speak_emote = list("chirps")
|
||||
mob_size = 4
|
||||
composition_reagent = /decl/reagent/slimejelly
|
||||
composition_reagent = /singleton/reagent/slimejelly
|
||||
layer = 5
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
@@ -164,9 +164,9 @@
|
||||
tally += (283.222 - bodytemperature) / 10 * 1.75
|
||||
|
||||
if(reagents)
|
||||
if(reagents.has_reagent(/decl/reagent/hyperzine)) // Hyperzine slows slimes down
|
||||
if(reagents.has_reagent(/singleton/reagent/hyperzine)) // Hyperzine slows slimes down
|
||||
tally *= 2
|
||||
if(reagents.has_reagent(/decl/reagent/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow
|
||||
if(reagents.has_reagent(/singleton/reagent/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow
|
||||
tally *= 5
|
||||
|
||||
if(health <= 0) // if damaged, the slime moves twice as slow
|
||||
@@ -291,7 +291,7 @@
|
||||
if(victim == M)
|
||||
if(prob(60))
|
||||
visible_message(SPAN_WARNING("[M] attempts to wrestle \the [name] off!"))
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
else
|
||||
visible_message(SPAN_WARNING("[M] manages to wrestle \the [name] off!"))
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
@@ -312,7 +312,7 @@
|
||||
else
|
||||
if(prob(30))
|
||||
visible_message(SPAN_WARNING("[M] attempts to wrestle \the [name] off of [victim]!"))
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
else
|
||||
visible_message(SPAN_WARNING("[M] manages to wrestle \the [name] off of [victim]!"))
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
@@ -371,14 +371,14 @@
|
||||
sleep(3)
|
||||
step_away(src,M,15)
|
||||
|
||||
playsound(loc, /decl/sound_category/punch_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punch_sound, 25, 1, -1)
|
||||
visible_message(SPAN_DANGER("[M] has punched [src]!"), \
|
||||
SPAN_DANGER("[M] has punched [src]!"))
|
||||
|
||||
adjustBruteLoss(damage)
|
||||
updatehealth()
|
||||
else
|
||||
playsound(loc, /decl/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/punchmiss_sound, 25, 1, -1)
|
||||
visible_message(SPAN_DANGER("[M] has attempted to punch [src]!"))
|
||||
return
|
||||
|
||||
|
||||
@@ -34,10 +34,10 @@ calculate text size per text.
|
||||
var/list/tastes = list() //descriptor = strength
|
||||
if(minimum_percent <= 100)
|
||||
for(var/_R in reagent_volumes)
|
||||
var/decl/reagent/R = decls_repository.get_decl(_R)
|
||||
var/singleton/reagent/R = GET_SINGLETON(_R)
|
||||
if(!R.taste_mult)
|
||||
continue
|
||||
if(_R == /decl/reagent/nutriment)
|
||||
if(_R == /singleton/reagent/nutriment)
|
||||
var/list/taste_data = REAGENT_DATA(src, _R)
|
||||
for(var/taste in taste_data)
|
||||
if(taste in tastes)
|
||||
@@ -96,4 +96,4 @@ calculate text size per text.
|
||||
return "[temp_text][temp_text ? " " : ""][english_list(out, "something indescribable")]."
|
||||
|
||||
/mob/living/carbon/proc/get_fullness()
|
||||
return nutrition + (REAGENT_VOLUME(reagents, /decl/reagent/nutriment) * 25)
|
||||
return nutrition + (REAGENT_VOLUME(reagents, /singleton/reagent/nutriment) * 25)
|
||||
|
||||
@@ -630,9 +630,9 @@ default behaviour is:
|
||||
location.add_blood(M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/total_blood = round(REAGENT_VOLUME(H.vessel, /decl/reagent/blood))
|
||||
var/total_blood = round(REAGENT_VOLUME(H.vessel, /singleton/reagent/blood))
|
||||
if(total_blood > 0)
|
||||
H.vessel.remove_reagent(/decl/reagent/blood, 1)
|
||||
H.vessel.remove_reagent(/singleton/reagent/blood, 1)
|
||||
|
||||
|
||||
step(pulling, get_dir(pulling.loc, T))
|
||||
@@ -934,9 +934,9 @@ default behaviour is:
|
||||
if (!composition_reagent)//if no reagent has been set, then we'll set one
|
||||
var/type = find_type(src)
|
||||
if (type & TYPE_SYNTHETIC)
|
||||
src.composition_reagent = /decl/reagent/iron
|
||||
src.composition_reagent = /singleton/reagent/iron
|
||||
else
|
||||
src.composition_reagent = /decl/reagent/nutriment/protein
|
||||
src.composition_reagent = /singleton/reagent/nutriment/protein
|
||||
|
||||
//if the mob is a simple animal with a defined meat quantity
|
||||
if (istype(src, /mob/living/simple_animal))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living
|
||||
var/decl/maneuver/prepared_maneuver
|
||||
var/singleton/maneuver/prepared_maneuver
|
||||
var/list/available_maneuvers = list()
|
||||
|
||||
/mob/living/begin_falling(var/lastloc, var/below)
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
var/list/maneuvers = list()
|
||||
for(var/maneuver in available_maneuvers)
|
||||
maneuvers += decls_repository.get_decl(maneuver)
|
||||
maneuvers += GET_SINGLETON(maneuver)
|
||||
|
||||
var/next_maneuver = input(src, "Select a maneuver.") as null|anything in maneuvers
|
||||
if(next_maneuver)
|
||||
@@ -47,14 +47,14 @@
|
||||
to_chat(src, SPAN_NOTICE("You are no longer preparing to perform a maneuver."))
|
||||
|
||||
/mob/living/proc/perform_maneuver(var/maneuver, var/atom/target)
|
||||
var/decl/maneuver/performing_maneuver = ispath(maneuver) ? decls_repository.get_decl(maneuver) : maneuver
|
||||
var/singleton/maneuver/performing_maneuver = ispath(maneuver) ? GET_SINGLETON(maneuver) : maneuver
|
||||
if(istype(performing_maneuver))
|
||||
. = performing_maneuver.perform(src, target, get_acrobatics_multiplier(performing_maneuver))
|
||||
|
||||
/mob/living/proc/get_acrobatics_multiplier(var/decl/maneuver/attempting_maneuver)
|
||||
/mob/living/proc/get_acrobatics_multiplier(var/singleton/maneuver/attempting_maneuver)
|
||||
return 1
|
||||
|
||||
/mob/living/proc/can_do_maneuver(var/decl/maneuver/maneuver, var/silent = FALSE)
|
||||
/mob/living/proc/can_do_maneuver(var/singleton/maneuver/maneuver, var/silent = FALSE)
|
||||
. = ((istype(maneuver) ? maneuver.type : maneuver) in available_maneuvers)
|
||||
|
||||
/mob/living/proc/get_jump_distance()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/decl/maneuver
|
||||
/singleton/maneuver
|
||||
var/name = "unnamed"
|
||||
var/delay = 2 SECONDS
|
||||
var/cooldown = 5 SECONDS
|
||||
@@ -6,7 +6,7 @@
|
||||
var/reflexive_modifier = 1
|
||||
var/charge_cost = 0 //Charge cost for robot species.
|
||||
|
||||
/decl/maneuver/proc/can_be_used_by(var/mob/living/user, var/atom/target, var/silent = FALSE)
|
||||
/singleton/maneuver/proc/can_be_used_by(var/mob/living/user, var/atom/target, var/silent = FALSE)
|
||||
if(!istype(user) || !user.can_do_maneuver(src, silent))
|
||||
return FALSE
|
||||
if(user.buckled_to)
|
||||
@@ -36,10 +36,10 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/decl/maneuver/proc/show_initial_message(var/mob/user, var/atom/target)
|
||||
/singleton/maneuver/proc/show_initial_message(var/mob/user, var/atom/target)
|
||||
return
|
||||
|
||||
/decl/maneuver/proc/perform(var/mob/living/user, var/atom/target, var/strength, var/reflexively = FALSE)
|
||||
/singleton/maneuver/proc/perform(var/mob/living/user, var/atom/target, var/strength, var/reflexively = FALSE)
|
||||
if(can_be_used_by(user, target))
|
||||
if(!reflexively)
|
||||
show_initial_message(user, target)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/decl/maneuver/leap
|
||||
/singleton/maneuver/leap
|
||||
name = "leap"
|
||||
stamina_cost = 10
|
||||
charge_cost = 500
|
||||
reflexive_modifier = 1.5
|
||||
|
||||
/decl/maneuver/leap/perform(var/mob/living/user, var/atom/target, var/strength, var/reflexively = FALSE)
|
||||
/singleton/maneuver/leap/perform(var/mob/living/user, var/atom/target, var/strength, var/reflexively = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/old_pass_flags = user.pass_flags
|
||||
@@ -18,7 +18,7 @@
|
||||
user.throw_at(get_turf(target), strength, 1, user, FALSE)
|
||||
end_leap(user, target, old_pass_flags)
|
||||
|
||||
/decl/maneuver/leap/proc/end_leap(var/mob/living/user, var/atom/target, var/pass_flag)
|
||||
/singleton/maneuver/leap/proc/end_leap(var/mob/living/user, var/atom/target, var/pass_flag)
|
||||
user.pass_flags = pass_flag
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
@@ -44,10 +44,10 @@
|
||||
to_chat(H, SPAN_DANGER("<font size=4>You land on [rebecca]!</font>")) //since the mob won't be on the turf yet
|
||||
user.post_maneuver()
|
||||
|
||||
/decl/maneuver/leap/show_initial_message(var/mob/living/user, var/atom/target)
|
||||
/singleton/maneuver/leap/show_initial_message(var/mob/living/user, var/atom/target)
|
||||
user.visible_message(SPAN_WARNING("\The [user] crouches, preparing for a leap!"))
|
||||
|
||||
/decl/maneuver/leap/can_be_used_by(var/mob/living/user, var/atom/target, var/silent = FALSE)
|
||||
/singleton/maneuver/leap/can_be_used_by(var/mob/living/user, var/atom/target, var/silent = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/can_leap_distance = user.get_jump_distance() * user.get_acrobatics_multiplier()
|
||||
@@ -65,13 +65,13 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/decl/maneuver/leap/spider
|
||||
/singleton/maneuver/leap/spider
|
||||
stamina_cost = 0
|
||||
|
||||
/decl/maneuver/leap/spider/show_initial_message(var/mob/living/user, var/atom/target)
|
||||
/singleton/maneuver/leap/spider/show_initial_message(var/mob/living/user, var/atom/target)
|
||||
user.visible_message(SPAN_WARNING("\The [user] reels back and prepares to launch itself at \the [target]!"))
|
||||
|
||||
/decl/maneuver/leap/grab/end_leap(mob/living/user, atom/target, pass_flag)
|
||||
/singleton/maneuver/leap/grab/end_leap(mob/living/user, atom/target, pass_flag)
|
||||
. = ..()
|
||||
if(ishuman(user) && !user.lying && ismob(target) && user.Adjacent(target))
|
||||
var/mob/living/carbon/human/H = user
|
||||
@@ -92,21 +92,21 @@
|
||||
G.icon_state = "grabbed1"
|
||||
G.synch()
|
||||
|
||||
/decl/maneuver/leap/industrial
|
||||
/singleton/maneuver/leap/industrial
|
||||
cooldown = 8 SECONDS
|
||||
|
||||
/decl/maneuver/leap/zenghu
|
||||
/singleton/maneuver/leap/zenghu
|
||||
cooldown = 4 SECONDS
|
||||
charge_cost = 1500
|
||||
|
||||
/decl/maneuver/leap/bulwark
|
||||
/singleton/maneuver/leap/bulwark
|
||||
cooldown = 10 SECONDS //bigger than industrials = more cooldown
|
||||
|
||||
/decl/maneuver/leap/tajara
|
||||
/singleton/maneuver/leap/tajara
|
||||
cooldown = 4 SECONDS
|
||||
delay = 2 SECONDS
|
||||
stamina_cost = 25
|
||||
|
||||
/decl/maneuver/leap/tajara/msai
|
||||
/singleton/maneuver/leap/tajara/msai
|
||||
delay = 1 SECOND
|
||||
cooldown = 4 SECONDS
|
||||
@@ -125,7 +125,7 @@ var/global/list/robot_modules = list(
|
||||
F.times_used--
|
||||
|
||||
if(E.reagents && (REAGENTS_FREE_SPACE(E.reagents) > 0))
|
||||
E.reagents.add_reagent(/decl/reagent/toxin/fertilizer/monoammoniumphosphate, E.max_water * 0.2)
|
||||
E.reagents.add_reagent(/singleton/reagent/toxin/fertilizer/monoammoniumphosphate, E.max_water * 0.2)
|
||||
|
||||
if(!synths.len)
|
||||
return
|
||||
@@ -243,7 +243,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
|
||||
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
|
||||
emag = new /obj/item/reagent_containers/hypospray/cmo(src)
|
||||
emag.reagents.add_reagent(/decl/reagent/wulumunusha, 30)
|
||||
emag.reagents.add_reagent(/singleton/reagent/wulumunusha, 30)
|
||||
emag.name = "Wulumunusha Hypospray"
|
||||
|
||||
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(10000)
|
||||
@@ -269,7 +269,7 @@ var/global/list/robot_modules = list(
|
||||
S.update_icon()
|
||||
if(emag)
|
||||
var/obj/item/reagent_containers/hypospray/cmo/PS = emag
|
||||
PS.reagents.add_reagent(/decl/reagent/wulumunusha, 2 * amount)
|
||||
PS.reagents.add_reagent(/singleton/reagent/wulumunusha, 2 * amount)
|
||||
..()
|
||||
|
||||
/obj/item/robot_module/medical/rescue
|
||||
@@ -299,7 +299,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
|
||||
modules += new /obj/item/gripper/paperwork(src)
|
||||
emag = new /obj/item/reagent_containers/hypospray/cmo(src)
|
||||
emag.reagents.add_reagent(/decl/reagent/wulumunusha, 30)
|
||||
emag.reagents.add_reagent(/singleton/reagent/wulumunusha, 30)
|
||||
emag.name = "Wulumunusha Hypospray"
|
||||
|
||||
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(15000)
|
||||
@@ -330,7 +330,7 @@ var/global/list/robot_modules = list(
|
||||
S.update_icon()
|
||||
if(emag)
|
||||
var/obj/item/reagent_containers/spray/PS = emag
|
||||
PS.reagents.add_reagent(/decl/reagent/wulumunusha, 2 * amount)
|
||||
PS.reagents.add_reagent(/singleton/reagent/wulumunusha, 2 * amount)
|
||||
..()
|
||||
|
||||
/obj/item/robot_module/engineering
|
||||
@@ -574,7 +574,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
|
||||
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
|
||||
emag = new /obj/item/reagent_containers/spray(src)
|
||||
emag.reagents.add_reagent(/decl/reagent/lube, 250)
|
||||
emag.reagents.add_reagent(/singleton/reagent/lube, 250)
|
||||
emag.name = "Lube spray"
|
||||
|
||||
/obj/item/robot_module/janitor/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
|
||||
@@ -583,7 +583,7 @@ var/global/list/robot_modules = list(
|
||||
LR.Charge(R, amount)
|
||||
if(emag)
|
||||
var/obj/item/reagent_containers/spray/S = emag
|
||||
S.reagents.add_reagent(/decl/reagent/lube, 2 * amount)
|
||||
S.reagents.add_reagent(/singleton/reagent/lube, 2 * amount)
|
||||
|
||||
/obj/item/robot_module/service
|
||||
name = "service robot module"
|
||||
@@ -673,7 +673,7 @@ var/global/list/robot_modules = list(
|
||||
var/datum/reagents/RG = new /datum/reagents(50)
|
||||
emag.reagents = RG
|
||||
RG.my_atom = emag
|
||||
RG.add_reagent(/decl/reagent/polysomnine/beer2, 50)
|
||||
RG.add_reagent(/singleton/reagent/polysomnine/beer2, 50)
|
||||
emag.name = "Mickey Finn's Special Brew"
|
||||
|
||||
/obj/item/robot_module/service/clerical
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
to_chat(src, SPAN_WARNING("You don't have enough chemicals!"))
|
||||
return
|
||||
|
||||
var/list/choices = list("Inaprovaline" = /decl/reagent/inaprovaline, "Bicaridine" = /decl/reagent/bicaridine, "Kelotane" = /decl/reagent/kelotane, "Dylovene" = /decl/reagent/dylovene, "Hyperzine" = /decl/reagent/hyperzine, "Peridaxon" = /decl/reagent/peridaxon, "Mortaphenyl" = /decl/reagent/mortaphenyl, "Neurapan" = /decl/reagent/mental/neurapan)
|
||||
var/list/choices = list("Inaprovaline" = /singleton/reagent/inaprovaline, "Bicaridine" = /singleton/reagent/bicaridine, "Kelotane" = /singleton/reagent/kelotane, "Dylovene" = /singleton/reagent/dylovene, "Hyperzine" = /singleton/reagent/hyperzine, "Peridaxon" = /singleton/reagent/peridaxon, "Mortaphenyl" = /singleton/reagent/mortaphenyl, "Neurapan" = /singleton/reagent/mental/neurapan)
|
||||
var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in choices
|
||||
|
||||
if(!chem || chemicals < 20 || !host || controlling || !src || stat) //Sanity check.
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
canbrush = TRUE
|
||||
has_udder = TRUE
|
||||
milk_type = /decl/reagent/drink/milk/adhomai
|
||||
milk_type = /singleton/reagent/drink/milk/adhomai
|
||||
|
||||
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
|
||||
butchering_products = list(/obj/item/stack/material/animalhide = 5, /obj/item/reagent_containers/food/snacks/spreads/lard = 5)
|
||||
|
||||
@@ -25,4 +25,4 @@
|
||||
mob_size = 15
|
||||
|
||||
has_udder = TRUE
|
||||
milk_type = /decl/reagent/drink/milk/beetle
|
||||
milk_type = /singleton/reagent/drink/milk/beetle
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
health = 30
|
||||
|
||||
has_udder = TRUE
|
||||
milk_type = /decl/reagent/drink/milk/schlorrgo
|
||||
milk_type = /singleton/reagent/drink/milk/schlorrgo
|
||||
|
||||
friendly = "bumped"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
emote_see = list("jiggles", "bounces in place")
|
||||
var/colour = "grey"
|
||||
mob_size = 3
|
||||
composition_reagent = /decl/reagent/slimejelly
|
||||
composition_reagent = /singleton/reagent/slimejelly
|
||||
|
||||
/mob/living/simple_animal/slime/Initialize()
|
||||
. = ..()
|
||||
@@ -42,7 +42,7 @@
|
||||
emote_see = list("jiggles", "bounces in place")
|
||||
var/colour = "grey"
|
||||
mob_size = 6
|
||||
composition_reagent = /decl/reagent/slimejelly
|
||||
composition_reagent = /singleton/reagent/slimejelly
|
||||
|
||||
/mob/living/simple_animal/adultslime/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
heat_damage_per_tick = 20
|
||||
cold_damage_per_tick = 20
|
||||
var/poison_per_bite = 5
|
||||
var/poison_type = /decl/reagent/toxin
|
||||
var/poison_type = /singleton/reagent/toxin
|
||||
faction = "spiders"
|
||||
var/busy = 0
|
||||
pass_flags = PASSTABLE
|
||||
@@ -65,7 +65,7 @@
|
||||
armor_penetration = 20
|
||||
poison_per_bite = 10
|
||||
var/atom/cocoon_target
|
||||
poison_type = /decl/reagent/soporific
|
||||
poison_type = /singleton/reagent/soporific
|
||||
var/fed = 0
|
||||
|
||||
//hunters have the most poison and move the fastest, so they can find prey
|
||||
@@ -95,7 +95,7 @@
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 10
|
||||
armor_penetration = 15
|
||||
poison_type = /decl/reagent/perconol // mildly beneficial for organics
|
||||
poison_type = /singleton/reagent/perconol // mildly beneficial for organics
|
||||
poison_per_bite = 2
|
||||
move_to_delay = 5
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
if(isliving(.))
|
||||
var/mob/living/L = .
|
||||
if(L.reagents)
|
||||
L.reagents.add_reagent(/decl/reagent/toxin, poison_per_bite)
|
||||
L.reagents.add_reagent(/singleton/reagent/toxin, poison_per_bite)
|
||||
if(prob(poison_per_bite) && (!issilicon(L) && !isipc(L)))
|
||||
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
L.reagents.add_reagent(poison_type, 5)
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
update_icon()
|
||||
if(do_after(src, 32))
|
||||
src.visible_message(SPAN_WARNING("[src] rips up \the [T]."))
|
||||
playsound(src.loc, /decl/sound_category/crowbar_sound, 100, 1)
|
||||
playsound(src.loc, /singleton/sound_category/crowbar_sound, 100, 1)
|
||||
T.make_plating(1)
|
||||
busy = 0
|
||||
update_icon()
|
||||
|
||||
@@ -316,7 +316,7 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH
|
||||
Shoot(target, location, user)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
playsound(src, /decl/sound_category/casing_drop_sound, 50, TRUE)
|
||||
playsound(src, /singleton/sound_category/casing_drop_sound, 50, TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/Shoot(var/target, var/start, var/mob/user, var/bullet = 0)
|
||||
if(target == start)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
melee_damage_lower = 0
|
||||
melee_damage_upper = 0
|
||||
attacktext = "barrels into"
|
||||
attack_sound = /decl/sound_category/punch_sound
|
||||
attack_sound = /singleton/sound_category/punch_sound
|
||||
a_intent = I_HURT
|
||||
speak_emote = list("chirps","buzzes","whirrs")
|
||||
emote_hear = list("chirps cheerfully","buzzes","whirrs","hums placidly","chirps","hums")
|
||||
|
||||
@@ -396,7 +396,7 @@
|
||||
if(istype(A, /mob/living))
|
||||
var/mob/living/L = A
|
||||
if(L.reagents)
|
||||
var/madhouse = pick(/decl/reagent/psilocybin,/decl/reagent/mindbreaker,/decl/reagent/impedrezene,/decl/reagent/cryptobiolin,/decl/reagent/soporific,/decl/reagent/mutagen)
|
||||
var/madhouse = pick(/singleton/reagent/psilocybin,/singleton/reagent/mindbreaker,/singleton/reagent/impedrezene,/singleton/reagent/cryptobiolin,/singleton/reagent/soporific,/singleton/reagent/mutagen)
|
||||
var/madhouse_verbal_component = pick(thoughts)
|
||||
L.reagents.add_reagent("[madhouse]", 3)
|
||||
to_chat(L, "<span class='alium'><b><i>[madhouse_verbal_component]</i></b></span>")
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
apply_damage(5)
|
||||
|
||||
/mob/living/simple_animal/hostile/viscerator/lube
|
||||
reagents_to_add = list(/decl/reagent/lube = 30)
|
||||
reagents_to_add = list(/singleton/reagent/lube = 30)
|
||||
|
||||
/mob/living/simple_animal/hostile/viscerator/lube/death()
|
||||
reagents.splash(get_turf(src), 30)
|
||||
|
||||
@@ -364,4 +364,4 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "blectoplasm"
|
||||
reagents_to_add = list(/decl/reagent/bluespace_dust = 8)
|
||||
reagents_to_add = list(/singleton/reagent/bluespace_dust = 8)
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
var/has_udder = FALSE
|
||||
var/datum/reagents/udder = null
|
||||
var/milk_type = /decl/reagent/drink/milk
|
||||
var/milk_type = /singleton/reagent/drink/milk
|
||||
|
||||
var/list/butchering_products //if anything else is created when butchering this creature, like bones and leather
|
||||
|
||||
@@ -422,10 +422,10 @@
|
||||
return
|
||||
|
||||
for(var/_current in reagents.reagent_volumes)
|
||||
var/decl/reagent/current = decls_repository.get_decl(_current)
|
||||
var/singleton/reagent/current = GET_SINGLETON(_current)
|
||||
var/removed = min(current.metabolism*digest_factor, REAGENT_VOLUME(reagents, _current))
|
||||
if (_current == /decl/reagent/nutriment)//If its food, it feeds us
|
||||
var/decl/reagent/nutriment/N = current
|
||||
if (_current == /singleton/reagent/nutriment)//If its food, it feeds us
|
||||
var/singleton/reagent/nutriment/N = current
|
||||
adjustNutritionLoss(-removed*N.nutriment_factor)
|
||||
var/heal_amount = removed*N.regen_factor
|
||||
if (getBruteLoss() > 0)
|
||||
@@ -876,7 +876,7 @@
|
||||
//Todo: add snowflakey shit to it.
|
||||
/mob/living/simple_animal/electrocute_act(var/shock_damage, var/obj/source, var/base_siemens_coeff = 1.0, var/def_zone = null, var/tesla_shock = 0, var/ground_zero)
|
||||
apply_damage(shock_damage, BURN)
|
||||
playsound(loc, /decl/sound_category/spark_sound, 50, 1, -1)
|
||||
playsound(loc, /singleton/sound_category/spark_sound, 50, 1, -1)
|
||||
spark(loc, 5, alldirs)
|
||||
visible_message(SPAN_WARNING("\The [src] was shocked by \the [source]!"), SPAN_WARNING("You are shocked by \the [source]!"), SPAN_WARNING("You hear an electrical crack!"))
|
||||
|
||||
@@ -914,7 +914,7 @@
|
||||
adjustFireLoss(rand(3, 5))
|
||||
|
||||
/mob/living/simple_animal/get_digestion_product()
|
||||
return /decl/reagent/nutriment
|
||||
return /singleton/reagent/nutriment
|
||||
|
||||
/mob/living/simple_animal/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage)
|
||||
..()
|
||||
|
||||
@@ -793,7 +793,7 @@
|
||||
visible_message(SPAN_WARNING("\The [src] leans down and grips \the [H]'s arms."), SPAN_NOTICE("You lean down and grip \the [H]'s arms."))
|
||||
else //Otherwise we're probably just holding their arm to lead them somewhere
|
||||
visible_message(SPAN_WARNING("\The [src] grips \the [H]'s arm."), SPAN_NOTICE("You grip \the [H]'s arm."))
|
||||
playsound(loc, /decl/sound_category/grab_sound, 25, FALSE, -1) //Quieter than hugging/grabbing but we still want some audio feedback
|
||||
playsound(loc, /singleton/sound_category/grab_sound, 25, FALSE, -1) //Quieter than hugging/grabbing but we still want some audio feedback
|
||||
if(H.pull_damage())
|
||||
to_chat(src, "<span class='danger'>Pulling \the [H] in their current condition would probably be a bad idea.</span>")
|
||||
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
if(isslime(affecting))
|
||||
assailant.visible_message(SPAN_WARNING("[assailant] tries to squeeze [affecting], but [assailant.get_pronoun("his")] hands sink right through!"), SPAN_WARNING("You try to squeeze [affecting], but your hands sink right through!"))
|
||||
return
|
||||
playsound(loc, /decl/sound_category/grab_sound, 50, FALSE, -1)
|
||||
playsound(loc, /singleton/sound_category/grab_sound, 50, FALSE, -1)
|
||||
assailant.visible_message(SPAN_DANGER("[assailant] reinforces [assailant.get_pronoun("his")] grip on [affecting]'s neck!"), SPAN_DANGER("You reinforce your grip on [affecting]'s neck!"))
|
||||
state = GRAB_NECK
|
||||
icon_state = "grabbed+1"
|
||||
@@ -314,7 +314,7 @@
|
||||
hud.icon_state = "kill1"
|
||||
hud.name = "loosen"
|
||||
state = GRAB_KILL
|
||||
playsound(loc, /decl/sound_category/grab_sound, 50, FALSE, -1)
|
||||
playsound(loc, /singleton/sound_category/grab_sound, 50, FALSE, -1)
|
||||
assailant.visible_message(SPAN_DANGER("[assailant] starts strangling [affecting]!"), SPAN_DANGER("You start strangling [affecting]!"))
|
||||
|
||||
affecting.attack_log += "\[[time_stamp()]\] <font color='orange'>is being strangled by [assailant.name] ([assailant.ckey])</font>"
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
target.apply_effect(20, PARALYZE)
|
||||
target.visible_message("<span class='danger'>[target] [target.species.knockout_message]</span>")
|
||||
|
||||
playsound(attacker.loc, /decl/sound_category/swing_hit_sound, 25, 1, -1)
|
||||
playsound(attacker.loc, /singleton/sound_category/swing_hit_sound, 25, 1, -1)
|
||||
attacker.attack_log += text("\[[time_stamp()]\] <span class='warning'>Headbutted [target.name] ([target.ckey])</span>")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Headbutted by [attacker.name] ([attacker.ckey])</font>")
|
||||
msg_admin_attack("[key_name(attacker)] has headbutted [key_name(target)]",ckey=key_name(attacker),ckey_target=key_name(target))
|
||||
|
||||
Reference in New Issue
Block a user