int_T FIRST_UNIT[]; int_T END_UNIT[]; int_t METAMORPH_WONDER[]; void_f InitWonders() { FIRST_UNIT[0] = UnitDB(UNIT_GANDALF_THE_GREY); FIRST_UNIT[1] = UnitDB(UNIT_BLACK_RIDER); END_UNIT[0] = UnitDB(UNIT_GANDALF_THE_WHITE); END_UNIT[1] = UnitDB(UNIT_NAZGUL); METAMORPH_WONDER[0] = WonderDB(WONDER_GANDALF_THE_WHITE); METAMORPH_WONDER[1] = WonderDB(WONDER_NAZGUL_EMERGE); } HandleEvent(BeginTurn) 'init_metamorposes_wonders' pre { InitWonders(); DisableTrigger('init_metamorposes_wonders'); } HandleEvent(CreateWonder) 'gandalf the white' pre{ int_T i; int_t j; int_T tmpPlayer; city_t tmpCity; unit_t tmpUnit; location_t tmpLoc; tmpPlayer = city[0].owner; for(i=0; i < METAMORPH_WONDER.#; i = i + 1){ if(value[0] == METAMORPH_WONDER[i]){ j = i; } } for(i = 0; i < tmpPlayer.units; i = i + 1){ GetUnitByIndex(tmpPlayer, i, tmpUnit); if(tmpUnit == FIRST_UNIT[j]){ tmpLoc = tmpUnit.location; Event:DisbandUnit(tmpUnit); CreateUnit(tmpPlayer, END_UNIT[j], tmpLoc, 0); } } }