diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 730529e5e22..43a19c558f6 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -33,7 +33,6 @@ w_class = ITEMSIZE_NORMAL item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | PHORONGUARD allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank) - slowdown = 1 phoronproof = 1 armor = list(melee = 60, bullet = 50, laser = 40,energy = 15, bomb = 30, bio = 30, rad = 30) siemens_coefficient = 0.2 diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index 1da4fbba4b4..ee82610d3e5 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -65,6 +65,7 @@ /obj/item/clothing/shoes/magboots/rig/vox name = "talons" species_restricted = list("Vox") + icon = 'icons/mob/species/vox/shoes.dmi' phoronproof = 1 /obj/item/clothing/suit/space/rig/vox @@ -74,11 +75,33 @@ /obj/item/clothing/gloves/gauntlets/rig/vox siemens_coefficient = 0 species_restricted = list("Vox") + icon = 'icons/mob/species/vox/gloves.dmi' phoronproof = 1 +/obj/item/weapon/rig/vox/carapace + name = "dense alien control module" + suit_type = "dense alien" + armor = list(melee = 60, bullet = 50, laser = 40, energy = 15, bomb = 30, bio = 30, rad = 30) + emp_protection = 40 //change this to 30 if too high. + phoronproof = 1 + + req_access = list(access_syndicate) + + cell_type = /obj/item/weapon/cell/hyper + + initial_modules = list( + /obj/item/rig_module/mounted/energy_blade, + /obj/item/rig_module/sprinter, + /obj/item/rig_module/electrowarfare_suite, + /obj/item/rig_module/vision, + /obj/item/rig_module/power_sink, + /obj/item/rig_module/self_destruct + ) + /obj/item/weapon/rig/vox/stealth name = "sinister alien control module" suit_type = "sinister alien" + icon_state = "voxstealth_rig" armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) emp_protection = 40 //change this to 30 if too high. slowdown = 0 @@ -90,6 +113,7 @@ initial_modules = list( /obj/item/rig_module/stealth_field, + /obj/item/rig_module/electrowarfare_suite, /obj/item/rig_module/vision, /obj/item/rig_module/power_sink, /obj/item/rig_module/self_destruct diff --git a/code/modules/clothing/under/xenos/vox.dm b/code/modules/clothing/under/xenos/vox.dm index 0ba583d536b..e84f6952761 100644 --- a/code/modules/clothing/under/xenos/vox.dm +++ b/code/modules/clothing/under/xenos/vox.dm @@ -21,8 +21,8 @@ //Vox Accessories /obj/item/clothing/accessory/storage/vox name = "" - desc = "An alien mesh. Seems to be made up mostly of pockets" -// icon_state = "webbing" + desc = "An alien mesh. Seems to be made up mostly of pockets and writhing flesh." + icon_state = "vox-webbing" slot = "vox" slots = 5 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 8a7df26cf0e..1a9a986dd1d 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm @@ -17,6 +17,8 @@ // taste_sensitivity = TASTE_DULL + slowdown = -0.5 + speech_sounds = list('sound/voice/shriek1.ogg') speech_chance = 20 diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm deleted file mode 100644 index 5889b523e10..00000000000 --- a/code/modules/projectiles/guns/alien.dm +++ /dev/null @@ -1,46 +0,0 @@ -// Alien pinning weapon. -/obj/item/weapon/gun/launcher/spikethrower - - name = "spike thrower" - desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." - - var/last_regen = 0 - var/spike_gen_time = 150 - var/max_spikes = 3 - var/spikes = 3 - release_force = 30 - icon = 'icons/obj/gun.dmi' - icon_state = "spikethrower3" - item_state = "spikethrower" - fire_sound_text = "a strange noise" - fire_sound = 'sound/weapons/bladeslice.ogg' - -/obj/item/weapon/gun/launcher/spikethrower/New() - ..() - processing_objects.Add(src) - last_regen = world.time - -/obj/item/weapon/gun/launcher/spikethrower/Destroy() - processing_objects.Remove(src) - ..() - -/obj/item/weapon/gun/launcher/spikethrower/process() - if(spikes < max_spikes && world.time > last_regen + spike_gen_time) - spikes++ - last_regen = world.time - update_icon() - -/obj/item/weapon/gun/launcher/spikethrower/examine(mob/user) - ..(user) - user << "It has [spikes] spike\s remaining." - -/obj/item/weapon/gun/launcher/spikethrower/update_icon() - icon_state = "spikethrower[spikes]" - -/obj/item/weapon/gun/launcher/spikethrower/update_release_force() - return - -/obj/item/weapon/gun/launcher/spikethrower/consume_next_projectile() - if(spikes < 1) return null - spikes-- - return new /obj/item/weapon/spike(src) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d8d6496722e..4443775df5b 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -149,20 +149,4 @@ obj/item/weapon/gun/energy/staff/focus charge_cost = 200 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 + */ \ No newline at end of file diff --git a/code/modules/projectiles/guns/vox.dm b/code/modules/projectiles/guns/vox.dm new file mode 100644 index 00000000000..4ca70855f5e --- /dev/null +++ b/code/modules/projectiles/guns/vox.dm @@ -0,0 +1,109 @@ +/* + * Vox Spike Thrower + * Alien pinning weapon. + */ + +/obj/item/weapon/gun/launcher/spikethrower + name = "spike thrower" + desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." + + var/last_regen = 0 + var/spike_gen_time = 150 + var/max_spikes = 3 + var/spikes = 3 + release_force = 30 + icon = 'icons/obj/gun.dmi' + icon_state = "spikethrower3" + item_state = "spikethrower" + fire_sound_text = "a strange noise" + fire_sound = 'sound/weapons/bladeslice.ogg' + +/obj/item/weapon/gun/launcher/spikethrower/New() + ..() + processing_objects.Add(src) + last_regen = world.time + +/obj/item/weapon/gun/launcher/spikethrower/Destroy() + processing_objects.Remove(src) + ..() + +/obj/item/weapon/gun/launcher/spikethrower/process() + if(spikes < max_spikes && world.time > last_regen + spike_gen_time) + spikes++ + last_regen = world.time + update_icon() + +/obj/item/weapon/gun/launcher/spikethrower/examine(mob/user) + ..(user) + user << "It has [spikes] spike\s remaining." + +/obj/item/weapon/gun/launcher/spikethrower/update_icon() + icon_state = "spikethrower[spikes]" + +/obj/item/weapon/gun/launcher/spikethrower/update_release_force() + return + +/obj/item/weapon/gun/launcher/spikethrower/consume_next_projectile() + if(spikes < 1) return null + spikes-- + return new /obj/item/weapon/spike(src) + +/* + * Vox Darkmatter Cannon + */ +/obj/item/weapon/gun/energy/darkmatter + name = "spike thrower" + desc = "A vicious alien beam weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." + icon_state = "darkcannon" + item_state = "darkcannon" + fire_sound = 'sound/weapons/eLuger.ogg' + charge_cost = 600 + self_recharge = 1 + projectile_type = /obj/item/projectile/beam/darkmatter + +/obj/item/projectile/beam/darkmatter + name = "dark matter bolt" + icon_state = "laser" + damage = 45 + armor_penetration = 10 + damage_type = BRUTE + check_armour = "energy" + +/* + * Vox Darkmatter Cannon + */ +/obj/item/weapon/gun/energy/sonic + name = "soundcannon" + desc = "A vicious alien sound weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." + icon_state = "noise" + item_state = "noise" + fire_sound = 'sound/effects/basscannon.ogg' + self_recharge = 1 + + firemodes = list( + list(mode_name="normal", projectile_type=/obj/item/projectile/sonic/strong, charge_cost = 600), + list(mode_name="suppressive", projectile_type=/obj/item/projectile/sonic/weak, charge_cost = 300), + ) + +/obj/item/projectile/sonic + name = "sonic pulse" + icon_state = "sound" + damage = 15 + armor_penetration = 100 + damage_type = BRUTE + check_armour = "melee" + embed_chance = 0 + vacuum_traversal = 0 + +/obj/item/projectile/sonic/weak + agony = 30 + +/obj/item/projectile/sonic/strong + damage = 45 + +//Already have thoughts on how to improve this, will take a day or two +/obj/item/projectile/sonic/strong/on_hit(var/atom/movable/target, var/blocked = 0) + if(istype(target)) + var/throwdir = get_dir(firer,target) + target.throw_at(get_edge_target_turf(target, throwdir),10,10) + return 1 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 1f0dd03854f..bf83edececb 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -8,6 +8,7 @@ eyeblur = 4 var/frequency = 1 hitscan = 1 + embed_chance = 0 invisibility = 101 //beam projectiles are invisible as they are rendered by the effect engine light_range = 2 light_power = 0.5 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 59c881d99e0..23630954b00 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -151,9 +151,9 @@ var/ear_safety = 0 ear_safety = M.get_ear_protection() if(ear_safety == 1) - M.Weaken(2) + M.confused += 150 else if (ear_safety > 1) - M.Weaken(1) + M.confused += 30 else if (!ear_safety) M.Stun(10) M.Weaken(3) @@ -171,51 +171,4 @@ /obj/item/projectile/energy/plasmastun/on_hit(var/atom/target) bang(target) - . = ..() - -/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 + . = ..() \ No newline at end of file diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 7ce94948fcc..8aba3c0928d 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -156,4 +156,3 @@ nodamage = 1 damage_type = HALLOSS muzzle_type = /obj/effect/projectile/bullet/muzzle - diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index dd4369cce7f..3c2b317e8f6 100644 Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index d8f221abef0..02594c78bbc 100644 Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ diff --git a/icons/mob/rig_back.dmi b/icons/mob/rig_back.dmi index aee3eedc772..19bf38764e6 100644 Binary files a/icons/mob/rig_back.dmi and b/icons/mob/rig_back.dmi differ diff --git a/icons/mob/species/vox/gloves.dmi b/icons/mob/species/vox/gloves.dmi index e069f8e36ff..16fbe55fee0 100644 Binary files a/icons/mob/species/vox/gloves.dmi and b/icons/mob/species/vox/gloves.dmi differ diff --git a/icons/mob/species/vox/head.dmi b/icons/mob/species/vox/head.dmi index fcaae2a02cf..6f272f4d1d0 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/shoes.dmi b/icons/mob/species/vox/shoes.dmi index 661e90562ab..a5a271f7cb9 100644 Binary files a/icons/mob/species/vox/shoes.dmi and b/icons/mob/species/vox/shoes.dmi differ diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi index 6e8269a9581..9692c5d111e 100644 Binary files a/icons/mob/species/vox/suit.dmi and b/icons/mob/species/vox/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index ff4a15e6798..c081276a2fd 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 9b3739078fc..6518425b548 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 a4f3cf88933..88105392b5a 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 23cece26b74..daddbeddbc6 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 f5f7b557247..a9a71009bff 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/species/vox/suits.dmi b/icons/obj/clothing/species/vox/suits.dmi index 933e0be8172..5efadccb805 100644 Binary files a/icons/obj/clothing/species/vox/suits.dmi and b/icons/obj/clothing/species/vox/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 2aa2e822c89..3adab0f88e4 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 6bf741b8afd..09fb9b6b7aa 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index a01b88cfb2d..de97f6cf49f 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 e179a67f4ac..970d2f8a425 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/polaris.dme b/polaris.dme index c05f4a6db31..f2b31306a10 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1820,10 +1820,10 @@ #include "code\modules\projectiles\projectile.dm" #include "code\modules\projectiles\ammunition\boxes.dm" #include "code\modules\projectiles\ammunition\bullets.dm" -#include "code\modules\projectiles\guns\alien.dm" #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\launcher.dm" #include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\vox.dm" #include "code\modules\projectiles\guns\energy\laser.dm" #include "code\modules\projectiles\guns\energy\nuclear.dm" #include "code\modules\projectiles\guns\energy\pulse.dm"