//-------------------------------------------------------- SetMod()
    public void SetMod(int whichOne, AbstractBodyMod newMod)
    {
        if (whichOne == 0 && newMod != null)
        {
            armOneMod.UnequipBodyMod();
            armOneMod = newMod; Debug.Log("PlayerManager -> SetMod(): Arm One Mod, " + newMod.gameObject.name);
            armOneMod.EquipBodyMod();
            armOneMod.armSide = ArmSide.ARMONE;
            PlayerPrefs.SetString("armOneMod", newMod.name);
        }
        if (whichOne == 1 && newMod != null)
        {
            armTwoMod.UnequipBodyMod();
            armTwoMod = newMod; Debug.Log("PlayerManager -> SetMod(): Arm Two Mod, " + newMod.gameObject.name);
            armTwoMod.EquipBodyMod();
            armTwoMod.armSide = ArmSide.ARMTWO;
            PlayerPrefs.SetString("armTwoMod", newMod.name);
        }
        if (whichOne == 2 && newMod != null)
        {
            legsMod.UnequipBodyMod();
            legsMod = newMod; Debug.Log("PlayerManager -> SetMod(): Legs Mod, " + newMod.gameObject.name);
            legsMod.EquipBodyMod();
            PlayerPrefs.SetString("legsMod", newMod.name);
        }

        UpdateModSprites();
    }
    //-------------------------------------------------------- UnlockBodyMod()
    public void UnlockBodyMod(AbstractBodyMod newMod)
    {
        //figure out which body mod was unlocked using the name. Otherwise it's not the instance attached to the player that is equipped.
        AbstractBodyMod myNewMod = null;

        foreach (AbstractBodyMod abm in allExistingBodyMods)
        {
            if (abm.name == newMod.name)
            {
                myNewMod = abm;
            }
        }

        if (!unlockedBodyMods.Contains(myNewMod))
        {
            unlockedBodyMods.Add(myNewMod);

            //save unlocked body mods
            foreach (AbstractBodyMod abm in unlockedBodyMods)
            {
                if (!PlayerPrefs.HasKey(abm.name))
                {
                    PlayerPrefs.SetInt(abm.name, 1);
                }
            }

            Debug.Log("PlayerManager -> Unlocked: " + myNewMod);
            playerSound.SoundPickup();

            //equip automatically if there is an empty slot
            if (myNewMod.bodyModType == BodyModType.UPPERBODY)
            {
                if (armOneMod == null)
                {
                    armOneMod = myNewMod; hud.UpdateBodyModsDisplay();
                    PlayerPrefs.SetString("armOneMod", myNewMod.name);
                }
                else if (armTwoMod == null)
                {
                    armTwoMod = myNewMod; hud.UpdateBodyModsDisplay();
                    PlayerPrefs.SetString("armTwoMod", myNewMod.name);
                }
            }
        }

        UpdateModSprites();
    }
Exemple #3
0
    private AbstractBodyMod GetDropdownBodyMod(TMP_Dropdown dropdown)
    {
        //check which option is selected in the dropdown menu and return the corresponding reference within the player
        AbstractBodyMod equippedBodyMod = null;

        if (dropdown.options[dropdown.value].text == playerManager.bm_Drill.name)
        {
            equippedBodyMod = playerManager.bm_Drill;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_Gun.name)
        {
            equippedBodyMod = playerManager.bm_Gun;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_StrongArm.name)
        {
            equippedBodyMod = playerManager.bm_StrongArm;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_Legs.name)
        {
            equippedBodyMod = playerManager.bm_Legs;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_SuperLegs.name)
        {
            equippedBodyMod = playerManager.bm_SuperLegs;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_Grapple.name)
        {
            equippedBodyMod = playerManager.bm_Grapple;
        }
        if (dropdown.options[dropdown.value].text == playerManager.bm_RocketLegs.name)
        {
            equippedBodyMod = playerManager.bm_RocketLegs;
        }

        return(equippedBodyMod);
    }
 void Start()
 {
     bodyMod = bodyModPrefab.GetComponent <AbstractBodyMod>();
 }
    //===================================================================================== START ==============================================
    void Start()
    {
        playerObject  = gameObject;
        originalScale = gameObject.transform.localScale;
        animator      = GetComponentInChildren <Animator>();
        playerSound   = GetComponentInChildren <PlayerSound>();
        origHealth    = health;

        //init lists
        interactables       = new List <GameObject>();
        allExistingBodyMods = new List <AbstractBodyMod>();
        unlockedBodyMods    = new List <AbstractBodyMod>();
        keyList             = new List <string>();

        //<------------------------- Make sure to add all Body Mods here
        allExistingBodyMods.Add(bm_Gun);
        allExistingBodyMods.Add(bm_Legs);
        allExistingBodyMods.Add(bm_StrongArm);
        allExistingBodyMods.Add(bm_Drill);
        allExistingBodyMods.Add(bm_Grapple);
        allExistingBodyMods.Add(bm_SuperLegs);
        allExistingBodyMods.Add(bm_RocketLegs);

        //equip leg mod by default
        if (!PlayerPrefs.HasKey(bm_Legs.name))
        {
            PlayerPrefs.SetInt(bm_Legs.name, 1);
            PlayerPrefs.SetString("legsMod", bm_Legs.name);
        }

        //Load unlocked body mods from saved state
        foreach (AbstractBodyMod abm in allExistingBodyMods)
        {
            if (PlayerPrefs.HasKey(abm.name))
            {
                unlockedBodyMods.Add(abm);
            }
        }

        //add legs if nothing has been collected yet
        if (unlockedBodyMods.Count == 0)
        {
            legsMod = bm_Legs; unlockedBodyMods.Add(bm_Legs); legsMod.EquipBodyMod();
        }

        //equip body mods last used
        foreach (AbstractBodyMod abm in unlockedBodyMods)
        {
            if (PlayerPrefs.HasKey("armOneMod"))
            {
                if (PlayerPrefs.GetString("armOneMod") == abm.name)
                {
                    armOneMod = abm; armOneMod.EquipBodyMod(); armOneMod.armSide = ArmSide.ARMONE;
                }
            }
        }
        foreach (AbstractBodyMod abm in unlockedBodyMods)
        {
            if (PlayerPrefs.HasKey("armTwoMod"))
            {
                if (PlayerPrefs.GetString("armTwoMod") == abm.name)
                {
                    armTwoMod = abm; armTwoMod.EquipBodyMod(); armTwoMod.armSide = ArmSide.ARMTWO;
                }
            }
        }
        foreach (AbstractBodyMod abm in unlockedBodyMods)
        {
            if (PlayerPrefs.HasKey("legsMod"))
            {
                if (PlayerPrefs.GetString("legsMod") == abm.name)
                {
                    legsMod = abm; legsMod.EquipBodyMod();
                }
            }
        }

        myPhysicsMaterial.friction = 1f;

        //load credit from saved state
        if (PlayerPrefs.HasKey("PlayerCredit"))
        {
            credit = PlayerPrefs.GetInt("PlayerCredit");
        }
        health = 100;

        hud = GameObject.Find("_HUD").GetComponent <HUD>();
        hud.InitializeHUD();

        //Set color
        eyeL = GameObject.Find("Eye L");
        eyeR = GameObject.Find("Eye R");
        if (!PlayerPrefs.HasKey("eyesChanged"))
        {
            eyeL.GetComponent <SpriteRenderer>().color = new Color(1, 1, 0);  eyeR.GetComponent <SpriteRenderer>().color = new Color(1, 1, 0);
        }
        else
        {
            eyeL.GetComponent <SpriteRenderer>().color = new Color(0, 0.75f, 1);  eyeR.GetComponent <SpriteRenderer>().color = new Color(0, 0.75f, 1);
        }

        UpdateModSprites();
    }