/// <summary>
        /// Adds an entry for a given fire strategy to the fire strategy balance manager.
        /// </summary>
        public static void AddFireStrategyToFireStrategyManager(FireStrategyBuilder feature)
        {
            string fireStrategyPath = UnityPaths.PathFireStrategyManager;

            Debug.Assert(File.Exists(fireStrategyPath));

            string featureName = feature.FeatureName;
            string startTag    = UnityPaths.TagFireStrategyManagerPlayerRatioStart;
            string endTag      = UnityPaths.TagFireStrategyManagerPlayerRatioEnd;

            string[] lines      = File.ReadAllLines(fireStrategyPath);
            int      endTagLine = FindEndTagLineAfterStartTagLine(startTag, endTag, lines, fireStrategyPath);

            string newStrategyLine = $"            public float {featureName};";

            InsertLineToFile(fireStrategyPath, lines, newStrategyLine, endTagLine, true);
        }
Esempio n. 2
0
        /// <summary>
        /// Adds a new entry for a given fire strategy's PowerupBalanaceManager value
        /// to the GameScene.unity file of the project.
        /// Unity would automatically create this entry at runtime, but it would assign a default value of 0.
        /// This would cause the new fire strategy to fire every frame by default.
        /// (A value of 1 represents a fire speed equal to the base cannon's fire speed.)
        /// </summary>
        public static void AddFireStrategyToGameSceneFireStrategyManager(FireStrategyBuilder feature)
        {
            string gameScenePath = UnityPaths.PathGameScene;

            string featureName = feature.FeatureName;
            string startTag    = UnityPaths.TagGameSceneFireStrategyManagerStart;
            string endTag      = UnityPaths.TagGameSceneFireStrategyManagerEnd;

            Debug.Assert(File.Exists(gameScenePath));

            string[] lines      = File.ReadAllLines(gameScenePath);
            int      endTagLine = FileUtil.FindEndTagLineAfterStartTagLine(startTag, endTag, lines, gameScenePath);

            string newStrategyLine = $"      {featureName}: 1";

            FileUtil.InsertLineToFile(gameScenePath, lines, newStrategyLine, endTagLine, true);
        }
        /// <summary>
        /// Adds an entry for a given fire strategy to the
        /// list of fire strategies inside GameManager.cs
        /// </summary>
        public static void AddFireStrategyToGameManagerCs(FireStrategyBuilder feature)
        {
            string gameManagerPath = UnityPaths.PathGameManagerCs;

            string featureName = feature.FeatureName;
            string startTag    = UnityPaths.TagGameManagerInitFireStrategiesStart;
            string endTag      = UnityPaths.TagGameManagerInitFireStrategiesEnd;
            string className   = feature.ClassName;

            Debug.Assert(File.Exists(gameManagerPath));

            string[] lines      = File.ReadAllLines(gameManagerPath);
            int      endTagLine = FindEndTagLineAfterStartTagLine(startTag, endTag, lines, gameManagerPath);

            string newStrategyLine = $"                new {className}(Prefab<{featureName}Bullet>(), in _FireStrategyManager),";

            InsertLineToFile(gameManagerPath, lines, newStrategyLine, endTagLine, true);
        }