Android-KTag-Apps/subapp-mine
2026-03-01 17:03:10 -06:00
..
src/main Initial public release. 2026-03-01 17:03:10 -06:00
build.gradle.kts Initial public release. 2026-03-01 17:03:10 -06:00
README.md Initial public release. 2026-03-01 17:03:10 -06:00

KTag Mine Subapp

A Jetpack Compose Android application that acts as a proximity-triggered "mine" for KTag laser tag devices. When an enemy device comes within range, the mine automatically tags it with configurable damage.

How It Works

The Mine scans for nearby KTag devices broadcasting Status packets via BLE. When a device matching the target team enters the configured RSSI threshold, the mine:

  1. Triggers a "BOOM!" explosion animation with haptic feedback
  2. Broadcasts a Tag packet to damage the target device
  3. Enters a rearm countdown period
  4. Returns to armed state, ready to tag again

State Machine

The mine operates using a three-state machine:

State Description Display
Armed Ready to tag incoming devices "ARMED" watermark
Tagging Explosion animation playing BOOM! animation
Rearming Countdown before re-arming Countdown number

Settings

Access settings via the gear icon in the app bar.

Setting Description Default
Minimum RSSI Signal strength threshold for triggering (-120 = far, 0 = close) -60 dBm
Damage Applied Amount of damage dealt to tagged devices 100
Target Team Which team(s) to target (Red, Blue, or All) All
Time to Rearm Seconds before mine can tag again after detonation 5 seconds

UI Elements

  • Status Bar: Shows current target team, damage, and RSSI threshold
  • Device List: Displays detected KTag devices with:
    • Device name and BLE address
    • Current RSSI signal strength
    • Status: IN RANGE, OUT OF RANGE, TAGGED, or TAGGED OUT
  • Watermark: Large centered text showing current state (ARMED or countdown)
  • Explosion Animation: Full-screen animation with expanding rings and "BOOM!" text

Permissions

  • BLUETOOTH_SCAN / BLUETOOTH_CONNECT - BLE operations
  • ACCESS_COARSE_LOCATION - Required for BLE scanning on older Android versions
  • VIBRATE - Haptic feedback on explosion