Merge pull request #137 from Vulpias/master

Readding Traits, plus 1 new
This commit is contained in:
Razgriz
2020-01-14 17:19:42 -07:00
committed by GitHub
5 changed files with 189 additions and 1 deletions

View File

@@ -0,0 +1,160 @@
//succuby bite is back baby
/mob/living/proc/succubus_bite()
set name = "Inject Prey"
set desc = "Bite prey and inject them with various toxins."
set category = "Abilities"
if(last_special > world.time)
return
if(!ishuman(src))
return //If you're not a human you don't have permission to do this.
var/mob/living/carbon/human/C = src
var/obj/item/weapon/grab/G = src.get_active_hand()
if(!istype(G))
to_chat(C, "<span class='warning'>You must be grabbing a creature in your active hand to bite them.</span>")
return
var/mob/living/carbon/human/T = G.affecting
if(!istype(T) || T.isSynthetic())
to_chat(src, "<span class='warning'>\The [T] is not able to be bitten.</span>")
return
if(G.state != GRAB_NECK)
to_chat(C, "<span class='warning'>You must have a tighter grip to bite this creature.</span>")
return
var/choice = input(src, "What do you wish to inject?") as null|anything in list("Aphrodisiac", "Numbing", "Paralyzing")
last_special = world.time + 600
if(!choice)
return
src.visible_message("<font color='red'><b>[src] moves their head next to [T]'s neck, seemingly looking for something!</b></font>")
if(do_after(src, 300, T)) //Thrirty seconds.
if(choice == "Aphrodisiac")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your aphrodisiac!</span>")
src.visible_message("<font color='red'>[src] sinks their fangs into [T]!</font>")
T.bloodstr.add_reagent("succubi_aphrodisiac",100)
return 0
else if(choice == "Numbing")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your poison!</span>")
src.visible_message("<font color='red'>[src] sinks their fangs into [T]!</font>")
T.bloodstr.add_reagent("numbing_enzyme",20) //Poisons should work when more units are injected
else if(choice == "Paralyzing")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your poison!</span>")
src.visible_message("<font color='red'>[src] sinks their fangs into [T]!</font>")
T.bloodstr.add_reagent("succubi_paralize",20) //Poisons should work when more units are injected
else
return //Should never happen
/* //will maybe add something one day
mob/living/carbon/proc/charmed() //TODO
charmed = 1
spawn(0)
for(var/i = 1,i > 0, i--)
src << "<font color='#6F6FE2'><i>... [pick(charmed)] ...</i></font>"
charmed = 0
*/
/datum/reagent/succubi_aphrodisiac
name = "Aphrodisiac"
id = "succubi_aphrodisiac"
description = "A unknown liquid, it smells sweet"
metabolism = REM * 0.8
color = "#8A0829"
scannable = 0
/datum/reagent/succubi_aphrodisiac/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(prob(3))
M.show_message("<span class='warning'>You feel funny, and fall in love with the person in front of you</span>")
M.say(pick("!blushes", "!moans", "!giggles", "!turns visibly red")) //using mob say so we dont have to define this dumb one time use emote that equates to just blushing -shark
//M.charmed() //TODO
return
/datum/reagent/succubi_numbing //Using numbing_enzyme instead.
name = "Numbing Fluid"
id = "succubi_numbing"
description = "A unknown liquid, it doesn't smell"
metabolism = REM * 0.5
color = "#41029B"
scannable = 0
/datum/reagent/succubi_numbing/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.eye_blurry = max(M.eye_blurry, 10)
M.Weaken(2)
M.drowsyness = max(M.drowsyness, 20)
if(prob(7))
M.show_message("<span class='warning'>You start to feel weakened, your body seems heavy.</span>")
return
/datum/reagent/succubi_paralize
name = "Paralyzing Fluid"
id = "succubi_paralize"
description = "A unknown liquid, it doesn't smell"
metabolism= REM * 0.5
color = "#41029B"
scannable = 0
/datum/reagent/succubi_paralize/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) //will first keep it like that. lets see what it changes. if nothing, than I will rework the effect again
M.Weaken(20)
M.eye_blurry = max(M.eye_blurry, 10)
if(prob(10))
M.show_message("<span class='warning'>You lose sensation of your body.</span>")
return
//egglaying
/mob/living/proc/mobegglaying()
set name = "Egg laying"
set desc = "you can lay Eggs"
set category = "Abilities"
var/mob/living/carbon/human/C = src
var layeggs = 0
var eggs = 0
if(C.incapacitated(INCAPACITATION_ALL))
to_chat(src, "You cannot lay eggs in this state!")
return
if(C.nutrition < 200)
to_chat(src, "You lack the Nutrition to lay eggs")
return
layeggs++
if(C.nutrition < 200)
eggs++
else if(C.nutrition > 200 && C.nutrition < 600)
eggs = 2
else if(C.nutrition >600 && C.nutrition < 800)
eggs = 3
if(layeggs == 1)
src.visible_message("<font color='white'><b>[src] freezes and vissibly tries to squat down</b></font>")
while(eggs > 0)
src.show_message("<span class='warning'>You lay a egg!</span>")
eggs--
C.nutrition -= 100
var/obj/item/weapon/reagent_containers/food/snacks/egg/E = new(get_turf(src))
E.pixel_x = rand(-6,6)
E.pixel_y = rand(-6,6)
layeggs--
return

View File

@@ -847,4 +847,4 @@
set desc = "Allows you to start/stop hopping over things such as hydroponics trays, tables, and railings."
set category = "Abilities"
pass_flags ^= PASSTABLE //I dunno what this fancy ^= is but Aronai gave it to me.
to_chat(src, "You [pass_flags&PASSTABLE ? "will" : "will NOT"] move over tables/railings/trays!")
to_chat(src, "You [pass_flags&PASSTABLE ? "will" : "will NOT"] move over tables/railings/trays!")

View File

@@ -118,6 +118,8 @@
H.verbs |= /mob/living/carbon/human/proc/succubus_drain_finalize
H.verbs |= /mob/living/carbon/human/proc/succubus_drain_lethal
/datum/trait/hard_vore
name = "Brutal Predation"
desc = "Allows you to tear off limbs & tear out internal organs."
@@ -152,3 +154,9 @@
..(S,H)
H.verbs |= /mob/living/proc/glow_toggle
H.verbs |= /mob/living/proc/glow_color

View File

@@ -0,0 +1,18 @@
/datum/trait/mobegglaying
name = "Egg laying"
desc = "you can lay eggs"
cost = 0
/datum/trait/mobegglaying/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..(S,H)
H.verbs |= /mob/living/proc/mobegglaying
/datum/trait/succubus_bite
name = "Succubus bite"
desc = "allows you to inject your prey with your posion"
cost = 0
/datum/trait/succubus_bite/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..(S,H)
H.verbs |= /mob/living/proc/succubus_bite