/// <summary> /// Using a blueprint specified by ID, returns a build request. The build request will contain the /// gameobject and sprite specified in the model. /// </summary> /// <returns>The build request.</returns> public BlueprintBuildRequest CreateBuildRequest(TechTreeUnit factoryUnit, string ID) { if (!HasBeenBuilt) { return(new BlueprintBuildRequest() { status = BuildStatus.FactoryNotBuilt }); } var bpc = GetValidBPC(ID); if (factoryUnit.Level < bpc.blueprint.requiredFactoryLevel) { return(new BlueprintBuildRequest() { status = BuildStatus.FactoryNotHighEnoughLevel }); } foreach (var p in bpc.blueprint.prerequisites) { var pc = controller.blueprints [p.blueprint.ID]; if (!pc.HasBeenBuilt) { return(new BlueprintBuildRequest() { status = BuildStatus.MissingPrerequisite, prerequisite = p }); } var requiredLevel = p.level; if (requiredLevel > 0) { var maxLevel = (from i in pc.units select i.Level).Max(); if (maxLevel < requiredLevel) { return(new BlueprintBuildRequest() { status = BuildStatus.PrerequisiteNotHighEnoughLevel, prerequisite = p }); } } } var req = new BlueprintBuildRequest() { blueprint = bpc.blueprint, percentComplete = 0 }; if (blueprint.constructTime <= 0) { blueprint.constructTime = 0.01f; } return(req); }
void Awake() { this.unit = GetComponent <TechTreeUnit> (); }