2025-10-14 00:39:50 +08:00

339 lines
5.1 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using RuntimeData;
using Logic.Multilingual;
public enum CivLibrary
{
Egyptian,
French,
Germany,
Indian,
Norway,
British,
Persian,
Byzantine
}
public enum CityLibrary
{
//以下是埃及城市
Cairo,
Alexandria,
Memphis,
Thebes,
Luxor,
Aswan,
AbuSimbel,
Giza,
Sinai,
Dendera,
Edfu,
KomOmbo,
Heliopolis,
Suez,
TenthOfRamadanCity,
Tura,
Amarna,
Tanis,
Bubastis,
Abydos,
Arsinoe,
Faiyum,
BeniSuef,
Minya,
Sohag,
Asyut,
Qalyubiyya,
Hurghada,
ElAlamein,
MersaMatruh,
//以下是法国城市
Paris,
Versailles,
Lyon,
Marseille,
Bordeaux,
Toulouse,
Lille,
Nantes,
Strasbourg,
Nice,
Dijon,
Rouen,
Reims,
Orleans,
Tours,
Avignon,
Metz,
Nancy,
Amiens,
Caen,
Limoges,
Poitiers,
ClermontFerrand,
Besancon,
Brest,
Perpignan,
AixEnProvence,
SaintEtienne,
LeHavre,
Calais,
//以下是德国城市
Berlin,
Konigsberg,
Potsdam,
Magdeburg,
Hamburg,
Bremen,
Dresden,
Leipzig,
Munich,
Nuremberg,
Cologne,
Frankfurt,
Stuttgart,
Heidelberg,
Hanover,
Essen,
Dusseldorf,
Augsburg,
Mainz,
Lübeck,
Rostock,
Regensburg,
Freiburg,
Trier,
Erfurt,
Weimar,
Darmstadt,
Wiesbaden,
Kiel,
Schwerin,
//以下是印度
Delhi,
NewDelhi,
Varanasi,
Patna,
Pataliputra,
Ayodhya,
Mathura,
Kanpur,
Agra,
Lucknow,
Jaipur,
Ujjain,
Indore,
Bhopal,
Ahmedabad,
Mumbai,
Pune,
Nagpur,
Surat,
Vadodara,
Hyderabad,
Warangal,
Bengaluru,
Mysore,
Chennai,
Madurai,
Thanjavur,
Kolkata,
Bhubaneswar,
Srinagar,
//挪威城市
Oslo,
Bergen,
Trondheim,
Stavanger,
Tromso,
Kristiansand,
Drammen,
Fredrikstad,
Skien,
Bodo,
Haugesund,
Arendal,
Molde,
Lillehammer,
Hamar,
Gjovik,
Alta,
Narvik,
Sandefjord,
Alesund,
Tonsberg,
Halden,
Moss,
Honefoss,
Kongsberg,
Elverum,
Steinkjer,
Levanger,
Voss,
Forde,
//英国城市
London,
Birmingham,
Manchester,
Liverpool,
Leeds,
Sheffield,
Bristol,
Newcastle,
Nottingham,
Southampton,
Leicester,
Portsmouth,
York,
Cambridge,
Oxford,
Exeter,
Cardiff,
Glasgow,
Edinburgh,
Belfast,
Swansea,
Dundee,
Aberdeen,
Londonderry,
Inverness,
Carlisle,
Bath,
Norwich,
Reading,
Plymouth,
//波斯城市
Persepolis,
Susa,
Ecbatana,
Pasargadae,
Rhagae,
Istakhr,
Shiraz,
Isfahan,
Tehran,
Tabriz,
Mashhad,
Qom,
Hamadan,
Kerman,
Yazd,
Ahvaz,
BandarAbbas,
Kermanshah,
Zanjan,
Sabzevar,
Neyshabur,
Qazvin,
Karaj,
Arak,
Borujerd,
Sanandaj,
Rasht,
Ardabil,
Kashan,
Bushehr,
//拜占庭
Constantinople,
Nicaea,
Antioch,
Thessalonica,
Trebizond,
Ephesus,
Smyrna,
Heraclea,
Adrianople,
Nicomedia,
Chalcedon,
Caesarea,
Rhodes,
Corinth,
Athens,
Dyrrachium,
ThebesByzantine,
Laodicea,
Ancyra,
Amasea,
Mystras,
Philippi,
Nysa,
Tyana,
Pergamon,
Iconium,
Miletus,
Tralles,
Seleucia,
Cyrene
}
[Serializable]
[CreateAssetMenu(fileName = "CivDataAssets", menuName = "TH1 Game Data/Civ Data Asset")]
public class CivDataAssets : ScriptableObject
{
public List<CivInfo> CivDataList = new List<CivInfo>();
[NonSerialized]
private bool _initialized = false;
public bool GetCivInfo(CivEnum civEnum, out CivInfo info)
{
return GetCivInfo(Table.Instance.TransCivEnumToCivId(civEnum),out info);
}
public bool GetCivInfo(uint CivId,out CivInfo info)
{
info = null;
foreach (var t in CivDataList)
{
if (t.CivId == CivId)
{
info = t;
return true;
}
}
return false;
}
public bool GetCityInfo(CityLibrary cityNameEnum, out CityInfo cityInfo)
{
foreach (var civ in CivDataList)
{
foreach (var city in civ.CityInfoList)
if (city.CityNameEnum == cityNameEnum)
{
cityInfo = city;
return true;
}
}
Debug.Log("Cant Find City!!!!!");
Debug.Log(cityNameEnum);
cityInfo = null;
return false;
}
}
[Serializable]
public class CivInfo
{
public uint CivId;
public CivLibrary Civ;
[MultilingualField]
public string CivName;
public List<CityInfo> CityInfoList;
}
[Serializable]
public class CityInfo
{
public uint CivId;
public CityLibrary CityNameEnum;
[MultilingualField]
public string CityName;
[MultilingualField]
public string CityDescription;
}