* Basic Watchers & Basilisks (#77630)
## About The Pull Request
This one is a double feature because Watchers and Basilisks share the
same typepath. You might see a couple more of those.
As is tradition I decided to fuck with them rather than just port them.
Here's what's up.
**Basilisks**


- Have a new soulless sprite which looks less like a living blue hedge.
- Walk at you and shoot you while you are not in range (just like
before).
- Become supercharged if they become "heated" by lava, lasers, or
temperature weapons. This was a feature they also previously had but
they would never encounter lava, so now it also works if you use the
wrong gun on them.
- Lose their supercharge if you cool them down.
- Otherwise pretty normal mobs.
**Watchers**
https://www.youtube.com/watch?v=kOq_Bf78k5A
Here's a traditional video of me intentionally getting hit by mechanics
(trust me its definitely on purpose)
- They glow emmissively a little bit so you can see them from further
away.
- Their eyes light up about 0.5 seconds before they are able to shoot at
you.
- No longer melee attack, instead try to stay out of melee.
- Will occasionally put you into "Overwatch", meaning they will shoot
you rapidly if you move or act while they're staring at you for a brief
time period (after which you become immune for 12 seconds, and during
which other watchers will play fair and stop shooting at you).
- If they start taking damage they will also start using their "Gaze"
attack, look away or suffer some kind of negative effect!
- - Normal watcher gaze flashes and confuses you.
- - Magmawing watcher gaze obviously burns (and briefly stuns) you.
- - Icewing watcher gaze freezes you and throws you backwards.
- Magnetically attract and eat diamonds. They also used to do this, but
just if they happened to coincidentally walk past some.
**Other accompanying changes**
All basic mobs will now adopt the "stop gliding" trait if they get
slowed down too much.
I moved behaviour for "fire a projectile from this atom" into a helper
proc because I was using it in three places and I will probably use it
in more places. There are probably other places in the existing code
which could be using this.
I think I made the basic mob melee attack forecast default a little more
forgiving, they were fucking me up too much and I am the playtester.
## Why It's Good For The Game
Another one off the list.
New tricks for old dogs.
Framework for making mobs with ranged attacks "fairer" (you can see when
they are ready to shoot you).
More (hopefully) versatile AI behaviours which we will reuse later (I
hope I'm not duplicating one someone already made).
If our players "enjoy" them enough we can give more mobs "don't look at
me" mechanics.
Removes some soul sprites.
## Changelog
🆑
refactor: Basilisks and Watchers now use the basic mob framework. Please
bug report any unusual behaviour.
sprite: Basilisks have new sprites.
add: Basilisks will go into a frenzy if heated by energy weapons or
temperature beams as well as by lava.
add: Watcher eyes will be illuminated briefly when they are ready to
fire at you.
add: Watchers can now briefly put you into "Overwatch" and penalise you
for moving while they can see you.
add: Wounded watchers will occasionally punish players who look at them.
balance: Unusual watcher variants are more likely to appear.
/🆑
* Basic Watchers & Basilisks
* Modular paths
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Goliath basic mob (#76754)
## About The Pull Request
Converts Goliaths to the basic mob framework and gives them some new
moves because I can't leave things well enough alone.
I am planning on touching all the lavaland fauna and then maybe even the
icebox ones if I haven't got bored. The Golaith is the first because it
is iconic.
https://www.youtube.com/watch?v=JNcKvMwT4-Q
Here's me getting killed by one as a demonstration. Despite my poor
performance I would contend that they aren't a _lot_ more dangerous, but
they are a little more dangerous.
The chief difference here is that they have two new attacks which they
will only use in response to being attacked.
If fired at from range, they will target the attacker with a line of
tentacles (it doesn't track you, so is easily sidestepped).
If attacked in melee, they will surround _themselves_ with tentacles, on
a longer cooldown.
Something else you may notice in this video: I discovered that basic
mobs are actually _too smart_ to be Lavaland fauna.
Typically (unlike their old form) a mob on our new AI system is smart
enough to attack someone _the moment they come into range_ rather than
only checking on predictable ticks, which would make using the Crusher
an essentially unviable prospect.
To counteract this, Goliaths now have a delayed attack component which
gives you a visual warning and short duration to get out of range before
they swing at you. I will probably put this on all mining fauna that get
reworked, it wouldn't be a terrible thing to put on other mobs to be
honest.
Other changes: The goliath stun is now a status effect with _buckles_
you to the tentacle as if grabbed, as well as its previous effects.
While this seems purely worse, any nearby helpers can now help-click on
you to instantly remove the debuff.
Experiencing the effect of a Lobstrosity Rush Gland makes you immune to
being grabbed by tentacles and an implanted one will automatically
trigger and free you if you are hit, and the explosive effect of
Brimdust also causes the tentacle to retract (although you'd need to
take damage for this to happen). Using the tools of the land, you can
make these creatures less threatening.
The ability for a Goliath to chain-apply the ability has now also been
reduced, it won't refresh its duration if you are hit when already
buckled.
When not occupied hounding miners, Goliaths will intermittently dig up
the asteroid sand and eat any worms that this produces.
I also made some new sprites for riding a Goliath because they've been
broken since the Lavaland mob update and also kind of were ugly before
then anyway:

Other code changes:
- I made an element which only lets an attached object move every x
seconds. This is because Goliaths are far too slow to use the speed
system (the glide just looks bugged as hell) but one thing I am invested
in when converting these is to make sure that they share the same
behaviour when player or AI controlled. This is disabled while you're
riding them because it was interminably slow.
- The Goliath tentacle trail uses a supertype object now shared with the
Meteor Heart which did something kind of similar.
## Why It's Good For The Game
It begins the process of moving one of our larger subsets of NPCs onto
the newer framework for NPC behaviour.
It adds a little bit more life to an iconic but slightly uninteresting
foe which mostly just walked at you slowly.
This PR contains a few components I expect to apply more widely to other
mobs in the future.
## Changelog
🆑
refactor: Goliaths now use the Basic Mob framework, please report any
unusual behaviour.
add: Goliaths learned a couple of new attacks which they will use in
self-defence.
balance: Help-clicking a miner grabbed by Goliath tentacles will
immediately free them, as will the effect of several items you can
scavenge from around Lavaland.
image: New sprites for the Goliath saddle.
/🆑
* Goliath basic mob
* Update ash_rituals.dm
* fixes icon diff
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Small Seconds Define Cleanup for Spawners (#70719)
Hey there,
I was doing some codediving, and I stumbled upon this spawn_time silliness in mob spawner code, so I just swapped everything to use SECONDS defines (since units are very epic).
* Small Seconds Define Cleanup for Spawners
Co-authored-by: san7890 <the@san7890.com>
* new clown mobs and spawners
adds several new types of clown mobs, a beacon to spawn them, and a honkrender that spawns clown hulks
* added more clown varieties and fixes to previous
* fixed unneeded capitalization and changed mob values
removed unneeded capitalization and text errors and altered mob attack values to create more variation. Honkmunculus now does very little damamge but injects a small amount of meth.
* Update clown.dm
* clown changes and new clown
new clown that spawns bananas. can leave large stacks if left unattended, so it may require some reworking. nerfed several overpowered clowns and gave chlown a beetle like stride
* added cluwne to uplink, fixed redundant variables, added new clowns
cluwne can now be purchased for 5 telecrystals as a clown exclusive uplink item. Bananas were greatly improved. new weak clown added. Gave some clowns extra parents to reduce variables.
* Update code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
Co-Authored-By: Pugnacious-Gnome <48869928+Pugnacious-Gnome@users.noreply.github.com>
* IT LIVES ONCE MORE
* forgive me for this sin
* i wish git would detect case changes
* this works
* lava arena is now not the default for swoop attack
adds mass fire attack, sends fire lines out from the drake in 360 degrees
lava pools now have a chance to be spawned with the fire breath attack
adds greater delay for lava pools on lesser ash drake so they don't just all instantly get placed
lava arena doesn't needlessly recalculate the turfs it will be using every pass now
enraged state, procs when you try to escape from the lava arena attack without fighting it normally, colors the drake turns its brightness up as it glows, then shoots out fire everywhere, also heals the drake for 250 health.
fixes a bug where fire lines wouldn't appear if their range would put the calculated end turf outside the map
fixes a bug where indestructible open turfs would turn into basalt on the lava arena attack
fixes a bug where lava arena safe spots would be on indestructible closed turfs
drake swoops now have a greater default recovery time
* fixes stupid text error
* adds vr mining sleepers to the lavaland mining base which can be used to train with megafauna and test out other items
removes useless code from colossus's file including having a dead icon of the drake and butchering results
adds virtual versions of each megafauna which don't drop any items and are deleted upon death
adds the vr mining map
* adds virtual megafauna spawners and their respective icons, spawn 1 megafauna at their location and are indestructible
changes default virtual megafauna hunter gear to be more like the default mining gear
* adds more items to spawning in mining vr
megafauna spawner nests can no longer be pushed
virtual megafauna now have a limit to how far they can move away from their nest
adds arenas and fast bluespace tile paths to each megafauna spawner and gives the mining base some walls to protect it
* adds mining vr map to the away mission config
adds perm portals, linked two way portals who are linked by id and can be set in mapping files by editing instance
adds megafauna portals for the arenas
fixes up some junk on the mining vr map
adds a spawn delay for megafauna spawners after the linked megafaunas death
fixes a bug where bubblegum could teleport outside of his arena
* adds true spawn var to bubblegum to easily handle clones / virtual versions of it spawning
fixes bug where virtual legion would release the real legion when damaged
moves vr mining code to the away missions code to adhere to contributing.md
* converts map files to tgm
adds arena cleanup and fixes runtime bugs on virtual megafauna spawn and death
* reverts local drake changes
* fixes bug where drake corpses still had a gps signal
removes worthless include
* adds the crusher trophies to the vr mining kit
no more granting null achievements you stinky virtual megafauna
this map really didn't need to be 255x255 im sorry
* even smaller map wowee also please compile
* adds respawning item crates for the lavaland items and healing junk
even smaller map and some filler spaces for possible future bosses
removes lavaland map changes
mining vr now works properly with other vr maps and is randomly selected working with normal vr sleepers on station
fixes permanent being permanant my bad
* lavaland map stop being changed
* maybe a bit overkill with the amount of healing items
* reordering i guess but why is the rum gone
* work please
* Update Lavaland.dmm
* Update Lavaland.dmm
* adds force stop option to portals so you can choose to not chain teleports with non linked portals.dm
permanent portals now can be var edited mid game and still work (cool admin events? idk)
permanent portals are no longer deleted if they don't have a linked portal
adds one way portals, portals that lead somewhere but have no return portal. basically non hardlinked portals but able to be done in map and edit stuff
adds recall portals for the vr megafauna arenas, one way portals but you can recall to them by using a one time use spell (no it is not tied to your real mind it is tied to the vr mind)
virtual megafauna can no longer escape their arenas
moves some virtual megafauna procs to the main megafauna file to reduce needless code
* recall portals can now be chained and the portal recall spell can now go back in a stack reverse style
* adds boss rush mode, fight all of the bosses successively with only one break in the middle without dying
object spawners can now choose their datum spawner type through a var
moves some virtual megafauna code from the megafauna file to the megafauna spawner datum
* adds new goodies to the end of the boss rush
removes a lot of the copy pastad code in the vr megafauna
adds true spawn var, decides whether or not the megafauna should grant achievements or have an internal gps, used for bubblegum hallucinations and virtual megafauna
internal gps are now added on the base megafauna path
hierophant's crusher trophy no longer spawns at its beacon (let's be honest some people missed it because of this) so it works properly with the crusher loot var
* Tendrils are now structure based
* Re-adds tendril wipe achievement
neatens up ash walker variables
gets rid of unnecessary variables in hivelord
* Marks spawner children as admin spawned