// determined with develop->rendering->selected texture info (after selecting the face)
integer mainface = 2;

sprayon() {
    llParticleSystem([
        PSYS_PART_FLAGS,
            PSYS_PART_EMISSIVE_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_INTERP_COLOR_MASK,
        PSYS_SRC_PATTERN,
            PSYS_SRC_PATTERN_ANGLE_CONE,
        PSYS_SRC_TEXTURE,           
            "2ca57748-4944-de53-b301-8d0efbafb2c6",
        PSYS_SRC_BURST_RADIUS,      0.1,
        PSYS_SRC_ANGLE_BEGIN,       PI/2.0,
        PSYS_SRC_ANGLE_END,         PI/2.0,
        PSYS_PART_START_COLOR,      <0.6,0.6,0.6>,
        PSYS_PART_START_SCALE,      <3.0,3.0,3.0>,
        PSYS_PART_END_SCALE,        <0.51,0.51,0.51>,
        PSYS_PART_START_ALPHA,      1.0,
        PSYS_PART_END_ALPHA,        0.0,
        PSYS_PART_START_GLOW,       0.0,
        PSYS_SRC_MAX_AGE,           0.0,
        PSYS_PART_MAX_AGE,          2.0,
        PSYS_SRC_BURST_RATE,        0.1,
        PSYS_SRC_BURST_PART_COUNT,  25,
        PSYS_SRC_ACCEL,             <0.0,0.0,-1.0>,
        PSYS_SRC_BURST_SPEED_MIN,   1.0,
        PSYS_SRC_BURST_SPEED_MAX,   1.5
    ]);
}

sprayoff() {
    llParticleSystem([]);
}

default
{
    on_rez(integer x)
    {
        llResetScript();
    }
    
    state_entry()
    {
        sprayoff();
        llSetTexture("TrixieSign2", mainface);
    }
    
    link_message(integer sender, integer num, string str, key id)
    {
        if (str == "cards") {
            if (num == 0) {
                llSetTexture("TrixieSign2", mainface);      // 0.2s delay
                sprayoff();
            } else if (num == 1) {
                llSetTexture("signcards1", mainface);      // 0.2s delay
            } else if (num == 2) {
                llSetTexture("signcards2", mainface);      // 0.2s delay
            }
        } else if (str == "cardsmoke") {
            sprayon();
            llSleep(5.0);
            sprayoff();
        }
    }
}
