Advances Through Trade

This small script gives the players (AI and HUMANs alike) the chance of obtaining advances via trade routes. This is just an attempt to give small civs a chance of keeping up and to make trade a bit more attractive.

The Script

//--------------------------------------------------------------------------
// MoT Mod for CTP2 (Apolyton Edition) by BureauBert
// v1.1
// http://motmod.ctp2.info
//--------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////
// Science Via Trade
// by BureauBert
// Science swapping via trade routes
////////////////////////////////////////////////////////////////////////////

HandleEvent(SendGood) 'ScienceSwapViaTradeRoute' post {
        city_t sciCityOne;
        city_t sciCityTwo;
        int_t sciPlayerOne;
        int_t sciPlayerTwo;
        int_t sciPlayerOneDesiredAdvance;
        int_t sciPlayerTwoDesiredAdvance;
        int_t sciAdvanceSwapChance;
        int_t sciAdvanceSwapRand;

        sciAdvanceSwapChance = 5;

        sciCityOne = city[0];
        sciCityTwo = city[1];
        sciPlayerOne = sciCityOne.owner;
        sciPlayerTwo = sciCityTwo.owner;
        sciPlayerOneDesiredAdvance = -1;
        sciPlayerTwoDesiredAdvance = -1;
       
        sciAdvanceSwapRand = Random(99);
        if(sciAdvanceSwapRand < sciAdvanceSwapChance) {
                sciPlayerOneDesiredAdvance = GetDesiredAdvanceFrom(sciPlayerOne, sciPlayerTwo, 0, 50000);
                if(sciPlayerOneDesiredAdvance > -1) {
                        advance[0] = sciPlayerOneDesiredAdvance;
                        Message(sciPlayerOne, 'GotAdvanceFromTrade');
                        GrantAdvance(sciPlayerOne, sciPlayerOneDesiredAdvance);
                }
                sciPlayerTwoDesiredAdvance = GetDesiredAdvanceFrom(sciPlayerTwo, sciPlayerOne, 0, 50000);
                if(sciPlayerTwoDesiredAdvance > -1) {
                        advance[0] = sciPlayerTwoDesiredAdvance;
                        Message(sciPlayerTwo, 'GotAdvanceFromTrade');
                        GrantAdvance(sciPlayerTwo, sciPlayerTwoDesiredAdvance);
                }
        }
}

// Messages

messagebox 'GotAdvanceFromTrade' {
        Text(ID_GOT_ADVANCE_FROM_TRADE);
        Show();
}