Пример #1
0
//        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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
            });
        }
Пример #4
0
        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)));
 }
Пример #7
0
 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());
 }
Пример #8
0
        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));
        }
Пример #9
0
 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!");
 }