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); }
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); }
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); }
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); }
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; }
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; }