void InitialConditions() { Color[] _unit = new Color[w * h]; Color[] _data = new Color[w * h]; Color[] _extra = new Color[w * h]; Color[] _target = new Color[w * h]; Color[] _random = new Color[w * h]; Color[] _tiles = new Color[w * h]; Color[] _corpses = new Color[w * h]; CurrentData.GetData(_data); var rnd = new System.Random(); for (int i = 0; i < w; i++) { for (int j = 0; j < h; j++) { _random[i * h + j] = new Color(rnd.IntRange(0, 256), rnd.IntRange(0, 256), rnd.IntRange(0, 256), rnd.IntRange(0, 256)); _corpses[i * h + j] = new Color(0, 0, 0, 0); _tiles[i * h + j] = new Color(2, rnd.Next(0, 11), 30, 0); // Random units //if (rnd.NextDouble() > 0.85f) //{ // int dir = rnd.Next(1, 5); // int action = (int)(255f * SimShader.UnitAction.Attacking); // int g = 0; // int b = 0; // int player = rnd.Next(1, 2); // int team = player; // int type = rnd.Next(1, 2); // _unit[i * h + j] = new Color(type, player, team, 0); // _data[i * h + j] = new Color(dir, g, b, action); // _extra[i * h + j] = new Color(0, 0, 0, 0); // _target[i * h + j] = new Color(rnd.Next(0, 4), rnd.Next(0, 256), rnd.Next(0, 4), rnd.Next(0, 256)); //} //else //{ // _unit[i * h + j] = new Color(0, 0, 0, 0); // _data[i * h + j] = new Color(0, 0, 0, 0); // _extra[i * h + j] = new Color(0, 0, 0, 0); // _target[i * h + j] = new Color(0, 0, 0, 0); //} } } // Gold mine gride //for (int i = 0; i < w; i += 50) //for (int j = 0; j < h; j += 50) //{ // Create.MakeBuilding(vec(i,j), SimShader.UnitType.GoldMine, Player.None, Team.None, i, j, w, h, _unit, _data, _target); //} CurrentUnits.SetData(_unit); PreviousUnits.SetData(_unit); CurrentData.SetData(_data); PreviousData.SetData(_data); Extra.SetData(_extra); TargetData.SetData(_target); RandomField.SetData(_random); Tiles.SetData(_tiles); Corpses.SetData(_corpses); }
public static void LoadRandMission() { SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("RandomQuest_List"); reader.Read(); while (reader.Read()) { MissionCommonData data = new MissionCommonData(); RandomField rf = new RandomField(); int strid; data.m_Type = MissionType.MissionType_Sub; data.m_ID = Convert.ToInt32(reader.GetString(reader.GetOrdinal("ID"))); strid = Convert.ToInt32(reader.GetString(reader.GetOrdinal("MissionName"))); data.m_MissionName = PELocalization.GetString(strid); data.m_MaxNum = Convert.ToInt32(reader.GetString(reader.GetOrdinal("MaxNum"))); string strtmp = reader.GetString(reader.GetOrdinal("TargetIDList")); string[] tmplist = strtmp.Split(';'); string[] tmplist1, tmplist2; for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TargetIDMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("Get_DemandItem")); tmplist = strtmp.Split(','); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } tmplist1 = tmplist[i].Split('_'); if (tmplist1.Length != 2) { continue; } MissionIDNum tmp; tmp.id = Convert.ToInt32(tmplist1[0]); tmp.num = Convert.ToInt32(tmplist1[1]); data.m_Get_DemandItem.Add(tmp); } strtmp = reader.GetString(reader.GetOrdinal("Get_DeleteItem")); tmplist = strtmp.Split(','); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } tmplist1 = tmplist[i].Split('_'); if (tmplist1.Length != 2) { continue; } MissionIDNum tmp; tmp.id = Convert.ToInt32(tmplist1[0]); tmp.num = Convert.ToInt32(tmplist1[1]); data.m_Get_DeleteItem.Add(tmp); } strtmp = reader.GetString(reader.GetOrdinal("Get_MissionItem")); tmplist = strtmp.Split(','); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } tmplist1 = tmplist[i].Split('_'); if (tmplist1.Length != 2) { continue; } MissionIDNum tmp; tmp.id = Convert.ToInt32(tmplist1[0]); tmp.num = Convert.ToInt32(tmplist1[1]); data.m_Get_MissionItem.Add(tmp); } strtmp = reader.GetString(reader.GetOrdinal("CoRewardItem")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } tmplist1 = tmplist[i].Split(','); List <MissionIDNum> tmp = new List <MissionIDNum>(); for (int j = 0; j < tmplist1.Length; j++) { tmplist2 = tmplist1[j].Split('_'); if (tmplist2.Length != 2) { continue; } MissionIDNum idNum; idNum.id = Convert.ToInt32(tmplist2[0]); idNum.num = Convert.ToInt32(tmplist2[1]); tmp.Add(idNum); } if (tmp.Count == 0) { continue; } rf.RewardMap.Add(tmp); } strtmp = reader.GetString(reader.GetOrdinal("CoRemoveItem")); tmplist = strtmp.Split(','); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } tmplist1 = tmplist[i].Split('_'); if (tmplist1.Length != 2) { continue; } MissionIDNum tmp; tmp.id = Convert.ToInt32(tmplist1[0]); tmp.num = Convert.ToInt32(tmplist1[1]); data.m_Com_RemoveItem.Add(tmp); } strid = Convert.ToInt32(reader.GetString(reader.GetOrdinal("Description"))); data.m_Description = PELocalization.GetString(strid); strtmp = reader.GetString(reader.GetOrdinal("player_talk")); tmplist = strtmp.Split(','); if (tmplist.Length == 2) { data.m_PlayerTalk[0] = Convert.ToInt32(tmplist[0]); data.m_PlayerTalk[1] = Convert.ToInt32(tmplist[1]); } else if (tmplist.Length == 1 && tmplist[0] != "0") { data.m_PlayerTalk[0] = Convert.ToInt32(tmplist[0]); data.m_PlayerTalk[1] = 0; } strtmp = reader.GetString(reader.GetOrdinal("TalkOP")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkOPMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("TalkIN")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { //if (tmplist[i] == "0") // continue; TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkINMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("TalkED")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkEDMap.Add(tli); } if (Convert.ToInt32(reader.GetString(reader.GetOrdinal("bGiveUp"))) == 0) { data.m_bGiveUp = false; } else { data.m_bGiveUp = true; } strtmp = reader.GetString(reader.GetOrdinal("TalkOP_SP")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkOPSMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("TalkIN_SP")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkINSMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("TalkED_SP")); tmplist = strtmp.Split(';'); for (int i = 0; i < tmplist.Length; i++) { if (tmplist[i] == "0") { continue; } TargetListInfo tli; tli.listid = new List <int>(); tmplist1 = tmplist[i].Split(','); for (int m = 0; m < tmplist1.Length; m++) { tli.listid.Add(Convert.ToInt32(tmplist1[m])); } rf.TalkEDSMap.Add(tli); } strtmp = reader.GetString(reader.GetOrdinal("NextQuest")); if (strtmp != "0") { tmplist = strtmp.Split(','); for (int i = 0; i < tmplist.Length; i++) { data.m_EDID.Add(Convert.ToInt32(tmplist[i])); } } m_RandomFieldMap.Add(data.m_ID, rf); m_RandMisMap.Add(data.m_ID, data); } }