public void ProgressRound(BuildingBlueprintSingle builtBuilding) { Income.Value = Income.Value + builtBuilding.IncomeGenerated; CurrentMoney.Value = CurrentMoney.Value + Income.Value; TurnsTaken.Value = TurnsTaken.Value + 1; ChooseBlueprint( ); }
void ChooseBlueprint( ) { List <ProportionValue <BuildingBlueprintSingle> > values = new List <ProportionValue <BuildingBlueprintSingle> >( ); for (int i = 0; i < Candidates.Count; i++) { values.Add(ProportionValue.Create(Candidates[i].ChanceToChoose, Candidates[i])); } CurrentBlueprint = values.ChooseByRandom( ); NewBlueprint?.Invoke(CurrentBlueprint); }
public void CreateBuildingAtLocationSingle(GridPos buildLoc, BuildingBlueprintSingle buildingBlueprint) { var prefab = container.InstantiatePrefab(buildingBlueprint.BuildingPrefab); prefab.transform.SetParent(null); prefab.transform.position = buildLoc.pos; prefab.transform.rotation = Quaternion.identity; foreach (var blueprintLocs in buildingBlueprint.Positions) { var col = container.InstantiatePrefab(colliderBlock); var gridobj = col.GetComponentInChildren <GridObject>( ); gridobj.gridPos = buildLoc + blueprintLocs; col.transform.SetParent(prefab.transform); col.transform.position = gridobj.gridPos.pos; world.AddObjectToBuilt(gridobj); } }
void InstanceNewModel(BuildingBlueprintSingle newBlueprint) { if (gameobjectInstance != null) { Destroy(gameobjectInstance); } if (newBlueprint.BuildingPrefab != null) { gameobjectInstance = Instantiate(newBlueprint.BuildingPrefab); var renderers = gameobjectInstance.GetComponentsInChildren <MeshRenderer>( ); foreach (var meshRenderer in renderers) { var mats = meshRenderer.materials; for (int i = 0; i < mats.Length; i++) { meshRenderer.materials[i] = Ghostmat; } } } UpdateGhostPreview( ); }