Singletons + refactor of /datum/observ (#15487)

This commit is contained in:
Fluffy
2023-01-05 18:41:40 +01:00
committed by GitHub
parent 95f8207f08
commit 0ddcf0817a
507 changed files with 7603 additions and 7214 deletions
+4 -4
View File
@@ -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
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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]!"), \
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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)
+4 -4
View File
@@ -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))
+5 -5
View File
@@ -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)
..()
+1 -1
View File
@@ -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>")
+2 -2
View File
@@ -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>"
+1 -1
View File
@@ -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))