mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-31 20:43:12 +00:00
@@ -92,4 +92,9 @@
|
||||
siemens_coefficient = 0
|
||||
phoronproof = 1
|
||||
permeability_coefficient = 0.05
|
||||
species_restricted = list("Vox")
|
||||
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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -33,17 +33,16 @@
|
||||
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.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
|
||||
|
||||
@@ -47,9 +47,10 @@
|
||||
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
|
||||
air_type = /obj/item/weapon/tank/vox
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/vox
|
||||
boot_type = /obj/item/clothing/shoes/magboots/rig/vox
|
||||
@@ -58,10 +59,15 @@
|
||||
|
||||
/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")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/shoes.dmi'
|
||||
)
|
||||
phoronproof = 1
|
||||
|
||||
/obj/item/clothing/suit/space/rig/vox
|
||||
@@ -69,14 +75,37 @@
|
||||
phoronproof = 1
|
||||
|
||||
/obj/item/clothing/gloves/gauntlets/rig/vox
|
||||
name = "talons"
|
||||
siemens_coefficient = 0
|
||||
species_restricted = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = '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
|
||||
@@ -88,6 +117,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
|
||||
|
||||
@@ -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"
|
||||
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 and writhing flesh."
|
||||
icon_state = "vox-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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
// taste_sensitivity = TASTE_DULL
|
||||
|
||||
slowdown = -0.5
|
||||
|
||||
speech_sounds = list('sound/voice/shriek1.ogg')
|
||||
speech_chance = 20
|
||||
|
||||
@@ -37,7 +39,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
|
||||
@@ -75,11 +77,11 @@
|
||||
/datum/species/vox/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/phoron/vox(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H), slot_r_hand)
|
||||
H.internal = H.back
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/phoron/vox(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H.back), slot_in_backpack)
|
||||
H.internal = H.r_hand
|
||||
H.internal = locate(/obj/item/weapon/tank) in H.contents
|
||||
|
||||
@@ -223,4 +223,25 @@
|
||||
icon_state = "impact_lightning"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#00C6FF"
|
||||
light_color = "#00C6FF"
|
||||
|
||||
//----------------------------
|
||||
// Dark matter
|
||||
//----------------------------
|
||||
/obj/effect/projectile/darkmatter/tracer
|
||||
icon_state = "darkb"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#8837A3"
|
||||
|
||||
/obj/effect/projectile/darkmatter/muzzle
|
||||
icon_state = "muzzle_darkb"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#8837A3"
|
||||
|
||||
/obj/effect/projectile/darkmatter/impact
|
||||
icon_state = "impact_darkb"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#8837A3"
|
||||
@@ -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)
|
||||
@@ -149,4 +149,4 @@ obj/item/weapon/gun/energy/staff/focus
|
||||
charge_cost = 200
|
||||
user << "<span class='warning'>The [src.name] will now strike only a single person.</span>"
|
||||
projectile_type = "/obj/item/projectile/forcebolt"
|
||||
*/
|
||||
*/
|
||||
135
code/modules/projectiles/guns/vox.dm
Normal file
135
code/modules/projectiles/guns/vox.dm
Normal file
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* 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 = "dark matter gun"
|
||||
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
|
||||
projectile_type = /obj/item/projectile/beam/darkmatter
|
||||
self_recharge = 1
|
||||
accuracy = 2
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="focused", burst=1, fire_delay=null, move_delay=null, burst_accuracy=list(2), dispersion=null, projectile_type=/obj/item/projectile/beam/darkmatter, charge_cost = 600),
|
||||
list(mode_name="scatter burst", burst=8, fire_delay=null, move_delay=4, burst_accuracy=list(0, 0, 0, 0, 0, 0, 0, 0), dispersion=list(3, 3, 3, 3, 3, 3, 3, 3, 3), projectile_type=/obj/item/projectile/energy/darkmatter, charge_cost = 300),
|
||||
)
|
||||
|
||||
/obj/item/projectile/beam/darkmatter
|
||||
name = "dark matter bolt"
|
||||
icon_state = "darkb"
|
||||
damage = 60
|
||||
armor_penetration = 35
|
||||
damage_type = BRUTE
|
||||
check_armour = "energy"
|
||||
light_color = "#8837A3"
|
||||
|
||||
embed_chance = 0
|
||||
|
||||
muzzle_type = /obj/effect/projectile/darkmatter/muzzle
|
||||
tracer_type = /obj/effect/projectile/darkmatter/tracer
|
||||
impact_type = /obj/effect/projectile/darkmatter/impact
|
||||
|
||||
/obj/item/projectile/energy/darkmatter
|
||||
name = "dark matter pellet"
|
||||
icon_state = "dark_pellet"
|
||||
damage = 20
|
||||
armor_penetration = 35
|
||||
damage_type = BRUTE
|
||||
check_armour = "energy"
|
||||
light_color = "#8837A3"
|
||||
|
||||
embed_chance = 0
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
projectile_type=/obj/item/projectile/sonic/strong
|
||||
|
||||
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 = 30
|
||||
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 after initial testing. - Anewbe
|
||||
/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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -156,4 +156,3 @@
|
||||
nodamage = 1
|
||||
damage_type = HALLOSS
|
||||
muzzle_type = /obj/effect/projectile/bullet/muzzle
|
||||
|
||||
|
||||
Reference in New Issue
Block a user