Rocket individual upgrades

This commit is contained in:
Sewmina
2022-10-26 06:57:09 +05:30
parent dd89c3fbb5
commit edbfdcfe6e
15 changed files with 2951 additions and 10614 deletions

View File

@@ -1674,7 +1674,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &2505205228767882940 --- !u!224 &2505205228767882940
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2363,7 +2363,6 @@ MonoBehaviour:
price_gold: 0 price_gold: 0
price_metal: 0 price_metal: 0
skinType: 0 skinType: 0
txtLevel: {fileID: 6096889136691484860}
txtEnergyGain: {fileID: 3363943286193453567} txtEnergyGain: {fileID: 3363943286193453567}
txtSpeed: {fileID: 1624087229452001930} txtSpeed: {fileID: 1624087229452001930}
txtBoostConsumption: {fileID: 8748216152502678770} txtBoostConsumption: {fileID: 8748216152502678770}

File diff suppressed because it is too large Load Diff

View File

@@ -43,7 +43,7 @@ public class ChestOpener : MonoBehaviour
if(skinsLucky < chestData.commonChance){ if(skinsLucky < chestData.commonChance){
//Skin is rewarded //Skin is rewarded
foreach(SkinShopItemData skin in skins.skins){ foreach(SkinShopItemData skin in skins.skins){
if(!DBmanager.SkinsPurchased.ContainsKey(skin.name)){ if(DBmanager.GetSkinIdByName(skin.name) < 0){
switch(skin.skinType){ switch(skin.skinType){
case SkinType.Base: case SkinType.Base:
baseSkins.Add(skin); baseSkins.Add(skin);

View File

@@ -31,6 +31,7 @@ public class GameManager : MonoBehaviour
public TMP_Text[] rankText; public TMP_Text[] rankText;
public Image[] rankImages; public Image[] rankImages;
public TMP_Text rankCost;
// public GameObject loadingScreen; // public GameObject loadingScreen;
@@ -137,6 +138,8 @@ public class GameManager : MonoBehaviour
effect.startColor = new Color(DBmanager.CurrentRank.color.r,DBmanager.CurrentRank.color.g, DBmanager.CurrentRank.color.b, effect.startColor.a); effect.startColor = new Color(DBmanager.CurrentRank.color.r,DBmanager.CurrentRank.color.g, DBmanager.CurrentRank.color.b, effect.startColor.a);
} }
} }
rankCost.text = DBmanager.CurrentRank.entryFee.ToString();
} }
public async void LoadMinigame() public async void LoadMinigame()
@@ -148,6 +151,10 @@ public class GameManager : MonoBehaviour
} }
public void LoadRanked(){ public void LoadRanked(){
if(DBmanager.Metal < DBmanager.CurrentRank.entryFee){
MessageDialog.instance.ShowMessage("Sorry", "You don't have enough energy to enter a Ranked match.");
return;
}
LoadingScreen.instance.LoadLevel("MinigameMatchmaking"); LoadingScreen.instance.LoadLevel("MinigameMatchmaking");
} }

View File

@@ -25,7 +25,7 @@ public class GoldMine : MonoBehaviour
int p = GetProductionRateByLevel(l); int p = GetProductionRateByLevel(l);
int c = GetCapacityRateByLevel(l); int c = GetCapacityRateByLevel(l);
int L = GetLevelByRates(c,p); int L = GetLevelByRates(c,p);
Debug.Log($"Level:{l},{L},{lvl} ,Prod:{p}, Capactiy:{c}"); // Debug.Log($"Level:{l},{L},{lvl} ,Prod:{p}, Capactiy:{c}");
List<BuildingStat> stats = new List<BuildingStat>(); List<BuildingStat> stats = new List<BuildingStat>();
// stats.Add(new BuildingStat("Gold per hour", (p * ProductionMultiplier).ToString(),statIcon)); // stats.Add(new BuildingStat("Gold per hour", (p * ProductionMultiplier).ToString(),statIcon));

View File

@@ -8,55 +8,133 @@ public class RocketUpgradePanel : MonoBehaviour
public TMP_Text txtEnergyGain; public TMP_Text txtEnergyGain;
public TMP_Text txtSpeed; public TMP_Text txtSpeed;
public TMP_Text txtBoostConsumption; public TMP_Text txtBoostConsumption;
public TMP_Text txtLevel;
public TMP_Text txtCostGold;
public TMP_Text txtCostMetal;
public Button btn_upgrade; public Button btn_upgrade_speed;
RocketLevel CurrentLevel,NextLevel; public Button btn_upgrade_energy;
SkinShopItemData selectedRocket; 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(){ 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){ int curSpeedLevel;
CurrentLevel = currentLevel; int curEnergyLevel;
NextLevel = nextLevel; int curBoostLevel;
selectedRocket = rocketData; SkinType rarity;
txtLevel.text = "Level " +currentLevel.Level; public float curSpeed => SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel].speedMultiplier;
txtEnergyGain.text = $"{currentLevel.moonMultiplier} Per moon"; public float curEnergy => SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel].moonMultiplier;
txtSpeed.text = $"{currentLevel.speedMultiplier*100}%"; public float curBoost => SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel].boostConsumption;
txtBoostConsumption.text = $"{currentLevel.boostConsumption*100}%";
if(nextLevel != null){ public RocketLevel nextSpeedStats =>SkinShopManager.GetStatsForRarity(rarity)[curSpeedLevel];
txtLevel.text += $" -> <color=green> Level {nextLevel.Level}</color>"; public RocketLevel nextEnergyStats =>SkinShopManager.GetStatsForRarity(rarity)[curEnergyLevel];
txtEnergyGain.text += $" -> <color=green> {nextLevel.moonMultiplier}</color>"; public RocketLevel nextBoostStats =>SkinShopManager.GetStatsForRarity(rarity)[curBoostLevel];
txtSpeed.text += $" -> <color=green> {nextLevel.speedMultiplier*100}%</color>";
txtBoostConsumption.text += $" -> <color=green> {nextLevel.boostConsumption*100}%</color>";
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; txtEnergyGain.text = $"{ curEnergy } Per moon";
txtCostGold.text = nextLevel.goldCost.ToString(); txtSpeed.text = $"{curSpeed*100}%";
txtCostMetal.text = nextLevel.metalCost.ToString(); txtBoostConsumption.text = $"{ curBoost *100}%";
txtCostGold.transform.parent.gameObject.SetActive(nextLevel.goldCost > 0); int maxLevels =SkinShopManager.GetStatsForRarity(rarity).Length;
txtCostMetal.transform.parent.gameObject.SetActive(nextLevel.metalCost > 0);
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); gameObject.SetActive(true);
} }
void OnUpgrade(){ void OnUpgradeSpeed(){
bool Affordable = DBmanager.Coins >= nextSpeedStats.goldCost && DBmanager.Metal >= nextSpeedStats.metalCost;
if(!Affordable){ if(!Affordable){
MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade."); MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade.");
return; return;
} }
DBmanager.UpgradeRocket(selectedRocket.name, NextLevel); DBmanager.UpgradeRocketSpeed(selectedRocket, nextSpeedStats);
SkinShopManager.instance.Populate(); SkinShopManager.instance.Populate();
MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!"); // MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!");
AudioManager.instnace.ChestOpen(); 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(){ public void Hide(){

View File

@@ -13,11 +13,19 @@ public class SkinShopItem : MonoBehaviour
// public GameObject notPurchasedIndicator; // public GameObject notPurchasedIndicator;
public SkinShopItemData skinData; public SkinShopItemData skinData;
[Header("Stats")] [Header("Stats")]
public TMP_Text txtLevel; // public TMP_Text txtLevel;
public TMP_Text txtEnergyGain; public TMP_Text txtEnergyGain;
public TMP_Text txtSpeed; public TMP_Text txtSpeed;
public TMP_Text txtBoostConsumption; 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){ public void Set(SkinShopItemData data, bool available){
skinData = data; skinData = data;
// newItem.backgroundImg.color = (skinsData.skins[i].skinType==SkinType.Base) ? basicColor : (skinsData.skins[i].skinType==SkinType.Rare ? rareColor : legendaryColor); // 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); banners[3].SetActive(data.skinType== SkinType.Legendary);
//Level //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); txtEnergyGain.transform.parent.gameObject.SetActive(available);
txtSpeed.transform.parent.gameObject.SetActive(available); txtSpeed.transform.parent.gameObject.SetActive(available);
txtBoostConsumption.transform.parent.gameObject.SetActive(available); txtBoostConsumption.transform.parent.gameObject.SetActive(available);
if(available){ if(available){
int curLevel = DBmanager.SkinsPurchased[data.name];
RocketLevel level = SkinShopManager.GetStatsForRarity(data)[curLevel]; txtEnergyGain.text = curEnergy.ToString();
txtLevel.text = "Level " +(curLevel+1); txtSpeed.text = (curSpeed * 100).ToString("n0") + "%";
txtEnergyGain.text = level.moonMultiplier.ToString(); txtBoostConsumption.text = (curBoost * 100).ToString("n0") + "%";
txtSpeed.text = (level.speedMultiplier * 100).ToString("n0") + "%";
txtBoostConsumption.text = (level.boostConsumption * 100).ToString("n0") + "%";
} }
} }
@@ -62,7 +76,7 @@ public class SkinShopItem : MonoBehaviour
frame.enabled=false; frame.enabled=false;
} }
if(!DBmanager.SkinsPurchased.ContainsKey(skinData.name)){ if(DBmanager.GetSkinIdByName(skinData.name) < 0){
frame.color = Color.red; frame.color = Color.red;
// notPurchasedIndicator.SetActive(true); // notPurchasedIndicator.SetActive(true);
// notPurchasedIndicator.GetComponentInChildren<TMP_Text>().text = skinData.price.ToString(); // notPurchasedIndicator.GetComponentInChildren<TMP_Text>().text = skinData.price.ToString();

View File

@@ -76,7 +76,7 @@ public class SkinShopManager : MonoBehaviour
bool isAvailable = skinShopBuilding.curLevel >= rarity; bool isAvailable = skinShopBuilding.curLevel >= rarity;
if(!isAvailable){continue;} 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){ if(skinShopBuilding.curLevel == rarity){
@@ -129,7 +129,7 @@ public class SkinShopManager : MonoBehaviour
btn_Equip.gameObject.SetActive(false); btn_Buy.gameObject.SetActive(false); btn_Equip.gameObject.SetActive(false); btn_Buy.gameObject.SetActive(false);
return; return;
} }
if(DBmanager.SkinsPurchased.ContainsKey(data.name)){ // <-- purchased if(DBmanager.GetSkinIdByName(data.name)>=0){ // <-- purchased
btn_Equip.gameObject.SetActive(true); btn_Equip.gameObject.SetActive(true);
btn_Upgrade.gameObject.SetActive(true); btn_Upgrade.gameObject.SetActive(true);
btn_Buy.gameObject.SetActive(false); btn_Buy.gameObject.SetActive(false);
@@ -163,9 +163,7 @@ public class SkinShopManager : MonoBehaviour
} }
void onUpgrade(){ void onUpgrade(){
RocketLevel[] levels = GetStatsForRarity(selectedSkin); upgradePanel.Show(selectedSkin.name);
int curLevel = DBmanager.SkinsPurchased[selectedSkin.name];
upgradePanel.Show(levels[curLevel], levels[curLevel+1],selectedSkin);
} }
public void onBuy(){ public void onBuy(){

View File

@@ -176,6 +176,9 @@ public class SpaceshipController : NetworkBehaviour
if (isLocalPlayer) if (isLocalPlayer)
{ {
ResetStats(); ResetStats();
if(MinigameManager.instance.isRanked){
DBmanager.SetMetal(DBmanager.Metal + DBmanager.CurrentRank.energyReward);
}
if (joystick == null) { joystick = FindObjectOfType<Joystick>(); } if (joystick == null) { joystick = FindObjectOfType<Joystick>(); }
FindObjectOfType<CameraFollower>().SetTarget(transform); FindObjectOfType<CameraFollower>().SetTarget(transform);
string myName = PlayerPrefs.GetString("username"); string myName = PlayerPrefs.GetString("username");
@@ -190,7 +193,7 @@ public class SpaceshipController : NetworkBehaviour
} }
//Set Skin //Set Skin
if (!DBmanager.SkinsPurchased.ContainsKey(SkinShopManager.GetEquipedSkin())) if (DBmanager.GetSkinIdByName(SkinShopManager.GetEquipedSkin()) < 0)
{ {
//False skin purchase //False skin purchase
} }
@@ -198,22 +201,23 @@ public class SpaceshipController : NetworkBehaviour
{ {
string skin = SkinShopManager.GetEquipedSkin(); string skin = SkinShopManager.GetEquipedSkin();
SkinType rarity = SkinShopManager.GetRarityFromName(skin); SkinType rarity = SkinShopManager.GetRarityFromName(skin);
int level = DBmanager.SkinsPurchased[skin]; PurchasedSkin purchasedSkin = DBmanager.GetSkinByName(skin);
RocketLevel stats = SkinShopManager.GetStatsForRarity(rarity)[level];
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) if (isServer)
{ {
skinName = skin; skinName = skin;
speedMultiplier = stats.speedMultiplier; speedMultiplier = m_speed;
energyGain = stats.moonMultiplier; energyGain = m_energy;
boostConsumption = stats.boostConsumption; boostConsumption = m_boost;
} }
else else
{ {
CmdSetSkin(skin); CmdSetSkin(skin);
CmdSetStats(stats.speedMultiplier, stats.moonMultiplier,stats.boostConsumption); CmdSetStats(m_speed, m_energy, m_boost);
} }
} }

View File

@@ -29,7 +29,8 @@ public class DBmanager : MonoBehaviour
private static List<InventoryEntry> inventory; private static List<InventoryEntry> inventory;
private static List<int> expPassCollected = new List<int>(); private static List<int> expPassCollected = new List<int>();
private static Dictionary<string,int> skinsPurchased = new Dictionary<string,int>(); private static List<PurchasedSkin> skinsPurchased = new List<PurchasedSkin>(){defaultSkin};
static PurchasedSkin defaultSkin => new PurchasedSkin(){name="Default"};
public static List<BuildingState> buildingStates = new List<BuildingState>(); public static List<BuildingState> buildingStates = new List<BuildingState>();
public static UnityEvent OnStateChanged = new UnityEvent(); public static UnityEvent OnStateChanged = new UnityEvent();
@@ -61,7 +62,7 @@ public class DBmanager : MonoBehaviour
public static int LevelInt => Mathf.CeilToInt(level); public static int LevelInt => Mathf.CeilToInt(level);
public static List<int> ExpPassCollected => expPassCollected; public static List<int> ExpPassCollected => expPassCollected;
public static List<InventoryEntry> Inventory => inventory; public static List<InventoryEntry> Inventory => inventory;
public static Dictionary<string,int> SkinsPurchased => skinsPurchased; public static List<PurchasedSkin> SkinsPurchased => skinsPurchased;
public static bool LoggedIn { get { return username != null; } } public static bool LoggedIn { get { return username != null; } }
@@ -620,21 +621,46 @@ public class DBmanager : MonoBehaviour
} }
public static void SetPurchasedSkins(string data){ public static void SetPurchasedSkins(string data){
skinsPurchased= new Dictionary<string,int>(); skinsPurchased= new List<PurchasedSkin>(){defaultSkin};
// string[] skins = data.Split(','); // string[] skins = data.Split(',');
// foreach(string skin in skins){ // foreach(string skin in skins){
// skinsPurchased.Add(skin, 0); // skinsPurchased.Add(skin, 0);
// } // }
try{ try{
skinsPurchased = JsonConvert.DeserializeObject<Dictionary<string,int>>(data); skinsPurchased = JsonConvert.DeserializeObject<List<PurchasedSkin>>(data);
}catch{ }catch{
Debug.LogError("Error parsing skins purchased, resetting"); Debug.LogError("Error parsing skins purchased, resetting");
skinsPurchased = new Dictionary<string, int>(); skinsPurchased = new List<PurchasedSkin>(){defaultSkin};
} }
if(skinsPurchased == null){skinsPurchased = new Dictionary<string, int>();} if(skinsPurchased == null){skinsPurchased = new List<PurchasedSkin>(){defaultSkin};}
}
public static int GetSkinIdByName(string name){
int value = -1;
for(int i = 0; i < skinsPurchased.Count; i++){
if(skinsPurchased[i].name == name){
value = i;
break;
}
}
return value;
} }
public static void UpgradeRocket(string rocketName, RocketLevel nextLevel){ public static PurchasedSkin GetSkinByName(string name){
PurchasedSkin value = null;
for(int i = 0; i < skinsPurchased.Count; i++){
if(skinsPurchased[i].name == name){
value = skinsPurchased[i];
break;
}
}
// if(value ==null){
// Debug.LogError("No data found for " + name);
// }
return value;
}
public static void UpgradeRocketSpeed(string rocketName, RocketLevel nextLevel){
if(coins < nextLevel.goldCost || metal < nextLevel.metalCost){ if(coins < nextLevel.goldCost || metal < nextLevel.metalCost){
return; return;
} }
@@ -642,10 +668,39 @@ public class DBmanager : MonoBehaviour
SetCoins(coins-nextLevel.goldCost); SetCoins(coins-nextLevel.goldCost);
SetMetal(metal - nextLevel.metalCost); SetMetal(metal - nextLevel.metalCost);
SkinsPurchased[rocketName]++; skinsPurchased[GetSkinIdByName(rocketName)].speedLevel = nextLevel.Level;
UpdatePurchasedSkins(); UpdatePurchasedSkins();
} }
public static void UpgradeRocketBoost(string rocketName, RocketLevel nextLevel){
if(coins < nextLevel.goldCost || metal < nextLevel.metalCost){
return;
}
SetCoins(coins-nextLevel.goldCost);
SetMetal(metal - nextLevel.metalCost);
skinsPurchased[GetSkinIdByName(rocketName)].boostLevel++;
UpdatePurchasedSkins();
}
public static void UpgradeRocketEnergy(string rocketName, RocketLevel nextLevel){
if(coins < nextLevel.goldCost || metal < nextLevel.metalCost){
return;
}
SetCoins(coins-nextLevel.goldCost);
SetMetal(metal - nextLevel.metalCost);
skinsPurchased[GetSkinIdByName(rocketName)].energyLevel++;
UpdatePurchasedSkins();
}
public static void PurchaseSkin(SkinShopItemData data){ public static void PurchaseSkin(SkinShopItemData data){
if(metal < data.price_metal || coins < data.price_gold){ if(metal < data.price_metal || coins < data.price_gold){
return; return;
@@ -657,7 +712,7 @@ public class DBmanager : MonoBehaviour
} }
public static void AddSkin(SkinShopItemData data){ public static void AddSkin(SkinShopItemData data){
skinsPurchased.Add(data.name,0); skinsPurchased.Add(new PurchasedSkin(){name= data.name});
UpdatePurchasedSkins(); UpdatePurchasedSkins();
} }
@@ -1031,4 +1086,12 @@ public class LeaderboardUserData{
public string username; public string username;
public int trophies; public int trophies;
public int position; public int position;
}
[Serializable]
public class PurchasedSkin{
public string name;
public int speedLevel;
public int boostLevel;
public int energyLevel;
} }

View File

@@ -7,6 +7,8 @@ public class RankLevel{
public string name; public string name;
public int minimumTrophies; public int minimumTrophies;
public int trophieLoss; public int trophieLoss;
public int entryFee;
public int energyReward;
public Sprite image; public Sprite image;
public Color color; public Color color;
} }

View File

@@ -10,9 +10,10 @@ public class XpPass : MonoBehaviour
public GameObject newRewardsNotification; public GameObject newRewardsNotification;
public float sliderWidthPerLevel = 450; public float sliderWidthPerLevel = 450;
public Slider levelSlider; public Slider levelSlider;
[SerializeField]
public XpPassReward[] rewards; public XpPassReward[] rewards => rewardsData.rewards;
public Sprite goldRewardIcon, gemRewardIcon, chestRewardIcon; public XPRewards rewardsData;
public Sprite goldRewardIcon,energyRewardIcon, gemRewardIcon, chestRewardIcon;
public GameObject rewardCardPrefab; public GameObject rewardCardPrefab;
public GameObject xpLevelPointPrefab; public GameObject xpLevelPointPrefab;
public Sprite disabledXpPointIcon; public Sprite disabledXpPointIcon;
@@ -71,6 +72,9 @@ public class XpPass : MonoBehaviour
case XpRewardType.Gold: case XpRewardType.Gold:
rewardCard.transform.GetChild(1).GetComponent<Image>().sprite = goldRewardIcon; rewardCard.transform.GetChild(1).GetComponent<Image>().sprite = goldRewardIcon;
break; break;
case XpRewardType.Energy:
rewardCard.transform.GetChild(1).GetComponent<Image>().sprite = energyRewardIcon;
break;
case XpRewardType.Gems: case XpRewardType.Gems:
rewardCard.transform.GetChild(1).GetComponent<Image>().sprite = gemRewardIcon; rewardCard.transform.GetChild(1).GetComponent<Image>().sprite = gemRewardIcon;
break; break;

View File

@@ -16,35 +16,42 @@ MonoBehaviour:
- name: Bronze - name: Bronze
minimumTrophies: 0 minimumTrophies: 0
trophieLoss: 0 trophieLoss: 0
entryFee: 10
image: {fileID: 21300000, guid: a273ca472d0bc8a67a856db223b3a3da, type: 3} image: {fileID: 21300000, guid: a273ca472d0bc8a67a856db223b3a3da, type: 3}
color: {r: 0.5283019, g: 0.11712353, b: 0.11712353, a: 1} color: {r: 0.5283019, g: 0.11712353, b: 0.11712353, a: 1}
- name: Silver - name: Silver
minimumTrophies: 300 minimumTrophies: 300
trophieLoss: 5 trophieLoss: 5
entryFee: 30
image: {fileID: 21300000, guid: 8dc5a38bd216f37bd8405be22494a225, type: 3} image: {fileID: 21300000, guid: 8dc5a38bd216f37bd8405be22494a225, type: 3}
color: {r: 0.6509434, g: 0.6509434, b: 0.6509434, a: 1} color: {r: 0.6509434, g: 0.6509434, b: 0.6509434, a: 1}
- name: Gold - name: Gold
minimumTrophies: 600 minimumTrophies: 600
trophieLoss: 15 trophieLoss: 15
entryFee: 60
image: {fileID: 21300000, guid: 3430c98347b36e4798cc5f2fccbe592f, type: 3} image: {fileID: 21300000, guid: 3430c98347b36e4798cc5f2fccbe592f, type: 3}
color: {r: 1, g: 0.64591235, b: 0, a: 1} color: {r: 1, g: 0.64591235, b: 0, a: 1}
- name: Diamond - name: Diamond
minimumTrophies: 1000 minimumTrophies: 1000
trophieLoss: 30 trophieLoss: 30
entryFee: 100
image: {fileID: 21300000, guid: 6c86bca207bc3bf6b83de7333a598ee6, type: 3} image: {fileID: 21300000, guid: 6c86bca207bc3bf6b83de7333a598ee6, type: 3}
color: {r: 0.80555093, g: 0.003826994, b: 0.8113208, a: 1} color: {r: 0.80555093, g: 0.003826994, b: 0.8113208, a: 1}
- name: Elite - name: Elite
minimumTrophies: 1500 minimumTrophies: 1500
trophieLoss: 30 trophieLoss: 30
entryFee: 200
image: {fileID: 21300000, guid: 0ed441f193ded0ee8b99a2b23b455410, type: 3} image: {fileID: 21300000, guid: 0ed441f193ded0ee8b99a2b23b455410, type: 3}
color: {r: 0.0070538903, g: 0.8584906, b: 0, a: 1} color: {r: 0.0070538903, g: 0.8584906, b: 0, a: 1}
- name: Supreme - name: Supreme
minimumTrophies: 2000 minimumTrophies: 2000
trophieLoss: 30 trophieLoss: 30
entryFee: 400
image: {fileID: 21300000, guid: 632638cbab4366d37bf8cf2479ba7396, type: 3} image: {fileID: 21300000, guid: 632638cbab4366d37bf8cf2479ba7396, type: 3}
color: {r: 1, g: 0, b: 0, a: 1} color: {r: 1, g: 0, b: 0, a: 1}
- name: Legend - name: Legend
minimumTrophies: 3000 minimumTrophies: 3000
trophieLoss: 50 trophieLoss: 50
entryFee: 600
image: {fileID: 21300000, guid: 556e20ecbc8ddc2c2967ae46b020550b, type: 3} image: {fileID: 21300000, guid: 556e20ecbc8ddc2c2967ae46b020550b, type: 3}
color: {r: 0, g: 0.41719317, b: 1, a: 1} color: {r: 0, g: 0.41719317, b: 1, a: 1}

125
upf.sln
View File

@@ -1,83 +1,90 @@
Microsoft Visual Studio Solution File, Format Version 11.00 Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010 # Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{f8f3d981-3ac9-a8b7-ea43-2868619efe2a}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{81D9F3F8-C93A-B7A8-EA43-2868619EFE2A}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleWebTransport", "SimpleWebTransport.csproj", "{f4ef7e8d-99b4-a202-8a27-32dcfce49cfe}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleWebTransport", "SimpleWebTransport.csproj", "{8D7EEFF4-B499-02A2-8A27-32DCFCE49CFE}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Examples", "Mirror.Examples.csproj", "{6f1ac7da-277d-ee44-8547-e218c93f84df}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Examples", "Mirror.Examples.csproj", "{DAC71A6F-7D27-44EE-8547-E218C93F84DF}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror", "Mirror.csproj", "{d9448b0f-e456-cf8f-8285-980f3496df94}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror", "Mirror.csproj", "{0F8B44D9-56E4-8FCF-8285-980F3496DF94}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Whinarn.UnityMeshSimplifier.Runtime", "Whinarn.UnityMeshSimplifier.Runtime.csproj", "{b99ffb8c-f6f2-f646-802e-7cb2e62d8c0c}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Components", "Mirror.Components.csproj", "{E7A80302-5562-0B7E-3CBF-ECAE2398312C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Components", "Mirror.Components.csproj", "{0203a8e7-6255-7e0b-3cbf-ecae2398312c}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Telepathy", "Telepathy.csproj", "{11D8948C-8879-BF2E-1CC0-26B574688E67}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LRM", "LRM.csproj", "{26781e0a-1a67-f20f-caa4-70358928f5ad}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "kcp2k", "kcp2k.csproj", "{AB2F7FCF-3DD8-66F3-F3B2-9D9E4EDDC3CC}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Telepathy", "Telepathy.csproj", "{8c94d811-7988-2ebf-1cc0-26b574688e67}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "where-allocations", "where-allocations.csproj", "{2EC220E0-BB60-197A-F116-EF587D3AE77F}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "kcp2k", "kcp2k.csproj", "{cf7f2fab-d83d-f366-f3b2-9d9e4eddc3cc}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Authenticators", "Mirror.Authenticators.csproj", "{78A60D52-D50E-5370-5E7F-1A7E3C90B70A}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "where-allocations", "where-allocations.csproj", "{e020c22e-60bb-7a19-f116-ef587d3ae77f}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Mirror.CodeGen", "Unity.Mirror.CodeGen.csproj", "{AD49B858-EAB7-01E4-5C5B-0056F4CEC462}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Authenticators", "Mirror.Authenticators.csproj", "{520da678-0ed5-7053-5e7f-1a7e3c90b70a}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Editor", "Mirror.Editor.csproj", "{D933CB74-FAAA-6F4B-1603-B7B7C41EDD4C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Mirror.CodeGen", "Unity.Mirror.CodeGen.csproj", "{58b849ad-b7ea-e401-5c5b-0056f4cec462}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.CompilerSymbols", "Mirror.CompilerSymbols.csproj", "{86E7D3E1-7361-3A5F-7812-807511D3F547}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.Editor", "Mirror.Editor.csproj", "{74cb33d9-aafa-4b6f-1603-b7b7c41edd4c}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{994E7620-A232-3B61-C7BD-2B420A48759F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mirror.CompilerSymbols", "Mirror.CompilerSymbols.csproj", "{e1d3e786-6173-5f3a-7812-807511d3f547}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.com.consulo.ide.Editor", "Unity.com.consulo.ide.Editor.csproj", "{f3918ae7-b834-5fa8-e000-01833c449c8e}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleMobileAds.Editor", "GoogleMobileAds.Editor.csproj", "{d679f8af-fbd3-35d5-0469-e80b52a245e7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{20764e99-32a2-613b-c7bd-2b420a48759f}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Whinarn.UnityMeshSimplifier.Editor", "Whinarn.UnityMeshSimplifier.Editor.csproj", "{9c3e4793-780d-e333-1ec5-d5e17feec6f2}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{f8f3d981-3ac9-a8b7-ea43-2868619efe2a}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {81D9F3F8-C93A-B7A8-EA43-2868619EFE2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{f8f3d981-3ac9-a8b7-ea43-2868619efe2a}.Debug|Any CPU.Build.0 = Debug|Any CPU {81D9F3F8-C93A-B7A8-EA43-2868619EFE2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{f4ef7e8d-99b4-a202-8a27-32dcfce49cfe}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {81D9F3F8-C93A-B7A8-EA43-2868619EFE2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{f4ef7e8d-99b4-a202-8a27-32dcfce49cfe}.Debug|Any CPU.Build.0 = Debug|Any CPU {81D9F3F8-C93A-B7A8-EA43-2868619EFE2A}.Release|Any CPU.Build.0 = Release|Any CPU
{6f1ac7da-277d-ee44-8547-e218c93f84df}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8D7EEFF4-B499-02A2-8A27-32DCFCE49CFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6f1ac7da-277d-ee44-8547-e218c93f84df}.Debug|Any CPU.Build.0 = Debug|Any CPU {8D7EEFF4-B499-02A2-8A27-32DCFCE49CFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{d9448b0f-e456-cf8f-8285-980f3496df94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8D7EEFF4-B499-02A2-8A27-32DCFCE49CFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{d9448b0f-e456-cf8f-8285-980f3496df94}.Debug|Any CPU.Build.0 = Debug|Any CPU {8D7EEFF4-B499-02A2-8A27-32DCFCE49CFE}.Release|Any CPU.Build.0 = Release|Any CPU
{b99ffb8c-f6f2-f646-802e-7cb2e62d8c0c}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DAC71A6F-7D27-44EE-8547-E218C93F84DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{b99ffb8c-f6f2-f646-802e-7cb2e62d8c0c}.Debug|Any CPU.Build.0 = Debug|Any CPU {DAC71A6F-7D27-44EE-8547-E218C93F84DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0203a8e7-6255-7e0b-3cbf-ecae2398312c}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DAC71A6F-7D27-44EE-8547-E218C93F84DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0203a8e7-6255-7e0b-3cbf-ecae2398312c}.Debug|Any CPU.Build.0 = Debug|Any CPU {DAC71A6F-7D27-44EE-8547-E218C93F84DF}.Release|Any CPU.Build.0 = Release|Any CPU
{26781e0a-1a67-f20f-caa4-70358928f5ad}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F8B44D9-56E4-8FCF-8285-980F3496DF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26781e0a-1a67-f20f-caa4-70358928f5ad}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F8B44D9-56E4-8FCF-8285-980F3496DF94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8c94d811-7988-2ebf-1cc0-26b574688e67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F8B44D9-56E4-8FCF-8285-980F3496DF94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8c94d811-7988-2ebf-1cc0-26b574688e67}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F8B44D9-56E4-8FCF-8285-980F3496DF94}.Release|Any CPU.Build.0 = Release|Any CPU
{cf7f2fab-d83d-f366-f3b2-9d9e4eddc3cc}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E7A80302-5562-0B7E-3CBF-ECAE2398312C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{cf7f2fab-d83d-f366-f3b2-9d9e4eddc3cc}.Debug|Any CPU.Build.0 = Debug|Any CPU {E7A80302-5562-0B7E-3CBF-ECAE2398312C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{e020c22e-60bb-7a19-f116-ef587d3ae77f}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E7A80302-5562-0B7E-3CBF-ECAE2398312C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{e020c22e-60bb-7a19-f116-ef587d3ae77f}.Debug|Any CPU.Build.0 = Debug|Any CPU {E7A80302-5562-0B7E-3CBF-ECAE2398312C}.Release|Any CPU.Build.0 = Release|Any CPU
{520da678-0ed5-7053-5e7f-1a7e3c90b70a}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {11D8948C-8879-BF2E-1CC0-26B574688E67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{520da678-0ed5-7053-5e7f-1a7e3c90b70a}.Debug|Any CPU.Build.0 = Debug|Any CPU {11D8948C-8879-BF2E-1CC0-26B574688E67}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58b849ad-b7ea-e401-5c5b-0056f4cec462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {11D8948C-8879-BF2E-1CC0-26B574688E67}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58b849ad-b7ea-e401-5c5b-0056f4cec462}.Debug|Any CPU.Build.0 = Debug|Any CPU {11D8948C-8879-BF2E-1CC0-26B574688E67}.Release|Any CPU.Build.0 = Release|Any CPU
{74cb33d9-aafa-4b6f-1603-b7b7c41edd4c}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AB2F7FCF-3DD8-66F3-F3B2-9D9E4EDDC3CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74cb33d9-aafa-4b6f-1603-b7b7c41edd4c}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB2F7FCF-3DD8-66F3-F3B2-9D9E4EDDC3CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{e1d3e786-6173-5f3a-7812-807511d3f547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AB2F7FCF-3DD8-66F3-F3B2-9D9E4EDDC3CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{e1d3e786-6173-5f3a-7812-807511d3f547}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB2F7FCF-3DD8-66F3-F3B2-9D9E4EDDC3CC}.Release|Any CPU.Build.0 = Release|Any CPU
{f3918ae7-b834-5fa8-e000-01833c449c8e}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2EC220E0-BB60-197A-F116-EF587D3AE77F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{f3918ae7-b834-5fa8-e000-01833c449c8e}.Debug|Any CPU.Build.0 = Debug|Any CPU {2EC220E0-BB60-197A-F116-EF587D3AE77F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{d679f8af-fbd3-35d5-0469-e80b52a245e7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2EC220E0-BB60-197A-F116-EF587D3AE77F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{d679f8af-fbd3-35d5-0469-e80b52a245e7}.Debug|Any CPU.Build.0 = Debug|Any CPU {2EC220E0-BB60-197A-F116-EF587D3AE77F}.Release|Any CPU.Build.0 = Release|Any CPU
{20764e99-32a2-613b-c7bd-2b420a48759f}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78A60D52-D50E-5370-5E7F-1A7E3C90B70A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{20764e99-32a2-613b-c7bd-2b420a48759f}.Debug|Any CPU.Build.0 = Debug|Any CPU {78A60D52-D50E-5370-5E7F-1A7E3C90B70A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9c3e4793-780d-e333-1ec5-d5e17feec6f2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78A60D52-D50E-5370-5E7F-1A7E3C90B70A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9c3e4793-780d-e333-1ec5-d5e17feec6f2}.Debug|Any CPU.Build.0 = Debug|Any CPU {78A60D52-D50E-5370-5E7F-1A7E3C90B70A}.Release|Any CPU.Build.0 = Release|Any CPU
{AD49B858-EAB7-01E4-5C5B-0056F4CEC462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD49B858-EAB7-01E4-5C5B-0056F4CEC462}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD49B858-EAB7-01E4-5C5B-0056F4CEC462}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD49B858-EAB7-01E4-5C5B-0056F4CEC462}.Release|Any CPU.Build.0 = Release|Any CPU
{D933CB74-FAAA-6F4B-1603-B7B7C41EDD4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D933CB74-FAAA-6F4B-1603-B7B7C41EDD4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D933CB74-FAAA-6F4B-1603-B7B7C41EDD4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D933CB74-FAAA-6F4B-1603-B7B7C41EDD4C}.Release|Any CPU.Build.0 = Release|Any CPU
{86E7D3E1-7361-3A5F-7812-807511D3F547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86E7D3E1-7361-3A5F-7812-807511D3F547}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86E7D3E1-7361-3A5F-7812-807511D3F547}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86E7D3E1-7361-3A5F-7812-807511D3F547}.Release|Any CPU.Build.0 = Release|Any CPU
{994E7620-A232-3B61-C7BD-2B420A48759F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{994E7620-A232-3B61-C7BD-2B420A48759F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{994E7620-A232-3B61-C7BD-2B420A48759F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{994E7620-A232-3B61-C7BD-2B420A48759F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE