Merge branch 'master' of https://github.com/QuinnAggeler/Paradise into Paradise-drask

# Conflicts:
#	icons/mob/human_face.dmi
This commit is contained in:
HugoLuman
2016-04-26 17:32:04 -07:00
247 changed files with 9997 additions and 6259 deletions
+4 -6
View File
@@ -28,10 +28,9 @@
W.forceMove(src) //TODO: move to equipped?
l_hand = W
W.layer = 20 //TODO: move to equipped?
// l_hand.screen_loc = ui_lhand
W.equipped(src,slot_l_hand)
if(client) client.screen |= W
if(pulling == W) stop_pulling()
if(pulling == W)
stop_pulling()
update_inv_l_hand()
return 1
return 0
@@ -44,10 +43,9 @@
W.forceMove(src)
r_hand = W
W.layer = 20
// r_hand.screen_loc = ui_rhand
W.equipped(src,slot_r_hand)
if(client) client.screen |= W
if(pulling == W) stop_pulling()
if(pulling == W)
stop_pulling()
update_inv_r_hand()
return 1
return 0
@@ -23,7 +23,6 @@
large = 1
/mob/living/carbon/alien/humanoid/sentinel/large/update_icons()
update_hud() //TODO: remove the need for this to be here
overlays.Cut()
if(stat == DEAD)
icon_state = "prat_dead"
@@ -17,8 +17,6 @@
pixel_x = -32
/mob/living/carbon/alien/humanoid/empress/large/update_icons()
update_hud() //TODO: remove the need for this to be here
overlays.Cut()
if(stat == DEAD)
@@ -1,6 +1,5 @@
/mob/living/carbon/alien/humanoid/Login()
..()
update_hud()
if(!isturf(loc))
client.eye = loc
client.perspective = EYE_PERSPECTIVE
@@ -31,29 +31,26 @@
..()
/mob/living/carbon/alien/humanoid/queen
/mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates()
..() //-Yvarov
handle_regular_hud_updates()
..() //-Yvarov
if (src.healths)
if (src.stat != 2)
switch(health)
if(250 to INFINITY)
src.healths.icon_state = "health0"
if(175 to 250)
src.healths.icon_state = "health1"
if(100 to 175)
src.healths.icon_state = "health2"
if(50 to 100)
src.healths.icon_state = "health3"
if(0 to 50)
src.healths.icon_state = "health4"
else
src.healths.icon_state = "health5"
else
src.healths.icon_state = "health6"
if (healths)
if (stat != DEAD)
switch(health)
if(250 to INFINITY)
healths.icon_state = "health0"
if(175 to 250)
healths.icon_state = "health1"
if(100 to 175)
healths.icon_state = "health2"
if(50 to 100)
healths.icon_state = "health3"
if(0 to 50)
healths.icon_state = "health4"
else
healths.icon_state = "health5"
else
healths.icon_state = "health6"
//Queen verbs
@@ -81,7 +78,6 @@
large = 1
/mob/living/carbon/alien/humanoid/queen/large/update_icons()
update_hud() //TODO: remove the need for this to be here
overlays.Cut()
if(stat == DEAD)
@@ -12,12 +12,10 @@
var/list/overlays_standing[X_TOTAL_LAYERS]
/mob/living/carbon/alien/humanoid/update_icons()
update_hud() //TODO: remove the need for this to be here
overlays.Cut()
for(var/image/I in overlays_standing)
overlays += I
if(stat == DEAD)
//If we mostly took damage from fire
if(fireloss > 125)
@@ -65,7 +63,6 @@
update_inv_r_hand(0)
update_inv_l_hand(0)
update_inv_pockets(0)
update_hud()
update_icons()
update_fire()
update_transform()
@@ -76,14 +73,6 @@
..()
update_icons()
/mob/living/carbon/alien/humanoid/update_hud()
//TODO
if (client)
// if(other) client.screen |= hud_used.other //Not used
// else client.screen -= hud_used.other //Not used
client.screen |= contents
/mob/living/carbon/alien/humanoid/update_fire()
overlays -= overlays_standing[X_FIRE_LAYER]
if(on_fire)
@@ -94,7 +83,16 @@
overlays_standing[X_FIRE_LAYER] = null
/mob/living/carbon/alien/humanoid/update_inv_wear_suit(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_suit]
inv.update_icon()
if(wear_suit)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
wear_suit.screen_loc = ui_oclothing //TODO //...draw the item in the inventory screen
client.screen += wear_suit //Either way, add the item to the HUD
var/t_state = wear_suit.item_state
if(!t_state) t_state = wear_suit.icon_state
var/image/standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]")
@@ -105,8 +103,6 @@
t_suit = "armor"
standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_suit]blood")
//TODO
wear_suit.screen_loc = ui_alien_oclothing
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
unEquip(handcuffed)
drop_r_hand()
@@ -139,6 +135,7 @@
/mob/living/carbon/alien/humanoid/update_inv_r_hand(var/update_icons=1)
..(1)
if(r_hand)
var/t_state = r_hand.item_state
if(!t_state) t_state = r_hand.icon_state
@@ -149,6 +146,7 @@
if(update_icons) update_icons()
/mob/living/carbon/alien/humanoid/update_inv_l_hand(var/update_icons=1)
..(1)
if(l_hand)
var/t_state = l_hand.item_state
if(!t_state) t_state = l_hand.icon_state
@@ -158,15 +156,6 @@
overlays_standing[X_L_HAND_LAYER] = null
if(update_icons) update_icons()
//Call when target overlay should be added/removed
/mob/living/carbon/alien/humanoid/update_targeted(var/update_icons=1)
if (targeted_by && target_locked)
overlays_standing[TARGETED_LAYER] = target_locked
else if (!targeted_by && target_locked)
qdel(target_locked)
if (!targeted_by)
overlays_standing[TARGETED_LAYER] = null
if(update_icons) update_icons()
//Xeno Overlays Indexes//////////
#undef X_HEAD_LAYER
@@ -59,8 +59,8 @@
to_chat(user, "This one seems particularly lifeless. Perhaps it will regain some of its luster later..")
/obj/item/organ/internal/brain/remove(var/mob/living/user,special = 0)
name = "[dna.real_name]'s [initial(name)]"
if(dna)
name = "[dna.real_name]'s [initial(name)]"
if(!owner) return ..() // Probably a redundant removal; just bail
+11 -20
View File
@@ -2,11 +2,6 @@
var/canEnterVentWith = "/obj/item/weapon/implant=0&/obj/item/clothing/mask/facehugger=0&/obj/item/device/radio/borg=0&/obj/machinery/camera=0"
var/datum/middleClickOverride/middleClickOverride = null
/mob/living/carbon/Login()
..()
update_hud()
return
/mob/living/carbon/prepare_huds()
..()
prepare_data_huds()
@@ -188,7 +183,7 @@
/mob/living/carbon/proc/swap_hand()
/mob/living/carbon/swap_hand()
var/obj/item/item_in_hand = src.get_active_hand()
if(item_in_hand) //this segment checks if the item in your hand is twohanded.
if(istype(item_in_hand,/obj/item/weapon/twohanded))
@@ -196,20 +191,15 @@
to_chat(usr, "<span class='warning'>Your other hand is too busy holding the [item_in_hand.name]</span>")
return
src.hand = !( src.hand )
if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
if(hand) //This being 1 means the left hand is in use
hud_used.l_hand_hud_object.icon_state = "hand_active"
hud_used.r_hand_hud_object.icon_state = "hand_inactive"
else
hud_used.l_hand_hud_object.icon_state = "hand_inactive"
hud_used.r_hand_hud_object.icon_state = "hand_active"
/*if (!( src.hand ))
src.hands.dir = NORTH
else
src.hands.dir = SOUTH*/
return
if(hud_used && hud_used.inv_slots[slot_l_hand] && hud_used.inv_slots[slot_r_hand])
var/obj/screen/inventory/hand/H
H = hud_used.inv_slots[slot_l_hand]
H.update_icon()
H = hud_used.inv_slots[slot_r_hand]
H.update_icon()
/mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand.
/mob/living/carbon/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand.
if(istext(selhand))
selhand = lowertext(selhand)
@@ -761,7 +751,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
buckled.user_unbuckle_mob(src,src)
else
if(src && buckled)
src << "<span class='warning'>You fail to unbuckle yourself!</span>"
to_chat(src, "<span class='warning'>You fail to unbuckle yourself!</span>")
else
buckled.user_unbuckle_mob(src,src)
@@ -856,6 +846,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
clear_alert("handcuffed")
update_action_buttons() //some of our action buttons might be unusable when we're handcuffed.
update_inv_handcuffed()
update_hud_handcuffed()
/mob/living/carbon/get_standard_pixel_y_offset(lying = 0)
if(lying)
@@ -179,16 +179,17 @@
continue
if(species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head...
var/obj/item/organ/external/head/H = organs_by_name["head"]
var/datum/robolimb/robohead = all_robolimbs[H.model]
if(!H)
return
if(species.name in S.species_allowed) //If this is a hairstyle native to the user's species...
if(H.model == "Morpheus Cyberkinetics") //Check to see if they have the default head.
if(robohead.is_monitor && (robohead.company in S.models_allowed)) //Check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list.
valid_hairstyles += hairstyle //Give them their hairstyles if they do.
continue
else //If they don't have the default head, they shouldn't be getting any hairstyles they wouldn't normally.
continue
else
if(H.model == "Morpheus Cyberkinetics") //If the hairstyle is not native to the user's species, and they're using the default head, don't let them access it.
if(robohead.is_monitor) //If the hair style is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it.
continue
else
if("Human" in S.species_allowed) //If the user has a robotic head and the hairstyle can fit humans, let them use it as a wig for their humanoid robot head.
@@ -212,17 +213,18 @@
continue
if(species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head...
var/obj/item/organ/external/head/H = organs_by_name["head"]
var/datum/robolimb/robohead = all_robolimbs[H.model]
if(!H)
continue // No head, no hair
if(species.name in S.species_allowed) //If this is a facial hair style native to the user's species...
if(H.model == "Morpheus Cyberkinetics") //Check to see if they have the default head.
if(robohead.is_monitor && (robohead.company in S.models_allowed)) //Check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list.
valid_facial_hairstyles += facialhairstyle //Give them their facial hair styles if they do.
continue
else //If they don't have the default head, they shouldn't be getting any facial hair styles they wouldn't normally.
continue
else
if(H.model == "Morpheus Cyberkinetics") //If the facial hair style is not native to the user's species, and they're using the default head, don't let them access it.
if(robohead.is_monitor) //If the facial hair style is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it.
continue
else
if("Human" in S.species_allowed) //If the user has a robotic head and the facial hair style can fit humans, let them use it as a postiche for their humanoid robot head.
@@ -33,7 +33,7 @@
var/msg = "<span class='info'>*---------*\nThis is "
if( skipjumpsuit && skipface ) //big suits/masks/helmets make it hard to tell their gender
if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender
t_He = "They"
t_his = "their"
t_him = "them"
@@ -52,7 +52,18 @@
t_his = "her"
t_him = "her"
msg += "<EM>[src.name]</EM>!\n"
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
if (skipjumpsuit && skipface || (species.name in nospecies)) //either obscured or on the nospecies list
msg += "!\n" //omit the species when examining
else if (species.name == "Slime People") //snowflakey because Slime People are defined as a plural
msg += ", a slime person!\n"
else if (species.name == "Unathi") //DAMN YOU, VOWELS
msg += ", a unathi!\n"
else
msg += ", \a [lowertext(species.name)]!\n"
//uniform
if(w_uniform && !skipjumpsuit)
+18 -3
View File
@@ -37,6 +37,8 @@
prev_gender = gender // Debug for plural genders
make_blood()
martial_art = default_martial_art
var/mob/M = src
faction |= "\ref[M]" //what
@@ -1593,24 +1595,37 @@
to_chat(src, "<span class='warning'>You cannot change your monitor or optical display in your current state.</span>")
return
var/obj/item/organ/external/head/head_organ = get_organ("head")
if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) //If the rock'em-sock'em robot's head came off during a fight, they shouldn't be able to change their screen/optics.
to_chat(src, "<span class='warning'>Where's your head at? Can't change your monitor/display without one.</span>")
return
if(species.flags & ALL_RPARTS) //If they can have a fully cybernetic body...
if(client.prefs.rlimb_data["head"]) //If head is present here, that means it's not the default Morpheus. Thus, no screen to adjust. Instead, let them change the colour of their optics!
var/obj/item/organ/external/head/H = organs_by_name["head"]
var/datum/robolimb/robohead = all_robolimbs[H.model]
if(!H)
return
if(!robohead.is_monitor) //If they've got a prosthetic head and it isn't a monitor, they've no screen to adjust. Instead, let them change the colour of their optics!
var/optic_colour = input(src, "Select optic colour", rgb(r_markings, g_markings, b_markings)) as color|null
if(incapacitated())
to_chat(src, "<span class='warning'>You were interrupted while changing the colour of your optics.</span>")
return
if(optic_colour)
r_markings = hex2num(copytext(optic_colour, 2, 4))
g_markings = hex2num(copytext(optic_colour, 4, 6))
b_markings = hex2num(copytext(optic_colour, 6, 8))
update_markings()
else if(!client.prefs.rlimb_data["head"])//Means that the character has the default Morpheus head, which has a screen. Time to customize.
else if(robohead.is_monitor) //Means that the character's head is a monitor (has a screen). Time to customize.
var/list/hair = list()
for(var/i in hair_styles_list)
var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i]
if(species.name in tmp_hair.species_allowed)
if((species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use.
hair += i
var/new_style = input(src, "Select a monitor display", "Monitor Display", h_style) as null|anything in hair
if(incapacitated())
to_chat(src, "<span class='warning'>You were interrupted while changing your monitor display.</span>")
return
if(new_style)
h_style = new_style
@@ -55,6 +55,8 @@
switch(M.a_intent)
if(I_HELP)
if(attacker_style && attacker_style.help_act(H, src))//adminfu only...
return 1
if(can_operate(src))
if(health >= config.health_threshold_crit)
if(src.surgeries.len)
@@ -20,7 +20,7 @@
if(species.can_revive_by_healing)
var/obj/item/organ/internal/brain/B = get_int_organ(/obj/item/organ/internal/brain)
if(B)
if((health >= (config.health_threshold_dead + config.health_threshold_crit) * 0.5) && stat == DEAD)
if((health >= (config.health_threshold_dead + config.health_threshold_crit) * 0.5) && stat == DEAD && getBrainLoss()<120)
update_revive()
if(stat == CONSCIOUS && (src in dead_mob_list)) //Defib fix
update_revive()
@@ -1,3 +1,4 @@
var/global/default_martial_art = new/datum/martial_art
/mob/living/carbon/human
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD)
@@ -396,16 +396,15 @@
faction -= "neutral"
faction += "hostile"
/mob/living/carbon/human/interactive/create_mob_hud()
if(!hud_used)
hud_used = new /datum/hud/human(src)
/mob/living/carbon/human/interactive/New()
..()
snpc_list += src
// setup screen HUD because the game expects user mobs to have zone_sel etc
if(hud_used)
qdel(hud_used) //remove the hud objects
hud_used = null
hud_used = new /datum/hud(src)
hud_used.human_hud()
create_mob_hud()
sync_mind()
random()
+12 -5
View File
@@ -448,9 +448,12 @@
if(status_flags & GODMODE) return 1 //godmode
if(adjusted_pressure >= species.hazard_high_pressure)
var/pressure_damage = min( ( (adjusted_pressure / species.hazard_high_pressure) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE)
take_overall_damage(brute=pressure_damage, used_weapon = "High Pressure")
throw_alert("pressure", /obj/screen/alert/highpressure, 2)
if(!(RESIST_HEAT in mutations))
var/pressure_damage = min( ( (adjusted_pressure / species.hazard_high_pressure) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE)
take_overall_damage(brute=pressure_damage, used_weapon = "High Pressure")
throw_alert("pressure", /obj/screen/alert/highpressure, 2)
else
clear_alert("pressure")
else if(adjusted_pressure >= species.warning_high_pressure)
throw_alert("pressure", /obj/screen/alert/highpressure, 1)
else if(adjusted_pressure >= species.warning_low_pressure)
@@ -469,6 +472,8 @@
/mob/living/carbon/human/handle_fire()
if(..())
return
if(RESIST_HEAT in mutations)
return
var/thermal_protection = 0 //Simple check to estimate how protected we are against multiple temperatures
if(wear_suit)
if(wear_suit.max_heat_protection_temperature >= FIRE_SUIT_MAX_TEMP_PROTECT)
@@ -547,11 +552,13 @@
return thermal_protection_flags
/mob/living/carbon/human/proc/get_heat_protection(temperature) //Temperature is the temperature you're being exposed to.
if(RESIST_HEAT in mutations)
return 1
var/thermal_protection_flags = get_heat_protection_flags(temperature)
var/thermal_protection = 0.0
if(RESIST_HEAT in mutations)
return 1
if(thermal_protection_flags)
if(thermal_protection_flags & HEAD)
thermal_protection += THERMAL_PROTECTION_HEAD
@@ -4,5 +4,4 @@
if(species && species.ventcrawler)
to_chat(src, "<span class='notice'>You can ventcrawl! Use alt+click on vents to quickly travel about the station.</span>")
update_pipe_vision()
update_hud()
return
@@ -186,7 +186,7 @@
H.emote(pick("giggle", "laugh"))
SA.moles = 0
if( (abs(310.15 - breath.temperature) > 50) && !(RESIST_HEAT in H.mutations)) // Hot air hurts :(
if(abs(310.15 - breath.temperature) > 50) // Hot air hurts :(
if(H.status_flags & GODMODE)
return 1 //godmode
if(breath.temperature < cold_level_1)
@@ -333,7 +333,7 @@
return 1
/datum/species/proc/handle_temperature(datum/gas_mixture/breath, var/mob/living/carbon/human/H) // called by human/life, handles temperatures
if( (abs(310.15 - breath.temperature) > 50) && !(RESIST_HEAT in H.mutations)) // Hot air hurts :(
if(abs(310.15 - breath.temperature) > 50) // Hot air hurts :(
if(H.status_flags & GODMODE) return 1 //godmode
if(breath.temperature < cold_level_1)
if(prob(20))
@@ -646,11 +646,11 @@
H.healthdoll.overlays += image('icons/mob/screen_gen.dmi',"[O.limb_name][icon_num]")
switch(H.nutrition)
if(450 to INFINITY)
if(NUTRITION_LEVEL_FULL to INFINITY)
H.throw_alert("nutrition", /obj/screen/alert/fat)
if(350 to 450)
if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL)
H.clear_alert("nutrition")
if(250 to 350)
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.throw_alert("nutrition", /obj/screen/alert/hungry)
else
H.throw_alert("nutrition", /obj/screen/alert/starving)
@@ -72,7 +72,6 @@ There are several things that need to be remembered:
update_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc
update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and
...eyes were merged into update_body)
update_targeted() // Updates the target overlay when someone points a gun at you
> All of these procs update our overlays_lying and overlays_standing, and then call update_icons() by default.
If you wish to update several overlays at once, you can set the argument to 0 to disable the update and call
@@ -124,9 +123,6 @@ Please contact me on #coderbus IRC. ~Carn x
//this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers
//I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date.
/mob/living/carbon/human/update_icons()
update_hud() //TODO: remove the need for this
var/stealth = 0
var/obj/item/clothing/suit/armor/abductor/vest/V // Begin the most snowflakey bullshit code I've ever written. I'm so sorry, but there was no other way.
for(V in list(wear_suit))
@@ -365,6 +361,9 @@ var/global/list/damage_icon_parts = list()
if(m_style && m_style != "None")
var/datum/sprite_accessory/marking_style = marking_styles_list[m_style]
if(marking_style)
var/obj/item/organ/external/head/head_organ = get_organ("head")
if((!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) && marking_style.marking_location == "head")
return //If the head is destroyed and it is the organ the marking is located on, get us out of here. This prevents floating optical markings on decapitated IPCs, for example.
var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s")
if(marking_style.do_colouration)
markings_s.Blend(rgb(r_markings, g_markings, b_markings), ICON_ADD)
@@ -401,7 +400,8 @@ var/global/list/damage_icon_parts = list()
var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s")
if(head_accessory_style.do_colouration)
head_accessory_s.Blend(rgb(r_headacc, g_headacc, b_headacc), ICON_ADD)
head_accessory_standing.Blend(head_accessory_s, ICON_OVERLAY)
head_accessory_standing = head_accessory_s //head_accessory_standing.Blend(head_accessory_s, ICON_OVERLAY)
//Having it this way preserves animations. Useful for animated antennae.
else
//warning("Invalid ha_style for [species.name]: [ha_style]")
@@ -441,7 +441,8 @@ var/global/list/damage_icon_parts = list()
else if(hair_style.do_colouration)
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
hair_standing.Blend(hair_s, ICON_OVERLAY)
hair_standing = hair_s //hair_standing.Blend(hair_s, ICON_OVERLAY)
//Having it this way preserves animations. Useful for IPC screens.
else
//warning("Invalid h_style for [species.name]: [h_style]")
//hair_standing.Blend(debrained_s, ICON_OVERLAY)//how does i overlay for fish?
@@ -506,23 +507,6 @@ var/global/list/damage_icon_parts = list()
add_image = 1
for(var/mut in mutations)
switch(mut)
/*
if(HULK)
if(fat)
standing.underlays += "hulk_[fat]_s"
else
standing.underlays += "hulk_[g]_s"
add_image = 1
if(RESIST_COLD)
standing.underlays += "fire[fat]_s"
add_image = 1
if(RESIST_HEAT)
standing.underlays += "cold[fat]_s"
add_image = 1
if(TK)
standing.underlays += "telekinesishead[fat]_s"
add_image = 1
*/
if(LASER)
standing.overlays += "lasereyes_s"
add_image = 1
@@ -549,15 +533,6 @@ var/global/list/damage_icon_parts = list()
update_fhair(0)
if(update_icons) update_icons()
//Call when target overlay should be added/removed
/mob/living/carbon/human/update_targeted(var/update_icons=1)
if (targeted_by && target_locked)
overlays_standing[TARGETED_LAYER] = target_locked
else if (!targeted_by && target_locked)
qdel(target_locked)
if (!targeted_by)
overlays_standing[TARGETED_LAYER] = null
if(update_icons) update_icons()
/mob/living/carbon/human/update_fire()
remove_overlay(FIRE_LAYER)
@@ -598,15 +573,23 @@ var/global/list/damage_icon_parts = list()
update_inv_wear_pda(0)
UpdateDamageIcon()
update_icons()
//Hud Stuff
update_hud()
update_fire()
/* --------------------------------------- */
//vvvvvv UPDATE_INV PROCS vvvvvv
/mob/living/carbon/human/update_inv_w_uniform(var/update_icons=1)
if(w_uniform && istype(w_uniform, /obj/item/clothing/under) )
w_uniform.screen_loc = ui_iclothing
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_w_uniform]
if(inv)
inv.update_icon()
if(w_uniform && istype(w_uniform, /obj/item/clothing/under))
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
w_uniform.screen_loc = ui_iclothing //...draw the item in the inventory screen
client.screen += w_uniform //Either way, add the item to the HUD
var/t_color = w_uniform.item_color
if(!t_color) t_color = icon_state
var/image/standing = image("icon_state" = "[t_color]_s")
@@ -654,8 +637,17 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_wear_id(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_id]
if(inv)
inv.update_icon()
if(wear_id)
wear_id.screen_loc = ui_id //TODO
if(client && hud_used && hud_used.hud_shown)
wear_id.screen_loc = ui_id
client.screen += wear_id
if(w_uniform && w_uniform:displays_id)
overlays_standing[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id")
else
@@ -666,7 +658,18 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_gloves(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_gloves]
if(inv)
inv.update_icon()
if(gloves)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
gloves.screen_loc = ui_gloves //...draw the item in the inventory screen
client.screen += gloves //Either way, add the item to the HUD
var/t_state = gloves.item_state
if(!t_state) t_state = gloves.icon_state
@@ -695,7 +698,17 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_glasses(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_glasses]
if(inv)
inv.update_icon()
if(glasses)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
glasses.screen_loc = ui_glasses //...draw the item in the inventory screen
client.screen += glasses //Either way, add the item to the HUD
if(glasses.icon_override)
overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]")
@@ -709,8 +722,23 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_ears(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_l_ear]
if(inv)
inv.update_icon()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_r_ear]
if(inv)
inv.update_icon()
if(l_ear || r_ear)
if(l_ear)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
l_ear.screen_loc = ui_l_ear //...draw the item in the inventory screen
client.screen += l_ear //Either way, add the item to the HUD
var/t_type = l_ear.icon_state
if(l_ear.icon_override)
@@ -723,6 +751,10 @@ var/global/list/damage_icon_parts = list()
overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
if(r_ear)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
r_ear.screen_loc = ui_r_ear //...draw the item in the inventory screen
client.screen += r_ear //Either way, add the item to the HUD
var/t_type = r_ear.icon_state
if(r_ear.icon_override)
@@ -739,7 +771,17 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_shoes(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_shoes]
if(inv)
inv.update_icon()
if(shoes)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
shoes.screen_loc = ui_shoes //...draw the item in the inventory screen
client.screen += shoes //Either way, add the item to the HUD
var/image/standing
if(shoes.icon_override)
@@ -765,7 +807,17 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_s_store(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_s_store]
if(inv)
inv.update_icon()
if(s_store)
if(client && hud_used && hud_used.hud_shown)
s_store.screen_loc = ui_sstore1
client.screen += s_store
var/t_state = s_store.item_state
if(!t_state)
t_state = s_store.icon_state
@@ -778,8 +830,13 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_head(var/update_icons=1)
..()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_head]
if(inv)
inv.update_icon()
if(head)
head.screen_loc = ui_head //TODO
var/image/standing
if(head.icon_override)
standing = image("icon" = head.icon_override, "icon_state" = "[head.icon_state]")
@@ -800,8 +857,17 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_belt(var/update_icons=1)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_belt]
if(inv)
inv.update_icon()
if(hud_used.hud_shown && belt)
client.screen += belt
belt.screen_loc = ui_belt
if(belt)
belt.screen_loc = ui_belt //TODO
var/t_state = belt.item_state
if(!t_state) t_state = belt.icon_state
@@ -818,8 +884,17 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1)
if( wear_suit && istype(wear_suit, /obj/item/clothing/suit) ) //TODO check this
wear_suit.screen_loc = ui_oclothing //TODO
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_suit]
if(inv)
inv.update_icon()
if(wear_suit && istype(wear_suit, /obj/item/clothing/suit))
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown) //if the inventory is open ...
wear_suit.screen_loc = ui_oclothing //TODO //...draw the item in the inventory screen
client.screen += wear_suit //Either way, add the item to the HUD
var/image/standing
if(wear_suit.icon_override)
@@ -863,19 +938,44 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_pockets(var/update_icons=1)
if(l_store) l_store.screen_loc = ui_storage1 //TODO
if(r_store) r_store.screen_loc = ui_storage2 //TODO
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_pockets()
if(client && hud_used)
var/obj/screen/inventory/inv
/mob/living/carbon/human/update_inv_wear_pda(var/update_icons=1)
if(wear_pda) wear_pda.screen_loc = ui_pda
if(update_icons) update_icons()
inv = hud_used.inv_slots[slot_l_store]
if(inv)
inv.update_icon()
/mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1)
if( wear_mask && ( istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/accessory) ) )
wear_mask.screen_loc = ui_mask //TODO
inv = hud_used.inv_slots[slot_r_store]
if(inv)
inv.update_icon()
if(hud_used.hud_shown)
if(l_store)
client.screen += l_store
l_store.screen_loc = ui_storage1
if(r_store)
client.screen += r_store
r_store.screen_loc = ui_storage2
/mob/living/carbon/human/update_inv_wear_pda()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_pda]
if(inv)
inv.update_icon()
if(wear_pda)
client.screen += wear_pda
wear_pda.screen_loc = ui_pda
/mob/living/carbon/human/update_inv_wear_mask(var/update_icons = 1)
..()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_mask]
if(inv)
inv.update_icon()
if(wear_mask && (istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/accessory)))
var/image/standing
if(wear_mask.icon_override)
standing = image("icon" = wear_mask.icon_override, "icon_state" = "[wear_mask.icon_state]")
@@ -884,10 +984,10 @@ var/global/list/damage_icon_parts = list()
else
standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]")
if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA )
if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA)
var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "maskblood")
bloodsies.color = wear_mask.blood_color
standing.overlays += bloodsies
standing.overlays += bloodsies
overlays_standing[FACEMASK_LAYER] = standing
else
overlays_standing[FACEMASK_LAYER] = null
@@ -895,9 +995,8 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_back(var/update_icons=1)
..()
if(back)
back.screen_loc = ui_back //TODO
//determine the icon to use
var/icon/standing
if(back.icon_override)
@@ -911,15 +1010,6 @@ var/global/list/damage_icon_parts = list()
else
standing = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]")
/*
//determine state to use
var/overlay_state
if(back.item_state)
overlay_state = back.item_state
else
overlay_state = back.icon_state
*/
//create the image
overlays_standing[BACK_LAYER] = standing
else
@@ -927,37 +1017,14 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
/mob/living/carbon/human/update_hud() //TODO: do away with this if possible
if(client)
for(var/obj/item/I in get_all_slots())
client.screen |= I // Items only please, no arms allowed
if(hud_used)
hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar
update_inv_handcuffed(0) // update handcuff overlay
/mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1)
overlays_standing[HANDCUFF_LAYER] = null
if(handcuffed)
drop_r_hand()
drop_l_hand()
stop_pulling() //TODO: should be handled elsewhere
if(hud_used) //hud handcuff icons
var/obj/screen/inventory/R = hud_used.r_hand_hud_object
var/obj/screen/inventory/L = hud_used.l_hand_hud_object
R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus")
L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle")
if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/pinkcuffs))
overlays_standing[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "pinkcuff1")
else
overlays_standing[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff1")
else
overlays_standing[HANDCUFF_LAYER] = null
if(hud_used)
var/obj/screen/inventory/R = hud_used.r_hand_hud_object
var/obj/screen/inventory/L = hud_used.l_hand_hud_object
R.overlays.Cut()
L.overlays.Cut()
if(update_icons)
update_icons()
@@ -978,36 +1045,57 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_r_hand(var/update_icons=1)
..()
if(r_hand)
r_hand.screen_loc = ui_rhand //TODO
var/t_state = r_hand.item_state
if(!t_state) t_state = r_hand.icon_state
if(!t_state)
t_state = r_hand.icon_state
var/image/I = image("icon" = r_hand.righthand_file, "icon_state"="[t_state]")
var/image/I = image("icon" = r_hand.righthand_file, "icon_state" = "[t_state]")
I = center_image(I, r_hand.inhand_x_dimension, r_hand.inhand_y_dimension)
overlays_standing[R_HAND_LAYER] = I
if (handcuffed) drop_r_hand()
else
overlays_standing[R_HAND_LAYER] = null
if(update_icons) update_icons()
if(update_icons)
update_icons()
/mob/living/carbon/human/update_inv_l_hand(var/update_icons=1)
..()
if(l_hand)
l_hand.screen_loc = ui_lhand //TODO
var/t_state = l_hand.item_state
if(!t_state) t_state = l_hand.icon_state
if(!t_state)
t_state = l_hand.icon_state
var/image/I = image("icon" = l_hand.lefthand_file, "icon_state"="[t_state]")
var/image/I = image("icon" = l_hand.lefthand_file, "icon_state" = "[t_state]")
I = center_image(I, l_hand.inhand_x_dimension, l_hand.inhand_y_dimension)
overlays_standing[L_HAND_LAYER] = I
if (handcuffed) drop_l_hand()
else
overlays_standing[L_HAND_LAYER] = null
if(update_icons) update_icons()
if(update_icons)
update_icons()
//human HUD updates for items in our inventory
//update whether our head item appears on our hud.
/mob/living/carbon/human/update_hud_head(obj/item/I)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown)
I.screen_loc = ui_head
client.screen += I
//update whether our mask item appears on our hud.
/mob/living/carbon/human/update_hud_wear_mask(obj/item/I)
if(client && hud_used && hud_used.hud_shown)
if(hud_used.inventory_shown)
I.screen_loc = ui_mask
client.screen += I
//update whether our back item appears on our hud.
/mob/living/carbon/human/update_hud_back(obj/item/I)
if(client && hud_used && hud_used.hud_shown)
I.screen_loc = ui_back
client.screen += I
/mob/living/carbon/human/proc/update_tail_layer(var/update_icons=1)
@@ -1,4 +0,0 @@
/mob/living/carbon/slime/Login()
..()
update_hud()
return
@@ -107,8 +107,8 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/brown(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/corgisuit(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/corgi(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/corgisuit/super_hero(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/corgi/super_hero(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/weapon/bedsheet/orange(H), slot_back)
@@ -126,8 +126,8 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black/greytide(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/corgisuit/en(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/corgi/en(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/corgisuit/super_hero/en(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/corgi/super_hero/en(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/bedsheet/cult(H), slot_back)
@@ -32,4 +32,59 @@
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life().
/mob/living/carbon/proc/handle_transform_change()
return
//update whether handcuffs appears on our hud.
/mob/living/carbon/proc/update_hud_handcuffed()
if(hud_used)
var/obj/screen/inventory/R = hud_used.inv_slots[slot_r_hand]
var/obj/screen/inventory/L = hud_used.inv_slots[slot_l_hand]
if(R && L)
R.update_icon()
L.update_icon()
/mob/living/carbon/update_inv_r_hand(ignore_cuffs)
if(handcuffed && !ignore_cuffs)
drop_r_hand()
return
if(r_hand)
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.screen_loc = ui_rhand
client.screen += r_hand
/mob/living/carbon/update_inv_l_hand(ignore_cuffs)
if(handcuffed && !ignore_cuffs)
drop_l_hand()
return
if(l_hand)
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.screen_loc = ui_lhand
client.screen += l_hand
/mob/living/carbon/update_inv_wear_mask()
if(istype(wear_mask, /obj/item/clothing/mask))
update_hud_wear_mask(wear_mask)
/mob/living/carbon/update_inv_back()
if(client && hud_used && hud_used.inv_slots[slot_back])
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_back]
inv.update_icon()
if(back)
update_hud_back(back)
/mob/living/carbon/update_inv_head()
if(head)
update_hud_head(head)
//update whether our head item appears on our hud.
/mob/living/carbon/proc/update_hud_head(obj/item/I)
return
//update whether our mask item appears on our hud.
/mob/living/carbon/proc/update_hud_wear_mask(obj/item/I)
return
//update whether our back item appears on our hud.
/mob/living/carbon/proc/update_hud_back(obj/item/I)
return
-1
View File
@@ -15,7 +15,6 @@
if(BRUTE)
adjustBruteLoss(damage * blocked)
if(BURN)
if(RESIST_HEAT in mutations) damage = 0
adjustFireLoss(damage * blocked)
if(TOX)
adjustToxLoss(damage * blocked)
+1 -1
View File
@@ -265,7 +265,7 @@
if(!hud_used) return
if(!client) return
if(hud_used.hud_shown != 1) //Hud toggled to minimal
if(!hud_used.hud_shown)
return
client.screen -= hud_used.hide_actions_toggle
+57 -27
View File
@@ -92,9 +92,6 @@
//sort of a legacy burn method for /electrocute, /shock, and the e_chair
/mob/living/proc/burn_skin(burn_amount)
if(istype(src, /mob/living/carbon/human))
// to_chat(world, "DEBUG: burn_skin(), mutations=[mutations]")
if (RESIST_HEAT in src.mutations) //fireproof
return 0
var/mob/living/carbon/human/H = src //make this damage method divide the damage to be done among all the body parts, then burn each body part for that much damage. will have better effect then just randomly picking a body part
var/divided_damage = (burn_amount)/(H.organs.len)
var/extradam = 0 //added to when organ is at max dam
@@ -688,38 +685,71 @@
gib()
return
/atom/movable/proc/do_attack_animation(atom/A)
/atom/movable/proc/do_attack_animation(atom/A, end_pixel_y)
var/pixel_x_diff = 0
var/pixel_y_diff = 0
var/final_pixel_y = initial(pixel_y)
if(end_pixel_y)
final_pixel_y = end_pixel_y
var/direction = get_dir(src, A)
switch(direction)
if(NORTH)
pixel_y_diff = 8
if(SOUTH)
pixel_y_diff = -8
if(EAST)
pixel_x_diff = 8
if(WEST)
pixel_x_diff = -8
if(NORTHEAST)
pixel_x_diff = 8
pixel_y_diff = 8
if(NORTHWEST)
pixel_x_diff = -8
pixel_y_diff = 8
if(SOUTHEAST)
pixel_x_diff = 8
pixel_y_diff = -8
if(SOUTHWEST)
pixel_x_diff = -8
pixel_y_diff = -8
if(direction & NORTH)
pixel_y_diff = 8
else if(direction & SOUTH)
pixel_y_diff = -8
if(direction & EAST)
pixel_x_diff = 8
else if(direction & WEST)
pixel_x_diff = -8
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2)
animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2)
animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2)
/mob/living/do_attack_animation(atom/A)
..()
var/final_pixel_y = get_standard_pixel_y_offset(lying)
..(A, final_pixel_y)
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement.
// What icon do we use for the attack?
var/image/I
if(hand && l_hand) // Attacked with item in left hand.
I = image(l_hand.icon, A, l_hand.icon_state, A.layer + 1)
else if(!hand && r_hand) // Attacked with item in right hand.
I = image(r_hand.icon, A, r_hand.icon_state, A.layer + 1)
else // Attacked with a fist?
return
// Who can see the attack?
var/list/viewing = list()
for(var/mob/M in viewers(A))
if(M.client && M.client.prefs.show_ghostitem_attack)
viewing |= M.client
flick_overlay(I, viewing, 5) // 5 ticks/half a second
// Scale the icon.
I.transform *= 0.75
// The icon should not rotate.
I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA
// Set the direction of the icon animation.
var/direction = get_dir(src, A)
if(direction & NORTH)
I.pixel_y = -16
else if(direction & SOUTH)
I.pixel_y = 16
if(direction & EAST)
I.pixel_x = -16
else if(direction & WEST)
I.pixel_x = 16
if(!direction) // Attacked self?!
I.pixel_z = 16
// And animate the attack!
animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3)
/atom/movable/proc/receive_damage(atom/A)
var/pixel_x_diff = rand(-3,3)
+8 -7
View File
@@ -5,9 +5,6 @@
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
//Emote Cooldown System (it's so simple!)
// proc/handle_emote_CD() located in [code\modules\mob\emote.dm]
var/on_CD = 0
@@ -15,7 +12,8 @@
//Cooldown-inducing emotes
if("scream", "screams")
on_CD = handle_emote_CD(50) //longer cooldown
if("ping","buzz","beep","yes","no") //halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
if("ping","pings","buzz","buzzs","buzzes","beep","beeps","yes","no")
//halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
//Everything else, including typos of the above emotes
else
@@ -26,7 +24,7 @@
//--FalseIncarnate
switch(act)
if("ping")
if("ping","pings")
var/M = null
if(param)
for (var/mob/A in view(null, null))
@@ -43,7 +41,7 @@
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
m_type = 2
if("buzz")
if("buzz","buzzs","buzzes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
@@ -60,7 +58,7 @@
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
m_type = 2
if("beep")
if("beep","beeps")
var/M = null
if(param)
for (var/mob/A in view(null, null))
@@ -116,4 +114,7 @@
playsound(src.loc, 'sound/goonstation/voice/robot_scream.ogg', 80, 0)
m_type = 2
if("help")
to_chat(src, "yes, no, beep, ping, buzz")
..(act, m_type, message)
+1 -5
View File
@@ -1,6 +1,2 @@
/mob/living/silicon/pai/emote(var/act, var/m_type=1, var/message = null)
switch(act)
if ("help")
to_chat(src, "ping, beep, buzz.")
..(act, m_type, message)
..(act, m_type, message)
@@ -354,7 +354,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
to_chat(O, "\blue <b>A pAI card is looking for personalities. (<a href='?src=\ref[O];jump=\ref[P]'>Teleport</a> | <a href='?src=\ref[src];signup=\ref[O]'>Sign Up</a>)</b>")
//question(O.client)
proc/check_recruit(var/mob/dead/observer/O)
if(jobban_isbanned(O, "pAI") || jobban_isbanned(O,"nonhumandept"))
if(jobban_isbanned(O, ROLE_PAI) || jobban_isbanned(O,"nonhumandept"))
return 0
if(!player_old_enough_antag(O.client,ROLE_PAI))
return 0
@@ -38,10 +38,9 @@
set desc = "Activate a low power omnidirectional LED. Toggled on or off."
set category = "Drone"
if(luminosity)
set_light(0)
return
set_light(2)
if(lamp_intensity)
lamp_intensity = lamp_max // setting this to lamp_max will make control_headlamp shutoff the lamp
control_headlamp()
//Actual picking-up event.
/mob/living/silicon/robot/drone/attack_hand(mob/living/carbon/human/M as mob)
+13 -16
View File
@@ -5,15 +5,12 @@
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
//Emote Cooldown System (it's so simple!)
// proc/handle_emote_CD() located in [code\modules\mob\emote.dm]
var/on_CD = 0
switch(act)
//Cooldown-inducing emotes
if("law","flip","halt") //halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
if("law","flip","flips","halt") //halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
//Everything else, including typos of the above emotes
else
@@ -25,7 +22,7 @@
switch(act)
if ("salute")
if ("salute","salutes")
if (!src.buckled)
var/M = null
if (param)
@@ -41,7 +38,7 @@
else
message = "<B>[src]</b> salutes."
m_type = 1
if ("bow")
if ("bow","bows")
if (!src.buckled)
var/M = null
if (param)
@@ -58,16 +55,16 @@
message = "<B>[src]</B> bows."
m_type = 1
if ("clap")
if ("clap","claps")
if (!src.restrained())
message = "<B>[src]</B> claps."
m_type = 2
if ("flap")
if ("flap","flaps")
if (!src.restrained())
message = "<B>[src]</B> flaps its wings."
m_type = 2
if ("aflap")
if ("aflap","aflaps")
if (!src.restrained())
message = "<B>[src]</B> flaps its wings ANGRILY!"
m_type = 2
@@ -76,11 +73,11 @@
message = "<B>[src]</B> twitches violently."
m_type = 1
if ("twitch_s")
if ("twitch_s","twitches")
message = "<B>[src]</B> twitches."
m_type = 1
if ("nod")
if ("nod","nods")
message = "<B>[src]</B> nods."
m_type = 1
@@ -88,7 +85,7 @@
message = "<B>[src]</B> shudders violently for a moment, then becomes motionless, its eyes slowly darkening."
m_type = 1
if ("glare")
if ("glare","glares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
@@ -103,7 +100,7 @@
else
message = "<B>[src]</B> glares."
if ("stare")
if ("stare","stares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
@@ -118,7 +115,7 @@
else
message = "<B>[src]</B> stares."
if ("look")
if ("look","looks")
var/M = null
if (param)
for (var/mob/A in view(null, null))
@@ -154,12 +151,12 @@
else
to_chat(src, "You are not security.")
if ("flip")
if ("flip","flips")
m_type = 1
message = "<B>[src]</B> does a flip!"
src.SpinAnimation(5,1)
if ("help")
to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt")
to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitches, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look,\n law, halt")
..(act, m_type, message)
@@ -1023,14 +1023,6 @@ var/list/robot_verbs_default = list(
overlays += "minerjetpack-[icon_state]"
update_fire()
//Call when target overlay should be added/removed
/mob/living/silicon/robot/update_targeted()
if(!targeted_by && target_locked)
qdel(target_locked)
update_icons()
if (targeted_by && target_locked)
overlays += target_locked
/mob/living/silicon/robot/proc/installed_modules()
if(weapon_lock)
to_chat(src, "\red Weapon lock active, unable to use modules! Count:[weaponlock_time]")
@@ -306,6 +306,9 @@
if(!locked && !open)
var/obj/item/device/paicard/card = W
if(card.pai && card.pai.mind)
if(!card.pai.ckey || jobban_isbanned(card.pai, ROLE_SENTIENT))
to_chat(user, "<span class='warning'>[W] is unable to establish a connection to [src].</span>")
return
if(!user.drop_item())
return
W.forceMove(src)
@@ -322,7 +325,7 @@
else
to_chat(user, "<span class='warning'>The personality slot is locked.</span>")
else
to_chat(user, "<span class='warning'>[src] is not compatible with [W]</span>")
to_chat(user, "<span class='warning'>[src] is not compatible with [W].</span>")
else if(istype(W, /obj/item/weapon/hemostat) && paicard)
if(open)
to_chat(user, "<span class='warning'>Close the access panel before manipulating the personality slot!</span>")
@@ -144,7 +144,7 @@
if(beegent && isliving(target))
var/mob/living/L = target
if(!isnull(target.reagents))
beegent.reaction_mob(L, TOUCH)
beegent.reaction_mob(L, INGEST)
L.reagents.add_reagent(beegent.id, rand(1,5))
target.attack_animal(src)
@@ -33,6 +33,8 @@
/mob/living/simple_animal/hostile/Life()
. = ..()
if(ranged)
ranged_cooldown--
if(!.)
walk(src, 0)
return 0
@@ -46,8 +48,6 @@
/mob/living/simple_animal/hostile/handle_automated_action()
if(AIStatus == AI_OFF)
return 0
if(ranged)
ranged_cooldown--
var/list/possible_targets = ListTargets() //we look around for potential targets and make it a list for later use.
if(environment_smash)
EscapeConfinement()
+7 -4
View File
@@ -31,12 +31,13 @@
client.images = null //remove the images such as AIs being unable to see runes
client.screen = list() //remove hud items just in case
if(hud_used)
qdel(hud_used) //remove the hud objects
hud_used = null
if(client.click_intercept)
client.click_intercept.quit() // Let's not keep any old click_intercepts
hud_used = new /datum/hud(src)
if(!hud_used)
create_mob_hud()
if(hud_used)
hud_used.show_hud(hud_used.hud_version)
next_move = 1
sight |= SEE_SELF
@@ -70,6 +71,8 @@
//readd this mob's HUDs (antag, med, etc)
reload_huds()
add_click_catcher()
if(viewing_alternate_appearances && viewing_alternate_appearances.len)
for(var/aakey in viewing_alternate_appearances)
var/datum/alternate_appearance/AA = viewing_alternate_appearances[aakey]
+7 -2
View File
@@ -1097,6 +1097,11 @@ var/list/slot_equipment_priority = list( \
/mob/proc/IsAdvancedToolUser()//This might need a rename but it should replace the can this mob use things check
return 0
/mob/proc/swap_hand()
return
/mob/proc/activate_hand(selhand)
return
/mob/proc/Jitter(amount)
jitteriness = max(jitteriness, amount, 0)
@@ -1269,8 +1274,8 @@ mob/proc/yank_out_object()
set name = "Respawn as NPC"
set category = "Ghost"
if(jobban_isbanned(usr, "NPC"))
to_chat(usr, "<span class='warning'>You are banned from playing as NPC's.</span>")
if(jobban_isbanned(usr, ROLE_SENTIENT))
to_chat(usr, "<span class='warning'>You are banned from playing as sentient animals.</span>")
return
if(!ticker || ticker.current_state < 3)
-4
View File
@@ -18,10 +18,6 @@
var/obj/screen/m_select = null
var/obj/screen/healths = null
var/obj/screen/throw_icon = null
var/obj/screen/gun/item/item_use_icon = null
var/obj/screen/gun/move/gun_move_icon = null
var/obj/screen/gun/run/gun_run_icon = null
var/obj/screen/gun/mode/gun_setting_icon = null
/*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
+1
View File
@@ -24,6 +24,7 @@
layer = 21
item_state = "nothing"
icon = 'icons/mob/screen_gen.dmi'
w_class = 5.0
+1 -1
View File
@@ -451,7 +451,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM)
if("left")
a_intent = intent_numeric((intent_numeric(a_intent)+3) % 4)
if(hud_used && hud_used.action_intent)
hud_used.action_intent.icon_state = "intent_[a_intent]"
hud_used.action_intent.icon_state = "[a_intent]"
else if(isrobot(src) || islarva(src))
switch(input)
+2 -6
View File
@@ -149,11 +149,8 @@
winset(src, "mapwindow.map", "icon-size=[src.reset_stretch]")
viewingCanvas = 0
mob.reset_view()
mob.button_pressed_F12()
if(!mob.hud_used.hud_shown)
mob.button_pressed_F12()
mob.update_hud()
mob.update_action_buttons()
if(mob.hud_used)
mob.hud_used.show_hud(HUD_STYLE_STANDARD)
if(mob.control_object) Move_object(direct)
@@ -240,7 +237,6 @@
move_delay = world.time//set move delay
move_delay += T.slowdown
mob.last_movement = world.time
mob.last_move_intent = world.time + 10
switch(mob.m_intent)
if("run")
if(mob.drowsyness > 0)
+128 -23
View File
@@ -43,6 +43,8 @@
// Restrict some styles to specific species
var/list/species_allowed = list("Human", "Slime People")
var/models_allowed = list() //Specifies which, if any, hairstyles can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm.
var/marking_location //Specifies which bodypart a body marking is located on.
// Whether or not the accessory can be affected by colouration
var/do_colouration = 1
@@ -57,7 +59,6 @@
*/
/datum/sprite_accessory/hair
icon = 'icons/mob/human_face.dmi' // default icon for all hairs
bald
@@ -379,105 +380,169 @@
//////END VG HAIRSTYLES///////
//////////////////////////////
ipc_screen_pink
name = "pink IPC screen"
name = "Pink IPC Screen"
icon_state = "ipc_pink"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_red
name = "red IPC screen"
name = "Red IPC Screen"
icon_state = "ipc_red"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_green
name = "green IPC screen"
name = "Green IPC Screen"
icon_state = "ipc_green"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_blue
name = "blue IPC screen"
name = "Blue IPC Screen"
icon_state = "ipc_blue"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_breakout
name = "breakout IPC screen"
name = "Breakout IPC Screen"
icon_state = "ipc_breakout"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_eight
name = "eight IPC screen"
name = "Eight IPC Screen"
icon_state = "ipc_eight"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_rainbow
name = "rainbow IPC screen"
name = "Rainbow IPC Screen"
icon_state = "ipc_rainbow"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_goggles
name = "goggles IPC screen"
name = "Goggles IPC Screen"
icon_state = "ipc_goggles"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_heart
name = "heart IPC screen"
name = "Heart IPC Screen"
icon_state = "ipc_heart"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_monoeye
name = "monoeye IPC screen"
name = "Monoeye IPC Screen"
icon_state = "ipc_monoeye"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_nature
name = "nature IPC screen"
name = "Nature IPC Screen"
icon_state = "ipc_nature"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_orange
name = "orange IPC screen"
name = "Orange IPC Screen"
icon_state = "ipc_orange"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_purple
name = "purple IPC screen"
name = "Purple IPC Screen"
icon_state = "ipc_purple"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_shower
name = "shower IPC screen"
name = "Shower IPC Screen"
icon_state = "ipc_shower"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_static
name = "static IPC screen"
name = "Static IPC Screen"
icon_state = "ipc_static"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_yellow
name = "yellow IPC screen"
name = "Yellow IPC Screen"
icon_state = "ipc_yellow"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_scrolling
name = "scanline IPC screen"
name = "Scanline IPC Screen"
icon_state = "ipc_scroll"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_console
name = "console IPC screen"
name = "Console IPC Screen"
icon_state = "ipc_console"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_rgb
name = "rgb IPC screen"
name = "RGB IPC Screen"
icon_state = "ipc_rgb"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
ipc_screen_glider
name = "glider IPC screen"
name = "Glider IPC Screen"
icon_state = "ipc_gol_glider"
species_allowed = list("Machine")
models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.")
hesphiastos_alt_off
name = "Dark Hesphiastos Screen"
icon_state = "hesphiastos_alt_off"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_pink
name = "Pink Hesphiastos Screen"
icon_state = "hesphiastos_alt_pink"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_orange
name = "Orange Hesphiastos Screen"
icon_state = "hesphiastos_alt_orange"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_goggle
name = "Goggles Hesphiastos Screen"
icon_state = "hesphiastos_alt_goggles"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_scroll
name = "Scrolling Hesphiastos Screen"
icon_state = "hesphiastos_alt_scroll"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_rgb
name = "RGB Hesphiastos Screen"
icon_state = "hesphiastos_alt_rgb"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
hesphiastos_alt_rainbow
name = "Rainbow Hesphiastos Screen"
icon_state = "hesphiastos_alt_rainbow"
species_allowed = list("Machine")
models_allowed = list("Hesphiastos Industries alt.")
/*
///////////////////////////////////
@@ -496,8 +561,7 @@
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Machine", "Vulpkanin", "Slime People")
species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Vulpkanin", "Slime People")
watson
name = "Watson Mustache"
@@ -1785,6 +1849,21 @@
icon_state = "antennae"
species_allowed = list("Machine")
/datum/sprite_accessory/head_accessory/ipc_tv_antennae
name = "T.V. Antennae"
icon_state = "tvantennae"
species_allowed = list("Machine")
/datum/sprite_accessory/head_accessory/ipc_tesla_antennae
name = "Tesla Antennae"
icon_state = "tesla"
species_allowed = list("Machine")
/datum/sprite_accessory/head_accessory/ipc_light
name = "Head Light"
icon_state = "light"
species_allowed = list("Machine")
/* BODY MARKINGS */
@@ -1832,6 +1911,32 @@
name = "Humanoid Optics"
species_allowed = list("Machine")
icon_state = "optics"
models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm
marking_location = "head"
/datum/sprite_accessory/body_markings/optics/bishop_alt
name = "Bishop Alt. Optics"
species_allowed = list("Machine")
icon_state = "bishop_alt_optics"
models_allowed = list("Bishop Cybernetics alt.")
/datum/sprite_accessory/body_markings/optics/morpheus_alt
name = "Morpheus Alt. Optics"
species_allowed = list("Machine")
icon_state = "morpheus_alt_optics"
models_allowed = list("Morpheus Cyberkinetics alt.")
/datum/sprite_accessory/body_markings/optics/wardtakahashi_alt
name = "Ward-Takahashi Alt. Optics"
species_allowed = list("Machine")
icon_state = "wardtakahashi_alt_optics"
models_allowed = list("Ward-Takahashi alt.")
/datum/sprite_accessory/body_markings/optics/xion_alt
name = "Xion Alt. Optics"
species_allowed = list("Machine")
icon_state = "xion_alt_optics"
models_allowed = list("Xion Manufacturing Group alt.")
/datum/sprite_accessory/body_markings/tattoo // Tattoos applied post-round startup with tattoo guns in item_defines.dm
name = "base tattoo"
+2 -2
View File
@@ -346,10 +346,10 @@
if(ispath(MP, /mob/living/simple_animal/butterfly))
return 1
if(ispath(MP, /mob/living/simple_animal/borer) && !jobban_isbanned(src, "alien") && !jobban_isbanned(src, "Syndicate"))
if(ispath(MP, /mob/living/simple_animal/borer) && !jobban_isbanned(src, ROLE_BORER) && !jobban_isbanned(src, "Syndicate"))
return 1
if(ispath(MP, /mob/living/simple_animal/diona) && !jobban_isbanned(src, "Dionaea"))
if(ispath(MP, /mob/living/simple_animal/diona) && !jobban_isbanned(src, ROLE_NYMPH))
return 1
return 0
+1 -7
View File
@@ -7,9 +7,6 @@
/mob/proc/update_icons()
return
/mob/proc/update_hud()
return
/mob/proc/update_inv_handcuffed()
return
@@ -61,14 +58,11 @@
/mob/proc/update_inv_pockets()
return
mob/proc/update_inv_wear_pda()
/mob/proc/update_inv_wear_pda()
return
/mob/proc/update_inv_ears()
return
/mob/proc/update_targeted()
return
/mob/proc/update_transform()
return