private void UpdateCharacterUpgrades() { if (this.Data != null && this.m_appliedCharacterUpgrades.Count < this.Data.Transient.PurchasedCharacterUpgradeCount) { IEnumerator <CharacterUpgrade> enumerator = this.Data.Transient.GetCharacterUpgrades().GetEnumerator(); try { while (enumerator.MoveNext()) { CharacterUpgrade current = enumerator.Current; Roost.Debug.Assert(current != null); if (this.HasAppliedCharacterUpgrade(current)) { continue; } this.ApplyCharacterUpgrade(current); } } finally { if (enumerator == null) { } enumerator.Dispose(); } Roost.Debug.Assert(this.m_appliedCharacterUpgrades.Count == this.Data.Transient.PurchasedCharacterUpgradeCount); } }
static void Main(string[] args) { Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES"); // CHARACTERS List <string> charactersAndUpgradesStrings = new List <string>(); ListFeed list = GDriveManager.GetSpreadsheet(DriveUrl, 1); foreach (ListEntry row in list.Entries) { string name = row.Elements[0].Value; float multiplier = float.Parse(row.Elements[1].Value); int health = int.Parse(row.Elements[2].Value); int klid = int.Parse(row.Elements[3].Value); float klidRegen = float.Parse(row.Elements[4].Value); float speed = float.Parse(row.Elements[5].Value); float whoaPower = float.Parse(row.Elements[6].Value); float mass = float.Parse(row.Elements[7].Value); int spellSlots = int.Parse(row.Elements[8].Value); int price = int.Parse(row.Elements[9].Value); charactersAndUpgradesStrings.Add(String.Format("\n\n//{0}\nWhoaCharacter {0} = new WhoaCharacter({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9});\ncharacters.Add({0});", name, multiplier, health, whoaPower, speed, mass, klid, klidRegen, spellSlots, price)); } ListFeed upgradesList = GDriveManager.GetSpreadsheet(WhoaPlayerProperties.DRIVE_DOCUMENT_URL, 2); foreach (ListEntry row in upgradesList.Entries) { int id = int.Parse(row.Elements[0].Value); if (id == -1) { upgrade.Effects.Add(parseEffect(row)); } else { currentlyUpgradedCharacter = characters[id]; string name = row.Elements[1].Value; int maxLevel = int.Parse(row.Elements[2].Value); int basePrice = int.Parse(row.Elements[3].Value); float priceMultiplier = float.Parse(row.Elements[4].Value); upgrade = new CharacterUpgrade(name, maxLevel, basePrice, priceMultiplier); upgrade.Effects.Add(parseEffect(row)); currentlyUpgradedCharacter.AddUpgrade(upgrade); } } ReplaceAutoGenerated(WhoaScriptsFolderPath + "WHOATESTING.txt", charactersAndUpgradesStrings); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); }
protected void Awake() { sensor = GetComponentInChildren <Sensor>(); animator = GetComponentInChildren <Animator>(); CurrentHealth = maxHealth; maxHealthUpgrade = new CharacterUpgrade(); speedUpgrade = new CharacterUpgrade(); rateOfFireUpgrade = new CharacterUpgrade(); rangeUpgrade = new CharacterUpgrade(); damageUpgrade = new CharacterUpgrade(); projectileSpeedUpgrade = new CharacterUpgrade(); player = gameObject.AddComponent <AudioSourcePlayer>(); }
public bool HasAppliedCharacterUpgrade(CharacterUpgrade characterUpgrade) { return(this.m_appliedCharacterUpgrades.Contains(characterUpgrade)); }
public virtual void ApplyCharacterUpgrade(CharacterUpgrade characterUpgrade) { Roost.Debug.Assert(characterUpgrade != null); Roost.Debug.Assert(!this.HasAppliedCharacterUpgrade(characterUpgrade)); base.Stats.AddMaxHealth(characterUpgrade.ExtraHealth); base.Stats.AddMaxSpecial(characterUpgrade.ExtraSpecial); if (characterUpgrade.IsShieldRechargeUpgrade) { base.Stats.m_stats.ShieldDepletedTimeSeconds = characterUpgrade.ShieldDepletedTimeSeconds; base.Stats.m_stats.ShieldRechargeTimeSeconds = characterUpgrade.ShieldRechargeTimeSeconds; } if (characterUpgrade.IsMaxShieldUpgrade) { base.Stats.SetMaxShield(characterUpgrade.MaxShield); base.Stats.m_stats.ShieldBarWidth = characterUpgrade.ShieldBarWidth; } if (characterUpgrade.IsHitsPerSpecialUpgrade) { base.Stats.m_stats.hitsPerSpecialAward = characterUpgrade.HitsPerSpecial; } if (characterUpgrade.IsSpecialProgressForHitStreakUpgrade) { base.Stats.m_stats.specialProgressForHitStreak = characterUpgrade.SpecialProgressForHitStreak; } if (characterUpgrade.IsHitchainResilianceUpgrade) { base.Stats.m_stats.hitchainResilaince = characterUpgrade.HitchainResiliance; base.Stats.m_stats.hitchainResetSeconds = characterUpgrade.HitchainResetSeconds; } if (characterUpgrade.IsSecondWindUpgrade) { base.Stats.m_stats.hasSecondWind = true; base.Stats.m_stats.secondWindSpecialPercentage = characterUpgrade.SecondWindSpecialPercentage; base.Stats.m_stats.secondWindCooldownSeconds = characterUpgrade.SecondWindCooldownSeconds; } if (characterUpgrade.IsReviveTimeUpgrade) { base.Stats.m_stats.TotalReviveTimeSeconds = characterUpgrade.TotalReviveTimeSeconds; } FieldInfo[] array = ( from field in characterUpgrade.UpgradedPlayerAbilities.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public) where field.GetValue(characterUpgrade.UpgradedPlayerAbilities) != null select field).ToArray <FieldInfo>(); FieldInfo[] fieldInfoArray = array; for (int i = 0; i < (int)fieldInfoArray.Length; i++) { FieldInfo fieldInfo = fieldInfoArray[i]; if (!fieldInfo.FieldType.IsArray) { fieldInfo.SetValue(this.m_playerAbilities, fieldInfo.GetValue(characterUpgrade.UpgradedPlayerAbilities)); } else { AbilityData[] value = fieldInfo.GetValue(this.m_playerAbilities) as AbilityData[]; AbilityData[] abilityDataArray = fieldInfo.GetValue(characterUpgrade.UpgradedPlayerAbilities) as AbilityData[]; if ((int)abilityDataArray.Length != 0) { if (value != null && abilityDataArray != null) { AbilityData[] abilityDataArray1 = new AbilityData[Mathf.Max((int)value.Length, (int)abilityDataArray.Length)]; for (int j = 0; j < (int)abilityDataArray1.Length; j++) { if (j >= (int)abilityDataArray.Length || !(abilityDataArray[j] != null)) { abilityDataArray1[j] = value[j]; } else { abilityDataArray1[j] = abilityDataArray[j]; } } fieldInfo.SetValue(this.m_playerAbilities, abilityDataArray1); } } } } if (this.event_OnAbilityChange != null) { this.event_OnAbilityChange(); } this.m_appliedCharacterUpgrades.Add(characterUpgrade); }
public void PlayerUpgrade() { CharacterUpgrade characterupgrade = new CharacterUpgrade(this);//spawn in the charcter upgrade screen characterupgrade.Show(); }