Пример #1
0
    public void NewGame(int difficulty)
    {
        Clear();

        // load difficulty values from config file
        DifficultyData difficultyData = new DifficultyData();

        DifficultyData.DifficultyValues diff = difficultyData.GetValues(difficulty);

        SetDifficulty(difficulty);

        SetInitialField("LIVES", diff.lives);
        SetField("LIVES", diff.lives);
        SetField("CONTINUES", diff.continues);
        // no need for "INITIAL_CONTINUES"

        foreach (KeyValuePair <string, int> pair in diff.fields)
        {
            string key   = pair.Key;
            int    value = pair.Value;

            SetInitialField(key, value);
            SetField(key, value);
        }

        SetLevel(-1);

        Save();
    }
Пример #2
0
        private void Awake()
        {
            _difficultyData = Data.Instance.DifficultyData;
            _canvas         = GameObject.FindGameObjectWithTag("MainCanvas").GetComponent <Canvas>();
            _gameMenu       = _canvas.GetComponentInChildren <GameMenuBehaviour>(); //GameObject.FindGameObjectWithTag("MainCanvas").
            _hpManager      = _canvas.GetComponentInChildren <HPManagerBehavior>();
            var progressBarBehaviour = CustomResources.Load <ProgressBar>
                                           (AssetsPathGameObject.GameObjects[GameObjectType.ProgressBar]);

            _progressBar = Instantiate(progressBarBehaviour, _gameMenu.transform);
        }
        public void HandleMissionLevelDetailViewControllerDidPressPlayButtonPlay(MissionLevelDetailViewController viewController)
        {
            Challenge     challenge   = ((CustomMissionDataSO)viewController.missionNode.missionData).challenge;
            MissionDataSO missionData = viewController.missionNode.missionData;
            String        failedMods  = LoadExternalModifiers(challenge);
            List <GameplayModifierParamsSO> errorList = new List <GameplayModifierParamsSO>();

            if (failedMods.Length > 0)
            {
                foreach (string s in failedMods.Split(' '))
                {
                    errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - External Mod", "Please install or update the following mod: " + s));
                }
            }
            if (viewController.missionNode.missionData.beatmapCharacteristic.descriptionLocalizationKey == "ERROR NOT FOUND")
            {
                errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Characteristic Not Found", "Could not find the characteristic \"" + challenge.characteristic + "\" for this map"));
            }
            else if (BeatmapLevelDataExtensions.GetDifficultyBeatmap(Loader.BeatmapLevelsModelSO.GetBeatmapLevelIfLoaded((missionData as CustomMissionDataSO).customLevel.levelID).beatmapLevelData, missionData.beatmapCharacteristic, missionData.beatmapDifficulty) == null)
            {
                errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Difficulty Not Found", "Could not find the difficulty \"" + challenge.difficulty.ToString() + "\" for this map"));
            }
            else
            {
                DifficultyData difficultyData = Collections.RetrieveDifficultyData(BeatmapLevelDataExtensions.GetDifficultyBeatmap(Loader.BeatmapLevelsModelSO.GetBeatmapLevelIfLoaded((missionData as CustomMissionDataSO).customLevel.levelID).beatmapLevelData, missionData.beatmapCharacteristic, missionData.beatmapDifficulty));
                foreach (string requirement in difficultyData.additionalDifficultyData._requirements)
                {
                    if (Collections.capabilities.Contains(requirement) || requirement.StartsWith("Complete Campaign Challenge - "))
                    {
                        continue;
                    }
                    errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Missing Level Requirement", "Could not find the capability to play levels with \"" + requirement + "\""));
                }
            }
            foreach (ChallengeRequirement requirement in challenge.requirements)
            {
                if (ChallengeRequirement.GetObjectiveName(requirement.type) == "ERROR")
                {
                    errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Mission Objective Not Found", "You likely have a typo in the requirement name"));
                }
            }
            if (errorList.Count == 0)
            {
                Gamemode.NextLevelIsIsolated("Custom Campaigns");
                _missionSelectionNavigationController.HandleMissionLevelDetailViewControllerDidPressPlayButton(viewController);
            }
            else
            {
                LoadModifiersPanel(errorList);
            }
        }
Пример #4
0
        public OldDifficultyData(DifficultyData diff)
        {
            if (diff.version == null)
            {
                diff.version = "2.0.0";
            }
            this._version = diff.version;

            List <Events> events = new();

            foreach (var ev in diff.basicBeatmapEvents)
            {
                events.Add(new(ev));
            }
            this._events = events;

            List <Notes> notes = new();

            foreach (var nt in diff.colorNotes)
            {
                notes.Add(new(nt));
            }
            foreach (var bomb in diff.bombNotes)
            {
                notes.Add(new(bomb));
            }

            notes = notes.OrderBy(o => o._time).ToList();

            this._notes = notes;

            List <Obstacles> obs = new();

            foreach (var obst in diff.obstacles)
            {
                obs.Add(new(obst));
            }
            this._obstacles = obs;

            List <Waypoints> w = new();

            foreach (var way in diff.waypoints)
            {
                w.Add(new(way));
            }
            this._waypoints = w;

            CustomData custom = new(diff.customData, diff.bpmEvents);

            this._customData = custom;
        }
Пример #5
0
    public Difficulty(DifficultyData difficultyData)
    {
        Name            = difficultyData.Name;
        FlavorsQuantity = difficultyData.FlavorsQuantity;

        InitialTime = difficultyData.InitialTime;
        TimePenalty = difficultyData.TimePenalty;

        HotnessBonus   = difficultyData.HotnessBonus;
        HotnessPenalty = difficultyData.HotnessPenalty;
        CoolingPerSec  = difficultyData.CoolingPerSec;

        pointConversions = new List <PointConversion>(difficultyData.pointConversions);
    }
Пример #6
0
 private DifficultyData QuestionsMissing(string difficulty)
 {
     // hardoreasy
     difficultyData           = new DifficultyData();
     difficultyData.questions = questionsList;
     difficultyData.isHard    = true;
     // question
     questionsList[0]          = new QuestionsList();
     questionsList[0].answers  = answersList;
     questionsList[0].question = "There are no " + difficulty + " questions";
     // answer
     answersList[0]        = new AnswersList();
     answersList[0].answer = "Click";
     answersList[0].isTrue = true;
     // return
     return(difficultyData);
 }
Пример #7
0
    List <int> usedIndexes = new List <int> ();   // so 2 things dont spawn on the same side

    void Start()
    {
        // set difficulty
        int difficulty = Mathf.Clamp(TerrainManager.instance.curDifficulty + TerrainManager.instance.baseDifficulty, 0, allDifficultyData.Length - 1);

        diffData = allDifficultyData [Mathf.Clamp(difficulty, 0, allDifficultyData.Length - 1)];

        persistantObjects = GameObject.Find("PersistantObjects").transform;
        transform.parent  = persistantObjects;

        // spawn astroid
        GameObject newAstroid = Instantiate(astroids [Random.Range(0, astroids.Length)], transform);

        transform.rotation = Quaternion.Euler(0f, 0f, Random.Range(0f, 360f));
        size = Random.Range(minSize, maxSize);
        newAstroid.transform.localScale = new Vector3(size, size, 1f);
        verts = newAstroid.GetComponent <PolygonCollider2D> ().points;

        if (alienPrefabs.Length != 0)
        {
            // spawn potential aliens
            int alienCount = Random.Range(diffData.minAliens, diffData.maxAliens + 1);

            for (int i = 0; i < alienCount; i++)
            {
                EdgePositionData data       = GetRandomSpawnPoint();
                Vector3          spawnPos3d = new Vector3(data.point.x, data.point.y, 1.1f);
                // chose prefab from avaiable aliens in difficulty teir
                GameObject prefab   = alienPrefabs [diffData.alienIDs[Random.Range(0, diffData.alienIDs.Length)]];
                GameObject newAlien = Instantiate(prefab, spawnPos3d, data.rotation, persistantObjects);

                newAlien.GetComponent <BasicAlien> ().InitPos(this, data.anchorIndex);
            }
        }

        // spawn potential crystals
        int crystalCount = Random.Range(diffData.minCrystals, diffData.maxCrystals + 1);

        for (int i = 0; i < crystalCount; i++)
        {
            EdgePositionData data       = GetRandomSpawnPoint();
            Vector3          spawnPos3d = new Vector3(data.point.x, data.point.y, 1.1f);
            Instantiate(crystalPrefab, spawnPos3d, data.rotation, persistantObjects);
        }
    }
Пример #8
0
    /*
    ============================================================================
    Init functions
    ============================================================================
    */
    public void Init()
    {
        // first init languages
        languages = new LanguageData();

        statusValues = new  StatusValueData();
        elements = new  ElementData();
        races = new RaceData();
        sizes = new SizeData();
        areaNames = new AreaNameData();
        armors = new ArmorData();
        cameraPositions = new  CameraPositionData();
        attacks = new BaseAttackData();
        characters = new  CharacterData();
        classes = new  ClassData();
        colors = new  ColorData();
        dialoguePositions = new  DialoguePositionData();
        battleAIs = new  BattleAIData();
        enemies = new  EnemyData();
        equipParts = new  EquipmentPartData();
        formulas = new  FormulaData();
        gameSettings = new  GameSettingsData();
        items = new  ItemData();
        itemTypes = new  ItemTypeData();
        loadSaveHUD = new LoadSaveHUDData();
        mainMenu = new MainMenuData();
        skillTypes = new  SkillTypeData();
        effects = new  StatusEffectData();
        skills = new  SkillData();
        weapons = new  WeaponData();
        music = new MusicData();
        huds = new HUDData();
        recipes = new ItemRecipeData();
        fonts = new FontData();
        globalEvents = new GlobalEventData();
        teleports = new TeleportData();
        difficulties = new DifficultyData();

        // battle system
        battleAnimations = new BattleAnimationData();
        battleSystem = new BattleSystemData();
    }