#include "nw_i0_plot"

void CheckWinnersAndReward() 
{
    object oArea = GetArea(OBJECT_SELF);
    object oPC = GetFirstPC();
    int nRedAlive = 0;
    int nBlackAlive = 0;
    object oTarget = GetFirstObjectInArea(oArea);

    // Loop through all objects in the area to check the status of creatures
    while (GetIsObjectValid(oTarget)) {
        if (GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) {
            if (GetTag(oTarget) == "CAS_ARENARED") {
                nRedAlive = 1;
            } else if (GetTag(oTarget) == "CAS_ARENABLACK") {
                nBlackAlive = 1;
            }
        }
        oTarget = GetNextObjectInArea(oArea);
    }

    // Check for the winner and delete the loser
    if (nRedAlive != nBlackAlive) {
        object oLoser = (nRedAlive == 0) ? GetObjectByTag("CAS_ARENARED") : GetObjectByTag("CAS_ARENABLACK");
        if (GetIsObjectValid(oLoser)) {
            DestroyObject(oLoser);
        }
    }
}



void main() {
    SendMessageToPC(GetFirstPC(), "Black Warrior has died.");

    object oPC = GetFirstPC();
    object oArea = GetArea(OBJECT_SELF);

    while (GetIsObjectValid(oPC)) {
        if (GetArea(oPC) == oArea) {
            int nBetRed = GetLocalInt(oPC, "I_BET_ON_RED");

            if (nBetRed > 0) {
                SendMessageToPC(oPC, "Rewarding Tickets for Betting on Red: " + IntToString(nBetRed));
                CreateItemOnObject("cas_ticket", oPC, nBetRed);
            }

            DeleteLocalInt(oPC, "I_BET_ON_RED");
            DeleteLocalInt(oPC, "I_BET_ON_BLACK");
        }
        oPC = GetNextPC();
    }
}