Adding concrete builders
Our next task is to create the concrete assembly instructions for each of the support ally objects we’ll be building (again, tanks and drones are presumably going to be doing all the real work in this game). Both objects have the same component categories, such as a frame, a motor, and a weapon system, but each individual component is different. We don’t want heavy tank treads on a fiberglass drone hull, right?
Add the following code to the bottom of the Builder.cs
script but outside the IBuilder
interface declaration. Here, we specify the component parts we want to be assembled into a tank and return the SupportAlly
object whenever GetAlly()
is queried:
You can create separate scripts for the concrete classes and the IBuilder
interface if you like; I’m including them together for easier reference.
…
// 1
public class TankBuilder : IBuilder
{
private SupportAlly _ally;
// 2
public TankBuilder...