116 lines
3.3 KiB
C#
116 lines
3.3 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
// 던전 관련 저장 데이터
|
|
[Serializable]
|
|
public class DungeonSave
|
|
{
|
|
// 강화 수치
|
|
public int attackPowerLevel = 0;
|
|
public int attackSpeedLevel = 0;
|
|
public int heartLevel = 0;
|
|
public int moveSpeedLevel = 0;
|
|
public int dashCoolDownLevel = 0;
|
|
|
|
// 현재 진행 중인 스테이지
|
|
public int stageLevel = 0;
|
|
|
|
// 스테이지 도전 횟수
|
|
public int tryStageCount = 999;
|
|
|
|
//병합을 위한 메서드
|
|
public void MergeWith(DungeonSave other)
|
|
{
|
|
if (other == null) return;
|
|
|
|
if (other.attackPowerLevel != 0) attackPowerLevel = other.attackPowerLevel;
|
|
if (other.attackSpeedLevel != 0) attackSpeedLevel = other.attackSpeedLevel;
|
|
if (other.heartLevel != 0) heartLevel = other.heartLevel;
|
|
if (other.moveSpeedLevel != 0) moveSpeedLevel = other.moveSpeedLevel;
|
|
if (other.dashCoolDownLevel != 0) dashCoolDownLevel = other.dashCoolDownLevel;
|
|
if (other.stageLevel != 0) stageLevel = other.stageLevel;
|
|
if (other.tryStageCount < 999) tryStageCount = other.tryStageCount;
|
|
}
|
|
}
|
|
|
|
// 일상(자취방) 관련 저장 데이터
|
|
[Serializable]
|
|
public class HomeSave
|
|
{
|
|
// 일상 시간
|
|
public int currentDay = 0;
|
|
public float time = 999;
|
|
|
|
|
|
// 체력 및 평판 수치
|
|
public float health = 999;
|
|
public float reputation = 999;
|
|
|
|
//이벤트
|
|
public int mealCount = 999;
|
|
|
|
public bool hasShownBubbleToday = false;
|
|
public bool hasShownBubbleTodaySet = false;
|
|
|
|
public bool hasCheckedAbsenceToday;
|
|
public bool hasCheckedAbsenceTodaySet = false;
|
|
|
|
//튜토리얼 여부
|
|
public bool hasTutorial;
|
|
public bool hasTutorialSet;
|
|
|
|
//병합을 위한 메서드
|
|
public void MergeWith(HomeSave other)
|
|
{
|
|
if (other == null) return;
|
|
|
|
if (other.currentDay != 0) currentDay = other.currentDay;
|
|
if (other.time < 999) time = other.time;
|
|
if (other.health < 999) health = other.health;
|
|
if (other.reputation < 999) reputation = other.reputation;
|
|
if (other.mealCount < 999) mealCount = other.mealCount;
|
|
|
|
if (other.hasShownBubbleTodaySet) hasShownBubbleToday = other.hasShownBubbleToday;
|
|
|
|
if (other.hasCheckedAbsenceTodaySet) hasCheckedAbsenceToday = other.hasCheckedAbsenceToday;
|
|
|
|
if (other.hasTutorialSet) hasTutorial = other.hasTutorial;
|
|
}
|
|
}
|
|
|
|
// 게임 전체 저장 구조
|
|
[Serializable]
|
|
public class Save
|
|
{
|
|
public HomeSave homeSave;
|
|
public DungeonSave dungeonSave;
|
|
|
|
//초기 값 반환
|
|
public Save InitSave()
|
|
{
|
|
return new Save
|
|
{
|
|
homeSave = new HomeSave
|
|
{
|
|
currentDay = 1,
|
|
time = 8.0f,
|
|
health = 8.0f,
|
|
reputation = 2.0f,
|
|
mealCount = 0,
|
|
hasShownBubbleToday = false,
|
|
hasCheckedAbsenceToday = false,
|
|
hasTutorial = false
|
|
},
|
|
dungeonSave = new DungeonSave
|
|
{
|
|
attackPowerLevel = 1,
|
|
attackSpeedLevel = 1,
|
|
heartLevel = 1,
|
|
moveSpeedLevel = 1,
|
|
dashCoolDownLevel = 1,
|
|
stageLevel = 1,
|
|
tryStageCount = 0
|
|
}
|
|
};
|
|
}
|
|
} |