{
    "type": "sprite",
    "name": "Bullet",
    "sprite": {
        "texture": "./media/images/projectiles/bullet.png",
        "anchor": {"x": 0.5, "y": 0.5}
    },
    "components": {
        "AABBComponent": {
            "width": 16,
            "height": 16
        },
        "BodyComponent": {
            "allowMultipleCollide": false,
            "shapes": [
                {
                    "name": "body",
                    "offset": {"x": 0, "y": 0},
                    "offsetRotation": 0,
                    "box": {
                        "width": 16,
                        "height": 16
                    }
                }
            ]
        },
        "MovementComponent": {
            "friction": {
                "x": 0,
                "y": 0
            }
        },
        "CollisionComponent": {
            "collidesWith": {
                "tiles": true,
                "objects": true
            },
            "resolveFor": {
                "tiles": false,
                "objects": false
            },
            "groups": [
                "projectile"
            ],
            "targetAndGroups": [
            ],
            "targetOrGroups": [
            ]
        },
        "StatsComponent": {
            "acceleration": {"x": 20, "y": 20},
            "maxMoveSpeed": {"x": 800, "y": 800},
            "gravity": {
                "x": 0,
                "y": 0
            },
            "maxHitPoints": 1,
            "damage": 1,
            "force": 100
        },
        "ScriptsComponent": {
            "sensorBodyCollide": ["BodyAttack", "RemoveOnCollide"],
            "sensorTileCollide": ["RemoveOnTileCollide"],
            "timers": {
                "TimedLifeExpire": ["TimedLifeExpire"]
            }
        },
        "AnimationComponent": {},
        "LayerComponent": {
            "layer": "projectile"
        },
        "TimeComponent": {
            "timers": [
                {
                    "name": "TimedLifeExpire",
                    "duration": 200,
                    "removeOnComplete": true
                }
            ]
        }
    }
}