stop this nonsense
This commit is contained in:
@@ -169,10 +169,10 @@
|
||||
|
||||
/mob/dead/new_player/Topic(href, href_list[])
|
||||
if(src != usr)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(!client)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//don't let people get to this unless they are specifically not verified
|
||||
if(href_list["Month"] && (CONFIG_GET(flag/age_verification) && !check_rights_for(client, R_ADMIN) && !(client.ckey in GLOB.bunker_passthrough)))
|
||||
@@ -727,7 +727,7 @@
|
||||
src << browse(dat, "window=manifest;size=387x420;can_close=1")
|
||||
|
||||
/mob/dead/new_player/Move()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
|
||||
/mob/dead/new_player/proc/close_spawn_windows()
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
return
|
||||
pollid = text2num(pollid)
|
||||
if (!pollid || pollid < 0)
|
||||
return 0
|
||||
return FALSE
|
||||
//validate the poll is actually the right type of poll and its still active
|
||||
var/datum/db_query/query_validate_poll = SSdbcore.NewQuery({"
|
||||
SELECT id
|
||||
@@ -473,12 +473,12 @@
|
||||
))
|
||||
if(!query_validate_poll.warn_execute())
|
||||
qdel(query_validate_poll)
|
||||
return 0
|
||||
return FALSE
|
||||
if (!query_validate_poll.NextRow())
|
||||
qdel(query_validate_poll)
|
||||
return 0
|
||||
return FALSE
|
||||
qdel(query_validate_poll)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
* Processes vote form data and saves results to the database for an IRV type poll.
|
||||
@@ -501,7 +501,7 @@
|
||||
if(!QDELETED(client) && client.holder)
|
||||
admin_rank = client.holder.rank.name
|
||||
if (!vote_valid_check(pollid, client?.holder, POLLTYPE_IRV))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/list/special_columns = list(
|
||||
"datetime" = "NOW()",
|
||||
@@ -544,7 +544,7 @@
|
||||
return
|
||||
//validate the poll
|
||||
if (!vote_valid_check(pollid, client.holder, POLLTYPE_OPTION))
|
||||
return 0
|
||||
return FALSE
|
||||
var/voted = poll_check_voted(pollid)
|
||||
if(isnull(voted) || voted) //Failed or already voted.
|
||||
return
|
||||
@@ -567,7 +567,7 @@
|
||||
qdel(query_option_vote)
|
||||
if(!QDELETED(usr))
|
||||
usr << browse(null,"window=playerpoll")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/dead/new_player/proc/log_text_poll_reply(pollid, replytext)
|
||||
if(!SSdbcore.Connect())
|
||||
@@ -581,7 +581,7 @@
|
||||
return
|
||||
//validate the poll
|
||||
if (!vote_valid_check(pollid, client.holder, POLLTYPE_TEXT))
|
||||
return 0
|
||||
return FALSE
|
||||
if(!replytext)
|
||||
to_chat(usr, "The text you entered was blank. Please correct the text and submit again.")
|
||||
return
|
||||
@@ -611,7 +611,7 @@
|
||||
qdel(query_text_vote)
|
||||
if(!QDELETED(usr))
|
||||
usr << browse(null,"window=playerpoll")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/dead/new_player/proc/vote_on_numval_poll(pollid, optionid, rating)
|
||||
if(!SSdbcore.Connect())
|
||||
@@ -625,7 +625,7 @@
|
||||
return
|
||||
//validate the poll
|
||||
if (!vote_valid_check(pollid, client.holder, POLLTYPE_RATING))
|
||||
return 0
|
||||
return FALSE
|
||||
var/datum/db_query/query_numval_hasvoted = SSdbcore.NewQuery({"
|
||||
SELECT id
|
||||
FROM [format_table_name("poll_vote")]
|
||||
@@ -655,7 +655,7 @@
|
||||
qdel(query_numval_vote)
|
||||
if(!QDELETED(usr))
|
||||
usr << browse(null,"window=playerpoll")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
* Processes vote form data and saves results to the database for a multiple choice type poll.
|
||||
|
||||
@@ -233,7 +233,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
var/g_val
|
||||
var/color_format = length(input_color)
|
||||
if(color_format != length_char(input_color))
|
||||
return 0
|
||||
return FALSE
|
||||
if(color_format == 3)
|
||||
r_val = hex2num(copytext(input_color, 1, 2)) * 16
|
||||
g_val = hex2num(copytext(input_color, 2, 3)) * 16
|
||||
@@ -243,7 +243,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
g_val = hex2num(copytext(input_color, 3, 5))
|
||||
b_val = hex2num(copytext(input_color, 5, 7))
|
||||
else
|
||||
return 0 //If the color format is not 3 or 6, you're using an unexpected way to represent a color.
|
||||
return FALSE //If the color format is not 3 or 6, you're using an unexpected way to represent a color.
|
||||
|
||||
r_val += (255 - r_val) * 0.4
|
||||
if(r_val > 255)
|
||||
@@ -693,32 +693,32 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/mob/living/target = input("Your new life begins today!", "Possess Mob", null, null) as null|anything in possessible
|
||||
|
||||
if(!target)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(ismegafauna(target))
|
||||
to_chat(src, "<span class='warning'>This creature is too powerful for you to possess!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(can_reenter_corpse && mind && mind.current)
|
||||
if(alert(src, "Your soul is still tied to your former life as [mind.current.name], if you go forward there is no going back to that life. Are you sure you wish to continue?", "Move On", "Yes", "No") == "No")
|
||||
return 0
|
||||
return FALSE
|
||||
if(target.key)
|
||||
to_chat(src, "<span class='warning'>Someone has taken this body while you were choosing!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
transfer_ckey(target, FALSE)
|
||||
target.AddElement(/datum/element/ghost_role_eligibility, penalize_on_ghost = FALSE, free_ghosting = TRUE)
|
||||
target.faction = list("neutral")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//this is a mob verb instead of atom for performance reasons
|
||||
//see /mob/verb/examinate() in mob.dm for more info
|
||||
//overridden here and in /mob/living for different point span classes and sanity checks
|
||||
/mob/dead/observer/pointed(atom/A as mob|obj|turf in fov_view())
|
||||
if(!..())
|
||||
return 0
|
||||
return FALSE
|
||||
usr.visible_message("<span class='deadsay'><b>[src]</b> points to [A].</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/dead/observer/verb/view_manifest()
|
||||
set name = "View Crew Manifest"
|
||||
@@ -839,7 +839,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return IsAdminGhost(usr)
|
||||
|
||||
/mob/dead/observer/is_literate()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/dead/observer/vv_edit_var(var_name, var_value)
|
||||
. = ..()
|
||||
@@ -947,7 +947,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
// Ghosts have no momentum, being massless ectoplasm
|
||||
/mob/dead/observer/Process_Spacemove(movement_dir)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/dead/observer/vv_edit_var(var_name, var_value)
|
||||
. = ..()
|
||||
|
||||
@@ -379,7 +379,7 @@
|
||||
//returns 0 if it cannot, 1 if successful
|
||||
/mob/proc/equip_to_appropriate_slot(obj/item/W, clothing_check = FALSE)
|
||||
if(!istype(W))
|
||||
return 0
|
||||
return FALSE
|
||||
var/slot_priority = W.slot_equipment_priority
|
||||
|
||||
if(!slot_priority)
|
||||
@@ -396,9 +396,9 @@
|
||||
|
||||
for(var/slot in slot_priority)
|
||||
if(equip_to_slot_if_possible(W, slot, FALSE, TRUE, TRUE, FALSE, clothing_check)) //qdel_on_fail = 0; disable_warning = 1; redraw_mob = 1
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/**
|
||||
* Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
//entry when holding them
|
||||
// literally only an option for carbons though
|
||||
to_chat(C, "<span class='warning'>You may not hold items while blood crawling!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
var/obj/item/bloodcrawl/B1 = new(C)
|
||||
var/obj/item/bloodcrawl/B2 = new(C)
|
||||
B1.icon_state = "bloodhand_left"
|
||||
@@ -45,7 +45,7 @@
|
||||
spawn(0)
|
||||
bloodpool_sink(B)
|
||||
src.mob_transforming = FALSE
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/bloodpool_sink(obj/effect/decal/cleanable/B)
|
||||
var/turf/mobloc = get_turf(src.loc)
|
||||
@@ -89,7 +89,7 @@
|
||||
var/success = bloodcrawl_consume(victim)
|
||||
if(!success)
|
||||
to_chat(src, "<span class='danger'>You happily devour... nothing? Your meal vanished at some point!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/bloodcrawl_consume(mob/living/victim)
|
||||
to_chat(src, "<span class='danger'>You begin to feast on [victim]. You can not move while you are doing this.</span>")
|
||||
@@ -161,7 +161,7 @@
|
||||
/mob/living/proc/phasein(obj/effect/decal/cleanable/B)
|
||||
if(src.mob_transforming)
|
||||
to_chat(src, "<span class='warning'>Finish eating first!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
B.visible_message("<span class='warning'>[B] starts to bubble...</span>")
|
||||
if(!do_after(src, 20, target = B))
|
||||
return
|
||||
@@ -178,4 +178,4 @@
|
||||
qdel(BC)
|
||||
qdel(src.holder)
|
||||
src.holder = null
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
/mob/living/brain/can_be_revived()
|
||||
. = 1
|
||||
if(!container || health <= HEALTH_THRESHOLD_DEAD)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/brain/fully_replace_character_name(oldname,newname)
|
||||
..()
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
clear_alert("alien_fire")
|
||||
|
||||
/mob/living/carbon/alien/reagent_check(datum/reagent/R) //can metabolize all reagents
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/IsAdvancedToolUser()
|
||||
return has_fine_manipulation
|
||||
@@ -136,7 +136,7 @@ Des: Removes all infected images from the alien.
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/canBeHandcuffed()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0)
|
||||
return initial(pixel_y)
|
||||
|
||||
@@ -123,7 +123,7 @@ In all, this is a lot like the monkey code. /N
|
||||
adjustEarDamage(15,60)
|
||||
|
||||
/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/acid_act(acidpwr, acid_volume)
|
||||
return 0//aliens are immune to acid.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/mob/living/carbon/alien/getToxLoss(toxins_type = TOX_OMNI)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE, toxins_type = TOX_DEFAULT) //alien immune to tox damage
|
||||
return FALSE
|
||||
|
||||
@@ -32,7 +32,7 @@ Doesn't work on other aliens/AI.*/
|
||||
return
|
||||
|
||||
/obj/effect/proc_holder/alien/fire(mob/living/carbon/user)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/alien/get_panel_text()
|
||||
. = ..()
|
||||
@@ -72,10 +72,10 @@ Doesn't work on other aliens/AI.*/
|
||||
/obj/effect/proc_holder/alien/plant/fire(mob/living/carbon/user)
|
||||
if(locate(/obj/structure/alien/weeds/node) in get_turf(user))
|
||||
to_chat(user, "There's already a weed node here.")
|
||||
return 0
|
||||
return FALSE
|
||||
user.visible_message("<span class='alertalien'>[user] has planted some alien weeds!</span>")
|
||||
new/obj/structure/alien/weeds/node(user.loc)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/alien/whisper
|
||||
name = "Whisper"
|
||||
@@ -89,7 +89,7 @@ Doesn't work on other aliens/AI.*/
|
||||
options += Ms
|
||||
var/mob/living/M = input("Select who to whisper to:","Whisper to?",null) as null|mob in options
|
||||
if(!M)
|
||||
return 0
|
||||
return FALSE
|
||||
if(M.anti_magic_check(FALSE, FALSE, TRUE, 0))
|
||||
to_chat(user, "<span class='noticealien'>As you try to communicate with [M], you're suddenly stopped by a vision of a massive tinfoil wall that streches beyond visible range. It seems you've been foiled.</span>")
|
||||
return FALSE
|
||||
@@ -108,8 +108,8 @@ Doesn't work on other aliens/AI.*/
|
||||
var/follow_link_whispee = FOLLOW_LINK(ded, M)
|
||||
to_chat(ded, "[follow_link_user] <span class='name'>[user]</span> <span class='alertalien'>Alien Whisper --> </span> [follow_link_whispee] <span class='name'>[M]</span> <span class='noticealien'>[msg]</span>")
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/alien/transfer
|
||||
name = "Transfer Plasma"
|
||||
@@ -124,7 +124,7 @@ Doesn't work on other aliens/AI.*/
|
||||
aliens_around.Add(A)
|
||||
var/mob/living/carbon/M = input("Select who to transfer to:","Transfer plasma to?",null) as mob in aliens_around
|
||||
if(!M)
|
||||
return 0
|
||||
return FALSE
|
||||
var/amount = input("Amount:", "Transfer Plasma to [M]") as num
|
||||
if (amount)
|
||||
amount = min(abs(round(amount)), user.getPlasma())
|
||||
@@ -153,21 +153,21 @@ Doesn't work on other aliens/AI.*/
|
||||
if(target in oview(1,user))
|
||||
if(target.acid_act(200, 100))
|
||||
user.visible_message("<span class='alertalien'>[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, "<span class='noticealien'>You cannot dissolve this object.</span>")
|
||||
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
to_chat(src, "<span class='noticealien'>[target] is too far away.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/effect/proc_holder/alien/acid/fire(mob/living/carbon/alien/user)
|
||||
var/O = input("Select what to dissolve:","Dissolve",null) as obj|turf in oview(1,user)
|
||||
if(!O || user.incapacitated())
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
return corrode(O,user)
|
||||
|
||||
@@ -320,21 +320,21 @@ Doesn't work on other aliens/AI.*/
|
||||
/mob/living/carbon/proc/getPlasma()
|
||||
var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel)
|
||||
if(!vessel)
|
||||
return 0
|
||||
return FALSE
|
||||
return vessel.storedPlasma
|
||||
|
||||
|
||||
/mob/living/carbon/proc/adjustPlasma(amount)
|
||||
var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel)
|
||||
if(!vessel)
|
||||
return 0
|
||||
return FALSE
|
||||
vessel.storedPlasma = max(vessel.storedPlasma + amount,0)
|
||||
vessel.storedPlasma = min(vessel.storedPlasma, vessel.max_plasma) //upper limit of max_plasma, lower limit of 0
|
||||
for(var/X in abilities)
|
||||
var/obj/effect/proc_holder/alien/APH = X
|
||||
if(APH.has_action)
|
||||
APH.action.UpdateButtons()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/adjustPlasma(amount)
|
||||
. = ..()
|
||||
@@ -343,6 +343,6 @@ Doesn't work on other aliens/AI.*/
|
||||
/mob/living/carbon/proc/usePlasma(amount)
|
||||
if(getPlasma() >= amount)
|
||||
adjustPlasma(-amount)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -27,18 +27,18 @@
|
||||
var/obj/item/organ/alien/hivenode/node = user.getorgan(/obj/item/organ/alien/hivenode)
|
||||
if(!node) //Players are Murphy's Law. We may not expect there to ever be a living xeno with no hivenode, but they _WILL_ make it happen.
|
||||
to_chat(user, "<span class='danger'>Without the hivemind, you can't possibly hold the responsibility of leadership!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(node.recent_queen_death)
|
||||
to_chat(user, "<span class='danger'>Your thoughts are still too scattered to take up the position of leadership.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(!isturf(user.loc))
|
||||
to_chat(user, "<span class='notice'>You can't evolve here!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal))
|
||||
var/mob/living/carbon/alien/humanoid/royal/praetorian/new_xeno = new (user.loc)
|
||||
user.alien_evolve(new_xeno)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>We already have a living royal!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -29,14 +29,14 @@
|
||||
var/obj/item/organ/alien/hivenode/node = user.getorgan(/obj/item/organ/alien/hivenode)
|
||||
if(!node) //Just in case this particular Praetorian gets violated and kept by the RD as a replacement for Lamarr.
|
||||
to_chat(user, "<span class='danger'>Without the hivemind, you would be unfit to rule as queen!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(node.recent_queen_death)
|
||||
to_chat(user, "<span class='danger'>You are still too burdened with guilt to evolve into a queen.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen))
|
||||
var/mob/living/carbon/alien/humanoid/royal/queen/new_xeno = new (user.loc)
|
||||
user.alien_evolve(new_xeno)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>We already have an alive queen.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
visible_message("<span class='danger'>[user] has [hitverb] [src]!</span>", \
|
||||
"<span class='userdanger'>[user] has [hitverb] [src]!</span>", null, COMBAT_MESSAGE_RANGE)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/on_attack_hand(mob/living/carbon/human/M)
|
||||
. = ..()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
var/alt_inhands_file = 'icons/mob/alienqueen.dmi'
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen
|
||||
name = "alien queen"
|
||||
@@ -90,20 +90,20 @@
|
||||
var/obj/item/queenpromote/prom
|
||||
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/))
|
||||
to_chat(user, "<span class='noticealien'>You already have a Praetorian!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
for(prom in user)
|
||||
to_chat(user, "<span class='noticealien'>You discard [prom].</span>")
|
||||
qdel(prom)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
prom = new (user.loc)
|
||||
if(!user.put_in_active_hand(prom, 1))
|
||||
to_chat(user, "<span class='warning'>You must empty your hands before preparing the parasite.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
else //Just in case telling the player only once is not enough!
|
||||
to_chat(user, "<span class='noticealien'>Use the royal parasite on one of your children to promote her to Praetorian!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/obj/item/queenpromote
|
||||
name = "\improper royal parasite"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
"<span class='userdanger'>[user] has pummeled [src]!</span>", null, COMBAT_MESSAGE_RANGE)
|
||||
adjustBruteLoss(5 + rand(1,9))
|
||||
new /datum/forced_movement(src, get_step_away(user,src, 30), 1)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
if(!no_effect && !visual_effect_icon)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
user.layer = MOB_LAYER
|
||||
user.visible_message("[user] slowly peeks up from the ground...", \
|
||||
"<span class='noticealien'>You stop hiding.</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/effect/proc_holder/alien/larva_evolve
|
||||
@@ -57,7 +57,7 @@
|
||||
new_xeno = new /mob/living/carbon/alien/humanoid/drone(L.loc)
|
||||
|
||||
L.alien_evolve(new_xeno)
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
to_chat(user, "<span class='danger'>You are not fully grown.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
if(!breath || (breath.total_moles() == 0))
|
||||
//Aliens breathe in vaccuum
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/toxins_used = 0
|
||||
var/tox_detect_threshold = 0.02
|
||||
|
||||
@@ -97,12 +97,12 @@
|
||||
/obj/item/clothing/mask/facehugger/on_found(mob/finder)
|
||||
if(stat == CONSCIOUS)
|
||||
return HasProximity(finder)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
|
||||
if(CanHug(AM) && Adjacent(AM))
|
||||
return Leap(AM)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
if(!..())
|
||||
@@ -256,7 +256,7 @@
|
||||
return FALSE
|
||||
|
||||
if(ismonkey(M))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/mob/living/carbon/C = M
|
||||
if(ishuman(C) && !(ITEM_SLOT_MASK in C.dna.species.no_equip))
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
. = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE))
|
||||
|
||||
/mob/living/carbon/proc/canBeHandcuffed()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/Topic(href, href_list)
|
||||
..()
|
||||
@@ -450,7 +450,7 @@
|
||||
|
||||
/mob/living/carbon/attack_ui(slot)
|
||||
if(!has_hand_for_held_index(active_hand_index))
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, harm = TRUE, force = FALSE, purge_ratio = 0.1)
|
||||
@@ -891,7 +891,7 @@
|
||||
/mob/living/carbon/can_be_revived()
|
||||
. = ..()
|
||||
if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling)))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/harvest(mob/living/user)
|
||||
if(QDELETED(src))
|
||||
|
||||
@@ -7,24 +7,24 @@
|
||||
|
||||
/mob/living/carbon/Process_Spacemove(movement_dir = 0)
|
||||
if(..())
|
||||
return 1
|
||||
return TRUE
|
||||
if(!isturf(loc))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// Do we have a jetpack implant (and is it on)?
|
||||
var/obj/item/organ/cyberimp/chest/thrusters/T = getorganslot(ORGAN_SLOT_THRUSTERS)
|
||||
if(istype(T) && movement_dir && T.allow_thrust(0.01))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/obj/item/I = get_jetpack()
|
||||
if(istype(I, /obj/item/tank/jetpack))
|
||||
var/obj/item/tank/jetpack/J = I
|
||||
if((movement_dir || J.stabilizers) && J.allow_thrust(0.01, src))
|
||||
return 1
|
||||
return TRUE
|
||||
else if(istype(I, /obj/item/mod/module/jetpack))
|
||||
var/obj/item/mod/module/jetpack/J = I
|
||||
if((movement_dir || J.stabilizers) && J.allow_thrust())
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/Moved()
|
||||
. = ..()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
/mob/living/carbon/regenerate_icons()
|
||||
if(mob_transforming)
|
||||
return 1
|
||||
return TRUE
|
||||
update_inv_hands()
|
||||
update_inv_handcuffed()
|
||||
update_inv_legcuffed()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMAGE, damage, damagetype, def_zone)
|
||||
var/hit_percent = (100-blocked)/100
|
||||
if(!forced && hit_percent <= 0)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/obj/item/bodypart/BP = null
|
||||
if(!spread_damage)
|
||||
|
||||
@@ -478,17 +478,17 @@
|
||||
return
|
||||
if(is_mouth_covered())
|
||||
to_chat(src, "<span class='warning'>Remove your mask first!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(C.is_mouth_covered())
|
||||
to_chat(src, "<span class='warning'>Remove [p_their()] mask first!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(C.cpr_time < world.time + 30)
|
||||
visible_message("<span class='notice'>[src] is trying to perform CPR on [C.name]!</span>", \
|
||||
"<span class='notice'>You try to perform CPR on [C.name]... Hold still!</span>")
|
||||
if(!do_mob(src, C))
|
||||
to_chat(src, "<span class='warning'>You fail to perform CPR on [C]!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/they_breathe = !HAS_TRAIT(C, TRAIT_NOBREATH)
|
||||
var/they_lung = C.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
@@ -671,7 +671,7 @@
|
||||
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
|
||||
if(stun)
|
||||
DefaultCombatKnockdown(200)
|
||||
return 1
|
||||
return TRUE
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/vv_get_dropdown()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/carbon/human/getarmor(def_zone, type)
|
||||
if(HAS_TRAIT(src, TRAIT_ARMOR_BROKEN)) //trait that makes it act as if you have no armor at all, you take natural damage from all sources
|
||||
return 0
|
||||
return FALSE
|
||||
var/armorval = 0
|
||||
var/organnum = 0
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type)
|
||||
if(!d_type || !def_zone)
|
||||
return 0
|
||||
return FALSE
|
||||
var/protection = 0
|
||||
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id, wear_neck) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor)
|
||||
for(var/bp in body_parts)
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
|
||||
if(!I || !user)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/obj/item/bodypart/affecting
|
||||
if(user == src)
|
||||
@@ -125,7 +125,7 @@
|
||||
"<span class='userdanger'>[user] [hulk_verb_continous] you!</span>", null, COMBAT_MESSAGE_RANGE, null, user,
|
||||
"<span class='danger'>You [hulk_verb_simple] [src]!</span>")
|
||||
apply_damage(15, BRUTE, wound_bonus=10)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
. = ..()
|
||||
@@ -168,7 +168,7 @@
|
||||
if(..()) //successful monkey bite, this handles disease contraction.
|
||||
var/damage = rand(1, 3)
|
||||
apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, MELEE))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M)
|
||||
. = ..()
|
||||
@@ -183,7 +183,7 @@
|
||||
visible_message("<span class='danger'>[M] has lunged at [src]!</span>", \
|
||||
"<span class='userdanger'>[M] has lunged at you!</span>", target = M, \
|
||||
target_message = "<span class='danger'>You have lunged at [src]!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
|
||||
if(!affecting)
|
||||
affecting = get_bodypart(BODY_ZONE_CHEST)
|
||||
@@ -195,7 +195,7 @@
|
||||
target_message = "<span class='danger'>You have slashed at [src]!</span>")
|
||||
log_combat(M, src, "attacked")
|
||||
if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
|
||||
return 1
|
||||
return TRUE
|
||||
apply_damage(damage, BRUTE, affecting, armor_block)
|
||||
|
||||
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
|
||||
@@ -252,7 +252,7 @@
|
||||
|
||||
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
|
||||
if(!dam_zone) //Dismemberment successful
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
|
||||
if(!affecting)
|
||||
@@ -529,7 +529,7 @@
|
||||
|
||||
for(var/obj/item/I in inventory_items_to_kill)
|
||||
I.acid_act(acidpwr, acid_volume)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/singularity_act()
|
||||
var/gain = 20
|
||||
|
||||
@@ -103,11 +103,11 @@
|
||||
|
||||
/mob/living/carbon/human/can_track(mob/living/user)
|
||||
if(wear_id && istype(wear_id.GetID(), /obj/item/card/id/syndicate))
|
||||
return 0
|
||||
return FALSE
|
||||
if(istype(head, /obj/item/clothing/head))
|
||||
var/obj/item/clothing/head/hat = head
|
||||
if(hat.blockTracking)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
/mob/living/carbon/human/slip(knockdown_amount, obj/O, lube)
|
||||
if(HAS_TRAIT(src, TRAIT_NOSLIPALL))
|
||||
return 0
|
||||
return FALSE
|
||||
if (!(lube & GALOSHES_DONT_HELP))
|
||||
if(HAS_TRAIT(src, TRAIT_NOSLIPWATER))
|
||||
return 0
|
||||
return FALSE
|
||||
if(shoes && istype(shoes, /obj/item/clothing))
|
||||
var/obj/item/clothing/CS = shoes
|
||||
if (CS.clothing_flags & NOSLIP)
|
||||
return 0
|
||||
return FALSE
|
||||
if (lube & SLIDE_ICE)
|
||||
if(shoes && istype(shoes, /obj/item/clothing))
|
||||
var/obj/item/clothing/CS = shoes
|
||||
@@ -32,7 +32,7 @@
|
||||
if(shoes && istype(shoes, /obj/item/clothing))
|
||||
var/obj/item/clothing/S = shoes
|
||||
if (S.clothing_flags & NOSLIP)
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/mob_has_gravity()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/list/limbs_to_heal = H.get_missing_limbs()
|
||||
if(limbs_to_heal.len < 1)
|
||||
return 0
|
||||
return FALSE
|
||||
var/mode = H.get_ability_property(INNATE_ABILITY_LIMB_REGROWTH, PROPERTY_LIMB_REGROWTH_USAGE_TYPE)
|
||||
switch(mode)
|
||||
if(REGROWTH_USES_BLOOD)
|
||||
@@ -20,7 +20,7 @@
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/datum/action/innate/ability/limb_regrowth/Activate()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
|
||||
@@ -282,9 +282,9 @@
|
||||
else
|
||||
O = outfit
|
||||
if(!istype(O))
|
||||
return 0
|
||||
return FALSE
|
||||
if(!O)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
return O.equip(src, visualsOnly, preference_source)
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
if(cold)
|
||||
//CITADEL EDIT Mandatory for vore code.
|
||||
if(istype(loc, /obj/item/dogborg/sleeper) || isbelly(loc) || ismob(loc))
|
||||
return 1 //freezing to death in sleepers ruins fun.
|
||||
return TRUE //freezing to death in sleepers ruins fun.
|
||||
//END EDIT
|
||||
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
|
||||
var/thermal_protection_flags = cold ? get_cold_protection_flags(temperature) : get_heat_protection_flags(temperature)
|
||||
@@ -254,7 +254,7 @@
|
||||
if(missing_body_parts_flags & HAND_RIGHT)
|
||||
max_protection -= THERMAL_PROTECTION_HAND_RIGHT
|
||||
if(max_protection == 0) //Is it even a man if it doesn't have a body at all? Early return to avoid division by zero.
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/thermal_protection = 0
|
||||
if(thermal_protection_flags)
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
ears.talk_into(src, message, message_mode, spans, language)
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/get_alt_name()
|
||||
if(name != GetVoice())
|
||||
|
||||
@@ -321,8 +321,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
//Please override this locally if you want to define when what species qualifies for what rank if human authority is enforced.
|
||||
/datum/species/proc/qualifies_for_rank(rank, list/features) //SPECIES JOB RESTRICTIONS
|
||||
//if(rank in GLOB.command_positions) Left as an example: The format qualifies for rank takes.
|
||||
// return 0 //It returns false when it runs the proc so they don't get jobs from the global list.
|
||||
return 1 //It returns 1 to say they are a-okay to continue.
|
||||
// return FALSE //It returns false when it runs the proc so they don't get jobs from the global list.
|
||||
return TRUE //It returns 1 to say they are a-okay to continue.
|
||||
|
||||
/**
|
||||
* Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
|
||||
@@ -1589,7 +1589,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
H.throw_alert("nutrition", /atom/movable/screen/alert/starving)
|
||||
|
||||
/datum/species/proc/update_health_hud(mob/living/carbon/human/H)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/datum/species/proc/handle_mutations_and_radiation(mob/living/carbon/human/H)
|
||||
. = FALSE
|
||||
@@ -1645,7 +1645,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
target.help_shake_act(user)
|
||||
if(target != user)
|
||||
log_combat(user, target, "shaked")
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
var/we_breathe = !HAS_TRAIT(user, TRAIT_NOBREATH)
|
||||
var/we_lung = user.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
@@ -1661,12 +1661,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(target.check_martial_melee_block())
|
||||
target.visible_message("<span class='warning'>[target] blocks [user]'s grab attempt!</span>", target = user, \
|
||||
target_message = "<span class='warning'>[target] blocks your grab attempt!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(attacker_style && attacker_style.grab_act(user,target))
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
target.grabbedby(user)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style, attackchain_flags = NONE)
|
||||
if(!attacker_style && HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
@@ -1929,11 +1929,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(user != H)
|
||||
var/list/block_return = list()
|
||||
if(H.mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACK_IS_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, block_return) & BLOCK_SUCCESS)
|
||||
return 0
|
||||
return FALSE
|
||||
totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return)
|
||||
if(H.check_martial_melee_block())
|
||||
H.visible_message("<span class='warning'>[H] blocks [I]!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/hit_area
|
||||
|
||||
@@ -1958,7 +1958,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
I.do_stagger_action(H, user, totitemdamage)
|
||||
|
||||
if(!totitemdamage)
|
||||
return 0 //item force is zero
|
||||
return FALSE //item force is zero
|
||||
|
||||
var/bloody = 0
|
||||
if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2))))
|
||||
@@ -2167,7 +2167,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
var/hit_percent = (100-(blocked+armor))/100
|
||||
hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100
|
||||
if(!forced && hit_percent <= 0)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/obj/item/bodypart/BP = null
|
||||
if(!spread_damage)
|
||||
@@ -2224,7 +2224,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(BRAIN)
|
||||
var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.brain_mod
|
||||
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
|
||||
// called when hit by a projectile
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
/datum/species/arachnid/check_weakness(obj/item/weapon, mob/living/attacker)
|
||||
if(istype(weapon, /obj/item/melee/flyswatter))
|
||||
return 9 //flyswatters deal 10x damage to arachnids
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/datum/species/arachnid/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
|
||||
. = ..()
|
||||
|
||||
@@ -37,4 +37,4 @@
|
||||
/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker)
|
||||
if(istype(weapon, /obj/item/melee/flyswatter))
|
||||
return 29 //Flyswatters deal 30x damage to flypeople.
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
I = AM
|
||||
var/mob/thrown_by = I.thrownby?.resolve()
|
||||
if(thrown_by == H) //No throwing stuff at yourself to trigger the teleport
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
reactive_teleport(H)
|
||||
|
||||
@@ -463,8 +463,8 @@
|
||||
/datum/action/innate/unstable_teleport/IsAvailable(silent = FALSE)
|
||||
if(..())
|
||||
if(world.time > last_teleport + cooldown)
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/action/innate/unstable_teleport/Activate()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
@@ -546,7 +546,7 @@
|
||||
if(istype(AM, /obj/item))
|
||||
I = AM
|
||||
if(I.thrownby == H) //No throwing stuff at yourself to make bananas
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
new/obj/item/grown/bananapeel/specialpeel(get_turf(H))
|
||||
last_banana = world.time
|
||||
|
||||
@@ -183,8 +183,8 @@
|
||||
if(..())
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/action/innate/split_body/Activate()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
H.equipOutfit(O, visualsOnly)
|
||||
H.internal = H.get_item_for_held_index(2)
|
||||
H.update_internals_hud_icon(1)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/datum/species/plasmaman/random_name(gender,unique,lastname)
|
||||
if(unique)
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/heart/nightmare/Stop()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/obj/item/organ/heart/nightmare/on_death()
|
||||
if(!owner)
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
|
||||
failed_last_breath = 1
|
||||
throw_alert("not_enough_oxy", /atom/movable/screen/alert/not_enough_oxy)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/safe_oxy_min = 16
|
||||
var/safe_oxy_max = 50
|
||||
@@ -312,7 +312,7 @@
|
||||
//BREATH TEMPERATURE
|
||||
handle_breath_temperature(breath)
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//Fourth and final link in a breath chain
|
||||
/mob/living/carbon/proc/handle_breath_temperature(datum/gas_mixture/breath)
|
||||
@@ -660,7 +660,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
//used in human and monkey handle_environment()
|
||||
/mob/living/carbon/proc/natural_bodytemperature_stabilization()
|
||||
if(HAS_TRAIT(src, TRAIT_COLDBLOODED) || HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
|
||||
return 0 //Return 0 as your natural temperature. Species proc handle_environment() will adjust your temperature based on this.
|
||||
return FALSE //return FALSE as your natural temperature. Species proc handle_environment() will adjust your temperature based on this.
|
||||
|
||||
var/body_temperature_difference = BODYTEMP_NORMAL - bodytemperature
|
||||
switch(bodytemperature)
|
||||
@@ -675,7 +675,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
|
||||
/mob/living/carbon/proc/get_cooling_efficiency()
|
||||
if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/integration_bonus = min(blood_volume * SYNTH_INTEGRATION_COOLANT_CAP, integrating_blood * SYNTH_INTEGRATION_COOLANT_PENALTY) //Integration blood somewhat helps, though only at 40% impact and to a cap of 25% of current blood level.
|
||||
var/blood_effective_volume = blood_volume + integration_bonus
|
||||
@@ -691,7 +691,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
return suitlink //If you are wearing full EVA or lavaland hazard gear (on lavaland), assume it has been made to accomodate your cooling needs.
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
if(!environment)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/pressure = environment.return_pressure()
|
||||
var/heat = environment.return_temperature()
|
||||
@@ -711,18 +711,18 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
if(istype(head_item, /obj/item/clothing/head/helmet/space) && istype(suit_item, /obj/item/clothing/suit/space))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
if(istype(head_item, /obj/item/clothing/head/mod) && istype(suit_item, /obj/item/clothing/suit/mod))
|
||||
var/obj/item/clothing/suit/mod/modsuit = suit_item
|
||||
var/obj/item/mod/control/mod_control = modsuit.mod
|
||||
if(mod_control && mod_control.active)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
if(T && is_mining_level(T.z) && istype(head_item, /obj/item/clothing/head/hooded/explorer) && istype(suit_item, /obj/item/clothing/suit/hooded/explorer))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/////////
|
||||
//LIVER//
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
// taken from /mob/living/carbon/human/interactive/
|
||||
/mob/living/carbon/monkey/proc/walk2derpless(target)
|
||||
if(!target || IsStandingStill())
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(myPath.len <= 0)
|
||||
myPath = get_path_to(src, target, 250, 1)
|
||||
@@ -39,14 +39,14 @@
|
||||
if(myPath.len >= 1)
|
||||
walk_to(src,myPath[1],0,5)
|
||||
myPath -= myPath[1]
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
// failed to path correctly so just try to head straight for a bit
|
||||
walk_to(src,get_turf(target),0,5)
|
||||
sleep(1)
|
||||
walk_to(src,0)
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// taken from /mob/living/carbon/human/interactive/
|
||||
/mob/living/carbon/monkey/proc/IsDeadOrIncap(checkDead = TRUE)
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
/mob/living/carbon/monkey/has_smoke_protection()
|
||||
if(wear_mask)
|
||||
if(wear_mask.clothing_flags & BLOCK_GAS_SMOKE_EFFECT)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/monkey/handle_fire()
|
||||
. = ..()
|
||||
|
||||
@@ -171,8 +171,8 @@ GLOBAL_LIST_INIT(strippable_monkey_items, create_strippable_list(list(
|
||||
|
||||
/mob/living/carbon/monkey/IsVocal()
|
||||
if(!getorganslot(ORGAN_SLOT_LUNGS))
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/monkey/can_use_guns(obj/item/G)
|
||||
return TRUE
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
if(!affecting)
|
||||
affecting = get_bodypart(BODY_ZONE_CHEST)
|
||||
if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful
|
||||
return 1
|
||||
return TRUE
|
||||
apply_damage(damage, BRUTE, affecting)
|
||||
|
||||
else
|
||||
@@ -159,7 +159,7 @@
|
||||
damage = rand(20, 40)
|
||||
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
|
||||
if(!dam_zone) //Dismemberment successful
|
||||
return 1
|
||||
return TRUE
|
||||
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
|
||||
if(!affecting)
|
||||
affecting = get_bodypart(BODY_ZONE_CHEST)
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
/mob/living/carbon/can_speak_vocal(message)
|
||||
if(silent)
|
||||
return 0
|
||||
return FALSE
|
||||
if(get_selected_language() == /datum/language/signlanguage && handcuffed)
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/could_speak_language(datum/language/language)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE)
|
||||
var/hit_percent = (100-blocked)/100
|
||||
if(!damage || (hit_percent <= 0))
|
||||
return 0
|
||||
return FALSE
|
||||
var/damage_amount = forced ? damage : damage * hit_percent
|
||||
switch(damagetype)
|
||||
if(BRUTE)
|
||||
@@ -32,7 +32,7 @@
|
||||
adjustCloneLoss(damage_amount, forced = forced)
|
||||
if(STAMINA)
|
||||
adjustStaminaLoss(damage_amount, forced = forced)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs
|
||||
switch(damagetype)
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0)
|
||||
if(blocked >= 100)
|
||||
return 0
|
||||
return FALSE
|
||||
if(brute)
|
||||
apply_damage(brute, BRUTE, def_zone, blocked)
|
||||
if(burn)
|
||||
@@ -82,12 +82,12 @@
|
||||
apply_damage(stamina, STAMINA, def_zone, blocked)
|
||||
if(brain)
|
||||
apply_damage(brain, BRAIN, def_zone, blocked)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE, knockdown_stamoverride, knockdown_stammax)
|
||||
var/hit_percent = (100-blocked)/100
|
||||
if(!effect || (hit_percent <= 0))
|
||||
return 0
|
||||
return FALSE
|
||||
switch(effecttype)
|
||||
if(EFFECT_STUN)
|
||||
Stun(effect * hit_percent)
|
||||
@@ -109,7 +109,7 @@
|
||||
if(EFFECT_JITTER)
|
||||
if((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE))
|
||||
jitteriness = max(jitteriness,(effect * hit_percent))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
|
||||
/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
/mob/living/proc/setOxyLoss(amount, updating_health = TRUE, forced = FALSE)
|
||||
if(status_flags & GODMODE)
|
||||
return 0
|
||||
return FALSE
|
||||
oxyloss = amount
|
||||
if(updating_health)
|
||||
updatehealth()
|
||||
@@ -179,7 +179,7 @@
|
||||
affected_by = TOX_SYSCORRUPT
|
||||
|
||||
if(toxins_type != affected_by)
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
return toxloss
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
if(fire_stacks < 0) //If we've doused ourselves in water to avoid fire, dry off slowly
|
||||
fire_stacks = min(0, fire_stacks + 1)//So we dry ourselves back to default, nonflammable.
|
||||
if(!on_fire)
|
||||
return 1
|
||||
return TRUE
|
||||
if(fire_stacks > 0)
|
||||
adjust_fire_stacks(-0.1) //the fire is slowly consumed
|
||||
else
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
|
||||
// If there's no dir_to_target then the player is on the same turf as the atom they're trying to push.
|
||||
// This can happen when a player is stood on the same turf as a directional window. All attempts to push
|
||||
// the window will fail as get_dir will return 0 and the player will be unable to move the window when
|
||||
// the window will fail as get_dir will return FALSE and the player will be unable to move the window when
|
||||
// it should be pushable.
|
||||
// In this scenario, we will use the facing direction of the /mob/living attempting to push the atom as
|
||||
// a fallback.
|
||||
@@ -683,7 +683,7 @@
|
||||
/mob/living/proc/can_be_revived()
|
||||
. = 1
|
||||
if(health <= HEALTH_THRESHOLD_DEAD)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/update_damage_overlays()
|
||||
return
|
||||
@@ -1051,27 +1051,27 @@
|
||||
//basic fast checks go first. When overriding this proc, I recommend calling ..() at the end.
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return 0
|
||||
return FALSE
|
||||
if(is_centcom_level(T.z)) //dont detect mobs on centcom
|
||||
return 0
|
||||
return FALSE
|
||||
if(is_away_level(T.z))
|
||||
return 0
|
||||
return FALSE
|
||||
if(user != null && src == user)
|
||||
return 0
|
||||
return FALSE
|
||||
if(invisibility || alpha == 0)//cloaked
|
||||
return 0
|
||||
return FALSE
|
||||
if(digitalcamo || digitalinvis)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// Now, are they viewable by a camera? (This is last because it's the most intensive check)
|
||||
if(!near_camera(src))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//used in datum/reagents/reaction() proc
|
||||
/mob/living/proc/get_permeability_protection(list/target_zones)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/harvest(mob/living/user) //used for extra objects etc. in butchering
|
||||
return
|
||||
@@ -1120,7 +1120,7 @@
|
||||
/mob/living/proc/check_weakness(obj/item/weapon, mob/living/attacker)
|
||||
if(mind && mind.has_antag_datum(/datum/antagonist/devil))
|
||||
return check_devil_bane_multiplier(weapon, attacker)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/check_acedia()
|
||||
if(mind && mind.has_objective(/datum/objective/sintouched/acedia))
|
||||
|
||||
@@ -20,15 +20,15 @@
|
||||
|
||||
|
||||
/mob/living/proc/getarmor(def_zone, type)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//this returns the mob's protection against eye damage (number between -1 and 2) from bright lights
|
||||
/mob/living/proc/get_eye_protection()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//this returns the mob's protection against ear damage (0:no protection; 1: some ear protection; 2: has no ears)
|
||||
/mob/living/proc/get_ear_protection()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/is_mouth_covered(head_only = 0, mask_only = 0)
|
||||
return FALSE
|
||||
@@ -96,7 +96,7 @@
|
||||
return P.on_hit(src, final_percent, def_zone) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
|
||||
|
||||
/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/obj/item/proc/get_volume_by_throwforce_and_or_w_class()
|
||||
if(throwforce && w_class)
|
||||
@@ -104,7 +104,7 @@
|
||||
else if(w_class)
|
||||
return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
if(!isitem(AM))
|
||||
@@ -202,11 +202,11 @@
|
||||
if(GRAB_NECK)
|
||||
log_combat(user, src, "attempted to strangle", addition="kill grab")
|
||||
if(!do_mob(user, src, grab_upgrade_time))
|
||||
return 0
|
||||
return FALSE
|
||||
if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != INTENT_GRAB)
|
||||
return 0
|
||||
return FALSE
|
||||
if(user.voremode && user.grab_state == GRAB_AGGRESSIVE)
|
||||
return 0
|
||||
return FALSE
|
||||
user.setGrabState(user.grab_state + 1)
|
||||
switch(user.grab_state)
|
||||
if(GRAB_AGGRESSIVE)
|
||||
@@ -240,7 +240,7 @@
|
||||
if(!buckled && !density)
|
||||
Move(user.loc)
|
||||
user.set_pull_offsets(src, grab_state)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/on_attack_hand(mob/user, act_intent = user.a_intent, attackchain_flags)
|
||||
..() //Ignoring parent return value here.
|
||||
@@ -302,7 +302,7 @@
|
||||
M.visible_message("<span class='notice'>\The [M] [M.friendly_verb_continuous] [src]!</span>",
|
||||
"<span class='notice'>You [M.friendly_verb_simple] [src]!</span>", target = src,
|
||||
target_message = "<span class='notice'>\The [M] [M.friendly_verb_continuous] you!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
if(HAS_TRAIT(M, TRAIT_PACIFISM))
|
||||
to_chat(M, "<span class='notice'>You don't want to hurt anyone!</span>")
|
||||
@@ -310,7 +310,7 @@
|
||||
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
|
||||
var/list/return_list = list()
|
||||
if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), return_list) & BLOCK_SUCCESS)
|
||||
return 0
|
||||
return FALSE
|
||||
damage = block_calculate_resultant_damage(damage, return_list)
|
||||
if(M.attack_sound)
|
||||
playsound(src, M.attack_sound, 50, 1, 1)
|
||||
@@ -418,7 +418,7 @@
|
||||
|
||||
/mob/living/acid_act(acidpwr, acid_volume)
|
||||
take_bodypart_damage(acidpwr * min(1, acid_volume * 0.1))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
///As the name suggests, this should be called to apply electric shocks.
|
||||
/mob/living/proc/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
|
||||
@@ -518,7 +518,7 @@
|
||||
|
||||
//called when the mob receives a loud bang
|
||||
/mob/living/proc/soundbang_act()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//to damage the clothes worn by a mob
|
||||
/mob/living/proc/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone)
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if (!buckled.anchored)
|
||||
return buckled.Move(newloc, direct)
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/old_direction = dir
|
||||
var/turf/T = loc
|
||||
|
||||
@@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
if(radio_return & REDUCE_RANGE)
|
||||
message_range = 1
|
||||
if(radio_return & NOPASS)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//No screams in space, unless you're next to someone.
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -226,7 +226,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
succumb()
|
||||
to_chat(src, compose_message(src, language, message, null, spans, message_mode))
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE, atom/movable/source)
|
||||
. = ..()
|
||||
@@ -358,23 +358,23 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
|
||||
/mob/living/can_speak(message) //For use outside of Say()
|
||||
if(can_speak_basic(message) && can_speak_vocal(message))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/can_speak_basic(message, ignore_spam = FALSE) //Check BEFORE handling of xeno and ling channels
|
||||
if(client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "<span class='danger'>You cannot speak in IC (muted).</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
if(!ignore_spam && client.handle_spam_prevention(message,MUTE_IC))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/can_speak_vocal(message) //Check AFTER handling of xeno and ling channels
|
||||
var/obj/item/bodypart/leftarm = get_bodypart(BODY_ZONE_L_ARM)
|
||||
var/obj/item/bodypart/rightarm = get_bodypart(BODY_ZONE_R_ARM)
|
||||
if(HAS_TRAIT(src, TRAIT_MUTE) && get_selected_language() != /datum/language/signlanguage)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if (get_selected_language() == /datum/language/signlanguage)
|
||||
var/left_disabled = FALSE
|
||||
@@ -390,15 +390,15 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
else
|
||||
right_disabled = TRUE
|
||||
if (left_disabled && right_disabled) // We want this to only return false if both arms are either missing or disabled since you could technically sign one-handed.
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(is_muzzled())
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(!IsVocal())
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/get_key(message)
|
||||
var/key = message[1]
|
||||
@@ -468,9 +468,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
if(MODE_BINARY)
|
||||
return ITALICS | REDUCE_RANGE //Does not return 0 since this is only reached by humans, not borgs or AIs.
|
||||
return ITALICS | REDUCE_RANGE //Does not return FALSE since this is only reached by humans, not borgs or AIs.
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/say_mod(input, message_mode)
|
||||
. = ..()
|
||||
|
||||
@@ -618,7 +618,7 @@
|
||||
queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, home.name), class)
|
||||
if (viewalerts)
|
||||
ai_alerts()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/ai/freeCamera(area/home, obj/machinery/camera/cam)
|
||||
for(var/class in alarms)
|
||||
@@ -906,7 +906,7 @@
|
||||
to_chat(user, "<span class='boldnotice'>Transfer successful</span>: [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.")
|
||||
|
||||
/mob/living/silicon/ai/can_buckle()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/ai/incapacitated(ignore_restraints, ignore_grab)
|
||||
if(aiRestorePowerRoutine)
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
if (stat != DEAD)
|
||||
adjustBruteLoss(60)
|
||||
updatehealth()
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/ai/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -177,8 +177,8 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
|
||||
if(chunk.changed)
|
||||
chunk.hasChanged(1) // Update now, no matter if it's visible or not.
|
||||
if(chunk.visibleTurfs[position])
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/cameranet/proc/stat_entry()
|
||||
if(!statclick)
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
return TRUE
|
||||
|
||||
/mob/camera/aiEye/Move()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/camera/aiEye/proc/GetViewerClient()
|
||||
if(ai)
|
||||
|
||||
@@ -187,8 +187,8 @@
|
||||
SEND_SOUND(M, voice)
|
||||
else
|
||||
SEND_SOUND(only_listener, voice)
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
#undef VOX_DELAY
|
||||
#endif
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE)
|
||||
var/hit_percent = (100-blocked)/100
|
||||
if(!damage || (!forced && hit_percent <= 0))
|
||||
return 0
|
||||
return FALSE
|
||||
var/damage_amount = forced ? damage : damage * hit_percent
|
||||
switch(damagetype)
|
||||
if(BRUTE)
|
||||
adjustBruteLoss(damage_amount, forced = forced)
|
||||
if(BURN)
|
||||
adjustFireLoss(damage_amount, forced = forced)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
|
||||
/mob/living/silicon/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE)
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
|
||||
/datum/action/innate/pai/Trigger()
|
||||
if(!ispAI(owner))
|
||||
return 0
|
||||
return FALSE
|
||||
P = owner
|
||||
|
||||
/datum/action/innate/pai/software
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/datum/paiCandidate/proc/savefile_save(mob/user)
|
||||
if(IsGuestKey(user.key))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/savefile/F = new /savefile(src.savefile_path(user))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
WRITE_FILE(F["version"], 1)
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
// loads the savefile corresponding to the mob's ckey
|
||||
// if silent=true, report incompatible savefiles
|
||||
@@ -33,12 +33,12 @@
|
||||
|
||||
/datum/paiCandidate/proc/savefile_load(mob/user, silent = TRUE)
|
||||
if (IsGuestKey(user.key))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/path = savefile_path(user)
|
||||
|
||||
if (!fexists(path))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/savefile/F = new /savefile(path)
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
fdel(path)
|
||||
if (!silent)
|
||||
alert(user, "Your savefile was incompatible with this version and was deleted.")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
F["name"] >> src.name
|
||||
F["description"] >> src.description
|
||||
F["role"] >> src.role
|
||||
F["comments"] >> src.comments
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
@@ -206,12 +206,12 @@
|
||||
var/count = 0
|
||||
while(!isliving(M))
|
||||
if(!M || !M.loc)
|
||||
return 0 //For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
|
||||
return FALSE //For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
|
||||
M = M.loc
|
||||
count++
|
||||
if(count >= 6)
|
||||
to_chat(src, "You are not being carried by anyone!")
|
||||
return 0
|
||||
return FALSE
|
||||
spawn CheckDNA(M, src)
|
||||
|
||||
if("pdamessage")
|
||||
|
||||
@@ -351,7 +351,7 @@
|
||||
if(module_active)
|
||||
return held_items.Find(module_active)
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/**
|
||||
* Selects the module in the slot module_num.
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
if(source.z != z)
|
||||
return
|
||||
if(stat == DEAD)
|
||||
return 1
|
||||
return TRUE
|
||||
var/list/our_sort = alarms[class]
|
||||
for(var/areaname in our_sort)
|
||||
if (areaname == home.name)
|
||||
@@ -279,7 +279,7 @@
|
||||
var/list/sources = alarm[3]
|
||||
if (!(source in sources))
|
||||
sources += source
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/obj/machinery/camera/cam = null
|
||||
var/list/our_cams = null
|
||||
@@ -979,7 +979,7 @@
|
||||
ionpulse = FALSE
|
||||
revert_shell()
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/robot/proc/has_module()
|
||||
if(!module || module.type == /obj/item/robot_module)
|
||||
@@ -1302,7 +1302,7 @@
|
||||
switch(choice)
|
||||
if("Resting")
|
||||
update_icons()
|
||||
return 0
|
||||
return FALSE
|
||||
if("Sitting")
|
||||
sitting = 1
|
||||
if("Belly up")
|
||||
|
||||
@@ -1128,10 +1128,10 @@
|
||||
if (energy >= amount)
|
||||
energy -= amount
|
||||
if (energy == 0)
|
||||
return 1
|
||||
return TRUE
|
||||
return 2
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/datum/robot_energy_storage/proc/add_charge(amount)
|
||||
energy = min(energy + amount, max_energy)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/silicon/robot/Process_Spacemove(movement_dir = 0)
|
||||
if(ionpulse())
|
||||
return 1
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/mob_negates_gravity()
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
to_chat(M, "<span class='binarysay'>[link] [rendered]</span>")
|
||||
|
||||
/mob/living/silicon/binarycheck()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/lingcheck()
|
||||
return 0 //Borged or AI'd lings can't speak on the ling channel.
|
||||
return FALSE //Borged or AI'd lings can't speak on the ling channel.
|
||||
|
||||
/mob/living/silicon/radio(message, message_mode, list/spans, language)
|
||||
. = ..()
|
||||
@@ -44,7 +44,7 @@
|
||||
radio.talk_into(src, message, message_mode, spans, language)
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/get_message_mode(message)
|
||||
. = ..()
|
||||
|
||||
@@ -364,12 +364,12 @@
|
||||
to_chat(src, "<span class='notice'>Automatic announcements [Autochan == "None" ? "will not use the radio." : "set to [Autochan]."]</span>")
|
||||
|
||||
/mob/living/silicon/put_in_hand_check() // This check is for borgs being able to receive items, not put them in others' hands.
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// The src mob is trying to place an item on someone
|
||||
// But the src mob is a silicon!! Disable.
|
||||
/mob/living/silicon/stripPanelEquip(obj/item/what, mob/who, slot)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
|
||||
/mob/living/silicon/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt silicon units
|
||||
@@ -434,7 +434,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/is_literate()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/get_inactive_held_item()
|
||||
return FALSE
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
for(var/mob/living/M in buckled_mobs)
|
||||
unbuckle_mob(M)
|
||||
M.electrocute_act(shock_damage/100, source, siemens_coeff, flags) //Hard metal shell conducts!
|
||||
return 0 //So borgs they don't die trying to fix wiring
|
||||
return FALSE //So borgs they don't die trying to fix wiring
|
||||
|
||||
/mob/living/silicon/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(.) //successful larva bite
|
||||
var/damage = rand(1, 3)
|
||||
attack_threshold_check(damage)
|
||||
return 1
|
||||
return TRUE
|
||||
if (M.a_intent == INTENT_HELP)
|
||||
if (health > 0)
|
||||
visible_message("<span class='notice'>[M.name] [response_help_continuous] [src].</span>", \
|
||||
|
||||
@@ -349,8 +349,8 @@
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/proc/check_for_weapons(var/obj/item/slot_item)
|
||||
if(slot_item && (slot_item.item_flags & NEEDS_PERMIT))
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/explode()
|
||||
walk_to(src,0)
|
||||
|
||||
@@ -284,9 +284,9 @@
|
||||
/mob/living/simple_animal/bot/floorbot/proc/is_hull_breach(turf/t) //Ignore space tiles not considered part of a structure, also ignores shuttle docking areas.
|
||||
var/area/t_area = get_area(t)
|
||||
if(t_area && (t_area.name == "Space" || findtext(t_area.name, "huttle")))
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//Floorbots, having several functions, need sort out special conditions here.
|
||||
/mob/living/simple_animal/bot/floorbot/process_scan(scan_target)
|
||||
|
||||
@@ -279,17 +279,17 @@
|
||||
if(isconstruct(A)) //is it a construct?
|
||||
var/mob/living/simple_animal/hostile/construct/C = A
|
||||
if(C.health < C.maxHealth) //is it hurt? let's go heal it if it is
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/builder/CanAttack(atom/the_target)
|
||||
if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it
|
||||
return 0
|
||||
return FALSE
|
||||
if(Found(the_target) || ..()) //If we Found it or Can_Attack it normally, we Can_Attack it as long as it wasn't invisible
|
||||
return 1 //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs
|
||||
return TRUE //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/builder/MoveToTarget(var/list/possible_targets)
|
||||
..()
|
||||
@@ -297,7 +297,7 @@
|
||||
var/mob/living/L = target
|
||||
if(isconstruct(L) && L.health >= L.maxHealth) //is this target an unhurt construct? stop trying to heal it
|
||||
LoseTarget()
|
||||
return 0
|
||||
return FALSE
|
||||
if(L.health <= melee_damage_lower+melee_damage_upper) //ey bucko you're hurt as fuck let's go hit you
|
||||
retreat_distance = null
|
||||
minimum_distance = 1
|
||||
|
||||
@@ -670,7 +670,7 @@ GLOBAL_LIST_INIT(strippable_corgi_items, create_strippable_list(list(
|
||||
vocal_pitch = 0.6
|
||||
|
||||
/mob/living/simple_animal/pet/dog/corgi/puppy/void/Process_Spacemove(movement_dir = 0)
|
||||
return 1 //Void puppies can navigate space.
|
||||
return TRUE //Void puppies can navigate space.
|
||||
|
||||
|
||||
//LISA! SQUEEEEEEEEE~
|
||||
|
||||
@@ -276,7 +276,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/drone/mob_negates_gravity()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/drone/mob_has_gravity()
|
||||
return ..() || mob_negates_gravity()
|
||||
@@ -286,10 +286,10 @@
|
||||
|
||||
/mob/living/simple_animal/drone/bee_friendly()
|
||||
// Why would bees pay attention to drones?
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/drone/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
|
||||
return 0 //So they don't die trying to fix wiring
|
||||
return FALSE //So they don't die trying to fix wiring
|
||||
|
||||
/mob/living/simple_animal/drone/can_see_reagents()
|
||||
. = ..()
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
/mob/living/simple_animal/drone/cogscarab/get_armor_effectiveness()
|
||||
if(GLOB.ratvar_awakens)
|
||||
return 1
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/drone/cogscarab/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
return (armorval * get_armor_effectiveness()) //armor is reduced for tiny fragile drones
|
||||
|
||||
/mob/living/simple_animal/drone/proc/get_armor_effectiveness()
|
||||
return 0 //multiplier for whatever head armor you wear as a drone
|
||||
return FALSE //multiplier for whatever head armor you wear as a drone
|
||||
|
||||
/mob/living/simple_animal/drone/proc/update_drone_hack(hack, clockwork)
|
||||
if(!istype(src) || !mind)
|
||||
|
||||
@@ -15,22 +15,22 @@
|
||||
if(I == internal_storage)
|
||||
internal_storage = null
|
||||
update_inv_internal_storage()
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning)
|
||||
switch(slot)
|
||||
if(ITEM_SLOT_HEAD)
|
||||
if(head)
|
||||
return 0
|
||||
return FALSE
|
||||
if(!((I.slot_flags & ITEM_SLOT_HEAD) || (I.slot_flags & ITEM_SLOT_MASK)))
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
if(ITEM_SLOT_DEX_STORAGE)
|
||||
if(internal_storage)
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
..()
|
||||
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/attackby(obj/item/O, mob/user, params)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass))
|
||||
udder.milkAnimal(O, user)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
/mob/living/simple_animal/cow/attackby(obj/item/O, mob/user, params)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass))
|
||||
udder.milkAnimal(O, user)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@ GLOBAL_LIST(bad_gremlin_items)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/gremlin/IsAdvancedToolUser()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/gremlin/proc/divide()
|
||||
//Health is halved and then reduced by 2. A new gremlin is spawned with the same health as the parent
|
||||
|
||||
@@ -47,15 +47,15 @@
|
||||
if(I == internal_storage)
|
||||
internal_storage = null
|
||||
update_inv_internal_storage()
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning)
|
||||
switch(slot)
|
||||
if(ITEM_SLOT_DEX_STORAGE)
|
||||
if(internal_storage)
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/dextrous/equip_to_slot(obj/item/I, slot)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/protector/ToggleMode()
|
||||
if(cooldown > world.time)
|
||||
return 0
|
||||
return FALSE
|
||||
cooldown = world.time + 10
|
||||
if(toggle)
|
||||
cut_overlays()
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action()
|
||||
if(!..()) //AIStatus is off
|
||||
return 0
|
||||
return FALSE
|
||||
if(AIStatus == AI_IDLE)
|
||||
//1% chance to skitter madly away
|
||||
if(!busy && prob(1))
|
||||
@@ -255,7 +255,7 @@
|
||||
spawn(50)
|
||||
stop_automated_movement = 0
|
||||
walk(src,0)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(C)
|
||||
spawn(100)
|
||||
@@ -418,7 +418,7 @@
|
||||
else
|
||||
message = "<span class='notice'>You prepare to wrap something in a cocoon. <B>Left-click your target to start wrapping!</B></span>"
|
||||
add_ranged_ability(user, message, TRUE)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/wrap/InterceptClickOn(mob/living/caller, params, atom/target)
|
||||
if(..())
|
||||
@@ -450,11 +450,11 @@
|
||||
/datum/action/innate/spider/lay_eggs/IsAvailable(silent = FALSE)
|
||||
if(..())
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
|
||||
return 0
|
||||
return FALSE
|
||||
var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/S = owner
|
||||
if(S.fed)
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/action/innate/spider/lay_eggs/Activate()
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/handle_automated_action()
|
||||
if(AIStatus == AI_OFF)
|
||||
return 0
|
||||
return FALSE
|
||||
var/list/possible_targets = ListTargets() //we look around for potential targets and make it a list for later use.
|
||||
|
||||
if(environment_smash)
|
||||
@@ -98,7 +98,7 @@
|
||||
if(!MoveToTarget(possible_targets)) //if we lose our target
|
||||
if(AIShouldSleep(possible_targets)) // we try to acquire a new one
|
||||
toggle_ai(AI_IDLE) // otherwise we go idle
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/handle_automated_movement()
|
||||
. = ..()
|
||||
@@ -273,7 +273,7 @@
|
||||
if(target != null)
|
||||
GainPatience()
|
||||
Aggro()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//What we do after closing in
|
||||
/mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE)
|
||||
@@ -295,12 +295,12 @@
|
||||
stop_automated_movement = 1
|
||||
if(!target || !CanAttack(target))
|
||||
LoseTarget()
|
||||
return 0
|
||||
return FALSE
|
||||
if(target in possible_targets)
|
||||
var/turf/T = get_turf(src)
|
||||
if(target.z != T.z)
|
||||
LoseTarget()
|
||||
return 0
|
||||
return FALSE
|
||||
var/target_distance = get_dist(targets_from,target)
|
||||
if(ranged) //We ranged? Shoot at em
|
||||
if(!target.Adjacent(targets_from) && ranged_cooldown <= world.time) //But make sure they're not in range for a melee attack and our range attack is off cooldown
|
||||
@@ -310,7 +310,7 @@
|
||||
return TRUE
|
||||
if(!Process_Spacemove()) //Drifting
|
||||
walk(src,0)
|
||||
return 1
|
||||
return TRUE
|
||||
if(retreat_distance != null) //If we have a retreat distance, check if we need to run from our target
|
||||
if(target_distance <= retreat_distance) //If target's closer than our retreat distance, run
|
||||
walk_away(src,target,retreat_distance,move_to_delay)
|
||||
@@ -325,8 +325,8 @@
|
||||
if(rapid_melee > 1 && target_distance <= melee_queue_distance)
|
||||
MeleeAction(FALSE)
|
||||
in_melee = FALSE //If we're just preparing to strike do not enter sidestep mode
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
if(environment_smash)
|
||||
if(target.loc != null && get_dist(targets_from, target.loc) <= vision_range) //We can't see our target, but he's in our vision range still
|
||||
if(ranged_ignores_vision && ranged_cooldown <= world.time) //we can't see our target... but we can fire at them!
|
||||
@@ -334,12 +334,12 @@
|
||||
if((environment_smash & ENVIRONMENT_SMASH_WALLS) || (environment_smash & ENVIRONMENT_SMASH_RWALLS)) //If we're capable of smashing through walls, forget about vision completely after finding our target
|
||||
Goto(target,move_to_delay,minimum_distance)
|
||||
FindHidden()
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
if(FindHidden())
|
||||
return 1
|
||||
return TRUE
|
||||
LoseTarget()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/Goto(target, delay, minimum_distance)
|
||||
if(target == src.target)
|
||||
@@ -530,7 +530,7 @@
|
||||
Goto(A,move_to_delay,minimum_distance)
|
||||
if(A.Adjacent(targets_from))
|
||||
A.attack_animal(src)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/RangedAttack(atom/A, params) //Player firing
|
||||
if(ranged && ranged_cooldown <= world.time)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/enter_mecha(obj/vehicle/sealed/mecha/M)
|
||||
if(!M)
|
||||
return 0
|
||||
return FALSE
|
||||
target = null //Target was our mecha, so null it out
|
||||
M.aimob_enter_mech(src)
|
||||
targets_from = M
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/exit_mecha(obj/vehicle/sealed/mecha/M)
|
||||
if(!M)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
mecha.aimob_exit_mech(src)
|
||||
allow_movement_on_non_turfs = FALSE
|
||||
@@ -280,7 +280,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/EscapeConfinement()
|
||||
if(mecha && loc == mecha)
|
||||
return 0
|
||||
return FALSE
|
||||
..()
|
||||
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ Difficulty: Hard
|
||||
if(is_enraged())
|
||||
visible_message("<span class='danger'>[src] deflects the projectile; [p_they()] can't be hit with ranged weapons while enraged!</span>", "<span class='userdanger'>You deflect the projectile!</span>")
|
||||
playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, 1)
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/ex_act(severity, target, origin)
|
||||
|
||||
@@ -203,7 +203,7 @@ Difficulty: Medium
|
||||
if(!any_attack)
|
||||
for(var/obj/effect/temp_visual/drakewall/D in drakewalls)
|
||||
qdel(D)
|
||||
return 0 // nothing to attack in the arena time for enraged attack if we still have a target
|
||||
return FALSE // nothing to attack in the arena time for enraged attack if we still have a target
|
||||
for(var/turf/T in turfs)
|
||||
if(!(T in empty))
|
||||
new /obj/effect/temp_visual/lava_warning(T)
|
||||
@@ -211,7 +211,7 @@ Difficulty: Medium
|
||||
new /obj/effect/temp_visual/lava_safe(T)
|
||||
amount--
|
||||
sleep(24)
|
||||
return 1 // attack finished completely
|
||||
return TRUE // attack finished completely
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/dragon/proc/arena_escape_enrage() // you ran somehow / teleported away from my arena attack now i'm mad fucker
|
||||
SetRecoveryTime(80)
|
||||
|
||||
@@ -143,8 +143,8 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/proc/CheckObject(obj/O)
|
||||
if((isitem(O) || isstructure(O)) && !is_type_in_list(O, GLOB.protected_objects))
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/proc/CopyObject(obj/O, mob/living/user, destroy_original = 0)
|
||||
if(destroy_original || CheckObject(O))
|
||||
@@ -176,7 +176,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
faction += "[REF(creator)]" // very unique
|
||||
if(destroy_original)
|
||||
qdel(O)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
|
||||
if(destroy_objects)
|
||||
@@ -197,11 +197,11 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target)
|
||||
if(the_target == creator) // Don't attack our creator AI.
|
||||
return 0
|
||||
return FALSE
|
||||
if(iscyborg(the_target))
|
||||
var/mob/living/silicon/robot/R = the_target
|
||||
if(R.connected_ai == creator) // Only attack robots that aren't synced to our creator AI.
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/ranged
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
for(var/mob/living/simple_animal/hostile/retaliate/H in around)
|
||||
if(faction_check_mob(H) && !attack_same && !H.attack_same)
|
||||
H.enemies |= enemies
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
faction = list("shark")
|
||||
|
||||
/mob/living/simple_animal/hostile/shark/Process_Spacemove(var/movement_dir = 0)
|
||||
return 1 //No drifting in space for space sharks....either!
|
||||
return TRUE //No drifting in space for space sharks....either!
|
||||
|
||||
/mob/living/simple_animal/hostile/shark/FindTarget()
|
||||
. = ..()
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
if(can_be_seen(NewLoc))
|
||||
if(client)
|
||||
to_chat(src, "<span class='warning'>You cannot move, there are eyes on you!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/BiologicalLife(delta_time, times_fired)
|
||||
@@ -136,7 +136,7 @@
|
||||
// Cannot talk
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// Turn to dust when gibbed
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
if(isliving(the_target))
|
||||
var/mob/living/L = the_target
|
||||
if(!L.client && !L.ckey)
|
||||
return 0
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
// Don't attack your creator if there is one
|
||||
@@ -228,4 +228,4 @@
|
||||
/mob/living/simple_animal/hostile/statue/restrained(ignore_grab)
|
||||
. = ..()
|
||||
if(can_be_seen(loc))
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
ears.talk_into(src, message, message_mode, spans, language)
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
/datum/strippable_item/parrot_headset,
|
||||
@@ -627,12 +627,12 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
parrot_state = PARROT_WANDER
|
||||
parrot_stuck = 0
|
||||
parrot_lastmove = null
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
parrot_lastmove = null
|
||||
else
|
||||
parrot_lastmove = src.loc
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/parrot/proc/attempt_item_theft()
|
||||
//Search for item to steal
|
||||
@@ -710,7 +710,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
|
||||
if(held_item)
|
||||
to_chat(src, "<span class='warning'>You are already holding [held_item]!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
for(var/obj/item/I in view(1,src))
|
||||
//Make sure we're not already holding it and it's small enough
|
||||
@@ -726,7 +726,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
return held_item
|
||||
|
||||
to_chat(src, "<span class='warning'>There is nothing of interest to take!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/parrot/proc/steal_from_mob()
|
||||
set name = "Steal from mob"
|
||||
@@ -738,7 +738,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
|
||||
if(held_item)
|
||||
to_chat(src, "<span class='warning'>You are already holding [held_item]!</span>")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/obj/item/stolen_item = null
|
||||
|
||||
@@ -755,7 +755,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
return held_item
|
||||
|
||||
to_chat(src, "<span class='warning'>There is nothing of interest to take!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/parrot/verb/drop_held_item_player()
|
||||
set name = "Drop held item"
|
||||
@@ -780,7 +780,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
if(!held_item)
|
||||
if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you.
|
||||
to_chat(src, "<span class='danger'>You have nothing to drop!</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
|
||||
//parrots will eat crackers instead of dropping them
|
||||
@@ -790,7 +790,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
if(health < maxHealth)
|
||||
adjustBruteLoss(-10)
|
||||
emote("me", EMOTE_VISIBLE, "[src] eagerly downs the cracker.")
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
|
||||
if(!drop_gently)
|
||||
@@ -800,13 +800,13 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
|
||||
G.prime()
|
||||
to_chat(src, "You let go of [held_item]!")
|
||||
held_item = null
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
to_chat(src, "You drop [held_item].")
|
||||
|
||||
held_item.forceMove(drop_location())
|
||||
held_item = null
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/parrot/proc/perch_player()
|
||||
set name = "Sit"
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
if(Process_Spacemove(anydir))
|
||||
Move(get_step(src, anydir), anydir)
|
||||
turns_since_move = 0
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/proc/handle_automated_speech(var/override)
|
||||
set waitfor = FALSE
|
||||
|
||||
@@ -620,11 +620,11 @@
|
||||
|
||||
/mob/living/simple_animal/slime/proc/will_hunt(hunger = -1) // Check for being stopped from feeding and chasing
|
||||
if (docile)
|
||||
return 0
|
||||
return FALSE
|
||||
if (hunger == 2 || rabid || attacked)
|
||||
return 1
|
||||
return TRUE
|
||||
if (Leader)
|
||||
return 0
|
||||
return FALSE
|
||||
if (holding_still)
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
var/mob/living/simple_animal/slime/S = owner
|
||||
if(needs_growth == GROWTH_NEEDED)
|
||||
if(S.amount_grown >= SLIME_EVOLUTION_THRESHOLD)
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
return TRUE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/slime/verb/Feed()
|
||||
set category = "Slime"
|
||||
set desc = "This will let you feed on any valid creature in the surrounding area. This should also be used to halt the feeding process."
|
||||
|
||||
if(stat)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/C in fov_view(1,src))
|
||||
@@ -34,10 +34,10 @@
|
||||
|
||||
var/mob/living/M = input(src,"Who do you wish to feed on?") in null|choices
|
||||
if(!M)
|
||||
return 0
|
||||
return FALSE
|
||||
if(CanFeedon(M))
|
||||
Feedon(M)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/action/innate/slime/feed
|
||||
name = "Feed"
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
if(M.a_intent == INTENT_HELP || M.a_intent == INTENT_DISARM)
|
||||
for(var/datum/surgery/S in surgeries)
|
||||
if(S.next_step(M,M.a_intent))
|
||||
return 1
|
||||
return TRUE
|
||||
if(..()) //successful attack
|
||||
attacked += 10
|
||||
|
||||
@@ -343,7 +343,7 @@
|
||||
if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
|
||||
for(var/datum/surgery/S in surgeries)
|
||||
if(S.next_step(user,user.a_intent))
|
||||
return 1
|
||||
return TRUE
|
||||
if(istype(W, /obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma.
|
||||
if (user in Friends)
|
||||
++Friends[user]
|
||||
@@ -478,10 +478,10 @@
|
||||
docile = 1
|
||||
|
||||
/mob/living/simple_animal/slime/can_unbuckle()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/slime/can_buckle()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/slime/get_mob_buckling_height(mob/seat)
|
||||
if(..())
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
var/datum/status_effect/incapacitating/stun/S = IsStun()
|
||||
if(S)
|
||||
return S.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Stun(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STUN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -86,7 +86,7 @@
|
||||
var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown()
|
||||
if(K)
|
||||
return K.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Knockdown(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -142,7 +142,7 @@
|
||||
var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized()
|
||||
if(I)
|
||||
return I.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Immobilize(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_IMMOBILIZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -198,7 +198,7 @@
|
||||
var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE)
|
||||
if(P)
|
||||
return P.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Paralyze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_PARALYZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -254,7 +254,7 @@
|
||||
var/datum/status_effect/incapacitating/dazed/I = IsDazed()
|
||||
if(I)
|
||||
return I.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Daze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_DAZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -310,7 +310,7 @@
|
||||
var/datum/status_effect/staggered/I = IsStaggered()
|
||||
if(I)
|
||||
return I.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Stagger(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STAGGER, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -417,7 +417,7 @@
|
||||
var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious()
|
||||
if(U)
|
||||
return U.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Unconscious(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_UNCONSCIOUS, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
@@ -464,7 +464,7 @@
|
||||
var/datum/status_effect/incapacitating/sleeping/S = IsSleeping()
|
||||
if(S)
|
||||
return S.duration - world.time
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/Sleeping(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
|
||||
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_SLEEP, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
set hidden = 1
|
||||
|
||||
if(!loc)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
|
||||
@@ -677,7 +677,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
return
|
||||
|
||||
/mob/proc/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //For sec bot threat assessment
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/proc/get_ghost(even_if_they_cant_reenter = 0)
|
||||
if(mind)
|
||||
@@ -750,7 +750,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
if(isliving(seat))
|
||||
var/mob/living/L = seat
|
||||
if(L.mob_size <= MOB_SIZE_SMALL) //being on top of a small mob doesn't put you very high.
|
||||
return 0
|
||||
return FALSE
|
||||
return 9
|
||||
|
||||
//can the mob be buckled to something by default?
|
||||
@@ -804,7 +804,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
/mob/proc/fully_replace_character_name(oldname,newname)
|
||||
log_message("[src] name changed from [oldname] to [newname]", LOG_OWNERSHIP)
|
||||
if(!newname)
|
||||
return 0
|
||||
return FALSE
|
||||
real_name = newname
|
||||
name = newname
|
||||
if(mind)
|
||||
@@ -822,7 +822,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
// Only update if this player is a target
|
||||
if(obj.target && obj.target.current && obj.target.current.real_name == name)
|
||||
obj.update_explanation_text()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
//Updates GLOB.data_core records with new name , see mob/living/carbon/human
|
||||
/mob/proc/replace_records_name(oldname,newname)
|
||||
@@ -881,7 +881,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
client.mouse_pointer_icon = client.mouse_override_icon
|
||||
|
||||
/mob/proc/is_literate()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/proc/can_hold_items()
|
||||
return FALSE
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
/proc/above_neck(zone)
|
||||
var/list/zones = list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES)
|
||||
if(zones.Find(zone))
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/**
|
||||
* Convert random parts of a passed in message to stars
|
||||
@@ -269,7 +269,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
var/mob/M = i
|
||||
if(M.real_name == msg)
|
||||
return M
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/proc/first_name()
|
||||
var/static/regex/firstname = new("^\[^\\s-\]+") //First word before whitespace or "-"
|
||||
@@ -364,7 +364,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
return FALSE
|
||||
|
||||
/mob/proc/reagent_check(datum/reagent/R) // utilized in the species code
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE, header) //Easy notification of ghosts.
|
||||
if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load
|
||||
@@ -407,7 +407,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
H.update_damage_overlays()
|
||||
user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \
|
||||
"<span class='notice'>You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].</span>")
|
||||
return 1 //successful heal
|
||||
return TRUE //successful heal
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[affecting] is already in good condition!</span>")
|
||||
|
||||
@@ -478,9 +478,9 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
|
||||
/mob/proc/is_flying(mob/M = src)
|
||||
if(M.movement_type & FLYING)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/proc/click_random_mob()
|
||||
var/list/nearby_mobs = list()
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
return TRUE
|
||||
|
||||
/mob/proc/hivecheck()
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
/mob/proc/lingcheck()
|
||||
return LINGHIVE_NONE
|
||||
|
||||
@@ -128,7 +128,7 @@ global procs
|
||||
|
||||
handle_inherent_channels(message, message_mode)
|
||||
If message_mode is MODE_BINARY, MODE_ALIEN or MODE_CHANGELING (or, for AIs, MODE_HOLOPAD), this will
|
||||
handle speaking in those modes. Return 1 to exit say().
|
||||
handle speaking in those modes. return TRUE to exit say().
|
||||
|
||||
treat_message(message)
|
||||
What it says on the tin. Treats the message according to masks, mutantraces, mutations, etc.
|
||||
@@ -143,7 +143,7 @@ global procs
|
||||
ITALICS = add italics to the message
|
||||
REDUCE_RANGE = reduce the message range to one tile.
|
||||
|
||||
Return 0 if no radio was spoken into.
|
||||
return FALSE if no radio was spoken into.
|
||||
IMPORTANT: remember to call ..() and check for ..()'s return value properly!
|
||||
|
||||
============================RADIOS=============================
|
||||
|
||||
@@ -603,35 +603,35 @@
|
||||
|
||||
//Bad mobs! - Remember to add a comment explaining what's wrong with the mob
|
||||
if(!MP)
|
||||
return 0 //Sanity, this should never happen.
|
||||
return FALSE //Sanity, this should never happen.
|
||||
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/construct))
|
||||
return 0 //Verbs do not appear for players.
|
||||
return FALSE //Verbs do not appear for players.
|
||||
|
||||
//Good mobs!
|
||||
if(ispath(MP, /mob/living/simple_animal/pet/cat))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/pet/dog/corgi))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/crab))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/carp))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/mushroom))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/construct/shade))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/killertomato))
|
||||
return 1
|
||||
return TRUE
|
||||
if(ispath(MP, /mob/living/simple_animal/mouse))
|
||||
return 1 //It is impossible to pull up the player panel for mice (Fixed! - Nodrak)
|
||||
return TRUE //It is impossible to pull up the player panel for mice (Fixed! - Nodrak)
|
||||
if(ispath(MP, /mob/living/simple_animal/hostile/bear))
|
||||
return 1 //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak)
|
||||
return TRUE //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak)
|
||||
if(ispath(MP, /mob/living/simple_animal/parrot))
|
||||
return 1 //Parrots are no longer unfinished! -Nodrak
|
||||
return TRUE //Parrots are no longer unfinished! -Nodrak
|
||||
|
||||
//Not in here? Must be untested!
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
#undef TRANSFORMATION_DURATION
|
||||
|
||||
|
||||
Reference in New Issue
Block a user