public void Training() { timer += Time.deltaTime; if (timer > trainingTime) { Instantiate(unitToTrain, spawnPoint.transform.position, Quaternion.identity); timer = 0; state = BarracksState.Idle; } }
private void TransitionToBarracksState(BarracksState barracksState) { switch (barracksState) { case BarracksState.UNDER_CONSTRUCTION: SetCanAcceptResources(true); npcSpawnerBehaviour.SetSpawningEnabled(false); npcSpawnerBehaviour.ResetCooldowns(); break; case BarracksState.CONSTRUCTION_FINISHED: SetCanAcceptResources(false); npcSpawnerBehaviour.SetSpawningEnabled(true); npcSpawnerBehaviour.ResetCooldowns(); break; } barracksInfo.Send(new BarracksInfo.Update().SetBarracksState(barracksState)); }
private void SwitchToBarracksState(BarracksState barracksState) { switch (barracksState) { case BarracksState.UNDER_CONSTRUCTION: { buildingModel.SetActive(false); stockpileModel.SetActive(true); } break; case BarracksState.CONSTRUCTION_FINISHED: { buildingModel.SetActive(true); stockpileModel.SetActive(false); } break; } }
public static Entity CreateBarracksTemplate(Coordinates initialPosition, BarracksState barracksState, uint teamId) { var template = EntityBuilder.Begin() .AddPositionComponent(initialPosition.ToUnityVector(), CommonRequirementSets.PhysicsOnly) .AddMetadataComponent(SimulationSettings.BarracksPrefabName) .SetPersistence(true) .SetReadAcl(CommonRequirementSets.PhysicsOrVisual) .AddComponent(new UnityWorkerAuthorityCheck.Data(), CommonRequirementSets.PhysicsOnly) .AddComponent(new TransformComponent.Data((uint)(UnityEngine.Random.value * 360)), CommonRequirementSets.PhysicsOnly) .AddComponent(new BarracksInfo.Data(barracksState), CommonRequirementSets.PhysicsOnly) .AddComponent(new Health.Data(barracksState == BarracksState.CONSTRUCTION_FINISHED ? SimulationSettings.BarracksMaxHealth : 0, SimulationSettings.BarracksMaxHealth, true), CommonRequirementSets.PhysicsOnly) .AddComponent(new Flammable.Data(false, false, FireEffectType.BIG), CommonRequirementSets.PhysicsOnly) .AddComponent(new StockpileDepository.Data(barracksState == BarracksState.UNDER_CONSTRUCTION), CommonRequirementSets.PhysicsOnly) .AddComponent(new NPCSpawner.Data(barracksState == BarracksState.CONSTRUCTION_FINISHED, new Map <NPCRole, float> { { NPCRole.LUMBERJACK, SimulationSettings.LumberjackSpawningCooldown }, { NPCRole.WIZARD, SimulationSettings.WizardSpawningCooldown } }), CommonRequirementSets.PhysicsOnly) .AddComponent(new TeamAssignment.Data(teamId), CommonRequirementSets.PhysicsOnly) .Build(); return(template); }
public static SnapshotEntity CreateBarracksTemplate(Coordinates initialPosition, BarracksState barracksState, uint teamId) { var template = new SnapshotEntity { Prefab = SimulationSettings.BarracksPrefabName }; template.Add(new FSimAuthorityCheck.Data()); template.Add(new TransformComponent.Data(initialPosition, (uint)(UnityEngine.Random.value * 360))); template.Add(new BarracksInfo.Data(barracksState)); template.Add(new Health.Data(barracksState == BarracksState.CONSTRUCTION_FINISHED ? SimulationSettings.BarracksMaxHealth : 0, SimulationSettings.BarracksMaxHealth, true)); template.Add(new Flammable.Data(false, false, FireEffectType.BIG)); template.Add(new StockpileDepository.Data(barracksState == BarracksState.UNDER_CONSTRUCTION)); template.Add(new NPCSpawner.Data(barracksState == BarracksState.CONSTRUCTION_FINISHED, new Map <NPCRole, float> { { NPCRole.LUMBERJACK, 0f }, { NPCRole.WIZARD, 0f } })); template.Add(new TeamAssignment.Data(teamId)); var permissions = Acl.Build() .SetReadAccess(CommonPredicates.PhysicsOrVisual) .SetWriteAccess <FSimAuthorityCheck>(CommonPredicates.PhysicsOnly) .SetWriteAccess <TransformComponent>(CommonPredicates.PhysicsOnly) .SetWriteAccess <Flammable>(CommonPredicates.PhysicsOnly) .SetWriteAccess <BarracksInfo>(CommonPredicates.PhysicsOnly) .SetWriteAccess <Health>(CommonPredicates.PhysicsOnly) .SetWriteAccess <Flammable>(CommonPredicates.PhysicsOnly) .SetWriteAccess <StockpileDepository>(CommonPredicates.PhysicsOnly) .SetWriteAccess <NPCSpawner>(CommonPredicates.PhysicsOnly) .SetWriteAccess <TeamAssignment>(CommonPredicates.PhysicsOnly) .SetWriteAccess <Flammable>(CommonPredicates.PhysicsOnly); template.SetAcl(permissions); return(template); }
public void TrainKnight() { unitToTrain = knight; trainingTime = knightTrainTime; state = BarracksState.Training; }
public void TrainArcher() { unitToTrain = archer; trainingTime = archerTrainTIme; state = BarracksState.Training; }
private void SetBarracksTag(BarracksState barracksState) { gameObject.tag = barracksStateToTag[barracksState]; }