mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-30 07:27:57 +01:00
Merge branch 'master' into tcomms-overhaul
This commit is contained in:
@@ -926,9 +926,10 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
|
||||
return initial(pixel_y)
|
||||
|
||||
/mob/living/carbon/emp_act(severity)
|
||||
for(var/obj/item/organ/internal/O in internal_organs)
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
for(var/X in internal_organs)
|
||||
var/obj/item/organ/internal/O = X
|
||||
O.emp_act(severity)
|
||||
|
||||
/mob/living/carbon/Stat()
|
||||
..()
|
||||
|
||||
@@ -206,12 +206,6 @@ emp_act
|
||||
if(martial_art && prob(martial_art.block_chance) && martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE))
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/emp_act(severity)
|
||||
for(var/obj/O in src)
|
||||
if(!O) continue
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) //todo: update this to utilize check_obscured_slots() //and make sure it's check_obscured_slots(TRUE) to stop aciding through visors etc
|
||||
var/list/damaged = list()
|
||||
var/list/inventory_items_to_kill = list()
|
||||
|
||||
@@ -810,7 +810,9 @@
|
||||
|
||||
handle_organs()
|
||||
|
||||
if(getBrainLoss() >= 120 || (health + (getOxyLoss() / 2)) <= -500)
|
||||
var/guaranteed_death_threshold = health + (getOxyLoss() * 0.5) - (getFireLoss() * 0.67) - (getBruteLoss() * 0.67)
|
||||
|
||||
if(getBrainLoss() >= 120 || (guaranteed_death_threshold) <= -500)
|
||||
death()
|
||||
return
|
||||
|
||||
|
||||
@@ -273,8 +273,6 @@
|
||||
|
||||
if(H.status_flags & GOTTAGOFAST)
|
||||
. -= 1
|
||||
if(H.status_flags & GOTTAGOFAST_METH)
|
||||
. -= 1
|
||||
return .
|
||||
|
||||
/datum/species/proc/on_species_gain(mob/living/carbon/human/H) //Handles anything not already covered by basic species assignment.
|
||||
|
||||
@@ -1290,15 +1290,12 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
|
||||
apply_overlay(MISC_LAYER)
|
||||
|
||||
/mob/living/carbon/human/admin_Freeze(client/admin, skip_overlays = TRUE)
|
||||
. = ..()
|
||||
overlays_standing[FROZEN_LAYER] = mutable_appearance(frozen, layer = -FROZEN_LAYER)
|
||||
apply_overlay(FROZEN_LAYER)
|
||||
|
||||
/mob/living/carbon/human/admin_unFreeze(client/admin, skip_overlays = TRUE)
|
||||
. = ..()
|
||||
remove_overlay(FROZEN_LAYER)
|
||||
|
||||
/mob/living/carbon/human/admin_Freeze(client/admin, skip_overlays = TRUE, mech = null)
|
||||
if(..())
|
||||
overlays_standing[FROZEN_LAYER] = mutable_appearance(frozen, layer = -FROZEN_LAYER)
|
||||
apply_overlay(FROZEN_LAYER)
|
||||
else
|
||||
remove_overlay(FROZEN_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/force_update_limbs()
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
|
||||
@@ -73,10 +73,9 @@
|
||||
return shock_damage
|
||||
|
||||
/mob/living/emp_act(severity)
|
||||
var/list/L = src.get_contents()
|
||||
for(var/obj/O in L)
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
for(var/obj/O in contents)
|
||||
O.emp_act(severity)
|
||||
|
||||
/obj/item/proc/get_volume_by_throwforce_and_or_w_class()
|
||||
if(throwforce && w_class)
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
var/on_fire = 0 //The "Are we on fire?" var
|
||||
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20
|
||||
|
||||
var/implanting = 0 //Used for the mind-slave implant
|
||||
var/floating = 0
|
||||
var/mob_size = MOB_SIZE_HUMAN
|
||||
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
|
||||
@@ -61,7 +60,6 @@
|
||||
var/list/say_log = list() //a log of what we've said, plain text, no spans or junk, essentially just each individual "message"
|
||||
var/list/emote_log = list() //like say_log but for emotes
|
||||
|
||||
var/list/recent_tastes = list()
|
||||
var/blood_volume = 0 //how much blood the mob has
|
||||
hud_possible = list(HEALTH_HUD,STATUS_HUD,SPECIALROLE_HUD)
|
||||
|
||||
|
||||
@@ -571,13 +571,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/ai/emp_act(severity)
|
||||
..()
|
||||
if(prob(30))
|
||||
switch(pick(1,2))
|
||||
if(1)
|
||||
view_core()
|
||||
if(2)
|
||||
ai_call_shuttle()
|
||||
..()
|
||||
|
||||
/mob/living/silicon/ai/ex_act(severity)
|
||||
..()
|
||||
|
||||
@@ -137,9 +137,9 @@
|
||||
..()
|
||||
|
||||
/mob/living/silicon/robot/syndicate/saboteur/emp_act()
|
||||
..()
|
||||
if(cham_proj)
|
||||
cham_proj.disrupt(src)
|
||||
..()
|
||||
|
||||
/mob/living/silicon/robot/syndicate/saboteur/bullet_act()
|
||||
if(cham_proj)
|
||||
|
||||
@@ -76,17 +76,17 @@
|
||||
return FALSE //So borgs they don't die trying to fix wiring
|
||||
|
||||
/mob/living/silicon/emp_act(severity)
|
||||
..()
|
||||
switch(severity)
|
||||
if(1)
|
||||
src.take_organ_damage(20)
|
||||
take_organ_damage(20)
|
||||
Stun(8)
|
||||
if(2)
|
||||
src.take_organ_damage(10)
|
||||
take_organ_damage(10)
|
||||
Stun(3)
|
||||
flash_eyes(affect_silicon = 1)
|
||||
to_chat(src, "<span class='danger'>*BZZZT*</span>")
|
||||
to_chat(src, "<span class='warning'>Warning: Electromagnetic pulse detected.</span>")
|
||||
..()
|
||||
|
||||
|
||||
/mob/living/silicon/proc/damage_mob(var/brute = 0, var/fire = 0, var/tox = 0)
|
||||
|
||||
@@ -202,6 +202,20 @@
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
// Consumes plant matter other than weeds to evolve
|
||||
/mob/living/simple_animal/diona/proc/consume(obj/item/reagent_containers/food/snacks/grown/G)
|
||||
if(nutrition >= nutrition_need) // Prevents griefing by overeating plant items without evolving.
|
||||
to_chat(src, "<span class='warning'>You're too full to consume this! Perhaps it's time to grow bigger...</span>")
|
||||
else
|
||||
if(do_after_once(src, 20, target = G))
|
||||
visible_message("[src] ravenously consumes [G].", "You ravenously devour [G].")
|
||||
playsound(loc, 'sound/items/eatfood.ogg', 30, 0, frequency = 1.5)
|
||||
if(G.reagents.get_reagent_amount("nutriment") + G.reagents.get_reagent_amount("plantmatter") < 1)
|
||||
adjust_nutrition(2)
|
||||
else
|
||||
adjust_nutrition((G.reagents.get_reagent_amount("nutriment") + G.reagents.get_reagent_amount("plantmatter")) * 2)
|
||||
qdel(G)
|
||||
|
||||
/mob/living/simple_animal/diona/proc/steal_blood()
|
||||
if(stat != CONSCIOUS)
|
||||
return FALSE
|
||||
|
||||
@@ -25,23 +25,23 @@
|
||||
var/list/human_overlays = list()
|
||||
|
||||
/mob/living/simple_animal/hostile/headcrab/Life(seconds, times_fired)
|
||||
if(!is_zombie && isturf(src.loc) && stat != DEAD)
|
||||
for(var/mob/living/carbon/human/H in oview(src, 1)) //Only for corpse right next to/on same tile
|
||||
if(H.stat == DEAD || (!H.check_death_method() && H.health <= HEALTH_THRESHOLD_DEAD))
|
||||
Zombify(H)
|
||||
break
|
||||
var/cycles = 4
|
||||
if(cycles >= 4)
|
||||
for(var/mob/living/simple_animal/K in oview(src, 1)) //Only for corpse right next to/on same tile
|
||||
if(K.stat == DEAD || (!K.check_death_method() && K.health <= HEALTH_THRESHOLD_DEAD))
|
||||
visible_message("<span class='danger'>[src] consumes [target] whole!</span>")
|
||||
if(health < maxHealth)
|
||||
health += 10
|
||||
qdel(K)
|
||||
break
|
||||
cycles = 0
|
||||
cycles++
|
||||
..()
|
||||
if(..())
|
||||
if(!is_zombie && isturf(src.loc))
|
||||
for(var/mob/living/carbon/human/H in oview(src, 1)) //Only for corpse right next to/on same tile
|
||||
if(H.stat == DEAD || (!H.check_death_method() && H.health <= HEALTH_THRESHOLD_DEAD))
|
||||
Zombify(H)
|
||||
break
|
||||
var/cycles = 4
|
||||
if(cycles >= 4)
|
||||
for(var/mob/living/simple_animal/K in oview(src, 1)) //Only for corpse right next to/on same tile
|
||||
if(K.stat == DEAD || (!K.check_death_method() && K.health <= HEALTH_THRESHOLD_DEAD))
|
||||
visible_message("<span class='danger'>[src] consumes [target] whole!</span>")
|
||||
if(health < maxHealth)
|
||||
health += 10
|
||||
qdel(K)
|
||||
break
|
||||
cycles = 0
|
||||
cycles++
|
||||
|
||||
/mob/living/simple_animal/hostile/headcrab/OpenFire(atom/A)
|
||||
if(check_friendly_fire)
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
var/memory = ""
|
||||
var/next_move = null
|
||||
var/notransform = null //Carbon
|
||||
var/other = 0.0
|
||||
var/hand = null
|
||||
var/real_name = null
|
||||
var/flavor_text = ""
|
||||
@@ -63,12 +62,10 @@
|
||||
var/name_archive //For admin things like possession
|
||||
|
||||
var/timeofdeath = 0.0//Living
|
||||
var/cpr_time = 1.0//Carbon
|
||||
|
||||
|
||||
var/bodytemperature = 310.055 //98.7 F
|
||||
var/flying = 0
|
||||
var/charges = 0.0
|
||||
var/nutrition = NUTRITION_LEVEL_FED + 50 //Carbon
|
||||
var/satiety = 0 //Carbon
|
||||
var/hunger_drain = HUNGER_FACTOR // how quickly the mob gets hungry; largely utilized by species.
|
||||
@@ -91,8 +88,6 @@
|
||||
var/obj/item/storage/s_active = null//Carbon
|
||||
var/obj/item/clothing/mask/wear_mask = null//Carbon
|
||||
|
||||
var/seer = 0 //for cult//Carbon, probably Human
|
||||
|
||||
var/datum/hud/hud_used = null
|
||||
|
||||
hud_possible = list(SPECIALROLE_HUD)
|
||||
@@ -168,7 +163,6 @@
|
||||
var/remote_view = 0 // Set to 1 to prevent view resets on Life
|
||||
|
||||
var/obj/control_object //Used by admins to possess objects. All mobs should have this var
|
||||
var/datum/visibility_interface/visibility_interface = null // used by the visibility system to provide an interface for the visibility networks
|
||||
|
||||
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything.
|
||||
var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
|
||||
|
||||
Reference in New Issue
Block a user