//SLO file for changing colour of player units on map, //so can be found later on Cam2-1 //cam2-1X.SLO /* ******************** */ /* Declared Variables */ /* ******************** */ public int curPlayer, newPlayer; public int numRegions, RegionsX1[2], RegionsY1[2], RegionsX2[2], RegionsY2[2]; private int count, newColour, oldColour; private DROID objectDroid, viewerDroid; public int numDroids; public DROID droids[10]; public SOUND LZSnd; public TEXTSTRING RetLZMsg; public INTMESSAGE LZ_MSG; public STRUCTURE transStruct; public SOUND goodSnd, badSnd; event seen; event start(CALL_GAMEINIT) { createAlliance(newPlayer, curPlayer); //make player 0 (newPlayer) units belong to player 1 (curPlayer) //save the old colour so we can set it back again oldColour = getPlayerColour(curPlayer); newColour = getPlayerColour(newPlayer); setPlayerColour(newColour, curPlayer); //make curPlayer units newPlayer colour //pre damage some of these droids count = 0; while (count < numDroids) { forceDamageObject(droids[count], random(20) + 50); //anywhere from 50% to 70% health setDroidSecondary(droids[count], DSO_HALTTYPE, DSS_HALT_HOLD); count = count + 1; } forceDamageObject(transStruct, random(20) + 30); //anywhere from 30% to 50% health } event transDead((transStruct == NULLOBJECT), 29) { playSound(badSnd, newPlayer); //"Objective destroyed" extraFailFlag = TRUE; //reset the player colour for future missions setPlayerColour(oldColour, curPlayer); setEventTrigger(seen, inactive); setEventTrigger(transDead, inactive); } //has player found these units? //event seen(CALL_DROID_SEEN, newPlayer, ref objectDroid, ref viewerDroid) event seen(droidInArea(newPlayer, RegionsX1[0], RegionsY1[0], RegionsX2[0], RegionsY2[0]), 18) { count = 0; while (count < numDroids) { if (droids[count] != NULLOBJECT) { takeOverSingleDroid(droids[count], newPlayer); } count = count + 1; } count = 0; while (count < numRegions) { //takeOverDroidsInArea(curPlayer, newPlayer, RegionsX1[count], RegionsY1[count], RegionsX2[count], RegionsY2[count]); takeOverStructsInArea(curPlayer, newPlayer, RegionsX1[count], RegionsY1[count], RegionsX2[count], RegionsY2[count]); count = count + 1; } playSound(goodSnd, newPlayer); //"Units rescued" //reset the player colour for future missions setPlayerColour(oldColour, curPlayer); extraVictoryFlag = TRUE; setEventTrigger(transDead, inactive); /* no longer need to return //add lz blip & return to LZ message addMessage(LZ_MSG, PROX_MSG, newPlayer, false); //addConsoleText(RetLZMsg, newPlayer); playSoundPos(LZSnd, newPlayer, 960, 7488, 0); //as in prox2-1.txt */ setEventTrigger(seen, inactive); }