public void lookForEffects() { if (powerData == null || powerPointer == -1) { powerData = powerReader.ReadToEnd().Split('\n'); powerPointer = 0; } while (powerPointer < powerData.Length) { if (powerData[powerPointer].Contains("BLOCK_START BlockType=ATTACK")) { powerPointer++; return; } //Look for reborn on enemy minions. Should only be true for lich king hero power if (powerData[powerPointer].Contains("tag=REBORN value=1") && powerData[powerPointer].Contains("entityName")) { string id = getNameAndId(powerData[powerPointer])[1]; Effect e = new Reborn(minions[id].golden); if (!minions[id].hasEffect(e)) { minions[id].addEffect(e); Console.WriteLine("reborn found on " + nameIDString(powerData[powerPointer])); } } //Look for nefarian hero power. TODO check if this works for friendly hero if (powerData[powerPointer].Contains("BlockType=TRIGGER Entity=[entityName=Nefarious Fire id=")) { Console.WriteLine("Nefarian hero power detected"); if (playerHeroPwr.Equals(HeroPower.Nefarian)) { board.NefarianPlayer = 1; } else { board.NefarianPlayer = 2; } } powerPointer++; } powerPointer = -1; lookForEffects(); }
public bool lookForEntity(string id) { if (powerData == null || powerPointer == -1) { powerData = powerReader.ReadToEnd().Split('\n'); powerPointer = 0; } while (powerPointer < powerData.Length) { /* if (powerData[powerPointer].Contains("TAG_CHANGE Entity=[") && powerData[powerPointer].Contains("tag=ATK value=")) * { * * string[] a = getNameAndId(powerData[powerPointer]); * * if (a[0].Length < 2|| !minions.ContainsKey(a[1])) * continue; * Card c = minions[a[1]]; * * * string newvalue = getStringBetween(powerData[powerPointer], "tag=ATK value=", " "); * * c.setAtk(int.Parse(newvalue)); * * if (board.containsCard(minions[a[1]])) * Console.WriteLine("atk change on " + nameIDString(powerData[powerPointer]) +" to "+newvalue); * }*/ if (powerData[powerPointer].Contains("tag=DIVINE_SHIELD value=1") && powerData[powerPointer].Contains("entityName=")) { string[] a = getNameAndId(powerData[powerPointer]); if (minions.ContainsKey(a[1]) && !minions[a[1]].divineShield) { minions[a[1]].setDivineShield(true); Console.WriteLine("Recieved Divine Shield on " + nameIDString(powerData[powerPointer])); } } if (powerData[powerPointer].Contains("tag=REBORN value=1") && powerData[powerPointer].Contains("entityName=")) { string[] a = getNameAndId(powerData[powerPointer]); if (minions.ContainsKey(a[1])) { Effect e = new Reborn(minions[a[1]].golden); if (!minions[a[1]].hasEffect(e)) { minions[a[1]].addEffect(e); minions[a[1]].tempReborn = true; Console.WriteLine("Recieved temporary Reborn on " + nameIDString(powerData[powerPointer])); } } } if (powerData[powerPointer].Contains("Creating ID=" + id)) { powerPointer++; while (powerData[powerPointer].Contains(" tag")) { if (powerData[powerPointer].Contains("BACON_MINION_IS_LEVEL_TWO")) { powerPointer++; Console.WriteLine("golden minion found"); return(true); } powerPointer++; } return(false); } powerPointer++; } powerPointer = -1; return(lookForEntity(id)); }
private void RebornEventHappened(object world, SpaceEvolveEventArgs args) { Reborn?.Invoke(world, args); }