mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Makes Xenobiology Simpler. Removes Slimes (#12398)
This commit is contained in:
committed by
variableundefined
parent
69e3a08a06
commit
cb8529cdb8
@@ -471,7 +471,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
to_chat(user, "<span class='danger'>You're going to need to remove that mask/helmet/glasses first!</span>")
|
||||
return
|
||||
|
||||
if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N slimes also don't have eyes!
|
||||
if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/simple_animal/slime))//Aliens don't have eyes./N slimes also don't have eyes!
|
||||
to_chat(user, "<span class='warning'>You cannot locate any eyes on this creature!</span>")
|
||||
return
|
||||
|
||||
|
||||
@@ -547,39 +547,46 @@ proc/healthscan(mob/user, mob/living/M, mode = 1, upgraded = FALSE)
|
||||
throw_range = 7
|
||||
materials = list(MAT_METAL=30, MAT_GLASS=20)
|
||||
|
||||
/obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
slime_scan(M, user)
|
||||
|
||||
/proc/slime_scan(mob/living/carbon/slime/M, mob/living/user)
|
||||
if(!isslime(M))
|
||||
user.show_message("<span class='warning'>This device can only scan slimes!</span>", 1)
|
||||
/obj/item/slime_scanner/attack(mob/living/M, mob/living/user)
|
||||
if(user.incapacitated() || user.eye_blind)
|
||||
return
|
||||
var/mob/living/carbon/slime/T = M
|
||||
user.show_message("Slime scan results:", 1)
|
||||
user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby"), 1)
|
||||
user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition()), 1)
|
||||
if(!isslime(M))
|
||||
to_chat(user, "<span class='warning'>This device can only scan slimes!</span>")
|
||||
return
|
||||
var/mob/living/simple_animal/slime/T = M
|
||||
slime_scan(T, user)
|
||||
|
||||
/proc/slime_scan(mob/living/simple_animal/slime/T, mob/living/user)
|
||||
to_chat(user, "========================")
|
||||
to_chat(user, "<b>Slime scan results:</b>")
|
||||
to_chat(user, "<span class='notice'>[T.colour] [T.is_adult ? "adult" : "baby"] slime</span>")
|
||||
to_chat(user, "Nutrition: [T.nutrition]/[T.get_max_nutrition()]")
|
||||
if(T.nutrition < T.get_starve_nutrition())
|
||||
user.show_message("<span class='warning'>Warning: slime is starving!</span>", 1)
|
||||
to_chat(user, "<span class='warning'>Warning: slime is starving!</span>")
|
||||
else if(T.nutrition < T.get_hunger_nutrition())
|
||||
user.show_message("<span class='warning'>Warning: slime is hungry</span>", 1)
|
||||
user.show_message("Electric change strength: [T.powerlevel]", 1)
|
||||
user.show_message("Health: [T.health]", 1)
|
||||
to_chat(user, "<span class='warning'>Warning: slime is hungry</span>")
|
||||
to_chat(user, "Electric change strength: [T.powerlevel]")
|
||||
to_chat(user, "Health: [round(T.health/T.maxHealth,0.01)*100]%")
|
||||
if(T.slime_mutation[4] == T.colour)
|
||||
user.show_message("This slime does not evolve any further.", 1)
|
||||
to_chat(user, "This slime does not evolve any further.")
|
||||
else
|
||||
if(T.slime_mutation[3] == T.slime_mutation[4])
|
||||
if(T.slime_mutation[2] == T.slime_mutation[1])
|
||||
user.show_message("Possible mutation: [T.slime_mutation[3]]", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance/2]% chance of mutation on splitting", 1)
|
||||
to_chat(user, "Possible mutation: [T.slime_mutation[3]]")
|
||||
to_chat(user, "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting")
|
||||
else
|
||||
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1)
|
||||
to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)")
|
||||
to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting")
|
||||
else
|
||||
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1)
|
||||
to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]")
|
||||
to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting")
|
||||
if(T.cores > 1)
|
||||
user.show_message("Anomalous slime core amount detected", 1)
|
||||
user.show_message("Growth progress: [T.amount_grown]/10", 1)
|
||||
to_chat(user, "Multiple cores detected")
|
||||
to_chat(user, "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]")
|
||||
if(T.effectmod)
|
||||
to_chat(user, "<span class='notice'>Core mutation in progress: [T.effectmod]</span>")
|
||||
to_chat(user, "<span class='notice'>Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]</span>")
|
||||
to_chat(user, "========================")
|
||||
|
||||
/obj/item/bodyanalyzer
|
||||
name = "handheld body analyzer"
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
return
|
||||
var/mob/M = G.affecting
|
||||
if(M.has_buckled_mobs())
|
||||
to_chat(usr, "[M] will not fit into [src] because [M.p_they()] [M.p_have()] a slime latched onto [M.p_their()] head.")
|
||||
to_chat(user, "[M] will not fit into [src] because [M.p_they()] [M.p_have()] a slime latched onto [M.p_their()] head.")
|
||||
return
|
||||
if(put_mob(M))
|
||||
qdel(G)
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
if(user && user.buckled)
|
||||
user.buckled.unbuckle_mob(user, force = TRUE)
|
||||
|
||||
if(user && user.has_buckled_mobs())
|
||||
user.unbuckle_all_mobs(force = TRUE)
|
||||
|
||||
var/list/tempL = L
|
||||
var/attempt = null
|
||||
var/success = 0
|
||||
|
||||
@@ -126,10 +126,10 @@
|
||||
if(. && !play_soundeffect)
|
||||
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
|
||||
|
||||
/obj/attack_slime(mob/living/carbon/slime/user)
|
||||
/obj/attack_slime(mob/living/simple_animal/slime/user)
|
||||
if(!user.is_adult)
|
||||
return
|
||||
attack_generic(user, rand(10, 15), "melee", 1)
|
||||
attack_generic(user, rand(10, 15), BRUTE, "melee", 1)
|
||||
|
||||
/obj/mech_melee_attack(obj/mecha/M)
|
||||
M.do_attack_animation(src)
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
continue
|
||||
if(istype(M, /mob/living/simple_animal/bot/mulebot))
|
||||
continue
|
||||
if(M.buckled || M.anchored)
|
||||
if(M.buckled || M.anchored || M.has_buckled_mobs())
|
||||
continue
|
||||
|
||||
M.forceMove(src)
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
attack_generic(M, M.melee_damage_upper)
|
||||
|
||||
/obj/structure/inflatable/attack_slime(mob/user as mob)
|
||||
var/mob/living/carbon/slime/S = user
|
||||
var/mob/living/simple_animal/slime/S = user
|
||||
if(!S.is_adult)
|
||||
return
|
||||
attack_generic(user, rand(10, 15))
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
|
||||
/obj/structure/mirror/attack_slime(mob/living/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/mob/living/carbon/slime/S = user
|
||||
var/mob/living/simple_animal/slime/S = user
|
||||
if(!S.is_adult)
|
||||
return
|
||||
user.do_attack_animation(src)
|
||||
@@ -153,7 +153,7 @@
|
||||
H.dna.real_name = newname
|
||||
if(H.mind)
|
||||
H.mind.name = newname
|
||||
|
||||
|
||||
if(newname)
|
||||
curse(user)
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
if(voice_choice)
|
||||
curse(user)
|
||||
|
||||
|
||||
/obj/structure/mirror/magic/on_ui_close(mob/user)
|
||||
curse(user)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user