public static void WebUpdateMonsterData(List <Monster> monsterData) { int monsterCount = monsterData.Count(); for (int i = 0; i < monsterCount; i++) { Monster monster = monsterData.ElementAt(i); if (monster.Name == "Kono Dio da!" || monster.Health.Max > 1999999) { continue; } monsterNames[i] = monster.Name; monsterSizes[i] = monster.Crown.ToString() + " Crown, Size: " + monster.Size; if (monster.Health.Current < 1) { monsterCurrentHealths[i] = "0"; } else { monsterCurrentHealths[i] = monster.Health.Current.ToString(); } if (monster.Health.Max < 1) { monsterMaxHealths[i] = "0"; } else { monsterMaxHealths[i] = monster.Health.Max.ToString(); } int partsCount = monster.Parts.Count(); int effectsCount = monster.StatusEffects.Count(); monsterPartsAndStatuses[i] = ""; for (int j = 0; j < partsCount; j++) { MonsterPart monsterPart = monster.Parts.ElementAt(j); monsterPartsAndStatuses[i] += monsterPart.Name + ": " + monsterPart.Health.Current + " / " + monsterPart.Health.Max + "<br />"; } monsterPartsAndStatuses[i] += "<br />"; for (int j = 0; j < effectsCount; j++) { MonsterStatusEffect statusEffect = monster.StatusEffects.ElementAt(j); if (0 < statusEffect.Duration.Fraction && statusEffect.Duration.Fraction < 1000 && statusEffect.Buildup.Fraction > 0) { monsterPartsAndStatuses[i] += statusEffect.Name + " Build: " + Math.Round(statusEffect.Buildup.Fraction) * 100 + "% / Dur " + Math.Round(statusEffect.Duration.Fraction) * 100 + "% <br />"; } } } }
public CopyingStrategy(MonsterPart part) { monsterPart = part; }
public void RemovePart(MonsterPart part) { allParts.Remove(part); if (allParts.Count == 0) ShowGameOver(); }
public void AddPart(MonsterPart part) { partsAtAll++; allParts.Add(part); }
private void UpdateMonsterInfo(Monster Monster) { Visibility = Visibility.Visible; MonsterName.Text = Monster.Name; MonsterHealthBar.MaxSize = Width * 0.7833333333333333; MonsterStaminaBar.MaxSize = Width - 72; // Update monster health and stamina UpdateHealthBar(MonsterHealthBar, Monster.Health, Monster.MaxHealth); UpdateHealthBar(MonsterStaminaBar, Monster.Stamina, Monster.MaxStamina); SetMonsterHealthBarText(Monster.Health, Monster.MaxHealth); SetMonsterStaminaText(Monster.Stamina, Monster.MaxStamina); DisplayCapturableIcon(Monster.Health, Monster.MaxHealth, Monster.CaptureThreshold); // Gets monster icon MonsterIcon.Source = GetMonsterIcon(Monster.Id); SwitchSizeBasedOnTarget(); // Parts int index = 0; MonsterPartsContainer.Children.Clear(); while (index < Monster.Parts.Count) { Part mPart = Monster.Parts[index]; MonsterPart PartDisplay = new MonsterPart() { Style = FindResource("OVERLAY_MONSTER_SUB_PART_STYLE") as Style }; PartDisplay.SetContext(mPart, MonsterPartsContainer.ItemWidth); MonsterPartsContainer.Children.Add(PartDisplay); index++; } // Ailments index = 0; MonsterAilmentsContainer.Children.Clear(); while (index < Monster.Ailments.Count) { Ailment ailment = Monster.Ailments[index]; MonsterAilment AilmentDisplay = new MonsterAilment() { Style = FindResource("OVERLAY_MONSTER_SUB_AILMENT_STYLE") as Style }; AilmentDisplay.SetContext(ailment, MonsterAilmentsContainer.ItemWidth); MonsterAilmentsContainer.Children.Add(AilmentDisplay); index++; } // Enrage if (Monster.IsEnraged && !ConfigManager.Settings.Overlay.MonstersComponent.HideHealthInformation) { ANIM_ENRAGEDICON.Begin(MonsterHealthBar, true); ANIM_ENRAGEDICON.Begin(HealthBossIcon, true); EnrageTimerText.Visibility = Visibility.Visible; EnrageTimerText.Text = $"{Monster.EnrageTimerStatic - Monster.EnrageTimer:0}s"; } // Set monster crown MonsterCrown.Source = Monster.Crown == null ? null : (ImageSource)FindResource(Monster.Crown); MonsterCrown.Visibility = Monster.Crown == null ? Visibility.Collapsed : Visibility.Visible; Weaknesses.Children.Clear(); // Removes every weakness icon if (Monster.Weaknesses == null) { return; } index = 0; while (index < Monster.Weaknesses.Keys.Count) { string Weakness = Monster.Weaknesses.Keys.ElementAt(index); ImageSource img = FindResource(Weakness) as ImageSource; img?.Freeze(); WeaknessDisplay MonsterWeaknessDisplay = new WeaknessDisplay { Icon = img, Width = 20, Height = 20 }; Weaknesses.Children.Add(MonsterWeaknessDisplay); index++; } // Sometimes Alatreon's state changes before OnMonsterSpawn is dispatched if (Monster.GameId == 87) { OnAlatreonElementShift(this, EventArgs.Empty); } }