private void SpawnHousesWithinCity(int numberOfHouses) { Grid grid = FindObjectOfType <Grid>(); float gridUnit = grid.cellSize.x; for (int i = 0; i < numberOfHouses; i++) { Vector3 actualPos = Vector3.zero; int attempts = 0; do { Vector3 gridSnappedPos = Vector3.zero; Vector2 pos = UnityEngine.Random.insideUnitCircle * CityRadius; Vector3 pos3 = pos; gridSnappedPos = new Vector3(Mathf.Round(pos.x / gridUnit), Mathf.Round(pos.y / gridUnit), 0); Vector3 halfStep = (new Vector3(1, 1, 0)) * gridUnit / 2f; actualPos = transform.position + gridSnappedPos + halfStep; attempts++; if (attempts > 10) { break; } }while (!(IsTestLocationValid_NavMesh(actualPos) & IsTestLocationValid_Physics(actualPos))); GameObject newHouse = Instantiate(housePrefab, actualPos, housePrefab.transform.rotation) as GameObject; Building house = newHouse.GetComponent <Building>(); house.am = am; house.SetHouseIFFAllegiance(iff.GetIFFAllegiance()); //house.InitializeBuilding(); house.SetOwningCity(this); NetworkServer.Spawn(newHouse); hic.Add(house); } }
private void OnTriggerEnter2D(Collider2D collision) { if (cs.IsRunningOnServer) { int collisionIFF = collision.GetComponent <IFF>().GetIFFAllegiance(); int ownIFF = iff.GetIFFAllegiance(); if (collisionIFF == ownIFF) { return; } cityToCapture = collision.GetComponent <CitySquare>(); } }
private void EvaluateDetectedObject(GameObject go) { Debug.Log("Evaluating detected object " + go.name); IFF goIFF; if (go.TryGetComponent <IFF>(out goIFF) && go.GetComponent <ControlSource>() != null) { int targetIFF = goIFF.GetIFFAllegiance(); if (targetIFF != ownIFF.GetIFFAllegiance()) { targets.Add(go); } } }
void Start() { am = FindObjectOfType <AllegianceManager>(); iff = transform.root.GetComponentInChildren <IFF>(); am.AddFactionLeaderToList(iff.GetIFFAllegiance(), this); //Debug.Log(gameObject.name + " attempted to add an FL for allegiance: " + iff.GetIFFAllegiance()); }
void Start() { am = FindObjectOfType <AllegianceManager>(); sr = GetComponent <SpriteRenderer>(); SelectCityName(); SpawnHousesWithinCity(numberOfHousesToSpawn); ConvertHousesToTurrets(); SetAllegianceForBuildingsInCity(iff.GetIFFAllegiance()); }
public void FadeOrTurnInvisible() { if (iff.GetIFFAllegiance() == am.GetPlayerIFF()) { SlightlyFadeOutForPlayerUnit(); } else { MakeObjectInvisible(); } }
public void FindCurrentOwner() { owner = am.GetFactionLeader(iff.GetIFFAllegiance()).gameObject; }
private void ScanForTarget() { timeSinceLastScan -= Time.deltaTime; if (timeSinceLastScan <= 0) { target = ut.FindClosestTargetWithinSearchRange(gameObject, searchRange, ownIFF.GetIFFAllegiance()); timeSinceLastScan = timeBetweenScans; } }