public float detectionDist; //TODO: Move this to the AI weapon system

    public virtual void Init(string objectID, BaseEntityController controller, bool weaponsActive, VesselShipStats shipStats, SceneController sceneController)
    {
        this.objectID   = objectID;
        this.controller = controller;
        this.shipStats  = shipStats;
        gameManager     = GameManager.Instance;
    }
 public void Init(StatHandler statHandler, List <IWeaponItem> weaponItems, VesselShipStats stats, WeaponInfo weaponInfo)
 {
     this.statHandler = statHandler;
     this.weaponItems = weaponItems;
     this.shipStats   = stats;
     this.weaponInfo  = weaponInfo;
     this.fireRate    = weaponInfo.weaponData.fireRate;
 }
Esempio n. 3
0
    /// <summary>
    /// Retrieves and intiialises the weapon system attached on the ship.
    /// </summary>
    void SetWeaponSystems(VesselShipStats vesselStats, SceneController sceneController)
    {
        IWeaponSystem weaponSystem;

        weaponSystem = this.GetComponent <IWeaponSystem>();
        weaponSystem.Init(GetObjectID(), this, true, vesselStats, sceneController);

        //Load weapon/damage components.
        FighterDamageManager damageSystem = this.GetComponent <FighterDamageManager>();

        damageSystem.Init(statHandler, audioSystem);
    }
        public override void Init(SpawnManager spawner, TeamColor teamColor)
        {
            base.Init(spawner, teamColor);

            GameManager     gameManager     = GameManager.Instance;
            SceneController sceneController = gameManager.sceneController;

            if (playerState == null)
            {
                playerState = this.gameObject.AddComponent <PlayerStateManager>();
            }
            audioSystem = this.GetComponent <VesselAudioSystem>();
            audioSystem.Init(EntityType.Player);
            audioSystem.PlayFlightAudio(vesselSelection);
            PlayerSettings playerSettings = gameManager.gameSettings.playerSettings;

            //Initialise Stat Handler
            GameSettings    gameSettings = gameManager.gameSettings;
            VesselShipStats vesselStats  = gameSettings.vesselStats.Where(x => x.type == vesselSelection).First();
            BaseStats       playerStats  = vesselStats.baseShipStats;

            statHandler = new StatHandler(playerStats, EntityType.Player, this);

            //Initialize Health Component
            HealthComponent healthComponent = this.GetComponent <HealthComponent>();

            healthComponent.Init(statHandler, sceneController);

            //Initialise Weapon System
            IWeaponSystem weaponSystem = this.GetComponent <IWeaponSystem>();

            weaponSystem.Init(GetObjectID(), this, false, vesselStats, sceneController);

            //Initializes the player's camera system
            cameraController = this.GetComponent <CameraController>();
            cameraController.Init(virtualCamera, vesselSelection);

            //Load weapon/damage components.
            FighterDamageManager damageManager = this.GetComponent <FighterDamageManager>();

            damageManager.Init(statHandler, audioSystem);

            //Load Movement Manager
            MovementRegister movementRegister = this.GetComponent <MovementRegister>();

            Debug.Log(movementRegister);
            movementRegister.Init(this, cameraController);

            SetInitalState();
        }
Esempio n. 5
0
    public override void Init(SpawnManager spawner, TeamColor team)
    {
        base.Init(spawner, team);
        this.spawner   = spawner;
        this.teamColor = team;

        //Get singleton controllers
        GameManager     gameaManager    = GameManager.Instance;
        GameSettings    gameSettings    = GameManager.Instance.gameSettings;
        SceneController sceneController = gameaManager.sceneController;

        if (enemyState == null)
        {
            enemyState = this.gameObject.AddComponent <AIStateManager>();
        }
        avoidanceSystem = this.GetComponent <AvoidanceSystem>();

        //Initialise audio system
        audioSystem = this.GetComponent <VesselAudioSystem>();
        audioSystem.Init(EntityType.AiComputer);

        //Initialise Stat Handler
        VesselShipStats vesselStats = gameSettings.vesselStats.Where(x => x.type == vesselSelection).First();
        BaseStats       enemyStats  = vesselStats.baseShipStats;

        statHandler = new StatHandler(enemyStats, EntityType.AiComputer, this);

        //Initialises the movement systems
        AIMovementController movementController = this.GetComponent <AIMovementController>();

        movementController.Init(vesselStats);

        // Initialise health system
        AIHealthSystem healthSystem = this.GetComponent <AIHealthSystem>();

        healthSystem.Init(statHandler);

        //Set weapon systems and state
        SetWeaponSystems(vesselStats, sceneController);
        SetState <AIPursuit>();

        //Returns pointer UI
        attachedPointer = GameManager.Instance.sceneController.dynamicHud.pointerManagerUI.CreateNewPointer(gameObject.transform, vesselStats.speed);
    }
Esempio n. 6
0
    public override void BeginState()
    {
        controller = this.GetComponent <BaseEntityController>();
        controller.OnEntityDeath();

        GameSettings    gameSettings = GameManager.Instance.gameSettings;
        VesselShipStats vesselStats  = gameSettings.vesselStats.Where(x => x.type == controller.vesselSelection).First();

        shipSpeed = vesselStats.speed;

        entityRB = this.GetComponent <Rigidbody>();
        //entityRB.isKinematic = true;
        RigidbodyConstraints deathConstraints = RigidbodyConstraints.None;

        entityRB.constraints = deathConstraints;
        Invoke("Explode", 2f);

        deathSelection = (DeathTypes)Random.Range(0, 3);
    }
        /// <summary>
        /// Initialises the movemovent controller for player movement and necessary references.
        /// </summary>
        public void Init(PlayerController controller, CameraController cameraControl)
        {
            this.playerController = controller;
            this.cameraController = cameraControl;

            GameManager gameManager = GameManager.Instance;

            //Load shipstates.
            GameSettings gameSettings = gameManager.gameSettings;

            settings = gameSettings.playerSettings;
            VesselShipStats shipStats = gameSettings.vesselStats.Where(x => x.type.Equals(controller.vesselSelection)).First();

            _speed = shipStats.speed;

            //Load Input Controllers
            ThrustUI thrustUI = gameManager.sceneController.dynamicHud.thrustUI;

            movementController = new InputMovementSystem(this, shipStats, thrustUI);
            rotationController = new InputRotationController();

            movementController.OnShipThrust.AddListener(playerController.audioSystem.CalculateThrustSound);
            movementController.OnShipThrust.AddListener(playerController.audioSystem.CalculateEngineTempo);
        }
Esempio n. 8
0
        public override void Init(string objectID, BaseEntityController controller, bool weaponsActive, VesselShipStats shipStats, SceneController sceneController)
        {
            base.Init(objectID, controller, weaponsActive, shipStats, sceneController);

            //Create the aim assist object
            aimAssist = new AimAssist();
            aimAssist.Init(this, sceneController.dynamicHud.aimSightUI);

            SetupWeapons();
        }
 /// <summary>
 /// Constructor for initialising important movement variables for calculation
 /// </summary>
 public InputMovementSystem(IMovementController controller, VesselShipStats shipStats, ThrustUI thrustUI)
 {
     this.movementController = controller;
     this.shipStats          = shipStats;
     this.OnShipThrust.AddListener(thrustUI.SetThrustLevel);
 }
Esempio n. 10
0
 public void Init(VesselShipStats shipStats)
 {
     this.shipStats = shipStats;
 }
Esempio n. 11
0
    public override void Init(string objectID, BaseEntityController controller, bool weaponsActive, VesselShipStats shipStats, SceneController sceneController)
    {
        base.Init(objectID, controller, weaponsActive, shipStats, sceneController);

        //  Retrieves interface for the target finder
        targetFinder = this.GetComponent <ITargetFinder>();

        //  creates new target checker for relative direction check
        targetChecker = new TargetDirectionCheck();
    }
Esempio n. 12
0
    //AimAssist aimAssist;

    public override void Init(string objectID, BaseEntityController controller, bool weaponsActive, VesselShipStats shipStats, SceneController sceneController)
    {
        base.Init(objectID, controller, weaponsActive, shipStats, sceneController);
        aimAssist = new AimAssist();
        aimAssist.Init(this, sceneController.dynamicHud.aimSightUI);

        targetChecker = new TargetDirectionCheck();
        //shipTransforms = this.GetComponent<VesselTransforms>();
        detectionDist = shipStats.maxProximityDist / 3;

        SetupWeapons();
    }