Eight new spells: seer's eye, cave-in, haste, stoneskin, gold rain, invisibility, plague, quake
- researched in the library (and unlocked in the campaign), in the spells menu with own icons and a radius under the pointer - haste speeds up everything a creature does, stoneskin halves damage, invisible creatures are ignored by enemies and towers until they attack (drawn see-through), plague spreads among enemies, quake hurts and stuns enemies only, cave-in turns floor back into earth - particles for every spell Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a54316c86e
commit
7f4d5ca7b4
11 files changed
+532
-12
No files matched your search
+9
-1
@@ -200,6 +200,8 @@ uniform float LightCount;
|
||||
void main() {
|
||||
vec4 tex = texture2D(Texture, uv);
|
||||
if (tex.a < 0.5) discard;
|
||||
// see-through units (invisibility): every other pixel left out
|
||||
if (color.a < 0.99 && mod(floor(gl_FragCoord.x) + floor(gl_FragCoord.y), 2.0) < 1.0) discard;
|
||||
vec3 n = normalize(wnorm);
|
||||
vec3 light = color.rgb;
|
||||
for (int i = 0; i < 24; i++) {
|
||||
@@ -1200,12 +1202,18 @@ impl R3d {
|
||||
std::mem::swap(&mut u0, &mut u1);
|
||||
}
|
||||
let a = amb(e.x, e.y) * if sleeping || e.captive == 1 { 0.6 } else { 1.0 };
|
||||
// spell looks: stone grey, plague green, see-through when invisible
|
||||
let alpha = if e.invis > 0.0 { 0.35 } else { 1.0 };
|
||||
let c = if white {
|
||||
[255, 255, 255, 255]
|
||||
} else if e.captive == 3 {
|
||||
col(vec3(a * 1.2, a * 0.55, a * 0.55), 1.0)
|
||||
} else if e.shield > 0.0 {
|
||||
col(vec3(a * 0.85, a * 0.85, a * 0.8), alpha)
|
||||
} else if e.plague > 0.0 {
|
||||
col(vec3(a * 0.75, a * 1.15, a * 0.6), alpha)
|
||||
} else {
|
||||
col(Vec3::splat(a), 1.0)
|
||||
col(Vec3::splat(a), alpha)
|
||||
};
|
||||
// pulled towards the camera: unchanged on screen (orthographic), but walls behind
|
||||
// the unit no longer cut into the sprite
|
||||
|
||||
Reference in new issue
Block a user