private static void OnAbilitiesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BattleZoneCreatureCanvas canvas = d as BattleZoneCreatureCanvas; ReadOnlyAbilityCollection abilities = e.NewValue as ReadOnlyAbilityCollection; foreach (Ability ability in abilities) { if (ability is Blocker) { AddAbilityIcon(canvas, "blocker"); } else if (ability is ThisCreatureCannotAttackPlayers) { AddAbilityIcon(canvas, "this_creature_cannot_attack_players"); } else if (ability is TriggerAbility triggerAbility) { if (triggerAbility.TriggerCondition is WhenYouPutThisCreatureIntoTheBattleZone) { AddAbilityIcon(canvas, "put_into_battle_zone"); } else { AddAbilityIcon(canvas, "trigger_ability"); } } } }
private static void OnSummoningSicknessChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BattleZoneCreatureCanvas canvas = d as BattleZoneCreatureCanvas; bool summoningSickness = (bool)e.NewValue; if (summoningSickness) { canvas._imageSummoningSickness.BeginAnimation(OpacityProperty, new DoubleAnimation(0, 1, new Duration(new TimeSpan(0, 0, 0, 1, 200))) { AutoReverse = true, RepeatBehavior = RepeatBehavior.Forever, }); } else { canvas._imageSummoningSickness.BeginAnimation(OpacityProperty, null); } }
private static void AddAbilityIcon(BattleZoneCreatureCanvas canvas, string fileName) { canvas._abilitiesItemsControl.Items.Add(new AbilityIconCanvas(new Uri(string.Format("../../Images/AbilityIcons/{0}.png", fileName), UriKind.Relative), canvas._abilitiesItemsControl)); }