diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index c55232b40b6..7e4923e93b4 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -225,7 +225,7 @@ BLIND // can't see anything
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 3
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT||HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.9
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index ffbe5c0a8b5..f14101fcd9f 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -43,18 +43,11 @@
icon_state = "voxmask"
item_state = "voxmask"
permeability_coefficient = 0.01
+ species_restricted = ("Vox")
toggle()
set category = "Object"
set name = "Adjust mask"
set src in usr
- usr << "You can't really adjust this mask - it's moulded to your beak!"
-
-/obj/item/clothing/mask/breath/vox/mob_can_equip(M as mob, slot)
- var/mob/living/carbon/human/V = M
- if(V.species.name != "Vox")
- V << "This clearly isn't designed for your species!"
- return 0
-
- return ..()
+ usr << "You can't really adjust this mask - it's moulded to your beak!"
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index a2842397b39..0cddf59d4af 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -166,7 +166,8 @@
if (!is_equipped())
user << "You will have to put on the [src] before you can do that."
return
-
+
+
flags |= NOSLIP
magpulse = 1
canremove = 0 //kinda hard to take off magclaws when you are gripping them tightly.
@@ -189,6 +190,36 @@
usr << "It would be hard to take these off without relaxing your grip first." //theoretically this message should only be seen by the wearer when the claws are equipped.
+//Vox Armalis gear.
+/obj/item/clothing/shoes/magboots/vox/armalis
+ name = "large vox magclaws"
+ item_state = "boots-armalis"
+ icon_state = "boots-armalis"
+ icon_override = 'icons/mob/vox.dmi'
+ species_restricted = list("Vox Armalis")
+
+/obj/item/clothing/gloves/yellow/vox/armalis
+ name = "large insulated gauntlets"
+ item_state = "gloves-armalis"
+ icon_state = "gloves-armalis"
+ icon_override = 'icons/mob/vox.dmi'
+ species_restricted = list("Vox Armalis")
+
+/obj/item/clothing/mask/breath/vox/armalis
+ name = "large vox mask"
+ item_state = "mask-armalis"
+ icon_state = "mask-armalis"
+ icon_override = 'icons/mob/vox.dmi'
+ species_restricted = list("Vox Armalis")
+
+/obj/item/clothing/suit/space/vox/carapace/armalis
+ name = "large alien carapace armour"
+ item_state = "armour-armalis"
+ icon_state = "armour-armalis"
+ icon_override = 'icons/mob/vox.dmi'
+ species_restricted = list("Vox Armalis")
+
+
//Species-specific Syndicate rigs.
/obj/item/clothing/head/helmet/space/rig/syndi/tajara
icon_state = "rig0-syndie-taj"
diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm
index c9c169ba774..addc15824dc 100644
--- a/code/modules/clothing/spacesuits/captain.dm
+++ b/code/modules/clothing/spacesuits/captain.dm
@@ -23,7 +23,7 @@
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
slowdown = 1.5
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT||HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.7
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index ef3af6fe3f3..d4aa7637bbd 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -22,7 +22,7 @@
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
slowdown = 1.5
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.7
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 56513a0e85c..18025e077e4 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -23,7 +23,7 @@
slowdown = 1.0
allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
siemens_coefficient = 0.9
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index e675b2e1501..ec8a352db5e 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -195,7 +195,7 @@
icon_state = "straight_jacket"
item_state = "straight_jacket"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
/obj/item/clothing/suit/ianshirt
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 7c6772eb1e9..24cbe3b8c94 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -20,7 +20,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/extinguisher)
slowdown = 1.0
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
flags = FPRINT | TABLEPASS
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECITON_TEMPERATURE
@@ -66,7 +66,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 2
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDETAIL
heat_protection = UPPER_TORSO|LOWER_TORSO
max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECITON_TEMPERATURE
siemens_coefficient = 0
@@ -105,4 +105,4 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 1.5
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDETAIL
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 35587b147ea..a95b44460d7 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -29,6 +29,10 @@
h_style = "Short Vox Quills"
..(new_loc, "Vox")
+/mob/living/carbon/human/voxarmalis/New(var/new_loc)
+ h_style = "Bald"
+ ..(new_loc, "Vox Armalis")
+
/mob/living/carbon/human/skellington/New(var/new_loc)
h_style = "Bald"
..(new_loc, "Skellington")
@@ -120,6 +124,13 @@
now_pushing = 0
return
+ //Leaping mobs just land on the tile, no pushing, no anything.
+ if(status_flags & LEAPING)
+ loc = tmob.loc
+ status_flags &= ~LEAPING
+ now_pushing = 0
+ return
+
//BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller
if((tmob.a_intent == "help" || tmob.restrained()) && (a_intent == "help" || src.restrained()) && tmob.canmove && canmove) // mutual brohugs all around!
var/turf/oldloc = loc
@@ -1419,3 +1430,104 @@
return 0
return 1
+
+//Putting a couple of procs here that I don't know where else to dump.
+//Mostly going to be used for Vox and Vox Armalis, but other human mobs might like them (for adminbuse).
+
+/mob/living/carbon/human/proc/leap()
+ set category = "IC"
+ set name = "Leap"
+ set desc = "Leap at a target and grab them aggressively."
+
+ if(last_special > world.time)
+ return
+
+ if(stat)
+ src << "You cannot leap in your current state."
+ return
+
+ var/list/choices = list()
+ for(var/mob/living/M in view(6,src))
+ if(!istype(M,/mob/living/silicon))
+ choices += M
+ choices -= src
+
+ var/mob/living/T = input(src,"Who do you wish to leap at?") in null|choices
+
+ if(!T || !src || src.stat) return
+
+ if(get_dist(get_turf(T), get_turf(src)) > 6) return
+
+ last_special = world.time + 100
+ status_flags |= LEAPING
+
+ src.visible_message("\The [src] leaps at [T]!")
+ src.throw_at(get_step(get_turf(T),get_turf(src)), 5, 1)
+ playsound(src.loc, 'sound/voice/shriek1.ogg', 50, 1)
+
+ sleep(5)
+
+ if(status_flags & LEAPING) status_flags &= ~LEAPING
+
+ if(!src.Adjacent(T))
+ src << "\red You miss!"
+ return
+
+ T.Weaken(5)
+
+ var/use_hand = "left"
+ if(l_hand)
+ if(r_hand)
+ src << "\red You need to have one hand free to grab someone."
+ return
+ else
+ use_hand = "right"
+
+ src.visible_message("\The [src] seizes [T] aggressively!")
+
+ var/obj/item/weapon/grab/G = new(src,T)
+ if(use_hand == "left")
+ l_hand = G
+ else
+ r_hand = G
+
+ G.state = GRAB_AGGRESSIVE
+ G.icon_state = "grabbed1"
+ G.synch()
+
+/mob/living/carbon/human/proc/gut()
+ set category = "IC"
+ set name = "Gut"
+ set desc = "While grabbing someone aggressively, rip their guts out or tear them apart."
+
+ if(last_special > world.time)
+ return
+
+ if(stat)
+ src << "\red You cannot do that in your current state."
+ return
+
+ var/obj/item/weapon/grab/G = locate() in src
+ if(!G || !istype(G))
+ src << "\red You are not grabbing anyone."
+ return
+
+ if(G.state < GRAB_AGGRESSIVE)
+ src << "\red You must have an aggressive grab to gut your prey!"
+ return
+
+ last_special = world.time + 50
+
+ visible_message("\The [src] rips viciously at \the [G.affecting]'s body with its claws!")
+
+ if(istype(G.affecting,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = G.affecting
+ H.apply_damage(50,BRUTE)
+ if(H.stat == 2)
+ H.gib()
+ else
+ var/mob/living/M = G.affecting
+ if(!istype(M)) return //wut
+ M.apply_damage(50,BRUTE)
+ if(M.stat == 2)
+ M.gib()
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index e7cf18a51c1..7b8f8ead6c2 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -84,8 +84,11 @@
if (src.slurring)
if(copytext(message, 1, 2) != "*")
message = slur(message)
- ..(message)
+ if((species.name == "Vox" || species.name == "Vox Armalis") && prob(20))
+ playsound(src.loc, 'sound/voice/shriek1.ogg', 50, 1)
+
+ ..(message)
/mob/living/carbon/human/say_understands(var/other,var/datum/language/speaking = null)
@@ -123,4 +126,4 @@
return
/mob/living/carbon/human/proc/GetSpecialVoice()
- return special_voice
+ return special_voice
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 973a2ff0b90..90147c666e6 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -865,12 +865,9 @@ proc/get_damage_icon_part(damage_state, body_part)
if(r_hand)
r_hand.screen_loc = ui_rhand //TODO
var/t_state = r_hand.item_state
- if(!t_state)
- t_state = r_hand.icon_state
- var/dmi='icons/mob/items_righthand.dmi'
- if(r_hand.custom)
- dmi=r_hand.icon
- overlays_standing[R_HAND_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]")
+ if(!t_state) t_state = r_hand.icon_state
+ if(r_hand.icon_override) t_state = "[t_state]_r"
+ overlays_standing[R_HAND_LAYER] = image("icon" = ((r_hand.icon_override) ? r_hand.icon_override : 'icons/mob/items_righthand.dmi'), "icon_state" = "[t_state]")
if (handcuffed) drop_r_hand()
else
overlays_standing[R_HAND_LAYER] = null
@@ -881,12 +878,9 @@ proc/get_damage_icon_part(damage_state, body_part)
if(l_hand)
l_hand.screen_loc = ui_lhand //TODO
var/t_state = l_hand.item_state
- if(!t_state)
- t_state = l_hand.icon_state
- var/dmi='icons/mob/items_lefthand.dmi'
- if(l_hand.custom)
- dmi=l_hand.icon
- overlays_standing[L_HAND_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]")
+ if(!t_state) t_state = l_hand.icon_state
+ if(l_hand.icon_override) t_state = "[t_state]_l"
+ overlays_standing[L_HAND_LAYER] = image("icon" = ((l_hand.icon_override) ? l_hand.icon_override : 'icons/mob/items_lefthand.dmi'), "icon_state" = "[t_state]")
if (handcuffed) drop_l_hand()
else
overlays_standing[L_HAND_LAYER] = null
@@ -896,7 +890,7 @@ proc/get_damage_icon_part(damage_state, body_part)
overlays_standing[TAIL_LAYER] = null
if(species.tail && species.bodyflags & HAS_TAIL)
- if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
+ if(!wear_suit || !(wear_suit.flags_inv & HIDETAIL) && !istype(wear_suit, /obj/item/clothing/suit/space))
var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_s")
tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index e80cb41b766..41ba3b266ef 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -212,7 +212,44 @@
flags = NO_SCAN | IS_WHITELISTED | NO_BLOOD
+/datum/species/vox/armalis
+ name = "Vox Armalis"
+ icobase = 'icons/mob/human_races/r_armalis.dmi'
+ deform = 'icons/mob/human_races/r_armalis.dmi'
+ language = "Vox-pidgin"
+
+ warning_low_pressure = 50
+ hazard_low_pressure = 0
+
+ cold_level_1 = 80
+ cold_level_2 = 50
+ cold_level_3 = 0
+
+ heat_level_1 = 2000
+ heat_level_2 = 3000
+ heat_level_3 = 4000
+
+ brute_mod = 0.2
+ burn_mod = 0.2
+
+ eyes = "blank_eyes"
+ breath_type = "nitrogen"
+
+ flags = NO_SCAN | NO_BLOOD | HAS_TAIL | NO_PAIN | IS_WHITELISTED
+
+ blood_color = "#2299FC"
+ flesh_color = "#808D11"
+
+ tail = "armalis_tail"
+
+/datum/species/vox/armalis/handle_post_spawn(var/mob/living/carbon/human/H)
+ H.verbs += /mob/living/carbon/human/proc/gut
+ ..()
+
/datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H)
+
+ H.verbs += /mob/living/carbon/human/proc/leap
+
var/datum/organ/external/affected = H.get_organ("head")
//To avoid duplicates.
diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm
index 0f5c8400b06..24a1a550f01 100644
--- a/code/modules/projectiles/guns/alien.dm
+++ b/code/modules/projectiles/guns/alien.dm
@@ -12,7 +12,6 @@
item_state = "bolt"
//Launcher.
-
/obj/item/weapon/spikethrower
name = "Vox spike thrower"
@@ -112,4 +111,59 @@
spike.loc = get_turf(src)
spike.throw_at(target,10,fire_force)
spike = null
- update_icon()
\ No newline at end of file
+ update_icon()
+
+//This gun only functions for armalis. The on-sprite is too huge to render properly on other sprites.
+/obj/item/weapon/gun/energy/noisecannon
+
+ name = "alien heavy cannon"
+ desc = "It's some kind of enormous alien weapon, as long as a man is tall."
+
+ icon = 'icons/obj/gun.dmi' //Actual on-sprite is handled by icon_override.
+ icon_override = 'icons/mob/vox.dmi'
+ icon_state = "noisecannon"
+ item_state = "noisecannon"
+ recoil = 1
+
+ force = 10
+ projectile_type = "/obj/item/projectile/energy/sonic"
+ cell_type = "/obj/item/weapon/cell/super"
+ fire_delay = 40
+ fire_sound = 'sound/effects/basscannon.ogg'
+
+ var/mode = 1
+
+/obj/item/weapon/gun/energy/noisecannon/attack_hand(mob/user as mob)
+ if(loc != user)
+ var/mob/living/carbon/human/H = user
+ if(istype(H))
+ if(H.species.name == "Vox Armalis")
+ ..()
+ return
+ user << "\red \The [src] is far too large for you to pick up."
+ return
+
+/obj/item/weapon/gun/energy/noisecannon/process_chambered() //Does not have ammo.
+ in_chamber = new projectile_type(src)
+ return 1
+
+/obj/item/weapon/gun/energy/noisecannon/update_icon()
+ return
+
+//Projectile.
+/obj/item/projectile/energy/sonic
+ name = "distortion"
+ icon = 'icons/obj/machines/particle_accelerator2.dmi'
+ icon_state = "particle"
+ damage = 60
+ damage_type = BRUTE
+ flag = "bullet"
+ pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
+
+ embed = 0
+ weaken = 5
+ stun = 5
+
+/obj/item/projectile/energy/sonic/proc/split()
+ //TODO: create two more projectiles to either side of this one, fire at targets to the side of target turf.
+ return
\ No newline at end of file
diff --git a/code/setup.dm b/code/setup.dm
index f013b23a471..3176d841f5b 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -227,6 +227,7 @@ var/MAX_EXPLOSION_RANGE = 14
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
+#define HIDETAIL 16 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!!
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!! (ears means headsets and such)
#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!! (eyes means glasses)
@@ -483,6 +484,7 @@ var/list/global_mutations = list() // list of hidden mutation things
#define CANWEAKEN 2
#define CANPARALYSE 4
#define CANPUSH 8
+#define LEAPING 16
#define GODMODE 4096
#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath
#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system
diff --git a/icons/effects/species.dmi b/icons/effects/species.dmi
index 3129808d01a..d5405066ab9 100644
Binary files a/icons/effects/species.dmi and b/icons/effects/species.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index f0eb612f407..bc995d223de 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi
index 0661fd0f17f..2903ede5464 100644
Binary files a/icons/mob/vox.dmi and b/icons/mob/vox.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index c4e727d4eca..016b8bb5cd2 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index 71719c626fb..f735c9d74a7 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index 931d223743f..4776604d086 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index f7ad8381fa7..0f881d9322e 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/machines/particle_accelerator2.dmi b/icons/obj/machines/particle_accelerator2.dmi
new file mode 100644
index 00000000000..ace6526b601
Binary files /dev/null and b/icons/obj/machines/particle_accelerator2.dmi differ
diff --git a/sound/effects/basscannon.ogg b/sound/effects/basscannon.ogg
new file mode 100644
index 00000000000..c0bc8efe445
Binary files /dev/null and b/sound/effects/basscannon.ogg differ
diff --git a/sound/voice/shriek1.ogg b/sound/voice/shriek1.ogg
new file mode 100644
index 00000000000..bb13db1ca0e
Binary files /dev/null and b/sound/voice/shriek1.ogg differ