Beispiel #1
0
    /// <summary>
    /// Affects all competences to the slots
    /// </summary>
    /// <param name="equipmentSet"></param>
    public void ComposeCompetenceSet(EquipmentsSet equipmentSet)
    {
        if (equipmentSet.GetHullEquipment != null)
        {
            if (equipmentSet.GetHullEquipment.GetPrimaryComp != null)
            {
                hullCompetence = ScriptableObject.Instantiate(equipmentSet.GetHullEquipment.GetPrimaryComp);
                hullCompetence.LinkEquipment(equipmentSet.GetHullEquipment);
            }
        }

        if (equipmentSet.GetMainWeaponEquipment != null)
        {
            if (equipmentSet.GetMainWeaponEquipment.GetPrimaryComp != null)
            {
                mainWeaponPrimaryCompetence = ScriptableObject.Instantiate(equipmentSet.GetMainWeaponEquipment.GetPrimaryComp);
                mainWeaponPrimaryCompetence.LinkEquipment(equipmentSet.GetMainWeaponEquipment);
            }
        }

        if (equipmentSet.GetSecondaryWeaponEquipment != null)
        {
            if (equipmentSet.GetSecondaryWeaponEquipment.GetPrimaryComp != null)
            {
                secondaryWeaponCompetence = ScriptableObject.Instantiate(equipmentSet.GetSecondaryWeaponEquipment.GetPrimaryComp);
                secondaryWeaponCompetence.LinkEquipment(equipmentSet.GetSecondaryWeaponEquipment);
            }
        }
    }
Beispiel #2
0
    public void UpdatePlayerEquipments()
    {
        EquipmentsSet equipmentsSet = shipCompositionManager.ComposeEquipmentSet();

        IntersceneManager.intersceneManager.SetPlayerDatas(equipmentsSet);
        EquipmentsSet set = IntersceneManager.intersceneManager.GetPlayerDatas.GetPlayerEquipedEquipments;

        playerShip.EqpmntManager.SetUpEquipments(set);

        playerShip.PlrInterface.UpdateEquipments(playerShip, playerShip.EqpmntManager.EquipedEquipments);
    }
    public void UpdateEquipments(Ship relatedShip, EquipmentsSet equipments)
    {
        CompetenceSet competenceSet = new CompetenceSet();

        competenceSet.ComposeCompetenceSet(equipments);

        hullMainCompSlot.SetUp(competenceSet.HullCompetence, relatedShip);
        mainWeaponPrimaryCompSlot.SetUp(competenceSet.MainWeaponPrimaryCompetence, relatedShip);
        secondaryWeaponCompSlot.SetUp(competenceSet.SecondaryWeaponCompetence, relatedShip);

        //ChangeCompetencesAvailability(CompetencesUsabilityType.All);
    }
    public static void SavePlayerEquipmentsDatas(EquipmentsSet equipmentSet, List <ShipEquipment> inventoryEquipments, int armorAmount, int goldAmount)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/playerEquipments.data";
        FileStream      stream    = new FileStream(path, FileMode.Create);

        PlayerEquipmentsDatas data = new PlayerEquipmentsDatas();

        data.SetPlayerEquipmentsData(equipmentSet, inventoryEquipments, armorAmount, goldAmount);

        formatter.Serialize(stream, data);
        stream.Close();
    }
    public void SetPlayerEquipmentsData(EquipmentsSet equipedEquipments, List <ShipEquipment> inventoryEquipments, int armorAmount, int goldAmount)
    {
        PlayerInventory playerInventory = new PlayerInventory(inventoryEquipments);

        #region Set
        List <int> playerEquipedEquipmentsIndexes = new List <int>();
        if (equipedEquipments.GetHullEquipment != null)
        {
            playerEquipedEquipmentsIndexes.Add(equipedEquipments.GetHullEquipment.GetEquipmentSaveIndex);
        }
        else
        {
            playerEquipedEquipmentsIndexes.Add(-1);
        }

        if (equipedEquipments.GetMainWeaponEquipment != null)
        {
            playerEquipedEquipmentsIndexes.Add(equipedEquipments.GetMainWeaponEquipment.GetEquipmentSaveIndex);
        }
        else
        {
            playerEquipedEquipmentsIndexes.Add(-1);
        }

        if (equipedEquipments.GetSecondaryWeaponEquipment != null)
        {
            playerEquipedEquipmentsIndexes.Add(equipedEquipments.GetSecondaryWeaponEquipment.GetEquipmentSaveIndex);
        }
        else
        {
            playerEquipedEquipmentsIndexes.Add(-1);
        }

        playerEquipedEquipments = Serializations.SerializeListOfInt(playerEquipedEquipmentsIndexes);
        #endregion

        #region Inventory
        List <int> playerInventoryEquipmentsIndexes = new List <int>();

        foreach (ShipEquipment equip in inventoryEquipments)
        {
            playerInventoryEquipmentsIndexes.Add(equip.GetEquipmentSaveIndex);
        }

        playerInventoryEquipments = Serializations.SerializeListOfInt(playerInventoryEquipmentsIndexes);
        #endregion

        playerArmorAmout = armorAmount;

        playerGoldAmount = goldAmount;
    }
    public void SetUp(Ship relatedShip, EquipmentsSet equipments)
    {
        CompetenceSet competenceSet = new CompetenceSet();

        competenceSet.ComposeCompetenceSet(equipments);

        hullMainCompSlot.SetUp(competenceSet.HullCompetence, relatedShip);
        mainWeaponPrimaryCompSlot.SetUp(competenceSet.MainWeaponPrimaryCompetence, relatedShip);
        secondaryWeaponCompSlot.SetUp(competenceSet.SecondaryWeaponCompetence, relatedShip);

        uiElementsInteractionsManager.SetUp();

        blindingMaskClearColor   = blindingMaskMaxColor;
        blindingMaskClearColor.a = 0;
        blindingMask.color       = blindingMaskClearColor;
    }
Beispiel #7
0
    public void StartLaunchArena()
    {
        if (loadingArena)
        {
            return;
        }

        mapManager.SavePlayerDatas();

        MapArenaSpot arenaSpot = mapManager.GetOpenedSpecialPlace as MapArenaSpot;

        if (arenaSpot == null)
        {
            return;
        }

        EquipmentsSet equipmentsSet = mapManager.ShipCompoManager.ComposeEquipmentSet();

        if (equipmentsSet.GetHullEquipment == null)
        {
            Debug.LogWarning("Attention : il n'y a aucune coque sur ce bateau. Impossible de lancer le jeu.");
            return;
        }
        else
        {
            IntersceneManager.intersceneManager.SetPlayerDatas(equipmentsSet);
        }

        ArenaParameters launchedArenaParameters = arenaSpot.GetArenaParameters;
        string          arenaBuildName          = launchedArenaParameters.GetSceneToLoadName;

        try
        {
            IntersceneManager.intersceneManager.MapInterscInformations.SetMapIntersceneInfos(SceneManager.GetActiveScene().name, GameManager.gameManager.Player.transform.position, launchedArenaParameters.GetSpecialSceneToLoadAfterSuccesName);
            IntersceneManager.intersceneManager.ArenaInterscInformations.SetArenaLaunchInformations(launchedArenaParameters);

            //SceneManager.LoadSceneAsync(arenaBuildName);
            sceneToLoad  = arenaBuildName;
            loadingArena = true;
            GameManager.gameManager.LoadScreenManager.StartEndLoad(LaunchArena);
        }
        catch
        {
            Debug.LogWarning("Cette scene n'existe pas ou n'as pas été ajoutée à la liste des scenes buildées");
        }
    }
 public void Reinitialize()
 {
     playerGoldAmount        = 0;
     playerCurrentArmorValue = 0;
     playerEquipedEquipments = new EquipmentsSet();
 }
 public void SetEquipedEquipements(EquipmentsSet equipedEquipments)
 {
     playerEquipedEquipments = equipedEquipments;
 }
Beispiel #10
0
 public void SetPlayerEquipmentsSet(EquipmentsSet set)
 {
     compositionInterface.SetEquipmentSet(set);
 }
Beispiel #11
0
    public void SetUpProjectilesPooling()
    {
        if (enemySpawningManager == null)
        {
            gameManager.PoolManager.GenerateProjectilePoolDisctionary();
            return;
        }

        List <ProjectilePoolTag> allProjectilesUsed = new List <ProjectilePoolTag>();

        #region Spawning
        List <EnemyShipPoolTag> allUsedEnemies = enemySpawningManager.GetAllUsedEnemiesTags;
        foreach (EnemyShipPoolTag enemyTag in allUsedEnemies)
        {
            EnemyShip ship = gameManager.PoolManager.GetEnemyShip(enemyTag, PoolInteractionType.PeekPrefab);

            if (ship == null)
            {
                break;
            }

            ProjectilePoolTag usedProj = ship.GetUsedProjectileTag;
            if (!allProjectilesUsed.Contains(usedProj))
            {
                allProjectilesUsed.Add(usedProj);
            }
        }
        #endregion

        #region Already Placed
        if (alreadyPlacedEnemies != null)
        {
            foreach (EnemyShip ship in alreadyPlacedEnemies)
            {
                ProjectilePoolTag projTag = ship.GetUsedProjectileTag;
                if (!allProjectilesUsed.Contains(projTag))
                {
                    allProjectilesUsed.Add(projTag);
                }
            }
        }
        #endregion

        #region Player
        EquipmentsSet playerEquipments = gameManager.Player.EqpmntManager.EquipedEquipments;

        ShipEquipment hullEquipment = playerEquipments.GetHullEquipment;
        if (hullEquipment != null)
        {
            CompetenceShoot canonShoot = hullEquipment.GetPrimaryComp as CompetenceShoot;
            if (canonShoot != null)
            {
                if (!allProjectilesUsed.Contains(canonShoot.GetUsedProjectilePoolTag))
                {
                    allProjectilesUsed.Add(canonShoot.GetUsedProjectilePoolTag);
                }
            }
        }

        ShipEquipment canonEquipment = playerEquipments.GetMainWeaponEquipment;
        if (canonEquipment != null)
        {
            CompetenceShoot canonShoot = canonEquipment.GetPrimaryComp as CompetenceShoot;
            if (canonShoot != null)
            {
                if (!allProjectilesUsed.Contains(canonShoot.GetUsedProjectilePoolTag))
                {
                    allProjectilesUsed.Add(canonShoot.GetUsedProjectilePoolTag);
                }
            }
        }

        ShipEquipment catapultEquipment = playerEquipments.GetSecondaryWeaponEquipment;
        if (catapultEquipment != null)
        {
            CompetenceShoot catapultShoot = catapultEquipment.GetPrimaryComp as CompetenceShoot;
            if (catapultShoot != null)
            {
                if (!allProjectilesUsed.Contains(catapultShoot.GetUsedProjectilePoolTag))
                {
                    allProjectilesUsed.Add(catapultShoot.GetUsedProjectilePoolTag);
                }
            }
        }
        #endregion

        gameManager.PoolManager.GenerateProjectilePoolDisctionary(allProjectilesUsed);
    }
    /// <summary>
    /// Initialisation des équipements du joueur
    /// </summary>
    /// <param name="equipments">Equipements à équiper sur le joueurs</param>
    public void SetUpEquipments(EquipmentsSet equipments)
    {
        ClearInstantiatedObjects();

        ShipEquipment hullEquipmentClone = null;

        if (equipments.GetHullEquipment != null)
        {
            ShipEquipmentHull hullEquip = equipments.GetHullEquipment as ShipEquipmentHull;
            if (hullEquip == null)
            {
                Debug.LogWarning("Pas une coque : impossible d'équiper");
            }
            else
            {
                hullEquipmentClone = ScriptableObject.Instantiate(equipments.GetHullEquipment);
                List <EquipmentObject> hullEquipmentsObjects = hullEquipmentClone.InstantiateAllObjects(/*relatedShip.transform*/ equipmentObjectsParent, relatedShip);

                AddObjectsToInstantiatedObjects(hullEquipmentsObjects);
                relatedShip.PlrInterface.SetLifeBar(hullEquip.GetShipMaximumLife, Mathf.Clamp(IntersceneManager.intersceneManager.GetPlayerDatas.GetPlayerCurrentArmorValue, 0, hullEquip.GetShipMaximumArmor), hullEquip.GetShipMaximumArmor);
                relatedShip.LfManager.SetUpArmorAndLife(hullEquip.GetShipMaximumLife, Mathf.Clamp(IntersceneManager.intersceneManager.GetPlayerDatas.GetPlayerCurrentArmorValue, 0, hullEquip.GetShipMaximumArmor), hullEquip.GetShipMaximumArmor);

                if (hullEquip.GetHullPrefab != null)
                {
                    relatedShip.ShipRenderManager.InstantiateHullRenderer(hullEquip.GetHullPrefab, (equipments.GetMainWeaponEquipment != null ? equipments.GetMainWeaponEquipment.GetEquipmentInformations.GetWeaponType : WeaponInformationType.MultiCanons));
                }
                if (hullEquip.GetHullHitboxDimensions != Vector3.zero)
                {
                    relatedShip.SetShipBoxColliderDimensions(hullEquip.GetHullHitboxDimensions);
                }
            }
        }

        ShipEquipment mainWeaponEquipmentClone = null;

        if (equipments.GetMainWeaponEquipment != null)
        {
            mainWeaponEquipmentClone = ScriptableObject.Instantiate(equipments.GetMainWeaponEquipment);
            List <EquipmentObject> mainWeaponEquipmentsObjects = mainWeaponEquipmentClone.InstantiateAllObjects(/*relatedShip.transform*/ equipmentObjectsParent, relatedShip);

            AddObjectsToInstantiatedObjects(mainWeaponEquipmentsObjects);
        }

        ShipEquipment secondaryWeaponEquipmentClone = null;

        if (equipments.GetSecondaryWeaponEquipment != null)
        {
            secondaryWeaponEquipmentClone = ScriptableObject.Instantiate(equipments.GetSecondaryWeaponEquipment);
            List <EquipmentObject> secondaryWeaponEquipmentsObjects = secondaryWeaponEquipmentClone.InstantiateAllObjects(/*relatedShip.transform*/ equipmentObjectsParent, relatedShip);

            AddObjectsToInstantiatedObjects(secondaryWeaponEquipmentsObjects);
        }

        #region Composition deck/compétences
        equipedEquipments = new EquipmentsSet(hullEquipmentClone, mainWeaponEquipmentClone, secondaryWeaponEquipmentClone);

        normalEquipParentRotation = equipmentObjectsParent.localRotation.eulerAngles;
        #endregion

        #region Hull
        ShipEquipmentHull hull = hullEquipmentClone as ShipEquipmentHull;
        if (hull != null)
        {
            relatedShip.ShipMvt.AffectMovementValues(hull.GetMovementParameters);
        }
        else
        {
            Debug.LogWarning("L'équipement affecté sur l'emplacement de la coque n'est pas de type 'Hull'");
        }
        #endregion
    }
Beispiel #13
0
 public void SetEquipmentSet(EquipmentsSet set)
 {
     hullSlot.SetPlacedEquipment(set.GetHullEquipment);
     mainWeaponSlot.SetPlacedEquipment(set.GetMainWeaponEquipment);
     secondaryWeaponSlot.SetPlacedEquipment(set.GetSecondaryWeaponEquipment);
 }
 /// <summary>
 /// Utilisé pour composer les données à sauvegarder entre les différentes scènes
 /// </summary>
 /// <param name="playerEquipments">La nouvelle liste d'équipements du joueur</param>
 public void SetPlayerDatas(EquipmentsSet playerEquipedEquipments)
 {
     playerDatas.SetEquipedEquipements(playerEquipedEquipments);
 }