// Moves a crewmember at the appropriate location and gives a reference to the room's script private void AssignToRoom(GameObject cm, CrewMember cs, bool isSpec) { switch (cm.GetComponent <CrewMember>().role) { case "Quartermaster": cm.transform.position = new Vector3(storage.transform.position.x + 0.25f, storage.transform.position.y + 0.45f, storage.transform.position.z - 1); Storage st = storage.GetComponent <Storage>(); cs.assignedRoom = st; if (isSpec) { st.hasSpecialist = true; } break; case "Cook": cm.transform.position = new Vector3(galley.transform.position.x, galley.transform.position.y + 0.45f, galley.transform.position.z - 1); Galley gal = galley.GetComponent <Galley>(); cs.assignedRoom = gal; if (isSpec) { gal.hasSpecialist = true; } break; case "Engineer": cm.transform.position = new Vector3(engineRoom.transform.position.x, engineRoom.transform.position.y + 0.45f, engineRoom.transform.position.z - 1); EngineRoom er = engineRoom.GetComponent <EngineRoom>(); cs.assignedRoom = er; if (isSpec) { er.hasSpecialist = true; } break; case "Gunner": cm.transform.position = new Vector3(weaponsStation.transform.position.x, weaponsStation.transform.position.y + 0.45f, weaponsStation.transform.position.z - 1); WeaponStations ws = weaponsStation.GetComponent <WeaponStations>(); cs.assignedRoom = ws; if (isSpec) { ws.hasSpecialist = true; } break; case "Loader": cm.transform.position = new Vector3(magazine.transform.position.x, magazine.transform.position.y + 0.45f, magazine.transform.position.z - 1); Magazine mg = magazine.GetComponent <Magazine>(); cs.assignedRoom = mg; if (isSpec) { mg.hasSpecialist = true; } break; } }
/// <summary> /// Initializes a new instance of the <see cref="ShipHelm" /> class. /// </summary> /// <param name="ship">The ship.</param> /// <param name="shipRigidbody">The ship rigidbody.</param> internal ShipHelm(ShipItem ship, Rigidbody shipRigidbody) { ApCourse = new List<IShipNavigable>(); //_gameMgr = GameManager.Instance; _gameTime = GameTime.Instance; _jobMgr = JobManager.Instance; _ship = ship; _shipData = ship.Data; _engineRoom = new EngineRoom(ship, shipRigidbody); Subscribe(); }
/// <summary> /// Initializes a new instance of the <see cref="Helm" /> class. /// </summary> /// <param name="ship">The ship.</param> public Helm(IShipModel ship) { _ship = ship; _data = ship.Data; _rigidbody = ship.Transform.rigidbody; _gameTime = GameTime.Instance; _gameSpeedMultiplier = _gameTime.GameSpeed.SpeedMultiplier(); // FIXME where/when to get initial GameSpeed before first GameSpeed change? _gameStatus = GameStatus.Instance; _engineRoom = new EngineRoom(_data, _rigidbody); AssessFrequencyOfCourseProgressChecks(); Subscribe(); }
/// <summary> /// Initializes a new instance of the <see cref="ShipHelm" /> class. /// </summary> /// <param name="ship">The ship.</param> public ShipHelm(ShipModel ship) { _ship = ship; _gameTime = GameTime.Instance; _gameSpeedMultiplier = _gameTime.GameSpeed.SpeedMultiplier(); // FIXME where/when to get initial GameSpeed before first GameSpeed change? _engineRoom = new EngineRoom(_ship); Subscribe(); }