**Goal:** Flesh out enemy types, behaviors, and the goose projectile physics to create a balanced core loop.
### 1. Goose Projectile System (Physics)
Implement proper physics-based throwing with:
- Apply force based on camera direction + throw strength multiplier
- Add spin/angular velocity for realistic rotation
- Implement drag/drag coefficient for air resistance
- Handle ricochet or deflection off surfaces
- Add hit sound, particle effect, damage indicator on impact
- Consider adding curve/arc trajectory visualization for aiming
### 2. Enemy AI States
Implement basic state machine:
- Idle: wait at spawn point or patrol between points
- Chase: move directly toward player/base when in range
- Attack: engage player if within melee range
- DamageTaken: stagger/dashback when hit by goose
- Die: collapse, play death animation, drop resources
### 3. Enemy Type 1 (Basic)
Simple soldier-like enemy:
- Moderate health pool
- Straight-line movement toward base
- Basic attack (melee or ranged)
- Standard speed and turn radius
- Drops medium currency on death
### 4. Enemy Type 2 (Fast/Aggressive)
High-risk, high-reward enemy:
- Lower health but faster movement speed
- Aggressive targeting (prioritizes weak points)
- May have special ability: dash attack or rapid fire
- Drops higher value currency
### 5. Damage & Health System
Implement robust damage calculation:
- Separate projectile damage (geese) vs melee damage
- Damage reduction from shields/armors if applicable
- Overkill prevention (no excess damage to player/enemy)
- Knockback or stagger effect on high damage hits
- Visual feedback (flashes, screen shake, hit particles)
### 6. Wave Balancing
Create balanced wave progression:
- Define enemy counts and types per wave
- Ensure difficulty scales appropriately
- Consider adding special elite enemies at peak waves
- Balance spawn rates so player has time to react
- Design currency drop rates that feel fair
### Exit Criteria:
- Goose throwing feels weighted and responsive (not instant)
- Enemies exhibit varied behaviors across types
- Damage numbers/effects give clear feedback
- Wave difficulty curve is engaging
- Core loop is tight: spawn -> chase -> throw -> damage -> win/lose
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal: Flesh out enemy types, behaviors, and the goose projectile physics to create a balanced core loop.
1. Goose Projectile System (Physics)
Implement proper physics-based throwing with:
2. Enemy AI States
Implement basic state machine:
3. Enemy Type 1 (Basic)
Simple soldier-like enemy:
4. Enemy Type 2 (Fast/Aggressive)
High-risk, high-reward enemy:
5. Damage & Health System
Implement robust damage calculation:
6. Wave Balancing
Create balanced wave progression:
Exit Criteria: