//-------------------------------------------------------- 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(); }
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(); }