|
@ -10,21 +10,35 @@ namespace GWConquest |
|
|
{ |
|
|
{ |
|
|
public static List<District> AllDistricts = new List<District>(); |
|
|
public static List<District> AllDistricts = new List<District>(); |
|
|
|
|
|
|
|
|
|
|
|
public bool DistrictStatic; |
|
|
|
|
|
|
|
|
public Sprite DefaultSprite; |
|
|
public Sprite DefaultSprite; |
|
|
public string DistrictName; |
|
|
public string DistrictName; |
|
|
|
|
|
|
|
|
public string Description; |
|
|
|
|
|
|
|
|
|
|
|
public DistrictType DistrictType = DistrictType.Civil; |
|
|
public DistrictType DistrictType = DistrictType.Civil; |
|
|
public int DistrictLevel; |
|
|
public int DistrictLevel; |
|
|
|
|
|
|
|
|
public Zone Zone { get; private set; } |
|
|
|
|
|
|
|
|
private Zone _zone; |
|
|
|
|
|
public Zone Zone { |
|
|
|
|
|
get { |
|
|
|
|
|
if(_zone == null) |
|
|
|
|
|
{ |
|
|
|
|
|
_zone = GetComponent<Zone>(); |
|
|
|
|
|
} |
|
|
|
|
|
return _zone; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public static bool IsTypeFactory(DistrictType type) |
|
|
public static bool IsTypeFactory(DistrictType type) |
|
|
{ |
|
|
{ |
|
|
return type == DistrictType.Civil || type == DistrictType.SpaceStation || type == DistrictType.FactoryArmor || type == DistrictType.FactoryInfantry || type == DistrictType.FactorySupplies || type == DistrictType.FactoryFuel; |
|
|
return type == DistrictType.Civil || type == DistrictType.SpaceStation || type == DistrictType.FactoryArmor || type == DistrictType.FactoryInfantry || type == DistrictType.FactorySupplies || type == DistrictType.FactoryFuel; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Planet Planet { |
|
|
|
|
|
get => State.Planet?.GetComponent<Planet>(); |
|
|
|
|
|
set => State.Planet = value.entity; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public Player ControllingPlayer { |
|
|
public Player ControllingPlayer { |
|
|
get { |
|
|
get { |
|
|
var id = State.ControllingPlayerId; |
|
|
var id = State.ControllingPlayerId; |
|
@ -61,19 +75,12 @@ namespace GWConquest |
|
|
set => State.StorageCapacity = value; |
|
|
set => State.StorageCapacity = value; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void Start() |
|
|
|
|
|
{ |
|
|
|
|
|
Zone = GetComponent<Zone>(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public override void Attached() |
|
|
public override void Attached() |
|
|
{ |
|
|
{ |
|
|
if(entity.IsOwner) |
|
|
if(entity.IsOwner) |
|
|
{ |
|
|
{ |
|
|
StorageCapacity = GameManager.Instance.DefaultStorageCapacity; |
|
|
StorageCapacity = GameManager.Instance.DefaultStorageCapacity; |
|
|
State.ControllingPlayerId = -1; |
|
|
State.ControllingPlayerId = -1; |
|
|
|
|
|
|
|
|
State.ZoneID = Zone.GetZoneId(GetComponent<Zone>()); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Inventory = new Inventory(State, "Inventory"); |
|
|
Inventory = new Inventory(State, "Inventory"); |
|
@ -84,6 +91,50 @@ namespace GWConquest |
|
|
//BoltLog.Info("Setting storage capacity to {0}", StorageCapacity);
|
|
|
//BoltLog.Info("Setting storage capacity to {0}", StorageCapacity);
|
|
|
|
|
|
|
|
|
AllDistricts.Add(this); |
|
|
AllDistricts.Add(this); |
|
|
|
|
|
|
|
|
|
|
|
if(DistrictStatic) |
|
|
|
|
|
{ |
|
|
|
|
|
if(entity.IsOwner) |
|
|
|
|
|
{ |
|
|
|
|
|
State.ZoneID = Zone.GetZoneId(GetComponent<Zone>()); |
|
|
|
|
|
State.DistrictType = (int) DistrictType; |
|
|
|
|
|
State.DistrictName = DistrictName; |
|
|
|
|
|
State.Level = DistrictLevel; |
|
|
|
|
|
State.Planet = GetComponentInParent<Planet>().entity; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void InitNonStatic() |
|
|
|
|
|
{ |
|
|
|
|
|
if(DistrictType == DistrictType.SpaceStation) |
|
|
|
|
|
{ |
|
|
|
|
|
Zone.zoneType = ZoneType.Space; |
|
|
|
|
|
Util.ArrayAppend(ref Planet.spaceZones, Zone); |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
Zone.zoneType = ZoneType.Ground; |
|
|
|
|
|
Util.ArrayAppend(ref Planet.groundZones, Zone); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(entity.IsOwner) |
|
|
|
|
|
{ |
|
|
|
|
|
State.ZoneID = Zone.GetZoneId(GetComponent<Zone>()); |
|
|
|
|
|
State.DistrictType = (int) DistrictType; |
|
|
|
|
|
State.DistrictName = DistrictName; |
|
|
|
|
|
State.Level = DistrictLevel; |
|
|
|
|
|
State.RelativePosition = transform.localPosition; |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
Zone.SetZoneId(State.ZoneID); |
|
|
|
|
|
DistrictType = (DistrictType) State.DistrictType; |
|
|
|
|
|
DistrictName = State.DistrictName; |
|
|
|
|
|
DistrictLevel = state.Level; |
|
|
|
|
|
|
|
|
|
|
|
transform.SetParent(Planet.transform, false); |
|
|
|
|
|
transform.localPosition = State.RelativePosition; |
|
|
|
|
|
gameObject.name = DistrictName; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public virtual Sprite GetCurrentSprite() |
|
|
public virtual Sprite GetCurrentSprite() |
|
@ -104,7 +155,7 @@ namespace GWConquest |
|
|
|
|
|
|
|
|
public virtual string GetDescription() |
|
|
public virtual string GetDescription() |
|
|
{ |
|
|
{ |
|
|
return GetComponentInParent<Planet>().PlanetData?.Description; |
|
|
|
|
|
|
|
|
return Planet.PlanetData?.Description; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public string ProducingItem { |
|
|
public string ProducingItem { |
|
|