예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,TeamRosterName,PersonId,PersonId1,PersonId2")] TeamRoster teamRoster)
        {
            if (id != teamRoster.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(teamRoster);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TeamRosterExists(teamRoster.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(ListTeamRosters)));
            }
            ViewData["PersonId2"] = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId2);
            ViewData["PersonId"]  = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId);
            ViewData["PersonId1"] = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId1);
            return(View(teamRoster));
        }
예제 #2
0
        void input_Completed(object sender, PopUpEventArgs <string, PopUpResult> e)
        {
            int  number;
            bool parsed = int.TryParse(e.Result, out number);

            if (e.Result.Length > 3)
            {
                MessageBox.Show(AppResources.JerseyMustBeLessThan3Characters, _messageBoxTitle, MessageBoxButton.OK);
            }
            else if (parsed == false)
            {
                MessageBox.Show(AppResources.JerseyMustBeANumber, _messageBoxTitle, MessageBoxButton.OK);
            }
            else
            {
                TeamRoster teamRoster = new TeamRoster();

                teamRoster.TeamID        = App.gPromptForJerseyTeamID;
                teamRoster.PlayerID      = App.gPromptForJerseyPlayerID;
                teamRoster.UniformNumber = e.Result.ToString();
                teamRoster.Active        = "Y";
                BaseTableDataAccess.Instance().UpsertTeamRoster(teamRoster);

                //Game Manager is calling AddPlayerToRoster via the + button, so also need to save this player to event roster/isonfield = false and return
                AddPlayerToEventRoster();
                (Application.Current.RootVisual as Frame).GoBack();
            }
        }
예제 #3
0
 public TeamRosterModel(Team team, Player player, TeamRoster roster)
 {
     Team              = team;
     Player            = player;
     TeamRoster        = roster;
     RosterDisplayText = TeamRoster.UniformNumber.PadRight(4, ' ') + " " + Player.FirstName + " " + Player.LastName;
 }
예제 #4
0
        void input_Completed(object sender, PopUpEventArgs <string, PopUpResult> e)
        {
            int  number;
            bool parsed = int.TryParse(e.Result, out number);

            if (e.Result == null)
            {
                MessageBox.Show(AppResources.JerseyMustBeANumber, _messageBoxTitle, MessageBoxButton.OK);
            }
            else if (e.Result.Length > 3)
            {
                MessageBox.Show(AppResources.JerseyMustBeLessThan3Characters, _messageBoxTitle, MessageBoxButton.OK);
            }
            else if (parsed == false)
            {
                MessageBox.Show(AppResources.JerseyMustBeANumber, _messageBoxTitle, MessageBoxButton.OK);
            }
            else
            {
                TeamRoster teamRoster = new TeamRoster();

                teamRoster.TeamID        = App.gPromptForJerseyTeamID;
                teamRoster.PlayerID      = App.gPromptForJerseyPlayerID;
                teamRoster.UniformNumber = e.Result.ToString();
                teamRoster.Active        = "Y";
                BaseTableDataAccess.Instance().UpsertTeamRoster(teamRoster);

                //Now need to reload team roster so added player with his jersey is displayed.
                _vm.Initialize(teamRoster.TeamID);
            }
        }
예제 #5
0
    public void InitList(TeamRoster currentRoster)
    {
        foreach (MinionPoolGUIEntry entry in allEntries)
        {
            Destroy(entry.gameObject);
        }
        allEntries.Clear();

        TeamPool pool = Core.GetPlayerProfile().pool;

        foreach (MinionTemplate template in Core.GetMinionTemplateManager().GetFullList())
        {
            MinionPoolGUIEntry entry = Instantiate <MinionPoolGUIEntry>(prefab);
            entry.template              = template;
            entry.icon.sprite           = template.icon;
            entry.typeIcon.sprite       = typeIcons [(int)template.GetSlotType()];
            entry.typeBackground.sprite = typeBackgrounds [(int)template.GetSlotType()];
            entry.transform.SetParent(contentBox);
            entry.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);
            allEntries.Add(entry);
        }

        UpdateList(pool);
        ApplyFilters(Filters.instance);
    }
예제 #6
0
        public IEnumerable <TeamRoster> Get()
        {
            var teamRoster = new TeamRoster();

            teamRoster.Players = players;

            yield return(teamRoster);
        }
예제 #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            TeamRoster teamRoster = db.TeamRosters.Find(id);

            db.TeamRosters.Remove(teamRoster);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #8
0
        protected void Search_Click(object sender, EventArgs e)
        {
            if (TeamList.SelectedIndex == 0)
            {
                MessageLabel.Text = "Select a team to view its details";
            }
            else
            {
                int teamID = 0;
                if (int.TryParse(TeamList.Text, out teamID))
                {
                    try
                    {
                        TeamController sysmgr = new TeamController();
                        Team           info   = sysmgr.Team_Find(teamID);

                        CoachName.Text   = info.Coach.ToString();
                        AssistCoach.Text = info.AssistantCoach.ToString();
                        WinLabel.Text    = info.Wins.ToString();
                        if (info.Wins == null)
                        {
                            WinLabel.Text = "0";
                        }
                        LossLabel.Text = info.Losses.ToString();
                        if (info.Losses == null)
                        {
                            LossLabel.Text = "0";
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageLabel.Text = ex.Message;
                    }

                    try
                    {
                        PlayerController sysmgr = new PlayerController();
                        List <Player>    info   = null;
                        info = sysmgr.Player_GetByTeam(int.Parse(TeamList.Text));
                        info.Sort((x, y) => x.LastName.CompareTo(y.LastName));

                        TeamRoster.DataSource = info;
                        TeamRoster.DataBind();
                    }
                    catch (Exception ex)
                    {
                        MessageLabel.Text = ex.Message;
                    }
                }
                else
                {
                    MessageLabel.Text = "Team id must be a number.";
                }
            }
        }
예제 #9
0
 public ActionResult Edit([Bind(Include = "ID,TEAMID,ATHLETEID")] TeamRoster teamRoster)
 {
     if (ModelState.IsValid)
     {
         db.Entry(teamRoster).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ATHLETEID = new SelectList(db.Athletes, "ID", "NAME", teamRoster.ATHLETEID);
     ViewBag.TEAMID    = new SelectList(db.Teams, "ID", "NAME", teamRoster.TEAMID);
     return(View(teamRoster));
 }
예제 #10
0
        public void SaveToDatabase(int teamID)
        {
            BaseTableDataAccess.Instance().UpsertPlayer(this.PlayerDetails, GameID, teamID);

            if (teamID != 0)
            {
                TeamRoster teamRoster = new TeamRoster();
                teamRoster.PlayerID      = this.PlayerDetails.PlayerID;
                teamRoster.TeamID        = teamID;
                teamRoster.UniformNumber = UniformNumber;
                teamRoster.Active        = Active;
                BaseTableDataAccess.Instance().UpsertTeamRoster(teamRoster);
            }
        }
예제 #11
0
        private void GoToDeletePlayerRoster()
        {
            MessageBoxResult result = MessageBox.Show(AppResources.Delete + " '" + Player.FirstName + " " + Player.LastName + "'" + AppResources.FromRoster + "?", AppResources.DeletePlayerFromRoster, MessageBoxButton.OKCancel);

            if (result == MessageBoxResult.OK)
            {
                TeamRoster teamRoster = new TeamRoster();
                teamRoster.TeamID   = Team.TeamID;
                teamRoster.PlayerID = Player.PlayerID;

                DAL.Instance().DeleteTeamRoster(teamRoster);
                OnPlayerRosterDeleted(EventArgs.Empty);
            }
        }
예제 #12
0
        // GET: TeamRosters/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TeamRoster teamRoster = db.TeamRosters.Find(id);

            if (teamRoster == null)
            {
                return(HttpNotFound());
            }
            return(View(teamRoster));
        }
예제 #13
0
        public async Task <IActionResult> Create([Bind("Id,TeamRosterName,PersonId,PersonId1,PersonId2")] TeamRoster teamRoster)
        {
            if (ModelState.IsValid)
            {
                _context.Add(teamRoster);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(ListTeamRosters)));
            }
            ViewData["PersonId2"] = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId2);
            ViewData["PersonId"]  = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId);
            ViewData["PersonId1"] = new SelectList(_context.Person, "Id", "Id", teamRoster.PersonId1);
            return(View(teamRoster));
        }
예제 #14
0
        public TeamRosterModel(TeamRosterModel p)
        {
            if (Player == null)
            {
                Player = new Player();
            }

            Player.PlayerID  = p.Player.PlayerID;
            Player.FirstName = p.Player.FirstName;
            Player.LastName  = p.Player.LastName;
            Player.Height    = p.Player.Height;
            Player.Weight    = p.Player.Weight;
            Player.Kicks     = p.Player.Kicks;
            FieldColumn      = p.FieldColumn;
            FieldRow         = p.FieldRow;
            UniqueIdentifier = p.UniqueIdentifier;
            JerseySource     = p.JerseySource;

            if (Team == null)
            {
                Team = new Team();
            }

            Team.Coach         = p.Team.Coach;
            Team.Color         = p.Team.Color;
            Team.ContactNumber = p.Team.ContactNumber;
            Team.Flag          = p.Team.Flag;
            Team.JerseyID      = p.Team.JerseyID;
            Team.Notes         = p.Team.Notes;
            Team.TeamID        = p.Team.TeamID;
            Team.TeamName      = p.Team.TeamName;
            Team.TeamShortName = p.Team.TeamShortName;


            if (TeamRoster == null)
            {
                TeamRoster = new TeamRoster();
            }

            TeamRoster.Active   = p.TeamRoster.Active;
            TeamRoster.PlayerID = p.TeamRoster.PlayerID;
            //   TeamRoster.RosterDisplayText = p.TeamRoster.RosterDisplayText;

            TeamRoster.TeamID        = p.TeamRoster.TeamID;
            TeamRoster.UniformNumber = p.TeamRoster.UniformNumber;
            TeamRoster.Visible       = p.TeamRoster.Visible;

            Home          = p.Home;
            PlayerOpacity = p.PlayerOpacity;
        }
예제 #15
0
 public void EditRoster(int index)
 {
     GetComponent <Image>().sprite = teamBuilderBackgrounds [index];
     currentRoster = Core.GetPlayerProfile().GetRoster(index);
     UpdateMinionIcons();
     minionPool.InitList(currentRoster);
     InitRangedPrioritySelectors();
     teamName.text = currentRoster.teamName;
     Core.GetPlayerProfile().iSelectedIndex = index;
     if (WorldMapSlider.instance.IsOnTeamBuilder())
     {
         WorldMapSlider.instance.OnChangeSelectionInTeamBuilder();
     }
     WorldMapSlider.instance.SlideToTeamBuilder();
 }
예제 #16
0
        // GET: TeamRosters/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TeamRoster teamRoster = db.TeamRosters.Find(id);

            if (teamRoster == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ATHLETEID = new SelectList(db.Athletes, "ID", "NAME", teamRoster.ATHLETEID);
            ViewBag.TEAMID    = new SelectList(db.Teams, "ID", "NAME", teamRoster.TEAMID);
            return(View(teamRoster));
        }
예제 #17
0
        protected void Search_Click(object sender, EventArgs e)
        {
            if (TeamList.SelectedIndex == 0)
            {
                MessageLabel.Text = "Select a team to view its roster.";
            }
            else
            {
                int teamid = int.Parse(TeamList.SelectedValue);

                try
                {
                    TeamController teamMgr  = new TeamController();
                    Team           teamInfo = null;
                    teamInfo = teamMgr.Team_Find(teamid);

                    if (teamInfo == null)
                    {
                        MessageLabel.Text   = "Team not found.";
                        Coach.Text          = "";
                        AssistantCoach.Text = "";
                        Wins.Text           = "";
                        Losses.Text         = "";
                    }
                    else
                    {
                        Coach.Text          = teamInfo.Coach;
                        AssistantCoach.Text = teamInfo.AssistantCoach;
                        Wins.Text           = teamInfo.Wins.ToString() == "" ? "0" : teamInfo.Wins.ToString();
                        Losses.Text         = teamInfo.Losses.ToString() == "" ? "0" : teamInfo.Losses.ToString();
                    }

                    PlayerController playerMgr = new PlayerController();
                    List <Player>    info      = null;

                    info = playerMgr.Player_GetByTeam(teamid);
                    info.Sort((x, y) => x.LastName.CompareTo(y.LastName));
                    TeamRoster.DataSource = info;

                    TeamRoster.DataBind();
                }
                catch (Exception ex)
                {
                    MessageLabel.Text = ex.Message;
                }
            }
        }
예제 #18
0
    void Update()
    {
        if (Core.GetPlayerProfile() == null)
        {
            return;
        }

        roster = Core.GetPlayerProfile().GetRoster(rosterIndex);

        if (roster != null && (roster.bDirty || renderers.Count == 0))
        {
            UpdatePreview();
            roster.bDirty = false;
        }

        foreach (RenderActor renderActor in renderers)
        {
            renderActor.UpdateAnimation(Time.deltaTime);
        }
    }
예제 #19
0
        void item_PlayerAddedToRoster(object sender, EventArgs e)
        {
            PlayerModel player     = (PlayerModel)sender;
            TeamRoster  teamRoster = new TeamRoster();

            teamRoster.TeamID        = TeamID;
            teamRoster.PlayerID      = player.Player.PlayerID;
            teamRoster.UniformNumber = "0";
            teamRoster.Active        = "Y";
            BaseTableDataAccess.Instance().UpsertTeamRoster(teamRoster);

            Common.Instance().SetTeamRosterPromptForJersey(TeamID, TeamName, player.Player.PlayerID);

            if (GameID != 0)
            {
                if (App.gPromptForJersey == true)
                {
                    InputPrompt input = new InputPrompt();


                    InputScope     scope = new InputScope();
                    InputScopeName name  = new InputScopeName();

                    name.NameValue = InputScopeNameValue.Number;
                    scope.Names.Add(name);

                    input.Completed += input_Completed;
                    input.Title      = AppResources.JerseyNumber;
                    input.Message    = AppResources.EnterPlayersJerseyNumber;
                    input.InputScope = scope;
                    input.Show();
                }
                App.gPromptForJersey = false;
            }
            else  //Player List was called from Rosters screen so go back to that screen to get jersey number
            {
                (Application.Current.RootVisual as Frame).GoBack();
            }
        }
예제 #20
0
    void Update()
    {
        TeamRoster roster = Core.GetCurrentRoster();

        if (roster == null)
        {
            return;
        }

        for (int i = 0; i < (int)MinionSlot.NUM_MINION_SLOTS; i++)
        {
            if (roster.minions [i] != null)
            {
                playerIcons [i].sprite = roster.minions [i].template.icon;

                if (roster.minions [i].isZombified)
                {
                    switch (((MinionSlot)i).GetSlotType())
                    {
                    case MinionSlotType.MELEE:
                    {
                        meleeBar.sprite = meleeBarZombie;
                        break;
                    }

                    case MinionSlotType.RANGED:
                    {
                        rangedBar.sprite = rangedBarZombie;
                        break;
                    }
                    }
                }
            }
        }

        meleeBar.fillAmount  = GetParametric(roster.afGroupHealths [(int)MinionSlotType.MELEE], roster.afGroupMaxHealths [(int)MinionSlotType.MELEE]);
        rangedBar.fillAmount = GetParametric(roster.afGroupHealths [(int)MinionSlotType.RANGED], roster.afGroupMaxHealths [(int)MinionSlotType.RANGED]);
    }
예제 #21
0
        public IActionResult UpdateHandicapForPlayer(int playerId, int sessionId, [FromBody] TeamRoster tr)
        {
            _repository.UpdateHandicapForPlayer(playerId, sessionId, tr.Handicap);

            return(new JsonResult("Success"));
        }
예제 #22
0
 public void Update(TeamRoster entityToUpdate)
 {
     _repository.Update(entityToUpdate);
 }
예제 #23
0
        //public TeamRoster GetByName(string TeamRosterName)
        //{
        //Pass in WHERE clause as a lambda here
        //    List<TeamRoster> _TeamRostersWithName = _repository.Get( e => e.Name == TeamRosterName).ToList();
        //    return
        //}

        public void Insert(TeamRoster entity)
        {
            _repository.Insert(entity);
        }
예제 #24
0
        public void Initialize(int gameID, int teamID, int playerID)
        {
            GameID   = gameID;
            TeamID   = teamID;
            PlayerID = playerID;

            if (teamID == 0)
            {
                IsVisible = Visibility.Collapsed;
            }
            else
            {
                IsVisible = Visibility.Visible;
                TeamRoster teamRosterEntry = new TeamRoster();
                teamRosterEntry = DAL.Instance().GetPlayerTeamRosterEntry(TeamID, playerID);


                UniformNumber = teamRosterEntry.UniformNumber;
                if (teamRosterEntry.Active == "Y")
                {
                    ActiveChecked = true;
                }
                else
                {
                    InActiveChecked = true;
                }
            }

            if (playerID == 0)
            {
                PlayerDetails.PlayerID = playerID;
                KicksRightChecked      = true;
                IsDeleted = Visibility.Collapsed;
                BirthDate = DateTime.Now.AddDays(-7000);
            }
            else
            {
                PlayerDetails = DAL.Instance().GetPlayer(playerID);

                BirthDate = PlayerDetails.BirthDate;

                if (BirthDate.Year < 1900)
                {
                    BirthDate = DateTime.Now;
                }

                if (PlayerDetails.Kicks == "Left")
                {
                    KicksLeftChecked = true;
                }
                else
                {
                    KicksRightChecked = true;
                }

                //This functionality is not in place now
                //If this is a deleted player (i.e. visible = 'N') then we need to show label on bottom of screen that this is a deleted player
                if (PlayerDetails.Visible == "Y")
                {
                    IsDeleted = Visibility.Collapsed;
                }
                else
                {
                    IsDeleted = Visibility.Visible;
                }
            }
        }
예제 #25
0
 public void Delete(TeamRoster entityToDelete)
 {
     _repository.Delete(entityToDelete);
 }
예제 #26
0
    public void StartLevel(TeamRoster selectedRoster)
    {
        // This oddly named object points to all sorts of useful things that exist in all levels
        instance = FindObjectOfType <PlayerRig>();

        if (instance == null)
        {
            instance = Instantiate <PlayerRig>(Core.theCore.playerRigPrefab);
            instance.transform.position = Vector3.zero;
        }

        GameObject sunObject = GameObject.Find("Directional Light");

        if (sunObject != null)
        {
            sun            = sunObject.GetComponent <Light>();
            originalSunPos = sun.transform.rotation;
        }

        instance.gameObject.SetActive(true);

        Range[] ranges = new Range[2] {
            Range.WIDE, Range.WIDE
        };

        bool bAgainstElement = false;

        fMeleeZoneSize = 1.0f;

        Core.theCore.fEnemyTimescale  = 1.0f;
        Core.theCore.fPlayerTimescale = 1.0f;

        // Spawn the player's minions immediately. Then give a countdown to start the game

        roster = selectedRoster;
        for (int i = 0; i < (int)MinionSlot.NUM_MINION_SLOTS; i++)
        {
            Transform spawnPoint = instance.playerSpawnPoints [i];
            Minion    minion     = roster.minions [i];
            if (spawnPoint != null && minion != null)
            {
                // Create new game object
                GameObject go = new GameObject("PlayerMinion_" + i + "_" + minion.template.name);

                // Fill it with actor components
                Actor_Player actor = go.AddComponent <Actor_Player>();
                actor.InitFromMinion(minion);
                actor.transform.position = spawnPoint.position;

                // Add renderer to actor
                RenderActor render = Instantiate <RenderActor>(minion.template.render);
                render.transform.SetParent(actor.transform);
                render.transform.localPosition = Vector3.zero;
                render.transform.localScale    = new Vector3(-1.0f, 1.0f, 1.0f);
                render.Init(actor);
                actor.render = render;

                // Add audio sources
                actor.soundEffect                       = go.AddComponent <AudioSource>();
                actor.soundEffect.clip                  = minion.template.soundEffect;
                actor.soundEffect.playOnAwake           = false;
                actor.soundEffect.outputAudioMixerGroup = Core.GetAudioManager().soundEffectGroup;

                // And combo numbers
                if ((minion.template.canCombo || minion.template.bDeathtoll || minion.template.bRelentless) && minion.template.comboNumbers != null)
                {
                    ComboNumbers combo = Instantiate <ComboNumbers>(minion.template.comboNumbers);
                    combo.transform.SetParent(actor.transform);
                    combo.transform.localPosition = new Vector3(-0.17f, 0.215f, -0.13f);
                    actor.comboNumbers            = combo;
                }

                // Save a reference for later
                playerActors [i] = actor;

                //
                if (((MinionSlot)i).GetSlotType() == MinionSlotType.RANGED && (minion.template is Minion_Ranged))
                {
                    ranges [i == (int)MinionSlot.RANGED_1 ? 0 : 1] = ((Minion_Ranged)minion.template).range;
                }

                if (minion.template is Minion_Support && ((Minion_Support)(minion.template)).bWalls)
                {
                    bWalls = true;
                }

                foreach (Resurrection res in minion.template.resurrectionTriggers)
                {
                    singleUseResurrections.Add(new Resurrection(res));
                }

                if (minion.template.element.GetDamageMultiplier(location.element) < 1.0f && ((MinionSlot)i).GetSlotType() != MinionSlotType.SUPPORT)
                {
                    bAgainstElement = true;
                }

                Core.theCore.fEnemyTimescale  += minion.GetBuff(Stat.ENEMY_TIMESCALE);
                Core.theCore.fPlayerTimescale += minion.GetBuff(Stat.PLAYER_TIMESCALE);

                fMeleeZoneSize += minion.GetBuff(Stat.MELEEZONE_SIZE);
            }
        }

        roster.bHasThreeResurrectsAvailable = singleUseResurrections.Count == 6;
        roster.bHasActiveCollector          = false;

        // After ALL player minions are created, then calculate their passive buffs and store them off.
        for (int i = 0; i < (int)MinionSlot.NUM_MINION_SLOTS; i++)
        {
            if (playerActors [i] != null)
            {
                playerActors [i].CalculateMyAggregateBuffs();
                playerActors [i].SetMaxHealthFromBuffs();
                playerActors [i].minion.ResetTemporaryData();
            }
        }

        roster.RecalculateHealths();

        fRangedZoneMin = Ranges.GetMinRangeForPair(ranges [0], ranges [1]);
        fRangedZoneMax = Ranges.GetMaxRangeForPair(ranges [0], ranges [1]);
        fLaneWidth     = bWalls ? 4.0f : 6.0f;
        InitZones(bWalls);

        aiNumKilledPerWave  = new int[location.numWaves];
        aiNumSpawnedPerWave = new int[location.numWaves];
        abNewlyUnlocked     = new bool[location.numWaves];


        iCurrentWave = -1;
        AdvanceWave();
        fGracePeriodDuration = location.gracePeriodDuration;

        instance.elementalHint.enabled = bAgainstElement;
        if (bAgainstElement)
        {
            instance.elementalHint.text = LocalizationManager.GetLoc(location.element.GetHintText());
        }

        Core.GetAudioManager().SetLevelMusic(location.music);

        RequestState(LevelState.PLAYING);
    }
예제 #27
0
    void UpdateStates()
    {
        switch (currentState)
        {
        case State.DEBUG_MENU:
        {
            break;
        }

        case State.LOAD_GAME:
        {
            // Request state once done. Currently nothing to do.
            achievementManager.Init();
            LoadAllProfiles();
            RequestState(State.MAIN_MENU);
            break;
        }

        case State.EXIT_GAME:
        {
            // Request state once done. Currently nothing to do.
            RequestQuit();
            break;
        }

        case State.MAIN_MENU:
        {
            break;
        }

        case State.LOAD_WORLD:
        {
            // Request state once done. Wait for load operation
            if (sceneLoadOp.isDone)
            {
                audioManager.SetWorldMapMusic();
                MapNode.RefreshAllNodes();
                RequestState(State.MAP_SCREEN);
            }
            break;
        }

        case State.EXIT_WORLD:
        {
            // Request state once done. Currently nothing to do.
            // Save world here
            if (sceneLoadOp.isDone)
            {
                audioManager.SetMainMenuMusic();
                RequestState(State.MAIN_MENU);
            }
            break;
        }

        case State.MAP_SCREEN:
        {
            if (currentProfile.world == null)
            {
                Debug.Assert(false, "In map screen state without a world! Aborting");
                RequestState(State.EXIT_WORLD);
            }
            break;
        }

        case State.LOAD_LEVEL:
        {
            // Request state once done. Wait for load operation
            if (sceneLoadOp.isDone)
            {
                TeamRoster roster = currentProfile.GetSelectedRoster();
                RequestState(State.PLAYING);
                currentLevel.StartLevel(roster);
            }
            break;
        }

        case State.EXIT_LEVEL:
        {
            // Request state once done. Wait for load operation
            if (sceneLoadOp.isDone)
            {
                foreach (Minion minion in GetCurrentRoster().minions)
                {
                    minion.InitFromTemplate(minion.template);
                }
                MapNode.RefreshAllNodes();
                RequestState(State.MAP_SCREEN);
            }
            break;
        }

        case State.PLAYING:
        {
            if (currentLevel == null)
            {
                Debug.Assert(false, "In playing state without a level! Aborting");
                RequestState(State.EXIT_LEVEL);
            }
            break;
        }
        }
    }