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));
        }
Exemplo n.º 3
0
 private void RebornEventHappened(object world, SpaceEvolveEventArgs args)
 {
     Reborn?.Invoke(world, args);
 }