Btw a other aproach to the problem, with counters:
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using maddox.game;
using maddox.game.world;
public class Mission : AMission
{
const int MinSubMissionsforBlueSucces = 3;
const int MinSubMissionsforRedSucces = 3;
int BlueMissionSuccesses = 0;
int RedMissionSuccesses = 0;
int ScoreRed = 0;
int ScoreBlue = 0;
public override void OnTrigger(int missionNumber, string shortName, bool active)
{
base.OnTrigger(missionNumber, shortName, active);
if (BlueMissionSuccesses < MinSubMissionsforBlueSucces && RedMissionSuccesses < MinSubMissionsforRedSucces)
{
if ("RedPartWin".Equals(shortName))
{
RedMissionSuccesses++;
ScoreRed += 10;
}
if ("BluePartWin".Equals(shortName))
{
BlueMissionSuccesses++;
ScoreBlue += 10;
}
}
else if (BlueMissionSuccesses >= MinSubMissionsforBlueSucces)
{
GamePlay.gpLogServer(null, "Blue already win this Battle", null);
}
else if (RedMissionSuccesses >= MinSubMissionsforRedSucces)
{
GamePlay.gpLogServer(null, "Red already win this Battle", null);
}
}
public override void OnTickGame()
{
base.OnTickGame();
if (Time.tickCounter() % 18000 == 17990) //check every 10 mins
{
if (BlueMissionSuccesses >= MinSubMissionsforBlueSucces || RedMissionSuccesses >= MinSubMissionsforRedSucces)
{
GamePlay.gpLogServer(null, "Team scores - RAF {0}: LW {1}", new object[] { ScoreRed, ScoreBlue });
GamePlay.gpLogServer(null, "Team Objectives Completed - RAF {0} of {1}: LW {2} of {3}", new object[] { RedMissionSuccesses, MinSubMissionsforRedSucces, BlueMissionSuccesses, MinSubMissionsforBlueSucces });
Timeout(10, () =>
{
if (BlueMissionSuccesses >= MinSubMissionsforBlueSucces)
GamePlay.gpHUDLogCenter("Blue Objective 11 Completed!!!");
else if (RedMissionSuccesses >= MinSubMissionsforRedSucces)
GamePlay.gpHUDLogCenter("Red Objective 11 Completed!!!");
});
BlueMissionSuccesses = 0;
RedMissionSuccesses = 0;
}
}
}
}