Weapons built from traits, fashion, Hourglass, About tab, and Ithaca
- Every attack is now assembled from traits on its definition instead of per-weapon code: an anchor and path (thrusts, out-and-back, arcs), shared flight physics (gravity, drag, acceleration, homing, and one wall response: end, burst, stick, crawl, bounce, stop, pass, return, latch), and flags like bouncy, drifting, tethered, orbiting, instant and arming. Melee are projectiles too. - Shots have a lifetime and a fade (when damage bottoms out). Range is speed times lifetime. Ricochets and the Vacuum wind lifetime back. - The Vacuum pulls anyone's shots, and its airblast flips them out along the aim, claiming enemies' (fading into your colour). - New trinket: Hourglass, longer projectile lifetime and range. Ropes and chains lengthen with it and the Accelerator. - Fashion: 23 items worn on the head, face or torso, chosen in Profile. - Flamethrower flames hit continuously, the whip coils and sweeps, bouncing shots roll over ramps, and Ricochet relights grenade fuses. - Profile tab, colour tooltips, option hints on every setting, an About tab with credits and links, and the Ithaca font. - Loadouts lock once readied, tomatoes clear with the match, and the round-over pause is 4 seconds. - CC0 license. Tools and CLAUDE.md are no longer tracked, and the web shell moves to web/.
This commit is contained in:
1 parent
e55596b276
commit
e9d8cac926
101 files changed
+5787
-7148
No files matched your search
+6
-13
@@ -17,6 +17,8 @@ struct Particle
|
||||
float size;
|
||||
};
|
||||
|
||||
void particle_draw(Renderer& renderer, Particle& particle, Vec2 position);
|
||||
|
||||
// Text that hops up from where it appears and fades, like damage numbers. Jitter shakes it, in pixels.
|
||||
// Damage numbers also keep their value and which target they're over, so quick hits can add up.
|
||||
struct Popup
|
||||
@@ -49,20 +51,13 @@ struct Flash
|
||||
float size = 0;
|
||||
};
|
||||
|
||||
// A ring swelling out to its radius as it fades, like an airblast.
|
||||
struct Ring
|
||||
{
|
||||
Color color;
|
||||
Vec2 position;
|
||||
float life = 0;
|
||||
float radius = 0;
|
||||
};
|
||||
|
||||
// A fading copy of a sprite left behind by something moving fast.
|
||||
// A fading copy of a sprite left behind by something moving fast, and what its fighter wore (nothing, FASHION_NONE,
|
||||
// for an attack's).
|
||||
struct Afterimage
|
||||
{
|
||||
Pose pose;
|
||||
float life = 0;
|
||||
int worn = 0;
|
||||
};
|
||||
|
||||
// Particles, afterimages, text popups, screen shake and the damage-per-second tally.
|
||||
@@ -70,9 +65,8 @@ class Effects
|
||||
{
|
||||
public:
|
||||
void burst(Burst burst, Vec2 position, float angle, Color color);
|
||||
void afterimage_spawn(Pose pose);
|
||||
void afterimage_spawn(Pose pose, int worn);
|
||||
void flash_spawn(Vec2 position, float angle, float size, Color color);
|
||||
void ring_spawn(Vec2 position, float radius, Color color);
|
||||
void afterimage_draw(Game& game);
|
||||
void number_spawn(Vec2 position, int value, int target, Color color);
|
||||
void dps_record(int amount);
|
||||
@@ -90,7 +84,6 @@ private:
|
||||
std::vector<Hit> hits;
|
||||
std::vector<Particle> particles;
|
||||
std::vector<Popup> popups;
|
||||
std::vector<Ring> rings;
|
||||
float shake = 0;
|
||||
int ticks = 0;
|
||||
};
|
||||
Reference in new issue
Block a user