View Single Post
  #5  
Old 03-27-2012, 10:00 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

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

Last edited by FG28_Kodiak; 03-27-2012 at 10:14 AM.
Reply With Quote