private void AddVillageSprites() { var villages = parameters.parameters.villages; villages.Shuffle(); int counter = 0; bool giveSupplyRequestToVillage = true; foreach (Sector sector in generator.sectors) { Vector3 worldPos = worldPosFromNode(sector.xVillage, sector.yVillage); worldPos.z = villageZLevel; GameObject village = GameObject.Instantiate(villagePrefab, worldPos, Quaternion.identity, transform); Rect transformedSector = sector.sectorRect; var LD = worldPosFromNode((int)transformedSector.min.x, (int)transformedSector.min.y); var size = new Vector2(transformedSector.size.x * tileSize.x, transformedSector.size.y * tileSize.y); transformedSector.Set(LD.x, LD.y, size.x, size.y); TransformedSector completeTransformed = new TransformedSector(); completeTransformed.sector = transformedSector; completeTransformed.village = village; village.GetComponent <VillageScript>().initFresh(completeTransformed, worldAI, villages[counter].name, initialSoldiersPerVillage, giveSupplyRequestToVillage); giveSupplyRequestToVillage = !giveSupplyRequestToVillage; sectors.Add(completeTransformed); ++counter; if (counter >= villages.Count - 1) { counter = 0; } } }
public void initFresh(TransformedSector sector, WorldAIDirector director, string name, int soldiers, bool needsSup) { this.director = director; this.sector = sector; setBoundSoldiers(soldiers); director.addToDispatchers(gameObject); director.addToReceivers(gameObject); needSupply = needsSup; setName(name); }
public void DispatchHunters(Vector2 pos) { TransformedSector sector = gameWorld.sectorFromWorldPos(pos); var village = sector.village; var patrol = GameObject.Instantiate(patrolPrefab, village.transform.position, Quaternion.identity); patrol.GetComponent <Patrollable>().lazyInit(pos, village, village); patrol.GetComponent <Entity>().SetSoldiers((int)Mathf.Ceil(hunterModifier * village.GetComponent <VillageScript>().boundSoldiers)); patrol.GetComponent <SpriteRenderer>().sprite = patrolSprites.patrolSprite; patrol.GetComponent <Patrollable>().isHunting = true; patrol.GetComponent <Patrollable>().isEscaping = true; village.GetComponent <VillageScript>().addToReceiving(patrol); patrol.GetComponent <Patrollable>().reset(pos); patrol.GetComponent <Animator>().SetTrigger("hunt"); }