public Mission CreateMission(int level, MissionDifficulty difficulty, List <CharacterClassLibrary.Player> players) { var rand = Utils.RandomProvider.GetRandom(1, 100); var anotherRand = Utils.RandomProvider.GetRandom(1, 100); switch (difficulty) { case MissionDifficulty.easy: missionDifficulty = 0; break; case MissionDifficulty.casual: missionDifficulty = 1; break; case MissionDifficulty.dungeon: missionDifficulty = 2; break; case MissionDifficulty.hc: missionDifficulty = 3; break; } enemies(rand); types(anotherRand, enemyCount); createRewardTable(); var enemyList = new List <CharacterClassLibrary.NPC>(); var enemyGenerator = new CharacterClassLibrary.RandomEnemyGenerator(); foreach (var thing in enemyTypes) { var type = (NPCType)Enum.Parse(typeof(NPCType), thing.ToString()); enemyList.Add(enemyGenerator.CreateEnemy(type, level, healer)); } var mission = new RandomMission(enemyList, players, level, rewardTable); return(mission); }
public void ShowLevelInfo() { levelInfo.SetActive(true); levelInfoTitle.text = Localisation.Get(StringKey.UI_LevelInfo_Title); levelInfoNumber.text = GameManager.instance.NumberOfMissions.ToString(); MissionDifficulty difficulty = GameManager.instance.DifficultyRank; switch (difficulty) { case MissionDifficulty.Easy: levelInfoDifficulty.text = Localisation.Get(StringKey.UI_LevelInfo_Easy); break; case MissionDifficulty.Medium: levelInfoDifficulty.text = Localisation.Get(StringKey.UI_LevelInfo_Medium); break; case MissionDifficulty.Hard: levelInfoDifficulty.text = Localisation.Get(StringKey.UI_LevelInfo_Hard); break; default: levelInfoDifficulty.text = "???"; break; } }
public Mission(List <Objective> objectives, string missionName) { this.objectives = objectives; this.missionName = missionName; chaos = this.objectives.Sum(x => x.chaos); difficulty = (MissionDifficulty)Mathf.Round(chaos.Remap(0, 20, 0, 5)); currentObjective.Value = objectives.First(); desc = $"Mission has {objectives.Count()} step{(objectives.Count() > 1 ? "s" : "")}. \n" + $"<b>Current objective : </b>{currentObjective.Value.desc}"; done = objectives.Select(x => x.done).CombineLatestValuesAreAllTrue().ToReactiveProperty(); }
/// <summary> /// Creates default config with given params /// </summary> /// <param name="_Name"></param> /// <param name="_ServerPath"></param> /// <param name="_ModType"></param> /// <param name="_IsEnabled"></param> /// <param name="_GitBranch"></param> /// <param name="_GitUrl"></param> /// <param name="_GitToken"></param> /// <param name="_GitServer"></param> /// <param name="_MissionDifficulty"></param> /// <param name="_RandomizeFunctions"></param> /// <param name="_RandomizeGlobalVariables"></param> /// <param name="_RandomizeLocalVariables"></param> /// <param name="_SingleLineFunction"></param> /// <returns>new PboFile()</returns> public PBOFile Values(string _Name = "NewAddon", string _ServerPath = "c:\\Arma3\\@Server", PboModType _ModType = PboModType.ServerMod, bool _IsEnabled = true, string _GitBranch = "repo-main", string _GitUrl = "https://github.com/user/repo/archive/master.zip", string _GitToken = "xxxxx", GitServer _GitServer = GitServer.GitHub, MissionDifficulty _MissionDifficulty = MissionDifficulty.recruit,bool _RandomizeFunctions = false, bool _RandomizeGlobalVariables = false, bool _RandomizeLocalVariables = false, bool _SingleLineFunction = false) => new PBOFile() { ModType = _ModType, IsEnabled = _IsEnabled, Name = _Name, GitBranch = _GitBranch, GitUrl = _GitUrl, GitToken = _GitToken, GitServer = _GitServer, ServerPath = _ServerPath, MissionDifficulty = _MissionDifficulty, RandomizeFunctions = _RandomizeFunctions, RandomizeGlobalVariables = _RandomizeGlobalVariables, RandomizeLocalVariables = _RandomizeLocalVariables, SingleLineFunctions = _SingleLineFunction };