private void DealEffect(Effect effect) //启动特效触发流程 { if (EffectRequirementCheck.CheckRequirments(PlayerHeroGrid, EnemyHeroGrid, PlayerMinionPanel, EnemyMinionPanel, mainBattlefield, effect)) { doneEffect = effect; EffectAim aim = effect.EffectAim; if (!(aim.enemyHero || aim.enemyMinion || aim.playerHero || aim.playerMinion)) { EffectAim_Tapped(new Grid(), new TappedRoutedEventArgs()); return; } if (effect.Category != EffectCategory.Spell) { FocusAim(effect.EffectAim); } else { FocusAimForSpell(effect.EffectAim); } } else { return; } }
} //显示选定边框 private void FocusAimForSpell(EffectAim aim) //显示选定边框(法术) { ChangeVisibilityForAim(); if (aim.enemyMinion) { foreach (var item in EnemyMinionPanel.Items) { if (EffectAimRequirementCheck.AimRequirementsCheck((item as Grid).DataContext, doneEffect)) { (item as Grid).BorderBrush = new SolidColorBrush(Colors.Green); (item as Grid).BorderThickness = new Thickness(5); (item as Grid).Drop += CastSpell_Drop; (item as Grid).DragOver += CastSpell_DragOver; } } } if (aim.playerMinion) { foreach (var item in PlayerMinionPanel.Items) { if (EffectAimRequirementCheck.AimRequirementsCheck((item as Grid).DataContext, doneEffect)) { (item as Grid).BorderBrush = new SolidColorBrush(Colors.Green); (item as Grid).BorderThickness = new Thickness(5); (item as Grid).Drop += CastSpell_Drop; (item as Grid).DragOver += CastSpell_DragOver; } } } if (aim.playerHero) { if (EffectAimRequirementCheck.AimRequirementsCheck(PlayerHeroGrid.DataContext, doneEffect)) { PlayerHeroGrid.BorderBrush = new SolidColorBrush(Colors.Green); PlayerHeroGrid.BorderThickness = new Thickness(5); PlayerHeroGrid.Drop += CastSpell_Drop; PlayerHeroGrid.DragOver += CastSpell_DragOver; } } if (aim.enemyHero) { if (EffectAimRequirementCheck.AimRequirementsCheck(EnemyHeroGrid.DataContext, doneEffect)) { EnemyHeroGrid.BorderBrush = new SolidColorBrush(Colors.Green); EnemyHeroGrid.BorderThickness = new Thickness(5); EnemyHeroGrid.Drop += CastSpell_Drop; EnemyHeroGrid.DragOver += CastSpell_DragOver; } } }
private void HandCardGridView_DragItemsStarting(object sender, DragItemsStartingEventArgs e) { draggedCard = (e.Items.FirstOrDefault() as Grid).DataContext as Card; if (draggedCard.CardType == CardTypes.MinionCard) { draggedMinionCard = draggedCard.CardData as MinionCard; if (PlayerMinionPanel.Items.Count >= 7) { e.Cancel = true; return; } if (mainBattlefield.CurrentCost < draggedMinionCard.Cost) { e.Cancel = true; return; } draggingType = "MinionCard"; } else { draggingType = "SpellCard"; draggedSpellCard = draggedCard.CardData as SpellCard; if (mainBattlefield.CurrentCost < draggedSpellCard.Cost) { e.Cancel = true; return; } doneEffect = draggedSpellCard.SpellEffect; if (EffectRequirementCheck.CheckRequirments(PlayerHeroGrid, EnemyHeroGrid, PlayerMinionPanel, EnemyMinionPanel, mainBattlefield, doneEffect.Requirements, doneEffect.RequirementValues)) { EffectAim aim = doneEffect.EffectAim; if (!(aim.enemyHero || aim.enemyMinion || aim.playerHero || aim.playerMinion)) { MainGrid.DragOver += CastSpell_DragOver; MainGrid.Drop += CastSpell_Drop; return; } FocusAimForSpell(doneEffect.EffectAim); return; } else { e.Cancel = true; } } }//拖拽卡牌