//SLO file for changing colour of player units on map, //for Gamma Base on Cam3C //cam3CX.SLO /* ******************** */ /* Declared Variables */ /* ******************** */ public int curPlayer, player, enemy, powerBoost; public SOUND powTransSnd, rescuedSnd; public int numRegions, RegionsX1[2], RegionsY1[2], RegionsX2[2], RegionsY2[2]; //public INTMESSAGE MissionBrief; public SOUND incomingSnd; public int limboX1, limboY1, limboX2, limboY2; /* Structure Limits */ public int numStrucStats1, numStrucStats2, strucLimit[11]; public STRUCTURESTAT strucStat[11]; //starting Tech public int numTechs, numDroids, timeLimit; public RESEARCHSTAT startTech[10]; public DROID droids[6]; private int count, newColour, temp, oldColour; private DROID objectDroid, viewerDroid; private BASEOBJ objectObj, viewerObj; trigger brief2Trig(wait, 30); //delay between "incoming.." and brief. trigger clearMessageTrig(wait, 100); //10 second delay event betaDead; event start(CALL_GAMEINIT) { //set structure limits count = 0; while (count < numStrucStats1) { setStructureLimits (strucStat[count], strucLimit[count], player); enableStructure(strucStat[count], player); count = count + 1; } //don't let player see his base on 3A!!! setScrollParams(0, 137, 64, 192); //(0, 140, 64, 192); //set position for limbo units for this map setLimboLanding(limboX1, limboY1, limboX2, limboY2); createAlliance(player, curPlayer); newColour = getPlayerColour(player); //store the old colour so we can reset it later oldColour = getPlayerColour(curPlayer); setPlayerColour(newColour, curPlayer); //make curPlayer units player colour //give gamma base starting tech count = 0; while (count < numTechs) { completeResearch(startTech[count], curPlayer); count = count + 1; } } //has player found gamma base (after briefing) event seen(inactive) { setEventTrigger(betaDead, inactive); //give player briefing //don't use briefing anymore!!! //addMessage(MissionBrief, MISS_MSG, 0, true); playSound(rescuedSnd, player); count = 0; while (count < numRegions) { takeOverDroidsInArea(curPlayer, player, RegionsX1[count], RegionsY1[count], RegionsX2[count], RegionsY2[count]); takeOverStructsInArea(curPlayer, player, RegionsX1[count], RegionsY1[count], RegionsX2[count], RegionsY2[count]); count = count + 1; } extraVictoryFlag = TRUE; resetLimboMission(); //allow access to base setScrollParams(0, 0, 64, 192); //allow full map access //set radar zoom level setRadarZoom(0); //set timelimit setMissionTime(timeLimit); //reset structure limits count = 0; while (count < numStrucStats1) { setStructureLimits (strucStat[count], 200, player); enableStructure(strucStat[count], player); count = count + 1; } while (count < numStrucStats1 + numStrucStats2) { setStructureLimits (strucStat[count], strucLimit[count], player); enableStructure(strucStat[count], player); count = count + 1; } //reset the player's colour setPlayerColour(oldColour, curPlayer); addPower(powerBoost, player); playSound(powTransSnd, player); //stop player from failing now they've reached Gamma Base! setEventTrigger(seen, inactive); } //has player found gamma base? //needs to be object seen //CALL_OBJ_SEEN, INT player, ref BASEOBJ object, ref BASEOBJ viewer //event seen2(CALL_DROID_SEEN, player, ref objectDroid, ref viewerDroid) event seen2(CALL_OBJ_SEEN, player, ref objectObj, ref viewerObj) { if (objectObj.player == curPlayer) { playSound(incomingSnd, player); setEventTrigger(seen, brief2Trig); setEventTrigger(seen2, inactive); } } event betaDead(every, 10) //45) { //check to see if team beta (limbo units) still alive (otherwise lose!) temp = 0; count = 0; //get count of team gamma units while (count < numDroids) { if (droids[count] != NULLOBJECT) { temp = temp + 1; } count = count + 1; } if (temp >= getDroidCount(player)) //only gamma units alive => limbo units all dead!! { extraFailFlag = TRUE; //reset the player's colour setPlayerColour(oldColour, curPlayer); setEventTrigger(betaDead, inactive); } }