diff --git a/code/game/objects/items/weapons/vaurca_items.dm b/code/game/objects/items/weapons/vaurca_items.dm
index 18db8d99277..7a13b765692 100644
--- a/code/game/objects/items/weapons/vaurca_items.dm
+++ b/code/game/objects/items/weapons/vaurca_items.dm
@@ -37,15 +37,17 @@
/obj/item/weapon/melee/energy/vaurca/activate(mob/living/user)
..()
icon_state = "eknife1"
- item_state = "eknife0"
+ item_state = icon_state
damtype = "fire"
+ user.regenerate_icons()
user << "\The [src] is now energised."
/obj/item/weapon/melee/energy/vaurca/deactivate(mob/living/user)
..()
icon_state = "eknife0"
- item_state = "eknife0"
+ item_state = icon_state
damtype = "brute"
+ user.regenerate_icons()
user << "\The [src] is de-energised."
/obj/item/vaurca/box
@@ -57,14 +59,14 @@
/obj/item/vaurca/box/attack_self(mob/user as mob)
- if(isvaurca(src))
+ if(isvaurca(user))
user << "You are familiar with the box's solution, and open it to reveal an ancient thing. How tedious."
var/obj/item/weapon/archaeological_find/X = new /obj/item/weapon/archaeological_find
user.remove_from_mob(src)
user.put_in_hands(X)
qdel(src)
- else if(isipc(src))
+ else if(isipc(user))
user << "You analyze the box's markings, and begin to calculate with robotic efficiency every possible combination. (You must stand still to complete the puzzle box.)"
if(do_after(user, 100))
user << "Calculations complete. You begin to brute-force the box with a mechanical determination."
@@ -75,7 +77,7 @@
user.put_in_hands(X)
qdel(src)
- else if(isvox(src))
+ else if(isvox(user))
user << "You are surprised to recognize the markings of the Apex, the Masters! You know this thing... (You must stand still to complete the puzzle box.)"
if(do_after(user, 100))
user << "After a few seconds of remembering, you input the solution to the riddle - a lovely riddle indeed - and open the box to reveal an ancient thing."
diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 1bc23a82d50..f62b213f213 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -284,8 +284,14 @@
src << "You cannot do that in your current state."
return
- var/obj/item/weapon/grab/G = get_aggressive_grab()
- if(!G) return
+ var/obj/item/weapon/grab/G = src.get_active_hand()
+ if(!istype(G))
+ src << "We must be grabbing a creature in our active hand to devour their head."
+ return
+
+ if(G.state != GRAB_KILL)
+ src << "We must have a tighter grip to devour their head."
+ return
if(istype(G.affecting,/mob/living/carbon/human))
var/mob/living/carbon/human/H = G.affecting
@@ -300,9 +306,9 @@
return
visible_message("\The [src] pulls \the [H] close, sticking \the [H]'s head into its maw!")
- sleep(50)
- get_aggressive_grab()
- if(!G) return
+ sleep(10)
+ if(!src.Adjacent(G.affecting))
+ return
visible_message("\The [src] closes their jaws around \the [H]'s head!")
playsound(H.loc, 'sound/effects/blobattack.ogg', 50, 1)
affecting.droplimb(0, DROPLIMB_BLUNT)
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm
index 7a4b9e63c80..0d7cc87efa8 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm
@@ -49,9 +49,6 @@
brute_mod = 0.2 //note to self: remove is_synthetic checks for brmod and burnmod
burn_mod = 0.8 //2x was a bit too much. we'll see how this goes.
toxins_mod = 1 //they're not used to all our weird human bacteria.
- warning_low_pressure = 50
- hazard_low_pressure = 0
- ethanol_resistance = 2
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
speech_chance = 100
@@ -66,10 +63,8 @@
sprint_cost_factor = 0.80
stamina_recovery = 3
- vision_flags = SEE_SELF
-
spawn_flags = IS_RESTRICTED
- flags = NO_SCAN | HAS_SKIN_COLOR | NO_SLIP
+ flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT
inherent_verbs = list(
/mob/living/carbon/human/proc/bugbite,
@@ -78,10 +73,6 @@
)
/datum/species/bug/type_c/equip_survival_gear(var/mob/living/carbon/human/H)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/typec(H),slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/typec(H), slot_wear_mask)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/gearharness(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/typec(H), slot_back)
return
/datum/species/bug/type_c/handle_post_spawn(var/mob/living/carbon/human/H)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 93a8fe4bde1..133ca589810 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -64,6 +64,7 @@
var/list/burst_accuracy = list(0) //allows for different accuracies for each shot in a burst. Applied on top of accuracy
var/list/dispersion = list(0)
+
var/next_fire_time = 0
var/sel_mode = 1 //index of the currently selected mode
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index db0c45d7e12..20541db6a07 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -22,7 +22,7 @@
item_state = "ionrifle-empty"
else
item_state = initial(item_state)
-
+
/obj/item/weapon/gun/energy/ionrifle/mounted
name = "mounted ion rifle"
self_recharge = 1
@@ -170,6 +170,7 @@
/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"
+ var/is_charging = 0 //special var for sanity checks in the three guns that currently use charging as a special_check
/obj/item/weapon/gun/energy/vaurca/bfg
name = "BFG 9000"
@@ -232,6 +233,9 @@
/obj/item/weapon/gun/energy/vaurca/gatlinglaser/special_check(var/mob/user)
..()
+ if(is_charging)
+ user << "\The [src] is already spinning!"
+ return 0
if(!wielded)
user << "You cannot fire this weapon with just one hand!"
return 0
@@ -241,7 +245,11 @@
"You begin spinning [src]'s barrels!",
"You hear the spin of a rotary gun!"
)
+ is_charging = 1
sleep(30)
+ is_charging = 0
+ if(!istype(user.get_active_hand(), src))
+ return
msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)")
return 1
@@ -319,6 +327,9 @@
/obj/item/weapon/gun/energy/vaurca/typec/special_check(var/mob/user)
..()
+ if(is_charging)
+ user << "\The [src] is already charging!"
+ return 0
if(!wielded)
user << "You could never fire this weapon with merely one hand!"
return 0
@@ -328,7 +339,11 @@
"You begin charging the [src]!",
"You hear a low pulsing roar!"
)
+ is_charging = 1
sleep(90)
+ is_charging = 0
+ if(!istype(user.get_active_hand(), src))
+ return
msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)")
return 1
@@ -402,6 +417,9 @@
/obj/item/weapon/gun/energy/vaurca/thermaldrill/special_check(var/mob/user)
..()
+ if(is_charging)
+ user << "\The [src] is already charging!"
+ return 0
if(!wielded)
user << "You cannot fire this weapon with just one hand!"
return 0
@@ -411,7 +429,11 @@
"You begin charging the [src]!",
"You hear a low pulsing roar!"
)
+ is_charging = 1
sleep(90)
+ is_charging = 0
+ if(!istype(user.get_active_hand(), src))
+ return
msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)")
return 1