Exemple #1
0
    public void Save(bool overwriteSavedRule)
    {
        Debug.Log("Attempting to save weapon.");
        bool   dataCheckPassed;
        Weapon weapon = new Weapon();

        dataCheckPassed = DataCheck();

        if (dataCheckPassed)
        {
            Debug.Log("Weapon is ready to be saved.");

            Debug.Log("Check to see if the weapon exists.");
            bool nameDoesntExist = true;
            for (int i = 0; i < instance.Weapons.Count; i++)
            {
                if (instance.Weapons[i].Name == setter.Name)
                {
                    Debug.Log("A weapon with that name already exists.");
                    loader.WeaponToLoad = i;
                    nameDoesntExist     = false;
                }
            }

            if (nameDoesntExist || overwriteSavedRule)
            {
                Debug.Log("Saving weapon profile.");

                weapon.Name = setter.Name;
                Debug.Log("Weapon name saved as " + weapon.Name + ".");

                weapon.WeaponType = (Weapon.WeaponTypes)setter.Type;
                Debug.Log("Weapon type saved as " + weapon.WeaponType);

                weapon.StrengthIsVar = setter.StrengthIsVar;
                if (weapon.StrengthIsVar)
                {
                    weapon.VarStrength = (Weapon.VarStrengths)setter.VarStrength;
                    Debug.Log("Weapon strength saved as " + weapon.VarStrength);
                }
                else
                {
                    weapon.Strength = setter.Strength;
                    Debug.Log("Weapon strength saved as " + weapon.Strength);
                }

                weapon.APIsVar = setter.APIsVar;
                if (weapon.APIsVar)
                {
                    weapon.VarAP = (Weapon.VarAPs)setter.VarAP;
                    Debug.Log("Weapon AP saved as " + weapon.VarAP);
                }
                else
                {
                    weapon.AP = setter.AP;
                    Debug.Log("Weapon AP saved as " + weapon.AP);
                }

                weapon.DamageIsVar = setter.DamageIsVar;
                if (weapon.DamageIsVar)
                {
                    weapon.VarDamage = (Weapon.VarDamages)setter.VarDamage;
                    Debug.Log("Weapon Damage saved as " + weapon.VarDamage);
                }
                else
                {
                    weapon.Damage = setter.Damage;
                    Debug.Log("Weapon Damage saved as " + weapon.Damage);
                }

                if (setter.Type >= 2)
                {
                    Debug.Log("Weapon needs ranged weapon statistics.");

                    weapon.RangeIsVar = setter.RangeIsVar;
                    if (weapon.RangeIsVar)
                    {
                        weapon.VarRange = (Weapon.VarRanges)setter.VarRange;
                        Debug.Log("Weapon Range saved as " + weapon.VarRange);
                    }
                    else
                    {
                        weapon.Range = setter.Range;
                        Debug.Log("Weapon Range saved as " + weapon.Range);
                    }

                    weapon.ShotsAreVar = setter.ShotsAreVar;
                    if (weapon.ShotsAreVar)
                    {
                        weapon.VarShots = (Weapon.VarShotTypes)setter.VarShots;
                        Debug.Log("Weapon Shots saved as " + weapon.VarShots);
                    }
                    else
                    {
                        weapon.Shots = setter.Shots;
                        Debug.Log("Weapon Shots saved as " + weapon.Shots);
                    }
                }
                weapon.Rules = new List <string>();
                foreach (string weaponRule in setter.WeaponRules)
                {
                    weapon.Rules.Add(weaponRule);
                    Debug.Log(weaponRule + " has been saved into Weapons.");
                }

                Debug.Log("Saving weapon.");
                if (overwriteSavedRule)
                {
                    Debug.Log("Overwriting rule.");
                    instance.Weapons[loader.WeaponToLoad] = weapon;
                    bool usuallyTrue = true;
                    ui.Close(usuallyTrue);
                }
                else
                {
                    instance.Weapons.Add(weapon);
                    ui.buttonLoad.interactable = true;
                }
                instance.SaveWeapons();
            }
            else
            {
                Debug.Log("Opening name check panel.");
                ui.OpenNameCheck();
            }
        }
        else
        {
            Debug.Log("Weapon is not ready to be saved.");
        }
    }