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
@@ -9,6 +9,7 @@
slot_flags = SLOT_EARS
var/translate_binary = 0
var/translate_hive = 0
var/translate_hivenet = 0
var/syndie = 0
var/list/channels = list()
@@ -28,6 +29,13 @@
translate_binary = 1
origin_tech = "syndicate=3"
/obj/item/device/encryptionkey/hivenet
name = "hivenet encryption chip"
desc = "It appears to be a Vaurca hivenet encryption chip, for localized broadcasts."
translate_hivenet = 1
icon = 'icons/obj/stock_parts.dmi'
icon_state = "neuralchip"
/obj/item/device/encryptionkey/headset_sec
name = "security radio encryption key"
icon_state = "sec_cypherkey"
@@ -11,6 +11,7 @@
slot_flags = SLOT_EARS
var/translate_binary = 0
var/translate_hive = 0
var/translate_hivenet = 0
var/obj/item/device/encryptionkey/keyslot1 = null
var/obj/item/device/encryptionkey/keyslot2 = null
maxf = 1489
@@ -48,6 +49,9 @@
if (translate_hive)
var/datum/language/hivemind = all_languages["Hivemind"]
hivemind.broadcast(M, message)
if (translate_hivenet)
var/datum/language/bug = all_languages["Hivenet"]
bug.broadcast(M, message)
return null
return ..()
@@ -61,6 +65,10 @@
return ..(freq, level)
return -1
/obj/item/device/radio/headset/hivenet
translate_hivenet = 1
ks1type = /obj/item/device/encryptionkey/hivenet
/obj/item/device/radio/headset/syndicate
origin_tech = "syndicate=3"
syndie = 1
@@ -279,6 +287,7 @@
src.channels = list()
src.translate_binary = 0
src.translate_hive = 0
src.translate_hivenet = 0
src.syndie = 0
if(keyslot1)
@@ -294,6 +303,9 @@
if(keyslot1.translate_hive)
src.translate_hive = 1
if(keyslot1.translate_hivenet)
src.translate_hivenet = 1
if(keyslot1.syndie)
src.syndie = 1
@@ -310,6 +322,9 @@
if(keyslot2.translate_hive)
src.translate_hive = 1
if(keyslot2.translate_hivenet)
src.translate_hivenet = 1
if(keyslot2.syndie)
src.syndie = 1
@@ -68,6 +68,9 @@
for (var/ch_name in channels)
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
/obj/item/device/radio/attack_self(mob/user as mob)
user.set_machine(src)
interact(user)
/obj/item/device/radio/attack_self(mob/user as mob)
user.set_machine(src)
@@ -649,4 +652,4 @@
return
/obj/item/device/radio/off
listening = 0
listening = 0
@@ -232,3 +232,49 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
default_material = "glass"
//Putting heads on spears
/*bj/item/organ/external/head/attackby(var/obj/item/weapon/W, var/mob/living/user, params)
if(istype(W, /obj/item/weapon/material/twohanded/spear))
user << "<span class='notice'>You stick the head onto the spear and stand it upright on the ground.</span>"
var/obj/structure/headspear/HS = new /obj/structure/headspear(user.loc)
var/matrix/M = matrix()
src.transform = M
user.drop_item()
src.loc = HS
var/image/IM = image(src.icon,src.icon_state)
IM.overlays = src.overlays.Copy()
HS.overlays += IM
qdel(W)
qdel(src)
return
return ..()*/
/obj/item/weapon/material/twohanded/spear/attackby(var/obj/item/I, var/mob/living/user)
if(istype(I, /obj/item/organ/external/head))
user << "<span class='notice'>You stick the head onto the spear and stand it upright on the ground.</span>"
var/obj/structure/headspear/HS = new /obj/structure/headspear(user.loc)
var/matrix/M = matrix()
I.transform = M
usr.drop_item()
I.loc = HS
var/image/IM = image(I.icon,I.icon_state)
IM.overlays = I.overlays.Copy()
HS.overlays += IM
qdel(src)
return
return ..()
/obj/structure/headspear
name = "head on a spear"
desc = "How barbaric."
icon_state = "headspear"
density = 0
anchored = 1
/obj/structure/headspear/attack_hand(mob/living/user)
user.visible_message("<span class='warning'>[user] kicks over \the [src]!</span>", "<span class='danger'>You kick down \the [src]!</span>")
new /obj/item/weapon/material/twohanded/spear(user.loc)
for(var/obj/item/organ/external/head/H in src)
H.loc = user.loc
qdel(src)
@@ -56,6 +56,35 @@
"<span class='danger'>\The [user] is falling on the [src.name]! It looks like [tempgender] trying to commit suicide.</span>")
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/glaive
name = "energy glaive"
desc = "An energized glaive."
icon_state = "eglaive0"
active_force = 60
active_throwforce = 60
active_w_class = 5
force = 20
throwforce = 30
throw_speed = 5
throw_range = 10
w_class = 5
flags = CONDUCT | NOSHIELD | NOBLOODY
origin_tech = "magnets=3;combat=4;syndicate=4"
attack_verb = list("stabbed", "chopped", "sliced", "cleaved", "slashed", "cut")
sharp = 1
edge = 1
slot_flags = SLOT_BACK
/obj/item/weapon/melee/energy/glaive/activate(mob/living/user)
..()
icon_state = "eglaive1"
user << "\blue \The [src] is now energised."
/obj/item/weapon/melee/energy/glaive/deactivate(mob/living/user)
..()
icon_state = initial(icon_state)
user << "\blue \The [src] is de-energised."
/*
* Energy Axe
*/
@@ -76,7 +76,7 @@
return
*/
..()
//Please don't clutter the parent storage item with stupid hacks.
can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(istype(W, /obj/item/weapon/storage/backpack/holding))
@@ -166,6 +166,12 @@
desc = "It's an orange backpack which was designed to hold beakers, pill bottles and bottles."
icon_state = "chempack"
/obj/item/weapon/storage/backpack/cloak
name = "tunnel cloak"
desc = "It's a Vaurca cloak, with paltry storage options."
icon_state = "cape"
max_storage_space = 12
/*
* Satchel Types
*/