예제 #1
0
    //Army
    public void Show(ArmyClass army)
    {
        string ArmyShow = "";

        foreach (UnitStack u in army.Description)
        {
            //unit
            string stats;
            stats = $"Name: {u.minion.Type}\n" +
                    $"HP: {u.minion.HitPoints}\n" +
                    $"Attack: {u.minion.Attack}\n" +
                    $"Damage: {u.minion.MinDamage} - {u.minion.MaxDamage}\n" +
                    $"Defence: {u.minion.Defence}\n" +
                    $"Initiative: {u.minion.Initiative}\n";
            //
            ArmyShow = ArmyShow + $"///{u.minion.Type}:{u.Amount}///\n" +
                       $"{stats}\n";
        }
        if (ArmyShow == "")
        {
            Console.WriteLine("Empty army");
        }
        else
        {
            Console.WriteLine(ArmyShow);
        }
    }
예제 #2
0
    public BattleArmy(ArmyClass CrusadeArmy)
    {
        Log log = Log.getInstance();

        log.sb.AppendLine("CREATE ARMY");
        foreach (UnitStack u in CrusadeArmy.Description)
        {
            Add(new BattleUnitStack(u));
        }
    }
예제 #3
0
    public Battle(ArmyClass initBLUE, ArmyClass initRED)
    {
        Log log = Log.getInstance();

        log.sb.AppendLine($"Begin construction of battle");
        BLUE = new BattleArmy(initBLUE);
        foreach (BattleUnitStack u in BLUE.Description)
        {
            u.setID(setID);
            setID = setID + 1;
            u.setSide("BLUE");
            u.setCounter(1);
            u.setIsWaited(0);
            u.setSpell(u.minion.HasSpell);
        }
        log.sb.AppendLine($"Blue army created");

        RED = new BattleArmy(initRED);
        foreach (BattleUnitStack u in RED.Description)
        {
            u.setID(setID);
            setID = setID + 1;
            u.setSide("RED");
            u.setCounter(1);
            u.setIsWaited(0);
            u.setSpell(u.minion.HasSpell);
        }
        log.sb.AppendLine($"Red army created");
        SaveBLUE = initBLUE;
        SaveRED  = initRED;
        ArmyQueue.AddRange(BLUE.Description);
        ArmyQueue.AddRange(RED.Description);
        ArmyQueue.Sort(Compare);
        effect = new EffectTool(ArmyQueue, this);
        log.sb.AppendLine($"Start game loop");
        GameLoop();
        log.sb.AppendLine($"Change armies");
        ChangeArmies();
    }
예제 #4
0
    static void Main()
    {
        Log log = Log.getInstance();

        string        name;
        int           number;
        string        StrNumber;
        Writer        writer = new Writer();
        List <string> list   = writer.ListOfUnits();
        bool          isNumeric;
        bool          CorrectName;

        log.sb.AppendLine("Initialise units");
        List <UnitStack> BlueStack = new List <UnitStack>();

        Console.WriteLine("Blue, make an army");
        for (int i = 0; i < 6; i++)
        {
            CorrectName = false;
            Console.WriteLine($"now in army:{i} stacks");
            Console.WriteLine("Write a name of a minion or \"quit\" to end ");
            name = Console.ReadLine();
            if (name == "quit")
            {
                if (i == 0)
                {
                    Console.WriteLine("Please, at least 1 stack");
                    i = i - 1;
                    continue;
                }
                break;
            }

            foreach (string s in list)
            {
                if (s.ToUpper() == name.ToUpper())
                {
                    CorrectName = true;
                }
            }
            if (CorrectName == false)
            {
                Console.WriteLine("Incorrect name, plase try again");
                i = i - 1;
                continue;
            }
            Console.WriteLine("Now write amount");
            StrNumber = Console.ReadLine();
            isNumeric = int.TryParse(StrNumber, out number);
            if ((number <= 0) || (number > 999999) || (isNumeric != true))
            {
                Console.WriteLine("Incorrect number, please try again");
                i = i - 1;
                continue;
            }
            BlueStack.Add(new UnitStack(name, number));
        }

        Console.Clear();
        writer.ListOfUnits();
        List <UnitStack> RedStack = new List <UnitStack>();

        Console.WriteLine("Red turn to make army");
        for (int i = 0; i < 6; i++)
        {
            CorrectName = false;
            Console.WriteLine($"now in army:{i} stacks");
            Console.WriteLine("Write a name of a minion or \"quit\" to end ");
            name = Console.ReadLine();
            if (name == "quit")
            {
                if (i == 0)
                {
                    Console.WriteLine("Please, at least 1 stack");
                    i = i - 1;
                    continue;
                }
                break;
            }

            foreach (string s in list)
            {
                if (s.ToUpper() == name.ToUpper())
                {
                    CorrectName = true;
                }
            }
            if (CorrectName == false)
            {
                Console.WriteLine("Incorrect name, plase try again");
                i = i - 1;
                continue;
            }
            Console.WriteLine("Now write amount");
            StrNumber = Console.ReadLine();
            isNumeric = int.TryParse(StrNumber, out number);
            if (((number <= 0) || (number > 999999)) && (isNumeric != true))
            {
                Console.WriteLine("Incorrect number, please try again");
                i = i - 1;
                continue;
            }
            RedStack.Add(new UnitStack(name, number));
        }

        ArmyClass RedArmy  = new ArmyClass(BlueStack);
        ArmyClass BlueArmy = new ArmyClass(RedStack);

        Battle GAME = new Battle(BlueArmy, RedArmy);


        writer.ShowLog();
        Console.WriteLine("Blue army");
        writer.Show(BlueArmy);
        Console.WriteLine("REd army");
        writer.Show(RedArmy);
        Console.ReadKey();
    }