示例#1
0
    public bool GetBestPeek(out int bestIndex)
    {
        PlayerKnowledge tempKnowledge = GetPlayerKnowledge(Player.pName);

        bestIndex = -1;
        int lowestScore = 9999;

        for (int i = 0; i < tempKnowledge.Slots.Count; i++)
        {
            if (Player.Slots[i] == null)
            {
                continue;
            }

            if (tempKnowledge.Slots[i] == null)
            {
                bestIndex = i;
                return(true);
            }
            else if (tempKnowledge.Slots[i].MemoryScore < lowestScore)
            {
                lowestScore = tempKnowledge.Slots[i].MemoryScore;
                bestIndex   = i;
            }
        }

        return(bestIndex != -1);
    }
示例#2
0
    public bool GetWorstCard(out int bestIndex)
    {
        PlayerKnowledge tempKnowledge = GetPlayerKnowledge(Player.pName);

        bestIndex = -1;
        int highestScore = 0;
        int blindOption  = -1;

        for (int i = 0; i < tempKnowledge.Slots.Count; i++)
        {
            if (Player.Slots[i] == null)
            {
                continue;
            }

            if (tempKnowledge.Slots[i] == null)
            {
                blindOption = i;
            }
            else if (tempKnowledge.Slots[i].Card.Power > highestScore)
            {
                highestScore = tempKnowledge.Slots[i].MemoryScore;
                bestIndex    = i;
            }
        }

        if (bestIndex == -1 && blindOption != -1)
        {
            bestIndex = blindOption;
        }

        return(bestIndex != -1);
    }
示例#3
0
    public bool hasGoodReplacement(out int targetSlot)
    {
        PlayerKnowledge pKnowledge = GetPlayerKnowledge(this.Player.pName);

        int maxPower = Server.FocusedCard.Power;
        int bestSlot = -1;

        for (int i = 0; i < pKnowledge.Slots.Count; i++)
        {
            if (Player.Slots[i] == null)
            {
                continue;
            }

            if (pKnowledge.Slots[i] == null)
            {
                continue;
            }

            if (pKnowledge.Slots[i].Card.Power > maxPower)
            {
                bestSlot = i;
                maxPower = pKnowledge.Slots[i].Card.Power;
            }
        }

        if (bestSlot != -1)
        {
            targetSlot = bestSlot;
            return(true);
        }

        targetSlot = -1;
        return(false);
    }
示例#4
0
    public bool shouldPickFromDump()
    {
        if (Server.DumpPile.Cards.Count == 0)
        {
            return(false);
        }

        PlayerKnowledge pKnowledge = GetPlayerKnowledge(this.Player.pName);

        int maxPower = Server.DumpPile.Cards[Server.DumpPile.Cards.Count - 1].Power;

        for (int i = 0; i < pKnowledge.Slots.Count; i++)
        {
            if (Player.Slots[i] == null)
            {
                continue;
            }

            if (pKnowledge.Slots[i] == null)
            {
                continue;
            }

            if (pKnowledge.Slots[i].Card.Power > maxPower)
            {
                return(true);
            }
        }

        return(false);
    }
示例#5
0
    public void KnowCardSwapped(string p1, int index1, string p2, int index2)
    {
        PlayerKnowledge playerA = GetPlayerKnowledge(p1);
        PlayerKnowledge playerB = GetPlayerKnowledge(p2);

        CardMemory stashedCard = playerA.Slots[index1];

        playerA.Slots[index1] = playerB.Slots[index2];
        playerB.Slots[index2] = stashedCard;
    }
示例#6
0
    public void KnowCardRepositioned(string fromPlayer, int fromIndex, string toPlayer, int toIndex)
    {
        PlayerKnowledge fromPlayerKnowledge = GetPlayerKnowledge(fromPlayer);

        if (fromPlayerKnowledge.Slots[fromIndex] == null)
        {
            return;
        }

        int lastMemoryScore = fromPlayerKnowledge.Slots[fromIndex].MemoryScore;

        fromPlayerKnowledge.ForgetCard(fromIndex);

        if (Random.Range(0, 2) == 0)
        {
            GetPlayerKnowledge(toPlayer).RememberCard(toIndex, lastMemoryScore);
        }
    }
 /// <summary>
 ///
 /// Constructor for copying player resource information
 ///
 /// </summary>
 public PlayerKnowledge(PlayerKnowledge playerKnowledge)
 {
     CopyCommonResourceValues(playerKnowledge);
     BaseKnowledgeGain = playerKnowledge.BaseKnowledgeGain;
     Stagnation        = playerKnowledge.Stagnation;
 }