Web Weaver webs and Genital Nutriment

Web Weaver quirk now also adds an action to spin sticky webs where you stand.
Characters with the Web Weaver quirk can freely move through webs.
Added nutriment as an option for fluid for genitals
This commit is contained in:
Alphas00
2024-04-30 22:17:29 +02:00
parent 4a4637dcb6
commit 693d2b6dee
5 changed files with 37 additions and 6 deletions

View File

@@ -5,15 +5,20 @@
gain_text = "<span class='notice'>You find yourself able to weave webs.</span>"
lose_text = "<span class='notice'>You are no longer able to weave webs.</span>"
category = CATEGORY_SEXUAL
mob_trait = TRAIT_WEB_WEAVER
///What action is linked with this quirk?
var/datum/action/innate/wrap_target/linked_action
var/datum/action/innate/wrap_target/linked_action1
var/datum/action/innate/make_web/linked_action2
/datum/quirk/web_weaving/post_add()
linked_action = new
linked_action.Grant(quirk_holder)
linked_action1 = new
linked_action1.Grant(quirk_holder)
linked_action2 = new
linked_action2.Grant(quirk_holder)
/datum/quirk/web_weaving/remove()
linked_action.Remove(quirk_holder)
linked_action1.Remove(quirk_holder)
linked_action2.Remove(quirk_holder)
return ..()
/datum/action/innate/wrap_target
@@ -83,3 +88,20 @@
/obj/structure/spider/cocoon/quirk
max_integrity = 20
/datum/action/innate/make_web
name = "weave"
desc = "spins a sticky web."
icon_icon = 'icons/effects/effects.dmi'
button_icon_state = "stickyweb1"
background_icon_state = "bg_alien"
/datum/action/innate/make_web/Activate()
var/turf/T = get_turf(owner)
owner.visible_message("<span class='warning'>[owner] begins spinning a web!</span>", "<span class='warning'>You begin spinning a web.</span>")
if(!do_after(owner, 10 SECONDS, 1, null, 1))
owner.visible_message("<span class='warning'>[owner] fails to spin a web!</span>", "<span class='warning'>You fail to spin web.</span>")
return FALSE
T.ChangeTurf(/obj/structure/spider/stickyweb)
owner.visible_message("<span class='warning'>[owner] spin a sticky web!</span>", "<span class='warning'>You spin a sticky web.</span>")
return TRUE

View File

@@ -203,6 +203,7 @@
#define TRAIT_LIPOLICIDE_TOLERANCE "lipolicide_tolerance"
#define TRAIT_WEAKLEGS "weak_legs"
#define TRAIT_STRONGLEGS "strong_legs"
#define TRAIT_WEB_WEAVER "web_weaving"
//Hyper
#define TRAIT_MACROPHILE "macrophile" //likes the big

View File

@@ -55,7 +55,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk")
GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment")
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")
for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]

View File

@@ -36,7 +36,7 @@
. = ..()
/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target)
if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider))
if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider) || HAS_TRAIT(mover, TRAIT_WEB_WEAVER))
return TRUE
else if(isliving(mover))
if(istype(mover.pulledby, /mob/living/simple_animal/hostile/poison/giant_spider))

View File

@@ -893,6 +893,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Femcum</a>"
if(/datum/reagent/consumable/alienhoney)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Honey</a>"
if(/datum/reagent/consumable/nutriment)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nutriment</a>"
else
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nothing?</a>"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -940,6 +942,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Honey</a>"
if(/datum/reagent/consumable/pinkmilk)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Strawberry Milk</a>"
if(/datum/reagent/consumable/nutriment)
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nutriment</a>"
else
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nothing?</a>"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -2381,6 +2385,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["balls_fluid"] = /datum/reagent/consumable/alienhoney
if("Strawberry Milk")
features["balls_fluid"] = /datum/reagent/consumable/pinkmilk
if("Nutriment")
features["balls_fluid"] = /datum/reagent/consumable/nutriment
if("egg_size")
var/new_size
@@ -2426,6 +2432,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["breasts_fluid"] = /datum/reagent/consumable/alienhoney
if("Strawberry Milk")
features["breasts_fluid"] = /datum/reagent/consumable/pinkmilk
if("Nutriment")
features["breasts_fluid"] = /datum/reagent/consumable/nutriment
if("breasts_color")
var/new_breasts_color = input(user, "Breast Color:", "Character Preference", "#"+features["breasts_color"]) as color|null