Monopoly app bouwen in Salesforce – deel 14: Huizen kopen invoegen in de hoofdflow

In de vrij lange vorige aflevering hebben we de flow gebouwd waarmee spelers huizen en hotels kunnen kopen. In deze aflevering zorgen we dat spelers op het juiste moment in hun beurt de mogelijkheid krijgen op huizen te kopen.

De korte versie is eigenlijk gewoon dat de subflow voor het kopen van huizen hier tussen moet.

Maar dan zou het wel een heel kort blog worden, dus laten we het hebben over wat er ook op die plek in de flow geregeld moet worden.

Wanneer de speler aangekomen is op een nieuwe plek, moeten er verschillende subflows uitgevoerd worden. Als eerste moet er in elk geval gecheckt worden:

  • Of er een Regel uitgevoerd moet worden
  • Of de speler huur moet betalen
  • Of de speler de Asset van dat vakje mag en wil kopen

Voor de eerste twee is de keuze niet aan de speler, dus is het logisch om die twee als eerste te behandelen. Het aankopen van een Asset is wel een keuze voor de speler zelf om het wel of niet te doen. Het kopen van extra huizen is dat ook. Omdat je misschien ook wel huizen op de net nieuw aangekochte straat wilt plaatsen, zal het aankopen van huizen ná het aankopen van straten komen.

Dit moet op beide plaatsen, na een dubbele worp en na een niet-dubbele worp. Zo ziet de SCR – Roll and Move flow er nu uit.

In alle drie deze subflows kan de speler geld uitgeven. Soms moet dit zelfs, ook al heeft de speler daarvoor niet voldoende Cash Balance.

In dat geval, zal de speler moeten zorgen voor voldoende geld, door huizen of straten te verkopen of door een hypotheek te nemen op straten. Hiervoor gaan we de volgende keer de flow bouwen. Nu bouwen we wel alvast de beslissing in waarmee we bepalen of de speler langs die flow moet worden geleid. Deze komt ná de uitgaven waar de speler niet voor kan kiezen en vóór het kopen van huizen.

Om zeker te weten dat de hoofdflow inderdaad de actuele Cash Balance van de Player heeft, moeten we zorgen dat deze Flows hun bijgewerkte data op de inputPlayer record terugcommuniceren aan de hoofdflow. Hierom passen we in alle drie de flows de inputPlayer variabele aan om ook als output variabele te gelden.

In de subflow elementen binnen SCR – Roll and Move wijzen we de output variabele uit de subflow weer toe aan recordId, de variabele die in deze hoofdflow de speler vertegenwoordigt.

De volgorde van de elementen ziet er nu zo uit:

Ditzelfde doen we ook waar de speler bij een niet-dubbele worp uitkomt. Onder het N pad van deze beslissing gaan we volgende keer de flow invoegen waarin de speler huizen of straten kan verkopen.