Makes Xenobiology Simpler. Removes Slimes (#12398)

This commit is contained in:
Fox McCloud
2019-09-24 16:17:33 -07:00
committed by variableundefined
parent 69e3a08a06
commit cb8529cdb8
81 changed files with 1774 additions and 1903 deletions
@@ -48,7 +48,7 @@
/obj/machinery/computer/camera_advanced/xenobio/Destroy()
QDEL_NULL(current_potion)
for(var/mob/living/carbon/slime/S in stored_slimes)
for(var/mob/living/simple_animal/slime/S in stored_slimes)
S.forceMove(drop_location())
stored_slimes.Cut()
return ..()
@@ -173,7 +173,7 @@
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/carbon/slime/S in X.stored_slimes)
for(var/mob/living/simple_animal/slime/S in X.stored_slimes)
S.forceMove(remote_eye.loc)
S.visible_message("[S] warps in!")
X.stored_slimes -= S
@@ -192,14 +192,13 @@
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/carbon/slime/S in remote_eye.loc)
for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
if(X.stored_slimes.len >= X.max_slimes)
break
if(!S.ckey)
if(S.buckled)
S.buckled.unbuckle_mob(S, force = TRUE)
S.Feedstop()
S.visible_message("[S] vanishes in a flash of light!")
S.Feedstop(silent = TRUE)
S.visible_message("<span class='notice'>[S] vanishes in a flash of light!</span>")
S.forceMove(X)
X.stored_slimes += S
else
@@ -265,7 +264,7 @@
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
if(cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/carbon/slime/S in remote_eye.loc)
for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
slime_scan(S, C)
else
to_chat(owner, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
@@ -287,7 +286,7 @@
return
if(cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/carbon/slime/S in remote_eye.loc)
for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
X.current_potion.attack(S, C)
break
else
@@ -310,17 +309,17 @@
// Alternate clicks for slime, monkey and open turf if using a xenobio console
// Scans slime
/mob/living/carbon/slime/CtrlClick(mob/user)
/mob/living/simple_animal/slime/CtrlClick(mob/user)
SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_CTRL, src)
..()
//Feeds a potion to slime
/mob/living/carbon/slime/AltClick(mob/user)
/mob/living/simple_animal/slime/AltClick(mob/user)
SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_ALT, src)
..()
//Picks up slime
/mob/living/carbon/slime/ShiftClick(mob/user)
/mob/living/simple_animal/slime/ShiftClick(mob/user)
SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_SHIFT, src)
..()
@@ -341,7 +340,7 @@
..()
// Scans slime
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickCtrl(mob/living/user, mob/living/carbon/slime/S)
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickCtrl(mob/living/user, mob/living/simple_animal/slime/S)
if(!cameranet.checkTurfVis(S.loc))
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
return
@@ -352,7 +351,7 @@
slime_scan(S, C)
//Feeds a potion to slime
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/carbon/slime/S)
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/simple_animal/slime/S)
if(!cameranet.checkTurfVis(S.loc))
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
return
@@ -367,7 +366,7 @@
X.current_potion.attack(S, C)
//Picks up slime
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/carbon/slime/S)
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/simple_animal/slime/S)
if(!cameranet.checkTurfVis(S.loc))
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
return
@@ -377,14 +376,16 @@
var/area/mobarea = get_area(S.loc)
if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible)
if(X.stored_slimes.len >= X.max_slimes)
to_chat(C, "<span class='warning'>Slime storage is full.</span>")
return
if(!S.ckey)
if(S.buckled)
S.buckled.unbuckle_mob(S, force = TRUE)
S.Feedstop()
S.visible_message("[S] vanishes in a flash of light!")
S.forceMove(X)
X.stored_slimes += S
if(S.ckey)
to_chat(C, "<span class='warning'>The slime wiggled free!</span>")
return
if(S.buckled)
S.Feedstop(silent = TRUE)
S.visible_message("<span class='notice'>[S] vanishes in a flash of light!</span>")
S.forceMove(X)
X.stored_slimes += S
//Place slimes
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickShift(mob/living/user, turf/T)
@@ -396,9 +397,9 @@
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
var/area/turfarea = get_area(T)
if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible)
for(var/mob/living/carbon/slime/S in X.stored_slimes)
for(var/mob/living/simple_animal/slime/S in X.stored_slimes)
S.forceMove(T)
S.visible_message("[S] warps in!")
S.visible_message("<span class='notice'>[S] warps in!</span>")
X.stored_slimes -= S
//Place monkey
@@ -139,7 +139,7 @@
icon_state = "bottle19"
var/being_used = 0
/obj/item/slimepotion/slime/docility/attack(mob/living/carbon/slime/M, mob/user)
/obj/item/slimepotion/slime/docility/attack(mob/living/simple_animal/slime/M, mob/user)
if(!isslime(M))
to_chat(user, "<span class='warning'>The potion only works on slimes!</span>")
return
@@ -149,7 +149,12 @@
if(being_used)
to_chat(user, "<span class='warning'>You're already using this on another slime!</span>")
return
if(M.rabid) //Stops being rabid, but doesn't become truly docile.
to_chat(M, "<span class='warning'>You absorb the potion, and your rabid hunger finally settles to a normal desire to feed.</span>")
to_chat(user, "<span class='notice'>You feed the slime the potion, calming its rabid rage.</span>")
M.rabid = FALSE
qdel(src)
return
M.docile = 1
M.set_nutrition(700)
to_chat(M, "<span class='warning'>You absorb the potion and feel your intense desire to feed melt away.</span>")
@@ -272,7 +277,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle16"
/obj/item/slimepotion/slime/steroid/attack(mob/living/carbon/slime/M, mob/user)
/obj/item/slimepotion/slime/steroid/attack(mob/living/simple_animal/slime/M, mob/user)
if(!isslime(M))//If target is not a slime.
to_chat(user, "<span class='warning'>The steroid only works on baby slimes!</span>")
return ..()
@@ -302,7 +307,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle15"
/obj/item/slimepotion/slime/stabilizer/attack(mob/living/carbon/slime/M, mob/user)
/obj/item/slimepotion/slime/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user)
if(!isslime(M))
to_chat(user, "<span class='warning'>The stabilizer only works on slimes!</span>")
return ..()
@@ -323,7 +328,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
/obj/item/slimepotion/slime/mutator/attack(mob/living/carbon/slime/M, mob/user)
/obj/item/slimepotion/slime/mutator/attack(mob/living/simple_animal/slime/M, mob/user)
if(!isslime(M))
to_chat(user, "<span class='warning'>The mutator only works on slimes!</span>")
return ..()