diff --git a/GainStation13/code/mechanics/web_weaving.dm b/GainStation13/code/mechanics/web_weaving.dm index e6c6904a..ef2b768c 100644 --- a/GainStation13/code/mechanics/web_weaving.dm +++ b/GainStation13/code/mechanics/web_weaving.dm @@ -5,15 +5,20 @@ gain_text = "You find yourself able to weave webs." lose_text = "You are no longer able to weave webs." 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("[owner] begins spinning a web!", "You begin spinning a web.") + if(!do_after(owner, 10 SECONDS, 1, null, 1)) + owner.visible_message("[owner] fails to spin a web!", "You fail to spin web.") + return FALSE + T.ChangeTurf(/obj/structure/spider/stickyweb) + owner.visible_message("[owner] spin a sticky web!", "You spin a sticky web.") + return TRUE diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 2b3f5934..1778d470 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -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 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index b20cc07d..c94989ca 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -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] diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index d53e7250..737247ac 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -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)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8a06e02b..8702b594 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -893,6 +893,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Femcum" if(/datum/reagent/consumable/alienhoney) dat += "Honey" + if(/datum/reagent/consumable/nutriment) + dat += "Nutriment" else dat += "Nothing?" //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 += "Honey" if(/datum/reagent/consumable/pinkmilk) dat += "Strawberry Milk" + if(/datum/reagent/consumable/nutriment) + dat += "Nutriment" else dat += "Nothing?" //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