/// <summary>
 /// Starts the gamemode.
 /// </summary>
 /// <param name="character">The character the player selected.</param>
 /// <param name="currentStage">The current stage we are on.</param>
 /// <param name="stageCollection"></param>
 public virtual void StartGameMode(EntityDefinition character, StageDefinition currentStage,
                                   StageCollection stageCollection = null)
 {
     this.stageCollection = stageCollection;
     this.currentStage    = currentStage;
     playerCamera         = Instantiate(gameManager.gameVariables.playerCameraPrefab.gameObject,
                                        spawnPointManager.GetSpawnPoint().position, Quaternion.identity)
                            .GetComponent <PlayerCamera>();
     ActivateGamemode();
 }
        public override void StartGameMode(EntityDefinition character,
                                           StageDefinition currentStage,
                                           StageCollection stageCollection = null)
        {
            base.StartGameMode(character, currentStage, stageCollection);

            playerCharacters.Add(simObjectManager.SpawnObject(character.entity, spawnPointManager.GetSpawnPoint().position, Quaternion.identity));
            playerCamera.SetLookAtTarget(playerCharacters[0].transform);
            playerCharacters[0].GetComponent <EntityManager>().Init(gameManager, playerCamera, CAF.Input.InputControlType.Direct);
        }
Ejemplo n.º 3
0
        public static StageCollection BuildCollectionFromTabData(string name, string description, string tabData)
        {
            StageCollection coll = new StageCollection()
            {
                Name        = name,
                Description = description
            };

            bool first = true;

            string[] headers = null;
            foreach (string row in tabData.Split("\r\n".ToCharArray()))
            {
                if (first)
                {
                    headers = row.Split('\t');
                    foreach (string field in headers)
                    {
                        coll.Columns.Add(new BpToolsLib.CollectionColumn()
                        {
                            Name = field,
                            Type = BpToolsLib.DataType.Text
                        });
                    }
                    first = false;
                }
                else
                {
                    if (row.Trim().Equals(""))
                    {
                        continue;
                    }
                    BpToolsLib.CollectionRow cRow = new BpToolsLib.CollectionRow();
                    string[] fields = row.Split('\t');
                    for (int i = 0; i < headers.Length; i++)
                    {
                        if (fields.Length < i + 1)
                        {
                            break;
                        }
                        cRow.Add(new BpToolsLib.CollectionField()
                        {
                            Name  = headers[i],
                            Value = fields[i]
                        });
                    }
                    if (cRow.Count == headers.Length)
                    {
                        coll.Rows.Add(cRow);
                    }
                }
            }

            return(coll);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Предоставляет метод удаления выбранного
        ///     элемента коллекции.
        /// </summary>
        private void M_DeleteStage()
        {
            if (StageCollection.Count == 0)
            {
                return;
            }

            StageCollection.RemoveAt(SelectedIndexStageCollection);
            MessageBox.Show("Этап удален.", "Оповещение",
                            MessageBoxButton.OK, MessageBoxImage.Information);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Предоставляет метод очистки всех
        ///     элементов коллекции.
        /// </summary>
        private void M_CreanStageTable()
        {
            if (StageCollection.Count == 0)
            {
                MessageBox.Show("Не удалось провести очистку данных..." +
                                "Таблица пуста.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (MessageBox.Show("Вы действительно хотите безвозвратно очистить таблицу этапов?" +
                                "После удаления востановить данные будет невозможно...", "Предупреждение",
                                MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
            {
                StageCollection.Clear();
            }
        }
        private async void OnEnable()
        {
            GameManager gm = GameManager.current;

            List <ModObjectReference> stageCollections = await gm.ModManager.GetStageCollections();

            for (int i = 0; i < stageCollections.Count; i++)
            {
                ModObjectReference sc         = stageCollections[i];
                StageCollection    collection = await gm.ModManager.GetStageCollection(sc);

                StageCollectionItem item = Instantiate(stageCollectionItem.gameObject, contentHolder.transform, false)
                                           .GetComponent <StageCollectionItem>();
                item.collectionName.text = collection.collectionName;
                item.GetComponent <EventTrigger>().AddOnSubmitListeners((data) => { OnCollectionSelected(collection); });
            }
        }
        public async Task <StageCollection> GetStageCollection(ModObjectReference stageCollection)
        {
            stageCollection.modIdentifier = stageCollection.modIdentifier.ToLower();
            if (!mods.ContainsKey(stageCollection.modIdentifier))
            {
                return(null);
            }

            StageCollection c = await mods[stageCollection.modIdentifier].GetStageCollection(stageCollection.objectName);

            if (c == null)
            {
                return(null);
            }

            return(c);
        }
Ejemplo n.º 8
0
        private void M_AddStage()
        {
            Temp_NameModeActive = GetNameModeActive();
            if (string.IsNullOrWhiteSpace(Temp_NameModeActive))
            {
                MessageBox.Show("Невозможно добавить новый этап!\nВыберите режим нагрузки...",
                                "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            Temp_NameTypeActive = GetNameTypeActive();
            if (string.IsNullOrWhiteSpace(Temp_NameTypeActive))
            {
                MessageBox.Show("Невозможно добавить новый этап!\nВыберите тип нового этапа...",
                                "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            Temp_AmperageValue = GetAmperageValue();
            if (float.IsNaN(Temp_AmperageValue))
            {
                MessageBox.Show("Невозможно добавить новый этап!\nВведите значение тока импульса на этапе...",
                                "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            Temp_TimeValue = GetPulseTimeValue();
            if (Temp_TimeValue == 0.0)
            {
                MessageBox.Show("Невожможно добавить новый этап!\nВведите значение времени импульса на этапе...",
                                "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            // Добавление нового элемента коллекции
            StageCollection.Add(new ProgramViewModel()
            {
                NameMode      = Temp_NameModeActive,
                NameType      = Temp_NameTypeActive,
                AmperageValue = Temp_AmperageValue,
                TimeValue     = Temp_TimeValue
            });
        }
        public void OnCollectionSelected(StageCollection sc)
        {
            foreach (Transform t in collectionStageHolder)
            {
                Destroy(t.gameObject);
            }

            int i = 1;

            foreach (GamemodeStageDefinition stage in sc.stages)
            {
                CollectionStageItem item = Instantiate(collectionStageItem.gameObject, collectionStageHolder.transform, false)
                                           .GetComponent <CollectionStageItem>();
                item.stageText.text = $"Stage {i}";
                item.GetComponent <EventTrigger>().AddOnSubmitListeners((d) => { OnStageSelected(stage); });
                i++;
            }

            collectionInfoParent.SetActive(true);
            collectionInfoText.text = sc.collectionName;
            collectionStartButton.GetComponent <EventTrigger>().RemoveAllListeners();
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     Метод, позволяющий загрузить выбранный
        ///     Excel файл в таблицу
        /// </summary>
        /// <param name="fileName">Имя файла для загрузки</param>
        private void ImportFrom(string fileName)
        {
            IExcel.Application ExcelExample = null;
            IExcel.Workbook    objWorkbook  = null;
            IExcel.Worksheet   objWorksheet = null;
            IExcel.Range       range        = null;

            int RowCount,
                ColumnCount;

            string _mode,
                   _type,
                   _amperage,
                   _time;

            try
            {
                ExcelExample = new IExcel.Application
                {
                    Visible     = false,
                    UserControl = false
                };
                objWorkbook  = ExcelExample.Workbooks.Open(fileName);
                objWorksheet = objWorkbook.Sheets[1];
                range        = objWorksheet.UsedRange;

                if (objWorksheet != null)
                {
                    RowCount    = range.Rows.Count;
                    ColumnCount = range.Columns.Count;

                    for (int i = 1; i <= RowCount; i++)
                    {
                        _mode     = range.Cells[i, 1].Value2.ToString();
                        _type     = range.Cells[i, 2].Value2.ToString();
                        _amperage = range.Cells[i, 3].Value2.ToString();
                        _time     = range.Cells[i, 4].Value2.ToString();

                        StageCollection.Add(new ProgramViewModel()
                        {
                            NameMode      = _mode,
                            NameType      = _type,
                            AmperageValue = float.Parse(_amperage),
                            TimeValue     = double.Parse(_time)
                        });
                    }
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Import file fatal error",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            finally
            {
                objWorkbook.Close();
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(objWorkbook);
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(objWorksheet);
                ExcelExample.Quit();
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ExcelExample);
                //TODO: Доработать полное закрытие после импорта excel файла
            }
        }