Commit Graph
22 Commits
Author SHA1 Message Date
BloopandGitHub 68153c2333 Refactors faction lists to use getters and setters and be cached (#94490) 2026-01-19 04:12:35 +01:00
MrMelbertandGitHub 5765f259ef Fixes human skeleton pirates, Refactors ghost spawns (#94138)
## About The Pull Request

`create_from_ghost` can be called from stuff like... dynamic executing a
ruleset, so putting a sleep/user input within it causes problems

So I refactored ghost spawns a fair bit, creating a clear delineation
between where you can and can't put user input

## Changelog

🆑 Melbert
fix: Pirates will no longer randomly spawn as human
fix: Servant Golems have numbered names again
refactor: Refactored ghost spawns (like spider eggs or pirate spawners),
report any oddities
/🆑
2025-11-25 19:52:19 -07:00
DrAmazing343andGitHub 707b5ef744 Minor Spider Rebalance (#83554)
## About The Pull Request
Breacher and Viper player-controlled Spiders have swapped castes; Vipers
now come from Abnormal Eggs, while Breachers will now come from Enriched
Eggs. This means that Vipers may be seen more, while Breachers require
the Nest to acquire at least a single kill to wrap and create an
Enriched Egg from. Nurse Spiders also perform their heal action much
faster, at the cost of a bit less healing. It was very difficult to heal
others due to the long do_after and thus we saw very few Nurse Spiders.

Breacher Spiders also are now NOT immune to cold, and will die if they
try to space a room or go into space.

## Why It's Good For The Game
Breacher Spiders are in kind of a difficult spot, both in theming and
balance; their space resistance made them able to vent the station in
multiple places by breaking key walls, and they had no need to commit to
their sieges because they could escape into space at all times. It also
broke part of the dynamic of Spiders wanting to keep the atmosphere in
the station, and disincentivizing Breachers from venting the station
also makes them more coherently a part of the Nest because they won't
reduce the Nest's habitable area.

Viper Spiders were seen quite little instead of the other options in the
Enriched Egg; now, hopefully we'll see more. Likewise, the Breacher is
quite powerful for being an Abnormal Egg, so perhaps now we'll see more
focus on cocooning to unlock the powerful Breachers, or just overall
less of them, which will help even the odds.

Nurse Spiders were VERY underutilized despite their power— the do_after
for their healing just felt obnoxiously long, and especially in tense
situations, you'd have shuffle and Spiders yelling at one another
because two of them have to Space Hulk the hallway for a semi-extended
period of time. Now, Nurses will be able to heal and move on a bit
faster. I don't believe this will create too many issues, balance-wise,
as the time-to-kill on Spiders is still quite low for all but the
tankiest against lasers and even welders.
## Changelog
🆑 Jane
balance: Spider Breachers and Vipers have swapped castes. Breachers come
from Enriched Eggs while Vipers come from Abnormals! Breachers can no
longer survive in spaced rooms/temperatures. The Nurse wraps wounds
faster, but with less damage healed per wrap.
/🆑
2024-06-03 19:46:32 +01:00
JacquerelandGitHub 9d9da3a790 Spider web graphics (#81839)
## About The Pull Request

Here is what webs look like.
It looks like pure ass and I hate seeing it.

![image](https://github.com/tgstation/tgstation/assets/7483112/fe3279e6-4d69-48d3-abb7-fb4b1c61396e)

Here's my attempt at making them look nicer.

![image](https://github.com/tgstation/tgstation/assets/7483112/0a5b1034-f021-4a5b-bc93-c590334c7d42)

Notes: Genetics Power webs now have a slight purple tint to
differentiate them from regular spider webs, so spiders aren't confused
about why they can't cross these ones.

On the backend I condensed a lot of these typepaths to inherit from each
other instead of not doing that. In the future I am going to use this to
cut down on the excessive amount of action buttons we have for these
too.

Here's (most of) what the action buttons look like. this screenshot also
demonstrating that we have a serious problem with how many buttons we
give to spiders.

![image](https://github.com/tgstation/tgstation/assets/7483112/c78ce4f3-dbfd-4434-b318-dfe2a88ce838)

After this is merged I will embark on two further projects:
- Wallening version
- Reworking spider web placement to not be a function of having 15
action buttons, it's _so bad_.

While I was working on this I noticed that AI spiders would not
automatically place webs on certain crossable tiles, because we forgot
to pass an argument to a proc. I fixed that too.


Oh also final change I almost forgot to document:

![dreamseeker_MiooTij0sG](https://github.com/tgstation/tgstation/assets/7483112/7ae262d9-7b89-45b9-beb3-f6921963e04e)

I made you jiggle if you get stuck in a web.

## Why It's Good For The Game

The previous sprites looked bad and these look less bad.

## Changelog

🆑
fix: AI-controlled spiders can correctly recognise where they can place
webs.
image: New sprites for most kinds of spider web
/🆑
2024-03-06 16:05:49 -07:00
RhialsandGitHub d0a19bdd92 Spider egg radial menus now require proximity (#81209)
## About The Pull Request

Spider radial menus now require proximity, and will close if you move
away from them.

![it
works](https://github.com/tgstation/tgstation/assets/28870487/8197f8d4-6336-42b0-a690-9aadc7e47cb9)
## Why It's Good For The Game

Clicking the egg and not picking anything leaves the radial open. If you
try to use any other eggs the menu will not open until you track down
the radial menu and close it properly. If you aren't aware of this,
it'll feel like all of the eggs are broken and lead to confusion. This
has happened to myself and others.
## Changelog
🆑 Rhials
qol: Spider eggs will now close their spawn menu when you move away from
them.
/🆑
2024-02-02 06:08:31 +01:00
JeremiahandGitHub bbe440b3d6 More standardization for ghost notifications (READY) (#79596)
## About The Pull Request
I'm still not satisfied with how ghost notifications work. This gives
every notification with a source (99% of all notifications, in other
words) a link to jump/orbit. Currently, notifications with "play"
interactions would only get the interact link, so jumping to the source
was pretty annoying.

It removes posting the entire message in the alert tooltip, as some got
pretty lengthy and it didn't seem to fit. To replace this, they will
always use headers

After:


![image](https://github.com/tgstation/tgstation/assets/42397676/debfce52-3627-4a43-8663-33d61d893161)


![image](https://github.com/tgstation/tgstation/assets/42397676/01f299ae-dc6a-45f8-a97a-cb2c815088b2)


![image](https://github.com/tgstation/tgstation/assets/42397676/99567376-063e-458e-af2a-2dd4306747cc)

NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference
seems to be whether it's a turf. The result shaves off some redundant
lines of code, since most-every usage of notify_ghosts uses
NOTIFY_ORBIT.
## Why It's Good For The Game
More standardization for the ghost notification system. Adds a few alert
headers that never had them. All in all, makes it easier for creators to
throw alerts at ghosts
## Changelog
🆑
qol: Nearly every ghost alert should now feature a "VIEW" button, even
those with click interaction.
del: Ghost alerts no longer show the entire message in the tooltip,
instead have been replaced with titles.
/🆑
2023-11-19 05:13:25 +01:00
RhialsandGitHub 3c7005a37c Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls (#79320)
## About The Pull Request

This helps clean up my favorite helper proc in the whole codebase,
`notify_ghosts()`.

The notify_suiciders, ignore_mapload, and flashwindow args are GONE.
They have been replaced with the notify_flags bitflag argument. This was
intended to make deadchat announcements a bitflag argument too, but
those got reverted right before I originally wanted to submit this PR.

The on-screen popup now shows the notification body when you hover it
with your mouse again. The format is now `[notify_ghosts message] --
[click action (orbit/jump/play)]`

Every single `notify_ghosts()` call has been changed to multiline format
and has been given trailing commas. Pretty!
## Why It's Good For The Game

Cleans up a proc that is very popular and going through a lot of changes
at the time.

Allows for further flexibility when this proc inevitably gets tweaked or
improved. 12 -> 10 args is an improvement, and it doesn't impact the
helper's flexibility at all.
## Changelog
🆑 Rhials
code: The notify_ghosts proc has been cleaned up. Please report any
abnormal changes in deadchat notification behavior.
qol: The on-screen deadchat popups now contain the notification blurb
when hovered with your mouse again.
/🆑
2023-11-05 15:26:50 -08:00
34e488acf5 Spider Infestation Balance Rebalance Expansion Part 2 (#78705)
## About The Pull Request
Balances
1. Spiders now slow down equivalent to their health
2. Tarantulas can no longer put web passages or solid webs and destroy
walls outside of charge attack
3. Young spiders now cant pull objects do to being too weak and become
slower outside of webs as they should be
4. Makes pneumatic airlock seal unable to be destroyed by spiders
5. All Broodmother eggs now have a cooldown timer
Normal Eggs: 20 seconds
Abnormal Eggs: 180 Seconds
Enriched Eggs: 60 seconds

Expansions

1. Added a new abnormal egg category
2. Broodmothers can now lay abnormal eggs
3. 2 new spiders added
6. A new web type: Reflective silk screen
# Breacher

![dreamseeker_HmjGZdlh5l](https://github.com/tgstation/tgstation/assets/84478872/de957cd4-74d1-4df1-b8d7-69d7b07cdc88)

![dreamseeker_xvfmLDa8tX](https://github.com/tgstation/tgstation/assets/84478872/b8b9238b-b31d-4c3b-9483-00cbdc827cc6)

![image](https://github.com/tgstation/tgstation/assets/84478872/df46b478-a1e1-4743-bc56-9c5821e0aac0)





- Low damaging with High wound bonuses meant to debilitate enemies to
take ground for the nest

- Has the ability to breach areas by destroying walls with menson vision
to map out strategic breachings

- Immune to harsh environments with the ability to lay solid webs to
protect the nest environment

- Can send in warnings for the entire nest to hear 


Will Help the nest get out of being closed off by small construction
attempts and fix some space breaches plus some back up by making enemies
slower and scarring them off with some bloodloss

# Tank

![image](https://github.com/tgstation/tgstation/assets/84478872/f4abe473-3593-40af-afd4-99c74cf83d46)

![image](https://github.com/tgstation/tgstation/assets/84478872/203a3b6a-9b8d-4d1f-ade8-cd67b50383ba)

- Extremely low damaging build to absorb damage to hold ground for the
nest
- With the ability to lay down silk screen reflectors to protect the
nest from missile attacks
- Can heal itself at a slow rate

Will provide great support to keep the nest at bay from range attacks at
some extent and act as a damage absorber in dier situations
# Abnormal Eggs

![YsCgX09](https://github.com/tgstation/tgstation/assets/84478872/b5da467c-9fc0-4581-bb18-47f9bf5bc9ee)

![EuKT8zN](https://github.com/tgstation/tgstation/assets/84478872/f8b0d652-14c8-4e11-92ee-d43d9eedfd77)

- They can only be made once every 180 Seconds
- Hold the two new spider types

## Why It's Good For The Game
New spiders to contribute to the general spider antag team dynamic,
balances for spiders are always good making them funner to play against
and bringing up challenges on their gameplay making them act less like
murdering simple mobs and more like an actual nest trying to survive in
the station.


How?

1. **Cooldown egg laying:** broodmothers now have to be more strategic
on where they place their eggs with an average of 3 eggs per minute per
broodmother
2. **Spider slowdown on damage:** Spiders now will become slower the
longer they stay out of the nest in battle making them have to retreat
back to the nest shortening their time out murdering giving incentives
to expand the nest
3. **Spider More Brute Damage:** Gives a reason to use melee against
spiders although more dangerous it gives more reward due to the higher
damage outputs since spiders are pretty much big bugs with delicate
bodies no bones no good structural consistency equal more damage to
blunt attacks
4. **Tarantula Nerfs:** Tarantulas shouldnt be able to destroy this many
walls at this rate and be able to lay so many defensive webs I don't
know why they had this abilities but their strong enough as is

## Changelog
🆑
add: Added Abnormal Eggs
add: Added Two new spiders
del: Some Tarantula abilities
balance: Spiders speed are now connected to health
balance: Spiders now take more brute damage
balance: All egg laying now has a cooldown
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-31 13:36:15 +00:00
JacquerelandGitHub 3e554bdab3 Flesh Spiders Regenerate + QoL (#78704)
## About The Pull Request

Replaces the Healing Touch component on Changeling-spawned Flesh Spiders
with the Regenerator component, as the comment helpfully suggests.
Flesh Spiders can no longer touch themselves to heal, instead they
automatically begin regenerating their health if they go four seconds
without taking damage. It takes 6 seconds to fully regenerate, so 10
seconds to fully heal from the edge of death (less if you're not that
injured).


![image](https://github.com/tgstation/tgstation/assets/7483112/37faca55-35fe-48dc-a3ed-03f4b79860bd)

Also I changed the sprite for flesh spider eggs to a different one we
already had rather than regular spider eggs tinted red, just because I
felt like it.
Would be cool to give the spiders their own sprite some time, but that's
for another PR.


![image](https://github.com/tgstation/tgstation/assets/7483112/8ec286c4-46dc-4aec-aa98-cb4e4e432690)
_Additionally_ the flavour text for flesh spiders was kind of messed up
by being shoved into the objectives box and claiming that it was a
directive from a spider queen you don't have, so I gave them their own
slightly different antag datum to compensate.
It also actually mentions how you heal yourself, which previously was
down to trial and error or codediving.

In the course of doing this I decided to just... move flesh spiders to
their own type path. It _sort of_ made sense for them to be part of the
giant spider typepath, but they keep being modified by changes targetted
at "balancing the Giant Spiders antagonist" which this mob isn't related
to and doesn't have any reason to follow. The fact that a mob has
similar stats to another one isn't automatically a reason to share a
typepath, and now that I have looked a little at this mob I'm sort of
interested in branching it further away from "it's a spider mob but
spawned a different way" in the future.

Finally, this spider egg cluster and the midwife one would prompt ghosts
with a radial menu with a single option on it... that's a bit pointless,
so we'll bypass that menu if there is only one possible outcome.

## Why It's Good For The Game

Currently Flesh Spiders heal by clicking on themselves and standing
still for two seconds, restoring 50% of their HP. This means they can
fully regenerate over 4 seconds unless you stun them, and with 90 HP
you're not _that_ likely to kill one during the channel time.
This just feels like an odd way for the creature to operate,
regenerating instead gives it a hit-and-run strategy and adds more use
to their webs (maybe we should give them meatier or bloody webs at some
point? Might be cool).
Also clicking yourself to heal is just unintuitive and I suspect several
players just didn't realise they could do it in the first place.

## Changelog

🆑
balance: Flesh Spiders heal automatically over time if they go a short
time without taking damage, instead of healing large chunks by clicking
themselves and waiting two seconds.
qol: Spider egg clusters which only hatch into one kind of spider don't
ask you to select that one type from a radial menu with one option on
it.
qol: As a Flesh Spider, the game now tells you how you can heal
yourself.
/🆑
2023-10-11 16:37:11 +02:00
JacquerelandGitHub 497f18ea32 Spiders don't automatically grant an antag datum (#77523)
## About The Pull Request

Fixes #77501

Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.

While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.

Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.

Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.

## Why It's Good For The Game

While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.

## Changelog

🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑
2023-08-11 20:43:04 -06:00
ComxyandGitHub 8957eb763c Spider Evolution - Young Spiders [Ready] (#76692)
## About The Pull Request
This pr adds a young spiders that appear between spiderlings and adult
spiders. Now spiders have a stage where they are squishy but can also
spin webs and do some other things early depending on the spider type.
Spiderling stage takes 40 seconds and young spider stage take 1 minute,
ealier for spiderling this was 1 minute. Also adds a new wizard spider
sprite and makes the spider form usable.

Gives Wizard Spider version has better immunity against fire since it
can kill a wizard very fast it they are not paying attention.

Makes tangle spider get more health but makes the self-healing worse.
This is done because spider is a team antag except for the flesh
(changeling spider), making it so solo-playing as tangle is less
encouraged.

Scout spiderling gets thermal vision also. It cannot communicate, but it
can already start scouting now.

Viper deals bonus damage when an enemy is on low health. Toxins don't
kill humans anymore, and since the viper spider only deals 5 damage now
it deals more so it can actually take down enemies at low health. They
also have a little more health since they always die very fast. Viper
can also change between a defensive/slow mode with more armor or a
offensive/speed mode with less armor.

Nurse spider heals for 25 instead of 20, since 25 is one laser shot, it
makes more sense for the nurse spider to be able to heal that amount.

Flesh spider grows faster since they are a solo antag and spawn killing
isn't cool.

Tarantula spider can now tear down walls by clicking them instead of
needing to use their charge attack. They can also build wall webs and
passage webs. Their damage coeffs also got the regular burn factor for
spider so their health also increased a bit.

![promo](https://github.com/tgstation/tgstation/assets/25363960/19b9a97f-db08-4c7d-b470-46ae0bb18556)

![promo2](https://github.com/tgstation/tgstation/assets/25363960/783ced04-a97d-4849-8ec3-04c72a418284)
## Why It's Good For The Game
Now there is a smooth transition between the tiny spiderling and the
bigger spider stage. This will promote people to help the hive at an
earlier stage while not being too powerful yet. It is also realistic and
adds extra flavor to the spider antag. The other balance changes are
improvements to the game.
## Changelog
🆑
add: Young Spiders that appear between spiderlings and adult spiders.
balance: Wizard Spider version has better immunity against temp damage
and can lay webs faster.
balance: Tangle Spider sucks more with self-healing but has more health.
balance: Scout spiderling gets thermal vision.
balance: Viper deals bonus damage when an enemy is below 20% health.
/🆑
2023-08-09 22:38:57 +02:00
JacquerelandGitHub 48cc57010d 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.
/🆑
2023-07-05 19:26:45 -06:00
RhialsandGitHub 803658dc30 Deadchat Announcement Variety Pack 2 and also some fixes to other popups (#76053)
## About The Pull Request

This adds ghost orbit popups for the following: 
- Macrobombs (or stacked microbombs) being triggered.
- HFR Meltdowns.
- Living players about to be gored by an emagged organ harvester.
- Nuclear devices being armed.
- Doomsday devices.
- Blob hosts bursting.

This also modifies the following ghost orbit popups:
- Toy hot potatoes will no longer cause a popup when armed.
- Normal spider eggs will not flash the byond window, only special egg
types.
## Why It's Good For The Game

Gives more gathering spots/information to deadchat. Let no entertaining
moment in this game go unobserved.

Spider eggs flashing your window for every single egg produced makes
alt-tabbing suck. I saw some guy on the forums complaining about it and
thought "huh yeah I guess he's got a point that pisses me off too" so
here we are.
## Changelog
🆑 Rhials
qol: Basic spider eggs no longer flash the byond window when ready to
hatch.
qol: Toy hot potatoes no longer give a ghost notification.
qol: Deadchat will be notified in the event of an imminent macrobomb
detonation, HFR meltdown, organ harvesting,
qol: Deadchat will be notified when a nuclear/doomsday device is
activated, as well as when a blob-infection bursts.
/🆑
2023-06-17 17:20:49 +02:00
419dd2b754 Spider Infestation Balance Rebalance Expansion Part 1 (#75204)
## About The Pull Request
https://hackmd.io/dxhPOOdRRKW7siqPbpfmYQ?view The HackMD goes in-depth
into what this PR is about

## Content
### Ambush Spider

![image](https://user-images.githubusercontent.com/84478872/236697303-16fb5fee-7862-457f-a053-9e634873f205.png)

![image](https://user-images.githubusercontent.com/84478872/236697338-7908e9ba-07d2-4af6-9e0a-583e74d96634.png)
### Scout Spider

![image](https://user-images.githubusercontent.com/84478872/236697485-91560e01-365d-4a9e-8401-a52b412d865f.png)

![image](https://user-images.githubusercontent.com/84478872/236697489-a9f1d46d-1e65-4e9d-995e-335e4cf40f8c.png)

![dreamseeker_JtR1iVptrV](https://user-images.githubusercontent.com/84478872/236697538-4e9ac1a4-b2b7-463a-b4ff-75f8ae2d266a.png)
## Tangle

![image](https://github.com/tgstation/tgstation/assets/84478872/756de834-5470-4a2a-9e8e-55d6a3ca770d)

![TkK4NHc](https://github.com/tgstation/tgstation/assets/84478872/4fa15fa6-db11-46a5-9b56-8e5fce4bc1c0)

![XxcLU0z](https://github.com/tgstation/tgstation/assets/84478872/7a007a94-e9a4-4700-9a0e-f5e2a178c924)

### Spiderlings

![ruCweIc](https://user-images.githubusercontent.com/84478872/236697721-b96469df-e68b-47b7-9316-ec152629e9aa.png)

![SWE0bgo](https://user-images.githubusercontent.com/84478872/236697726-7753f363-99db-46b1-8181-0dc755c1804e.png)

![BYNLUQa](https://user-images.githubusercontent.com/84478872/236697753-48c1c5b0-064a-45e9-bf19-ad2e29cdb426.png)


## Why It's Good For The Game
Currently, spiders have plenty of issues that make them a very 2d
mentional antag they kill,die, and respawn which is boring and leads to
a bunch of balance issues for their current design this PR both fixes
the current issues spiders have and adds more depth into the antag.
## Changelog
🆑
add: Added 3 new spider types
add: Added more spider abilities
balance: Rebalanced spiders
fix: Fixes spiderlings having density
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-05-28 16:45:42 -07:00
orangesandGitHub 4c48966ff8 Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects

regexes used

git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
2023-04-11 21:31:07 -07:00
RhialsandGitHub 10a0bc88dc Broodmothers can guesstimate how grown their eggs are (#73724)
Midwife Spiders (the egg laying ones) can now double-examine their eggs
to see an approximation of how fully grown a given set of eggs are.

This should make the first 5-10 minutes of playing Broodmother slightly
less nerve-wracking. Knowing whether or not your eggs are almost ready
can be very important in deciding whether to fight or risk relocating
when John Maintcrawler accidentally opens the airlock to your nest.
2023-03-04 16:38:51 +00:00
ProfakosandGitHub 50b37c8c7f Faction defines (#73681)
## About The Pull Request

Quite a lot of mobs had faction defines as a string, which always has a
chance for error. For example, the clown mob spawner had their faction
written as "clown", when the official faction name was "clowns", and a
define existed for it anyways! This PR moves every single string based
factions over here. No references or special role factions. Hopefully I
didn't miss anything.

I also moved a global define used for picking your uplink provider's
flavour to the only file that used it, datum_traitor.dm, and renamed
them a bit to avoid confusion.

I have also noticed that the mimic faction was assigned to the petrified
player with += instead of |=. |= would ensure no duplicate factions, so
I have changed it.

Future improvement:
I have noticed that there is a lot of bloat with factions that contain
only one or two entries (examples: gnomes, floating eyeballs, penguins,
the pet lizards), and some always appear in pairs (vines and plants, the
rare exceptions being killer tomatoes and strange reagent spawned pine
trees), but trimming consolidating them is a matter for a different
time.

## Why It's Good For The Game

Makes assigning factions a bit less error prone.

I can finally remove the ```/// Later all mob factions will be moved
here and their current factions replaced with faction defines.```
comment. Later is NOW.

## Changelog
Nothing player facing
2023-02-28 16:44:08 -07:00
JacquerelandGitHub cbbf7b3613 Basic Mob Spiders III: Sgt. Araneus is no longer a bat (#73350)
## About The Pull Request

This PR converts giant spiders into basic mobs and resultingly fixes
#37793
They _should_ have the same behaviour as their simple mob versions
although I can't verify that their movement speeds are _exactly_ the
same. It should at least be pretty close.
A quirk of spiders is that they had a pretty large `move_to_delay` which
made them slow in the hands of AI (because it would just pause for ages
between taking steps) and faster in the hands of players, and they often
appear in both forms so I had to implement this as a speed modifier
based on player control.

Additionally this is the first basic mob which can be set on fire.
This is currently implemented as a var on `mob/living/basic` but I know
there was some annoyance at adding the environment tolerances as vars on
there so if desired I can try and extract it out, I'm just not sure how
easy it will be.

Something else I noticed is that spiders seem to take stamina damage
from bug spray... but stamina damage does nothing to either simple _or_
basic mobs. I have left it in for now in case I am missing something,
and rebalancing it to do something else would be more like a balance
change.

Oh also I killed the `mob/basic/retaliate` folder because that isn't a
classification that needs to exist or makes sense.

## Why It's Good For The Game

We don't want to use simple mobs any more.
Sergeant Araneus can finally actually be a spider, instead of being a
bat.

## Changelog

🆑
refactor: Spider code has been refactored and AI-controlled spiders may
have slightly different movement or reaction times.
fix: Basic mobs can now be slowed when they take stamina damage, however
currently only spiders actually _can_ take stamina damage.
fix: Spiders should now more reliably disable their AI when controlled
by a player.
fix: Araneus is no longer considered to be a bat and so cannot fly.
fix: Araneus is no longer considered to be a bat and so is no longer
frightening to people who are scared of the supernatural.
/🆑
2023-02-13 05:22:26 +00:00
JacquerelandGitHub 8ee01d27b3 Basic Mob Spiders I: Ability refactor (#73201)
## About The Pull Request

This morning a man presented me with a mission

![image](https://user-images.githubusercontent.com/7483112/216712023-788f2f35-feaa-4152-acee-a2a58e1e6d2c.png)
I realised that I can achieve this in merely _three_ pull requests.
...because I'm leaving one that adds new AI until after feature freeze
february.

This one pulls all of the ability code out of the giant spider mob file
and spruces it up a bit in preparation for making them into basic mobs.
It removes an ancient "todo" about merging the spider and genetics web
abilities by, doing that.
Spider abilities no longer extend from a shared and reasonably pointless
"innate" root ability and also don't require their owners to be spiders
to work properly any more.

Also while I was in there I fixed a bug where the "set directive"
ability did not actually pass that into the antag datum of a new spider
unless they logged out and back in.

## Why It's Good For The Game

Code should smell nicer now.
Removes an essentially duplicated ability.
Clears up some chat log spam which didn't need to be in there.
You can actually set an objective for spiders you create as a spider
brood mother.
I guess you can make spiders-man as an admin by giving spider abilities
to other mobs.

## Changelog

🆑
refactor: Tidied up spider ability code, they should all work the same,
but please report if they do not.
refactor: Spiders and Geneticists now use the same ability to make webs
rather than two virtually-identical ones, which should also perform just
as it did before this change.
fix: Setting a directive as a Spider Midwife should properly pass and
announce itself to new spiders.
/🆑
2023-02-06 20:15:09 -07:00
Arkatos1andGitHub e7fcd673a5 Fixes several incorrect spider menu descriptions and automatizes the process a little bit (#65806) 2022-03-31 16:48:31 -07:00
Seth SchererandGitHub b2f70d2580 Fixes spiders spawned from eggs not having a number (#64452)
When spiders are spawned, they're given a random name, however the mob
spawner name setter overwrites that... fixed that by randomizing the
name inside of the mob spawn `create` proc. Also gaves spiders an
`\improper` to stop `An a spider`
2022-01-27 23:45:22 -05:00
tralezabandGitHub 82615e7462 Super Mega Mob Spawn Refactor (#63279)
About The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor

The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor is my attempt to clean up the file structure, the code, and the type tree for mob spawns.

    Splits mob spawn types into corpses (dead spawns) and ghost roles (living spawns you can possess). The vars that didn't make sense for corpses and vice versa for ghost roles are now appropriately there
    Because of above, there are no longer the fucking "death, roundstart, and instant" vars. thank god
    Removes a lot of single or very few used vars, whose properties can be applied on special().
    All Mob Spawns are given fitting folders instead of just being stuck in a single ghost roles file. Corpses are in the corpse folder, Ghost Roles are in the ghost role folder. Only exception are drones which should stay near their respective homes
    Just generally cleaner all around you know
    spider structures file renamed to spiderwebs now that spider eggs are gone

Why Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor Is Good For The Game

The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor cleans up so many terrible cases and uses
Changelog For The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor

cl armhulen
refactor: Mob spawns are refactored, no more assortment of "random, instant, and roundstart" vars on every mob spawn type
refactor: if there are some minimal differences in how mob spawners feel, that's why!
/cl
2021-12-15 11:13:21 +13:00