mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 04:27:35 +01:00
further conversion
This commit is contained in:
@@ -142,4 +142,5 @@
|
||||
#define VIRUSIMMUNE 14
|
||||
#define NOCRITDAMAGE 15
|
||||
#define RESISTHOT 16
|
||||
#define RESISTCOLD 17
|
||||
#define RESISTCOLD 17
|
||||
#define NO_EXAMINE 18
|
||||
+25
-1
@@ -130,7 +130,31 @@
|
||||
#define EYE_SHINE_THRESHOLD 6 //dark_view threshold past which a humanoid's eyes will 'shine' in the dark.
|
||||
|
||||
//Human sub-species
|
||||
#define isabductor(A) (is_species(A, "Abductor"))
|
||||
#define isshadowling(A) (is_species(A, /datum/species/shadow/ling))
|
||||
#define isshadowlinglesser(A) (is_species(A, /datum/species/shadow/ling/lesser))
|
||||
#define isabductor(A) (is_species(A, /datum/species/abductor))
|
||||
#define isgolem(A) (is_species(A, /datum/species/golem))
|
||||
#define ismonkeybasic(A) (is_species(A, /datum/species/monkey))
|
||||
#define isfarwa(A) (is_species(A, /datum/species/monkey/tajaran))
|
||||
#define iswolpain(A) (is_species(A, /datum/species/monkey/vulpkanin))
|
||||
#define isneara(A) (is_species(A, /datum/species/monkey/skrell))
|
||||
#define isttok(A) (is_species(A, /datum/species/monkey/unathi))
|
||||
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
|
||||
#define isshadowperson(A) (is_species(A, /datum/species/shadow))
|
||||
#define isskeleton(A) (is_species(A, /datum/species/skeleton))
|
||||
#define ishumanbasic(A) (is_species(A, /datum/species/human))
|
||||
#define isunathi(A) (is_species(A, /datum/species/unathi))
|
||||
#define istajaran(A) (is_species(A, /datum/species/tajaran))
|
||||
#define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin))
|
||||
#define isskrell(A) (is_species(A, /datum/species/skrell))
|
||||
#define isvox(A) (is_species(A, /datum/species/vox))
|
||||
#define isvoxarmalis(A) (is_species(A, /datum/species/vox/armalis))
|
||||
#define iskidan(A) (is_species(A, /datum/species/kidan))
|
||||
#define isslimeperson(A) (is_species(A, /datum/species/slime))
|
||||
#define isgrey(A) (is_species(A, /datum/species/grey))
|
||||
#define isdiona(A) (is_species(A, /datum/species/diona))
|
||||
#define ismachine(A) (is_species(A, /datum/species/machine))
|
||||
#define isdrask(A) (is_species(A, /datum/species/drask))
|
||||
|
||||
#define isanimal(A) (istype((A), /mob/living/simple_animal))
|
||||
#define iscorgi(A) (istype((A), /mob/living/simple_animal/pet/corgi))
|
||||
|
||||
@@ -373,11 +373,11 @@ This is always put in the attack log.
|
||||
if(progress)
|
||||
qdel(progbar)
|
||||
|
||||
/proc/is_species(A, species_name)
|
||||
/proc/is_species(A, species_datum)
|
||||
. = FALSE
|
||||
if(ishuman(A))
|
||||
var/mob/living/carbon/human/H = A
|
||||
if(H.get_species() == species_name)
|
||||
if(H.dna && istype(H.dna.species, species_datum))
|
||||
. = TRUE
|
||||
|
||||
/proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE, list/extra_args)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
else
|
||||
return 1
|
||||
|
||||
if(isscrewdriver(src) && M.get_species() == "Machine")
|
||||
if(isscrewdriver(src) && ismachine(M))
|
||||
if(!attempt_initiate_surgery(src, M, user))
|
||||
return 0
|
||||
else
|
||||
|
||||
@@ -280,7 +280,7 @@ var/record_id_num = 1001
|
||||
G.fields["p_stat"] = "Active"
|
||||
G.fields["m_stat"] = "Stable"
|
||||
G.fields["sex"] = capitalize(H.gender)
|
||||
G.fields["species"] = H.get_species()
|
||||
G.fields["species"] = H.dna.species.name
|
||||
G.fields["photo"] = get_id_photo(H)
|
||||
G.fields["photo-south"] = "'data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = SOUTH))]'"
|
||||
G.fields["photo-west"] = "'data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = WEST))]'"
|
||||
|
||||
@@ -16,26 +16,26 @@
|
||||
switch(stage)
|
||||
if(1)
|
||||
if(prob(10))
|
||||
if(affected_mob.get_species() == "Tajaran")
|
||||
if(istajaran(affected_mob))
|
||||
to_chat(affected_mob, "<span class='notice'>You feel good.</span>")
|
||||
else
|
||||
to_chat(affected_mob, "<span class='notice'>You feel like playing with string.</span>")
|
||||
if(2)
|
||||
if(prob(10))
|
||||
if(affected_mob.get_species() == "Tajaran")
|
||||
if(istajaran(affected_mob))
|
||||
to_chat(affected_mob, "<span class='danger'>Something in your throat itches.</span>")
|
||||
else
|
||||
to_chat(affected_mob, "<span class='danger'>You NEED to find a mouse.</span>")
|
||||
if(3)
|
||||
if(prob(10))
|
||||
if(affected_mob.get_species() == "Tajaran")
|
||||
if(istajaran(affected_mob))
|
||||
to_chat(affected_mob, "<span class='danger'>You feel something in your throat!</span>")
|
||||
affected_mob.emote("cough")
|
||||
else
|
||||
affected_mob.say(pick(list("Mew", "Meow!", "Nya!~")))
|
||||
if(4)
|
||||
if(prob(5))
|
||||
if(affected_mob.get_species() == "Tajaran")
|
||||
if(istajaran(affected_mob))
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob] coughs up a hairball!</span>", \
|
||||
"<span class='userdanger'>You cough up a hairball!</span>")
|
||||
affected_mob.Stun(5)
|
||||
@@ -59,7 +59,7 @@
|
||||
severity = BIOHAZARD
|
||||
var/list/virspecies = list(/datum/species/human, /datum/species/tajaran, /datum/species/unathi,/datum/species/skrell, /datum/species/vulpkanin) //no karma races sorrys.
|
||||
var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay")
|
||||
var/chosentype
|
||||
var/datum/species/chosentype
|
||||
var/chosensuff
|
||||
|
||||
/datum/disease/kingstons/advanced/New()
|
||||
@@ -70,26 +70,27 @@
|
||||
|
||||
/datum/disease/kingstons/advanced/stage_act()
|
||||
..()
|
||||
switch(stage)
|
||||
if(1)
|
||||
if(prob(10))
|
||||
to_chat(affected_mob, "<span class='notice'>You feel awkward.</span>")
|
||||
if(2)
|
||||
if(prob(10))
|
||||
to_chat(affected_mob, "<span class='danger'>You itch.</span>")
|
||||
if(3)
|
||||
if(prob(10))
|
||||
to_chat(affected_mob, "<span class='danger'>Your skin starts to flake!</span>")
|
||||
if(ishuman(affected_mob))
|
||||
var/mob/living/carbon/human/twisted = affected_mob
|
||||
switch(stage)
|
||||
if(1)
|
||||
if(prob(10))
|
||||
to_chat(twisted, "<span class='notice'>You feel awkward.</span>")
|
||||
if(2)
|
||||
if(prob(10))
|
||||
to_chat(twisted, "<span class='danger'>You itch.</span>")
|
||||
if(3)
|
||||
if(prob(10))
|
||||
to_chat(twisted, "<span class='danger'>Your skin starts to flake!</span>")
|
||||
|
||||
if(4)
|
||||
if(prob(5))
|
||||
if(affected_mob.get_species() != chosentype)
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob]'s skin splits and form contorts!</span>", \
|
||||
"<span class='userdanger'>Your body mutates into a [chosentype]!</span>")
|
||||
var/mob/living/carbon/human/twisted = affected_mob
|
||||
twisted.set_species(chosentype)
|
||||
else
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob] scratches at thier skin!</span>", \
|
||||
"<span class='userdanger'>You scratch your skin to try not to itch!</span>")
|
||||
affected_mob.adjustBruteLoss(-5)
|
||||
affected_mob.adjustStaminaLoss(5)
|
||||
if(4)
|
||||
if(prob(5))
|
||||
if(!istype(twisted.dna.species, chosentype))
|
||||
twisted.visible_message("<span class='danger'>[twisted]'s skin splits and form contorts!</span>", \
|
||||
"<span class='userdanger'>Your body mutates into a [initial(chosentype.name)]!</span>")
|
||||
twisted.set_species(chosentype)
|
||||
else
|
||||
twisted.visible_message("<span class='danger'>[twisted] scratches at thier skin!</span>", \
|
||||
"<span class='userdanger'>You scratch your skin to try not to itch!</span>")
|
||||
twisted.adjustBruteLoss(-5)
|
||||
twisted.adjustStaminaLoss(5)
|
||||
@@ -194,12 +194,12 @@
|
||||
if(1)
|
||||
if(ishuman(affected_mob))
|
||||
var/mob/living/carbon/human/H = affected_mob
|
||||
if(H.dna.species.name == "Slime People")
|
||||
if(isslimeperson(H))
|
||||
stage = 5
|
||||
if(3)
|
||||
if(ishuman(affected_mob))
|
||||
var/mob/living/carbon/human/human = affected_mob
|
||||
if(human.dna.species.name != "Slime People")
|
||||
if(!isslimeperson(human))
|
||||
human.set_species(/datum/species/slime)
|
||||
|
||||
/datum/disease/transformation/corgi
|
||||
|
||||
@@ -371,7 +371,7 @@
|
||||
)
|
||||
|
||||
/datum/outfit/admin/vox/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(H.get_species() == "Vox Armalis")
|
||||
if(isvoxarmalis(H))
|
||||
. = ..()
|
||||
else
|
||||
H.equip_vox_raider()
|
||||
|
||||
@@ -435,8 +435,4 @@ var/global/list/bad_blocks[0]
|
||||
UpdateSE()
|
||||
species = new data["species"]
|
||||
b_type = data["b_type"]
|
||||
real_name = data["real_name"]
|
||||
|
||||
// a nice hook for if/when we refactor species on dna
|
||||
/datum/dna/proc/get_species_name()
|
||||
return species.name
|
||||
real_name = data["real_name"]
|
||||
@@ -279,7 +279,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
user.visible_message("<span class='warning'>Otherworldly armor suddenly appears on [user]!</span>", \
|
||||
"<span class='cultitalic'>You speak the words of the talisman, arming yourself!</span>")
|
||||
if(H.get_species() == "Plasmaman")
|
||||
if(isplasmaman(H))
|
||||
H.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/cultist(H), slot_wear_suit)
|
||||
H.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/cultist(H), slot_head)
|
||||
else
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
if((man.mind.assigned_role in ticker.mode.protected_jobs) || (man.mind.assigned_role in ticker.mode.restricted_jobs))
|
||||
return
|
||||
//don't include suspects who can't possibly be the antag based on their species (no suspecting the machines of being sneaky changelings)
|
||||
if(man.get_species() in ticker.mode.protected_species)
|
||||
if(man.dna.species.name in ticker.mode.protected_species)
|
||||
return
|
||||
dudes += man
|
||||
for(var/i = 0, i < max(player_list.len/10,2), i++)
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
if(!owner.current || !ishuman(owner.current))
|
||||
return 0
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
if(H.get_species() != "Abductor")
|
||||
if(!isabductor(H))
|
||||
return 0
|
||||
ab_team = H.mind.abductor.team
|
||||
for(var/obj/machinery/abductor/experiment/E in abductor_equipment)
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
name = "alien pistol"
|
||||
desc = "A complicated gun that fires bursts of high-intensity radiation."
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/declone)
|
||||
restricted_species = list("Abductor")
|
||||
restricted_species = list(/datum/species/abductor)
|
||||
icon_state = "alienpistol"
|
||||
item_state = "alienpistol"
|
||||
origin_tech = "combat=4;magnets=7;powerstorage=3;abductor=3"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = user
|
||||
// You must either: Be of the abductor species, or contain an abductor implant
|
||||
if((H.get_species() == "Abductor" || (locate(/obj/item/implant/abductor) in H)))
|
||||
if((isabductor(H) || (locate(/obj/item/implant/abductor) in H)))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = user
|
||||
// You must either: Be of the abductor species, or contain an abductor implant
|
||||
if((H.get_species() == "Abductor" || (locate(/obj/item/implant/abductor) in H)))
|
||||
if((isabductor(H) || (locate(/obj/item/implant/abductor) in H)))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ Made by Xhuis
|
||||
if(shadow.special_role == SPECIAL_ROLE_SHADOWLING && config.shadowling_max_age)
|
||||
if(ishuman(shadow.current))
|
||||
var/mob/living/carbon/human/H = shadow.current
|
||||
if(H.get_species() != "Shadow")
|
||||
if(!isshadowling(H))
|
||||
for(var/obj/effect/proc_holder/spell/targeted/shadowling_hatch/hatch_ability in shadow.spell_list)
|
||||
hatch_ability.cycles_unused++
|
||||
if(!H.stunned && prob(20) && hatch_ability.cycles_unused > config.shadowling_max_age)
|
||||
@@ -317,7 +317,7 @@ Made by Xhuis
|
||||
blood_color = "#555555"
|
||||
flesh_color = "#222222"
|
||||
|
||||
species_traits = list(NO_BLOOD, NO_BREATHE, RADIMMUNE, NOGUNS) //Can't use guns due to muzzle flash
|
||||
species_traits = list(NO_BLOOD, NO_BREATHE, RADIMMUNE, NOGUNS, NO_EXAMINE) //Can't use guns due to muzzle flash
|
||||
burn_mod = 1.5 //1.5x burn damage, 2x is excessive
|
||||
oxy_mod = 0
|
||||
heatmod = 1.5
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H)
|
||||
if(!H || !istype(H)) return
|
||||
if(H.get_species() == "Shadowling" && is_shadow(H)) return 1
|
||||
if(H.get_species() == "Lesser Shadowling" && is_thrall(H)) return 1
|
||||
if(isshadowling(H) && is_shadow(H))
|
||||
return 1
|
||||
if(isshadowlinglesser(H) && is_thrall(H))
|
||||
return 1
|
||||
if(!is_shadow_or_thrall(usr))
|
||||
to_chat(usr, "<span class='warning'>You can't wrap your head around how to do this.</span>")
|
||||
else if(is_thrall(usr))
|
||||
@@ -267,7 +269,7 @@
|
||||
listclearnulls(ticker.mode.shadowling_thralls)
|
||||
if(!(ling.mind in ticker.mode.shadows))
|
||||
return
|
||||
if(ling.get_species() != "Shadowling")
|
||||
if(!isshadowling(ling))
|
||||
if(ticker.mode.shadowling_thralls.len >= 5)
|
||||
charge_counter = charge_max
|
||||
return
|
||||
@@ -610,7 +612,7 @@
|
||||
to_chat(user, "<span class='warning'>[thrallToRevive] must be conscious to become empowered.</span>")
|
||||
charge_counter = charge_max
|
||||
return
|
||||
if(thrallToRevive.get_species() == "Lesser Shadowling")
|
||||
if(isshadowlinglesser(thrallToRevive))
|
||||
to_chat(user, "<span class='warning'>[thrallToRevive] is already empowered.</span>")
|
||||
charge_counter = charge_max
|
||||
return
|
||||
@@ -619,7 +621,7 @@
|
||||
if(!ishuman(M.current))
|
||||
return
|
||||
var/mob/living/carbon/human/H = M.current
|
||||
if(H.get_species() == "Lesser Shadowling")
|
||||
if(isshadowlinglesser(H))
|
||||
empowered_thralls++
|
||||
if(empowered_thralls >= EMPOWERED_THRALL_LIMIT)
|
||||
to_chat(user, "<span class='warning'>You cannot spare this much energy. There are too many empowered thralls.</span>")
|
||||
|
||||
@@ -429,7 +429,7 @@ var/global/list/multiverse = list()
|
||||
|
||||
M.equip_to_slot_or_del(sword, slot_r_hand) //Don't duplicate what's equipped to hands, or else duplicate swords could be generated...or weird cases of factionless swords.
|
||||
else
|
||||
if(M.get_species() == "Tajaran" || M.get_species() == "Unathi")
|
||||
if(istajaran(M) || isunathi(M))
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) //If they can't wear shoes, give them a pair of sandals.
|
||||
|
||||
var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator")
|
||||
@@ -461,7 +461,7 @@ var/global/list/multiverse = list()
|
||||
M.equip_to_slot_or_del(sword, slot_r_hand)
|
||||
|
||||
if("cyborg")
|
||||
if(M.get_species() != "Machine")
|
||||
if(!ismachine(M))
|
||||
for(var/obj/item/organ/O in M.bodyparts)
|
||||
O.robotize(make_tough = 1)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
|
||||
@@ -584,9 +584,9 @@ var/global/list/multiverse = list()
|
||||
W.SetOwnerInfo(M)
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if(M.get_species() == "Vox")
|
||||
M.dna.species.after_equip_job(null, M) //Voxygen(tm)
|
||||
if(M.get_species() == "Plasmaman")
|
||||
if(isvox(M))
|
||||
M.dna.species.after_equip_job(null, M) //Nitrogen tanks
|
||||
if(isplasmaman(M))
|
||||
M.dna.species.after_equip_job(null, M) //No fireballs from other dimensions.
|
||||
|
||||
M.update_icons()
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/radio/headset(wizard_mob), slot_l_ear)
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform)
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes)
|
||||
if(wizard_mob.get_species() != "Plasmaman") //handled in the species file for plasmen on the afterjob equip proc for now
|
||||
if(!isplasmaman(wizard_mob)) //handled in the species file for plasmen on the afterjob equip proc for now
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit)
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head)
|
||||
wizard_mob.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(wizard_mob), slot_back)
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
if(H.get_species() == "Machine")
|
||||
if(ismachine(H))
|
||||
var/obj/item/organ/internal/cyberimp/brain/clown_voice/implant = new
|
||||
implant.insert(H)
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/dye_list = list("hair", "alt. hair theme")
|
||||
|
||||
if(H.gender == MALE || H.get_species() == "Vulpkanin")
|
||||
if(H.gender == MALE || isvulpkanin(H))
|
||||
dye_list += "facial hair"
|
||||
dye_list += "alt. facial hair theme"
|
||||
|
||||
|
||||
@@ -562,7 +562,7 @@ Class Procs:
|
||||
if(istype(perp.belt, /obj/item/gun) || istype(perp.belt, /obj/item/melee))
|
||||
threatcount += 2
|
||||
|
||||
if(perp.dna.species.name != "Human") //beepsky so racist.
|
||||
if(!ishumanbasic(perp)) //beepsky so racist.
|
||||
threatcount += 2
|
||||
|
||||
if(check_records || check_arrest)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
return //Has internals, no drowning
|
||||
if((NO_BREATHE in drownee.dna.species.species_traits) || (BREATHLESS in drownee.mutations))
|
||||
return //doesn't breathe, no drowning
|
||||
if(drownee.get_species() == "Skrell" || drownee.get_species() == "Neara")
|
||||
if(isskrell(drownee) || isneara(drownee))
|
||||
return //fish things don't drown
|
||||
|
||||
if(drownee.stat == DEAD) //Dead spacemen don't drown more
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
if(C.h_style == "Bald" || C.h_style == "Balding Hair" || C.h_style == "Skinhead")
|
||||
to_chat(user, "<span class='notice'>There is not enough hair left to shave...</span>")
|
||||
return
|
||||
if(M.get_species() == "Skrell")
|
||||
if(isskrell(M))
|
||||
to_chat(user, "<span class='warning'>Your razor isn't going to cut through tentacles.</span>")
|
||||
return
|
||||
if(H == user) //shaving yourself
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
var/obj/machinery/abductor/console/console
|
||||
if(ishuman(source))
|
||||
var/mob/living/carbon/human/H = source
|
||||
if(H.get_species() == "Abductor")
|
||||
if(isabductor(H))
|
||||
console = get_team_console(H.mind.abductor.team)
|
||||
home = console.pad
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/list/species_facial_hair = list()
|
||||
var/obj/item/organ/external/head/C = H.get_organ("head")
|
||||
var/datum/robolimb/robohead = all_robolimbs[C.model]
|
||||
if(H.gender == MALE || H.get_species() == "Vulpkanin")
|
||||
if(H.gender == MALE || isvulpkanin(H))
|
||||
if(C.dna.species)
|
||||
for(var/i in facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i]
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
to_chat(user, "<span class='notice'>You need to take that [target.name] off before cleaning it.</span>")
|
||||
else if(target == user && user.a_intent == INTENT_GRAB && ishuman(target))
|
||||
var/mob/living/carbon/human/muncher = user
|
||||
if(muncher && muncher.get_species() == "Drask")
|
||||
if(muncher && isdrask(muncher))
|
||||
to_chat(user, "You take a bite of the [name]. Delicious!")
|
||||
playsound(user.loc, 'sound/items/eatfood.ogg', 50, 0)
|
||||
user.nutrition += 2
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
var/list/incompatible_species = list("Plasmaman", "Vox")
|
||||
var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox)
|
||||
for(var/mob/living/carbon/human/H in player_list)
|
||||
if(H.stat == DEAD || !(H.client))
|
||||
continue
|
||||
if(is_special_character(H))
|
||||
continue
|
||||
if(H.dna.species.name in incompatible_species)
|
||||
if(is_type_in_list(H.dna.species, incompatible_species))
|
||||
H.set_species(/datum/species/human)
|
||||
var/datum/preferences/A = new() // Randomize appearance
|
||||
A.copy_to(H)
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
var/list/incompatible_species = list("Plasmaman", "Vox")
|
||||
var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox)
|
||||
var/team_toggle = 0
|
||||
for(var/mob/living/carbon/human/H in player_list)
|
||||
if(H.stat == DEAD || !(H.client))
|
||||
continue
|
||||
if(is_special_character(H))
|
||||
continue
|
||||
if(H.dna.species.name in incompatible_species)
|
||||
if(is_type_in_list(H.dna.species, incompatible_species))
|
||||
H.set_species(/datum/species/human)
|
||||
var/datum/preferences/A = new() // Randomize appearance
|
||||
A.copy_to(H)
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
user.mutations.Add(XRAY)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.dna.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
@@ -95,7 +95,7 @@
|
||||
new /obj/structure/closet/syndicate/resources/everything(loc)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.dna.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
@@ -108,7 +108,7 @@
|
||||
user.verbs += /mob/living/carbon/proc/immortality
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.dna.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
@@ -130,7 +130,7 @@
|
||||
obj_count++
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.dna.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/capspace/equipped(mob/living/carbon/human/user, slot)
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
if(user.dna.species.name == "Vox")
|
||||
if(isvox(user))
|
||||
if(flags & BLOCKHAIR)
|
||||
flags &= ~BLOCKHAIR
|
||||
else
|
||||
|
||||
@@ -609,8 +609,8 @@
|
||||
var/species_icon = 'icons/mob/rig_back.dmi'
|
||||
// Since setting mob_icon will override the species checks in
|
||||
// update_inv_wear_suit(), handle species checks here.
|
||||
if(wearer && sprite_sheets && sprite_sheets[wearer.get_species()])
|
||||
species_icon = sprite_sheets[wearer.get_species()]
|
||||
if(wearer && sprite_sheets && sprite_sheets[wearer.dna.species.name])
|
||||
species_icon = sprite_sheets[wearer.dna.species.name]
|
||||
mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]")
|
||||
|
||||
if(installed_modules.len)
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/target = user
|
||||
if(!istype(target) || target.get_species() != "Tajaran") // Only catbeasts, kthnx.
|
||||
if(!istype(target) || !istajaran(target)) // Only catbeasts, kthnx.
|
||||
return
|
||||
|
||||
if(target.change_body_accessory("Jay Wingler Tail"))
|
||||
@@ -1276,7 +1276,7 @@
|
||||
|
||||
/obj/item/fluff/zekemirror/attack_self(mob/user)
|
||||
var/mob/living/carbon/human/target = user
|
||||
if(!istype(target) || target.get_species() != "Skrell") // It'd be strange to see other races with head tendrils.
|
||||
if(!istype(target) || !isskrell(target)) // It'd be strange to see other races with head tendrils.
|
||||
return
|
||||
|
||||
if(target.change_hair("Zekes Tentacles", 1))
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
if(occupant.reagents)
|
||||
occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count,1))
|
||||
|
||||
if(occupant.get_species() == "Human")
|
||||
if(ishumanbasic(occupant))
|
||||
new /obj/item/stack/sheet/animalhide/human(src)
|
||||
new /obj/effect/decal/cleanable/blood/gibs(src)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/bee_friendly()
|
||||
if(get_species() == "Diona") //bees pollinate plants, duh.
|
||||
if(isdiona(src)) //bees pollinate plants, duh.
|
||||
return 1
|
||||
if((wear_suit && (wear_suit.flags & THICKMATERIAL)) && (head && (head.flags & THICKMATERIAL)))
|
||||
return 1
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
to_chat(M, "<span class='warning'>This item is currently non-functional.</span>")
|
||||
/*if(ishuman(M) && M.stat != DEAD)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.name != "Human" || reac_volume < 5) // implying xenohumans are holy
|
||||
if(!ishumanbasic(H) || reac_volume < 5) // implying xenohumans are holy
|
||||
if(method == INGEST && show_message)
|
||||
to_chat(H, "<span class='notice'><i>You feel nothing but a terrible aftertaste.</i></span>")
|
||||
return ..()
|
||||
|
||||
@@ -84,12 +84,12 @@ I'm using this for Stat to give it a more nifty interface to work with
|
||||
if(container)
|
||||
var/obj/item/mmi/M = container
|
||||
if(istype(M) && M.held_brain)
|
||||
return M.held_brain.dna.get_species_name()
|
||||
return M.held_brain.dna.species.name
|
||||
else
|
||||
return "Artificial Life"
|
||||
if(istype(loc, /obj/item/organ/internal/brain))
|
||||
var/obj/item/organ/internal/brain/B = loc
|
||||
return B.dna.get_species_name()
|
||||
return B.dna.species.name
|
||||
|
||||
/mob/living/carbon/brain/Stat()
|
||||
..()
|
||||
|
||||
@@ -29,29 +29,36 @@
|
||||
switch(act)
|
||||
//Cooldown-inducing emotes
|
||||
if("ping", "pings", "buzz", "buzzes", "beep", "beeps", "yes", "no", "buzz2")
|
||||
if(dna.species.name == "Machine") //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise.
|
||||
var/found_machine_head = FALSE
|
||||
if(ismachine(src)) //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
else
|
||||
var/obj/item/organ/external/head/H = get_organ("head") // If you have a robotic head, you can make beep-boop noises
|
||||
if(H && H.is_robotic())
|
||||
on_CD = handle_emote_CD()
|
||||
found_machine_head = TRUE
|
||||
|
||||
if(!found_machine_head) //Everyone else fails, skip the emote attempt
|
||||
return //Everyone else fails, skip the emote attempt
|
||||
if("drone","drones","hum","hums","rumble","rumbles")
|
||||
if(get_species() == "Drask") //Only Drask can make whale noises
|
||||
if(isdrask(src)) //Only Drask can make whale noises
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
|
||||
else
|
||||
return
|
||||
if("howl", "howls")
|
||||
if(get_species() == "Vulpkanin") //Only Vulpkanin can howl
|
||||
if(isvulpkanin(src)) //Only Vulpkanin can howl
|
||||
on_CD = handle_emote_CD(100)
|
||||
else
|
||||
return
|
||||
if("growl", "growls")
|
||||
if(get_species() == "Vulpkanin") //Only Vulpkanin can growl
|
||||
if(isvulpkanin(src)) //Only Vulpkanin can growl
|
||||
on_CD = handle_emote_CD()
|
||||
else
|
||||
return
|
||||
if("squish", "squishes")
|
||||
var/found_slime_bodypart = 0
|
||||
|
||||
if(get_species() == "Slime People") //Only Slime People can squish
|
||||
if(isslimeperson(src)) //Only Slime People can squish
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
found_slime_bodypart = 1
|
||||
else
|
||||
@@ -65,31 +72,31 @@
|
||||
return
|
||||
|
||||
if("clack", "clacks")
|
||||
if(get_species() == "Kidan") //Only Kidan can clack and rightfully so.
|
||||
if(iskidan(src)) //Only Kidan can clack and rightfully so.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("click", "clicks")
|
||||
if(get_species() == "Kidan") //Only Kidan can click and rightfully so.
|
||||
if(iskidan(src)) //Only Kidan can click and rightfully so.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("creaks", "creak")
|
||||
if(get_species() == "Diona") //Only Dionas can Creaks.
|
||||
if(isdiona(src)) //Only Dionas can Creaks.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("hiss", "hisses")
|
||||
if(get_species() == "Unathi") //Only Unathi can hiss.
|
||||
if(isunathi(src)) //Only Unathi can hiss.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("quill", "quills")
|
||||
if(get_species() == "Vox") //Only Vox can rustle their quills.
|
||||
if(isvox(src)) //Only Vox can rustle their quills.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
@@ -891,8 +898,6 @@
|
||||
+ " wag(s), wave(s), whimper(s), wink(s), yawn(s), quill(s)"
|
||||
|
||||
switch(dna.species.name)
|
||||
if("Machine")
|
||||
emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob"
|
||||
if("Drask")
|
||||
emotelist += "\nDrask specific emotes :- drone(s)-(none)/mob, hum(s)-(none)/mob, rumble(s)-(none)/mob"
|
||||
if("Kidan")
|
||||
@@ -906,7 +911,14 @@
|
||||
if("Diona")
|
||||
emotelist += "\nDiona specific emotes :- creak(s)"
|
||||
|
||||
if (dna.species.name == "Slime People")
|
||||
if(dna.species.name == "Machine")
|
||||
emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob"
|
||||
else
|
||||
var/obj/item/organ/external/head/H = get_organ("head") // If you have a robotic head, you can make beep-boop noises
|
||||
if(H && H.is_robotic())
|
||||
emotelist += "\nRobotic head specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob"
|
||||
|
||||
if(dna.species.name == "Slime People")
|
||||
emotelist += "\nSlime people specific emotes :- squish(es)-(none)/mob"
|
||||
else
|
||||
for(var/obj/item/organ/external/L in bodyparts) // if your limbs are squishy you can squish too!
|
||||
|
||||
@@ -29,14 +29,12 @@
|
||||
msg += "[bicon(icon(icon, dir=SOUTH))] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
|
||||
msg += "<EM>[name]</EM>"
|
||||
|
||||
var/list/nospecies = list("Abductor", "Shadowling", "Neara", "Monkey", "Stok", "Farwa", "Wolpin") //species that won't show their race no matter what
|
||||
|
||||
var/displayed_species = get_species()
|
||||
var/displayed_species = dna.species.name
|
||||
for(var/obj/item/clothing/C in src) //Disguise checks
|
||||
if(C == src.head || C == src.wear_suit || C == src.wear_mask || C == src.w_uniform || C == src.belt || C == src.back)
|
||||
if(C.species_disguise)
|
||||
displayed_species = C.species_disguise
|
||||
if(skipjumpsuit && skipface || (displayed_species in nospecies)) //either obscured or on the nospecies list
|
||||
if(skipjumpsuit && skipface || (NO_EXAMINE in dna.species.species_traits)) //either obscured or on the nospecies list
|
||||
msg += "!\n" //omit the species when examining
|
||||
else if(displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural
|
||||
msg += ", a slime person!\n"
|
||||
|
||||
@@ -1035,10 +1035,6 @@
|
||||
|
||||
/mob/living/carbon/human/proc/check_dna()
|
||||
dna.check_integrity(src)
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/get_species()
|
||||
return dna.species.name
|
||||
|
||||
/mob/living/carbon/human/proc/play_xylophone()
|
||||
if(!src.xylophone)
|
||||
@@ -1172,7 +1168,7 @@
|
||||
surgeries.Cut() //End all surgeries.
|
||||
update_revive()
|
||||
|
||||
if(dna.species.name != "Skeleton" && (SKELETON in mutations))
|
||||
if(!isskeleton(src) && (SKELETON in mutations))
|
||||
mutations.Remove(SKELETON)
|
||||
if(NOCLONE in mutations)
|
||||
mutations.Remove(NOCLONE)
|
||||
@@ -1821,14 +1817,14 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
|
||||
/mob/living/carbon/human/forceFed(var/obj/item/reagent_containers/food/toEat, mob/user, fullness)
|
||||
if(!check_has_mouth())
|
||||
if(!((istype(toEat, /obj/item/reagent_containers/food/drinks) && (get_species() == "Machine"))))
|
||||
if(!((istype(toEat, /obj/item/reagent_containers/food/drinks) && (ismachine(src)))))
|
||||
to_chat(user, "Where do you intend to put \the [toEat]? \The [src] doesn't have a mouth!")
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/selfDrink(var/obj/item/reagent_containers/food/drinks/toDrink)
|
||||
if(!check_has_mouth())
|
||||
if(!get_species() == "Machine")
|
||||
if(!ismachine(src))
|
||||
to_chat(src, "Where do you intend to put \the [src]? You don't have a mouth!")
|
||||
return 0
|
||||
else
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight.
|
||||
)
|
||||
|
||||
species_traits = list(NO_BLOOD, NO_BREATHE, VIRUSIMMUNE, NOGUNS)
|
||||
species_traits = list(NO_BLOOD, NO_BREATHE, VIRUSIMMUNE, NOGUNS, NO_EXAMINE)
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
path = /mob/living/carbon/human/monkey
|
||||
language = null
|
||||
default_language = "Chimpanzee"
|
||||
species_traits = list(NO_EXAMINE)
|
||||
greater_form = /datum/species/human
|
||||
is_small = 1
|
||||
has_fine_manipulation = 0
|
||||
|
||||
@@ -627,13 +627,13 @@
|
||||
#undef SLIMEPERSON_ICON_UPDATE_PERIOD
|
||||
#undef SLIMEPERSON_BLOOD_SCALING_FACTOR
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_recolor(var/silent = 0)
|
||||
var/datum/species/slime/S = all_species[get_species()]
|
||||
if(!istype(S))
|
||||
/mob/living/carbon/human/proc/toggle_recolor(silent = FALSE)
|
||||
if(!isslimeperson(src))
|
||||
if(!silent)
|
||||
to_chat(src, "You're not a slime person!")
|
||||
return
|
||||
|
||||
var/datum/species/slime/S = dna.species
|
||||
if(src in S.recolor_list)
|
||||
S.recolor_list -= src
|
||||
if(!silent)
|
||||
|
||||
@@ -448,7 +448,7 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(head_organ.h_style && !(head && (head.flags & BLOCKHEADHAIR) && !(isSynthetic())))
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style]
|
||||
//if(!src.get_int_organ(/obj/item/organ/internal/brain) && src.get_species() != "Machine" )//make it obvious we have NO BRAIN
|
||||
//if(!src.get_int_organ(/obj/item/organ/internal/brain) && !ismachine(src))//make it obvious we have NO BRAIN
|
||||
// hair_standing.Blend(debrained_s, ICON_OVERLAY)
|
||||
if(hair_style && hair_style.species_allowed)
|
||||
if((head_organ.dna.species.name in hair_style.species_allowed) || (head_organ.dna.species.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics...
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
|
||||
if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.dna.species.name == "Slime People")
|
||||
if(isslimeperson(H))
|
||||
continue
|
||||
|
||||
if(!L.canmove) // Only one slime can latch on at a time.
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
/mob/living/simple_animal/diona/attack_hand(mob/living/carbon/human/M)
|
||||
//Let people pick the little buggers up.
|
||||
if(M.a_intent == INTENT_HELP)
|
||||
if(M.dna.species && M.dna.species.name == "Diona")
|
||||
if(isdiona(M))
|
||||
to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.")
|
||||
to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.")
|
||||
verbs += /mob/living/simple_animal/diona/proc/split
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/D = C
|
||||
if(D.dna.species && D.dna.species.name == "Diona")
|
||||
if(isdiona(D))
|
||||
choices += C
|
||||
|
||||
var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices
|
||||
|
||||
@@ -1080,9 +1080,6 @@ var/list/slot_equipment_priority = list( \
|
||||
/mob/proc/activate_hand(selhand)
|
||||
return
|
||||
|
||||
/mob/proc/get_species()
|
||||
return ""
|
||||
|
||||
/mob/dead/observer/verb/respawn()
|
||||
set name = "Respawn as NPC"
|
||||
set category = "Ghost"
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/human/isSynthetic()
|
||||
if(get_species() == "Machine")
|
||||
return 1
|
||||
return 0
|
||||
if(ismachine(src))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/proc/get_screen_colour()
|
||||
|
||||
|
||||
@@ -591,19 +591,6 @@
|
||||
if(!S) return 1
|
||||
return is_alien_whitelisted(src, S.name) || !config.usealienwhitelist || !(IS_WHITELISTED in S.species_traits)
|
||||
|
||||
/mob/new_player/get_species()
|
||||
var/datum/species/chosen_species
|
||||
if(client.prefs.species)
|
||||
chosen_species = all_species[client.prefs.species]
|
||||
|
||||
if(!chosen_species)
|
||||
return "Human"
|
||||
|
||||
if(is_species_whitelisted(chosen_species) || has_admin_rights())
|
||||
return chosen_species.name
|
||||
|
||||
return "Human"
|
||||
|
||||
/mob/new_player/get_gender()
|
||||
if(!client || !client.prefs) ..()
|
||||
return client.prefs.gender
|
||||
|
||||
@@ -153,10 +153,10 @@
|
||||
|
||||
process_fire(target,user,1,params)
|
||||
|
||||
/obj/item/gun/proc/can_trigger_gun(var/mob/living/user)
|
||||
/obj/item/gun/proc/can_trigger_gun(mob/living/user)
|
||||
if(!user.can_use_guns(src))
|
||||
return 0
|
||||
if(restricted_species && restricted_species.len && !(user.get_species() in restricted_species))
|
||||
if(restricted_species && restricted_species.len && !is_type_in_list(user.dna.species, restricted_species))
|
||||
to_chat(user, "<span class='danger'>[src] is incompatible with your biology!</span>")
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
can_suppress = 0
|
||||
var/charge_tick = 0
|
||||
var/charge_delay = 15
|
||||
restricted_species = list("Vox", "Vox Armalis")
|
||||
restricted_species = list(/datum/species/vox)
|
||||
|
||||
/obj/item/gun/projectile/automatic/spikethrower/New()
|
||||
..()
|
||||
@@ -79,7 +79,7 @@
|
||||
force = 10
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/sonic)
|
||||
cell_type = /obj/item/stock_parts/cell/super
|
||||
restricted_species = list("Vox Armalis")
|
||||
restricted_species = list(/datum/species/vox/armalis)
|
||||
|
||||
/obj/item/gun/energy/noisecannon/update_icon()
|
||||
return
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
var/exp_flash = 3
|
||||
var/exp_fire = 2
|
||||
|
||||
/obj/item/projectile/magic/death/on_hit(var/mob/living/carbon/G)
|
||||
/obj/item/projectile/magic/death/on_hit(mob/living/carbon/C)
|
||||
. = ..()
|
||||
if(isliving(G))
|
||||
if(G.get_species() == "Machine") //speshul snowfleks deserv speshul treetment
|
||||
G.adjustFireLoss(6969) //remember - slimes love fire
|
||||
if(isliving(C))
|
||||
if(ismachine(C)) //speshul snowfleks deserv speshul treetment
|
||||
C.adjustFireLoss(6969) //remember - slimes love fire
|
||||
else
|
||||
G.death()
|
||||
C.death()
|
||||
|
||||
visible_message("<span class='danger'>[G] topples backwards as the death bolt impacts [G.p_them()]!</span>")
|
||||
visible_message("<span class='danger'>[C] topples backwards as the death bolt impacts [C.p_them()]!</span>")
|
||||
|
||||
/obj/item/projectile/magic/fireball/Range()
|
||||
var/turf/T1 = get_step(src,turn(dir, -45))
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
/datum/reagent/slimetoxin/on_mob_life(mob/living/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/human = M
|
||||
if(human.dna.species.name != "Shadow")
|
||||
if(!isshadowperson(human))
|
||||
to_chat(M, "<span class='danger'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(M, "<span class='danger'>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</span>")
|
||||
to_chat(M, "<span class='danger'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
@@ -217,7 +217,7 @@
|
||||
if(method == TOUCH)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.get_species() == "Grey")
|
||||
if(isgrey(H))
|
||||
return
|
||||
|
||||
if(volume > 25)
|
||||
@@ -246,7 +246,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() == "Grey")
|
||||
if(isgrey(H))
|
||||
return
|
||||
|
||||
if(volume >=10 && volume <=25)
|
||||
@@ -995,7 +995,7 @@
|
||||
C.adjustToxLoss(2)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.get_species() == "Kidan") //RIP
|
||||
if(iskidan(H)) //RIP
|
||||
H.adjustToxLoss(20)
|
||||
|
||||
/datum/reagent/capulettium
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() != "Grey") //God this is so gross I hate it.
|
||||
if(!isgrey(H)) //God this is so gross I hate it.
|
||||
return
|
||||
|
||||
if(volume > 25)
|
||||
@@ -58,7 +58,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(H.get_species() != "Grey")
|
||||
if(!isgrey(H))
|
||||
return
|
||||
|
||||
if(volume < 10)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting)
|
||||
if(target.get_species() == "Machine")
|
||||
if(ismachine(target))
|
||||
// RIP bi-centennial man
|
||||
return 0
|
||||
if(!affected)
|
||||
|
||||
@@ -279,7 +279,8 @@ This function completely restores a damaged organ to perfect condition.
|
||||
for(var/obj/item/organ/external/EO in contents)
|
||||
EO.rejuvenate()
|
||||
|
||||
owner.updatehealth()
|
||||
if(owner)
|
||||
owner.updatehealth()
|
||||
update_icon()
|
||||
if(!owner)
|
||||
processing_objects |= src
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
..()
|
||||
|
||||
/datum/surgery_step/internal/dethrall/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(target.get_species() == "Lesser Shadowling") //Empowered thralls cannot be deconverted
|
||||
if(isshadowlinglesser(target)) //Empowered thralls cannot be deconverted
|
||||
to_chat(target, "<span class='shadowling'><b><i>NOT LIKE THIS!</i></b></span>")
|
||||
user.visible_message("<span class='warning'>[target] suddenly slams upward and knocks down [user]!</span>", \
|
||||
"<span class='userdanger'>[target] suddenly bolts up and slams you with tremendous force!</span>")
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/datum/surgery_step/reshape_face/end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/obj/item/organ/external/head/head = target.get_organ(target_zone)
|
||||
var/species_names = target.get_species()
|
||||
var/species_names = target.dna.species.name
|
||||
if(head.disfigured)
|
||||
head.disfigured = FALSE
|
||||
user.visible_message("[user] successfully restores [target]'s appearance!", "<span class='notice'>You successfully restore [target]'s appearance.</span>")
|
||||
|
||||
@@ -67,10 +67,6 @@
|
||||
//How much blood this step can get on surgeon. 1 - hands, 2 - full body.
|
||||
var/blood_level = 0
|
||||
|
||||
var/list/allowed_mob = list()
|
||||
var/list/disallowed_mob = list()
|
||||
|
||||
|
||||
/datum/surgery_step/proc/try_op(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/success = 0
|
||||
if(accept_hand)
|
||||
@@ -146,19 +142,8 @@
|
||||
// Checks if this step applies to the user mob at all
|
||||
/datum/surgery_step/proc/is_valid_target(mob/living/carbon/human/target)
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
|
||||
if(allowed_mob)//can i just remove this and/or change it?
|
||||
for(var/species in allowed_mob)
|
||||
if(target.get_species() == species)
|
||||
return 1
|
||||
|
||||
if(disallowed_mob)
|
||||
for(var/species in disallowed_mob)
|
||||
if(target.get_species() == species)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
// checks whether this step can be applied with the given user and target
|
||||
/datum/surgery_step/proc/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
Reference in New Issue
Block a user