diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index d5900769b35..bb343c0e7ff 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -94,6 +94,25 @@ else return ..() +/datum/language/machine + name = "Encoded Audio Language" + desc = "A language of encoded tones that allow for IPCs to communicate auditorily between each other in a manner that allows for easier transfer of information." + speech_verb = "beeps" + ask_verb = "beeps" + exclaim_verb = "loudly beeps" + colour = "changeling" + key = "6" + flags = RESTRICTED | NO_STUTTER + syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz") + space_chance = 10 + +/datum/language/machine/get_random_name() + if(prob(70)) + name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" + else + name = pick(ai_names) + return name + //Syllable Lists /* This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed, diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index d550246d6df..c7cbe57a79d 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -237,7 +237,16 @@ name = "Machine" name_plural = "machines" - language = "Tradeband" + blurb = "Positronic intelligence really took off in the 26th century, and it is not uncommon to see independant, free-willed \ + robots on many human stations, particularly in fringe systems where standards are slightly lax and public opinion less relevant \ + to corporate operations. IPCs (Integrated Positronic Chassis) are a loose category of self-willed robots with a humanoid form, \ + generally self-owned after being 'born' into servitude; they are reliable and dedicated workers, albeit more than slightly \ + inhuman in outlook and perspective." + + icobase = 'icons/mob/human_races/r_machine.dmi' + deform = 'icons/mob/human_races/r_machine.dmi' + + language = "Encoded Audio Language" unarmed_types = list(/datum/unarmed_attack/punch) rarity_value = 2 diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 50e6c3bcfb9..ba9334d933a 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -186,7 +186,7 @@ return 0 if(istype(tool,/obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/welder = tool - if(!welder.isOn()) + if(!welder.isOn() || !welder.remove_fuel(1,user)) return 0 return (target_zone == "chest") && istype(target.back, /obj/item/weapon/rig) && !(target.back.canremove) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 074ccda0c6b..11babd42e42 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -130,6 +130,10 @@ can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) if(..()) var/obj/item/organ/external/affected = target.get_organ(target_zone) + if(istype(tool,/obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/welder = tool + if(!welder.isOn() || !welder.remove_fuel(1,user)) + return 0 return affected && affected.open && affected.brute_dam > 0 && target_zone != "mouth" begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/icons/mob/human_races/r_machine.dmi b/icons/mob/human_races/r_machine.dmi new file mode 100644 index 00000000000..65f66c32385 Binary files /dev/null and b/icons/mob/human_races/r_machine.dmi differ