muckers-GlacialElite icon

GlacialElite

Some hostile mobs spawn as Glacial elites: 4x health, 2x damage, slowing hits, and an ice bomb on death. All players should install it.

By muckers

CHANGELOG

Changelog

0.3.0

  • The ice bomb is a ring of ice on the ground instead of a blue sphere. A low-poly ice formation, modelled and animated in Blender in Muck's flat-shaded style, marks it: a cluster of crystals bursts from the corpse, twelve crystal clusters crack out of a dark frost crust around the edge, and frost motes drift up inside. Under it, Muck's attack-warning projector (the same one the Chief's leap, the Guardian's slam and dragon fireballs use) washes the danger zone pale ice blue, so it follows hills. The crust follows the ground too, and its dark band and jagged cracks read on grass and on snow, and in grayscale.
  • The ice grows out from the corpse over 0.5 seconds with a crackle, and it cannot hurt until that wind-up and the fuse have both elapsed. From then until the burst it builds up with no pause, timed to BombFuse so it peaks exactly on the hit: the crystals swell and tremble harder and faster, the ground glow and the crust's crack rim pulse brighter on beats that come faster and faster, frost motes rise faster, and the hiss climbs in pitch and volume. On the burst every crystal pops and the glow flashes, then the ice cracks, tilts and sinks into the ground as chips fly off. A looping hiss plays while it is up, a sting plays when you step in, and a separate hit marks the burst. The freeze clink is unchanged.
  • The crystals come up at 40% of their size and grow steadily through the whole fuse, reaching full size on the hit. The dark crust covers the full radius from the start, so the area is marked the whole time. The crystals glow on the same beats as the crack rim, brighter and whiter until the pop. If the game's shader lacks emission, the colour shift alone still brightens them.
  • The hiss peaks at volume 0.29 and pitch 1.79, down from about 0.58 and 2.16, so it stays at least 6 dB under its old peak and does not clip in a full mix. It still rises all the way to the hit.
  • The bomb freezes you before it sends its hit to the host. On a solo host that send runs the host's whole damage path before it returns, so an error anywhere on it used to skip the freeze, the frost and the clink. An error there is now logged and the freeze still applies. Each freeze logs Glacial freeze for N s, from t=… to t=….
  • The developer README no longer calls the default bomb hit 22. The mod sends 22, and on Normal the host multiplies a mob hit by 0.9 on day 0 and truncates it, so it lands as 19 before armor, as this README already said.
  • Frost still rims the screen. An ice crystal with a dark outline sits in the corner while you are slowed or frozen, and it throbs while you are only slowed.
  • Visual.HighContrast (default on) widens the dark crust, makes the crystals 15% larger and thickens the icon's outline.
  • Visual.BombColor is gone. The ice uses a fixed icy palette. An old cfg line for it is ignored.
  • The ring lives in HazardTelegraph, so another mod can spawn the same mark. This version does not move any other mod onto it.

0.2.1

  • The ice bomb is a see-through blue sphere. It used Unity's legacy additive particle shader, which ignores the colour the mod set, so it most likely drew white, and a melee killer standing inside it had the screen washed white until the burst. It now uses Sprites/Default with BombColor at 0.35 alpha, so from inside the view is tinted pale blue and stays readable. BombColor's alpha is ignored.
  • Slow and freeze now show. The screen edges frost pale blue at alpha 0.3 while you are slowed and 0.6 while you are frozen, fading out over the last 0.25 s. A freeze starts with vanilla's armor clink pitched down to 0.6. Only the affected player sees and hears them.
  • The frost edges hide while a vanilla menu is open (pause, settings, map, inventory or a station, respawn totem, trader) and while you are dead. A bomb that kills you plays no clink: the clink waits for the host's answer to the bomb's hit, and plays only if you are still alive.

0.2.0

  • Glacial now rolls on Artifact of the Night Swarms nights. It accepts any spawn with multiplier 1 and a bossMultiplier that is a positive multiple of 1/16, and scales that bossMultiplier instead of replacing it. At the defaults a Swarms-night Glacial has 2.03125× normal health. In 0.1.0 no mob became Glacial on those nights. A Swarms HealthFactor that is not a multiple of 1/16 still blocks Glacial on Swarms nights.
  • A bossMultiplier off the 1/16 grid carries another mod's tag and is left alone. RoR2 Enemies stores its kind code as kind / 256 on top of a 1/16 multiple, so its converted mobs (Jellyfish and Stone Titan keep multiplier 1) are never Glacial and keep their code on every peer.
  • The save tag now works for any incoming bossMultiplier. The health part is rounded to the nearest 1/32 and the 1/64 tag is added, so a tagged value is always an odd multiple of 1/64. A saved Swarms-night Glacial is adopted on reload. A HealthFactor change between save and load no longer drops the Glacial state. A DamageFactor change still does. Tags saved by 0.1.0 are still adopted.
  • A tag can no longer equal a vanilla buff pair. In 0.1.0, DamageFactor 1.5 with HealthFactor 1.4765625 made every vanilla buff mob read as Glacial.
  • BombDamageCap is described as a cap before the host's day multiplier, which is what it always was. The docs give the bomb hit at day 0 and day 10.

0.1.0

  • First release. Some hostile mobs spawn as Glacial elites with more health, more damage, an icy tint, a slowing melee hit, and an ice bomb on death.
  • A fresh roll writes a 1/64 tag into bossMultiplier so a later spawn of the same multipliers is adopted instead of scaled again.
  • Melee already uses mob.multiplier, so the mod does not rescale hitboxes. The bomb uses a flat base and a cap. It does not stack on the elite damage multiplier.
  • A failed world-seed read promotes nobody. Tagged mobs are still adopted. The log prints a config hash at world start.
  • Slow and freeze apply to the local player. GetSpeedMultiplier replaces a null argument before a postfix runs, so the patch records that null first.