diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 44273c80ff7..957a690f4f0 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -33,11 +33,14 @@ #define LANGUAGE_SKRELLIAN "Skrellian" #define LANGUAGE_TRADEBAND "Tradeband" #define LANGUAGE_GUTTER "Gutter" +#define LANGUAGE_SIGN "Sign Language" #define LANGUAGE_SCHECHI "Schechi" #define LANGUAGE_ROOTLOCAL "Local Rootspeak" #define LANGUAGE_ROOTGLOBAL "Global Rootspeak" #define LANGUAGE_CULT "Cult" -#define LANGUAGE_SIGN "Sign Language" +#define LANGUAGE_OCCULT "Occult" +#define LANGUAGE_CHANGELING "Changeling" +#define LANGUAGE_VOX "Vox-Pidgin" // Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 09a19093920..4e17916853b 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -92,4 +92,9 @@ siemens_coefficient = 0 phoronproof = 1 permeability_coefficient = 0.05 - species_restricted = list("Vox") \ No newline at end of file + species_restricted = list("Vox") + + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 57a50b4c09d..63e4d939653 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -107,7 +107,6 @@ magpulse = 1 canremove = 0 //kinda hard to take off magclaws when you are gripping them tightly. to_chat(user, "You dig your claws deeply into the flooring, bracing yourself.") - to_chat(user, "It would be hard to take off the [src] without relaxing your grip first.") user.update_action_buttons() //In case they somehow come off while enabled. diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 7f28b34a9d1..730529e5e22 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -36,14 +36,14 @@ slowdown = 1 phoronproof = 1 armor = list(melee = 60, bullet = 50, laser = 40,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.6 + siemens_coefficient = 0.2 heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE species_restricted = list("Vox") /obj/item/clothing/head/helmet/space/vox armor = list(melee = 60, bullet = 50, laser = 40, energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.6 + siemens_coefficient = 0.2 item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | AIRTIGHT | PHORONGUARD flags_inv = 0 phoronproof = 1 diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index 61fec573c1f..f751eeb760e 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -47,6 +47,7 @@ icon_state = "vox_rig" armor = list(melee = 60, bullet = 50, laser = 40, energy = 15, bomb = 30, bio = 30, rad = 30) item_flags = THICKMATERIAL + siemens_coefficient = 0.2 phoronproof = 1 air_type = /obj/item/weapon/tank/phoron/vox @@ -58,9 +59,11 @@ /obj/item/clothing/head/helmet/space/rig/vox species_restricted = list("Vox") + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE phoronproof = 1 /obj/item/clothing/shoes/magboots/rig/vox + name = "talons" species_restricted = list("Vox") phoronproof = 1 @@ -69,7 +72,6 @@ phoronproof = 1 /obj/item/clothing/gloves/gauntlets/rig/vox - name = "talons" siemens_coefficient = 0 species_restricted = list("Vox") phoronproof = 1 diff --git a/code/modules/clothing/under/xenos/vox.dm b/code/modules/clothing/under/xenos/vox.dm index 9c1f3ce6b07..0ba583d536b 100644 --- a/code/modules/clothing/under/xenos/vox.dm +++ b/code/modules/clothing/under/xenos/vox.dm @@ -1,6 +1,8 @@ /obj/item/clothing/under/vox has_sensor = 0 species_restricted = list("Vox") + valid_accessory_slots = list("vox") + restricted_accessory_slots = list("vox") phoronproof = 1 /obj/item/clothing/under/vox/vox_casual @@ -14,4 +16,18 @@ name = "alien robes" desc = "Weird and flowing!" icon_state = "vox-casual-2" - item_state = "vox-casual-2" \ No newline at end of file + item_state = "vox-casual-2" + +//Vox Accessories +/obj/item/clothing/accessory/storage/vox + name = "" + desc = "An alien mesh. Seems to be made up mostly of pockets" +// icon_state = "webbing" + slot = "vox" + + slots = 5 + +/obj/item/clothing/accessory/storage/vox/New() + ..() + hold.max_storage_space = slots * ITEMSIZE_COST_NORMAL + hold.max_w_class = ITEMSIZE_NORMAL \ No newline at end of file diff --git a/code/modules/mob/language/outsider.dm b/code/modules/mob/language/outsider.dm index 7545e8bd34f..8c174a2ff74 100644 --- a/code/modules/mob/language/outsider.dm +++ b/code/modules/mob/language/outsider.dm @@ -1,5 +1,5 @@ /datum/language/ling - name = "Changeling" + name = LANGUAGE_CHANGELING desc = "Although they are normally wary and suspicious of each other, changelings can commune over a distance." speech_verb = "says" colour = "changeling" @@ -38,7 +38,7 @@ ..(speaker,message,speaker_mask) /datum/language/vox - name = "Vox-pidgin" + name = LANGUAGE_VOX desc = "The common tongue of the various Vox ships making up the Shoal. It sounds like chaotic shrieking to everyone else." speech_verb = "shrieks" ask_verb = "creels" @@ -73,7 +73,7 @@ "d'rekkathnor", "khari'd", "gual'te", "nikka", "nikt'o", "barada", "kla'atu", "barhah", "hra" ,"zar'garis", "spiri", "malum") /datum/language/cult - name = "Occult" + name = LANGUAGE_OCCULT desc = "The initiated can share their thoughts by means defying all reason." speech_verb = "intones" ask_verb = "intones" diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm index c0e52f658ac..7ff50ae70ab 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm @@ -3,8 +3,8 @@ name_plural = "Vox" icobase = 'icons/mob/human_races/r_vox.dmi' deform = 'icons/mob/human_races/r_def_vox.dmi' - default_language = "Vox-pidgin" - language = "Galactic Common" + default_language = LANGUAGE_VOX + language = LANGUAGE_GALCOM num_alternate_languages = 1 unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong) rarity_value = 4 @@ -37,7 +37,7 @@ spawn_flags = SPECIES_IS_WHITELISTED appearance_flags = HAS_EYE_COLOR | HAS_HAIR_COLOR - blood_color = "#2299FC" + blood_color = "#9066BD" flesh_color = "#808D11" reagent_tag = IS_VOX diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 6a02d8a38fb..d8d6496722e 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -150,3 +150,19 @@ obj/item/weapon/gun/energy/staff/focus user << "The [src.name] will now strike only a single person." projectile_type = "/obj/item/projectile/forcebolt" */ + +//Vox toys +/obj/item/weapon/gun/energy/sonicgun + name = "sonic cannon" + desc = "A vicious alien sonic weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." + icon_state = "plasma_stun" + item_state = "plasma_stun" + fire_sound = 'sound/effects/basscannon.ogg' + fire_delay = 10 + + self_recharge = 1 + + firemodes = list( + list(mode_name="incapacitate", projectile_type=/obj/item/projectile/energy/sonic/weak, fire_delay=10, charge_cost = 120), + list(mode_name="kill", projectile_type=/obj/item/projectile/energy/sonic/strong, fire_delay=20, charge_cost = 240), + ) \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index c45ea1917b6..59c881d99e0 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -171,4 +171,51 @@ /obj/item/projectile/energy/plasmastun/on_hit(var/atom/target) bang(target) - . = ..() \ No newline at end of file + . = ..() + +/obj/item/projectile/energy/sonic + name = "sonic pulse" + icon_state = "sonic_pulse" + armor_penetration = 50 + kill_count = 8 + damage_type = BRUTE + embed_chance = 0 + check_armour = "melee" + vacuum_traversal = 0 + var/ear_pain = 10 + +/obj/item/projectile/energy/sonic/on_hit(var/atom/target) + sonicboom(target, ear_pain) + . = ..() + +/obj/item/projectile/energy/sonic/proc/sonicboom(var/mob/living/carbon/M, var/ear_pain) + to_chat(M, "You hear a loud roar.") + var/ear_safety = 0 + var/ear_effect = ear_pain + ear_safety = M.get_ear_protection() + if (ear_safety > 1) + ear_effect *= 0.5 + else if (!ear_safety) + ear_effect *= 2 + + M.adjustEarDamage(ear_effect, ear_effect*2) + M.halloss += ear_effect + + if (M.ear_damage >= 15) + to_chat(M, "Your ears start to ring badly!") + M.confused = max(M.confused, 100) //Balance thrown off + if (prob(M.ear_damage - 5)) + to_chat(M, "You can't hear anything!") + M.sdisabilities |= DEAF + else + if (M.ear_damage >= 5) + to_chat(M, "Your ears start to ring!") + M.update_icons() + +/obj/item/projectile/energy/sonic/weak + damage = 10 + ear_pain = 20 + +/obj/item/projectile/energy/sonic/strong + damage = 40 + ear_pain = 10 \ No newline at end of file diff --git a/icons/mob/species/vox/head.dmi b/icons/mob/species/vox/head.dmi index 58718462197..fcaae2a02cf 100644 Binary files a/icons/mob/species/vox/head.dmi and b/icons/mob/species/vox/head.dmi differ diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi index 41b2cf9eab6..6e8269a9581 100644 Binary files a/icons/mob/species/vox/suit.dmi and b/icons/mob/species/vox/suit.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 08892b83add..9b3739078fc 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 0e96c916eea..a4f3cf88933 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index e414cdcd9a0..23cece26b74 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/species/vox/hats.dmi b/icons/obj/clothing/species/vox/hats.dmi index aae8da6a66a..f5f7b557247 100644 Binary files a/icons/obj/clothing/species/vox/hats.dmi and b/icons/obj/clothing/species/vox/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index b08cdc384b1..be9b4c861b4 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 522d540bdbd..a01b88cfb2d 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index 11f3beb5615..e179a67f4ac 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ