Bools and returns super-pr (#53221) (#565)

Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
This commit is contained in:
SkyratBot
2020-08-30 05:12:59 +02:00
committed by GitHub
co-authored by TiviPlus <TiviPlus> Couls TiviPlus
parent f600605607
commit ec09510459
355 changed files with 1549 additions and 1591 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
client.set_db_player_flags()
if(!mind)
mind = new /datum/mind(key)
mind.active = 1
mind.active = TRUE
mind.current = src
. = ..()
@@ -108,10 +108,10 @@
/mob/dead/new_player/Topic(href, href_list[])
if(src != usr)
return 0
return
if(!client)
return 0
return
//Determines Relevent Population Cap
var/relevant_cap
@@ -124,7 +124,7 @@
if(href_list["show_preferences"])
client.prefs.ShowChoices(src)
return 1
return TRUE
if(href_list["ready"])
var/tready = text2num(href_list["ready"])
@@ -451,7 +451,7 @@
if(mind)
if(transfer_after)
mind.late_joiner = TRUE
mind.active = 0 //we wish to transfer the key manually
mind.active = FALSE //we wish to transfer the key manually
mind.transfer_to(H) //won't transfer key since the mind is not active
mind.original_character = H
+6 -6
View File
@@ -120,16 +120,16 @@
//Gets blood from mob to a container or other mob, preserving all data in it.
/mob/living/proc/transfer_blood_to(atom/movable/AM, amount, forced)
if(!blood_volume || !AM.reagents)
return 0
return FALSE
if(blood_volume < BLOOD_VOLUME_BAD && !forced)
return 0
return FALSE
if(blood_volume < amount)
amount = blood_volume
var/blood_id = get_blood_id()
if(!blood_id)
return 0
return FALSE
blood_volume -= amount
@@ -147,13 +147,13 @@
C.ForceContractDisease(D)
if(!(blood_data["blood_type"] in get_safe_blood(C.dna.blood_type)))
C.reagents.add_reagent(/datum/reagent/toxin, amount * 0.5)
return 1
return TRUE
C.blood_volume = min(C.blood_volume + round(amount, 0.1), BLOOD_VOLUME_MAX_LETHAL)
return 1
return TRUE
AM.reagents.add_reagent(blood_id, amount, blood_data, bodytemperature)
return 1
return TRUE
/mob/living/proc/get_blood_data(blood_id)
+2 -2
View File
@@ -56,9 +56,9 @@
return // no eyes, no flashing
/mob/living/brain/can_be_revived()
. = 1
if(!container || health <= HEALTH_THRESHOLD_DEAD)
return 0
return FALSE
return TRUE
/mob/living/brain/fully_replace_character_name(oldname,newname)
..()
-1
View File
@@ -1,6 +1,5 @@
/mob/living/brain/Life()
set invisibility = 0
if (notransform)
return
if(!loc)
@@ -19,9 +19,9 @@
heat_protection = 0.5 // minor heat insulation
var/leaping = 0
var/leaping = FALSE
gib_type = /obj/effect/decal/cleanable/xenoblood/xgibs
unique_name = 1
unique_name = TRUE
var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?")
@@ -54,8 +54,9 @@ In all, this is a lot like the monkey code. /N
/mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M)
if(..()) //to allow surgery to return properly.
return 0
. = ..()
if(.) //to allow surgery to return properly.
return FALSE
switch(M.a_intent)
if("help")
@@ -64,11 +65,11 @@ In all, this is a lot like the monkey code. /N
grabbedby(M)
if ("harm")
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
return 1
return TRUE
if("disarm")
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
return 1
return 0
return TRUE
return FALSE
/mob/living/carbon/alien/attack_paw(mob/living/carbon/monkey/M)
@@ -133,4 +134,4 @@ In all, this is a lot like the monkey code. /N
return 0
/mob/living/carbon/alien/acid_act(acidpwr, acid_volume)
return 0//aliens are immune to acid.
return FALSE//aliens are immune to acid.
@@ -77,10 +77,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, "<span class='warning'>There's already a weed node here!</span>")
return 0
return FALSE
user.visible_message("<span class='alertalien'>[user] plants some alien weeds!</span>")
new/obj/structure/alien/weeds/node(user.loc)
return 1
return TRUE
/obj/effect/proc_holder/alien/whisper
name = "Whisper"
@@ -94,7 +94,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 sortNames(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
@@ -113,8 +113,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"
@@ -129,7 +129,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 sortNames(aliens_around)
if(!M)
return 0
return
var/amount = input("Amount:", "Transfer Plasma to [M]") as num|null
if (amount)
amount = min(abs(round(amount)), user.getPlasma())
@@ -158,21 +158,19 @@ 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 FALSE
return 0
else
to_chat(src, "<span class='noticealien'>[target] is too far away.</span>")
return 0
to_chat(src, "<span class='noticealien'>[target] is too far away.</span>")
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)
@@ -208,19 +206,20 @@ Doesn't work on other aliens/AI.*/
action.UpdateButtonIcon()
/obj/effect/proc_holder/alien/neurotoxin/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
. = ..()
if(.)
return
var/p_cost = 50
if(!iscarbon(ranged_ability_user) || ranged_ability_user.stat)
remove_ranged_ability()
return
return FALSE
var/mob/living/carbon/user = ranged_ability_user
if(user.getPlasma() < p_cost)
to_chat(user, "<span class='warning'>You need at least [p_cost] plasma to spit.</span>")
remove_ranged_ability()
return
return FALSE
var/turf/T = user.loc
var/turf/U = get_step(user, user.dir) // Get the tile infront of the move, based on their direction
@@ -315,14 +314,14 @@ Doesn't work on other aliens/AI.*/
/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.UpdateButtonIcon()
return 1
return TRUE
/mob/living/carbon/alien/adjustPlasma(amount)
. = ..()
@@ -331,6 +330,5 @@ Doesn't work on other aliens/AI.*/
/mob/living/carbon/proc/usePlasma(amount)
if(getPlasma() >= amount)
adjustPlasma(-amount)
return 1
return 0
return TRUE
return FALSE
@@ -26,18 +26,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='warning'>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='warning'>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='warning'>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='warning'>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='warning'>We already have an alive queen!</span>")
return 0
return FALSE
@@ -13,7 +13,7 @@
var/alt_inhands_file = 'icons/mob/alienqueen.dmi'
/mob/living/carbon/alien/humanoid/royal/can_inject()
return 0
return FALSE
/mob/living/carbon/alien/humanoid/royal/queen
name = "alien queen"
@@ -83,20 +83,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
else
for(prom in user)
to_chat(user, "<span class='noticealien'>You discard [prom].</span>")
qdel(prom)
return 0
return
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
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
/obj/item/queenpromote
name = "\improper royal parasite"
@@ -1,7 +1,6 @@
/mob/living/carbon/alien/larva/Life()
set invisibility = 0
if (notransform)
return
if(..() && !IS_IN_STASIS(src)) //not dead and not in stasis
@@ -57,7 +57,7 @@
new_xeno = new /mob/living/carbon/alien/humanoid/drone(L.loc)
L.alien_evolve(new_xeno)
return 0
return
else
to_chat(user, "<span class='warning'>You are not fully grown!</span>")
return 0
return
@@ -103,7 +103,8 @@
zone = BODY_ZONE_HEAD
slot = "hivenode"
w_class = WEIGHT_CLASS_TINY
var/recent_queen_death = 0 //Indicates if the queen died recently, aliens are heavily weakened while this is active.
///Indicates if the queen died recently, aliens are heavily weakened while this is active.
var/recent_queen_death = FALSE
alien_powers = list(/obj/effect/proc_holder/alien/whisper)
/obj/item/organ/alien/hivenode/Insert(mob/living/carbon/M, special = 0)
@@ -135,7 +136,7 @@
owner.add_confusion(30)
owner.stuttering += 30
recent_queen_death = 1
recent_queen_death = TRUE
owner.throw_alert("alien_noqueen", /obj/screen/alert/alien_vulnerable)
addtimer(CALLBACK(src, .proc/clear_queen_death), QUEEN_DEATH_DEBUFF_DURATION)
@@ -143,7 +144,7 @@
/obj/item/organ/alien/hivenode/proc/clear_queen_death()
if(QDELETED(src)) //In case the node is deleted
return
recent_queen_death = 0
recent_queen_death = FALSE
if(!owner) //In case the xeno is butchered or subjected to surgery after death.
return
to_chat(owner, "<span class='noticealien'>The pain of the queen's death is easing. You begin to hear the hivemind again.</span>")
@@ -96,15 +96,14 @@
/obj/item/clothing/mask/facehugger/on_found(mob/finder)
if(stat == CONSCIOUS)
return HasProximity(finder)
return 0
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
if(CanHug(AM) && Adjacent(AM))
return Leap(AM)
return 0
/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, quickstart = TRUE)
if(!..())
. = ..()
if(!.)
return
if(stat == CONSCIOUS)
icon_state = "[initial(icon_state)]_thrown"
@@ -248,22 +247,22 @@
/proc/CanHug(mob/living/M)
if(!istype(M))
return 0
return FALSE
if(M.stat == DEAD)
return 0
return FALSE
if(M.getorgan(/obj/item/organ/alien/hivenode))
return 0
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))
var/mob/living/carbon/human/H = C
if(H.is_mouth_covered(head_only = 1))
return 0
return 1
return 0
return FALSE
return TRUE
return FALSE
#undef MIN_ACTIVE_TIME
#undef MAX_ACTIVE_TIME
+1 -1
View File
@@ -871,7 +871,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/proc/can_defib()
if (suiciding)
+2 -2
View File
@@ -24,9 +24,9 @@
if (back)
. += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back."
var/appears_dead = 0
var/appears_dead = FALSE
if (stat == DEAD)
appears_dead = 1
appears_dead = TRUE
if(getorgan(/obj/item/organ/brain))
. += "<span class='deadsay'>[t_He] [t_is] limp and unresponsive, with no signs of life.</span>"
else if(get_bodypart(BODY_ZONE_HEAD))
@@ -167,7 +167,7 @@
/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user)
if(!I || !user)
return 0
return FALSE
var/obj/item/bodypart/affecting
if(user == src)
@@ -212,7 +212,7 @@
affecting = get_bodypart(BODY_ZONE_CHEST)
if(M.a_intent == INTENT_HELP)
..() //shaking
return 0
return FALSE
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead.
var/obj/item/I = get_active_held_item()
@@ -243,110 +243,115 @@
if(..()) //successful monkey bite, this handles disease contraction.
var/damage = rand(1, 3)
if(check_shields(M, damage, "the [M.name]"))
return 0
return FALSE
if(stat != DEAD)
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)
if(check_shields(M, 0, "the M.name"))
visible_message("<span class='danger'>[M] attempts to touch [src]!</span>", \
"<span class='danger'>[M] attempts to touch you!</span>", "<span class='hear'>You hear a swoosh!</span>", null, M)
to_chat(M, "<span class='warning'>You attempt to touch [src]!</span>")
return 0
return FALSE
. = ..()
if(!.)
return
if(M.a_intent == INTENT_HARM)
if (w_uniform)
w_uniform.add_fingerprint(M)
var/damage = prob(90) ? 20 : 0
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE, -1)
visible_message("<span class='danger'>[M] lunges at [src]!</span>", \
"<span class='userdanger'>[M] lunges at you!</span>", "<span class='hear'>You hear a swoosh!</span>", null, M)
to_chat(M, "<span class='danger'>You lunge at [src]!</span>")
return FALSE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE,"","",10)
if(..())
if(M.a_intent == INTENT_HARM)
if (w_uniform)
w_uniform.add_fingerprint(M)
var/damage = prob(90) ? 20 : 0
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE, -1)
visible_message("<span class='danger'>[M] lunges at [src]!</span>", \
"<span class='userdanger'>[M] lunges at you!</span>", "<span class='hear'>You hear a swoosh!</span>", null, M)
to_chat(M, "<span class='danger'>You lunge at [src]!</span>")
return 0
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE,"","",10)
playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] slashes at [src]!</span>", \
"<span class='userdanger'>[M] slashes at you!</span>", "<span class='hear'>You hear a sickening sound of a slice!</span>", null, M)
to_chat(M, "<span class='danger'>You slash at [src]!</span>")
log_combat(M, src, "attacked")
if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
return TRUE
apply_damage(damage, BRUTE, affecting, armor_block)
playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] slashes at [src]!</span>", \
"<span class='userdanger'>[M] slashes at you!</span>", "<span class='hear'>You hear a sickening sound of a slice!</span>", null, M)
to_chat(M, "<span class='danger'>You slash at [src]!</span>")
log_combat(M, src, "attacked")
if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
return 1
apply_damage(damage, BRUTE, affecting, armor_block)
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
var/obj/item/I = get_active_held_item()
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", "<span class='hear'>You hear aggressive shuffling!</span>", null, M)
to_chat(M, "<span class='danger'>You disarm [src]!</span>")
else
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
Paralyze(100)
log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] tackles [src] down!</span>", \
"<span class='userdanger'>[M] tackles you down!</span>", "<span class='hear'>You hear aggressive shuffling followed by a loud thud!</span>", null, M)
to_chat(M, "<span class='danger'>You tackle [src] down!</span>")
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
var/obj/item/I = get_active_held_item()
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", "<span class='hear'>You hear aggressive shuffling!</span>", null, M)
to_chat(M, "<span class='danger'>You disarm [src]!</span>")
else
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
Paralyze(100)
log_combat(M, src, "tackled")
visible_message("<span class='danger'>[M] tackles [src] down!</span>", \
"<span class='userdanger'>[M] tackles you down!</span>", "<span class='hear'>You hear aggressive shuffling followed by a loud thud!</span>", null, M)
to_chat(M, "<span class='danger'>You tackle [src] down!</span>")
/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L)
if(..()) //successful larva bite.
var/damage = rand(1, 3)
if(check_shields(L, damage, "the [L.name]"))
return 0
if(stat != DEAD)
L.amount_grown = min(L.amount_grown + damage, L.max_grown)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE)
apply_damage(damage, BRUTE, affecting, armor_block)
. = ..()
if(!.)
return //successful larva bite.
var/damage = rand(1, 3)
if(check_shields(L, damage, "the [L.name]"))
return FALSE
if(stat != DEAD)
L.amount_grown = min(L.amount_grown + damage, L.max_grown)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE)
apply_damage(damage, BRUTE, affecting, armor_block)
/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M)
. = ..()
if(.)
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
if(check_shields(M, damage, "the [M.name]", MELEE_ATTACK, M.armour_penetration))
return FALSE
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
return TRUE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor = run_armor_check(affecting, MELEE, armour_penetration = M.armour_penetration)
apply_damage(damage, M.melee_damage_type, affecting, armor, wound_bonus = M.wound_bonus, bare_wound_bonus = M.bare_wound_bonus, sharpness = M.sharpness)
if(!.)
return
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
if(check_shields(M, damage, "the [M.name]", MELEE_ATTACK, M.armour_penetration))
return FALSE
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
return TRUE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor = run_armor_check(affecting, MELEE, armour_penetration = M.armour_penetration)
apply_damage(damage, M.melee_damage_type, affecting, armor, wound_bonus = M.wound_bonus, bare_wound_bonus = M.bare_wound_bonus, sharpness = M.sharpness)
/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M)
if(..()) //successful slime attack
var/damage = rand(5, 25)
var/wound_mod = -45 // 25^1.4=90, 90-45=45
if(M.is_adult)
damage = rand(10, 35)
wound_mod = -90 // 35^1.4=145, 145-90=55
. = ..()
if(!.) // slime attack failed
return
var/damage = rand(5, 25)
var/wound_mod = -45 // 25^1.4=90, 90-45=45
if(M.is_adult)
damage = rand(10, 35)
wound_mod = -90 // 35^1.4=145, 145-90=55
if(check_shields(M, damage, "the [M.name]"))
return 0
if(check_shields(M, damage, "the [M.name]"))
return FALSE
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
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 TRUE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE)
apply_damage(damage, BRUTE, affecting, armor_block, wound_bonus=wound_mod)
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
var/armor_block = run_armor_check(affecting, MELEE)
apply_damage(damage, BRUTE, affecting, armor_block, wound_bonus=wound_mod)
/mob/living/carbon/human/mech_melee_attack(obj/mecha/M)
@@ -9,7 +9,7 @@
possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM)
pressure_resistance = 25
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
can_be_shoved_into = TRUE
@@ -11,14 +11,14 @@
/mob/living/carbon/human/slip(knockdown_amount, obj/O, lube, paralyze, forcedrop)
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
@@ -60,8 +60,8 @@
/mob/living/carbon/human/radio(message, list/message_mods = list(), list/spans, language) //Poly has a copy of this, lazy bastard
. = ..()
if(. != FALSE)
return .
if(.)
return
if(message_mods[MODE_HEADSET])
if(ears)
@@ -76,7 +76,7 @@
ears.talk_into(src, message, message_mods[RADIO_EXTENSION], spans, language, message_mods)
return ITALICS | REDUCE_RANGE
return 0
return FALSE
/mob/living/carbon/human/get_alt_name()
if(name != GetVoice())
+2 -3
View File
@@ -19,14 +19,13 @@
#define THERMAL_PROTECTION_HAND_RIGHT 0.025
/mob/living/carbon/human/Life()
set invisibility = 0
if (notransform)
return
. = ..()
if (QDELETED(src))
return 0
return FALSE
if(!IS_IN_STASIS(src))
if(.) //not dead
@@ -49,7 +48,7 @@
name = get_visible_name()
if(stat != DEAD)
return 1
return TRUE
/mob/living/carbon/human/calculate_affecting_pressure(pressure)
@@ -240,20 +240,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species/proc/copy_properties_from(datum/species/old_species)
return
/**
* Checks if this carbon is allowed to be a certain job or rank.
*
* Override this locally if you want to define when this species qualifies for what rank if human authority is enforced.
* Arguments:
* * rank - Rank to be tested.
* * features - Features of a species that factors into rank qualifications, like a human with cat ears being unable to join command positions.
*/
/datum/species/proc/qualifies_for_rank(rank, list/features)
if(rank in GLOB.command_positions)
return 0
return 1
/** regenerate_organs
* Corrects organs in a carbon, removing ones it doesn't need and adding ones it does
*
@@ -1185,7 +1171,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.throw_alert("nutrition", /obj/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)
if(HAS_TRAIT(H, TRAIT_RADIMMUNE))
@@ -1382,7 +1368,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.visible_message("<span class='warning'>[M] attempts to touch [H]!</span>", \
"<span class='danger'>[M] attempts to touch you!</span>", "<span class='hear'>You hear a swoosh!</span>", COMBAT_MESSAGE_RANGE, M)
to_chat(M, "<span class='warning'>You attempt to touch [H]!</span>")
return 0
return
SEND_SIGNAL(M, COMSIG_MOB_ATTACK_HAND, M, H, attacker_style)
switch(M.a_intent)
if("help")
@@ -1401,11 +1387,11 @@ GLOBAL_LIST_EMPTY(roundstart_races)
// Allows you to put in item-specific reactions based on species
if(user != H)
if(H.check_shields(I, I.force, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
return 0
return FALSE
if(H.check_block())
H.visible_message("<span class='warning'>[H] blocks [I]!</span>", \
"<span class='userdanger'>You block [I]!</span>")
return 0
return FALSE
var/hit_area
if(!affecting) //Something went wrong. Maybe the limb is missing?
@@ -1428,14 +1414,14 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.send_item_attack_message(I, user, hit_area, affecting)
if(!I.force)
return 0 //item force is zero
return FALSE //item force is zero
var/bloody = 0
var/bloody = FALSE
if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2))))
if(affecting.status == BODYPART_ORGANIC)
I.add_mob_blood(H) //Make the weapon bloody, not the person.
if(prob(I.force * 2)) //blood spatter!
bloody = 1
bloody = TRUE
var/turf/location = H.loc
if(istype(location))
H.add_splatter_floor(location)
@@ -15,9 +15,6 @@
var/original_felinid = TRUE //set to false for felinids created by mass-purrbation
payday_modifier = 0.75
/datum/species/human/felinid/qualifies_for_rank(rank, list/features)
return TRUE
//Curiosity killed the cat's wagging tail.
/datum/species/human/felinid/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
@@ -471,10 +471,12 @@
var/last_teleport = 0
/datum/action/innate/unstable_teleport/IsAvailable()
if(..())
if(world.time > last_teleport + cooldown)
return 1
return 0
. = ..()
if(!.)
return
if(world.time > last_teleport + cooldown)
return TRUE
return FALSE
/datum/action/innate/unstable_teleport/Activate()
var/mob/living/carbon/human/H = owner
@@ -10,6 +10,3 @@
liked_food = JUNKFOOD | FRIED
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
payday_modifier = 1
/datum/species/human/qualifies_for_rank(rank, list/features)
return TRUE //Pure humans are always allowed in all roles.
@@ -73,14 +73,15 @@
background_icon_state = "bg_alien"
/datum/action/innate/regenerate_limbs/IsAvailable()
if(..())
var/mob/living/carbon/human/H = owner
var/list/limbs_to_heal = H.get_missing_limbs()
if(limbs_to_heal.len < 1)
return 0
if(H.blood_volume >= BLOOD_VOLUME_OKAY+40)
return 1
return 0
. = ..()
if(!.)
return
var/mob/living/carbon/human/H = owner
var/list/limbs_to_heal = H.get_missing_limbs()
if(limbs_to_heal.len < 1)
return FALSE
if(H.blood_volume >= BLOOD_VOLUME_OKAY+40)
return TRUE
/datum/action/innate/regenerate_limbs/Activate()
var/mob/living/carbon/human/H = owner
@@ -182,11 +183,13 @@
background_icon_state = "bg_alien"
/datum/action/innate/split_body/IsAvailable()
if(..())
var/mob/living/carbon/human/H = owner
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
return 1
return 0
. = ..()
if(!.)
return
var/mob/living/carbon/human/H = owner
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
return TRUE
return FALSE
/datum/action/innate/split_body/Activate()
var/mob/living/carbon/human/H = owner
@@ -158,7 +158,6 @@
H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
return 0
/datum/species/plasmaman/random_name(gender,unique,lastname)
if(unique)
+5 -6
View File
@@ -1,5 +1,4 @@
/mob/living/carbon/Life()
set invisibility = 0
if(notransform)
return
@@ -137,9 +136,9 @@
//Third link in a breath chain, calls handle_breath_temperature()
/mob/living/carbon/proc/check_breath(datum/gas_mixture/breath)
if(status_flags & GODMODE)
return
return FALSE
if(HAS_TRAIT(src, TRAIT_NOBREATH))
return
return FALSE
var/obj/item/organ/lungs = getorganslot(ORGAN_SLOT_LUNGS)
if(!lungs)
@@ -148,12 +147,12 @@
//CRIT
if(!breath || (breath.total_moles() == 0) || !lungs)
if(reagents.has_reagent(/datum/reagent/medicine/epinephrine, needs_metabolizing = TRUE) && lungs)
return
return FALSE
adjustOxyLoss(1)
failed_last_breath = 1
throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy)
return 0
return FALSE
var/safe_oxy_min = 16
var/safe_co2_max = 10
@@ -305,7 +304,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)
@@ -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, get_turf(target), /turf/proc/Distance, MAX_RANGE_FIND + 1, 250,1)
@@ -39,26 +39,26 @@
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)
if(!(mobility_flags & MOBILITY_FLAGS_INTERACTION))
return 1
return TRUE
if(health <= 0 && checkDead)
return 1
return TRUE
if(IsStun() || IsParalyzed())
return 1
return TRUE
if(stat)
return 1
return 0
return TRUE
return FALSE
/mob/living/carbon/monkey/proc/battle_screech()
if(next_battle_screech < world.time)
@@ -4,8 +4,6 @@
/mob/living/carbon/monkey/Life()
set invisibility = 0
if (notransform)
return
-1
View File
@@ -3,7 +3,6 @@
/mob/living/proc/Life(seconds, times_fired)
set waitfor = FALSE
set invisibility = 0
if((movement_type & FLYING) && !(movement_type & FLOATING)) //TODO: Better floating
float(on = TRUE)
+3 -3
View File
@@ -140,7 +140,7 @@
//switch our position with M
if(loc && !loc.Adjacent(M.loc))
return TRUE
now_pushing = 1
now_pushing = TRUE
var/oldloc = loc
var/oldMloc = M.loc
@@ -160,7 +160,7 @@
if(!M_passmob)
M.pass_flags &= ~PASSMOB
now_pushing = 0
now_pushing = FALSE
if(!move_failed)
return TRUE
@@ -1132,7 +1132,7 @@
/mob/living/proc/ExtinguishMob()
if(on_fire)
on_fire = 0
on_fire = FALSE
fire_stacks = 0
for(var/obj/effect/dummy/lighting_obj/moblight/fire/F in src)
qdel(F)
+5 -5
View File
@@ -174,12 +174,12 @@
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)
return 0
return FALSE
if(user.a_intent != INTENT_GRAB)
to_chat(user, "<span class='warning'>You must be on grab intent to upgrade your grab further!</span>")
return 0
return FALSE
user.setGrabState(user.grab_state + 1)
switch(user.grab_state)
if(GRAB_AGGRESSIVE)
@@ -213,7 +213,7 @@
if(!buckled && !density)
Move(user.loc)
user.set_pull_offsets(src, grab_state)
return 1
return TRUE
/mob/living/attack_slime(mob/living/simple_animal/slime/M)
@@ -425,7 +425,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)
+1 -1
View File
@@ -2,5 +2,5 @@
update_z(null)
..()
if(!key && mind) //key and mind have become separated.
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
mind.active = FALSE //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
med_hud_set_status()
+1 -1
View File
@@ -789,7 +789,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 = FALSE, ignore_grab = FALSE, ignore_stasis = FALSE)
if(aiRestorePowerRoutine)
@@ -24,8 +24,8 @@
if (stat != DEAD)
adjustBruteLoss(60)
updatehealth()
return 1
return 0
return TRUE
return FALSE
/mob/living/silicon/ai/emp_act(severity)
. = ..()
+2 -2
View File
@@ -148,8 +148,8 @@
SEND_SOUND(M, voice)
else
SEND_SOUND(only_listener, voice)
return 1
return 0
return TRUE
return FALSE
#undef VOX_DELAY
#endif
@@ -114,7 +114,7 @@
return TRUE
/mob/camera/ai_eye/Move()
return 0
return
/mob/camera/ai_eye/proc/GetViewerClient()
if(ai)
@@ -12,7 +12,7 @@
/datum/pai_candidate/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
@@ -11,7 +11,7 @@
return
..()
/mob/living/silicon/robot/show_laws(everyone = 0)
/mob/living/silicon/robot/show_laws(everyone = FALSE)
laws_sanity_check()
var/who
@@ -29,7 +29,7 @@
to_chat(src, "<b>Laws synced with AI, be sure to note any changes.</b>")
else
to_chat(src, "<b>No AI selected to sync laws with, disabling lawsync protocol.</b>")
lawupdate = 0
lawupdate = FALSE
to_chat(who, "<b>Obey these laws:</b>")
laws.show_laws(who)
@@ -1,5 +1,4 @@
/mob/living/silicon/robot/Life()
set invisibility = 0
if (src.notransform)
return
@@ -11,7 +10,7 @@
if(stat != DEAD)
if(low_power_mode)
if(cell && cell.charge)
low_power_mode = 0
low_power_mode = FALSE
update_headlamp()
else if(stat == CONSCIOUS)
use_power()
@@ -24,7 +23,7 @@
cell.use(amt) //Usage table: 1/tick if off/lowest setting, 4 = 4/tick, 6 = 8/tick, 8 = 12/tick, 10 = 16/tick
else
uneq_all()
low_power_mode = 1
low_power_mode = TRUE
update_headlamp()
diag_hud_set_borgcell()
+22 -22
View File
@@ -53,10 +53,10 @@
var/mob/living/silicon/ai/connected_ai = null
var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high ///If this is a path, this gets created as an object in Initialize.
var/opened = 0
var/opened = FALSE
var/emagged = FALSE
var/emag_cooldown = 0
var/wiresexposed = 0
var/wiresexposed = FALSE
/// Random serial number generated for each cyborg upon its initialization
var/ident = 0
@@ -74,7 +74,7 @@
var/datum/effect_system/spark_spread/spark_system // So they can initialize sparks whenever/N
var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default
var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them.
var/scrambledcodes = FALSE // Used to determine if a borg shows up on the robotics console. Setting to TRUE hides them.
var/lockcharge //Boolean of whether the borg is locked down or not
var/toner = 0
@@ -94,7 +94,7 @@
var/hat_offset = -3
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/static/list/can_ride_typecache = typecacheof(/mob/living/carbon/human)
/mob/living/silicon/robot/get_cell()
@@ -324,13 +324,13 @@
. += "Master AI: [connected_ai.name]"
/mob/living/silicon/robot/restrained(ignore_grab)
. = 0
return
/mob/living/silicon/robot/triggerAlarm(class, area/A, O, obj/alarmsource)
if(alarmsource.z != z)
return
if(stat == DEAD)
return 1
return TRUE
var/list/L = alarms[class]
for (var/I in L)
if (I == A.name)
@@ -338,7 +338,7 @@
var/list/sources = alarm[3]
if (!(alarmsource in sources))
sources += alarmsource
return 1
return TRUE
var/obj/machinery/camera/C = null
var/list/CL = null
if (O && istype(O, /list))
@@ -349,11 +349,11 @@
C = O
L[A.name] = list(A, (C) ? C : O, list(alarmsource))
queueAlarm(text("--- [class] alarm detected in [A.name]!"), class)
return 1
return TRUE
/mob/living/silicon/robot/cancelAlarm(class, area/A, obj/origin)
var/list/L = alarms[class]
var/cleared = 0
var/cleared = FALSE
for (var/I in L)
if (I == A.name)
var/list/alarm = L[I]
@@ -361,7 +361,7 @@
if (origin in srcs)
srcs -= origin
if (srcs.len == 0)
cleared = 1
cleared = TRUE
L -= I
if (cleared)
queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0)
@@ -392,36 +392,36 @@
/mob/living/silicon/robot/proc/allowed(mob/M)
//check if it doesn't require any access at all
if(check_access(null))
return 1
return TRUE
if(ishuman(M))
var/mob/living/carbon/human/H = M
//if they are holding or wearing a card that has access, that works
if(check_access(H.get_active_held_item()) || check_access(H.wear_id))
return 1
return TRUE
else if(ismonkey(M))
var/mob/living/carbon/monkey/george = M
//they can only hold things :(
if(isitem(george.get_active_held_item()))
return check_access(george.get_active_held_item())
return 0
return FALSE
/mob/living/silicon/robot/proc/check_access(obj/item/card/id/I)
if(!istype(req_access, /list)) //something's very wrong
return 1
return TRUE
var/list/L = req_access
if(!L.len) //no requirements
return 1
return TRUE
if(!istype(I, /obj/item/card/id) && isitem(I))
I = I.GetID()
if(!I || !I.access) //not ID or no access
return 0
return FALSE
for(var/req in req_access)
if(!(req in I.access)) //doesn't have this access
return 0
return 1
return FALSE
return TRUE
/mob/living/silicon/robot/regenerate_icons()
return update_icons()
@@ -582,7 +582,7 @@
robot_suit.r_leg = null
new /obj/item/stack/cable_coil(T, robot_suit.chest.wired)
robot_suit.chest.forceMove(T)
robot_suit.chest.wired = 0
robot_suit.chest.wired = FALSE
robot_suit.chest = null
robot_suit.l_arm.forceMove(T)
robot_suit.l_arm = null
@@ -1049,7 +1049,7 @@
else
M.visible_message("<span class='boldwarning'>[M] can't climb onto [src] because [M.p_their()] hands are full!</span>")
return
. = ..(M, force, check_loc)
return ..()
/mob/living/silicon/robot/unbuckle_mob(mob/user, force=FALSE)
if(iscarbon(user))
@@ -1057,7 +1057,7 @@
if(istype(riding_datum))
riding_datum.unequip_buckle_inhands(user)
riding_datum.restore_position(user)
. = ..(user)
return ..()
/mob/living/silicon/robot/resist()
. = ..()
@@ -1073,7 +1073,7 @@
if(connected_ai)
connected_ai.connected_robots += src
lawsync()
lawupdate = 1
lawupdate = TRUE
return TRUE
picturesync()
return FALSE
@@ -42,14 +42,14 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
if(W.tool_behaviour == TOOL_CROWBAR) // crowbar means open or close the cover
if(opened)
to_chat(user, "<span class='notice'>You close the cover.</span>")
opened = 0
opened = FALSE
update_icons()
else
if(locked)
to_chat(user, "<span class='warning'>The cover is locked and cannot be opened!</span>")
else
to_chat(user, "<span class='notice'>You open the cover.</span>")
opened = 1
opened = TRUE
update_icons()
return
@@ -340,7 +340,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
SetEmagged(1)
SetStun(60) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown
lawupdate = 0
lawupdate = FALSE
connected_ai = null
message_admins("[ADMIN_LOOKUPFLW(user)] emagged cyborg [ADMIN_LOOKUPFLW(src)]. Laws overridden.")
log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.")
+2 -2
View File
@@ -371,12 +371,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
@@ -24,15 +24,15 @@
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, list/message_mods = list(), list/spans, language)
. = ..()
if(. != 0)
return .
if(!.)
return
if(message_mods[MODE_HEADSET])
if(radio)
radio.talk_into(src, message, , spans, language, message_mods)
@@ -42,4 +42,4 @@
radio.talk_into(src, message, message_mods[RADIO_EXTENSION], spans, language, message_mods)
return ITALICS | REDUCE_RANGE
return 0
return FALSE
@@ -404,7 +404,7 @@
/mob/living/simple_animal/bot/radio(message, list/message_mods = list(), list/spans, language)
. = ..()
if(. != 0)
if(!.)
return
if(message_mods[MODE_HEADSET])
@@ -693,7 +693,7 @@ Pass a positive integer as an argument to override a bot's default speed.
patrol_target = nearest_beacon_loc
destination = next_destination
else
auto_patrol = 0
auto_patrol = FALSE
mode = BOT_IDLE
speak("Disengaging patrol mode.")
@@ -732,11 +732,11 @@ Pass a positive integer as an argument to override a bot's default speed.
// process control input
switch(command)
if("patroloff")
bot_reset() //HOLD IT!!
auto_patrol = 0
bot_reset() //HOLD IT!! //OBJECTION!!
auto_patrol = FALSE
if("patrolon")
auto_patrol = 1
auto_patrol = TRUE
if("summon")
bot_reset()
@@ -751,7 +751,7 @@ Pass a positive integer as an argument to override a bot's default speed.
ejectpairemote(user)
return
//
/mob/living/simple_animal/bot/proc/bot_control_message(command, user)
switch(command)
if("patroloff")
@@ -831,7 +831,7 @@ Pass a positive integer as an argument to override a bot's default speed.
dat = get_controls(M)
var/datum/browser/popup = new(M,window_id,window_name,350,600)
popup.set_content(dat)
popup.open(use_onclose = 0)
popup.open(use_onclose = FALSE)
onclose(M,window_id,ref=src)
return
@@ -287,7 +287,7 @@
to_chat(user, "<span class='notice'>You add the [I] to [src]! Honk!</span>")
var/mob/living/simple_animal/bot/honkbot/S = new(drop_location())
S.name = created_name
S.spam_flag = TRUE // only long enough to hear the first ping.
S.limiting_spam = TRUE // only long enough to hear the first ping.
addtimer(CALLBACK (S, .mob/living/simple_animal/bot/honkbot/proc/react_ping), 5)
S.bikehorn = I.type
qdel(I)
@@ -21,7 +21,7 @@
path_image_color = "#FF69B4"
var/honksound = 'sound/items/bikehorn.ogg' //customizable sound
var/spam_flag = FALSE
var/limiting_spam = FALSE
var/cooldowntime = 30
var/cooldowntimehorn = 10
var/mob/living/carbon/target
@@ -45,8 +45,8 @@
access_card.access += J.get_access()
prev_access = access_card.access
/mob/living/simple_animal/bot/honkbot/proc/spam_flag_false() //used for addtimer
spam_flag = FALSE
/mob/living/simple_animal/bot/honkbot/proc/limiting_spam_false() //used for addtimer
limiting_spam = FALSE
/mob/living/simple_animal/bot/honkbot/proc/sensor_blink()
icon_state = "honkbot-c"
@@ -55,9 +55,9 @@
//honkbots react with sounds.
/mob/living/simple_animal/bot/honkbot/proc/react_ping()
playsound(src, 'sound/machines/ping.ogg', 50, TRUE, -1) //the first sound upon creation!
spam_flag = TRUE
limiting_spam = TRUE
sensor_blink()
addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk
addtimer(CALLBACK(src, .proc/limiting_spam_false), 18) // calibrates before starting the honk
/mob/living/simple_animal/bot/honkbot/proc/react_buzz()
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1)
@@ -70,7 +70,7 @@
anchored = FALSE
walk_to(src,0)
last_found = world.time
spam_flag = FALSE
limiting_spam = FALSE
/mob/living/simple_animal/bot/honkbot/set_custom_texts()
@@ -151,7 +151,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
if(!C.IsParalyzed() || arrest_type)
stun_attack(A)
..()
else if (!spam_flag) //honking at the ground
else if (!limiting_spam) //honking at the ground
bike_horn(A)
@@ -166,31 +166,31 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
/mob/living/simple_animal/bot/honkbot/proc/bike_horn() //use bike_horn
if (emagged <= 1)
if (!spam_flag)
if (!limiting_spam)
playsound(src, honksound, 50, TRUE, -1)
spam_flag = TRUE //prevent spam
limiting_spam = TRUE //prevent spam
sensor_blink()
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntimehorn)
else if (emagged == 2) //emagged honkbots will spam short and memorable sounds.
if (!spam_flag)
if (!limiting_spam)
playsound(src, "honkbot_e", 50, FALSE)
spam_flag = TRUE // prevent spam
limiting_spam = TRUE // prevent spam
icon_state = "honkbot-e"
addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntimehorn)
/mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack
if(!spam_flag)
if(!limiting_spam)
playsound(loc, honksound, 50, TRUE, -1)
spam_flag = TRUE // prevent spam
limiting_spam = TRUE // prevent spam
sensor_blink()
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntimehorn)
/mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun
if(!spam_flag)
if(!limiting_spam)
playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1) //HEEEEEEEEEEEENK!!
sensor_blink()
if(spam_flag == 0)
if(limiting_spam == 0)
if(ishuman(C))
C.stuttering = 20
var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS)
@@ -200,7 +200,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
C.Paralyze(60)
var/mob/living/carbon/human/H = C
if(client) //prevent spam from players..
spam_flag = TRUE
limiting_spam = TRUE
if (emagged <= 1) //HONK once, then leave
var/judgement_criteria = judgement_criteria()
threatlevel = H.assess_threat(judgement_criteria)
@@ -208,7 +208,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
target = oldtarget_name
else // you really don't want to hit an emagged honkbot
threatlevel = 6 // will never let you go
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntime)
log_combat(src,C,"honked")
@@ -217,7 +217,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
else
C.stuttering = 20
C.Paralyze(80)
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntime)
/mob/living/simple_animal/bot/honkbot/handle_automated_action()
@@ -303,14 +303,14 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
if(threatlevel <= 3)
if(C in view(4,src)) //keep the range short for patrolling
if(!spam_flag)
if(!limiting_spam)
bike_horn()
else if(threatlevel >= 10)
bike_horn() //just spam the shit outta this
else if(threatlevel >= 4)
if(!spam_flag)
if(!limiting_spam)
target = C
oldtarget_name = C.name
bike_horn()
@@ -281,17 +281,15 @@
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
else
return 0
else
return 0
return TRUE
return FALSE
/mob/living/simple_animal/hostile/construct/artificer/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
return FALSE
/mob/living/simple_animal/hostile/construct/artificer/MoveToTarget(list/possible_targets)
..()
@@ -299,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
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
@@ -38,16 +38,16 @@
turns_since_scan = 0
if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) ))
movement_target = null
stop_automated_movement = 0
stop_automated_movement = FALSE
if( !movement_target || !(movement_target.loc in oview(src, 3)) )
movement_target = null
stop_automated_movement = 0
stop_automated_movement = FALSE
for(var/obj/item/reagent_containers/food/snacks/S in oview(src,3))
if(isturf(S.loc) || ishuman(S.loc))
movement_target = S
break
if(movement_target)
stop_automated_movement = 1
stop_automated_movement = TRUE
step_to(src,movement_target,1)
sleep(3)
step_to(src,movement_target,1)
@@ -359,7 +359,7 @@
if(user && !user.temporarilyRemoveItemFromInventory(item_to_add))
to_chat(user, "<span class='warning'>\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!</span>")
return 0
return
var/valid = FALSE
if(ispath(item_to_add.dog_fashion, /datum/dog_fashion/head))
@@ -308,7 +308,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()
@@ -318,7 +318,7 @@
/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, flags = NONE)
return 0 //So they don't die trying to fix wiring
return FALSE //So they don't die trying to fix wiring
@@ -170,7 +170,7 @@
/mob/living/simple_animal/cow/tamed()
. = ..()
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8)))
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
@@ -60,7 +60,7 @@
. = ..()
if(!rideable && mind)
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 8), TEXT_SOUTH = list(1, 8), TEXT_EAST = list(-3, 6), TEXT_WEST = list(3, 6)))
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
@@ -54,21 +54,22 @@
/datum/action/boss/Trigger()
. = ..()
if(.)
if(!istype(boss, boss_type))
return 0
if(!boss.atb)
return 0
if(boss.atb.points < boss_cost)
return 0
if(!boss.client)
if(needs_target && !boss.target)
return 0
if(boss)
if(say_when_triggered)
boss.say(say_when_triggered, forced = "boss action")
if(!boss.atb.spend(boss_cost))
return 0
if(!.)
return
if(!istype(boss, boss_type))
return
if(!boss.atb)
return
if(boss.atb.points < boss_cost)
return
if(!boss.client)
if(needs_target && !boss.target)
return
if(boss)
if(say_when_triggered)
boss.say(say_when_triggered, forced = "boss action")
if(!boss.atb.spend(boss_cost))
return
//Example:
/*
@@ -146,7 +146,7 @@
/mob/living/simple_animal/hostile/carp/tamed()
. = ..()
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 13), TEXT_SOUTH = list(0, 15), TEXT_EAST = list(-2, 12), TEXT_WEST = list(2, 12)))
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
@@ -218,7 +218,7 @@
heal_overall_damage(4)
if(!rideable && src.mind)
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 8), TEXT_SOUTH = list(1, 8), TEXT_EAST = list(-3, 6), TEXT_WEST = list(3, 6)))
D.set_vehicle_dir_offsets(SOUTH, pixel_x, 0)
@@ -90,17 +90,17 @@
/mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user)
if(key || !playable_spider || stat)//Someone is in it, it's dead, or the fun police are shutting it down
return 0
return FALSE
var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No")
if(spider_ask == "No" || !src || QDELETED(src))
return 1
return TRUE
if(key)
to_chat(user, "<span class='warning'>Someone else already took this spider!</span>")
return 1
return TRUE
key = user.key
if(directive)
log_game("[key_name(src)] took control of [name] with the objective: '[directive]'.")
return 1
return TRUE
//nursemaids - these create webs and eggs
/mob/living/simple_animal/hostile/poison/giant_spider/nurse
@@ -244,15 +244,16 @@
gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action()
if(!..()) //AIStatus is off
return 0
. = ..()
if(!.)//AIStatus is off
return FALSE
if(AIStatus == AI_IDLE)
//1% chance to skitter madly away
if(!busy && prob(1))
stop_automated_movement = TRUE
Goto(pick(urange(20, src, 1)), move_to_delay)
addtimer(CALLBACK(src, .proc/do_action), 5 SECONDS)
return 1
return TRUE
/mob/living/simple_animal/hostile/poison/giant_spider/proc/do_action()
stop_automated_movement = FALSE
@@ -449,13 +450,14 @@
button_icon_state = "lay_eggs"
/datum/action/innate/spider/lay_eggs/IsAvailable()
if(..())
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
return 0
var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/S = owner
if(S.fed)
return 1
return 0
. = ..()
if(!.)
return
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
return FALSE
var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/S = owner
if(S.fed)
return TRUE
/datum/action/innate/spider/lay_eggs/Activate()
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
@@ -68,11 +68,10 @@
. = ..()
if(!.) //dead
walk(src, 0) //stops walking
return 0
/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)
@@ -221,7 +221,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)
@@ -229,7 +229,7 @@ Difficulty: Medium
new /obj/effect/temp_visual/lava_safe(T)
amount--
SLEEP_CHECK_DEATH(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
SLEEP_CHECK_DEATH(0)
@@ -135,8 +135,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))
@@ -114,7 +114,7 @@
qdel(O)
saddled = TRUE
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
add_overlay("goliath_saddled")
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8)))
@@ -39,7 +39,6 @@
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
/mob/living/simple_animal/hostile/retaliate/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
. = ..()
@@ -79,7 +79,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
return ..()
/mob/living/simple_animal/hostile/statue/Life()
@@ -143,7 +143,7 @@
// Cannot talk
/mob/living/simple_animal/hostile/statue/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
return 0
return
// Turn to dust when gibbed
@@ -157,7 +157,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
@@ -39,7 +39,7 @@
/mob/living/simple_animal/hostile/vatbeast/tamed()
. = ..()
can_buckle = TRUE
buckle_lying = FALSE
buckle_lying = 0
var/datum/component/riding/riding = LoadComponent(/datum/component/riding)
riding.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 15), TEXT_SOUTH = list(0, 15), TEXT_EAST = list(-10, 15), TEXT_WEST = list(10, 15)))
riding.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
@@ -159,8 +159,8 @@
/mob/living/simple_animal/parrot/radio(message, list/message_mods = list(), list/spans, language) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be.
. = ..()
if(. != 0)
return .
if(!.)
return
if(message_mods[MODE_HEADSET])
if(ears)
@@ -175,7 +175,7 @@
ears.talk_into(src, message, message_mods[RADIO_EXTENSION], spans, language, message_mods)
return ITALICS | REDUCE_RANGE
return 0
return FALSE
/*
* Inventory
@@ -605,12 +605,12 @@
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/search_for_item()
var/item
@@ -634,8 +634,6 @@
continue
return item
return null
/mob/living/simple_animal/parrot/proc/search_for_perch()
for(var/obj/O in view(src))
for(var/path in desired_perches)
@@ -44,7 +44,7 @@
/mob/living/simple_animal/shade/canSuicide()
if(istype(loc, /obj/item/soulstone)) //do not suicide inside the soulstone
return 0
return FALSE
return ..()
/mob/living/simple_animal/shade/attack_animal(mob/living/simple_animal/M)
@@ -8,7 +8,6 @@
/mob/living/simple_animal/slime/Life()
set invisibility = 0
if (notransform)
return
if(..())
@@ -614,11 +613,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
@@ -12,20 +12,22 @@
var/needs_growth = NO_GROWTH_NEEDED
/datum/action/innate/slime/IsAvailable()
if(..())
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
. = ..()
if(!.)
return
var/mob/living/simple_animal/slime/S = owner
if(needs_growth == GROWTH_NEEDED)
if(S.amount_grown >= SLIME_EVOLUTION_THRESHOLD)
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 view(1,src))
@@ -34,10 +36,11 @@
var/mob/living/M = input(src,"Who do you wish to feed on?") in null|sortNames(choices)
if(!M)
return 0
return FALSE
if(CanFeedon(M))
Feedon(M)
return 1
return TRUE
return FALSE
/datum/action/innate/slime/feed
name = "Feed"
@@ -479,10 +479,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(..())
+12 -12
View File
@@ -114,10 +114,10 @@
*/
/mob/proc/Cell()
set category = "Admin"
set hidden = 1
set hidden = TRUE
if(!loc)
return 0
return
var/datum/gas_mixture/environment = loc.return_air()
@@ -307,7 +307,7 @@
if(istype(W))
if(equip_to_slot_if_possible(W, slot,0,0,0))
return 1
return TRUE
if(!W)
// Activate the item
@@ -315,7 +315,7 @@
if(istype(I))
I.attack_hand(src)
return 0
return FALSE
/**
* Try to equip an item to a slot on the mob
@@ -374,7 +374,7 @@
*/
/mob/proc/equip_to_appropriate_slot(obj/item/W, swap=FALSE)
if(!istype(W))
return 0
return FALSE
var/slot_priority = W.slot_equipment_priority
if(!slot_priority)
@@ -391,9 +391,9 @@
for(var/slot in slot_priority)
if(equip_to_slot_if_possible(W, slot, FALSE, TRUE, TRUE, FALSE, FALSE, swap)) //qdel_on_fail = FALSE; disable_warning = TRUE; redraw_mob = TRUE;
return 1
return TRUE
return 0
return FALSE
/**
* Reset the attached clients perspective (viewpoint)
*
@@ -806,7 +806,7 @@
///Is the mob muzzled (default false)
/mob/proc/is_muzzled()
return 0
return FALSE
/// Adds this list to the output to the stat browser
/mob/proc/get_status_tab_items()
@@ -1013,11 +1013,11 @@
///can the mob be buckled to something by default?
/mob/proc/can_buckle()
return 1
return TRUE
///can the mob be unbuckled from something by default?
/mob/proc/can_unbuckle()
return 1
return TRUE
///Can the mob interact() with an atom?
/mob/proc/can_interact_with(atom/A)
@@ -1077,7 +1077,7 @@
/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
log_played_names(ckey,newname)
@@ -1100,7 +1100,7 @@
// 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)
+2 -2
View File
@@ -45,9 +45,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
+1 -1
View File
@@ -93,7 +93,7 @@
///Check if the mob has a hivemind channel
/mob/proc/hivecheck()
return 0
return FALSE
///Check if the mob has a ling hivemind
/mob/proc/lingcheck()
+13 -13
View File
@@ -619,34 +619,34 @@
//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/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
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
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