Revert "Merge branch 'master' into fairylights"

This reverts commit 2947727659, reversing
changes made to 91063fe882.
This commit is contained in:
Dahlular
2022-07-09 04:55:33 -06:00
parent eb22b66720
commit e51460cb5d
123 changed files with 2065 additions and 3633 deletions
@@ -1,154 +0,0 @@
/*
COSMETIC PARTS
this system allows you to change the _base_ appearance of a limb independent
of species or markings. this, for example, allows us to create "hybrids" like a
mammal with avian legs.
keep in mind that this does not change the species of a leg! in the above example,
the mammal's bird-legs are still mammal legs. this matters in some places, like
body part transplants; mis-matched species will cause extra damage if the surgery
fails and the part is rejected. so you can't attach mammal-bird legs to avians
safely.
*/
/datum/cosmetic_part
/** A unique string that is used to identify this part for save files. Allows name changes without breaking saves */
var/id
/** The name of the cosmetic part. This shows up in the preferences dropdown. */
var/name
var/icon = 'hyperstation/icons/mob/char_parts.dmi'
var/icon_state
/** How colors are determined for this part. MUTCOLORS for base color, MATRIXED to allow multiple channels. */
var/color_src = MUTCOLORS
/** Whether or not this cosmetic part has an alternate form for digitigrade legs. */
var/support_digitigrade = TRUE
/** Species IDs that support this cosmetic part. Bypassed with "show mismatched markings" option. */
var/list/supported_species
/datum/cosmetic_part/head
/datum/cosmetic_part/chest
/datum/cosmetic_part/arms
/datum/cosmetic_part/legs
// HEADS
// =========================================
/datum/cosmetic_part/head/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/head/ipc_round
id = "ipc_round"
name = "round ipc head"
icon_state = "ipc_round"
supported_species = list("ipc")
// CHESTS
// =========================================
/datum/cosmetic_part/chest/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/chest/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc chest"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
/datum/cosmetic_part/chest/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc chest"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
// ARMS
// =========================================
/datum/cosmetic_part/arms/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/arms/avian_alt
id = "avian_alt"
name = "avian claws"
icon_state = "avian_alt"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
/datum/cosmetic_part/arms/insect
id = "insect"
name = "insect arms"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "insect"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
/datum/cosmetic_part/arms/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc arms"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
/datum/cosmetic_part/arms/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc arms"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
// LEGS
// =========================================
/datum/cosmetic_part/legs/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/legs/avian
id = "avian"
name = "avian legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "avian"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = FALSE
/datum/cosmetic_part/legs/mammal
id = "mammal"
name = "mammal legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "mammal"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = TRUE
/datum/cosmetic_part/legs/insect
id = "insect"
name = "insect legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "insect"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = TRUE
/datum/cosmetic_part/legs/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc legs"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
support_digitigrade = FALSE
/datum/cosmetic_part/legs/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc legs"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
support_digitigrade = FALSE
@@ -87,11 +87,6 @@ SNOUTS
icon_state = "feasterndnw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/fchemlight
name = "RadDog (Top) (Hyper)"
icon_state = "fchemlight"
@@ -148,11 +143,6 @@ EARS
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/datum/sprite_accessory/mam_ears/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/datum/sprite_accessory/mam_ears/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
@@ -195,13 +185,6 @@ WINGS
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
//recommended_species = list("synthliz") need to give synths a deco wing slot
color_src = MATRIXED
/datum/sprite_accessory/deco_wings/minibat // sarcoph @ hyperstation, march 2022
name = "Mini Bat (Hyper)"
icon_state = "minibat"
@@ -341,18 +324,6 @@ TAILS + ANIMATED TAILS
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("synthliz")
/datum/sprite_accessory/mam_tails_animated/knshuttle
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("synthliz")
/datum/sprite_accessory/mam_tails/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
@@ -427,11 +398,6 @@ from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_markings.dmi'
/datum/sprite_accessory/mam_body_markings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_markings.dmi'
//doged was here
/datum/sprite_accessory/mam_body_markings/chemlight
name = "RadDog (Hyper)"
@@ -475,92 +441,6 @@ from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
taur_mode = PAW_TAURIC
ckeys_allowed = list("chemlight")
/*
IPCS
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/antenna
icon = 'modular_citadel/icons/mob/ipc_antennas.dmi'
color_src = MUTCOLORS3
recommended_species = list("ipc")
/datum/sprite_accessory/screen
icon = 'modular_citadel/icons/mob/ipc_screens.dmi'
color_src = null
*/
/datum/sprite_accessory/antenna/idog_down
name = "Dog, down (Hyper)"
icon_state = "idog_down"
color_src = MATRIXED
/datum/sprite_accessory/antenna/idog_up
name = "Dog, up (Hyper)"
icon_state = "idog_up"
color_src = MATRIXED
/datum/sprite_accessory/antenna/headset
name = "Headphones (Hyper)"
icon_state = "headset"
color_src = MATRIXED
/datum/sprite_accessory/antenna/aquatic
name = "Fins (Hyper)"
icon_state = "aquatic"
color_src = MATRIXED
/datum/sprite_accessory/screen/ghost
name = "Ghost (Hyper)"
icon_state = "ghost"
/datum/sprite_accessory/screen/heartbeat
name = "Heartbeat (Hyper)"
icon_state = "heartbeat"
/datum/sprite_accessory/screen/ocean
name = "Ocean (Hyper)"
icon_state = "ocean"
/datum/sprite_accessory/antenna/catears
name = "Pointy Ears (Hyper)"
icon_state = "catears"
color_src = MATRIXED
/datum/sprite_accessory/screen/valley
name = "Valley (Hyper)"
icon_state = "valley"
/datum/sprite_accessory/screen/visor
name = "Black Visor (Hyper)"
icon = 'hyperstation/icons/mob/ipc_screen_visor.dmi'
icon_state = "visor_black"
/datum/sprite_accessory/screen/visor/blue
name = "Blue Visor (Hyper)"
icon_state = "visor_blue"
/datum/sprite_accessory/screen/visor/green
name = "Green Visor (Hyper)"
icon_state = "visor_green"
/datum/sprite_accessory/screen/visor/red
name = "Red Visor (Hyper)"
icon_state = "visor_red"
/datum/sprite_accessory/screen/visor/white
name = "White Visor (Hyper)"
icon_state = "visor_white"
/datum/sprite_accessory/screen/visor/yellow
name = "Yellow Visor (Hyper)"
icon_state = "visor_yellow"
/*
HAIRSTYLES
==========================================================
@@ -600,4 +480,4 @@ from code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm:
/datum/sprite_accessory/hair/emoh
name = "Emo (Hyper)"
icon_state = "hair_emoh"
icon_state = "hair_emoh"
@@ -13,11 +13,6 @@
/mob/living/carbon/handle_status_effects()
..()
handle_pain()
/mob/living/carbon/has_mouth()
var/obj/item/bodypart/head/head = get_bodypart(BODY_ZONE_HEAD)
if(head && head.mouth)
return TRUE
/mob/living/carbon/proc/handle_pain()
var/pain_amount = 0
@@ -1,17 +0,0 @@
/obj/item/bodypart/proc/apply_cosmetic(datum/cosmetic_part/part)
if(!is_organic_limb() || animal_origin || !part)
return
cosmetic_icon = part
/mob/living/carbon/human/proc/handle_cosmetic_parts()
var/features = dna.features
var/list/body_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
for(var/zone in body_zones)
var/datum/cosmetic_part/cosmetic_pref = features["cosmetic_" + zone]
if(!istype(cosmetic_pref, /datum/cosmetic_part))
continue
var/datum/cosmetic_part/part = cosmetic_pref
var/obj/item/bodypart/body_part = get_bodypart(zone)
if(body_part && part)
body_part.apply_cosmetic(part)
@@ -1,58 +0,0 @@
// APC powercord: oracle port
/obj/item/apc_powercord
name = "power cord"
desc = "An internal power cord hooked up to a battery. Useful if you run on electricity. Not so much otherwise."
icon = 'icons/obj/power.dmi'
icon_state = "wire1"
/obj/item/apc_powercord/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
if(!istype(target, /obj/machinery/power/apc) || !ishuman(user) || !proximity_flag)
return ..()
user.changeNext_move(CLICK_CD_MELEE)
var/mob/living/carbon/human/H = user
var/obj/item/organ/stomach/cell/battery = H.getorganslot(ORGAN_SLOT_STOMACH)
if(!battery)
to_chat(H, "<span class='warning'>You try to siphon energy from \the [target], but your power cell is gone!</span>")
return
if(istype(H) && H.nutrition >= NUTRITION_LEVEL_ALMOST_FULL)
to_chat(user, "<span class='warning'>You are already fully charged!</span>")
return
if(istype(target, /obj/machinery/power/apc))
var/obj/machinery/power/apc/A = target
if(A.cell && A.cell.charge > A.cell.maxcharge*0.25)
powerdraw_loop(A, H)
return
else
to_chat(user, "<span class='warning'>There is not enough charge to draw from that APC.</span>")
return
/obj/item/apc_powercord/proc/powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
H.visible_message("<span class='notice'>[H] inserts a power connector into the [A].</span>", "<span class='notice'>You begin to draw power from the [A].</span>")
while(do_after(H, 10, target = A))
if(!istype(A))
return
if(loc != H)
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
break
if(A.cell.charge == 0)
to_chat(H, "<span class='warning'>The [A] doesn't have enough charge to spare.</span>")
break
A.charging = 1
if(A.cell.charge >= 500)
H.nutrition += 50
A.cell.charge -= 250
to_chat(H, "<span class='notice'>You siphon off some of the stored charge for your own use.</span>")
else
H.nutrition += A.cell.charge/10
A.cell.charge = 0
to_chat(H, "<span class='notice'>You siphon off as much as the [A] can spare.</span>")
break
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
H.visible_message("<span class='notice'>[H] unplugs from the [A].</span>", "<span class='notice'>You unplug from the [A].</span>")
@@ -1,8 +0,0 @@
/mob/living/silicon/robot/proc/examine_bellies_borg()
var/message = ""
for(var/belly in vore_organs)
var/obj/belly/B = belly
message += B.get_examine_msg()
return message
@@ -1,3 +1,3 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/mob/living/silicon/robot
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
@@ -1,60 +1,11 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/obj/item/robot_module
var/list/added_channels = list() //Borg radio stuffs
//service
/obj/item/robot_module/butler
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/clown
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/janitor
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
//engineering
/obj/item/robot_module/engineering
added_channels = list(RADIO_CHANNEL_ENGINEERING = 1)
//medical
/obj/item/robot_module/medical
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
//security
/obj/item/robot_module/peacekeeper
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
/obj/item/robot_module/security
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
//supply
/obj/item/robot_module/miner
added_channels = list(RADIO_CHANNEL_SUPPLY = 1) // Probably already handled by other code when spawned with pre-set module, but whatever.
//dogborgs
/obj/item/robot_module/k9
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
/obj/item/robot_module/medihound
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
/obj/item/robot_module/scrubpup
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/borgi
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/orepup
added_channels = list(RADIO_CHANNEL_SUPPLY = 1)
//This proc gets called whenever a new robot module is being applied --Cyanosis
/obj/item/robot_module/proc/handle_sprite_action(mob/living/silicon/robot/R, is_huge = FALSE)
ASSERT(istype(R))
if(R.small_sprite_action)
QDEL_NULL(R.small_sprite_action)
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
return
for(var/P in typesof(/datum/action/cyborg_small_sprite))
var/datum/action/cyborg_small_sprite/action = P
@@ -241,6 +241,6 @@
/mob/living/simple_animal/chicken/examine()
. = ..()
. += "<span class='notice'>This one is [gender].</span>"
. += "this one is [gender]."
if(happiness<20)
. += "<span class='warning'>It looks stressed.</span>"
@@ -27,7 +27,3 @@ mob/proc/checkloadappearance()
else
to_chat(H, "<span class='boldannounce'>You either took too long or chose not to change. Alrighty. Remember, you have 90 seconds from spawn to get to a mirror and still do it if you wish.</span>")
return
// oracle port
/mob/proc/has_mouth()
return FALSE