Vaurca Content 2 (#426)

Vaurca hivemind language added.
Vaurca appropriate name generator added.
Tied Vaurca language to their neural socket organ.
Added a method for non-Vaurca to intercept the Vaurca hivenet so long as they construct the correct item.
Sprites for Vaurca organs.
Neutered all Vaurca.
Cutting open a Vaurca for surgery now requires heavier equipment.
Injecting a Vaurca with a syringe now will take time.
Adds various Vaurca cosmetic items available via loadout.
Adds a few new burst-fire weapons exploiting the burstfire fix - obtainable via research or adminbus.
Ports the ability to stick heads on spears from Paradise-code.
Added an error message when trying to bite someone before the cooldown expires.
Removed spoken Vaurca language.
Heavily nerfed K'ois' properties.
Halved the nutrition value of nutriment, returning it to old-code state.
Nerfed the damage dealt by bite, while reducing the cooldown.
Fixed burstfire weapons spamming attack messages when fired, allowing for more automatic weapons.
Fixed Vaurca player ability to select coloured eyes.
This commit is contained in:
LordFowl
2016-06-24 14:55:44 +03:00
committed by skull132
parent 740c0efb0b
commit 56e288e910
59 changed files with 735 additions and 77 deletions
@@ -168,6 +168,19 @@
/obj/item/ammo_magazine/a75/empty
initial_ammo = 0
/obj/item/ammo_magazine/trodpack
name = "tungsten rod pack"
icon_state = "trodpack"
mag_type = MAGAZINE
caliber = "trod"
ammo_type = /obj/item/ammo_casing/trod
multiple_sprites = 1
max_ammo = 2
/obj/item/ammo_magazine/trodpack/empty
initial_ammo = 0
/obj/item/ammo_magazine/a762
name = "magazine box (7.62mm)"
icon_state = "a762"
@@ -18,6 +18,12 @@
caliber = "38"
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/ammo_casing/trod
desc = "Hyperdense tungsten rod residue."
icon_state = "trod"
caliber = "trod"
projectile_type = /obj/item/projectile/bullet/trod
/obj/item/ammo_casing/c38r
desc = "A .38 rubber bullet casing."
caliber = "38"
@@ -69,7 +75,6 @@
caliber = "12mm"
projectile_type = /obj/item/projectile/bullet/pistol/medium
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
desc = "A 12 gauge slug."
+22 -18
View File
@@ -199,7 +199,25 @@
if(!(target && target.loc))
target = targloc
pointblank = 0
var/obj/projectile = consume_next_projectile(user)
if(!projectile)
return
else
if(silenced)
return
else
if(reflex)
user.visible_message(
"<span class='reflex_shoot'><b>\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""] by reflex!<b></span>",
"<span class='reflex_shoot'>You fire \the [src] by reflex!</span>",
"You hear a [fire_sound_text]!"
)
else
user.visible_message(
"<span class='danger'>\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""]!</span>",
"<span class='warning'>You fire \the [src]!</span>",
"You hear a [fire_sound_text]!"
)
update_held_icon()
//update timing
@@ -236,26 +254,12 @@
playsound(user, fire_sound, 10, 1)
else
playsound(user, fire_sound, 50, 1)
if(reflex)
user.visible_message(
"<span class='reflex_shoot'><b>\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""] by reflex!<b></span>",
"<span class='reflex_shoot'>You fire \the [src] by reflex!</span>",
"You hear a [fire_sound_text]!"
)
else
user.visible_message(
"<span class='danger'>\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""]!</span>",
"<span class='warning'>You fire \the [src]!</span>",
"You hear a [fire_sound_text]!"
)
if(muzzle_flash)
set_light(muzzle_flash)
if(muzzle_flash)
set_light(muzzle_flash)
if(recoil)
spawn()
shake_camera(user, recoil+1, recoil)
shake_camera(user, recoil+1, recoil)
update_icon()
@@ -98,6 +98,85 @@
origin_tech = "combat=5;phorontech=4"
projectile_type = /obj/item/projectile/energy/phoron
/* Vaurca Weapons */
/obj/item/weapon/gun/energy/vaurca
name = "Alien Firearm"
desc = "Vaurcae weapons tend to be specialized and highly lethal. This one doesn't do much"
/obj/item/weapon/gun/energy/vaurca/bfg
name = "BFG 9000"
desc = "'Bio-Force Gun'. Yeah, right."
icon_state = "bfg"
item_state = "bfg"
charge_meter = 0
w_class = 3
fire_sound = 'sound/magic/LightningShock.ogg'
force = 30
projectile_type = /obj/item/projectile/energy/sonic
slot_flags = SLOT_BACK
max_shots = 40
firemodes = list(
list(name="EXTERMINATE", burst=20, burst_delay = 1, move_delay = 20, fire_delay = 40, dispersion = list(3.0, 3.25, 3.5, 3.75, 4.0, 4.25, 4.5, 4.75, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.25)),
)
/obj/item/weapon/gun/energy/vaurca/gatlinglaser
name = "Gatling Laser"
desc = "A highly sophisticated rapid fire laser weapon."
icon_state = "gatling"
item_state = "gatling"
fire_sound = 'sound/weapons/Laser.ogg'
origin_tech = "combat=5;materials=2"
charge_meter = 0
slot_flags = SLOT_BACK
w_class = 3
force = 10
projectile_type = /obj/item/projectile/beam/gatlinglaser
max_shots = 80
firemodes = list(
list(name="concentrated burst", burst=10, burst_delay = 1, fire_delay = 10, dispersion = list(0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)),
list(name="spray", burst=20, burst_delay = 1, move_delay = 5, fire_delay = 30, dispersion = list(0.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.0, 3.25)),
)
/obj/item/weapon/gun/energy/vaurca/blaster
name = "Zo'ra Blaster"
desc = "An elegant weapon for a more civilized time."
icon_state = "blaster"
item_state = "blaster"
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BACK
w_class = 3
force = 10
projectile_type = /obj/item/projectile/energy/blaster
max_shots = 30
firemodes = list(
list(name="single shot", burst=1, burst_delay = 1, fire_delay = 0),
list(name="concentrated burst", burst=3, burst_delay = 1, fire_delay = 5),
)
/*/obj/item/weapon/gun/energy/vaurca/flamer
name = "Vaurcae Incinerator"
desc = "A devious flamethrower device that procedurally converts atmosphere to fuel for a virtually unlimited tank."
icon_state = "incinerator"
item_state = "incinerator"
fire_sound = 'sound/effects/extinguish.ogg'
charge_meter = 0
slot_flags = SLOT_BACK
w_class = 3
force = 10
projectile_type = /obj/item/projectile/energy/flamer
self_recharge = 1
recharge_time = 2
max_shots = 80
firemodes = list(
list(name="spray", burst = 20, burst_delay = -1, fire_delay = 10, dispersion = list(0.5, 0.5, 1.0, 1.0, 1.5, 1.5, 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.0, 6.0)),
)*/
/* Staves */
/obj/item/weapon/gun/energy/staff
@@ -282,3 +282,24 @@
/obj/item/weapon/gun/projectile/automatic/tommygun/update_icon()
..()
icon_state = (ammo_magazine)? "tommygun" : "tommygun-empty"
/obj/item/weapon/gun/projectile/automatic/railgun
name = "Railgun"
desc = "An advanced rifle that magnetically propels hyperdense rods at breakneck speeds to devastating effect."
icon_state = "railgun"
item_state = "arifle"
w_class = 3
force = 10
caliber = "trod"
origin_tech = "combat=5;materials=2"
slot_flags = SLOT_BELT|SLOT_BACK
fire_sound = 'sound/effects/Explosion2.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/trodpack
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
firemodes = list(
list(name="single coil", burst=1, move_delay=6, accuracy = list(0)),
list(name="dual coil", burst=2, move_delay=8, accuracy = list(-2,-3), dispersion = list(2.0, 3.0)),
)
@@ -143,3 +143,13 @@
muzzle_type = /obj/effect/projectile/stun/muzzle
tracer_type = /obj/effect/projectile/stun/tracer
impact_type = /obj/effect/projectile/stun/impact
/obj/item/projectile/beam/gatlinglaser
name = "heavy laser"
icon_state = "heavylaser"
damage = 5
muzzle_type = /obj/effect/projectile/laser_omni/muzzle
tracer_type = /obj/effect/projectile/laser_omni/tracer
impact_type = /obj/effect/projectile/laser_omni/impact
+47 -1
View File
@@ -28,7 +28,7 @@
//snap pop
playsound(src, 'sound/effects/snap.ogg', 50, 1)
src.visible_message("<span class='warning'>\The [src] explodes in a bright flash!</span>")
new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows
new /obj/effect/effect/sparks(T)
new /obj/effect/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration)
@@ -99,3 +99,49 @@
damage = 20
damage_type = TOX
irradiate = 20
/obj/item/projectile/energy/sonic
name = "distortion"
icon = 'icons/obj/machines/particle_accelerator2.dmi'
icon_state = "particle"
check_armour = "bomb"
damage = 60
damage_type = BRUTE
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
kill_count = 100
embed = 0
incinerate = 40
weaken = 5
stun = 5
/obj/item/projectile/energy/sonic/on_hit(var/atom/target, var/blocked = 0)
var/mob/M = target
if(isturf(target))
target.ex_act(0)
if(ismob(target))
explosion(target, -1, 0, 2)
M.gib()
..()
/obj/item/projectile/energy/blaster
name = "blaster bolt"
icon_state = "laser"
check_armour = "laser"
damage = 10
damage_type = BURN
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
embed = 0
incinerate = 5
/*/obj/item/projectile/energy/flamer
name = "promethium"
icon_state = "fire"
check_armour = "energy"
kill_count = 25
damage = 10
damage_type = BURN
pass_flags = PASSTABLE
step_delay = 2
kill_count = 75
embed = 0
incinerate = 10*/
@@ -150,3 +150,15 @@
var/mob/living/carbon/human/M = target
M.adjustBrainLoss(20)
M.hallucination += 20
/obj/item/projectile/bullet/trod
name ="tungsten rod"
icon_state= "gauss"
damage = 75
check_armour = "bomb"
sharp = 1
edge = 1
on_hit(var/atom/target, var/blocked = 0)
explosion(target, 0, 0, 4)
return 1