Merge pull request #2054 from Citadel-Station-13/upstream-merge-28977
[MIRROR] Augment Styles/Changes
@@ -26582,6 +26582,7 @@
|
||||
layer = 3;
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/machinery/aug_manipulator,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/robotics/lab)
|
||||
"bkp" = (
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
diff a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm (rejected hunks)
|
||||
@@ -33644,7 +33645,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4;
|
||||
external_pressure_bound = 140;
|
||||
- pressure_checks = 0
|
||||
+ pressure_checks = 0;
|
||||
name = "server vent"
|
||||
},
|
||||
/turf/open/floor/circuit{
|
||||
@@ -83911,12 +83912,12 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
cTg
|
||||
-cTl
|
||||
-cTn
|
||||
-cTr
|
||||
-cTu
|
||||
-cTw
|
||||
-cTz
|
||||
+cTg
|
||||
+cTi
|
||||
+cTg
|
||||
+cTi
|
||||
+cTg
|
||||
+cTg
|
||||
aaa
|
||||
bCq
|
||||
bPS
|
||||
@@ -84167,13 +84168,13 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
-cTh
|
||||
+cTg
|
||||
bGg
|
||||
cTo
|
||||
cMl
|
||||
bHx
|
||||
cTx
|
||||
-cTA
|
||||
+cTg
|
||||
aaa
|
||||
bLv
|
||||
bPR
|
||||
@@ -84427,7 +84428,7 @@ bDi
|
||||
cTi
|
||||
bGh
|
||||
bHx
|
||||
-cTs
|
||||
+cTo
|
||||
bHx
|
||||
bLt
|
||||
bMF
|
||||
@@ -84681,13 +84682,13 @@ bzP
|
||||
bAS
|
||||
bxu
|
||||
aaa
|
||||
-cTj
|
||||
+cTg
|
||||
bGg
|
||||
-cTp
|
||||
-cTt
|
||||
+cTo
|
||||
+cTo
|
||||
bHx
|
||||
bLs
|
||||
-cTB
|
||||
+cTg
|
||||
aaa
|
||||
bLv
|
||||
bPT
|
||||
@@ -84938,13 +84939,13 @@ bzR
|
||||
byd
|
||||
bxx
|
||||
aaa
|
||||
-cTk
|
||||
-cTm
|
||||
-cTq
|
||||
+cTg
|
||||
+cTg
|
||||
+cTi
|
||||
bJc
|
||||
-cTv
|
||||
-cTy
|
||||
-cTC
|
||||
+cTi
|
||||
+cTg
|
||||
+cTg
|
||||
aaa
|
||||
bCq
|
||||
bPV
|
||||
@@ -93223,6 +93223,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/aug_manipulator,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/robotics/lab)
|
||||
"dxQ" = (
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
diff a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm (rejected hunks)
|
||||
@@ -156131,16 +156132,16 @@ cim
|
||||
brN
|
||||
brN
|
||||
bqq
|
||||
-coe
|
||||
+bkT
|
||||
cpL
|
||||
-cqZ
|
||||
+brH
|
||||
csr
|
||||
-cub
|
||||
+bmI
|
||||
cvE
|
||||
cwY
|
||||
-cqZ
|
||||
-cqZ
|
||||
-cqZ
|
||||
+brH
|
||||
+brH
|
||||
+brH
|
||||
brH
|
||||
bkT
|
||||
cFG
|
||||
@@ -156166,10 +156167,10 @@ djZ
|
||||
dlM
|
||||
dnc
|
||||
doh
|
||||
-dpQ
|
||||
+dnc
|
||||
drt
|
||||
dsT
|
||||
-dpQ
|
||||
+dnc
|
||||
ego
|
||||
dwO
|
||||
dyc
|
||||
@@ -71201,6 +71201,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/aug_manipulator,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/robotics/lab)
|
||||
"cFe" = (
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
diff a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm (rejected hunks)
|
||||
@@ -45922,7 +45922,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "n2o_out"
|
||||
+ id_tag = "n2o_out";
|
||||
name = "n2o out"
|
||||
},
|
||||
/turf/open/floor/engine/n2o,
|
||||
@@ -49223,7 +49223,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "tox_out"
|
||||
+ id_tag = "tox_out";
|
||||
name = "toxin out"
|
||||
},
|
||||
/turf/open/floor/engine/plasma,
|
||||
@@ -52023,7 +52023,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 8;
|
||||
frequency = 1441;
|
||||
- id_tag = "co2_out"
|
||||
+ id_tag = "co2_out";
|
||||
name = "co2 out"
|
||||
},
|
||||
/turf/open/floor/engine/co2,
|
||||
@@ -58890,7 +58890,7 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
|
||||
dir = 1;
|
||||
frequency = 1441;
|
||||
- id_tag = "n2_out"
|
||||
+ id_tag = "n2_out";
|
||||
name = "n2 out"
|
||||
},
|
||||
/turf/open/floor/engine/n2,
|
||||
@@ -43,7 +43,7 @@
|
||||
#define BODYPART_ROBOTIC 2
|
||||
|
||||
#define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human_parts_greyscale.dmi'
|
||||
#define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augments.dmi'
|
||||
#define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi'
|
||||
|
||||
#define MONKEY_BODYPART "monkey"
|
||||
#define ALIEN_BODYPART "alien"
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
/obj/machinery/aug_manipulator
|
||||
name = "\improper augment manipulator"
|
||||
desc = "A machine for custom fitting augmentations, with in-built spraypainter."
|
||||
icon = 'icons/obj/pda.dmi'
|
||||
icon_state = "pdapainter"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
obj_integrity = 200
|
||||
max_integrity = 200
|
||||
var/obj/item/bodypart/storedpart
|
||||
var/initial_icon_state
|
||||
var/static/list/style_list_icons = list("standard" = 'icons/mob/augmentation/augments.dmi', "engineer" = 'icons/mob/augmentation/augments_engineer.dmi', "security" = 'icons/mob/augmentation/augments_security.dmi', "mining" = 'icons/mob/augmentation/augments_mining.dmi')
|
||||
|
||||
|
||||
/obj/machinery/aug_manipulator/Initialize()
|
||||
initial_icon_state = initial(icon_state)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/aug_manipulator/update_icon()
|
||||
cut_overlays()
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state = "[initial_icon_state]-broken"
|
||||
return
|
||||
|
||||
if(storedpart)
|
||||
add_overlay("[initial_icon_state]-closed")
|
||||
|
||||
if(powered())
|
||||
icon_state = initial_icon_state
|
||||
else
|
||||
icon_state = "[initial_icon_state]-off"
|
||||
|
||||
/obj/machinery/aug_manipulator/Destroy()
|
||||
QDEL_NULL(storedpart)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/aug_manipulator/on_deconstruction()
|
||||
if(storedpart)
|
||||
storedpart.forceMove(loc)
|
||||
storedpart = null
|
||||
|
||||
/obj/machinery/aug_manipulator/contents_explosion(severity, target)
|
||||
if(storedpart)
|
||||
storedpart.ex_act(severity, target)
|
||||
|
||||
/obj/machinery/aug_manipulator/handle_atom_del(atom/A)
|
||||
if(A == storedpart)
|
||||
storedpart = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/aug_manipulator/attackby(obj/item/O, mob/user, params)
|
||||
if(default_unfasten_wrench(user, O))
|
||||
power_change()
|
||||
return
|
||||
|
||||
else if(istype(O, /obj/item/bodypart))
|
||||
var/obj/item/bodypart/B = O
|
||||
if(B.status != BODYPART_ROBOTIC)
|
||||
to_chat(user, "<span class='warning'>The machine only accepts cybernetics!</span>")
|
||||
return
|
||||
if(storedpart)
|
||||
to_chat(user, "<span class='warning'>There is already something inside!</span>")
|
||||
return
|
||||
else
|
||||
O = user.get_active_held_item()
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
storedpart = O
|
||||
O.add_fingerprint(user)
|
||||
update_icon()
|
||||
|
||||
else if(istype(O, /obj/item/weapon/weldingtool) && user.a_intent != INTENT_HARM)
|
||||
var/obj/item/weapon/weldingtool/WT = O
|
||||
if(obj_integrity < max_integrity)
|
||||
if(WT.remove_fuel(0,user))
|
||||
user.visible_message("[user] begins repairing [src].", \
|
||||
"<span class='notice'>You begin repairing [src]...</span>", \
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
playsound(src, WT.usesound, 40, 1)
|
||||
if(do_after(user,40*WT.toolspeed, TRUE, target = src))
|
||||
if(!WT.isOn() || !(stat & BROKEN))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
playsound(src, 'sound/items/welder2.ogg', 50, 1)
|
||||
stat &= ~BROKEN
|
||||
obj_integrity = max(obj_integrity, max_integrity)
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] does not need repairs.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/aug_manipulator/obj_break(damage_flag)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(!(stat & BROKEN))
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/aug_manipulator/attack_hand(mob/user)
|
||||
if(!..())
|
||||
add_fingerprint(user)
|
||||
|
||||
if(storedpart)
|
||||
var/augstyle = input(user, "Select style.", "Augment Custom Fitting") as null|anything in style_list_icons
|
||||
if(!augstyle)
|
||||
return
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
if(!storedpart)
|
||||
return
|
||||
storedpart.icon = style_list_icons[augstyle]
|
||||
eject_part(user)
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] is empty.</span>")
|
||||
|
||||
/obj/machinery/aug_manipulator/proc/eject_part(mob/living/user)
|
||||
if(storedpart)
|
||||
storedpart.forceMove(get_turf(src))
|
||||
storedpart = null
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] is empty.</span>")
|
||||
|
||||
/obj/machinery/aug_manipulator/AltClick(mob/living/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src))
|
||||
return
|
||||
else
|
||||
eject_part(user)
|
||||
|
||||
/obj/machinery/aug_manipulator/power_change()
|
||||
..()
|
||||
update_icon()
|
||||
@@ -254,6 +254,10 @@
|
||||
var/dynamic_hair_suffix = "" //if this is non-null, and hair+suffix matches an iconstate, then we render that hair instead
|
||||
var/dynamic_fhair_suffix = ""
|
||||
|
||||
//for augmented heads
|
||||
if(HD.status == BODYPART_ROBOTIC)
|
||||
return
|
||||
|
||||
//we check if our hat or helmet hides our facial hair.
|
||||
if(H.head)
|
||||
var/obj/item/I = H.head
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
else
|
||||
limb.icon_state = "[animal_origin]_[body_zone]"
|
||||
else
|
||||
limb.icon = 'icons/mob/augments.dmi'
|
||||
limb.icon = 'icons/mob/augmentation/augments.dmi'
|
||||
limb.icon_state = "[animal_origin]_[body_zone]"
|
||||
return
|
||||
|
||||
|
||||
@@ -165,27 +165,27 @@
|
||||
/obj/item/bodypart/l_arm/robot/surplus
|
||||
name = "surplus prosthetic left arm"
|
||||
desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing."
|
||||
icon = 'icons/mob/surplus_augments.dmi'
|
||||
icon = 'icons/mob/augmentation/surplus_augments.dmi'
|
||||
icon_state = "l_arm"
|
||||
max_damage = 20
|
||||
|
||||
/obj/item/bodypart/r_arm/robot/surplus
|
||||
name = "surplus prosthetic right arm"
|
||||
desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing."
|
||||
icon = 'icons/mob/surplus_augments.dmi'
|
||||
icon = 'icons/mob/augmentation/surplus_augments.dmi'
|
||||
icon_state = "r_arm"
|
||||
max_damage = 20
|
||||
|
||||
/obj/item/bodypart/l_leg/robot/surplus
|
||||
name = "surplus prosthetic left leg"
|
||||
desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing."
|
||||
icon = 'icons/mob/surplus_augments.dmi'
|
||||
icon = 'icons/mob/augmentation/surplus_augments.dmi'
|
||||
icon_state = "l_leg"
|
||||
max_damage = 20
|
||||
|
||||
/obj/item/bodypart/r_leg/robot/surplus
|
||||
name = "surplus prosthetic right leg"
|
||||
desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing."
|
||||
icon = 'icons/mob/surplus_augments.dmi'
|
||||
icon = 'icons/mob/augmentation/surplus_augments.dmi'
|
||||
icon_state = "r_leg"
|
||||
max_damage = 20
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
qdel(tool)
|
||||
target.update_body_parts()
|
||||
target.updatehealth()
|
||||
target.update_hair()
|
||||
add_logs(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] INTENT: [uppertext(user.a_intent)]")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[target] has no organic [parse_zone(target_zone)] there!</span>")
|
||||
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -553,6 +553,7 @@
|
||||
#include "code\game\machinery\ai_slipper.dm"
|
||||
#include "code\game\machinery\airlock_control.dm"
|
||||
#include "code\game\machinery\announcement_system.dm"
|
||||
#include "code\game\machinery\aug_manipulator.dm"
|
||||
#include "code\game\machinery\autolathe.dm"
|
||||
#include "code\game\machinery\bank_machine.dm"
|
||||
#include "code\game\machinery\Beacon.dm"
|
||||
|
||||