Various spider fixes (#76528)

## About The Pull Request

Fixes #76484
Then I noticed some weird stuff which slipped through the PR and poked
at that too.

- Spiderlings and Spiders once more have names ending in (###)
- Removed an unused property on Spiderlings.
- Rewrote the descriptions for a bunch of web-abilities and web-objects
to be clearer and have better capitalisation.
- Refactored the "Web Carcass" ability to not extend from "lay web" as
it didn't need to perform most of that behaviour.
- Also I renamed it and made the description give you a hint about why
you would want to instantly spawn a statue.
- The web effigy now despawns at the same rate as the ability cools down
so you're not dumping spider statues all over the place.
- I made spiderlings move at about the same speed as humans except if
they're on webs in which case they're still pretty fast.

To be honest I am not certain an instant statue spawning button is great
to begin with and I didn't even know it was added to the game but I am
not interested in messing much with the balance for now.

This made me look at spiderlings enough that I'm going to try and make a
new sprite for them that isn't awful.

## Why It's Good For The Game

Lets you differentiate individual spiders a little bit.
Makes usage of abilities clearer.

## Changelog

🆑
balance: Guard spider web statues despawn as the ability comes back off
cooldown.
balance: Spiderlings now only move at light speed if they're on webs,
stay safe little guys.
fix: Spiders once again have random numbers after their names.
/🆑
This commit is contained in:
Jacquerel
2023-07-06 02:26:45 +01:00
committed by GitHub
parent 01d6cfe40c
commit 48cc57010d
10 changed files with 48 additions and 43 deletions
@@ -37,7 +37,7 @@
attack_verb_simple = "bite"
attack_sound = 'sound/weapons/bite.ogg'
attack_vis_effect = ATTACK_EFFECT_BITE
unique_name = 1
unique_name = TRUE
gold_core_spawnable = HOSTILE_SPAWN
// VERY red, to fit the eyes
lighting_cutoff_red = 22
@@ -53,9 +53,8 @@
. = ..()
AddElement(/datum/element/web_walker, /datum/movespeed_modifier/average_web)
var/datum/action/cooldown/lay_web/web_carcass/carcass_web = new(src)
carcass_web.Grant(src)
var/datum/action/cooldown/web_effigy/shed = new(src)
shed.Grant(src)
/**
* ### Spider Hunter
@@ -87,7 +87,7 @@
/datum/action/cooldown/lay_web/solid_web
name = "Spin Solid Web"
desc = "Spin a web to slow down potential prey."
desc = "Spin a web to obstruct potential prey."
button_icon_state = "lay_solid_web"
cooldown_time = 0 SECONDS
webbing_time = 5 SECONDS
@@ -114,7 +114,7 @@
/datum/action/cooldown/lay_web/sticky_web
name = "Spin Sticky Web"
desc = "Spin a web to stick intruders in place."
desc = "Spin a sticky web to trap intruders."
button_icon_state = "lay_sticky_web"
cooldown_time = 20 SECONDS
webbing_time = 3 SECONDS
@@ -127,7 +127,7 @@
/datum/action/cooldown/lay_web/web_spikes
name = "Spin Web Spikes"
desc = "Spin a spikes made out of web to stop intruders."
desc = "Extrude silk spikes to dissuade invaders."
button_icon_state = "lay_web_spikes"
cooldown_time = 40 SECONDS
webbing_time = 3 SECONDS
@@ -138,15 +138,26 @@
/datum/action/cooldown/lay_web/web_spikes/plant_web(turf/target_turf, obj/structure/spider/stickyweb/existing_web)
new /obj/structure/spider/spikes(target_turf)
/datum/action/cooldown/lay_web/web_carcass
name = "leave carcass"
desc = "Shed your skin and leave a web carcass behind."
/// Makes a solid statue which you can use as cover
/datum/action/cooldown/web_effigy
name = "Web Effigy"
desc = "Shed durable webbing in the shape of your body. It is intimidating and can obstruct attackers. \
It will decay after some time."
button_icon = 'icons/mob/actions/actions_animal.dmi'
button_icon_state = "shed_web_carcass"
background_icon_state = "bg_alien"
overlay_icon_state = "bg_alien_border"
cooldown_time = 60 SECONDS
webbing_time = 0 SECONDS
/datum/action/cooldown/lay_web/web_carcass/obstructed_by_other_web()
return !!(locate(/obj/structure/spider/carcass) in get_turf(owner))
/datum/action/cooldown/web_effigy/IsAvailable(feedback = FALSE)
. = ..()
if(!.)
return FALSE
if(!isturf(owner.loc))
if (feedback)
owner.balloon_alert(owner, "invalid location!")
return FALSE
return TRUE
/datum/action/cooldown/lay_web/web_carcass/plant_web(turf/target_turf, obj/structure/spider/stickyweb/existing_web)
new /obj/structure/spider/carcass(target_turf)
/datum/action/cooldown/web_effigy/Activate()
new /obj/structure/spider/effigy(get_turf(owner))
@@ -12,13 +12,12 @@
icon_dead = "spiderling_dead"
density = FALSE
faction = list(FACTION_SPIDER)
speed = 1
speed = -0.75
move_resist = INFINITY // YOU CAN'T HANDLE ME LET ME BE FREE LET ME BE FREE LET ME BE FREE
speak_emote = list("hisses")
initial_language_holder = /datum/language_holder/spider
basic_mob_flags = FLAMMABLE_MOB | DEL_ON_DEATH
mob_size = MOB_SIZE_TINY
var/menu_description = "Normal spiderling."
unique_name = TRUE
@@ -59,6 +58,7 @@
add_traits(list(TRAIT_PASSTABLE, TRAIT_VENTCRAWLER_ALWAYS, TRAIT_WEB_SURFER), INNATE_TRAIT)
AddComponent(/datum/component/swarming)
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW, volume = 0.2) // they're small but you can hear 'em
AddElement(/datum/element/web_walker, /datum/movespeed_modifier/spiderling_web)
// it's A-OKAY for grow_as to be null for the purposes of this component since we override that behavior anyhow.
AddComponent(\
@@ -96,15 +96,10 @@
return FALSE
basic_mob_flags &= ~DEL_ON_DEATH // we don't want to be deleted if we die while player controlled in case there's some revive schenanigans going on that can bring us back
GLOB.spidermobs[src] = TRUE
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/player_spider_modifier, multiplicative_slowdown = -2) // let's pick up the tempo, we are meant to be fast after all
if (apply_spider_antag)
var/datum/antagonist/spider/spider_antag = new(directive)
mind.add_antag_datum(spider_antag)
/mob/living/basic/spiderling/Logout()
. = ..()
remove_movespeed_modifier(/datum/movespeed_modifier/player_spider_modifier)
/mob/living/basic/spiderling/mob_negates_gravity() // in case our sisters want to give us a helping hand
if(locate(/obj/structure/spider/stickyweb) in loc)
return TRUE
@@ -133,6 +128,7 @@
ADD_TRAIT(grown, TRAIT_WAS_EVOLVED, REF(src))
grown.faction = faction.Copy()
grown.directive = directive
grown.set_name()
qdel(src)
@@ -5,7 +5,6 @@
grow_as = /mob/living/basic/giant_spider/guard
name = "guard spiderling"
desc = "Furry and brown, it looks defenseless. This one has sparkling red eyes."
menu_description = "Furry and brown, specializing in defense of the hive and other spides."
/// Will differentiate into the "ambush" giant spider.
/mob/living/basic/spiderling/ambush
@@ -14,7 +13,6 @@
desc = "Furry and white, it looks defenseless. This one has sparkling pink eyes."
icon_state = "ambush_spiderling"
icon_dead = "ambush_spiderling_dead"
menu_description = "Slow spider variant specializing in stalking and ambushing prey, above avarage health and damage with a strong grip."
/// Will differentiate into the "scout" giant spider.
/mob/living/basic/spiderling/scout
@@ -23,8 +21,6 @@
desc = "Furry and black, it looks defenseless. This one has sparkling purple eyes."
icon_state = "scout_spiderling"
icon_dead = "scout_spiderling_dead"
menu_description = "Fast spider variant specializing in scouting and alerting of prey ,with the ability to travel in vents."
/// Will differentiate into the "hunter" giant spider.
/mob/living/basic/spiderling/hunter
@@ -33,7 +29,6 @@
desc = "Furry and black, it looks defenseless. This one has sparkling purple eyes."
icon_state = "hunter_spiderling"
icon_dead = "hunter_spiderling_dead"
menu_description = "Fast spider variant specializing in catching running prey and toxin injection, but has less health and damage."
/// Will differentiate into the "nurse" giant spider.
/mob/living/basic/spiderling/nurse
@@ -42,7 +37,6 @@
desc = "Furry and black, it looks defenseless. This one has sparkling green eyes."
icon_state = "nurse_spiderling"
icon_dead = "nurse_spiderling_dead"
menu_description = "Support spider variant specializing in healing their brethren and placing webbings very swiftly, but has very low amount of health and deals low damage."
/// Will differentiate into the "tangle" giant spider.
/mob/living/basic/spiderling/tangle
@@ -51,7 +45,6 @@
desc = "Furry and brown, it looks defenseless. This one has dim brown eyes."
icon_state = "tangle_spiderling"
icon_dead = "tangle_spiderling_dead"
menu_description = "Support spider variant specializing in contruction to protect their brethren, but has very low amount of health and deals low damage."
/// Will differentiate into the "midwife" giant spider.
/mob/living/basic/spiderling/midwife
@@ -60,7 +53,6 @@
desc = "Furry and black, it looks defenseless. This one has scintillating green eyes. Might also be hiding a real knife somewhere."
icon_state = "midwife_spiderling"
icon_dead = "midwife_spiderling_dead"
menu_description = "Royal spider variant specializing in reproduction and leadership, but has very low amount of health and deals low damage."
gold_core_spawnable = NO_SPAWN
/// Will differentiate into the "viper" giant spider.
@@ -70,7 +62,6 @@
desc = "Furry and black, it looks defenseless. This one has sparkling purple eyes."
icon_state = "viper_spiderling"
icon_dead = "viper_spiderling_dead"
menu_description = "Extremly Fast spider variant specializing in catching running prey and lethal toxin injection, but has less health and damage."
gold_core_spawnable = NO_SPAWN
/// Will differentiate into the "tarantula" giant spider.
@@ -80,7 +71,6 @@
desc = "Furry and black, it looks defenseless. This one has abyssal red eyes."
icon_state = "tarantula_spiderling"
icon_dead = "tarantula_spiderling_dead"
menu_description = "Tank spider variant with an enormous amount of health and damage, but is very slow when not on webbing. It also has a charge ability to close distance with a target after a small windup."
gold_core_spawnable = NO_SPAWN
/// Will differentiate into the "hunter" giant spider.
@@ -90,5 +80,4 @@
desc = "Furry and black, it looks defenseless. This one has sparkling purple eyes."
icon_state = "flesh_spiderling"
icon_dead = "flesh_spiderling_dead"
menu_description = "Self-sufficient spider variant capable of healing themselves and producing webbbing fast."
gold_core_spawnable = NO_SPAWN