Examples of CardSim


Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

        if (currentSource.size() >0)
        {
            for (int i = 0; i < currentSource.size(); i++)
            {
                EAIAction eAIAction = currentSource.elementAt(i);
                CardSim sCard = eAIAction.getSCard();
                possibleCardTargets.addCard(sCard);
            }
            return possibleCardTargets;
        }
        // if souce inherent add dummy
        if (EAIHelper.hasHint(card, key, new HintBundle(HintAll.SY_INHERENT)))
        {
            CardSim dummy = new CardSim (Card.buildDummy());
            if (EAIHelper.hasHint(card, key, new HintBundle(HintAll.SR_CARD_PLAYER)))
                dummy.setOwner(player);
            else
                dummy.setOwner((player+1)%2);
            possibleCardTargets.addCard( dummy);
        }
        return possibleCardTargets;
    }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

    public static Object getBestDamageTarget(VirtualMatch match, int damageToDo, int player, Communication c)
    {
        CardSimList enemies = match.getBattlefield((player+1)%2);
        enemies = enemies.sortListByCost();
        CardSim target = null;
        int targetScore = Integer.MIN_VALUE;
       
        int playerScore = -Weighting.DEFAULT.getPlayerDamageScore(damageToDo, match.getLife((player+1)%2));
        for (int i= enemies.size()-1; i>=0; i--)
        {
            if (enemies.getCard(i).getNowToughness()<= damageToDo)
            {
                target = enemies.getCard(i);
                targetScore = Weighting.DEFAULT.getCardBaseScore(target);
                break;
            }
        }

        if (c != null)
            c.setSuccessfull(true);
        if (playerScore> targetScore)
        {
            if (c != null)
            {
                c.E.mTargetPlayer =  match.getMatch().getPlayer((player+1)%2);
                c.setResultPlayer(c.E.mTargetPlayer);
            }
            return new Integer((player+1)%2);
        }
        else
        {
            if (c != null)
            {
                c.E.mTargetCardTo = target.getCard();
                c.setCardResult(target.getCard());
            }
            return target;
        }
    }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

        fight.simAttack(true);

        int blockerDeadScore = 0;
        for (int i = 0; i< fight.blockerDead; i++)
        {
            CardSim bl = fight.blocker.getCard(i);
            bl.newRound(false);
            blockerDeadScore += Weighting.DEFAULT.getCardBaseScore(bl);
        }
        if (blockerDeadScore > playerDamageScore) return false;
       
        return ret;
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

    {
        int ret = 0;
        CardSimList hand = vMatch.getHand(E.pNumber);
        for (int i=0; i< hand.size(); i++)
        {
            CardSim card = hand.getCard(i);
            int now = card.getCard().getManaCost(color);
            if (now > ret) ret = now;
        }
        return ret;
    }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

        else
            greenNeed -= manaGreen;
       
        for (int i=0; i< landsOnly.size(); i++)
        {
            CardSim newLand = landsOnly.getCard(i);
            possibleMana = E.helper.getMaxAvailableManaUnstated(vMatch);
           
            ManaItem mana = ManaItem.createManaItem(newLand);
            possibleMana.addMana(mana);

            int count = EAIHelper.onlyEnoughMana(hand, possibleMana).size();
            if (count == preCount) continue;
            if (newLand.getNowColor().toUpperCase().indexOf("R") != -1)
                redNeed+=2;
            if (newLand.getNowColor().toUpperCase().indexOf("W") != -1)
                whiteNeed+=2;
            if (newLand.getNowColor().toUpperCase().indexOf("B") != -1)
                blackNeed+=2;
            if (newLand.getNowColor().toUpperCase().indexOf("U") != -1)
                blueNeed+=2;
            if (newLand.getNowColor().toUpperCase().indexOf("G") != -1)
                greenNeed+=2;
        }
       
       
        Scoring sc = new Scoring();
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

                    Card card = e.mCard;
                    for (int i=0; i < simList2.size(); i++)
                    {
                        if (card.getUniqueID().equals(simList2.getCard(i).getCard().getUniqueID()))
                        {
                            CardSim sim = simList2.getCard(i);
                            showSimCardInfo(sim);
                            break;
                        }
                    }
                }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

                    Card card = e.mCard;
                    for (int i=0; i < simList2.size(); i++)
                    {
                        if (card.getUniqueID().equals(simList2.getCard(i).getCard().getUniqueID()))
                        {
                            CardSim sim = simList2.getCard(i);
                            showSimCardInfo(sim);
                            break;
                        }
                    }
                }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

            EAIAction eAIAction = stepPlan.elementAt(i);

            // make sure only our own actions, not the simulation of our opponents actions remain!
            // in future (control change) this might differ!
            // TODO: Control Change Dif
            CardSim c = eAIAction.getSCard();
            if (c != null)
            {
                if (c.getOwner() != player)
                {
                    stepPlan.remove(i);
                    continue;
                }
            }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

                if (c.E != null)
                {
                    // only cards here, are the like of DeathCoil Wurm
                    if (c.E.mInitiatorCard != null)
                    {
                        CardSim initiator = new CardSim(c.E.mInitiatorCard, c.E.mInitiatorMatch.getIntOwner(c.E.mInitiatorCard));
                       
                       
                        EAIAction action = mAStack.read();
                        if (action != null)
                        {
                            if (action.targets.size()>0)
                            {
                                EAIAction subAction;
                                subAction = action.targets.elementAt(0);
                                action.targets.removeElement(subAction);
                                if (subAction.type == EAIAction.ACTION_YES_NO)
                                {
                                    subAction.source = c;
                                   
                                    subAction.successfull = true;
                                    subAction.cancled = false;
                                    subAction.maybe = false;

                                    subAction.started = true;
                                    mAStack.put(subAction);

                                    executePlan();
                                    return;
                                }
                            }
                        }
                       
       
                        AIEnhancedCardHints aHints = AIEnhancedCardHints.getHints(initiator);

                       
                       
                       
                        String key = HintAll.HINT_SITUATION_BLOCKED;
                        if (aHints.hasHint(key, HintOccurrence.O_WHEN_BLOCKED))
                        {
                            if (aHints.hasHint(key, HintTargetTypes.TY_DAMAGE_AS_NON_BLOCKED))
                            {
                               
                                VirtualMatch vMatch = new VirtualMatch(c.E.mInitiatorMatch);
                                int damageToDo = initiator.getNowPower();
                               
                                CombatSimConfig configTMP = new CombatSimConfig();
                                configTMP.attackers = new CardSimList(initiator);
                                configTMP.blockerLands = vMatch.getLand((initiator.getOwner()+1)%2);
                                configTMP.attackerLands = vMatch.getLand(initiator.getOwner());
                               
                                csa.jportal.ai.enhancedAI.enhancedSim.SingleFight sFight = csa.jportal.ai.enhancedAI.enhancedSim.SingleFight.getFight(initiator, vMatch.getBlocker(initiator), configTMP, false);
                               
                                vMatch.getAttacker().remove(initiator);
                                int oldOpponentHealth = vMatch.getLife((initiator.getOwner()+1)%2);
                                vMatch.doCombat(initiator.getOwner());
                                int newOpponentHealth = vMatch.getLife((initiator.getOwner()+1)%2);
                               
                                int otherDamage = oldOpponentHealth-newOpponentHealth;
                               
                                boolean damagePlayer =  EAIPlanTree.doRatherPlayerDamage(new VirtualMatch(c.E.mInitiatorMatch), sFight, initiator.getOwner(), otherDamage);
                               
                                c.setBooleanResult(damagePlayer);
                                c.setSuccessfull(true);
                                return;
                            }
View Full Code Here

Examples of csa.jportal.ai.enhancedAI.enhancedSim.CardSim

        // cunning giant can be done here
        if (c.E != null)
        {
            if (c.E.mInitiatorCard != null)
            {
                CardSim initiator = new CardSim(c.E.mInitiatorCard, c.E.mInitiatorMatch.getIntOwner(c.E.mInitiatorCard));
                AIEnhancedCardHints aHints = AIEnhancedCardHints.getHints(initiator);
               
                String key = HintAll.HINT_SITUATION_ATTACKER;
                if (aHints.hasHint(key, HintOccurrence.O_WHEN_NOT_BLOCKED))
                {
                    if (aHints.hasHint(key, HintTargetTypes.TY_DAMAGE_AS_BLOCKED))
                    {
                        VirtualMatch vMatch = new VirtualMatch(c.E.mInitiatorMatch);
                        int damageToDo = initiator.getNowPower();
                        vMatch.getAttacker().remove(initiator);
                        CardSimList attackersToRemove = new CardSimList( c.E.mInitiatorMatch.getAttacksDone());
                        vMatch.getAttacker().removeListDirect(attackersToRemove);

                        vMatch.doCombat(initiator.getOwner());
                        EAIPlanTree.getBestDamageTarget(vMatch, damageToDo, initiator.getOwner(), c);
                        return;
                    }


                }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.