void CreateTank(Pool pool, int id, TankSetupInfo info) { pool.CreateEntity() .IsTank(true) .AddId(id) .AddColour(info.PlayerColor) .AddStartPosition(info.SpawnPoint.position) .AddStartRotation(info.SpawnPoint.rotation) .AddFireChargeSpeed((info.FireLaunchForceMax - info.FireLaunchForceMin) / info.FireLaunchTime) .AddFireChargeTime(info.FireLaunchTime) .AddFireLaunchForce(info.FireLaunchForceMin, info.FireLaunchForceMin, info.FireLaunchForceMax) .AddHealth(info.StartingHealth, info.StartingHealth) .AddMoveSpeed(info.MoveSpeed) .AddTurnSpeed(info.TurnSpeed); }
void Awake() { Pool pool = Pools.pool; rootSystems = new RootSystems(pool); pool.CreateEntity().AddCamera(Camera.main).AddGameObject(Camera.main.gameObject.transform.parent.gameObject).AddCameraSettings(CameraDampTime, CameraScreenEdgeBuffer, CameraMinSize); for (int i = 0; i < Tanks.Length; i++) { TankSetupInfo info = Tanks[i]; pool.CreateEntity().IsPlayer(true).AddId(i + 1).AddColour(info.PlayerColor).AddWins(0); CreateTank(pool, i + 1, info); } pool.CreateEntity().IsRound(true).AddRoundNumber(0).AddRoundPhase(RoundPhase.Start).AddRoundMessage(MessageText).AddRequiredToWin(NumRoundsToWin); }