Beispiel #1
0
    // Start is called before the first frame update
    void Start()
    {
        LevelController.Instance.onLevelWin.AddListener(OnLevelWin);
        LevelController.Instance.onLevelLose.AddListener(OnLeveLose);

        CurrentGameSettings = Resources.Load <GameSettings>("DefaultSettings");

        campaignDescriptor = Resources.Load <CampaignDescriptor>("LevelData/DefaultCampaign");

        finishedLevels = PlayerPrefs.GetInt("finishedLevels");

        GameState = GameStates.Menu;
        OnGameStateChange.Invoke();
    }
        public void CampaignDescriptor_Test()
        {
            using var harmony = new HarmonyDisposable($"{nameof(DependencyInjectionTests)}.{nameof(CampaignDescriptor_Test)}");
            harmony.Patch(AccessTools.DeclaredPropertyGetter(typeof(CampaignTime), "CurrentTicks"),
                          prefix: new HarmonyMethod(DelegateHelper.GetMethodInfo(MockedCurrentTicks)));
            harmony.Patch(SymbolExtensions.GetMethodInfo(() => CharacterCode.CreateFrom((BasicCharacterObject)null !)),
                          prefix: new HarmonyMethod(DelegateHelper.GetMethodInfo(MockedCreateFrom)));


            var hero = (Hero)FormatterServices.GetUninitializedObject(typeof(Hero));

#if e143 || e150 || e151 || e152 || e153 || e154 || e155 || e156 || e157 || e158 || e159
            AccessTools.Field(typeof(Hero), "Name").SetValue(hero, new TextObject("TestHero"));
#elif e1510 || e160
            AccessTools.Property(typeof(Hero), "Name").SetValue(hero, new TextObject("TestHero"));
#else
#error ConstGameVersionWithPrefix is not handled!
#endif
            AccessTools.Field(typeof(Hero), "_birthDay").SetValue(hero, CampaignTime.YearsFromNow(18));

            var campaignDescriptor = CampaignDescriptor.Create(hero);
            Assert.NotNull(campaignDescriptor);
            Assert.True(campaignDescriptor is CampaignDescriptorImplementation);
        }