warzone2100/data/script/text/cam2-1x.slo

96 lines
2.7 KiB
Plaintext

//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);
}