public bool Update(MyPlayer player, MyEntity entity) //returns if lost { //MySessionComponentMission.Static.TryCreateFromDefault(Id); //if (IsLocal(player.Id)) // UpdateLocal(player.Id); if (!Sync.IsServer) { return(false); } MyMissionTriggers mtrig; if (!MissionTriggers.TryGetValue(player.Id, out mtrig)) { //Debug.Assert(false,"Bad ID for update in missionTriggers"); mtrig = TryCreateFromDefault(player.Id, false); } mtrig.UpdateWin(player, entity); if (!mtrig.Won) { mtrig.UpdateLose(player, entity); } else { m_someoneWon = true; MyAnalyticsHelper.ReportTutorialEnd(); MyTutorialHelper.MissionSuccess(); } return(mtrig.Lost); }
public override bool Update(bool hasFocus) { var ret = base.Update(hasFocus); if (m_okButton.Enabled && !MyTutorialHelper.IsUnlocked(((Tuple <string, MyWorldInfo>)m_scenarioTable.SelectedRow.UserData).Item2.SessionName) && !MyFakes.DEVELOPMENT_PRESET) { m_okButton.Enabled = false; } return(ret); }
protected void RefreshGameList(bool tutorials = false) { int selectedIndex = m_scenarioTable.SelectedRowIndex ?? -1; m_scenarioTable.Clear(); Color?color = null; for (int index = 0; index < m_availableSaves.Count; index++) { var checkpoint = m_availableSaves[index].Item2; var name = new StringBuilder(checkpoint.SessionName); if (tutorials) { if (MyTutorialHelper.IsUnlocked(checkpoint.SessionName) || MyFakes.DEVELOPMENT_PRESET) { color = null; } else { color = Color.Gray; } } var row = new MyGuiControlTable.Row(m_availableSaves[index]); row.AddCell(new MyGuiControlTable.Cell(text: String.Empty, textColor: color, icon: GetIcon(m_availableSaves[index]))); row.AddCell(new MyGuiControlTable.Cell(text: name, textColor: color, userData: name)); m_scenarioTable.Add(row); // Select row with same world ID as we had before refresh. if (index == selectedIndex) { m_selectedRow = index; m_scenarioTable.SelectedRow = row; } } m_scenarioTable.SelectedRowIndex = m_selectedRow; m_scenarioTable.ScrollToSelection(); FillRight(); }