예제 #1
0
        private Mod SumMod()
        {
            Mod    mod = new Mod();
            Button btn;

            Data.ModData modData;
            for (char i = '1'; i <= '8'; i++)
            {
                btn     = (Button)Controls.Find("btnMod" + i, true).FirstOrDefault();
                modData = (Data.ModData)btn.Tag;
                if (modData.name != "")
                {
                    mod.Combine(modData.mod.Scale(modData.level));
                }
            }
            return(mod);
        }
예제 #2
0
        public Weapon Modify(Mod mod)
        {
            Weapon modWeapon = Clone();

            modWeapon.critChan      *= (1 + mod.multiplier[(int)Data.ModProp.CritChan]);
            modWeapon.critMult      *= (1 + mod.multiplier[(int)Data.ModProp.CritMult]);
            modWeapon.totalStatChan *= (1 + mod.multiplier[(int)Data.ModProp.StatChan]);
            modWeapon.pelletStatChan = (modWeapon.totalStatChan >= 1) ? 1 : 1 - Math.Pow((1 - modWeapon.totalStatChan), 1 / modWeapon.multiShot);
            modWeapon.multiShot     *= (1 + mod.multiplier[(int)Data.ModProp.Multi]);
            modWeapon.totalStatChan  = 1 - Math.Pow(1 - modWeapon.pelletStatChan, modWeapon.multiShot);
            modWeapon.fireRate      *= (1 + mod.multiplier[(int)Data.ModProp.FireRate] * (type == Data.WeaponType.Bow ? 2 : 1));
            modWeapon.clip           = (int)Math.Round(modWeapon.clip * (1 + mod.multiplier[(int)Data.ModProp.Clip]));
            modWeapon.reload        /= (1 + mod.multiplier[(int)Data.ModProp.Reload]);
            mod.Combine(this);
            modWeapon.damage.Modify(mod);
            return(modWeapon);
        }