mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-16 17:44:25 +01:00
Merge branch 'master' into kk-climbs
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/mob/living/verb/toggle_autowhisper()
|
||||
set name = "Autowhisper Toggle"
|
||||
set desc = "Toggle whether you will automatically whisper/subtle"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
autowhisper = !autowhisper
|
||||
if(autowhisper_display)
|
||||
@@ -24,7 +24,7 @@
|
||||
/mob/living/verb/autowhisper_mode()
|
||||
set name = "Autowhisper Mode"
|
||||
set desc = "Set the mode your emotes will default to while using Autowhisper"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
|
||||
var/choice = tgui_input_list(src, "Select Custom Subtle Mode", "Custom Subtle Mode", list("Adjacent Turfs (Default)", "My Turf", "My Table", "Current Belly (Prey)", "Specific Belly (Pred)", "Specific Person", "Psay/Pme"))
|
||||
|
||||
@@ -8,7 +8,7 @@ var/global/list/prevent_respawns = list()
|
||||
|
||||
/mob/observer/dead/verb/cleanup()
|
||||
set name = "Quit This Round"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
set desc = "Free your job slot, remove yourself from the manifest, and prevent respawning as this character for this round."
|
||||
|
||||
var/confirm = tgui_alert(usr, "This will free up your job slot, remove you from the manifest, and allow you to respawn as this character. You can rejoin as another \
|
||||
|
||||
@@ -215,7 +215,7 @@ Works together with spawning an observer, noted above.
|
||||
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
|
||||
*/
|
||||
/mob/living/verb/ghost()
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
set name = "Ghost"
|
||||
set desc = "Relinquish your life and enter the land of the dead."
|
||||
|
||||
@@ -258,7 +258,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
. += "[eta_status]"
|
||||
|
||||
/mob/observer/dead/verb/reenter_corpse()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
set name = "Re-enter Corpse"
|
||||
if(!client) return
|
||||
if(!(mind && mind.current && can_reenter_corpse))
|
||||
@@ -295,7 +295,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return 1
|
||||
|
||||
/mob/observer/dead/verb/toggle_medHUD()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Toggle MedicHUD"
|
||||
set desc = "Toggles Medical HUD allowing you to see how everyone is doing"
|
||||
|
||||
@@ -305,7 +305,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(src, span_boldnotice("Medical HUD [medHUD ? "Enabled" : "Disabled"]"))
|
||||
|
||||
/mob/observer/dead/verb/toggle_secHUD()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Toggle Security HUD"
|
||||
set desc = "Toggles Security HUD allowing you to see people's displayed ID's job, wanted status, etc"
|
||||
|
||||
@@ -318,7 +318,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(src, span_boldnotice("Security HUD [secHUD ? "Enabled" : "Disabled"]"))
|
||||
|
||||
/mob/observer/dead/verb/toggle_antagHUD()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Toggle AntagHUD"
|
||||
set desc = "Toggles AntagHUD allowing you to see who is the antagonist"
|
||||
|
||||
@@ -370,7 +370,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/dead_tele(areaname as anything in jumpable_areas())
|
||||
set name = "Teleport"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
set desc = "Teleport to a location."
|
||||
|
||||
if(!istype(usr, /mob/observer/dead))
|
||||
@@ -379,12 +379,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
var/area/A
|
||||
|
||||
if(!areaname)
|
||||
var/list/areas = jumpable_areas()
|
||||
var/input = tgui_input_list(usr, "Select an area:", "Ghost Teleport", areas)
|
||||
if(!input)
|
||||
return
|
||||
A = areas[input]
|
||||
if(areaname)
|
||||
A = return_sorted_areas()[areaname]
|
||||
else
|
||||
A = return_sorted_areas()[tgui_input_list(usr, "Select an area:", "Ghost Teleport", jumpable_areas())]
|
||||
if(!A)
|
||||
return
|
||||
|
||||
@@ -392,12 +390,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(usr, "Not when you're not dead!")
|
||||
return
|
||||
|
||||
usr.forceMove(pick(get_area_turfs(A || jumpable_areas()[areaname])))
|
||||
usr.forceMove(pick(get_area_turfs(A)))
|
||||
usr.on_mob_jump()
|
||||
|
||||
/mob/observer/dead/verb/follow(mobname as anything in jumpable_mobs())
|
||||
set name = "Follow"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
set desc = "Follow and haunt a mob."
|
||||
|
||||
if(!istype(usr, /mob/observer/dead))
|
||||
@@ -571,7 +569,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return (T && T.holy) && (is_manifest || (mind in cult.current_antagonists))
|
||||
|
||||
/mob/observer/dead/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
set name = "Jump to Mob"
|
||||
set desc = "Teleport to a mob"
|
||||
set popup_menu = FALSE
|
||||
@@ -610,7 +608,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/analyze_air()
|
||||
set name = "Analyze Air"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
|
||||
if(!istype(usr, /mob/observer/dead)) return
|
||||
|
||||
@@ -637,7 +635,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/check_radiation()
|
||||
set name = "Check Radiation"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
|
||||
var/turf/t = get_turf(src)
|
||||
if(t)
|
||||
@@ -647,7 +645,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/become_mouse()
|
||||
set name = "Become mouse"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
|
||||
if(CONFIG_GET(flag/disable_player_mice))
|
||||
to_chat(src, span_warning("Spawning as a mouse is currently disabled."))
|
||||
@@ -701,7 +699,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/view_manfiest()
|
||||
set name = "Show Crew Manifest"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
|
||||
var/datum/tgui_module/crew_manifest/self_deleting/S = new(src)
|
||||
S.tgui_interact(src)
|
||||
@@ -718,7 +716,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
//Used for drawing on walls with blood puddles as a spooky ghost.
|
||||
/mob/observer/dead/verb/bloody_doodle()
|
||||
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Game"
|
||||
set name = "Write in blood"
|
||||
set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
|
||||
|
||||
@@ -829,7 +827,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
client.images += J
|
||||
|
||||
/mob/observer/dead/proc/toggle_visibility(var/forced = 0)
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Toggle Visibility"
|
||||
set desc = "Allows you to turn (in)visible (almost) at will."
|
||||
|
||||
@@ -851,7 +849,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
toggle_icon("cult")
|
||||
|
||||
/mob/observer/dead/verb/toggle_anonsay()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Toggle Anonymous Chat"
|
||||
set desc = "Toggles showing your key in dead chat."
|
||||
|
||||
@@ -870,7 +868,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
/mob/observer/dead/verb/toggle_ghostsee()
|
||||
set name = "Toggle Ghost Vision"
|
||||
set desc = "Toggles your ability to see things only ghosts can see, like other ghosts"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
ghostvision = !ghostvision
|
||||
updateghostsight()
|
||||
to_chat(src, span_filter_notice("You [ghostvision ? "now" : "no longer"] have ghost vision."))
|
||||
@@ -878,7 +876,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
/mob/observer/dead/verb/toggle_darkness()
|
||||
set name = "Toggle Darkness"
|
||||
set desc = "Toggles your ability to see lighting overlays, and the darkness they create."
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
|
||||
var/static/list/darkness_names = list("normal darkness levels", "30% darkness removed", "70% darkness removed", "no darkness")
|
||||
var/static/list/darkness_levels = list(255, 178, 76, 0)
|
||||
@@ -931,7 +929,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/proc/ghost_whisper()
|
||||
set name = "Spectral Whisper"
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
|
||||
if(is_manifest) //Only able to whisper if it's hit with a tome.
|
||||
var/list/options = list()
|
||||
@@ -952,7 +950,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(src, span_danger("You have not been pulled past the veil!"))
|
||||
|
||||
/mob/observer/dead/verb/choose_ghost_sprite()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Choose Sprite"
|
||||
|
||||
var/choice
|
||||
@@ -986,7 +984,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return FALSE
|
||||
|
||||
/mob/observer/dead/verb/paialert()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Message"
|
||||
set name = "Blank pAI alert"
|
||||
set desc = "Flash an indicator light on available blank pAI devices for a smidgen of hope."
|
||||
|
||||
@@ -1042,5 +1040,5 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/observer/dead/verb/respawn()
|
||||
set name = "Respawn"
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
src.abandon_mob()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/observer/dead/verb/nifjoin()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
set name = "Join Into Soulcatcher"
|
||||
set desc = "Select a player with a working NIF + Soulcatcher NIFSoft to join into it."
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
SC.catch_mob(src) //This will result in us being deleted so...
|
||||
|
||||
/mob/observer/dead/verb/backup_ping()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
set name = "Notify Transcore"
|
||||
set desc = "If your past-due backup notification was missed or ignored, you can use this to send a new one."
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
to_chat(src,span_warning("No backup record could be found, sorry."))
|
||||
/*
|
||||
/mob/observer/dead/verb/backup_delay()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Settings"
|
||||
set name = "Cancel Transcore Notification"
|
||||
set desc = "You can use this to avoid automatic backup notification happening. Manual notification can still be used."
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
to_chat(src,span_warning("No backup record could be found, sorry."))
|
||||
*/
|
||||
/mob/observer/dead/verb/findghostpod() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
set name = "Find Ghost Pod"
|
||||
set desc = "Find an active ghost pod"
|
||||
set popup_menu = FALSE
|
||||
@@ -132,7 +132,7 @@
|
||||
to_chat(src, span_filter_notice("This ghost pod is not located in the game world."))
|
||||
|
||||
/mob/observer/dead/verb/findautoresleever()
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
set name = "Find Auto Resleever"
|
||||
set desc = "Find a Auto Resleever"
|
||||
set popup_menu = FALSE
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/mob/observer/eye/aiEye/New()
|
||||
..()
|
||||
visualnet = cameranet
|
||||
|
||||
|
||||
/mob/observer/eye/aiEye/Destroy()
|
||||
if(owner)
|
||||
var/mob/living/silicon/ai/ai = owner
|
||||
@@ -105,7 +105,7 @@
|
||||
src.eyeobj.setLoc(src)
|
||||
|
||||
/mob/living/silicon/ai/proc/toggle_acceleration()
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
set name = "Toggle Camera Acceleration"
|
||||
|
||||
if(!eyeobj)
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
|
||||
/mob/verb/check_languages()
|
||||
set name = "Check Known Languages"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src = usr
|
||||
|
||||
var/datum/browser/popup = new(src, "checklanguage", "Known Languages", 420, 470)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/mob/proc/adjust_hive_range()
|
||||
set name = "Adjust Special Language Range"
|
||||
set desc = "Changes the range you will transmit your hive language to!"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
var/option = tgui_alert(src, "What range?", "Adjust special language range", list("Global","This Z level","Local", "Subtle"))
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/client/verb/toggle_autohiss()
|
||||
set name = "Toggle Auto-Hiss"
|
||||
set desc = "Toggle automatic hissing as Unathi and r-rolling as Taj"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game Settings"
|
||||
|
||||
autohiss_mode = (autohiss_mode + 1) % AUTOHISS_NUM
|
||||
switch(autohiss_mode)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//Verbs after this point.
|
||||
/mob/living/carbon/alien/diona/proc/merge()
|
||||
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Diona"
|
||||
set name = "Merge with gestalt"
|
||||
set desc = "Merge with another diona."
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/split()
|
||||
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Diona"
|
||||
set name = "Split from gestalt"
|
||||
set desc = "Split away from your gestalt as a lone nymph."
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set name = "Evolve"
|
||||
set desc = "Evolve into your adult form."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(stat != CONSCIOUS)
|
||||
return
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
// Vorestation edit start
|
||||
|
||||
/mob/living/carbon/brain/verb/backup_ping()
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set name = "Notify Transcore"
|
||||
set desc = "Your body is gone. Notify robotics to be resleeved!"
|
||||
var/datum/transcore_db/db = SStranscore.db_by_mind_name(mind.name)
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
/mob/living/carbon/Life()
|
||||
..()
|
||||
|
||||
handle_viruses()
|
||||
|
||||
// Increase germ_level regularly
|
||||
if(germ_level < GERM_LEVEL_AMBIENT && prob(30)) //if you're just standing there, you shouldn't get more germs beyond an ambient level
|
||||
germ_level++
|
||||
@@ -398,7 +396,10 @@
|
||||
return
|
||||
..()
|
||||
if(istype(A, /mob/living/carbon) && prob(10))
|
||||
spread_disease_to(A, "Contact")
|
||||
var/mob/living/carbon/human/H = A
|
||||
for(var/datum/disease/D in GetViruses())
|
||||
if(D.spread_flags & CONTACT_GENERAL)
|
||||
H.ContractDisease(D)
|
||||
|
||||
/mob/living/carbon/cannot_use_vents()
|
||||
return
|
||||
@@ -542,3 +543,12 @@
|
||||
if(allergen_type in species.food_preference)
|
||||
return species.food_preference_bonus
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/handle_diseases()
|
||||
for(var/thing in GetViruses())
|
||||
var/datum/disease/D = thing
|
||||
if(prob(D.infectivity))
|
||||
D.spread()
|
||||
|
||||
if(stat != DEAD || D.allow_dead)
|
||||
D.stage_act()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
blocks_emissive = EMISSIVE_BLOCK_UNIQUE // BLEH, this could be improved for transparent species and stuff! And blocks glowing eyes?!
|
||||
var/datum/species/species //Contains icon generation and language information, set during New().
|
||||
var/list/stomach_contents = list()
|
||||
var/list/datum/disease2/disease/virus2 = list()
|
||||
var/list/antibodies = list()
|
||||
var/last_eating = 0 //Not sure what this does... I found it hidden in food.dm
|
||||
|
||||
@@ -29,4 +28,4 @@
|
||||
//these two help govern taste. The first is the last time a taste message was shown to the plaer.
|
||||
//the second is the message in question.
|
||||
var/last_taste_time = 0
|
||||
var/last_taste_text = ""
|
||||
var/last_taste_text = ""
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//Brain slug proc for voluntary removal of control.
|
||||
/mob/living/carbon/proc/release_control()
|
||||
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Brainslug"
|
||||
set name = "Release Control"
|
||||
set desc = "Release control of your host's body."
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
//Brain slug proc for tormenting the host.
|
||||
/mob/living/carbon/proc/punish_host()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Brainslug"
|
||||
set name = "Torment host"
|
||||
set desc = "Punish your host with agony."
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
to_chat(B.host_brain, span_danger("<FONT size=3>Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!</FONT>"))
|
||||
|
||||
/mob/living/carbon/proc/spawn_larvae()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Brainslug"
|
||||
set name = "Reproduce"
|
||||
set desc = "Spawn several young."
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/verb/give(var/mob/living/target in living_mobs(1))
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set name = "Give"
|
||||
|
||||
do_give(target)
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
to_wear_helmet = /obj/item/clothing/head/helmet/dermal
|
||||
to_wear_glasses = /obj/item/clothing/glasses/goggles
|
||||
to_wear_mask = /obj/item/clothing/mask/gas/half
|
||||
to_wear_l_radio = /obj/item/radio/headset/headset_rob
|
||||
to_wear_l_radio = /obj/item/radio/headset
|
||||
to_wear_r_radio = null
|
||||
to_wear_uniform = /obj/item/clothing/under/color/grey
|
||||
to_wear_suit = /obj/item/clothing/suit/armor/vest
|
||||
|
||||
@@ -331,7 +331,7 @@ var/list/_simple_mob_default_emotes = list(
|
||||
/mob/living/carbon/human/verb/pose()
|
||||
set name = "Set Pose"
|
||||
set desc = "Sets a description which will be shown when someone examines you."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
var/datum/gender/T = gender_datums[get_visible_gender()]
|
||||
|
||||
@@ -340,7 +340,7 @@ var/list/_simple_mob_default_emotes = list(
|
||||
/mob/living/carbon/human/verb/set_flavor()
|
||||
set name = "Set Flavour Text"
|
||||
set desc = "Sets an extended description of your character's features."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/living/carbon/human/verb/toggle_resizing_immunity()
|
||||
set name = "Toggle Resizing Immunity"
|
||||
set desc = "Toggles your ability to resist resizing attempts"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
resizable = !resizable
|
||||
to_chat(src, span_notice("You are now [resizable ? "susceptible" : "immune"] to being resized."))
|
||||
@@ -35,7 +35,7 @@
|
||||
/mob/living/carbon/human/verb/toggle_gender_identity_vr()
|
||||
set name = "Set Gender Identity"
|
||||
set desc = "Sets the pronouns when examined and performing an emote."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
var/new_gender_identity = tgui_input_list(usr, "Please select a gender Identity:", "Set Gender Identity", list(FEMALE, MALE, NEUTER, PLURAL, HERM))
|
||||
if(!new_gender_identity)
|
||||
return 0
|
||||
@@ -44,14 +44,14 @@
|
||||
|
||||
/mob/living/carbon/human/verb/switch_tail_layer()
|
||||
set name = "Switch tail layer"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set desc = "Switch tail layer on top."
|
||||
tail_alt = !tail_alt
|
||||
update_tail_showing()
|
||||
|
||||
/mob/living/carbon/human/verb/hide_wings_vr()
|
||||
set name = "Show/Hide wings"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
set desc = "Hide your wings, or show them if you already hid them."
|
||||
wings_hidden = !wings_hidden
|
||||
update_wing_showing()
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
/mob/living/carbon/human/verb/hide_tail_vr()
|
||||
set name = "Show/Hide tail"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
set desc = "Hide your tail, or show it if you already hid it."
|
||||
if(!tail_style) //Just some checks.
|
||||
to_chat(src,span_notice("You have no tail to hide!"))
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
/mob/living/carbon/human/Destroy()
|
||||
human_mob_list -= src
|
||||
/* //Chomp REMOVE - this is done on mob/living/Destroy
|
||||
/* //REMOVE - this is done on mob/living/Destroy
|
||||
for(var/organ in organs)
|
||||
qdel(organ)
|
||||
*/
|
||||
@@ -947,7 +947,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/remotesay()
|
||||
set name = "Project mind"
|
||||
set category = "Superpower"
|
||||
set category = "Abilities.Superpower"
|
||||
|
||||
if(stat!=CONSCIOUS)
|
||||
reset_view(0)
|
||||
@@ -976,7 +976,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/remoteobserve()
|
||||
set name = "Remote View"
|
||||
set category = "Superpower"
|
||||
set category = "Abilities.Superpower"
|
||||
|
||||
if(stat!=CONSCIOUS)
|
||||
remoteview_target = null
|
||||
@@ -1062,10 +1062,6 @@
|
||||
sync_organ_dna()
|
||||
// end vorestation addition
|
||||
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
V.cure(src)
|
||||
|
||||
losebreath = 0
|
||||
|
||||
..()
|
||||
@@ -1339,7 +1335,7 @@
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/human/proc/bloody_doodle()
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set name = "Write in blood"
|
||||
set desc = "Use blood on your hands to write a short message on the floor or a wall, murder mystery style."
|
||||
|
||||
@@ -1648,7 +1644,7 @@
|
||||
/mob/living/carbon/human/verb/pull_punches()
|
||||
set name = "Pull Punches"
|
||||
set desc = "Try not to hurt them."
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(stat) return
|
||||
pulling_punches = !pulling_punches
|
||||
|
||||
@@ -44,6 +44,17 @@
|
||||
if(!temp || !temp.is_usable())
|
||||
to_chat(H, span_warning("You can't use your hand."))
|
||||
return
|
||||
|
||||
for(var/thing in GetViruses())
|
||||
var/datum/disease/D = thing
|
||||
if(D.IsSpreadByTouch())
|
||||
H.ContractDisease(D)
|
||||
|
||||
for(var/thing in H.GetViruses())
|
||||
var/datum/disease/D = thing
|
||||
if(D.IsSpreadByTouch())
|
||||
ContractDisease(D)
|
||||
|
||||
if(H.lying)
|
||||
return
|
||||
M.break_cloak()
|
||||
@@ -65,8 +76,9 @@
|
||||
return FALSE
|
||||
|
||||
if(istype(M,/mob/living/carbon))
|
||||
var/mob/living/carbon/C = M
|
||||
C.spread_disease_to(src, "Contact")
|
||||
for(var/datum/disease/D in M.GetViruses())
|
||||
if(D.spread_flags & CONTACT_HANDS)
|
||||
ContractDisease(D)
|
||||
|
||||
switch(M.a_intent)
|
||||
if(I_HELP)
|
||||
@@ -446,7 +458,7 @@
|
||||
|
||||
/mob/living/carbon/human/verb/check_attacks()
|
||||
set name = "Check Attacks"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src = usr
|
||||
|
||||
var/dat = span_bold(span_giant("Known Attacks")) + "<br/><br/>"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/mob/living/carbon/human/verb/check_attacks()
|
||||
set name = "Check Attacks"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src = usr
|
||||
|
||||
var/dat = span_bold("<font size = 5>Known Attacks</font>") + "<br/><br/>"
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
var/list/all_underwear = list()
|
||||
var/list/all_underwear_metadata = list()
|
||||
var/list/hide_underwear = list()
|
||||
var/headset = 1 //Which headset type the player has chosen.
|
||||
var/backbag = 2 //Which backpack type the player has chosen.
|
||||
var/pdachoice = 1 //Which PDA type the player has chosen.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/mob/living/carbon/human/proc/tie_hair()
|
||||
set name = "Tie Hair"
|
||||
set desc = "Style your hair."
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(incapacitated())
|
||||
to_chat(src, span_warning("You can't mess with your hair right now!"))
|
||||
@@ -34,7 +34,7 @@
|
||||
to_chat(src, span_notice("You're already using that style."))
|
||||
|
||||
/mob/living/carbon/human/proc/tackle()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set name = "Tackle"
|
||||
set desc = "Tackle someone down."
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
O.show_message(span_warning(span_red(span_bold("[src] [failed ? "tried to tackle" : "has tackled"] down [T]!"))), 1)
|
||||
|
||||
/mob/living/carbon/human/proc/commune()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set name = "Commune with creature"
|
||||
set desc = "Send a telepathic message to an unlucky recipient."
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
/mob/living/carbon/human/proc/regurgitate()
|
||||
set name = "Regurgitate"
|
||||
set desc = "Empties the contents of your stomach"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(stomach_contents.len)
|
||||
for(var/mob/M in src)
|
||||
@@ -132,7 +132,7 @@
|
||||
/mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview())
|
||||
set name = "Psychic Whisper"
|
||||
set desc = "Whisper silently to someone over a distance."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
var/msg = sanitize(tgui_input_text(usr, "Message:", "Psychic Whisper"))
|
||||
if(msg)
|
||||
@@ -144,7 +144,7 @@
|
||||
/mob/living/carbon/human/proc/diona_split_nymph()
|
||||
set name = "Split"
|
||||
set desc = "Split your humanoid form into its constituent nymphs."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Diona"
|
||||
diona_split_into_nymphs(5) // Separate proc to void argments being supplied when used as a verb
|
||||
|
||||
/mob/living/carbon/human/proc/diona_split_into_nymphs(var/number_of_resulting_nymphs)
|
||||
@@ -204,7 +204,7 @@
|
||||
/mob/living/carbon/human/proc/self_diagnostics()
|
||||
set name = "Self-Diagnostics"
|
||||
set desc = "Run an internal self-diagnostic to check for damage."
|
||||
set category = "IC"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(stat == DEAD) return
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
/mob/living/carbon/human/proc/sonar_ping()
|
||||
set name = "Listen In"
|
||||
set desc = "Allows you to listen in to movement and noises around you."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(incapacitated())
|
||||
to_chat(src, span_warning("You need to recover before you can use this ability."))
|
||||
@@ -291,7 +291,7 @@
|
||||
/mob/living/carbon/human/proc/regenerate()
|
||||
set name = "Regenerate"
|
||||
set desc = "Allows you to regrow limbs and heal organs after a period of rest."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(nutrition < 250)
|
||||
to_chat(src, span_warning("You lack the biomass to begin regeneration!"))
|
||||
@@ -355,7 +355,7 @@
|
||||
/mob/living/carbon/human/proc/setmonitor_state()
|
||||
set name = "Set monitor display"
|
||||
set desc = "Set your monitor display"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
if(stat)
|
||||
to_chat(src,span_warning("You must be awake and standing to perform this action!"))
|
||||
return
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/living/carbon/human/proc/reagent_purge()
|
||||
set name = "Purge Reagents"
|
||||
set desc = "Empty yourself of any reagents you may have consumed or come into contact with."
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(stat == DEAD) return
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/mob/living/carbon/human/verb/toggle_eyes_layer()
|
||||
set name = "Switch Eyes/Monitor Layer"
|
||||
set desc = "Toggle rendering of eyes/monitor above markings."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
if(stat)
|
||||
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
|
||||
|
||||
@@ -504,9 +504,12 @@
|
||||
/mob/living/carbon/human/handle_post_breath(datum/gas_mixture/breath)
|
||||
..()
|
||||
//spread some viruses while we are at it
|
||||
if(breath && virus2.len > 0 && prob(10))
|
||||
for(var/mob/living/carbon/M in view(1,src))
|
||||
src.spread_disease_to(M)
|
||||
if(breath && !isnull(viruses) && prob(10))
|
||||
for(var/datum/disease/D in GetViruses())
|
||||
if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS))
|
||||
continue
|
||||
for(var/mob/living/carbon/M in view(1,src))
|
||||
ContractDisease(D)
|
||||
|
||||
|
||||
/mob/living/carbon/human/get_breath_from_internal(volume_needed=BREATH_VOLUME)
|
||||
@@ -2031,8 +2034,8 @@
|
||||
|
||||
if (BITTEST(hud_updateflag, STATUS_HUD))
|
||||
var/foundVirus = 0
|
||||
for (var/ID in virus2)
|
||||
if (ID in virusDB)
|
||||
for (var/datum/disease/D in GetViruses())
|
||||
if(D.discovered)
|
||||
foundVirus = 1
|
||||
break
|
||||
|
||||
@@ -2054,8 +2057,10 @@
|
||||
holder2.icon_state = "hudbrainworm"
|
||||
else
|
||||
holder.icon_state = "hudhealthy"
|
||||
if(virus2.len)
|
||||
holder2.icon_state = "hudill"
|
||||
if(viruses.len)
|
||||
for(var/datum/disease/D in GetViruses())
|
||||
if(D.discovered)
|
||||
holder2.icon_state = "hudill"
|
||||
else
|
||||
holder2.icon_state = "hudhealthy"
|
||||
if(block_hud)
|
||||
|
||||
@@ -79,7 +79,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_hair()
|
||||
|
||||
set name = "Select Hair"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -123,7 +123,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_gender()
|
||||
|
||||
set name = "Select Gender"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -145,7 +145,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_shape()
|
||||
|
||||
set name = "Select Body Shape"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -172,7 +172,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_colour()
|
||||
|
||||
set name = "Select Body Colour"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -210,7 +210,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_hair_colors()
|
||||
|
||||
set name = "Select Hair Colors"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -309,7 +309,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_eye_colour()
|
||||
|
||||
set name = "Select Eye Color"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_ears()
|
||||
set name = "Select Ears"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_tail()
|
||||
set name = "Select Tail"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_wings()
|
||||
set name = "Select Wings"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -199,7 +199,7 @@
|
||||
/mob/living/carbon/human/proc/promethean_select_opaqueness()
|
||||
|
||||
set name = "Toggle Transparency"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshift"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
|
||||
@@ -382,7 +382,7 @@
|
||||
/mob/living/carbon/human/proc/alraune_fruit_select() //So if someone doesn't want fruit/vegetables, they don't have to select one.
|
||||
set name = "Select fruit"
|
||||
set desc = "Select what fruit/vegetable you wish to grow."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alraune"
|
||||
var/obj/item/organ/internal/fruitgland/fruit_gland
|
||||
for(var/F in contents)
|
||||
if(istype(F, /obj/item/organ/internal/fruitgland))
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/mob/living/carbon/human/proc/prommie_blobform()
|
||||
set name = "Toggle Blobform"
|
||||
set desc = "Switch between amorphous and humanoid forms."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Promethean"
|
||||
set hidden = FALSE
|
||||
|
||||
var/atom/movable/to_locate = temporary_form || src
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
/mob/living/simple_mob/slime/promethean/proc/prommie_blobform()
|
||||
set name = "Toggle Blobform"
|
||||
set desc = "Switch between amorphous and humanoid forms."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Promethean"
|
||||
set hidden = FALSE
|
||||
|
||||
var/atom/movable/to_locate = src
|
||||
@@ -253,7 +253,7 @@
|
||||
/mob/living/simple_mob/slime/promethean/proc/toggle_expand()
|
||||
set name = "Toggle Width"
|
||||
set desc = "Switch between smole and lorge."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Promethean"
|
||||
set hidden = FALSE
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
@@ -273,7 +273,7 @@
|
||||
/mob/living/simple_mob/slime/promethean/proc/toggle_shine()
|
||||
set name = "Toggle Shine"
|
||||
set desc = "Shine on you crazy diamond."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Promethean"
|
||||
set hidden = FALSE
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
@@ -293,7 +293,7 @@
|
||||
/mob/living/simple_mob/slime/promethean/proc/prommie_select_colour()
|
||||
|
||||
set name = "Select Body Colour"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Promethean"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
|
||||
+26
-26
@@ -1,6 +1,6 @@
|
||||
/mob/living/carbon/human/proc/reconstitute_form() //Scree's race ability.in exchange for: No cloning.
|
||||
set name = "Reconstitute Form"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
// Sanity is mostly handled in chimera_regenerate()
|
||||
if(stat == DEAD)
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/hatch()
|
||||
set name = "Hatch"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(revive_ready != REVIVING_DONE)
|
||||
//Hwhat?
|
||||
@@ -388,7 +388,7 @@
|
||||
/mob/living/carbon/human/proc/bloodsuck()
|
||||
set name = "Partially Drain prey of blood"
|
||||
set desc = "Bites prey and drains them of a significant portion of blood, feeding you in the process. You may only do this once per minute."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
@@ -510,7 +510,7 @@
|
||||
/mob/living/carbon/human/proc/succubus_drain()
|
||||
set name = "Drain prey of nutrition"
|
||||
set desc = "Slowly drain prey of all the nutrition in their body, feeding you in the process. You may only do this to one person at a time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Succubus"
|
||||
if(!ishuman(src))
|
||||
return //If you're not a human you don't have permission to do this.
|
||||
var/mob/living/carbon/human/C = src
|
||||
@@ -573,7 +573,7 @@
|
||||
/mob/living/carbon/human/proc/succubus_drain_lethal()
|
||||
set name = "Lethally drain prey" //Provide a warning that THIS WILL KILL YOUR PREY.
|
||||
set desc = "Slowly drain prey of all the nutrition in their body, feeding you in the process. Once prey run out of nutrition, you will begin to drain them lethally. You may only do this to one person at a time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Succubus"
|
||||
if(!ishuman(src))
|
||||
return //If you're not a human you don't have permission to do this.
|
||||
|
||||
@@ -665,7 +665,7 @@
|
||||
/mob/living/carbon/human/proc/slime_feed()
|
||||
set name = "Feed prey with self"
|
||||
set desc = "Slowly feed prey with your body, draining you in the process. You may only do this to one person at a time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
if(!ishuman(src))
|
||||
return //If you're not a human you don't have permission to do this.
|
||||
var/mob/living/carbon/human/C = src
|
||||
@@ -726,7 +726,7 @@
|
||||
/mob/living/carbon/human/proc/succubus_drain_finalize()
|
||||
set name = "Drain/Feed Finalization"
|
||||
set desc = "Toggle to allow for draining to be prolonged. Turn this on to make it so prey will be knocked out/die while being drained, or you will feed yourself to the prey's selected stomach if you're feeding them. Can be toggled at any time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Succubus"
|
||||
|
||||
var/mob/living/carbon/human/C = src
|
||||
C.drain_finalized = !C.drain_finalized
|
||||
@@ -818,7 +818,7 @@
|
||||
/mob/living/proc/shred_limb()
|
||||
set name = "Damage/Remove Prey's Organ"
|
||||
set desc = "Severely damages prey's organ. If the limb is already severely damaged, it will be torn off."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
|
||||
//can_shred() will return a mob we can shred, if we can shred any.
|
||||
var/mob/living/carbon/human/T = can_shred()
|
||||
@@ -894,13 +894,13 @@
|
||||
/mob/living/proc/shred_limb_temp()
|
||||
set name = "Damage/Remove Prey's Organ (beartrap)"
|
||||
set desc = "Severely damages prey's organ. If the limb is already severely damaged, it will be torn off."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
shred_limb()
|
||||
|
||||
/mob/living/proc/flying_toggle()
|
||||
set name = "Toggle Flight"
|
||||
set desc = "While flying over open spaces, you will use up some nutrition. If you run out nutrition, you will fall."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
var/mob/living/carbon/human/C = src
|
||||
if(!C.wing_style) //The species var isn't taken into account here, as it's only purpose is to give this proc to a person.
|
||||
@@ -923,7 +923,7 @@
|
||||
/mob/living/proc/flying_vore_toggle()
|
||||
set name = "Toggle Flight Vore"
|
||||
set desc = "Allows you to engage in voracious misadventures while flying."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
|
||||
flight_vore = !flight_vore
|
||||
if(flight_vore)
|
||||
@@ -935,7 +935,7 @@
|
||||
/mob/living/proc/start_wings_hovering()
|
||||
set name = "Hover"
|
||||
set desc = "Allows you to stop gliding and hover. This will take a fair amount of nutrition to perform."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
var/mob/living/carbon/human/C = src
|
||||
if(!C.wing_style) //The species var isn't taken into account here, as it's only purpose is to give this proc to a person.
|
||||
@@ -967,13 +967,13 @@
|
||||
/mob/living/proc/toggle_pass_table()
|
||||
set name = "Toggle Agility" //Dunno a better name for this. You have to be pretty agile to hop over stuff!!!
|
||||
set desc = "Allows you to start/stop hopping over things such as hydroponics trays, tables, and railings."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
pass_flags ^= PASSTABLE //I dunno what this fancy ^= is but Aronai gave it to me.
|
||||
to_chat(src, "You [pass_flags&PASSTABLE ? "will" : "will NOT"] move over tables/railings/trays!")
|
||||
|
||||
/mob/living/carbon/human/proc/check_silk_amount()
|
||||
set name = "Check Silk Amount"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
|
||||
if(species.is_weaver)
|
||||
to_chat(src, "Your silk reserves are at [species.silk_reserve]/[species.silk_max_reserve].")
|
||||
@@ -982,7 +982,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_silk_production()
|
||||
set name = "Toggle Silk Production"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
|
||||
if(species.is_weaver)
|
||||
species.silk_production = !(species.silk_production)
|
||||
@@ -992,7 +992,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/weave_structure()
|
||||
set name = "Weave Structure"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
|
||||
if(!(species.is_weaver))
|
||||
to_chat(src, span_warning("You are not a weaver! How are you doing this? Tell a developer!"))
|
||||
@@ -1052,7 +1052,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/weave_item()
|
||||
set name = "Weave Item"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
|
||||
if(!(species.is_weaver))
|
||||
return
|
||||
@@ -1106,7 +1106,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/set_silk_color()
|
||||
set name = "Set Silk Color"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
|
||||
if(!(species.is_weaver))
|
||||
to_chat(src, span_warning("You are not a weaver! How are you doing this? Tell a developer!"))
|
||||
@@ -1118,7 +1118,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_eye_glow()
|
||||
set name = "Toggle Eye Glowing"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
species.has_glowing_eyes = !species.has_glowing_eyes
|
||||
update_eyes()
|
||||
@@ -1128,7 +1128,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/enter_cocoon()
|
||||
set name = "Spin Cocoon"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Weaver"
|
||||
if(!isturf(loc))
|
||||
to_chat(src, "You don't have enough space to spin a cocoon!")
|
||||
return
|
||||
@@ -1153,7 +1153,7 @@
|
||||
/mob/living/carbon/human/proc/water_stealth()
|
||||
set name = "Dive under water / Resurface"
|
||||
set desc = "Dive under water, allowing for you to be stealthy and move faster."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(last_special > world.time)
|
||||
return
|
||||
@@ -1185,7 +1185,7 @@
|
||||
/mob/living/carbon/human/proc/underwater_devour()
|
||||
set name = "Devour From Water"
|
||||
set desc = "Grab something in the water with you and devour them with your selected stomach."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
|
||||
if(last_special > world.time)
|
||||
return
|
||||
@@ -1241,7 +1241,7 @@
|
||||
/mob/living/carbon/human/proc/toggle_pain_module()
|
||||
set name = "Toggle pain simulation."
|
||||
set desc = "Turn on your pain simulation for that organic experience! Or turn it off for repairs, or if it's too much."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(synth_cosmetic_pain)
|
||||
to_chat(src, span_notice(" You turn off your pain simulators."))
|
||||
@@ -1256,7 +1256,7 @@
|
||||
|
||||
/mob/living/proc/long_vore() // Allows the user to tongue grab a creature in range. Made a /living proc so frogs can frog you.
|
||||
set name = "Grab Prey With Appendage"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set desc = "Grab a target with any of your appendages!"
|
||||
|
||||
if(stat || paralysis || weakened || stunned || world.time < last_special) //No tongue flicking while stunned.
|
||||
@@ -1468,7 +1468,7 @@
|
||||
|
||||
/mob/living/proc/target_lunge() //The leaper leap, but usable as an ability
|
||||
set name = "Lunge At Prey"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set desc = "Dive atop your prey and gobble them up!"
|
||||
|
||||
var/leap_warmup = 1 SECOND //Easy to modify
|
||||
@@ -1538,7 +1538,7 @@
|
||||
|
||||
/mob/living/proc/injection() // Allows the user to inject reagents into others somehow, like stinging, or biting.
|
||||
set name = "Injection"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set desc = "Inject another being with something!"
|
||||
|
||||
if(stat || paralysis || weakened || stunned || world.time < last_special) //Epic copypasta from tongue grabbing.
|
||||
|
||||
@@ -27,7 +27,7 @@ TGUI frontend path: tgui\packages\tgui\interfaces\TraitTutorial.tsx
|
||||
/mob/living/carbon/human/proc/trait_tutorial()
|
||||
set name = "Explain Custom Traits"
|
||||
set desc = "Click this verb to obtain a detailed tutorial on your selected traits. "
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
var/datum/tgui_module/trait_tutorial_tgui/fancy_UI
|
||||
if(!fancy_UI)
|
||||
fancy_UI = new /datum/tgui_module/trait_tutorial_tgui/ //Preventing a bunch of instances being spawned all over the place. Hopefully
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
/mob/living/carbon/human/proc/shapeshifter_change_opacity()
|
||||
|
||||
set name = "Toggle Opacity"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shapeshifter"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
return
|
||||
@@ -88,7 +88,7 @@
|
||||
// exit_vr is called on the vr mob, and puts the mind back into the original mob
|
||||
/mob/living/carbon/human/proc/exit_vr()
|
||||
set name = "Exit Virtual Reality"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.VR"
|
||||
|
||||
if(!vr_holder)
|
||||
return
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
/mob/living/carbon/human/proc/transfer_plasma(mob/living/carbon/human/M as mob in oview())
|
||||
set name = "Transfer Plasma"
|
||||
set desc = "Transfer Plasma to another alien"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if (get_dist(src,M) <= 1)
|
||||
to_chat(src, span_alium("You need to be closer."))
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
set name = "Lay Egg (500)" //Cost is entire queen reserve, to compensate being able to reproduce on it's own
|
||||
set desc = "Lay an egg that will eventually hatch into a new xenomorph larva. Life finds a way."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(!CONFIG_GET(flag/aliens_allowed))
|
||||
to_chat(src, "You begin to lay an egg, but hesitate. You suspect it isn't allowed.")
|
||||
@@ -102,7 +102,7 @@
|
||||
/mob/living/carbon/human/proc/evolve()
|
||||
set name = "Evolve (500)"
|
||||
set desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(alien_queen_exists())
|
||||
to_chat(src, span_notice("We already have an active queen."))
|
||||
@@ -117,7 +117,7 @@
|
||||
/mob/living/carbon/human/proc/plant()
|
||||
set name = "Plant Weeds (50)"
|
||||
set desc = "Plants some alien weeds"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(check_alien_ability(50,1,O_RESIN))
|
||||
visible_message(span_alium(span_bold("[src] has planted some alien weeds!")))
|
||||
@@ -149,7 +149,7 @@
|
||||
/mob/living/carbon/human/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
|
||||
set name = "Corrosive Acid (200)"
|
||||
set desc = "Drench an object in acid, destroying it over time."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(!(O in oview(1)))
|
||||
to_chat(src, span_alium("[O] is too far away."))
|
||||
@@ -186,7 +186,7 @@
|
||||
/mob/living/carbon/human/proc/neurotoxin()
|
||||
set name = "Toggle Neurotoxic Spit (40)"
|
||||
set desc = "Readies a neurotoxic spit, which paralyzes the target for a short time if they are not wearing protective gear."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(spitting)
|
||||
to_chat(src, span_alium("You stop preparing to spit."))
|
||||
@@ -207,7 +207,7 @@
|
||||
/mob/living/carbon/human/proc/acidspit()
|
||||
set name = "Toggle Acid Spit (50)"
|
||||
set desc = "Readies an acidic spit, which burns the target if they are not wearing protective gear."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(spitting)
|
||||
to_chat(src, span_alium("You stop preparing to spit."))
|
||||
@@ -228,7 +228,7 @@
|
||||
/mob/living/carbon/human/proc/resin() //Gurgs : Refactored resin ability, big thanks to Jon.
|
||||
set name = "Secrete Resin (75)"
|
||||
set desc = "Secrete tough malleable resin."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
var/list/options = list("resin door","resin wall","resin membrane","nest","resin blob")
|
||||
for(var/option in options)
|
||||
@@ -276,7 +276,7 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/leap()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
set name = "Leap"
|
||||
set desc = "Leap at a target and grab them aggressively."
|
||||
|
||||
@@ -344,7 +344,7 @@
|
||||
G.synch()
|
||||
|
||||
/mob/living/carbon/human/proc/gut()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Alien"
|
||||
set name = "Slaughter"
|
||||
set desc = "While grabbing someone aggressively, rip their guts out or tear them apart."
|
||||
|
||||
|
||||
@@ -1343,15 +1343,21 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(ear_secondary_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/icon/ears_s = new/icon("icon" = ear_secondary_style.icon, "icon_state" = ear_secondary_style.icon_state)
|
||||
if(ear_secondary_style.do_colouration)
|
||||
ears_s.Blend(LAZYACCESS(ear_secondary_colors, 1), ear_secondary_style.color_blend_mode)
|
||||
var/color = LAZYACCESS(ear_secondary_colors, 1)
|
||||
if(color)
|
||||
ears_s.Blend(color, ear_secondary_style.color_blend_mode)
|
||||
if(ear_secondary_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = ear_secondary_style.icon, "icon_state" = ear_secondary_style.extra_overlay)
|
||||
overlay.Blend(LAZYACCESS(ear_secondary_colors, 2), ear_secondary_style.color_blend_mode)
|
||||
var/color = LAZYACCESS(ear_secondary_colors, 2)
|
||||
if(color)
|
||||
overlay.Blend(color, ear_secondary_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(ear_secondary_style.extra_overlay2) //MORE COLOURS IS BETTERER
|
||||
var/icon/overlay = new/icon("icon" = ear_secondary_style.icon, "icon_state" = ear_secondary_style.extra_overlay2)
|
||||
overlay.Blend(LAZYACCESS(ear_secondary_colors, 3), ear_secondary_style.color_blend_mode)
|
||||
var/color = LAZYACCESS(ear_secondary_colors, 3)
|
||||
if(color)
|
||||
overlay.Blend(color, ear_secondary_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(!rendered)
|
||||
@@ -1371,13 +1377,13 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
//If you have a custom tail selected
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style)) && !tail_hidden)
|
||||
var/icon/tail_s = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = (wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)) //CHOMPEdit
|
||||
var/icon/tail_s = new/icon("icon" = (tail_style.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = (wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state))
|
||||
if(tail_style.can_loaf && !is_shifted)
|
||||
pixel_y = (resting) ? -tail_style.loaf_offset*size_multiplier : default_pixel_y //move player down, then taur up, to fit the overlays correctly // VOREStation Edit: Taur Loafing
|
||||
if(tail_style.do_colouration)
|
||||
tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode)
|
||||
if(tail_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay) //CHOMPEdit
|
||||
var/icon/overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay_w) //RS EDIT
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
@@ -1389,7 +1395,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
qdel(overlay)
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay2) //CHOMPEdit
|
||||
var/icon/overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay2)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = (tail_style?.can_loaf && resting) ? tail_style.icon_loaf : tail_style.icon, "icon_state" = tail_style.extra_overlay2_w) //RS EDIT
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/carbon/human/proc/lick_wounds(var/mob/living/carbon/M as mob in view(1)) // Allows the user to lick themselves. Given how rarely this trait is used, I don't see an issue with a slight buff.
|
||||
set name = "Lick Wounds"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set desc = "Disinfect and heal small wounds with your saliva."
|
||||
|
||||
if(stat || paralysis || weakened || stunned)
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
/mob/living/carbon/proc/handle_viruses()
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if(bodytemperature > 406)
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
V.cure(src)
|
||||
|
||||
if(life_tick % 3) //don't spam checks over all objects in view every tick.
|
||||
for(var/obj/effect/decal/cleanable/O in view(1,src))
|
||||
if(istype(O,/obj/effect/decal/cleanable/blood))
|
||||
var/obj/effect/decal/cleanable/blood/B = O
|
||||
if(B.virus2.len)
|
||||
for (var/ID in B.virus2)
|
||||
var/datum/disease2/disease/V = B.virus2[ID]
|
||||
infect_virus2(src,V)
|
||||
|
||||
else if(istype(O,/obj/effect/decal/cleanable/mucus))
|
||||
var/obj/effect/decal/cleanable/mucus/M = O
|
||||
if(M.virus2.len)
|
||||
for (var/ID in M.virus2)
|
||||
var/datum/disease2/disease/V = M.virus2[ID]
|
||||
infect_virus2(src,V)
|
||||
|
||||
else if(istype(O,/obj/effect/decal/cleanable/vomit))
|
||||
var/obj/effect/decal/cleanable/vomit/Vom = O
|
||||
if(Vom.virus2.len)
|
||||
for (var/ID in Vom.virus2)
|
||||
var/datum/disease2/disease/V = Vom.virus2[ID]
|
||||
infect_virus2(src,V)
|
||||
|
||||
if(virus2.len)
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
if(isnull(V)) // Trying to figure out a runtime error that keeps repeating
|
||||
CRASH("virus2 nulled before calling activate()")
|
||||
else
|
||||
V.activate(src)
|
||||
// activate may have deleted the virus
|
||||
if(!V) continue
|
||||
|
||||
// check if we're immune
|
||||
var/list/common_antibodies = V.antigen & src.antibodies
|
||||
if(common_antibodies.len)
|
||||
V.dead = 1
|
||||
|
||||
return
|
||||
@@ -1,10 +1,28 @@
|
||||
/mob/living
|
||||
var/datum/language/default_language
|
||||
|
||||
/mob/living/verb/set_default_language(language as null|anything in languages)
|
||||
/mob/living/verb/set_default_language()
|
||||
set name = "Set Default Language"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
var/language = tgui_input_list(usr, "Select your default language", "Available languages", languages)
|
||||
|
||||
apply_default_language(language)
|
||||
|
||||
// Silicons can't neccessarily speak everything in their languages list
|
||||
/mob/living/silicon/set_default_language()
|
||||
var/language = tgui_input_list(usr, "Select your default language", "Available languages", speech_synthesizer_langs)
|
||||
// Silicons have no species language usually. So let's default them to GALCOM
|
||||
if(!language)
|
||||
to_chat(src, span_notice("You will now speak your standard default language, common, if you do not specify a language when speaking."))
|
||||
for(var/datum/language/lang in speech_synthesizer_langs)
|
||||
if(lang.name == LANGUAGE_GALCOM)
|
||||
default_language = lang
|
||||
break
|
||||
return
|
||||
apply_default_language(language)
|
||||
|
||||
/mob/living/proc/apply_default_language(var/language)
|
||||
if (only_species_language && language != GLOB.all_languages[src.species_language])
|
||||
to_chat(src, span_notice("You can only speak your species language, [src.species_language]."))
|
||||
return 0
|
||||
@@ -22,13 +40,9 @@
|
||||
to_chat(src, span_notice("You will now speak whatever your standard default language is if you do not specify one when speaking."))
|
||||
default_language = language
|
||||
|
||||
// Silicons can't neccessarily speak everything in their languages list
|
||||
/mob/living/silicon/set_default_language(language as null|anything in speech_synthesizer_langs)
|
||||
..()
|
||||
|
||||
/mob/living/verb/check_default_language()
|
||||
set name = "Check Default Language"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(default_language)
|
||||
to_chat(src, span_notice("You are currently speaking [default_language] by default."))
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
//Chemicals in the body, this is moved over here so that blood can be added after death
|
||||
handle_chemicals_in_body()
|
||||
|
||||
// Handle viruses - Dead or not!
|
||||
if(LAZYLEN(viruses))
|
||||
handle_diseases()
|
||||
|
||||
//Handle temperature/pressure differences between body and environment
|
||||
if(environment)
|
||||
handle_environment(environment)
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
/mob/living/verb/succumb()
|
||||
set name = "Succumb to death"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set desc = "Press this button if you are in crit and wish to die. Use this sparingly (ending a scene, no medical, etc.)"
|
||||
var/confirm1 = tgui_alert(usr, "Pressing this button will kill you instantenously! Are you sure you wish to proceed?", "Confirm wish to succumb", list("No","Yes"))
|
||||
var/confirm2 = "No"
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
/mob/living/verb/toggle_afk()
|
||||
set name = "Toggle AFK"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set desc = "Mark yourself as Away From Keyboard, or clear that status!"
|
||||
if(away_from_keyboard)
|
||||
remove_status_indicator("afk")
|
||||
@@ -710,7 +710,7 @@
|
||||
|
||||
/mob/living/proc/Examine_OOC()
|
||||
set name = "Examine Meta-Info (OOC)"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
set src in view()
|
||||
//VOREStation Edit Start - Making it so SSD people have prefs with fallback to original style.
|
||||
if(CONFIG_GET(flag/allow_metadata))
|
||||
@@ -729,7 +729,7 @@
|
||||
|
||||
/mob/living/verb/resist()
|
||||
set name = "Resist"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(!incapacitated(INCAPACITATION_KNOCKOUT) && (last_resist_time + RESIST_COOLDOWN < world.time))
|
||||
last_resist_time = world.time
|
||||
@@ -789,7 +789,7 @@
|
||||
|
||||
/mob/living/verb/lay_down()
|
||||
set name = "Rest"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
resting = !resting
|
||||
to_chat(src, span_notice("You are now [resting ? "resting" : "getting up"]."))
|
||||
@@ -1334,7 +1334,7 @@
|
||||
|
||||
/mob/living/verb/mob_sleep()
|
||||
set name = "Sleep"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
if(!toggled_sleeping && alert(src, "Are you sure you wish to go to sleep? You will snooze until you use the Sleep verb again.", "Sleepy Time", "No", "Yes") == "No")
|
||||
return
|
||||
toggled_sleeping = !toggled_sleeping
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/mob/living/proc/hide()
|
||||
set name = "Hide"
|
||||
set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
|
||||
if(stat == DEAD || paralysis || weakened || stunned || restrained() || buckled || LAZYLEN(grabbed_by) || has_buckled_mobs()) //VORE EDIT: Check for has_buckled_mobs() (taur riding)
|
||||
return
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/verb/customsay()
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
set name = "Customize Speech Verbs"
|
||||
set desc = "Customize the text which appears when you type- e.g. 'says', 'asks', 'exclaims'."
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/mob/living/verb/set_metainfo()
|
||||
set name = "Set OOC Metainfo"
|
||||
set desc = "Sets OOC notes about yourself or your RP preferences or status."
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game Settings"
|
||||
|
||||
if(usr != src)
|
||||
return
|
||||
@@ -100,7 +100,7 @@
|
||||
/mob/living/verb/set_custom_link()
|
||||
set name = "Set Custom Link"
|
||||
set desc = "Set a custom link to show up with your examine text."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
if(usr != src)
|
||||
return
|
||||
@@ -117,7 +117,7 @@
|
||||
/mob/living/verb/set_voice_freq()
|
||||
set name = "Set Voice Frequency"
|
||||
set desc = "Sets your voice frequency to be higher or lower pitched!"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game Settings"
|
||||
|
||||
var/list/preset_voice_freqs = list("high" = MAX_VOICE_FREQ, "middle-high" = 56250, "middle" = 425000, "middle-low"= 28750, "low" = MIN_VOICE_FREQ, "custom" = 1, "random" = 0)
|
||||
var/choice = tgui_input_list(src, "What would you like to set your voice frequency to?", "Voice Frequency", preset_voice_freqs)
|
||||
@@ -138,7 +138,7 @@
|
||||
/mob/living/verb/set_voice_type()
|
||||
set name = "Set Voice Type"
|
||||
set desc = "Sets your voice style!"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game Settings"
|
||||
|
||||
var/list/possible_voice_types = list(
|
||||
"beep-boop",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/proc/toggle_rider_reins()
|
||||
set name = "Give Reins"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set desc = "Let people riding on you control your movement."
|
||||
|
||||
if(riding_datum)
|
||||
|
||||
@@ -347,7 +347,7 @@ var/list/ai_verbs_default = list(
|
||||
update_use_power(USE_POWER_ACTIVE)
|
||||
|
||||
/mob/living/silicon/ai/proc/pick_icon()
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
set name = "Set AI Core Display"
|
||||
if(stat || aiRestorePowerRoutine)
|
||||
return
|
||||
@@ -359,7 +359,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
/mob/living/silicon/ai/var/message_cooldown = 0
|
||||
/mob/living/silicon/ai/proc/ai_announcement()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Station Commands"
|
||||
set name = "Make Station Announcement"
|
||||
if(check_unable(AI_CHECK_WIRELESS | AI_CHECK_RADIO))
|
||||
return
|
||||
@@ -380,7 +380,7 @@ var/list/ai_verbs_default = list(
|
||||
message_cooldown = 0
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_call_shuttle()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Station Commands"
|
||||
set name = "Call Emergency Shuttle"
|
||||
if(check_unable(AI_CHECK_WIRELESS))
|
||||
return
|
||||
@@ -401,7 +401,7 @@ var/list/ai_verbs_default = list(
|
||||
post_status(src, "shuttle", user = src)
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_recall_shuttle()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Station Commands"
|
||||
set name = "Recall Emergency Shuttle"
|
||||
|
||||
if(check_unable(AI_CHECK_WIRELESS))
|
||||
@@ -417,7 +417,7 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/var/emergency_message_cooldown = 0
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_emergency_message()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Station Commands"
|
||||
set name = "Send Emergency Message"
|
||||
|
||||
if(check_unable(AI_CHECK_WIRELESS))
|
||||
@@ -538,7 +538,7 @@ var/list/ai_verbs_default = list(
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/ai/cancel_camera()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Camera Control"
|
||||
set name = "Cancel Camera View"
|
||||
view_core()
|
||||
|
||||
@@ -561,7 +561,7 @@ var/list/ai_verbs_default = list(
|
||||
return cameralist
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_network_change(var/network in get_camera_network_list())
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Camera Control"
|
||||
set name = "Jump To Network"
|
||||
unset_machine()
|
||||
|
||||
@@ -584,7 +584,7 @@ var/list/ai_verbs_default = list(
|
||||
//End of code by Mord_Sith
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_statuschange()
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
set name = "AI Status"
|
||||
|
||||
if(check_unable(AI_CHECK_WIRELESS))
|
||||
@@ -597,7 +597,7 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/proc/ai_hologram_change()
|
||||
set name = "Change Hologram"
|
||||
set desc = "Change the default hologram available to AI to something else."
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
|
||||
if(check_unable())
|
||||
return
|
||||
@@ -725,7 +725,7 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/proc/toggle_camera_light()
|
||||
set name = "Toggle Camera Light"
|
||||
set desc = "Toggles the light on the camera the AI is looking through."
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Camera Control"
|
||||
if(check_unable())
|
||||
return
|
||||
|
||||
@@ -799,7 +799,7 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/proc/control_integrated_radio()
|
||||
set name = "Radio Settings"
|
||||
set desc = "Allows you to change settings of your radio."
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
|
||||
if(check_unable(AI_CHECK_RADIO))
|
||||
return
|
||||
@@ -810,7 +810,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
/mob/living/silicon/ai/proc/sensor_mode()
|
||||
set name = "Toggle Sensor Augmentation" //VOREStation Add
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
set desc = "Augment visual feed with internal sensor overlays"
|
||||
sensor_type = !sensor_type //VOREStation Add
|
||||
to_chat(usr, "You [sensor_type ? "enable" : "disable"] your sensors.") //VOREStation Add
|
||||
@@ -818,7 +818,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
/mob/living/silicon/ai/proc/toggle_hologram_movement()
|
||||
set name = "Toggle Hologram Movement"
|
||||
set category = "AI Settings"
|
||||
set category = "AI.Settings"
|
||||
set desc = "Toggles hologram movement based on moving with your virtual eye."
|
||||
|
||||
hologram_follow = !hologram_follow
|
||||
@@ -910,7 +910,7 @@ var/list/ai_verbs_default = list(
|
||||
// Pass lying down or getting up to our pet human, if we're in a rig.
|
||||
/mob/living/silicon/ai/lay_down()
|
||||
set name = "Rest"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
resting = 0
|
||||
var/obj/item/rig/rig = src.get_rig()
|
||||
@@ -993,12 +993,12 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
/mob/living/silicon/ai/proc/toggle_multicam_verb()
|
||||
set name = "Toggle Multicam"
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Camera Control"
|
||||
toggle_multicam()
|
||||
|
||||
/mob/living/silicon/ai/proc/add_multicam_verb()
|
||||
set name = "Add Multicam Viewport"
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Camera Control"
|
||||
drop_new_multicam()
|
||||
|
||||
//Special subtype kept around for global announcements
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
target.post_deploy()
|
||||
|
||||
/mob/living/silicon/ai/proc/deploy_to_shell_act()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Commands"
|
||||
set name = "Deploy to Shell"
|
||||
deploy_to_shell() // This is so the AI is not prompted with a list of all mobs when using the 'real' proc.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ var/global/list/empty_playable_ai_cores = list()
|
||||
|
||||
/mob/living/silicon/ai/verb/store_core()
|
||||
set name = "Store Core"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
set desc = "Enter intelligence storage. This is functionally equivalent to cryo or robotic storage, freeing up your job slot."
|
||||
|
||||
if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/ai/proc/show_laws_verb()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Commands"
|
||||
set name = "Show Laws"
|
||||
src.show_laws()
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
R.show_laws()
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_checklaws()
|
||||
set category = "AI Commands"
|
||||
set category = "AI.Commands"
|
||||
set name = "State Laws"
|
||||
subsystem_law_manager()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Originally a debug verb, made it a proper adminverb for ~fun~
|
||||
/client/proc/makePAI(turf/t in view(), name as text, pai_key as null|text)
|
||||
set name = "Make pAI"
|
||||
set category = "Admin"
|
||||
set category = "Admin.Events"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_EVENT|R_DEBUG))
|
||||
return
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/pai/verb/reset_record_view()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Reset Records Software"
|
||||
|
||||
securityActive1 = null
|
||||
@@ -240,7 +240,7 @@
|
||||
to_chat(usr, span_notice("You reset your record-viewing software."))
|
||||
|
||||
/mob/living/silicon/pai/cancel_camera()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Cancel Camera View"
|
||||
src.reset_view(null)
|
||||
src.unset_machine()
|
||||
@@ -251,7 +251,7 @@
|
||||
// to it. Really this deserves its own file, but for the moment it can sit here. ~ Z
|
||||
|
||||
/mob/living/silicon/pai/verb/fold_out()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Unfold Chassis"
|
||||
|
||||
if(stat || sleeping || paralysis || weakened)
|
||||
@@ -309,7 +309,7 @@
|
||||
update_icon()
|
||||
|
||||
/mob/living/silicon/pai/verb/fold_up()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Collapse Chassis"
|
||||
|
||||
if(stat || sleeping || paralysis || weakened)
|
||||
@@ -326,7 +326,7 @@
|
||||
|
||||
/* //VOREStation Removal Start
|
||||
/mob/living/silicon/pai/proc/choose_chassis()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Choose Chassis"
|
||||
|
||||
var/choice
|
||||
@@ -345,7 +345,7 @@
|
||||
*/
|
||||
|
||||
/mob/living/silicon/pai/proc/choose_verbs()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Choose Speech Verbs"
|
||||
|
||||
var/choice = tgui_input_list(usr,"What theme would you like to use for your speech verbs?","Theme Choice", possible_say_verbs)
|
||||
@@ -358,7 +358,7 @@
|
||||
|
||||
/mob/living/silicon/pai/lay_down()
|
||||
set name = "Rest"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
// Pass lying down or getting up to our pet human, if we're in a rig.
|
||||
if(istype(src.loc,/obj/item/paicard))
|
||||
@@ -522,7 +522,7 @@
|
||||
|
||||
/mob/living/silicon/pai/verb/allowmodification()
|
||||
set name = "Change Access Modifcation Permission"
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set desc = "Allows people to modify your access or block people from modifying your access."
|
||||
|
||||
if(idaccessible == 0)
|
||||
@@ -535,7 +535,7 @@
|
||||
|
||||
/mob/living/silicon/pai/verb/wipe_software()
|
||||
set name = "Enter Storage"
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set desc = "Upload your personality to the cloud and wipe your software from the card. This is functionally equivalent to cryo or robotic storage, freeing up your job slot."
|
||||
|
||||
// Make sure people don't kill themselves accidentally
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
|
||||
/mob/living/silicon/pai/proc/pai_nom(var/mob/living/T in oview(1))
|
||||
set name = "pAI Nom"
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set desc = "Allows you to eat someone while unfolded. Can't be used while in card form."
|
||||
|
||||
if (stat != CONSCIOUS)
|
||||
@@ -173,7 +173,7 @@
|
||||
|
||||
//proc override to avoid pAI players being invisible while the chassis selection window is open
|
||||
/mob/living/silicon/pai/proc/choose_chassis()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Choose Chassis"
|
||||
var/choice
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
update_icon()
|
||||
|
||||
/mob/living/silicon/pai/verb/toggle_eyeglow()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Toggle Eye Glow"
|
||||
|
||||
if(chassis in allows_eye_color)
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
|
||||
/mob/living/silicon/pai/verb/pick_eye_color()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Pick Eye Color"
|
||||
if(chassis in allows_eye_color)
|
||||
else
|
||||
@@ -408,7 +408,7 @@
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/pai/verb/save_pai_to_slot()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Save Configuration"
|
||||
savefile_save(src)
|
||||
to_chat(src, span_filter_notice("[name] configuration saved to global pAI settings."))
|
||||
@@ -444,7 +444,7 @@
|
||||
/mob/living/silicon/pai/verb/toggle_gender_identity_vr()
|
||||
set name = "Set Gender Identity"
|
||||
set desc = "Sets the pronouns when examined and performing an emote."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
var/new_gender_identity = tgui_input_list(usr, "Please select a gender Identity:", "Set Gender Identity", list(FEMALE, MALE, NEUTER, PLURAL, HERM))
|
||||
if(!new_gender_identity)
|
||||
return 0
|
||||
@@ -454,7 +454,7 @@
|
||||
/mob/living/silicon/pai/verb/pai_hide()
|
||||
set name = "Hide"
|
||||
set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.pAI"
|
||||
|
||||
hide()
|
||||
if(status_flags & HIDING)
|
||||
@@ -464,7 +464,7 @@
|
||||
update_icon()
|
||||
|
||||
/mob/living/silicon/pai/verb/screen_message(message as text|null)
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Screen Message"
|
||||
set desc = "Allows you to display a message on your screen. This will show up in the chat of anyone who is holding your card."
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ var/global/list/default_pai_software = list()
|
||||
software = default_pai_software.Copy()
|
||||
|
||||
/mob/living/silicon/pai/verb/paiInterface()
|
||||
set category = "pAI Commands"
|
||||
set category = "Abilities.pAI Commands"
|
||||
set name = "Software Interface"
|
||||
|
||||
tgui_interact(src)
|
||||
|
||||
@@ -21,7 +21,20 @@
|
||||
src.owner = R
|
||||
|
||||
/datum/robot_component/proc/install()
|
||||
if(istype(wrapped, /obj/item/robot_parts/robot_component))
|
||||
var/obj/item/robot_parts/robot_component/comp = wrapped
|
||||
max_damage = comp.max_damage
|
||||
idle_usage = comp.idle_usage
|
||||
active_usage = comp.active_usage
|
||||
return
|
||||
if(istype(wrapped, /obj/item/cell))
|
||||
var/obj/item/cell/cell = wrapped
|
||||
max_damage = cell.robot_durability
|
||||
|
||||
/datum/robot_component/proc/uninstall()
|
||||
max_damage = initial(max_damage)
|
||||
idle_usage = initial(idle_usage)
|
||||
active_usage = initial(active_usage)
|
||||
|
||||
/datum/robot_component/proc/destroy()
|
||||
var/brokenstate = "broken" // Generic icon
|
||||
@@ -231,24 +244,34 @@
|
||||
var/brute = 0
|
||||
var/burn = 0
|
||||
var/icon_state_broken = "broken"
|
||||
var/idle_usage = 0
|
||||
var/active_usage = 0
|
||||
var/max_damage = 0
|
||||
|
||||
/obj/item/robot_parts/robot_component/binary_communication_device
|
||||
name = "binary communication device"
|
||||
desc = "A module used for binary communications over encrypted frequencies, commonly used by synthetic robots."
|
||||
icon_state = "binradio"
|
||||
icon_state_broken = "binradio_broken"
|
||||
idle_usage = 5
|
||||
active_usage = 25
|
||||
max_damage = 30
|
||||
|
||||
/obj/item/robot_parts/robot_component/actuator
|
||||
name = "actuator"
|
||||
desc = "A modular, hydraulic actuator used by exosuits and robots alike for movement and manipulation."
|
||||
icon_state = "motor"
|
||||
icon_state_broken = "motor_broken"
|
||||
idle_usage = 0
|
||||
active_usage = 200
|
||||
max_damage = 50
|
||||
|
||||
/obj/item/robot_parts/robot_component/armour
|
||||
name = "armour plating"
|
||||
desc = "A pair of flexible, adaptable armor plates, used to protect the internals of robots."
|
||||
icon_state = "armor"
|
||||
icon_state_broken = "armor_broken"
|
||||
max_damage = 90
|
||||
|
||||
/obj/item/robot_parts/robot_component/armour_platform
|
||||
name = "platform armour plating"
|
||||
@@ -256,21 +279,64 @@
|
||||
icon_state = "armor"
|
||||
icon_state_broken = "armor_broken"
|
||||
color = COLOR_GRAY80
|
||||
max_damage = 140
|
||||
|
||||
/obj/item/robot_parts/robot_component/camera
|
||||
name = "camera"
|
||||
desc = "A modified camera module used as a visual receptor for robots and exosuits, also serving as a relay for wireless video feed."
|
||||
icon_state = "camera"
|
||||
icon_state_broken = "camera_broken"
|
||||
idle_usage = 10
|
||||
max_damage = 40
|
||||
|
||||
/obj/item/robot_parts/robot_component/diagnosis_unit
|
||||
name = "diagnosis unit"
|
||||
desc = "An internal computer and sensors used by robots and exosuits to accurately diagnose any system discrepancies on their components."
|
||||
icon_state = "analyser"
|
||||
icon_state_broken = "analyser_broken"
|
||||
active_usage = 1000
|
||||
max_damage = 30
|
||||
|
||||
/obj/item/robot_parts/robot_component/radio
|
||||
name = "radio"
|
||||
desc = "A modular, multi-frequency radio used by robots and exosuits to enable communication systems. Comes with built-in subspace receivers."
|
||||
icon_state = "radio"
|
||||
icon_state_broken = "radio_broken"
|
||||
icon_state_broken = "radio_broken"
|
||||
idle_usage = 15
|
||||
active_usage = 75
|
||||
max_damage = 40
|
||||
|
||||
// Improved components
|
||||
/obj/item/robot_parts/robot_component/binary_communication_device/upgraded
|
||||
name = "improved binary communication device"
|
||||
idle_usage = 2.5
|
||||
active_usage = 12.5
|
||||
max_damage = 45
|
||||
|
||||
/obj/item/robot_parts/robot_component/radio/upgraded
|
||||
name = "improved radio"
|
||||
idle_usage = 5
|
||||
active_usage = 35
|
||||
max_damage = 40
|
||||
|
||||
/obj/item/robot_parts/robot_component/actuator/upgraded
|
||||
name = "improved actuator"
|
||||
idle_usage = 0
|
||||
active_usage = 100
|
||||
max_damage = 75
|
||||
|
||||
/obj/item/robot_parts/robot_component/diagnosis_unit/upgraded
|
||||
name = "improved self-diagnosis unit"
|
||||
active_usage = 500
|
||||
max_damage = 45
|
||||
|
||||
/obj/item/robot_parts/robot_component/camera/upgraded
|
||||
name = "improved camera"
|
||||
idle_usage = 5
|
||||
max_damage = 60
|
||||
|
||||
/obj/item/robot_parts/robot_component/armour/armour_titan
|
||||
name = "prototype armour plating"
|
||||
desc = "A pair of flexible, adaptable armor plates, used to protect the internals of robots."
|
||||
max_damage = 220
|
||||
color = COLOR_OFF_WHITE
|
||||
|
||||
@@ -172,7 +172,7 @@ var/list/mob_hat_cache = list()
|
||||
|
||||
/mob/living/silicon/robot/drone/verb/pick_shell()
|
||||
set name = "Customize Appearance"
|
||||
set category = "Abilities.Silicon"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(!can_pick_shell)
|
||||
to_chat(src, span_warning("You already selected a shell or this drone type isn't customizable."))
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
/mob/observer/dead/verb/join_as_drone()
|
||||
|
||||
set category = "Ghost"
|
||||
set category = "Ghost.Join"
|
||||
set name = "Join As Drone"
|
||||
set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone."
|
||||
|
||||
|
||||
@@ -430,7 +430,7 @@
|
||||
|
||||
/mob/living/silicon/robot/verb/namepick()
|
||||
set name = "Pick Name"
|
||||
set category = "Abilities.Silicon"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(custom_name)
|
||||
to_chat(usr, "You can't pick another custom name. [isshell(src) ? "" : "Go ask for a name change."]")
|
||||
@@ -448,7 +448,7 @@
|
||||
|
||||
/mob/living/silicon/robot/verb/extra_customization()
|
||||
set name = "Customize Appearance"
|
||||
set category = "Abilities.Silicon"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "Customize your appearance (assuming your chosen sprite allows)."
|
||||
|
||||
if(!sprite_datum || !sprite_datum.has_extra_customization)
|
||||
@@ -502,7 +502,7 @@
|
||||
// function to toggle VTEC once installed
|
||||
/mob/living/silicon/robot/proc/toggle_vtec()
|
||||
set name = "Toggle VTEC"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Silicon"
|
||||
vtec_active = !vtec_active
|
||||
hud_used.toggle_vtec_control()
|
||||
to_chat(src, span_filter_notice("VTEC module [vtec_active ? "enabled" : "disabled"]."))
|
||||
@@ -803,7 +803,7 @@
|
||||
|
||||
/mob/living/silicon/robot/proc/ColorMate()
|
||||
set name = "Recolour Module"
|
||||
set category = "Abilities.Silicon"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "Allows to recolour once."
|
||||
|
||||
if(!has_recoloured)
|
||||
@@ -1369,7 +1369,7 @@
|
||||
/mob/living/silicon/robot/verb/rest_style()
|
||||
set name = "Switch Rest Style"
|
||||
set desc = "Select your resting pose."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
if(!sprite_datum || !sprite_datum.has_rest_sprites || sprite_datum.rest_sprite_options.len < 1)
|
||||
to_chat(src, span_notice("Your current appearance doesn't have any resting styles!"))
|
||||
@@ -1387,7 +1387,7 @@
|
||||
|
||||
/mob/living/silicon/robot/verb/robot_nom(var/mob/living/T in living_mobs(1))
|
||||
set name = "Robot Nom"
|
||||
set category = "IC"
|
||||
set category = "Abilities.Vore"
|
||||
set desc = "Allows you to eat someone."
|
||||
|
||||
if (stat != CONSCIOUS)
|
||||
@@ -1461,7 +1461,7 @@
|
||||
|
||||
/mob/living/silicon/robot/proc/robot_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Robot Mount/Dismount"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
|
||||
@@ -6,6 +6,12 @@
|
||||
health = getMaxHealth() - (getBruteLoss() + getFireLoss())
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/getMaxHealth()
|
||||
. = ..()
|
||||
for(var/V in components)
|
||||
var/datum/robot_component/C = components[V]
|
||||
. += C.max_damage - initial(C.max_damage)
|
||||
|
||||
/mob/living/silicon/robot/getBruteLoss()
|
||||
var/amount = 0
|
||||
for(var/V in components)
|
||||
|
||||
@@ -257,14 +257,14 @@
|
||||
/mob/living/silicon/verb/pose()
|
||||
set name = "Set Pose"
|
||||
set desc = "Sets a description which will be shown when someone examines you."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
pose = strip_html_simple(tgui_input_text(usr, "This is [src]. It is...", "Pose", null))
|
||||
|
||||
/mob/living/silicon/verb/set_flavor()
|
||||
set name = "Set Flavour Text"
|
||||
set desc = "Sets an extended description of your character's features."
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
|
||||
var/new_flavortext = strip_html_simple(tgui_input_text(usr, "Please enter your new flavour text.", "Flavour text", flavor_text, multiline = TRUE))
|
||||
if(new_flavortext)
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
|
||||
/mob/living/simple_mob/proc/ColorMate()
|
||||
set name = "Recolour"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "Allows to recolour once."
|
||||
|
||||
if(!has_recoloured)
|
||||
@@ -363,7 +363,7 @@
|
||||
|
||||
/mob/living/simple_mob/proc/hunting_vision()
|
||||
set name = "Track Prey Through Walls"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Mob"
|
||||
set desc = "Uses you natural predatory instincts to seek out prey even through walls, or your natural survival instincts to spot predators from a distance."
|
||||
|
||||
if(hunting_cooldown + 5 MINUTES < world.time)
|
||||
@@ -378,7 +378,7 @@
|
||||
|
||||
/mob/living/simple_mob/proc/hunting_vision_plus()
|
||||
set name = "Thermal vision toggle"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Mob"
|
||||
set desc = "Uses you natural predatory instincts to seek out prey even through walls, or your natural survival instincts to spot predators from a distance."
|
||||
|
||||
if(!isthermal)
|
||||
|
||||
@@ -367,7 +367,7 @@
|
||||
|
||||
/mob/living/simple_mob/proc/animal_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Animal Mount/Dismount"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Mob"
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
@@ -402,7 +402,7 @@
|
||||
|
||||
/mob/living/simple_mob/proc/leap()
|
||||
set name = "Pounce Target"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Mob"
|
||||
set desc = "Select a target to pounce at."
|
||||
|
||||
if(last_special > world.time)
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/proc/catslug_color()
|
||||
set name = "Pick Color"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "You can set your color!"
|
||||
if(picked_color)
|
||||
to_chat(src, span_notice("You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0."))
|
||||
@@ -1112,7 +1112,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/suslug/proc/assussinate()
|
||||
set name = "Kill Innocent"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Catslug"
|
||||
set desc = "Kill an innocent suslug!"
|
||||
if(!is_impostor)
|
||||
to_chat(src, span_notice("You are not an impostor! You can't kill like that!"))
|
||||
|
||||
@@ -187,14 +187,14 @@
|
||||
/mob/living/simple_mob/vore/overmap/stardog/verb/eject()
|
||||
set name = "Eject"
|
||||
set desc = "Stop controlling the dog and return to your own body."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Stardog"
|
||||
|
||||
control_node.eject()
|
||||
|
||||
/mob/living/simple_mob/vore/overmap/stardog/verb/eat_space_weather()
|
||||
set name = "Eat Space Weather"
|
||||
set desc = "Eat carp or rocks!"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Stardog"
|
||||
|
||||
var/obj/effect/overmap/event/E
|
||||
var/nut = 0
|
||||
@@ -297,7 +297,7 @@
|
||||
/mob/living/simple_mob/vore/overmap/stardog/verb/transition() //Don't ask how it works. I don't know. I didn't think about it. I just thought it would be cool.
|
||||
set name = "Transition"
|
||||
set desc = "Attempt to go to the location you have arrived at, or return to space!"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Stardog"
|
||||
if(nutrition <= 500)
|
||||
to_chat(src, span_warning("You're too hungry..."))
|
||||
return
|
||||
@@ -451,7 +451,7 @@
|
||||
/turf/simulated/floor/outdoors/fur/verb/pet()
|
||||
set name = "Pet Fur"
|
||||
set desc = "Pet the fur!"
|
||||
set category = "IC"
|
||||
set category = "IC.Stardog"
|
||||
set src in oview(1)
|
||||
|
||||
usr.visible_message(span_notice("\The [usr] pets \the [src]."), span_notice("You pet \the [src]."), runemessage = "pet pat...")
|
||||
@@ -466,7 +466,7 @@
|
||||
/turf/simulated/floor/outdoors/fur/verb/emote_beyond(message as message) //Now even the stars will know your sin.
|
||||
set name = "Emote Beyond"
|
||||
set desc = "Emote to those beyond the fur!"
|
||||
set category = "IC"
|
||||
set category = "IC.Chat"
|
||||
set src in oview(1)
|
||||
|
||||
if(!isliving(usr))
|
||||
@@ -1139,7 +1139,7 @@
|
||||
/obj/machinery/computer/ship/navigation/verb/emote_beyond(message as message) //I could have put this into any other file but right here will do
|
||||
set name = "Emote Beyond"
|
||||
set desc = "Emote to those beyond the ship!"
|
||||
set category = "IC"
|
||||
set category = "IC.Chat"
|
||||
set src in oview(7)
|
||||
|
||||
if(!isliving(usr))
|
||||
|
||||
@@ -962,7 +962,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
//
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/proc/produce_offspring()
|
||||
set name = "Produce Offspring"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Teppi"
|
||||
set desc = "You can have babies if the conditions are right."
|
||||
if(prevent_breeding)
|
||||
to_chat(src, span_notice("You have elected to not participate in breeding mechanics, and so cannot complete that action."))
|
||||
@@ -1004,7 +1004,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/proc/toggle_producing_offspring()
|
||||
set name = "Toggle Producing Offspring"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Teppi"
|
||||
set desc = "You can toggle whether or not you can produce offspring."
|
||||
if(!prevent_breeding)
|
||||
to_chat(src, span_notice("You disable breeding."))
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/verb/set_flavour_text()
|
||||
set name = "Set Flavour Text"
|
||||
set category = "IC"
|
||||
set category = "IC.Settings"
|
||||
set desc = "Set your flavour text."
|
||||
set src = usr
|
||||
var/new_flavour_text = sanitize((input("Please describe yourself.", "Flavour Text", flavor_text) as message|null), MAX_MESSAGE_LEN)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/simple_mob/animal/borer/verb/release_host()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Release Host"
|
||||
set desc = "Slither out of your host."
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
leave_host()
|
||||
|
||||
/mob/living/simple_mob/animal/borer/verb/infest()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Infest"
|
||||
set desc = "Infest a suitable humanoid host."
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
|
||||
/*
|
||||
/mob/living/simple_mob/animal/borer/verb/devour_brain()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Devour Brain"
|
||||
set desc = "Take permanent control of a dead host."
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
H.lastKnownIP = s2h_ip
|
||||
|
||||
/mob/living/simple_mob/animal/borer/verb/secrete_chemicals()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Secrete Chemicals"
|
||||
set desc = "Push some chemicals into your host's bloodstream."
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
chemicals -= 50
|
||||
|
||||
/mob/living/simple_mob/animal/borer/verb/dominate_victim()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Paralyze Victim"
|
||||
set desc = "Freeze the limbs of a potential host with supernatural fear."
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
used_dominate = world.time
|
||||
|
||||
/mob/living/simple_mob/animal/borer/verb/bond_brain()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Assume Control"
|
||||
set desc = "Fully connect to the brain of your host."
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/jumpstart()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Borer"
|
||||
set name = "Revive Host"
|
||||
set desc = "Send a jolt of electricity through your host, reviving them."
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ var/list/_cat_default_emotes = list(
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cat/verb/become_friends()
|
||||
set name = "Become Friends"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src in view(1)
|
||||
|
||||
var/mob/living/L = usr
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/fox/renault/verb/become_friends()
|
||||
set name = "Become Friends"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src in view(1)
|
||||
|
||||
var/mob/living/L = usr
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/fox/fluff/verb/friend()
|
||||
set name = "Become Friends"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src in view(1)
|
||||
|
||||
if(friend && usr == friend)
|
||||
|
||||
@@ -103,7 +103,7 @@ Field studies suggest analytical abilities on par with some species of cepholapo
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/verb/sit_down()
|
||||
set name = "Sit Down"
|
||||
set category = "IC"
|
||||
set category = "IC.Grafadreka"
|
||||
|
||||
if(sitting)
|
||||
resting = FALSE
|
||||
@@ -132,7 +132,7 @@ Field studies suggest analytical abilities on par with some species of cepholapo
|
||||
icon_rest = "doggo_lying"
|
||||
projectileverb = "spits"
|
||||
friendly = list("headbutts", "grooms", "play-bites", "rubs against")
|
||||
bitesize = 10 // chomp
|
||||
bitesize = 10
|
||||
gender = NEUTER
|
||||
|
||||
has_langs = list("Drake")
|
||||
@@ -564,7 +564,7 @@ var/global/list/wounds_being_tended_by_drakes = list()
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/verb/rally_pack()
|
||||
set name = "Rally Pack"
|
||||
set desc = "Tries to command your fellow pack members to follow you."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Grafadreka"
|
||||
|
||||
if(!has_modifier_of_type(/datum/modifier/ace))
|
||||
to_chat(src, span_warning("You aren't the pack leader! Sit down!"))
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/verb/do_flash()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Kururak"
|
||||
set name = "Tail Blind"
|
||||
set desc = "Disorient a creature within range."
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
R.flash_eyes()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/verb/do_strike()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Kururak"
|
||||
set name = "Rending Strike"
|
||||
set desc = "Strike viciously at an entity within range."
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
/mob/living/simple_mob/animal/sif/kururak/verb/rally_pack() // Mostly for telling other players to follow you. AI Kururaks will auto-follow, if set to.
|
||||
set name = "Rally Pack"
|
||||
set desc = "Tries to command your fellow pack members to follow you."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Kururak"
|
||||
|
||||
if(has_modifier_of_type(/datum/modifier/ace))
|
||||
for(var/mob/living/simple_mob/animal/sif/kururak/K in hearers(7, src))
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
leave_host()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/leech/verb/infest()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leech"
|
||||
set name = "Infest"
|
||||
set desc = "Infest a suitable humanoid host."
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
return
|
||||
|
||||
/mob/living/simple_mob/animal/sif/leech/verb/uninfest()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leech"
|
||||
set name = "Uninfest"
|
||||
set desc = "Leave your current host."
|
||||
|
||||
@@ -336,7 +336,7 @@
|
||||
host = null
|
||||
|
||||
/mob/living/simple_mob/animal/sif/leech/verb/inject_victim()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leech"
|
||||
set name = "Incapacitate Potential Host"
|
||||
set desc = "Inject an organic host with an incredibly painful mixture of chemicals."
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
H.add_modifier(/datum/modifier/poisoned/paralysis, 15 SECONDS)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/leech/verb/medicate_host()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leech"
|
||||
set name = "Produce Chemicals (50)"
|
||||
set desc = "Inject your host with possibly beneficial chemicals, to keep the blood flowing."
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
to_chat(src, span_alien("We injected \the [host] with five units of [chem]."))
|
||||
|
||||
/mob/living/simple_mob/animal/sif/leech/verb/feed_on_organ()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leech"
|
||||
set name = "Feed on Organ"
|
||||
set desc = "Extend probosci to feed on a piece of your host's organs."
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
/mob/living/simple_mob/animal/sif/sakimm/verb/remove_hat()
|
||||
set name = "Remove Hat"
|
||||
set desc = "Remove the animal's hat. You monster."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Sakimm"
|
||||
set src in view(1)
|
||||
|
||||
drop_hat(usr)
|
||||
@@ -95,7 +95,7 @@
|
||||
/mob/living/simple_mob/animal/sif/sakimm/verb/give_hat()
|
||||
set name = "Give Hat"
|
||||
set desc = "Give the animal a hat. You hero."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Sakimm"
|
||||
set src in view(1)
|
||||
|
||||
take_hat(usr)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
/mob/living/simple_mob/animal/sif/savik/verb/berserk()
|
||||
set name = "Berserk"
|
||||
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Savik"
|
||||
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
/mob/living/simple_mob/animal/sif/shantak/leader/verb/rally_pack()
|
||||
set name = "Rally Pack"
|
||||
set desc = "Commands your fellow packmembers to follow you, the leader."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Shantak"
|
||||
|
||||
for(var/mob/living/simple_mob/animal/sif/shantak/S in hearers(7, src))
|
||||
if(istype(S, /mob/living/simple_mob/animal/sif/shantak/leader)) // Leaders won't follow other leaders. Also avoids trying to follow ourselves.
|
||||
|
||||
@@ -44,6 +44,6 @@
|
||||
/mob/living/simple_mob/animal/space/bear/verb/berserk()
|
||||
set name = "Berserk"
|
||||
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Bear"
|
||||
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
/mob/living/simple_mob/animal/space/goose/verb/berserk()
|
||||
set name = "Berserk"
|
||||
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Goose"
|
||||
|
||||
add_modifier(/datum/modifier/berserk, 30 SECONDS)
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
// Fix for Virgo 2's Surface
|
||||
/mob/living/simple_mob/animal/space
|
||||
maxbodytemp = 700
|
||||
maxbodytemp = 700
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
/mob/living/simple_mob/animal/space/space_worm/head/verb/toggle_devour()
|
||||
set name = "Toggle Feeding"
|
||||
set desc = "Extends your teeth for 30 seconds so that you can chew through mobs and structures alike."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Worm"
|
||||
|
||||
if(world.time < time_maw_opened + maw_cooldown)
|
||||
if(open_maw)
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/squirrel/verb/squirrel_color()
|
||||
set name = "Pick Color"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "You can set your color!"
|
||||
if(picked_color)
|
||||
to_chat(src, span_notice("You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0."))
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/durand/verb/toggle_defense_mode()
|
||||
set name = "Toggle Defense Mode"
|
||||
set desc = "Toggles a special mode which makes you immobile and much more resilient."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Durand"
|
||||
|
||||
set_defense_mode(!defense_mode)
|
||||
|
||||
|
||||
@@ -276,14 +276,14 @@ I think I covered everything.
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/toggle_glow()
|
||||
set name = "Toggle Glow"
|
||||
set desc = "Switch between glowing and not glowing."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
glow_toggle = !glow_toggle
|
||||
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/sprite_toggle()
|
||||
set name = "Toggle Small Sprite"
|
||||
set desc = "Switches your sprite to a smaller variant so you can see what you're doing. Others will always see your standard sprite instead. "
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(!small)
|
||||
var/image/I = image(icon = small_icon, icon_state = small_icon_state, loc = src)
|
||||
@@ -298,7 +298,7 @@ I think I covered everything.
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/flame_toggle()
|
||||
set name = "Toggle breath attack"
|
||||
set desc = "Toggles whether you will breath attack on harm intent (If you have one)."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(norange)
|
||||
to_chat(src, span_userdanger("You don't have a breath attack!"))
|
||||
@@ -310,7 +310,7 @@ I think I covered everything.
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/special_toggle()
|
||||
set name = "Toggle special attacks"
|
||||
set desc = "Toggles whether you will tail spin and charge (If you have them)."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(nospecial)
|
||||
to_chat(src, span_userdanger("You don't have special attacks!"))
|
||||
@@ -419,7 +419,7 @@ I think I covered everything.
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/set_style()
|
||||
set name = "Set Dragon Style"
|
||||
set desc = "Customise your icons."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
var/list/options = list("Underbelly","Body","Ears","Mane","Horns","Eyes")
|
||||
for(var/option in options)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/living/simple_mob/vore/demon/verb/blood_crawl()
|
||||
set name = "Bloodcrawl"
|
||||
set desc = "Shift out of reality using blood as your gateway"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Demon"
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T.CanPass(src,T) || loc != T)
|
||||
@@ -108,7 +108,7 @@
|
||||
/mob/living/simple_mob/vore/demon/verb/phase_shift()
|
||||
set name = "Phase Shift"
|
||||
set desc = "Shift out of reality temporarily"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Demon"
|
||||
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
|
||||
//Welcome to the adapted borer code.
|
||||
/mob/proc/dominate_predator()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Dominate Predator"
|
||||
set desc = "Connect to and dominate the brain of your predator."
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
qdel(prey)
|
||||
|
||||
/mob/proc/release_predator()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Restore Control"
|
||||
set desc = "Release control of your predator's body."
|
||||
|
||||
@@ -289,7 +289,7 @@
|
||||
remove_verb(src, /mob/proc/release_predator)
|
||||
|
||||
/mob/living/dominated_brain/proc/resist_control()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Resist Control"
|
||||
set desc = "Attempt to resist control."
|
||||
if(pred_body.ckey == pred_ckey)
|
||||
@@ -308,7 +308,7 @@
|
||||
to_chat(src, span_warning("\The [pred_body] is already dominated, and cannot be controlled at this time."))
|
||||
|
||||
/mob/living/proc/dominate_prey()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Dominate Prey"
|
||||
set desc = "Connect to and dominate the brain of your prey."
|
||||
|
||||
@@ -378,7 +378,7 @@
|
||||
to_chat(M, span_warning("Your mind is gathered into \the [src], becoming part of them..."))
|
||||
|
||||
/mob/living/dominated_brain/proc/cease_this_foolishness()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Return to Body"
|
||||
set desc = "If your body is inside of your predator still, attempts to re-insert yourself into it."
|
||||
|
||||
@@ -405,7 +405,7 @@
|
||||
remove_verb(src, /mob/living/dominated_brain/proc/cease_this_foolishness)
|
||||
|
||||
/mob/living/proc/lend_prey_control()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Vore"
|
||||
set name = "Give Prey Control"
|
||||
set desc = "Allow prey control of your body."
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
/mob/living/simple_mob/vore/leopardmander/exotic/proc/toggle_glow()
|
||||
set name = "Toggle Glow"
|
||||
set desc = "Switch between glowing and not glowing."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Leopardmander"
|
||||
|
||||
glow_toggle = !glow_toggle
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
/mob/living/simple_mob/vore/aggressive/macrophage
|
||||
name = "Germ"
|
||||
desc = "A giant virus!"
|
||||
icon = 'icons/mob/macrophage.dmi'
|
||||
icon_state = "macrophage-1"
|
||||
|
||||
faction = FACTION_MACROBACTERIA
|
||||
maxHealth = 60
|
||||
health = 60
|
||||
|
||||
var/datum/disease/base_disease = null
|
||||
var/list/infections = list()
|
||||
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 5
|
||||
grab_resist = 100
|
||||
see_in_dark = 8
|
||||
|
||||
response_help = "shoos"
|
||||
response_disarm = "swats away"
|
||||
response_harm = "squashes"
|
||||
attacktext = list("squashed")
|
||||
friendly = list("shoos", "rubs")
|
||||
|
||||
vore_bump_chance = "attempts to absorb"
|
||||
|
||||
vore_active = TRUE
|
||||
vore_capacity = 1
|
||||
|
||||
can_be_drop_prey = FALSE
|
||||
allow_mind_transfer = TRUE
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/macrophage/green
|
||||
icon_state = "macrophage-2"
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/macrophage/pink
|
||||
icon_state = "macrophage-3"
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/macrophage/blue
|
||||
icon_state = "macrophage-4"
|
||||
|
||||
/obj/belly/macrophage
|
||||
name = "capsid"
|
||||
fancy_vore = TRUE
|
||||
contamination_color = "green"
|
||||
vore_verb = "absorb"
|
||||
escapable = TRUE
|
||||
escapable = 5
|
||||
desc = "In an attempt to get away from the giant virus, it's oversized envelope proteins dragged you right past it's matrix, encapsulating you deep inside it's capsid... The strange walls kneading and keeping you tight along within it's nucleoprotein."
|
||||
belly_fullscreen = "VBO_gematically_angular"
|
||||
belly_fullscreen_color = "#87d8d8"
|
||||
digest_mode = DM_ABSORB
|
||||
affects_vore_sprites = FALSE
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/macrophage/init_vore()
|
||||
|
||||
if(LAZYLEN(vore_organs))
|
||||
return TRUE
|
||||
|
||||
var/obj/belly/B = new /obj/belly/macrophage(src)
|
||||
vore_selected = B
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
emote_see = list("honks")
|
||||
|
||||
/mob/living/simple_mob/clowns/big/c_shift/honkelemental/verb/spawn_egg()
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Clown"
|
||||
set name = "Spawn Clown Egg"
|
||||
set desc = "Spawns an egg that a player can touch, which will call on ghosts to spawn as clowns."
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/morph/proc/morph_color()
|
||||
set name = "Pick Color"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "You can set your color!"
|
||||
var/newcolor = input(usr, "Choose a color.", "", color) as color|null
|
||||
if(newcolor)
|
||||
@@ -257,7 +257,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/morph/proc/take_over_prey()
|
||||
set name = "Take Over Prey"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Morph"
|
||||
set desc = "Take command of your prey's body."
|
||||
if(morphed)
|
||||
to_chat(src, span_warning("You must restore to your original form first!"))
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
/mob/living/simple_mob/vore/sect_drone/proc/set_abdomen_color()
|
||||
set name = "Set Glow Color"
|
||||
set desc = "Customize your eyes and abdomen glow color."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Sect Drone"
|
||||
|
||||
var/new_color = input(src, "Please select color.", "Glow Color", custom_eye_color) as color|null
|
||||
if(new_color)
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
/mob/living/simple_mob/vore/sect_queen/proc/set_abdomen_color()
|
||||
set name = "Set Glow Color"
|
||||
set desc = "Customize your eyes and abdomen glow color."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Sect Queen"
|
||||
|
||||
var/new_color = input(src, "Please select color.", "Glow Color", custom_eye_color) as color|null
|
||||
if(new_color)
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
/mob/living/simple_mob/proc/set_name()
|
||||
set name = "Set Name"
|
||||
set desc = "Sets your mobs name. You only get to do this once."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
if(limit_renames && nameset)
|
||||
to_chat(src, span_userdanger("You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must."))
|
||||
return
|
||||
@@ -66,7 +66,7 @@
|
||||
/mob/living/simple_mob/proc/set_desc()
|
||||
set name = "Set Description"
|
||||
set desc = "Set your description."
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.Settings"
|
||||
var/newdesc
|
||||
newdesc = sanitizeSafe(tgui_input_text(src,"Set your description. Max 4096 chars.", "Description set","", prevent_enter = TRUE), MAX_MESSAGE_LEN)
|
||||
if(newdesc)
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
|
||||
/mob/verb/memory()
|
||||
set name = "Notes"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
if(mind)
|
||||
mind.show_memory(src)
|
||||
else
|
||||
@@ -296,7 +296,7 @@
|
||||
|
||||
/mob/verb/add_memory(msg as message)
|
||||
set name = "Add Note"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
msg = sanitize(msg)
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
|
||||
/mob/verb/abandon_mob()
|
||||
set name = "Return to Menu"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
|
||||
if(stat != DEAD || !ticker)
|
||||
to_chat(usr, span_boldnotice("You must be dead to use this!"))
|
||||
@@ -465,7 +465,7 @@
|
||||
|
||||
/client/verb/changes()
|
||||
set name = "Changelog"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Resources"
|
||||
src << link("https://wiki.vore-station.net/Changelog")
|
||||
|
||||
/*
|
||||
@@ -477,7 +477,7 @@
|
||||
|
||||
/mob/verb/observe()
|
||||
set name = "Observe"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
var/is_admin = 0
|
||||
|
||||
if(client.holder && (client.holder.rights & R_ADMIN|R_EVENT))
|
||||
@@ -519,7 +519,7 @@
|
||||
|
||||
/mob/verb/cancel_camera()
|
||||
set name = "Cancel Camera View"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Game"
|
||||
unset_machine()
|
||||
reset_view(null)
|
||||
|
||||
@@ -543,7 +543,7 @@
|
||||
/mob/verb/stop_pulling()
|
||||
|
||||
set name = "Stop Pulling"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
|
||||
if(pulling)
|
||||
if(ishuman(pulling))
|
||||
@@ -998,7 +998,7 @@
|
||||
/mob/verb/face_direction()
|
||||
|
||||
set name = "Face Direction"
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set src = usr
|
||||
|
||||
set_face_dir()
|
||||
|
||||
@@ -239,3 +239,6 @@
|
||||
var/list/list/misc_tabs = list()
|
||||
|
||||
var/list/datum/action/actions
|
||||
|
||||
var/list/viruses
|
||||
var/list/resistances
|
||||
|
||||
@@ -21,8 +21,9 @@
|
||||
my_mob = M
|
||||
|
||||
/obj/screen/plane_master/augmented/Destroy()
|
||||
entopic_users -= my_mob
|
||||
my_mob = null
|
||||
return ..()
|
||||
. = ..()
|
||||
|
||||
/obj/screen/plane_master/augmented/set_visibility(var/want = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
all_underwear[WRC.name] = WRI.name
|
||||
|
||||
|
||||
headset = rand(1,3)
|
||||
backbag = rand(1,6)
|
||||
pdachoice = rand(1,7)
|
||||
age = rand(current_species.min_age, current_species.max_age)
|
||||
|
||||
@@ -207,7 +207,7 @@ var/global/list/SKILL_PRE = list(JOB_ENGINEER = SKILL_ENGINEER, JOB_ROBOTICIST =
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/verb/show_skills()
|
||||
set category = "IC"
|
||||
set category = "IC.Game"
|
||||
set name = "Show Own Skills"
|
||||
|
||||
show_skill_window(src, src)
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/taur_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Taur Mount/Dismount"
|
||||
set category = "Abilities"
|
||||
set category = "Abilities.General"
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
|
||||
@@ -617,7 +617,7 @@
|
||||
name = "Drake (Taur)"
|
||||
icon_state = "drake_s"
|
||||
extra_overlay = "drake_markings"
|
||||
/// suit_sprites = 'icons/mob/taursuits_drake_vr.dmi' ///Chomp edit
|
||||
/// suit_sprites = 'icons/mob/taursuits_drake_vr.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
can_loaf = TRUE
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/mob/verb/whisper(message as text)
|
||||
set name = "Whisper"
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
set hidden = 1
|
||||
//VOREStation Addition Start
|
||||
if(forced_psay)
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/mob/verb/say_verb(message as text)
|
||||
set name = "Say"
|
||||
set category = "IC"
|
||||
set category = "IC.Chat"
|
||||
set hidden = 1
|
||||
//VOREStation Addition Start
|
||||
if(forced_psay)
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/mob/verb/me_verb(message as message)
|
||||
set name = "Me"
|
||||
set category = "IC"
|
||||
set category = "IC.Chat"
|
||||
set desc = "Emote to nearby people (and your pred/prey)"
|
||||
set hidden = 1
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/mob/verb/me_verb_subtle(message as message) //This would normally go in say.dm
|
||||
set name = "Subtle"
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
set desc = "Emote to nearby people (and your pred/prey)"
|
||||
set hidden = 1
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/mob/verb/me_verb_subtle_custom(message as message) // Literally same as above but with mode_selection set to true
|
||||
set name = "Subtle (Custom)"
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
set desc = "Emote to nearby people, with ability to choose which specific portion of people you wish to target."
|
||||
|
||||
if(say_disabled) //This is here to try to identify lag problems
|
||||
@@ -260,7 +260,7 @@
|
||||
///// PSAY /////
|
||||
|
||||
/mob/verb/psay(message as text)
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
set name = "Psay"
|
||||
set desc = "Talk to people affected by complete absorbed or dominate predator/prey."
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
///// PME /////
|
||||
|
||||
/mob/verb/pme(message as message)
|
||||
set category = "IC"
|
||||
set category = "IC.Subtle"
|
||||
set name = "Pme"
|
||||
set desc = "Emote to people affected by complete absorbed or dominate predator/prey."
|
||||
|
||||
@@ -454,7 +454,7 @@
|
||||
M.me_verb(message)
|
||||
|
||||
/mob/living/verb/player_narrate(message as message)
|
||||
set category = "IC"
|
||||
set category = "IC.Chat"
|
||||
set name = "Narrate (Player)"
|
||||
set desc = "Narrate an action or event! An alternative to emoting, for when your emote shouldn't start with your name!"
|
||||
|
||||
@@ -500,7 +500,7 @@
|
||||
|
||||
/mob/verb/select_speech_bubble()
|
||||
set name = "Select Speech Bubble"
|
||||
set category = "OOC"
|
||||
set category = "OOC.Chat Settings"
|
||||
|
||||
var/new_speech_bubble = tgui_input_list(src, "Pick new voice (default for automatic selection)", "Character Preference", selectable_speech_bubbles)
|
||||
if(new_speech_bubble)
|
||||
|
||||
Reference in New Issue
Block a user