//called to enable a mission public TimeCondition Enable (GameManager gameMgr) { this.gameMgr = gameMgr; switch (type) //start listening to different RTS Engine events depending on the type of the mission { case Type.collectResource: CustomEvents.FactionResourceUpdated += OnFactionResourceUpdated; break; case Type.produce: CustomEvents.UnitCreated += OnFactionEntityEvent; CustomEvents.BuildingBuilt += OnFactionEntityEvent; break; } CustomEvents.FactionEntityDead += OnFactionEntityEvent; //required for all mission types CurrAmount = 0; //default value for the current amount CustomEvents.OnMissionStart(this); //trigger custom event startEvent.Invoke(); return timeCondition; //return the time condition to the manager component }