Esempio n. 1
0
        public static void StartPatch_CreateNewPlayer(CtrlRegistration __instance)
        {
            var data = Traverse.Create(__instance).Field("player_info_data").GetValue <CharacterInfoData>();

            newAttributeValues = new Dictionary <CharacterUpgradableProperty, int>
            {
                {
                    CharacterUpgradableProperty.Str,
                    data.UpgradeableProperty[CharacterUpgradableProperty.Str].Level
                },
                {
                    CharacterUpgradableProperty.Vit,
                    data.UpgradeableProperty[CharacterUpgradableProperty.Vit].Level
                },
                {
                    CharacterUpgradableProperty.Dex,
                    data.UpgradeableProperty[CharacterUpgradableProperty.Dex].Level
                },
                {
                    CharacterUpgradableProperty.Spi,
                    data.UpgradeableProperty[CharacterUpgradableProperty.Spi].Level
                }
            };

            var Tpoint    = Traverse.Create(__instance).Field("point");
            int attrPoint = Tpoint.GetValue <int>();

            dicePoint = newGameAttributePoint.Value + attrPoint - 50;
            Tpoint.SetValue(dicePoint);

            var Tpoint2    = Traverse.Create(__instance).Field("traitPoint");
            int traitPoint = Tpoint2.GetValue <int>();

            Tpoint2.SetValue(newGameTraitPoint.Value + traitPoint - 1);
        }
Esempio n. 2
0
        public static bool StartPatch_DiceValue(CtrlRegistration __instance)
        {
            var data = Traverse.Create(__instance).Field("player_info_data").GetValue <CharacterInfoData>();
            List <UpgradeableProperty> list = new List <UpgradeableProperty>();

            foreach (var key in newAttributeValues.Keys)
            {
                data.SetUpgradeablePropertyLevel(key, newAttributeValues[key]);
                list.Add(data.UpgradeableProperty[key]);
            }
            List <int> diceVal = new List <int>
            {
                0,
                dicePoint
            };

            for (int i = 0; i < list.Count - 1; i++)
            {
                diceVal.Add(UnityEngine.Random.Range(0, dicePoint));
            }
            diceVal.Sort();
            for (int j = 0; j < list.Count; j++)
            {
                list[j].Level += diceVal[j + 1] - diceVal[j];
            }

            Traverse.Create(__instance).Field("point").SetValue(0);
            UpdateAttributes(__instance);
            return(false);
        }
Esempio n. 3
0
        // 3 新随机方法
        static void UpdateAttributes(CtrlRegistration instance)
        {
            var data   = Traverse.Create(instance).Field("player_info_data").GetValue <CharacterInfoData>();
            var Tpoint = Traverse.Create(instance).Field("point");
            FourAttributesInfo fourAttributesInfo = new FourAttributesInfo
            {
                Str   = data.GetUpgradeableProperty(CharacterUpgradableProperty.Str).ToString(),
                Vit   = data.GetUpgradeableProperty(CharacterUpgradableProperty.Vit).ToString(),
                Dex   = data.GetUpgradeableProperty(CharacterUpgradableProperty.Dex).ToString(),
                Spr   = data.GetUpgradeableProperty(CharacterUpgradableProperty.Spi).ToString(),
                Point = Tpoint.GetValue <int>().ToString()
            };

            data.UpgradeProperty(true);
            Traverse.Create(instance).Field("view").GetValue <UIRegistration>().UpdateFourAttributes(fourAttributesInfo);
        }
Esempio n. 4
0
        public static bool StartPatch_SetProperty(CtrlRegistration __instance, CharacterUpgradableProperty property, int value)
        {
            var Tpoint = Traverse.Create(__instance).Field("point");
            int num    = Tpoint.GetValue <int>() - value;

            if (num < 0)
            {
                return(false);
            }
            var data = Traverse.Create(__instance).Field("player_info_data").GetValue <CharacterInfoData>();
            int num2 = data.GetUpgradeablePropertyLevel(property);

            num2 = (int)Mathf.Lerp((float)num2, (float)(num2 + value), 1f);
            if (num2 < newAttributeValues[property])
            {
                return(false);
            }
            data.SetUpgradeablePropertyLevel(property, num2);
            Tpoint.SetValue(num);
            UpdateAttributes(__instance);
            return(false);
        }
Esempio n. 5
0
 public static void CtrlRegistrationPatch_SetFitstName(CtrlRegistration __instance, ref string value)
 {
     newGameNameOverride.Value = value;
 }