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.