// public void StartBattle(Player player1, Player player2) // { // Player _player1 = player1; // Player _player2 = player2; // } public void ChooseCharacter(string character, Player player) { string _character = character; // Gladiator Gladiator = null; BattleCharacter battleCharacter = null; if (_character == "Spartacus") { battleCharacter = new BattleCharacter(); battleCharacter.Player = player; battleCharacter.Gladiator = new Spartacus(); } if (_character == "Crixus") { battleCharacter = new BattleCharacter(); battleCharacter.Player = player; battleCharacter.Gladiator = new Crixus(); } if (_character == "Piscus") { battleCharacter = new BattleCharacter(); battleCharacter.Player = player; battleCharacter.Gladiator = new Piscus(); } BattleCharacters.Add(battleCharacter); }
private void CompleteCardSelection(BattleCharacter src, BattleCharacters chars, GameObject obj, Action <CardAction> onCardSelected) { var selectedCard = obj.Get <CardDataComponent>().Card; _currentObjs.DequeueEach(x => Entity.Destroy(x)); _targetting.OnCardSelected(src, chars, selectedCard, onCardSelected); }
public void SelectAction(BattleCharacter src, BattleHand hand, BattleCharacters allCharacters, Action <CardAction> onCardSelected) { var card = SelectCard(src, hand.Playable, allCharacters); var targettedEffects = card.Effects.Select(x => SelectTargets(x, src, allCharacters)).ToList(); onCardSelected(new CardAction { Source = src, Card = card, TargettedEffects = targettedEffects }); }
public void SelectAction(BattleCharacter src, BattleHand hand, BattleCharacters chars, Action <CardAction> onCardSelected) { _registerObj(Entity.Create("Player Card Select DropZone", new Transform2 { Size = new Size2(1920, 500) }) .Add(new MouseDropTarget { OnDrop = x => CompleteCardSelection(src, chars, x, onCardSelected) })); var margin = 20; var xLoc = 100; hand.Cards.ForEachIndex((x, i) => _registerObj( CardDisplay.Create(x, new Vector2(xLoc + i * (CardDisplay.Width + margin), 600), hand.Playable.Contains(x)))); }
public void OnCardSelected(BattleCharacter src, BattleCharacters chars, Card card, Action <CardAction> onActionSelected) { if (card.Effects.None() || card.Effects.TrueForAll(RequiresNoManualTargetting)) { var effects = card.Effects.Select(x => SelectInferredTargets(src, chars, x)).ToList(); onActionSelected(new CardAction { Card = card, Source = src, TargettedEffects = effects }); return; } Callback = onActionSelected; SelectedCard = card; Source = src; _effectIndex = 0; ChosenEffects.Clear(); }
private TargettedEffect SelectInferredTargets(BattleCharacter src, BattleCharacters chars, CardEffect effect) { return(new TargettedEffect(effect, chars.GetPossibleTargets(src, effect.Target))); }
private Card SelectCard(BattleCharacter forCharacter, IEnumerable <Card> cards, BattleCharacters allCharacters) { foreach (var card in cards) { if (card.Effects.Count > 0 && card.Effects[0].Type == EffectType.Heal && forCharacter.MissingHpPercent > 0.5) { continue; } return(card); } return(cards.First()); }
private TargettedEffect SelectTargets(CardEffect effect, BattleCharacter src, BattleCharacters allCharacters) { var targetType = effect.Target; var possibleTargets = allCharacters.GetPossibleTargets(src, targetType); // TODO: Make this selection smarter if (targetType == EffectTarget.One) { return(new TargettedEffect(effect, possibleTargets.First(x => x.Loyalty != src.Loyalty).AsList())); } return(new TargettedEffect(effect, possibleTargets)); }
public void SelectAction(BattleCharacter src, BattleHand hand, BattleCharacters characters, Action <CardAction> onSelected) { throw new NotImplementedException("I'm not alive. I will never pick a card. Not any card!"); }