/// <summary> /// 세이브 코드 반환 /// </summary> static StringBuilder SaveCode() { StringBuilder sb = new StringBuilder(); // 게임 정보 sb .Append(GameRule.area) .Append(codeData) .Append(GameRule.section) .Append(codeData) .Append(Cycle.now) .Append(codeData) .Append(Cycle.goal) .Append(codeData) .Append(Player.allPlayer.Count) .Append(codeData) .Append(BlockWork.plusBlockValue) .Append(codeData) .Append(BlockWork.minusBlockValue) .Append(codeChapter) ; // 플레이어 정보 for (int i = 0; i < Player.allPlayer.Count; i++) { Player temp = Player.allPlayer[i]; sb .Append(Turn.Index(temp)) .Append(codeData) .Append((int)(temp.type)) .Append(codeData) .Append(temp.character.index) .Append(codeData) .Append(temp.isAutoPlay) .Append(codeData) .Append(temp.name) .Append(codeData) .Append(temp.movement.location) .Append(codeData) .Append(temp.life.Value) .Append(codeData) .Append(temp.coin.Value) .Append(codeData) .Append(temp.dice.count) .Append(codeData) .Append(temp.dice.valueTotal) .Append(codeData) .Append(temp.dice.valueRecord) .Append(codeData) ; for (int j = 0; j < Player.inventoryMax; j++) { if (temp.inventory[j].count > 0) { // 유효한 아이템 sb .Append(temp.inventory[j].item.index) .Append(codeData) .Append(temp.inventory[j].count) ; } else { // 아이템 없음 sb .Append(-1) .Append(codeData) .Append(0) ; } if (j < Player.inventoryMax - 1) { sb.Append(codeData); } } if (Player.allPlayer.Count > 1 && i != Player.allPlayer.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 아이템 오브젝트 배치 for (int i = 0; i < ItemManager.itemObjectList.Count; i++) { DynamicItem obj = ItemManager.itemObjectList[i]; sb .Append(obj.location) .Append(codeData) .Append(obj.item.index) .Append(codeData) .Append(obj.count) ; if (i > 0 && i != ItemManager.itemObjectList.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 이벤트 오브젝트 배치 for (int i = 0; i < EventManager.eventObjectList.Count; i++) { DynamicEvent obj = EventManager.eventObjectList[i]; sb .Append(obj.location) .Append(codeData) .Append(obj.iocEvent.index) .Append(codeData) .Append(obj.count) .Append(codeData) .Append(Player.Index(obj.creator)) ; if (i > 0 && i != EventManager.eventObjectList.Count - 1) { sb.Append(codeLine); } } sb.Append(codeChapter); // 상황 설정 sb .Append(Player.Index(Turn.now)) .Append(codeData) .Append((int)GameData.gameFlow) .Append(codeData) .Append((int)Turn.turnAction) //.Append(codeChapter) ; // 종료 문자 sb.Append('#'); return(sb); }