-
Notifications
You must be signed in to change notification settings - Fork 0
/
Building.java
43 lines (36 loc) · 1.46 KB
/
Building.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package concurent.student.first;
public class Building extends Unit {
private Building(Base owner, UnitType type){
super(owner, type);
}
public static Building createBuilding(UnitType type, Base owner){
if(type == UnitType.FARM)
return createFarm(owner);
if(type == UnitType.LUMBERMILL)
return createLumbermill(owner);
if(type == UnitType.BLACKSMITH)
return createBlacksmith(owner);
if(type == UnitType.BARRACKS)
return createBarracks(owner);
return null;
}
public static Building createFarm(Base owner){
System.out.println(owner.getName() + " is creating farm");
Building farm = new Building(owner, UnitType.FARM);
// building a farm increases the capacity
owner.getResources().farmBuilt();
return farm;
}
public static Building createLumbermill(Base owner){
System.out.println(owner.getName() + " is creating lumbermill");
return new Building(owner, UnitType.LUMBERMILL);
}
public static Building createBlacksmith(Base owner){
System.out.println(owner.getName() + " is creating blacksmith");
return new Building(owner, UnitType.BLACKSMITH);
}
public static Building createBarracks(Base owner){
System.out.println(owner.getName() + " is creating barracks");
return new Building(owner, UnitType.BARRACKS);
}
}