Browse Source

Random Districts Part 2

master
laurids 2 years ago
parent
commit
1080e88329
14 changed files with 994 additions and 58 deletions
  1. +2
    -2
      Assets/GWConquest/Prefabs/District.prefab
  2. +4
    -4
      Assets/GWConquest/Prefabs/Factory.prefab
  3. +779
    -34
      Assets/GWConquest/Scenes/GalaxyMap.unity
  4. +62
    -11
      Assets/GWConquest/Scripts/District.cs
  5. +1
    -1
      Assets/GWConquest/Scripts/DistrictFactory.cs
  6. +9
    -1
      Assets/GWConquest/Scripts/GameManager.cs
  7. +2
    -0
      Assets/GWConquest/Scripts/Planet.cs
  8. +29
    -0
      Assets/GWConquest/Scripts/PlanetPlacement.cs
  9. +2
    -2
      Assets/GWConquest/Scripts/PlanetRegistry.cs
  10. BIN
      Assets/Photon/PhotonBolt/assemblies/bolt.user.dll
  11. BIN
      Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb
  12. +101
    -0
      Assets/Photon/PhotonBolt/project.json
  13. +1
    -1
      Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset
  14. +2
    -2
      Assets/Photon/PhotonBolt/scripts/BoltDebugStart.cs

+ 2
- 2
Assets/GWConquest/Prefabs/District.prefab View File

@ -75,9 +75,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a89484993d239124eb667c8c33c633d3, type: 3} m_Script: {fileID: 11500000, guid: a89484993d239124eb667c8c33c633d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
DistrictStatic: 0
DefaultSprite: {fileID: 0} DefaultSprite: {fileID: 0}
DistrictName: Primus
Description:
DistrictName: MissingName
DistrictType: 0 DistrictType: 0
DistrictLevel: 0 DistrictLevel: 0
--- !u!114 &2620233160227347941 --- !u!114 &2620233160227347941


+ 4
- 4
Assets/GWConquest/Prefabs/Factory.prefab View File

@ -62,7 +62,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3097d18430809bc4db1e8e075e8199a2, type: 3} m_Script: {fileID: 11500000, guid: 3097d18430809bc4db1e8e075e8199a2, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
Tier: 1
StartsBroken: 0 StartsBroken: 0
SpecialUnits: [] SpecialUnits: []
--- !u!114 &7954319019618919355 --- !u!114 &7954319019618919355
@ -77,10 +76,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a89484993d239124eb667c8c33c633d3, type: 3} m_Script: {fileID: 11500000, guid: a89484993d239124eb667c8c33c633d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
DefaultSprite: {fileID: 21300000, guid: 3b81d9ff9816c8240b02293797c69234, type: 3}
DistrictName: Primus
Description:
DistrictStatic: 0
DefaultSprite: {fileID: 0}
DistrictName: MissingName
DistrictType: 0 DistrictType: 0
DistrictLevel: 0
--- !u!114 &3732992427129260454 --- !u!114 &3732992427129260454
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0


+ 779
- 34
Assets/GWConquest/Scenes/GalaxyMap.unity
File diff suppressed because it is too large
View File


+ 62
- 11
Assets/GWConquest/Scripts/District.cs View File

@ -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 {


+ 1
- 1
Assets/GWConquest/Scripts/DistrictFactory.cs View File

@ -29,7 +29,7 @@ namespace GWConquest
public IEnumerable<UnitClass> GetAvailableUnitClasses() public IEnumerable<UnitClass> GetAvailableUnitClasses()
{ {
var classes = UnitClass.AllUnitClasses.Where(uc => uc.FactoryType == FactoryType && uc.MinFactoryTier <= District.DistrictLevel);
var classes = UnitClass.AllUnitClasses.Where(uc => uc.FactoryType == FactoryType && uc.MinFactoryTier <= District.DistrictLevel+1);
var special = SpecialUnits.ToList().ConvertAll(name => UnitClass.FromName(name)); var special = SpecialUnits.ToList().ConvertAll(name => UnitClass.FromName(name));
return classes.Union(special); return classes.Union(special);
} }


+ 9
- 1
Assets/GWConquest/Scripts/GameManager.cs View File

@ -121,7 +121,7 @@ namespace GWConquest
private IEnumerator EntitiesLoadedAsync() private IEnumerator EntitiesLoadedAsync()
{ {
yield return new WaitForSecondsRealtime(0.1f);
yield return new WaitForSecondsRealtime(1f);
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
EntitiesLoaded = true; EntitiesLoaded = true;
@ -153,6 +153,14 @@ namespace GWConquest
} }
} }
foreach(District d in FindObjectsOfType<District>())
{
if(!d.DistrictStatic)
{
d.InitNonStatic();
}
}
foreach(Planet planet in allPlanets) foreach(Planet planet in allPlanets)
{ {
planet.FinishSetup(); planet.FinishSetup();


+ 2
- 0
Assets/GWConquest/Scripts/Planet.cs View File

@ -626,6 +626,7 @@ namespace GWConquest
d.DistrictType = districtData.DistrictType; d.DistrictType = districtData.DistrictType;
d.DistrictName = districtData.Name; d.DistrictName = districtData.Name;
d.DistrictLevel = districtData.Rating; d.DistrictLevel = districtData.Rating;
d.DistrictStatic = true;
UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(d); UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(d);
@ -691,6 +692,7 @@ namespace GWConquest
d.DistrictType = DistrictType.SpaceStation; d.DistrictType = DistrictType.SpaceStation;
d.DistrictName = planetName + " Station"; d.DistrictName = planetName + " Station";
d.DistrictLevel = data.ShipyardRating; d.DistrictLevel = data.ShipyardRating;
d.DistrictStatic = true;
UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(d); UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(d);
} }


+ 29
- 0
Assets/GWConquest/Scripts/PlanetPlacement.cs View File

@ -217,12 +217,41 @@ namespace GWConquest
var district = go.GetComponent<District>(); var district = go.GetComponent<District>();
district.DistrictType = type; district.DistrictType = type;
district.DistrictLevel = Random.Range(0, 2);
var alreadyPresentNames = planet.GetComponentsInChildren<District>().Select(d => d.DistrictName);
for(int i = 0; i < PlanetRegistry.CivilNames.Length; i++)
{
string nameCandidate;
if(type == DistrictType.Civil)
{
nameCandidate = planet.State.PlanetName + " " + PlanetRegistry.CivilNames[i];
}
else
{
nameCandidate = type == DistrictType.Food ? "Agri-District" : "Factory Complex";
if(i > 0)
{
nameCandidate += " " + PlanetRegistry.DistrictNames[i];
}
}
if(!alreadyPresentNames.Contains(nameCandidate))
{
district.DistrictName = nameCandidate;
break;
}
}
go.name = district.DistrictName;
var zone = go.GetComponent<Zone>(); var zone = go.GetComponent<Zone>();
zone.SetZoneId(nextZoneId); zone.SetZoneId(nextZoneId);
zone.zoneType = ZoneType.Ground; zone.zoneType = ZoneType.Ground;
nextZoneId++; nextZoneId++;
district.Planet = planet;
district.InitNonStatic();
} }
public void SpawnAsteroids(Planet planet) public void SpawnAsteroids(Planet planet)


+ 2
- 2
Assets/GWConquest/Scripts/PlanetRegistry.cs View File

@ -29,8 +29,8 @@ namespace GWConquest
public class PlanetRegistry public class PlanetRegistry
{ {
private static string[] CivilNames = new string[] { "Prime", "Secundi", "Tri", "For" };
private static string[] DistrictNames = new string[] { "I", "II", "III", "IV" };
public static string[] CivilNames = new string[] { "Prime", "Secundi", "Tri", "For" };
public static string[] DistrictNames = new string[] { "I", "II", "III", "IV" };
private static Dictionary<string, PlanetData> planetDataMap; private static Dictionary<string, PlanetData> planetDataMap;


BIN
Assets/Photon/PhotonBolt/assemblies/bolt.user.dll View File


BIN
Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb View File


+ 101
- 0
Assets/Photon/PhotonBolt/project.json View File

@ -2329,6 +2329,107 @@
"ExtrapolationMaxFrames": 9, "ExtrapolationMaxFrames": 9,
"SnapMagnitude": 10.0 "SnapMagnitude": 10.0
} }
},
{
"Name": "Level",
"Enabled": true,
"Expanded": true,
"ReplicationMode": 1,
"Priority": 1,
"PropertyType": {
"$type": "Photon.Bolt.Compiler.PropertyTypeInteger, bolt.compiler",
"MaxValue": 255
},
"AssetSettings": {
"$type": "Photon.Bolt.Compiler.PropertyStateSettings, bolt.compiler",
"ExtrapolationErrorTolerance": 0.25,
"_ExtrapolationCorrectionFrames": 6,
"ExtrapolationMaxFrames": 9,
"SnapMagnitude": 10.0
}
},
{
"Name": "DistrictType",
"Enabled": true,
"Expanded": true,
"ReplicationMode": 1,
"Priority": 1,
"PropertyType": {
"$type": "Photon.Bolt.Compiler.PropertyTypeInteger, bolt.compiler",
"MaxValue": 255
},
"AssetSettings": {
"$type": "Photon.Bolt.Compiler.PropertyStateSettings, bolt.compiler",
"ExtrapolationErrorTolerance": 0.25,
"_ExtrapolationCorrectionFrames": 6,
"ExtrapolationMaxFrames": 9,
"SnapMagnitude": 10.0
}
},
{
"Name": "DistrictName",
"Enabled": true,
"Expanded": true,
"ReplicationMode": 1,
"Priority": 1,
"PropertyType": {
"$type": "Photon.Bolt.Compiler.PropertyTypeString, bolt.compiler",
"MaxLength": 1
},
"AssetSettings": {
"$type": "Photon.Bolt.Compiler.PropertyStateSettings, bolt.compiler",
"ExtrapolationErrorTolerance": 0.25,
"_ExtrapolationCorrectionFrames": 6,
"ExtrapolationMaxFrames": 9,
"SnapMagnitude": 10.0
}
},
{
"Name": "RelativePosition",
"Enabled": true,
"Expanded": true,
"ReplicationMode": 1,
"Priority": 1,
"PropertyType": {
"$type": "Photon.Bolt.Compiler.PropertyTypeVector, bolt.compiler",
"Selection": 14,
"Compression": [
{
"MinValue": -1024,
"MaxValue": 1024,
"Accuracy": 0.01,
"Pack": 100.0,
"Read": 0.01,
"Shift": 1024.0,
"BitsRequired": 18
},
{
"MinValue": -1024,
"MaxValue": 1024,
"Accuracy": 0.01,
"Pack": 100.0,
"Read": 0.01,
"Shift": 1024.0,
"BitsRequired": 18
},
{
"MinValue": -1024,
"MaxValue": 1024,
"Accuracy": 0.01,
"Pack": 100.0,
"Read": 0.01,
"Shift": 1024.0,
"BitsRequired": 18
}
]
},
"AssetSettings": {
"$type": "Photon.Bolt.Compiler.PropertyStateSettings, bolt.compiler",
"ExtrapolationErrorTolerance": 0.25,
"_ExtrapolationCorrectionFrames": 6,
"ExtrapolationMaxFrames": 9,
"SnapMagnitude": 10.0
}
} }
], ],
"PacketMaxBits": 512, "PacketMaxBits": 512,


+ 1
- 1
Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset View File

@ -50,7 +50,7 @@ MonoBehaviour:
debugStartPort: 54321 debugStartPort: 54321
debugBuildMode: 1 debugBuildMode: 1
debugStartMapName: GalaxyMap debugStartMapName: GalaxyMap
debugPlayAsServer: 1
debugPlayAsServer: 0
showDebugInfo: 0 showDebugInfo: 0
overrideTimeScale: 1 overrideTimeScale: 1
debugEditorMode: 1 debugEditorMode: 1


+ 2
- 2
Assets/Photon/PhotonBolt/scripts/BoltDebugStart.cs View File

@ -90,9 +90,9 @@ end tell'";
private IEnumerator DelayClientConnect() private IEnumerator DelayClientConnect()
{ {
for (int i = 0; i < 8; i++)
for (int i = 0; i < 10; i++)
{ {
BoltLog.Info("Connecting in {0} seconds...", 8 - i);
BoltLog.Info("Connecting in {0} seconds...", 10 - i);
yield return new WaitForSeconds(1); yield return new WaitForSeconds(1);
} }


Loading…
Cancel
Save