Esempio n. 1
0
        private static DataEntry GetModifier(string modGroup, int level, bool isPrefix)
        {
            var baseChance = GameOptions.Get(RpgSettings.PercentBaseRarityChance, 1f);
            var chance     = baseChance + (baseChance * GameOptions.Get(RpgSettings.PercentRarityPerLevelMod, 1f) * level);

            if (!Game.DiceRollSuccess(chance))
            {
                return(null);
            }
            var dict = isPrefix ? _prefixBag : _suffixBag;

            if (dict.Count == 0)
            {
                Init();
            }
            if (!dict.TryGetValue(modGroup, out var bag))
            {
                return(null);
            }
            WhileLoopLimiter.ResetInstance();
            while (WhileLoopLimiter.InstanceAdvance())
            {
                var mod = bag.Next();
                if (mod == null)
                {
                    return(null);
                }
                if (mod.GetValue <int>(DatabaseFields.MinLevel) <= level)
                {
                    return(mod);
                }
            }
            return(null);
        }
Esempio n. 2
0
        public static int ItemRandomCurrentLevel()
        {
            var max   = Mathf.Max(Player.HighestCurrentLevel, 2);
            var range = GameOptions.Get(RpgSettings.ItemRandomLevelRange, 1);

            return(Mathf.Clamp(Game.Random.Next(max - range, max + range), 2, 99));
        }
Esempio n. 3
0
 public static BaseStat[] GetBasicCommandStats()
 {
     BaseStat[] stats = new BaseStat[3];
     stats[0] = new BaseStat(Stats.Power, 0);
     stats[1] = new BaseStat(Stats.CriticalHit, 0);
     stats[2] = new BaseStat(Stats.CriticalMulti, GameOptions.Get(RpgSettings.DefaultCritMulti, 1f));
     return(stats);
 }
Esempio n. 4
0
        public static BaseStat[] GetBasicCommandStats(StatsContainer stats)
        {
            var owner = stats.GetEntity();

            BaseStat[] newStats = new BaseStat[3];
            newStats[0] = new BaseStat(owner, Stats.Power, 0);
            newStats[1] = new BaseStat(owner, Stats.CriticalHit, 0);
            newStats[2] = new BaseStat(owner, Stats.CriticalMulti, GameOptions.Get(RpgSettings.DefaultCritMulti, 1f));
            return(newStats);
        }
Esempio n. 5
0
 public void Remove(BaseStat item)
 {
     List.Remove(item);
     _dict.Remove(item.ID);
     if (item is VitalStat vital)
     {
         if (item.ID == GameOptions.Get(RpgSettings.HealthStat, "Vitals.Health"))
         {
             HealthStat = null;
         }
         _vitals.Remove(vital.ID);
     }
 }
Esempio n. 6
0
 public void Add(BaseStat item)
 {
     if (item == null || _dict.ContainsKey(item.ID))
     {
         return;
     }
     List.Add(item);
     _dict.Add(item.ID, item);
     if (item is VitalStat vital)
     {
         if (item.ID == GameOptions.Get(RpgSettings.HealthStat, "Vitals.Health"))
         {
             HealthStat = vital;
         }
         _vitals.Add(vital.ID, vital);
     }
 }
Esempio n. 7
0
        public void OnCreate(PrefabEntity entity)
        {
            _interpolator  = new CooperativePathInterpolator(this);
            _seeker        = GetComponent <Seeker>();
            _rvoController = GetComponent <RVOController>();
            _traversal     = new NpcMovementManager.TraversalProvider(this);
            Tr             = transform;
            var colliderComponent = GetComponent <Collider>();

            if (colliderComponent != null)
            {
                LocalCenter = new Vector3(0, colliderComponent.bounds.size.y / 2, 0);
            }
            else
            {
                LocalCenter = Vector3.up;
            }
            if (GameOptions.Get("DebugPathfinding", false))
            {
                _debugRenderer = gameObject.AddComponent <LineRenderer>();
                _debugRenderer.widthMultiplier = 0.3f;
            }
        }
Esempio n. 8
0
        private void OpenGameplayPanel()
        {
            ClearTargetOptions();
            _optionsLabel.text = "Gameplay";

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Look Sensitivity").gameObject);
            _targetOptions.Add(SetupSlider(_optionControlsTr, GameOptions.Get("LookSensitivity", 2.5f),
                                           0.1f, 6, (slider, f) => { GameOptions.Set("LookSensitivity", f); }, false).gameObject);

            //_targetOptions.Add(SetupLabel(_optionControlsTr, "Look Smoothing").gameObject);
            //_targetOptions.Add(SetupSlider(_optionControlsTr, GameOptions.LookSmooth,
            //    0f, 1, (slider, f) => { GameOptions.LookSmooth = f; }, false).gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Verbose Inventory").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.VerboseInventory, delegate(bool b) {
                GameOptions.VerboseInventory.Value = b;
            }, "Explicit status messages in the inventory").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Show Misses").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.ShowMiss, delegate(bool b) {
                GameOptions.ShowMiss.Value = b;
            }, "Log messages on every miss").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Log All Damage").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.LogAllDamage, delegate(bool b) {
                GameOptions.LogAllDamage.Value = b;
            }, "Log all damage for player and all npcs").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Pause On Player Input").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.PauseForInput, delegate(bool b) {
                GameOptions.PauseForInput.Value = b;
            }, "Phased mode where the action pauses when the player starts input").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Turn Based").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.TurnBased, delegate(bool b) {
                GameOptions.TurnBased = b;
            }, "Turn based mode where the action pauses whenever the player can act").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "MouseLook").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.MouseLook, delegate(bool b) {
                GameOptions.MouseLook = b;
            }, "Mouse Look locks the cursor during normal gameplay. Disable for keyboard turning only").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Ready Messages").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.ReadyNotice, delegate(bool b) { GameOptions.ReadyNotice.Value = b; }, "Shows a message in the center of screen when a party member can act").gameObject);


            //_targetOptions.Add(SetupLabel(_optionControlsTr, "Menu Pause").gameObject);
            //_targetOptions.Add(SetupToggle(_optionControlsTr, PlayerInput.PauseInMenus, delegate(bool b) {
            //    PlayerInput.PauseInMenus = b;}, "Pause when in menus or inventory").gameObject);

            //_targetOptions.Add(SetupLabel(_optionControlsTr, "Camera Head bob").gameObject);
            //_targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.UseHeadBob, delegate(bool b) {
            //    GameOptions.UseHeadBob = b;}, "Should the camera have head bobbing").gameObject);

            //_targetOptions.Add(SetupLabel(_optionControlsTr, "Weapon Bob").gameObject);
            //_targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.UseSway, delegate(bool b) {
            //    GameOptions.UseSway = b;}, "Should the weapons bob with movement").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Camera Shaking").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.UseShaking, delegate(bool b) {
                GameOptions.UseShaking.Value = b;
            }, "Should the camera shake on damage").gameObject);

            _targetOptions.Add(SetupLabel(_optionControlsTr, "Camera Pain Flash").gameObject);
            _targetOptions.Add(SetupToggle(_optionControlsTr, GameOptions.UsePainFlash, delegate(bool b) {
                GameOptions.UsePainFlash.Value = b;
            }, "Should the camera flash a color on damage").gameObject);
        }
Esempio n. 9
0
 private void SetOptions()
 {
     _lookSensitivity = GameOptions.Get("LookSensitivity", 2.5f);
 }
Esempio n. 10
0
 private void SetOptions()
 {
     _lookSmooth = GameOptions.Get("LookSmooth", 0.75f);
 }