Example #1
0
    // 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;
        }
    }
Example #2
0
        /// <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();
        }
Example #3
0
 /// <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();
 }
Example #4
0
 /// <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();
 }