using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace practice
{
internal class App
{
//생성자
public App()
{
InfoManager.instance.LoadDataManager();
Console.WriteLine("게임시작");
InfoManager.instance.PrintMission();
InfoManager.instance.GetGift(1000);
InfoManager.instance.GetGift(1001);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;
using System.Reflection;
namespace practice
{
internal class InfoManager
{
public static readonly InfoManager instance = new InfoManager();
Dictionary<int, MissionList>dicMissionList = new Dictionary<int, MissionList>();
Dictionary<int, ItemList> dicItemList = new Dictionary<int, ItemList>();
Dictionary<int, MissionInfo> dicMissionInfo = new Dictionary<int, MissionInfo>();
private InfoManager() { }
public void LoadDataManager()
{
string json = File.ReadAllText("./mission_list.json");
string json2 = File.ReadAllText("./item_list.json");
string json3 = File.ReadAllText("./mission_info.json");
MissionList[] missionLists = JsonConvert.DeserializeObject<MissionList[]>(json);
ItemList[] ItemLists = JsonConvert.DeserializeObject<ItemList[]>(json2);
MissionInfo[] missionInfos = JsonConvert.DeserializeObject<MissionInfo[]>(json3);
foreach(MissionList missionList in missionLists)
{
dicMissionList.Add(missionList.id, missionList);
}
foreach(ItemList itemList in ItemLists)
{
dicItemList.Add(itemList.id, itemList);
}
foreach(MissionInfo missionInfo in missionInfos)
{
dicMissionInfo.Add(missionInfo.id, missionInfo);
}
}
public void PrintMission()
{
foreach(var mission in dicMissionList)
{
Console.WriteLine(mission.Value.name);
Console.WriteLine(mission.Value.detail);
Console.WriteLine(mission.Value.gift);
Console.WriteLine("{0}/{1}",dicMissionInfo[mission.Value.id].progress,mission.Value.target);
}
}
public void GetGift(int i)
{
if (dicMissionInfo[i].state == 0)
{
Console.WriteLine("아직 보상을 획득할 수 없습니다.");
}
else if (dicMissionInfo[i].state == 1)
{
Console.WriteLine("보상을 획득하였습니다");
Item item = new Item(dicItemList[dicMissionList[i].item_id]);
dicMissionInfo[i].state = 2;
}
else
{
Console.WriteLine("이미 보상을 획득하였습니다.");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace practice
{
internal class ItemList
{
public int id;
public string name;
public int image;
public ItemList() { }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace practice
{
internal class MissionInfo
{
public int id;
public int progress;
public int state;
public MissionInfo() { }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace practice
{
internal class Item
{
ItemList list;
public Item(ItemList list)
{
this.list = list;
}
}
}