Rocket individual upgrades
This commit is contained in:
@@ -8,55 +8,133 @@ public class RocketUpgradePanel : MonoBehaviour
|
||||
public TMP_Text txtEnergyGain;
|
||||
public TMP_Text txtSpeed;
|
||||
public TMP_Text txtBoostConsumption;
|
||||
public TMP_Text txtLevel;
|
||||
public TMP_Text txtCostGold;
|
||||
public TMP_Text txtCostMetal;
|
||||
|
||||
public Button btn_upgrade;
|
||||
RocketLevel CurrentLevel,NextLevel;
|
||||
SkinShopItemData selectedRocket;
|
||||
public Button btn_upgrade_speed;
|
||||
public Button btn_upgrade_energy;
|
||||
public Button btn_upgrade_boost;
|
||||
|
||||
public bool Affordable => DBmanager.Metal >= NextLevel.metalCost && DBmanager.Coins >= NextLevel.goldCost;
|
||||
// RocketLevel CurrentLevel,NextLevel;
|
||||
|
||||
string selectedRocket;
|
||||
|
||||
// public bool Affordable => DBmanager.Metal >= NextLevel.metalCost && DBmanager.Coins >= NextLevel.goldCost;
|
||||
|
||||
void Awake(){
|
||||
btn_upgrade.onClick.AddListener(OnUpgrade);
|
||||
btn_upgrade_speed.onClick.AddListener(OnUpgradeSpeed);
|
||||
btn_upgrade_energy.onClick.AddListener(OnUpgradeEnergy);
|
||||
btn_upgrade_boost.onClick.AddListener(OnUpgradeBoost);
|
||||
|
||||
}
|
||||
public void Show(RocketLevel currentLevel, RocketLevel nextLevel, SkinShopItemData rocketData){
|
||||
CurrentLevel = currentLevel;
|
||||
NextLevel = nextLevel;
|
||||
selectedRocket = rocketData;
|
||||
txtLevel.text = "Level " +currentLevel.Level;
|
||||
txtEnergyGain.text = $"{currentLevel.moonMultiplier} Per moon";
|
||||
txtSpeed.text = $"{currentLevel.speedMultiplier*100}%";
|
||||
txtBoostConsumption.text = $"{currentLevel.boostConsumption*100}%";
|
||||
int curSpeedLevel;
|
||||
int curEnergyLevel;
|
||||
int curBoostLevel;
|
||||
SkinType rarity;
|
||||
public float curSpeed => SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel].speedMultiplier;
|
||||
public float curEnergy => SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel].moonMultiplier;
|
||||
public float curBoost => SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel].boostConsumption;
|
||||
|
||||
if(nextLevel != null){
|
||||
txtLevel.text += $" -> <color=green> Level {nextLevel.Level}</color>";
|
||||
txtEnergyGain.text += $" -> <color=green> {nextLevel.moonMultiplier}</color>";
|
||||
txtSpeed.text += $" -> <color=green> {nextLevel.speedMultiplier*100}%</color>";
|
||||
txtBoostConsumption.text += $" -> <color=green> {nextLevel.boostConsumption*100}%</color>";
|
||||
public RocketLevel nextSpeedStats =>SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel];
|
||||
public RocketLevel nextEnergyStats =>SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel];
|
||||
public RocketLevel nextBoostStats =>SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel];
|
||||
|
||||
|
||||
public float nextSpeed => SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel+1].speedMultiplier;
|
||||
public float nextEnergy => SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel+1].moonMultiplier;
|
||||
public float nextBoost => SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel+1].boostConsumption;
|
||||
|
||||
|
||||
public void Show(string rocketName){
|
||||
PurchasedSkin data = DBmanager.GetSkinByName(rocketName);
|
||||
if(data==null){Debug.LogError("Couldn't find data for skin : " + rocketName);return;}
|
||||
selectedRocket = rocketName;
|
||||
rarity = SkinShopManager.GetRarityFromName(rocketName);
|
||||
// txtLevel.text = "Level " +currentLevel.Level;
|
||||
|
||||
if(data == null){
|
||||
Debug.LogError("You don't own this skin " + rocketName);
|
||||
return;
|
||||
}
|
||||
|
||||
curSpeedLevel = data.speedLevel;
|
||||
curEnergyLevel = data.energyLevel;
|
||||
curBoostLevel = data.boostLevel;
|
||||
|
||||
btn_upgrade.interactable = Affordable;
|
||||
txtCostGold.text = nextLevel.goldCost.ToString();
|
||||
txtCostMetal.text = nextLevel.metalCost.ToString();
|
||||
txtCostGold.transform.parent.gameObject.SetActive(nextLevel.goldCost > 0);
|
||||
txtCostMetal.transform.parent.gameObject.SetActive(nextLevel.metalCost > 0);
|
||||
txtEnergyGain.text = $"{ curEnergy } Per moon";
|
||||
txtSpeed.text = $"{curSpeed*100}%";
|
||||
txtBoostConsumption.text = $"{ curBoost *100}%";
|
||||
int maxLevels =SkinShopManager.GetStatsForRarity(rarity).Length;
|
||||
|
||||
if(curEnergyLevel < maxLevels-1) {txtEnergyGain.text += $" -> <color=green> {nextEnergy}</color>";}
|
||||
if(curSpeedLevel < maxLevels-1) {txtSpeed.text += $" -> <color=green> {nextSpeed*100}%</color>";}
|
||||
if(curBoostLevel < maxLevels-1) {txtBoostConsumption.text += $" -> <color=green> {nextBoost*100}%</color>";}
|
||||
|
||||
btn_upgrade_boost.interactable = DBmanager.Coins >= nextBoostStats.goldCost && DBmanager.Metal >= nextBoostStats.metalCost && curBoostLevel < maxLevels-1;
|
||||
btn_upgrade_energy.interactable = DBmanager.Coins >= nextEnergyStats.goldCost && DBmanager.Metal >= nextEnergyStats.metalCost&& curEnergyLevel < maxLevels-1;
|
||||
btn_upgrade_speed.interactable = DBmanager.Coins >= nextSpeedStats.goldCost && DBmanager.Metal >= nextSpeedStats.metalCost&& curSpeedLevel < maxLevels-1;
|
||||
|
||||
btn_upgrade_boost.transform.GetChild(1).GetChild(0).gameObject.SetActive(nextBoostStats.goldCost > 0);
|
||||
btn_upgrade_boost.transform.GetChild(1).GetChild(0).GetComponentInChildren<TMP_Text>().text = nextBoostStats.goldCost.ToString();
|
||||
btn_upgrade_boost.transform.GetChild(1).GetChild(1).gameObject.SetActive(nextBoostStats.metalCost > 0);
|
||||
btn_upgrade_boost.transform.GetChild(1).GetChild(1).GetComponentInChildren<TMP_Text>().text = nextBoostStats.metalCost.ToString();
|
||||
|
||||
btn_upgrade_speed.transform.GetChild(1).GetChild(0).gameObject.SetActive(nextSpeedStats.goldCost > 0);
|
||||
btn_upgrade_speed.transform.GetChild(1).GetChild(0).GetComponentInChildren<TMP_Text>().text = nextSpeedStats.goldCost.ToString();
|
||||
btn_upgrade_speed.transform.GetChild(1).GetChild(1).gameObject.SetActive(nextSpeedStats.metalCost > 0);
|
||||
btn_upgrade_speed.transform.GetChild(1).GetChild(1).GetComponentInChildren<TMP_Text>().text = nextSpeedStats.metalCost.ToString();
|
||||
|
||||
btn_upgrade_energy.transform.GetChild(1).GetChild(0).gameObject.SetActive(nextEnergyStats.goldCost > 0);
|
||||
btn_upgrade_energy.transform.GetChild(1).GetChild(0).GetComponentInChildren<TMP_Text>().text = nextEnergyStats.goldCost.ToString();
|
||||
btn_upgrade_energy.transform.GetChild(1).GetChild(1).gameObject.SetActive(nextEnergyStats.metalCost > 0);
|
||||
btn_upgrade_energy.transform.GetChild(1).GetChild(1).GetComponentInChildren<TMP_Text>().text = nextEnergyStats.metalCost.ToString();
|
||||
|
||||
gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
void OnUpgrade(){
|
||||
void OnUpgradeSpeed(){
|
||||
bool Affordable = DBmanager.Coins >= nextSpeedStats.goldCost && DBmanager.Metal >= nextSpeedStats.metalCost;
|
||||
if(!Affordable){
|
||||
MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade.");
|
||||
return;
|
||||
}
|
||||
|
||||
DBmanager.UpgradeRocket(selectedRocket.name, NextLevel);
|
||||
DBmanager.UpgradeRocketSpeed(selectedRocket, nextSpeedStats);
|
||||
SkinShopManager.instance.Populate();
|
||||
MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!");
|
||||
// MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!");
|
||||
AudioManager.instnace.ChestOpen();
|
||||
Hide();
|
||||
// Hide();
|
||||
Show(selectedRocket);
|
||||
|
||||
}
|
||||
|
||||
void OnUpgradeBoost(){
|
||||
bool Affordable = DBmanager.Coins >= nextBoostStats.goldCost && DBmanager.Metal >= nextBoostStats.metalCost;
|
||||
if(!Affordable){
|
||||
MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade.");
|
||||
return;
|
||||
}
|
||||
|
||||
DBmanager.UpgradeRocketBoost(selectedRocket, nextBoostStats);
|
||||
SkinShopManager.instance.Populate();
|
||||
// MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!");
|
||||
AudioManager.instnace.ChestOpen();
|
||||
// Hide();
|
||||
Show(selectedRocket);
|
||||
}
|
||||
|
||||
void OnUpgradeEnergy(){
|
||||
bool Affordable = DBmanager.Coins >= nextEnergyStats.goldCost && DBmanager.Metal >= nextEnergyStats.metalCost;
|
||||
if(!Affordable){
|
||||
MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade.");
|
||||
return;
|
||||
}
|
||||
|
||||
DBmanager.UpgradeRocketEnergy(selectedRocket, nextEnergyStats);
|
||||
SkinShopManager.instance.Populate();
|
||||
// MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!");
|
||||
AudioManager.instnace.ChestOpen();
|
||||
// Hide();
|
||||
Show(selectedRocket);
|
||||
|
||||
}
|
||||
|
||||
public void Hide(){
|
||||
|
||||
@@ -13,11 +13,19 @@ public class SkinShopItem : MonoBehaviour
|
||||
// public GameObject notPurchasedIndicator;
|
||||
public SkinShopItemData skinData;
|
||||
[Header("Stats")]
|
||||
public TMP_Text txtLevel;
|
||||
// public TMP_Text txtLevel;
|
||||
public TMP_Text txtEnergyGain;
|
||||
public TMP_Text txtSpeed;
|
||||
public TMP_Text txtBoostConsumption;
|
||||
|
||||
public float curSpeed => SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel].speedMultiplier;
|
||||
public float curEnergy => SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel].moonMultiplier;
|
||||
public float curBoost => SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel].boostConsumption;
|
||||
SkinType rarity;
|
||||
int curSpeedLevel;
|
||||
int curEnergyLevel;
|
||||
int curBoostLevel;
|
||||
|
||||
public void Set(SkinShopItemData data, bool available){
|
||||
skinData = data;
|
||||
// newItem.backgroundImg.color = (skinsData.skins[i].skinType==SkinType.Base) ? basicColor : (skinsData.skins[i].skinType==SkinType.Rare ? rareColor : legendaryColor);
|
||||
@@ -37,19 +45,25 @@ public class SkinShopItem : MonoBehaviour
|
||||
banners[3].SetActive(data.skinType== SkinType.Legendary);
|
||||
|
||||
//Level
|
||||
txtLevel.text = "";
|
||||
rarity = SkinShopManager.GetRarityFromName(data.name);
|
||||
PurchasedSkin purchasedSkin = DBmanager.GetSkinByName(data.name);
|
||||
if(purchasedSkin != null){
|
||||
curSpeedLevel = purchasedSkin.speedLevel;
|
||||
curEnergyLevel = purchasedSkin.energyLevel;
|
||||
curBoostLevel = purchasedSkin.boostLevel;
|
||||
}
|
||||
|
||||
// txtLevel.text = "";
|
||||
|
||||
txtEnergyGain.transform.parent.gameObject.SetActive(available);
|
||||
txtSpeed.transform.parent.gameObject.SetActive(available);
|
||||
txtBoostConsumption.transform.parent.gameObject.SetActive(available);
|
||||
|
||||
if(available){
|
||||
int curLevel = DBmanager.SkinsPurchased[data.name];
|
||||
RocketLevel level = SkinShopManager.GetStatsForRarity(data)[curLevel];
|
||||
txtLevel.text = "Level " +(curLevel+1);
|
||||
txtEnergyGain.text = level.moonMultiplier.ToString();
|
||||
txtSpeed.text = (level.speedMultiplier * 100).ToString("n0") + "%";
|
||||
txtBoostConsumption.text = (level.boostConsumption * 100).ToString("n0") + "%";
|
||||
|
||||
txtEnergyGain.text = curEnergy.ToString();
|
||||
txtSpeed.text = (curSpeed * 100).ToString("n0") + "%";
|
||||
txtBoostConsumption.text = (curBoost * 100).ToString("n0") + "%";
|
||||
|
||||
}
|
||||
}
|
||||
@@ -62,7 +76,7 @@ public class SkinShopItem : MonoBehaviour
|
||||
frame.enabled=false;
|
||||
}
|
||||
|
||||
if(!DBmanager.SkinsPurchased.ContainsKey(skinData.name)){
|
||||
if(DBmanager.GetSkinIdByName(skinData.name) < 0){
|
||||
frame.color = Color.red;
|
||||
// notPurchasedIndicator.SetActive(true);
|
||||
// notPurchasedIndicator.GetComponentInChildren<TMP_Text>().text = skinData.price.ToString();
|
||||
|
||||
@@ -76,7 +76,7 @@ public class SkinShopManager : MonoBehaviour
|
||||
bool isAvailable = skinShopBuilding.curLevel >= rarity;
|
||||
if(!isAvailable){continue;}
|
||||
|
||||
bool isOwned = DBmanager.SkinsPurchased.ContainsKey(skinsData.skins[i].name);
|
||||
bool isOwned = DBmanager.GetSkinIdByName(skinsData.skins[i].name) >= 0;
|
||||
|
||||
|
||||
if(skinShopBuilding.curLevel == rarity){
|
||||
@@ -129,7 +129,7 @@ public class SkinShopManager : MonoBehaviour
|
||||
btn_Equip.gameObject.SetActive(false); btn_Buy.gameObject.SetActive(false);
|
||||
return;
|
||||
}
|
||||
if(DBmanager.SkinsPurchased.ContainsKey(data.name)){ // <-- purchased
|
||||
if(DBmanager.GetSkinIdByName(data.name)>=0){ // <-- purchased
|
||||
btn_Equip.gameObject.SetActive(true);
|
||||
btn_Upgrade.gameObject.SetActive(true);
|
||||
btn_Buy.gameObject.SetActive(false);
|
||||
@@ -163,9 +163,7 @@ public class SkinShopManager : MonoBehaviour
|
||||
}
|
||||
|
||||
void onUpgrade(){
|
||||
RocketLevel[] levels = GetStatsForRarity(selectedSkin);
|
||||
int curLevel = DBmanager.SkinsPurchased[selectedSkin.name];
|
||||
upgradePanel.Show(levels[curLevel], levels[curLevel+1],selectedSkin);
|
||||
upgradePanel.Show(selectedSkin.name);
|
||||
}
|
||||
|
||||
public void onBuy(){
|
||||
|
||||
@@ -176,6 +176,9 @@ public class SpaceshipController : NetworkBehaviour
|
||||
if (isLocalPlayer)
|
||||
{
|
||||
ResetStats();
|
||||
if(MinigameManager.instance.isRanked){
|
||||
DBmanager.SetMetal(DBmanager.Metal + DBmanager.CurrentRank.energyReward);
|
||||
}
|
||||
if (joystick == null) { joystick = FindObjectOfType<Joystick>(); }
|
||||
FindObjectOfType<CameraFollower>().SetTarget(transform);
|
||||
string myName = PlayerPrefs.GetString("username");
|
||||
@@ -190,7 +193,7 @@ public class SpaceshipController : NetworkBehaviour
|
||||
}
|
||||
|
||||
//Set Skin
|
||||
if (!DBmanager.SkinsPurchased.ContainsKey(SkinShopManager.GetEquipedSkin()))
|
||||
if (DBmanager.GetSkinIdByName(SkinShopManager.GetEquipedSkin()) < 0)
|
||||
{
|
||||
//False skin purchase
|
||||
}
|
||||
@@ -198,22 +201,23 @@ public class SpaceshipController : NetworkBehaviour
|
||||
{
|
||||
string skin = SkinShopManager.GetEquipedSkin();
|
||||
SkinType rarity = SkinShopManager.GetRarityFromName(skin);
|
||||
int level = DBmanager.SkinsPurchased[skin];
|
||||
|
||||
RocketLevel stats = SkinShopManager.GetStatsForRarity(rarity)[level];
|
||||
PurchasedSkin purchasedSkin = DBmanager.GetSkinByName(skin);
|
||||
|
||||
float m_speed = SkinShopManager.GetStatsForRarity(rarity)[purchasedSkin.speedLevel].speedMultiplier;
|
||||
float m_energy = SkinShopManager.GetStatsForRarity(rarity)[purchasedSkin.energyLevel].moonMultiplier;
|
||||
float m_boost = SkinShopManager.GetStatsForRarity(rarity)[purchasedSkin.boostLevel].boostConsumption;
|
||||
|
||||
if (isServer)
|
||||
{
|
||||
skinName = skin;
|
||||
speedMultiplier = stats.speedMultiplier;
|
||||
energyGain = stats.moonMultiplier;
|
||||
boostConsumption = stats.boostConsumption;
|
||||
speedMultiplier = m_speed;
|
||||
energyGain = m_energy;
|
||||
boostConsumption = m_boost;
|
||||
}
|
||||
else
|
||||
{
|
||||
CmdSetSkin(skin);
|
||||
CmdSetStats(stats.speedMultiplier, stats.moonMultiplier,stats.boostConsumption);
|
||||
CmdSetStats(m_speed, m_energy, m_boost);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user