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