mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Made MMIs examine text show if they are locked or unlocked. Move the size examine text to the same line as the name. Made mmis/posibrains drop parts used for creating mommis that you have added to them when added to a robot. Made turfs not lose or gain gases when you change their turf.
This commit is contained in:
@@ -282,7 +282,7 @@ its easier to just keep the beam vertical.
|
||||
|
||||
//Woo hoo. Overtime
|
||||
//All atoms
|
||||
/atom/proc/examine(mob/user)
|
||||
/atom/proc/examine(mob/user, var/size = "")
|
||||
//This reformat names to get a/an properly working on item descriptions when they are bloody
|
||||
var/f_name = "\a [src]."
|
||||
if(src.blood_DNA)
|
||||
@@ -292,7 +292,7 @@ its easier to just keep the beam vertical.
|
||||
f_name = "a "
|
||||
f_name += "<span class='danger'>blood-stained</span> [name]!"
|
||||
|
||||
user << "\icon[src] That's [f_name]"
|
||||
user << "\icon[src] That's [f_name]" + size
|
||||
if(desc)
|
||||
user << desc
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
for(var/atom/movable/floater in (contents - beaker))
|
||||
user << "A figure floats in the depths, they appear to be [floater.name]"
|
||||
if(beaker)
|
||||
user << "A beaker is releasing the following chemicals into the fluids:"
|
||||
user << "A beaker, releasing the following chemicals into the fluids:"
|
||||
for(var/datum/reagent/R in beaker.reagents.reagent_list)
|
||||
user << "<span class='info'>[R.volume] units of [R.name]</span>"
|
||||
else
|
||||
|
||||
@@ -108,7 +108,6 @@
|
||||
src.loc = T
|
||||
|
||||
/obj/item/examine(mob/user)
|
||||
..() //TODO: Make The following code simply append to the description instead of a separate line
|
||||
var/size
|
||||
switch(src.w_class)
|
||||
if(1.0)
|
||||
@@ -128,7 +127,7 @@
|
||||
pronoun = "They are"
|
||||
else
|
||||
pronoun = "It is"
|
||||
user << " [pronoun] a [size] item."
|
||||
..(user, " [pronoun] a [size] item.")
|
||||
|
||||
|
||||
/obj/item/attack_ai(mob/user as mob)
|
||||
|
||||
@@ -148,9 +148,9 @@
|
||||
src.chest = W
|
||||
src.updateicon()
|
||||
else if(!W:wires)
|
||||
user << "\blue You need to attach wires to it first!"
|
||||
user << "<span class='notice'>You need to attach wires to it first!</span>"
|
||||
else
|
||||
user << "\blue You need to attach a cell to it first!"
|
||||
user << "<span class='notice'>You need to attach a cell to it first!</span>"
|
||||
|
||||
if(istype(W, /obj/item/robot_parts/head))
|
||||
if(src.head) return
|
||||
@@ -160,16 +160,17 @@
|
||||
src.head = W
|
||||
src.updateicon()
|
||||
else
|
||||
user << "\blue You need to attach a flash to it first!"
|
||||
user << "<span class='notice'>You need to attach a flash to it first!</span>"
|
||||
|
||||
if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/mmi/posibrain))
|
||||
var/obj/item/device/mmi/M = W
|
||||
var/turf/T = get_turf(src)
|
||||
if(check_completion())
|
||||
if(!istype(loc,/turf))
|
||||
user << "\red You can't put the [W] in, the frame has to be standing on the ground to be perfectly precise."
|
||||
user << "<span class='warning'>You can't put the [W] in, the frame has to be standing on the ground to be perfectly precise.</span>"
|
||||
return
|
||||
if(!M.brainmob)
|
||||
user << "\red Sticking an empty [W] into the frame would sort of defeat the purpose."
|
||||
user << "<span class='warning'>Sticking an empty [W] into the frame would sort of defeat the purpose.</span>"
|
||||
return
|
||||
if(!M.brainmob.key)
|
||||
var/ghost_can_reenter = 0
|
||||
@@ -183,18 +184,25 @@
|
||||
return
|
||||
|
||||
if(M.brainmob.stat == DEAD)
|
||||
user << "\red Sticking a dead [W] into the frame would sort of defeat the purpose."
|
||||
user << "<span class='warning'>Sticking a dead [W] into the frame would sort of defeat the purpose.</span>"
|
||||
return
|
||||
|
||||
if(M.brainmob.mind in ticker.mode.head_revolutionaries)
|
||||
user << "\red The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the [W]."
|
||||
user << "<span class='warning'>The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the [W].</span>"
|
||||
return
|
||||
|
||||
if(jobban_isbanned(M.brainmob, "Cyborg"))
|
||||
user << "\red This [W] does not seem to fit."
|
||||
user << "<span class='warning'>This [W] does not seem to fit.</span>"
|
||||
return
|
||||
|
||||
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
|
||||
|
||||
for(var/P in M.mommi_assembly_parts) //Let's give back all those mommi creation components
|
||||
for(var/obj/item/L in M.contents)
|
||||
if(L == P)
|
||||
L.loc = T
|
||||
M.contents -= L
|
||||
|
||||
if(!O) return
|
||||
|
||||
user.drop_item()
|
||||
@@ -226,7 +234,7 @@
|
||||
|
||||
del(src)
|
||||
else
|
||||
user << "\blue The MMI must go in after everything else!"
|
||||
user << "<span class='notice'>The MMI must go in after everything else!</span>"
|
||||
|
||||
if (istype(W, /obj/item/weapon/pen))
|
||||
var/t = stripped_input(user, "Enter new robot name", src.name, src.created_name, MAX_NAME_LEN)
|
||||
@@ -243,42 +251,42 @@
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/cell))
|
||||
if(src.cell)
|
||||
user << "\blue You have already inserted a cell!"
|
||||
user << "<span class='notice'>You have already inserted a cell!</span>"
|
||||
return
|
||||
else
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
src.cell = W
|
||||
user << "\blue You insert the cell!"
|
||||
user << "<span class='notice'>You insert the cell!</span>"
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
if(src.wires)
|
||||
user << "\blue You have already inserted wire!"
|
||||
user << "<span class='notice'>You have already inserted wire!</span>"
|
||||
return
|
||||
else
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
coil.use(1)
|
||||
src.wires = 1.0
|
||||
user << "\blue You insert the wire!"
|
||||
user << "<span class='notice'>You insert the wire!</span>"
|
||||
return
|
||||
|
||||
/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if(istype(W, /obj/item/device/flash))
|
||||
if(src.flash1 && src.flash2)
|
||||
user << "\blue You have already inserted the eyes!"
|
||||
user << "<span class='notice'>You have already inserted the eyes!</span>"
|
||||
return
|
||||
else if(src.flash1)
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
src.flash2 = W
|
||||
user << "\blue You insert the flash into the eye socket!"
|
||||
user << "<span class='notice'>You insert the flash into the eye socket!</span>"
|
||||
else
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
src.flash1 = W
|
||||
user << "\blue You insert the flash into the eye socket!"
|
||||
user << "<span class='notice'>You insert the flash into the eye socket!</span>"
|
||||
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
|
||||
user << "\blue You install some manipulators and modify the head, creating a functional spider-bot!"
|
||||
user << "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>"
|
||||
new /mob/living/simple_animal/spiderbot(get_turf(loc))
|
||||
user.drop_item()
|
||||
del(W)
|
||||
@@ -289,9 +297,9 @@
|
||||
/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/card/emag))
|
||||
if(sabotaged)
|
||||
user << "\red [src] is already sabotaged!"
|
||||
user << "<span class='warning'>[src] is already sabotaged!</span>"
|
||||
else
|
||||
user << "\red You slide [W] into the dataport on [src] and short out the safeties."
|
||||
user << "<span class='warning'>You slide [W] into the dataport on [src] and short out the safeties.</span>"
|
||||
sabotaged = 1
|
||||
return
|
||||
..()
|
||||
@@ -233,6 +233,7 @@
|
||||
#endif
|
||||
|
||||
var/old_lumcount = lighting_lumcount - initial(lighting_lumcount)
|
||||
var/datum/gas_mixture/env
|
||||
|
||||
//world << "Replacing [src.type] with [N]"
|
||||
|
||||
@@ -243,6 +244,7 @@
|
||||
//Despite this being called a bunch during explosions,
|
||||
//the zone will only really do heavy lifting once.
|
||||
var/turf/simulated/S = src
|
||||
env = S.air //Get the air before the change
|
||||
if(S.zone) S.zone.rebuild()
|
||||
|
||||
if(ispath(N, /turf/simulated/floor))
|
||||
@@ -254,7 +256,8 @@
|
||||
// zone.SetStatus(ZONE_ACTIVE)
|
||||
|
||||
var/turf/simulated/W = new N( locate(src.x, src.y, src.z) )
|
||||
//W.Assimilate_Air()
|
||||
if(env)
|
||||
W.air = env //Copy the old environment data over if both turfs were simulated
|
||||
|
||||
W.lighting_lumcount += old_lumcount
|
||||
if(old_lumcount != W.lighting_lumcount)
|
||||
|
||||
@@ -465,6 +465,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/list/mobs = getmobs()
|
||||
var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs
|
||||
var/mob/target = mobs[input]
|
||||
if(istype(target,/mob/living/silicon/ai))
|
||||
var/mob/living/silicon/ai/M = target
|
||||
target = M.eyeobj
|
||||
ManualFollow(target)
|
||||
|
||||
// This is the ghost's follow verb with an argument
|
||||
|
||||
@@ -243,3 +243,4 @@
|
||||
else if(!src.brainmob.key)
|
||||
user << "<span class='warning'>It seems to be in a deep dream-state</span>" //ghosted
|
||||
user << "<span class='info'>*---------*</span>"
|
||||
user << "<span class='info'>It's interface is [locked ? "unlocked" : "locked"] </span>"
|
||||
|
||||
Reference in New Issue
Block a user