diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 30ac3824..faec80e8 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -218,4 +218,41 @@
log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]")
M << "\green You hear a strange, alien voice in your head... \italic [msg]"
src << "\green You said: \"[msg]\" to [M]"
- return
\ No newline at end of file
+ return
+
+/mob/living/carbon/human/proc/bugbite()
+ set category = "Abilities"
+ set name = "Bite"
+ set desc = "While grabbing someone aggressively, tear into them with your mandibles."
+
+ if(last_special > world.time)
+ return
+
+ if(stat || paralysis || stunned || weakened || lying)
+ src << "\red You cannot do that in your current state."
+ return
+
+ var/obj/item/weapon/grab/G = locate() in src
+ if(!G || !istype(G))
+ src << "\red You are not grabbing anyone."
+ return
+
+ if(G.state < GRAB_AGGRESSIVE)
+ src << "\red You must have an aggressive grab to gut your prey!"
+ return
+
+ last_special = world.time + 50
+
+ visible_message("\The [src] rips viciously at \the [G.affecting]'s flesh with its mandibles!")
+
+ if(istype(G.affecting,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = G.affecting
+ H.apply_damage(30,BRUTE)
+// if(H.stat == 2) //no gibbing humans but i'll let you gib like a mouse or something that's cool
+// H.gib()
+ else
+ var/mob/living/M = G.affecting
+ if(!istype(M)) return //wut
+ M.apply_damage(30,BRUTE)
+ if(M.stat == 2)
+ M.gib()
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index d4a92515..e9accbc7 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -271,8 +271,8 @@
proc/handle_mutations_and_radiation()
- if(species.flags & IS_SYNTHETIC) //Robots don't suffer from mutations or radloss.
- return
+ if(species.flags & IS_SYNTHETIC || species.flags & IS_BUG) //Robots don't suffer from mutations or radloss.
+ return //neither do bugs. bugs are cool.
if(getFireLoss())
if((COLD_RESISTANCE in mutations) || (prob(1)))
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index cbe16637..16f1c68a 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -144,6 +144,10 @@
for(var/datum/organ/internal/I in H.internal_organs)
I.mechanize()
+ if(flags & IS_BUG)
+ for(var/datum/organ/internal/I in H.internal_organs)
+ I.mechanize()
+
/datum/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target)
var/t_him = "them"
@@ -473,6 +477,45 @@
"brain" = /datum/organ/internal/brain,
)
+/datum/species/bug
+ name = "Vaurca"
+ name_plural = "varucae"
+
+ icobase = 'icons/mob/human_races/r_machine.dmi' //placeholders
+ deform = 'icons/mob/human_races/r_machine.dmi' //bloop blop butts
+ language = "Tradeband" //placeholders //vaurcese, :p to speak. no support on language side yet
+ unarmed_type = /datum/unarmed_attack/claws //literally butts
+ secondary_unarmed_type = /datum/unarmed_attack/bite/strong
+ rarity_value = 2 //according to the code this does nothing but upset me so i guess it can stay
+ slowdown = 1 //slow
+ darksight = 666 //good at seeing
+ eyes = "blank_eyes" //made out of butts
+ brute_mod = 0.5 //note to self: remove is_synthetic checks for brmod and burnmod
+ burn_mod = 2 //bugs on fire
+ insulated = 1 //because tough feet for glass resistance and also nonconductive exoskeleton. they take 2x fire it's fair okay
+ //they will die from EMPs because their organs are mechanized in a proc up top. ctrl+f is_bug and it'll take you there.
+ warning_low_pressure = 50 //the spacewalks are real
+ hazard_low_pressure = 0
+
+ cold_level_1 = 50
+ cold_level_2 = -1
+ cold_level_3 = -1
+
+ heat_level_1 = 330 //Default 360
+ heat_level_2 = 380 //Default 400
+ heat_level_3 = 600 //Default 1000 //bugs do not like fire because exoskeletons are poor ventilation
+
+ flags = IS_WHITELISTED | NO_SLIP | IS_BUG //IS_BUG doesn't do much at the moment. proc up top + radiation resistance.
+ //use IS_BUG when you do the make their eyes die from being flashed thing, sounds/skull. okay thanks.
+ blood_color = "#1F181F" // note: discover hex for yellow
+ flesh_color = "#575757" //this is a placeholder also.
+
+ inherent_verbs = list(
+ /mob/living/carbon/human/proc/bugbite //weaker version of gut. can't gib hums, dam/time outstripped lots by melee weapons
+ )
+
+ //make has_organ list when we can be bothered with bug gut sprites. it'll be cool, i promise
+
// Called when using the shredding behavior.
/datum/species/proc/can_shred(var/mob/living/carbon/human/H)
diff --git a/code/setup.dm b/code/setup.dm
index 07943229..7f484eed 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -754,7 +754,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define IS_PLANT 1024
#define IS_WHITELISTED 2048
-#define RAD_ABSORB 4096
+#define IS_BUG 4096 //formerly RAD_ABSORB, old tag no longer used in new speciescode require_light below isn't used either.
#define REQUIRE_LIGHT 8192
#define IS_SYNTHETIC 16384
diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html
index 07be59af..359e2093 100644
--- a/data/investigate/gravity.html
+++ b/data/investigate/gravity.html
@@ -1,6 +1,6 @@
-17:52 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
-17:52 [0x20078f9] (92,152,1) || the gravitational generator is now charging.
-17:54 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
-17:54 [0x20078f9] (92,152,1) || the gravitational generator is now charging.
-17:54 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
-17:54 [0x20078f9] (92,152,1) || the gravitational generator is now charging.
+04:09 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
+04:09 [0x20078fb] (92,152,1) || the gravitational generator is now charging.
+04:10 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
+04:10 [0x20078fb] (92,152,1) || the gravitational generator is now charging.
+04:10 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
+04:10 [0x20078fb] (92,152,1) || the gravitational generator is now charging.