Пример #1
0
    /// <summary>
    /// 保存
    /// </summary>
    public void Save()
    {
        this.ioTime     = Time.realtimeSinceStartup;
        this.accessTime = 0f;

        // 保存設定(※デモ用の設定変更)
        this.procSettings   = this.usedSettings.Clone() as UserSettings;
        this.saveAllyStatus = this.saveAllyStatus.Clone() as SaveAllyStatus;
        UserSettings   us  = this.procSettings;
        SaveAllyStatus sas = this.procSaveAllyStatus;

        us.format  = this.control.saveJson.isOn ? FORMAT.JSON : FORMAT.BINARY;
        us.encrypt = this.control.saveEncrypt.isOn;
        us.backup  = this.control.saveBackup.isOn;
        // 内容更新(適当に内容を更新)
        System.DateTime date = System.DateTime.Now;
        us.date   = date.ToBinary();
        us.count += 1;
        us.saveAllyStatus.StatusCopy(this.allyStatus);

        sas.format  = this.control.saveJson.isOn ? FORMAT.JSON : FORMAT.BINARY;
        sas.encrypt = this.control.saveEncrypt.isOn;
        sas.backup  = this.control.saveBackup.isOn;
        // 内容更新(適当に内容を更新)
        sas.StatusCopy(this.allyStatus);
        // 保存(※FinishHandlerはnullでも可)
        bool async = this.control.saveAsync.isOn;

        if (async)
        {
            this.accessMessage = "Now Saving";
        }
        this.storageManager.Save(this.procSettings, this.ioHandler, async);
        this.storageManager.Save(this.procSaveAllyStatus, this.ioHandler, async);
    }
Пример #2
0
    /// <summary>
    /// 初期化
    /// </summary>
    void Start()
    {
        this.control = this.GetComponent <StorageControl>();

        this.ioHandler      = new FinishHandler(this.IOHandler);
        this.storageManager = new StorageManager();
        this.usedSettings   = this.procSettings = new UserSettings();
        this.saveAllyStatus = this.procSaveAllyStatus = new SaveAllyStatus();

        // 例外
        this.UpdateDataInfo((IO_RESULT)999);
    }
Пример #3
0
    /// <summary>
    /// 簡易リセット
    /// </summary>
    public void Clear()
    {
#if DEMO
        this.format_  = Storage.FORMAT.BINARY;
        this.encrypt_ = false;
        this.backup_  = false;
#endif

        this.date           = System.DateTime.MinValue.ToBinary();
        this.count          = 0;
        this.saveAllyStatus = new SaveAllyStatus();
    }
Пример #4
0
 // ステータスをセーブ用にコピー
 public void StatusLoad(SaveAllyStatus saveAllyStatus)
 {
     // キャラクターの名前
     SetCharacterName(saveAllyStatus.GetCharacterName());
     SetPoisonState(saveAllyStatus.IsPoisonState());
     SetNumbness(saveAllyStatus.IsNumbnessState());
     // キャラクターのレベル
     SetLevel(saveAllyStatus.GetLevel());
     // 素早さ
     SetAgility(saveAllyStatus.GetAgility());
     // 力
     SetPower(saveAllyStatus.GetPower());
     // 打たれ強さ
     SetStrikingStrength(saveAllyStatus.GetStrikingStrength());
     // 魔法力
     SetMagicPower(saveAllyStatus.GetMagicPower());
     // 最大HP
     SetMaxHp();
     // HP
     SetHp(saveAllyStatus.GetHp());
     // 最大MP
     SetMaxMp();
     // MP
     SetMp(saveAllyStatus.GetMp());
     // 持っているスキル
     SetSkillList(saveAllyStatus.GetSkillList());
     //属性カット率
     SetCutFlame(saveAllyStatus.GetCutFlame());
     SetCutThunder(saveAllyStatus.GetCutThunder());
     SetCutIce(saveAllyStatus.GetcutIce());
     // 獲得経験値
     SetEarnedExperience(saveAllyStatus.GetEarnedExperience());
     // 装備している武器
     SetEquipWeapon(saveAllyStatus.GetEquipWeapon());
     // 装備している鎧
     SetEquipArmor(saveAllyStatus.GetEquipArmor());
     //装備しているアクセサリ
     SetEquipAccessory1(saveAllyStatus.GetEquipAccessory1());
     SetEquipAccessory2(saveAllyStatus.GetEquipAccessory2());
     // 攻撃力
     SetAttackPower(saveAllyStatus.GetAttackPower());
     // 守備力
     SetDefencePower(saveAllyStatus.GetDefencePower());
 }
Пример #5
0
    /// <summary>
    /// データ情報更新
    /// </summary>
    /// <param name="result">結果</param>
    private void UpdateDataInfo(IO_RESULT result)
    {
        UserSettings   us  = this.usedSettings = this.procSettings;
        SaveAllyStatus sas = this.saveAllyStatus = this.procSaveAllyStatus;

        //us.format = this.control.saveJson.isOn ? FORMAT.JSON : FORMAT.BINARY;
        //us.encrypt = this.control.saveEncrypt.isOn;
        //us.backup = this.control.saveBackup.isOn;
        if (us.count > 0)
        {
            this.control.dataInfo.text = string.Format(INFO_FORMAT, us.version, us.encrypt, us.format, us.backup, System.DateTime.FromBinary(us.date).ToString(), us.count);
            this.control.filePath.text = Application.persistentDataPath + us.fileName;
        }
        else
        {
            this.control.dataInfo.text = string.Format(INFO_FORMAT, "--", "--", "--", "--", "-/-/---- --:--:--", "--");
            this.control.filePath.text = "----";
        }
        this.state = STATE.IDLE;

        switch (result)
        {
        case IO_RESULT.NONE:
            this.accessMessage = "NOTHING";
            break;

        case IO_RESULT.SAVE_SUCCESS:
        case IO_RESULT.LOAD_SUCCESS:
            this.accessMessage = "SUCCESS";
            break;

        case IO_RESULT.SAVE_FAILED:
        case IO_RESULT.LOAD_FAILED:
            this.accessMessage = "FAILED";
            break;

        default:
            this.accessMessage = "NOTHING";
            break;
        }
        this.control.access.text = this.accessMessage;
    }
Пример #6
0
    /// <summary>
    /// 完了コールバック
    /// </summary>
    /// <param name="ret">結果</param>
    /// <param name="dataInfo">結果情報</param>
    private void IOHandler(IO_RESULT ret, ref DataInfo dataInfo)
    {
        this.result = ret;
        switch (ret)
        {
        case IO_RESULT.SAVE_SUCCESS:
            // 保存成功
            if (dataInfo.async)
            {
                this.state = STATE.ASYNC_WAIT;
                break;
            }
            this.UpdateDataInfo(ret);
            this.state = STATE.IDLE;
            break;

        case IO_RESULT.SAVE_FAILED:
            // 保存失敗
            if (dataInfo.async)
            {
                this.state = STATE.ASYNC_WAIT;
                break;
            }
            this.state = STATE.IDLE;
            break;

        case IO_RESULT.LOAD_SUCCESS:
            // 読込成功

            /*
             * this.procSettings = dataInfo.serializer as UserSettings;
             * this.procSettings.encrypt = dataInfo.encrypt;
             * this.procSettings.format = dataInfo.format;
             * this.procSettings.backup = dataInfo.backup;
             */
            this.procSaveAllyStatus         = dataInfo.serializer as SaveAllyStatus;
            this.procSaveAllyStatus.encrypt = dataInfo.encrypt;
            this.procSaveAllyStatus.format  = dataInfo.format;
            this.procSaveAllyStatus.backup  = dataInfo.backup;
            this.allyStatus.StatusLoad(this.procSaveAllyStatus);
            if (dataInfo.async)
            {
                this.state = STATE.ASYNC_WAIT;
                break;
            }
            this.UpdateDataInfo(ret);
            this.state = STATE.IDLE;
            break;

        case IO_RESULT.LOAD_FAILED:
            // 読込失敗
            if (dataInfo.async)
            {
                this.state = STATE.ASYNC_WAIT;
                break;
            }
            this.state = STATE.IDLE;
            break;

        case IO_RESULT.NONE:
            // データ不備
            this.state = STATE.IDLE;
            break;
        }
    }