Exemplo n.º 1
0
        private void AddStat(PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };

            foreach (StatModifier statModifier2 in this.passiveStatModifiers)
            {
                bool flag  = statModifier2.statToBoost == statType;
                bool flag2 = flag;
                if (flag2)
                {
                    return;
                }
            }
            bool flag3 = this.passiveStatModifiers == null;
            bool flag4 = flag3;

            if (flag4)
            {
                this.passiveStatModifiers = new StatModifier[]
                {
                    statModifier
                };
                return;
            }
            this.passiveStatModifiers = this.passiveStatModifiers.Concat(new StatModifier[]
            {
                statModifier
            }).ToArray <StatModifier>();
        }
        private void AddStat(PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier modifier = new StatModifier();

            modifier.amount      = amount;
            modifier.statToBoost = statType;
            modifier.modifyType  = method;

            foreach (var m in passiveStatModifiers)
            {
                if (m.statToBoost == statType)
                {
                    return;                            //don't add duplicates
                }
            }

            if (this.passiveStatModifiers == null)
            {
                this.passiveStatModifiers = new StatModifier[] { modifier }
            }
            ;
            else
            {
                this.passiveStatModifiers = this.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
            }
        }
Exemplo n.º 3
0
        public static void AddStat(this PassiveItem item, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };

            foreach (StatModifier statModifier2 in item.passiveStatModifiers)
            {
                bool flag = statModifier2.statToBoost == statType;
                if (flag)
                {
                    return;
                }
            }
            bool flag2 = item.passiveStatModifiers == null;

            if (flag2)
            {
                item.passiveStatModifiers = new StatModifier[]
                {
                    statModifier
                };
                return;
            }
            item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[]
            {
                statModifier
            }).ToArray <StatModifier>();
        }
Exemplo n.º 4
0
        private void AddStat(PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            foreach (var m in passiveStatModifiers)
            {
                if (m.statToBoost == statType)
                {
                    return;
                }
            }

            StatModifier modifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };

            if (this.passiveStatModifiers == null)
            {
                this.passiveStatModifiers = new StatModifier[] { modifier }
            }
            ;
            else
            {
                this.passiveStatModifiers = this.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
            }
        }
Exemplo n.º 5
0
        // Token: 0x06000356 RID: 854 RVA: 0x0001F684 File Offset: 0x0001D884
        private void AddStat(PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };
            bool flag = this.passiveStatModifiers == null;

            if (flag)
            {
                this.passiveStatModifiers = new StatModifier[]
                {
                    statModifier
                };
            }
            else
            {
                this.passiveStatModifiers = this.passiveStatModifiers.Concat(new StatModifier[]
                {
                    statModifier
                }).ToArray <StatModifier>();
            }
        }
Exemplo n.º 6
0
        // Token: 0x06000027 RID: 39 RVA: 0x000030C8 File Offset: 0x000012C8
        public static StatModifier AddPassiveStatModifier(this PickupObject po, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier();

            statModifier.amount      = amount;
            statModifier.statToBoost = statType;
            statModifier.modifyType  = method;
            po.AddPassiveStatModifier(statModifier);
            return(statModifier);
        }
Exemplo n.º 7
0
 public static StatModifier SetupStatModifier(PlayerStats.StatType statType, float modificationAmount, StatModifier.ModifyMethod modifyMethod = StatModifier.ModifyMethod.ADDITIVE, bool breaksOnDamage = false)
 {
     return(new StatModifier
     {
         statToBoost = statType,
         amount = modificationAmount,
         modifyType = modifyMethod,
         isMeatBunBuff = breaksOnDamage
     });
 }
Exemplo n.º 8
0
        private void ChangeStatPermanent(PlayerController target, PlayerStats.StatType statToChance, float amount, StatModifier.ModifyMethod modifyMethod)
        {
            StatModifier statModifier = new StatModifier();

            statModifier.amount      = amount;
            statModifier.modifyType  = modifyMethod;
            statModifier.statToBoost = statToChance;
            target.ownerlessStatModifiers.Add(statModifier);
            target.stats.RecalculateStats(target, false, false);
        }
 //Removes a stat
 private void RemoveStat(PlayerStats.StatType statType)
 {
     var newModifiers = new List<StatModifier>();
     for (int i = 0; i < passiveStatModifiers.Length; i++)
     {
         if (passiveStatModifiers[i].statToBoost != statType)
             newModifiers.Add(passiveStatModifiers[i]);
     }
     this.passiveStatModifiers = newModifiers.ToArray();
 }
Exemplo n.º 10
0
        public static void AddPassiveStatModifier(PickupObject po, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier statModifier = new StatModifier();

            statModifier.amount      = amount;
            statModifier.statToBoost = statType;
            statModifier.modifyType  = method;
            bool flag = po is PlayerItem;

            if (flag)
            {
                PlayerItem playerItem = po as PlayerItem;
                bool       flag2      = playerItem.passiveStatModifiers == null;
                if (flag2)
                {
                    playerItem.passiveStatModifiers = new StatModifier[]
                    {
                        statModifier
                    };
                }
                else
                {
                    playerItem.passiveStatModifiers = playerItem.passiveStatModifiers.Concat(new StatModifier[]
                    {
                        statModifier
                    }).ToArray <StatModifier>();
                }
            }
            else
            {
                bool flag3 = po is PassiveItem;
                if (!flag3)
                {
                    throw new NotSupportedException("Object must be of type PlayerItem or PassiveItem");
                }
                PassiveItem passiveItem = po as PassiveItem;
                bool        flag4       = passiveItem.passiveStatModifiers == null;
                if (flag4)
                {
                    passiveItem.passiveStatModifiers = new StatModifier[]
                    {
                        statModifier
                    };
                }
                else
                {
                    passiveItem.passiveStatModifiers = passiveItem.passiveStatModifiers.Concat(new StatModifier[]
                    {
                        statModifier
                    }).ToArray <StatModifier>();
                }
            }
        }
Exemplo n.º 11
0
 public static void AddPassiveStatModifier(this Gun gun, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod modifyMethod)
 {
     gun.passiveStatModifiers = gun.passiveStatModifiers.Concat(new StatModifier[]
     {
         new StatModifier
         {
             statToBoost = statType,
             amount      = amount,
             modifyType  = modifyMethod
         }
     }).ToArray <StatModifier>();
 }
Exemplo n.º 12
0
 private void ApplyStat2(PlayerController player, PlayerStats.StatType statType, float amountToApply, StatModifier.ModifyMethod modifyMethod)
 {
     player.stats.RecalculateStats(player, false, false);
     this.statModifier2 = new StatModifier()
     {
         statToBoost = statType,
         amount      = amountToApply,
         modifyType  = modifyMethod
     };
     player.ownerlessStatModifiers.Add(statModifier2);
     player.stats.RecalculateStats(player, false, false);
 }
Exemplo n.º 13
0
        /// <summary>
        /// Adds a passive player stat modifier to a PlayerItem or PassiveItem
        /// </summary>
        public static void AddPassiveStatModifier(PickupObject po, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier modifier = new StatModifier();

            modifier.amount      = amount;
            modifier.statToBoost = statType;
            modifier.modifyType  = method;

            if (po is PlayerItem)
            {
                var item = (po as PlayerItem);
                if (item.passiveStatModifiers == null)
                {
                    item.passiveStatModifiers = new StatModifier[] { modifier }
                }
                ;
                else
                {
                    item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
                }
            }
            else if (po is PassiveItem)
            {
                var item = (po as PassiveItem);
                if (item.passiveStatModifiers == null)
                {
                    item.passiveStatModifiers = new StatModifier[] { modifier }
                }
                ;
                else
                {
                    item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
                }
            }
            else if (po is Gun)
            {
                var item = (po as Gun);
                if (item.passiveStatModifiers == null)
                {
                    item.passiveStatModifiers = new StatModifier[] { modifier }
                }
                ;
                else
                {
                    item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
                }
            }
            else
            {
                throw new NotSupportedException("Object must be of type PlayerItem or PassiveItem");
            }
        }
Exemplo n.º 14
0
        public static void RemoveStatFromGun(this Gun item, PlayerStats.StatType statType)
        {
            var newModifiers = new List <StatModifier>();

            for (int i = 0; i < item.passiveStatModifiers.Length; i++)
            {
                if (item.passiveStatModifiers[i].statToBoost != statType)
                {
                    newModifiers.Add(item.passiveStatModifiers[i]);
                }
            }
            item.passiveStatModifiers = newModifiers.ToArray();
        }
Exemplo n.º 15
0
 private void ProcessStat(PlayerStats.StatType type, PlayerController player, float defaultValue, ref float increaseValue, bool decrease = false)
 {
     this.RemoveStat(type);
     if (type == PlayerStats.StatType.Damage)
     {
         ETGModConsole.Log("da: " + (player.stats.GetStatValue(type) - increaseValue < defaultValue));
     }
     if ((player.stats.GetStatValue(type) - increaseValue < defaultValue && !decrease) || (player.stats.GetStatValue(type) + increaseValue > defaultValue && decrease))
     {
         increaseValue = defaultValue - player.stats.GetStatValue(type);
         this.AddStat(type, increaseValue, StatModifier.ModifyMethod.ADDITIVE);
     }
 }
Exemplo n.º 16
0
        public void RemoveCurrentGunStatModifier(PlayerStats.StatType statType)
        {
            List <StatModifier> list = new List <StatModifier>();

            foreach (StatModifier mod in gun.currentGunStatModifiers)
            {
                if (mod.statToBoost != statType)
                {
                    list.Add(mod);
                }
            }
            gun.currentGunStatModifiers = list.ToArray();
        }
Exemplo n.º 17
0
 private void RemoveStat(PlayerStats.StatType statType)
 {
     List<StatModifier> list = new List<StatModifier>();
     for (int i = 0; i < this.passiveStatModifiers.Length; i++)
     {
         bool flag = this.passiveStatModifiers[i].statToBoost != statType;
         if (flag)
         {
             list.Add(this.passiveStatModifiers[i]);
         }
     }
     this.passiveStatModifiers = list.ToArray();
 }
Exemplo n.º 18
0
        public static void RemoveStat(this PassiveItem item, PlayerStats.StatType statType)
        {
            List <StatModifier> list = new List <StatModifier>();

            for (int i = 0; i < item.passiveStatModifiers.Length; i++)
            {
                bool flag = item.passiveStatModifiers[i].statToBoost != statType;
                if (flag)
                {
                    list.Add(item.passiveStatModifiers[i]);
                }
            }
            item.passiveStatModifiers = list.ToArray();
        }
Exemplo n.º 19
0
 public static float DefaultValue(StatType stat, bool isRobot)
 {
     if (stat == StatType.MovementSpeed)
     {
         return(7);
     }
     if (stat == StatType.Coolness || stat == StatType.Curse || stat == StatType.AdditionalBlanksPerFloor)
     {
         return(0);
     }
     if (stat == StatType.Health)
     {
         return(!isRobot ? 3 : 6);
     }
     return(1);
 }
        private IEnumerator HandleTimedStatModifier(PlayerStats.StatType statToBoost, float amount, float dur, StatModifier.ModifyMethod method)
        {
            StatModifier timedMod = new StatModifier()
            {
                amount      = amount,
                statToBoost = statToBoost,
                modifyType  = method,
            };

            m_attachedPlayer.ownerlessStatModifiers.Add(timedMod);
            m_attachedPlayer.stats.RecalculateStats(m_attachedPlayer);
            yield return(new WaitForSeconds(dur));

            m_attachedPlayer.ownerlessStatModifiers.Remove(timedMod);
            m_attachedPlayer.stats.RecalculateStats(m_attachedPlayer);
            yield break;
        }
Exemplo n.º 21
0
        public static void AddStatToGun(this Gun item, PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod method = StatModifier.ModifyMethod.ADDITIVE)
        {
            StatModifier modifier = new StatModifier
            {
                amount      = amount,
                statToBoost = statType,
                modifyType  = method
            };

            if (item.passiveStatModifiers == null)
            {
                item.passiveStatModifiers = new StatModifier[] { modifier }
            }
            ;
            else
            {
                item.passiveStatModifiers = item.passiveStatModifiers.Concat(new StatModifier[] { modifier }).ToArray();
            }
        }
 private void StatModifierStuff(PlayerStats.StatType stat, float amount, StatModifier.ModifyMethod modifyType)
 {
     if (modifyType == StatModifier.ModifyMethod.MULTIPLICATIVE)
     {
         StatModifier statModifier = new StatModifier();
         statModifier.amount      = amount;
         statModifier.modifyType  = modifyType;
         statModifier.statToBoost = stat;
         LastOwner.ownerlessStatModifiers.Add(statModifier);
         LastOwner.stats.RecalculateStats(LastOwner, false, false);
     }
     else
     {
         if (amount < 0)
         {
             if ((amount * amount) <= LastOwner.stats.GetStatValue(stat))
             {
                 StatModifier statModifier = new StatModifier();
                 statModifier.amount      = amount;
                 statModifier.modifyType  = modifyType;
                 statModifier.statToBoost = stat;
                 LastOwner.ownerlessStatModifiers.Add(statModifier);
                 LastOwner.stats.RecalculateStats(LastOwner, false, false);
             }
         }
         else
         {
             StatModifier statModifier = new StatModifier();
             statModifier.amount      = amount;
             statModifier.modifyType  = modifyType;
             statModifier.statToBoost = stat;
             LastOwner.ownerlessStatModifiers.Add(statModifier);
             LastOwner.stats.RecalculateStats(LastOwner, false, false);
         }
     }
 }
Exemplo n.º 23
0
 public void AddCurrentGunStatModifier(PlayerStats.StatType statType, float amount, StatModifier.ModifyMethod modifyMethod)
 {
     gun.currentGunStatModifiers = gun.currentGunStatModifiers.Concat(new StatModifier[] { new StatModifier {
                                                                                               statToBoost = statType, amount = amount, modifyType = modifyMethod
                                                                                           } }).ToArray();
 }
Exemplo n.º 24
0
 private void ApplyStat(PlayerController player, PlayerStats.StatType statType, float amountToApply, StatModifier.ModifyMethod modifyMethod)
 {
     player.ownerlessStatModifiers.Add(Toolbox.SetupStatModifier(PlayerStats.StatType.Damage, 0.1f, StatModifier.ModifyMethod.ADDITIVE, false));
     player.stats.RecalculateStats(player, false, false);
 }
Exemplo n.º 25
0
        public static float GetCombinedPlayersStatAmount(this GameManager managerInstance, PlayerStats.StatType stat)
        {
            float amt = 0;

            if (managerInstance.PrimaryPlayer)
            {
                float primary = managerInstance.PrimaryPlayer.stats.GetStatValue(stat);
                amt += primary;
            }
            if (managerInstance.SecondaryPlayer)
            {
                float secondary = managerInstance.SecondaryPlayer.stats.GetStatValue(stat);
                amt += secondary;
            }
            return(amt);
        }
 public void DoTimedStatModifier(PlayerStats.StatType statToBoost, float amount, float time, StatModifier.ModifyMethod modifyMethod = StatModifier.ModifyMethod.MULTIPLICATIVE)
 {
     m_attachedPlayer.StartCoroutine(HandleTimedStatModifier(statToBoost, amount, time, modifyMethod));
 }
Exemplo n.º 27
0
 public void SetStat(PlayerController player, PlayerStats.StatType type, float val)
 {
     GameManager.Instance.PrimaryPlayer.stats.SetBaseStatValue(type, val, player);
 }
Exemplo n.º 28
0
        //Stats
        public static Dictionary <StatType, float> GetStats(string[] lines, int startIndex, out int endIndex)
        {
            endIndex = startIndex;

            Dictionary <PlayerStats.StatType, float> stats = new Dictionary <PlayerStats.StatType, float>();
            string line;

            string[] args;
            for (int i = startIndex; i < lines.Length; i++)
            {
                endIndex = i;
                line     = lines[i].ToLower().Trim();
                if (line.StartsWith("</stats>"))
                {
                    return(stats);
                }

                args = line.Split(':');
                if (args.Length == 0)
                {
                    continue;
                }
                if (string.IsNullOrEmpty(args[0]))
                {
                    continue;
                }
                if (args.Length < 2)
                {
                    ToolsCharApi.PrintError("Invalid stat line: " + line);
                    continue;
                }

                StatType stat      = StatType.Accuracy;
                bool     foundStat = false;
                foreach (StatType statType in Enum.GetValues(typeof(StatType)))
                {
                    if (statType.ToString().ToLower().Equals(args[0].ToLower()))
                    {
                        stat      = statType;
                        foundStat = true;
                        break;
                    }
                }
                if (!foundStat)
                {
                    ToolsCharApi.PrintError("Unable to find stat: " + line);
                    continue;
                }

                float value;
                bool  foundValue = float.TryParse(args[1].Trim(), out value);
                if (!foundValue)
                {
                    ToolsCharApi.PrintError("Invalid stat value: " + line);
                    continue;
                }

                stats.Add(stat, value);
            }
            ToolsCharApi.PrintError("Invalid stats setup, expecting '</stats>' but found none");
            return(new Dictionary <StatType, float>());
        }
Exemplo n.º 29
0
 public float GetStat(PlayerController player, PlayerStats.StatType type)
 {
     return(GameManager.Instance.PrimaryPlayer.stats.GetStatValue(type));
 }
Exemplo n.º 30
0
 public void AddStatCommands(PlayerController player, string name, PlayerStats.StatType type)
 {
     _SetGroup.AddUnit(name, (args) => SetStat(player, type, float.Parse(args[0])));
     _GetGroup.AddUnit(name, (args) => ETGModConsole.Log(GetStat(player, type).ToString()));
 }