Beispiel #1
0
        private void BattleEnded(bool writeReport)
        {
            if (writeReport)
            {
                BattleReport.CompleteBattle();
            }

            AboutToExitBattle(this, Attackers, Defenders);
            ExitBattle(this, Attackers, Defenders);

            foreach (var combatObj in Defenders.AllCombatObjects().Where(combatObj => !combatObj.IsDead))
            {
                combatObj.ExitBattle();
            }

            foreach (var combatObj in Attackers.AllCombatObjects().Where(combatObj => !combatObj.IsDead))
            {
                combatObj.ExitBattle();
            }

            foreach (var group in Attackers)
            {
                WithdrawAttacker(this, group);
            }

            foreach (var group in Defenders)
            {
                WithdrawDefender(this, group);
            }

            // Delete all groups
            Attackers.Clear();
            Defenders.Clear();
        }
Beispiel #2
0
    private void SlipIntoShock()
    {
        string line = "<color=red>" + gameObject.name + " is experiencing shock from loss of blood!</color>";

        BattleReport.AddToBattleReport(line);
        stateMachine.TriggerTemporaryState(IncapacitatedState.TemporaryState.InShock, 30f);
    }
Beispiel #3
0
        public GangLevelUpReport ProcessExperience(BattleReport battleReport)
        {
            var gang          = _gangFactory.GetGang(battleReport.GangId);
            var underdogBonus = GetUnderdogBonus(gang.GangRating, battleReport.OpponentGangRating, battleReport.HasWon);

            var advancements = new List <GangerLevelUpReport>();

            foreach (var gangerStats in battleReport.GangBattleStats)
            {
                var ganger     = _gangerFactory.GetGanger(gangerStats.GangerId);
                var experience = 0;
                experience += GetLeaderBonus(ganger, battleReport.GameType, battleReport.HasWon, battleReport.IsAttacker);
                experience += GetWoundingHitBonus(gangerStats.Kills);
                experience += GetObjectivesBonus(gangerStats.Objectives, battleReport.GameType);
                experience += GetWinningBonus(battleReport.HasWon, battleReport.GameType);
                experience += GetSurvivalBonus();

                var advanceRolls = GetNumberOfAdvanceRolls(ganger, experience);
                while (advanceRolls > 0)
                {
                    advancements.Add(DoAdvanceRoll(ganger, gang.GangHouse));
                    advanceRolls--;
                }

                ganger.Experience += experience;
                _gangerFactory.UpdateGanger(ganger);
            }

            return(new GangLevelUpReport()
            {
                GangerAdvancements = advancements
            });
        }
        public async Task <IActionResult> DeleteUnconfirmed(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            BattleReport battleReport = await _db.BattleReports.FindAsync(id);

            if (battleReport == null)
            {
                return(NotFound());
            }

            if (battleReport.OpponentsUsername != User.Identity.Name)
            {
                return(Unauthorized());
            }

            string username = battleReport.OpponentsUsername;

            _db.BattleReports.Remove(battleReport);
            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(UnconfirmedBattleReports), new { id = username }));
        }
Beispiel #5
0
        private void BeginSimulation()
        {
            BattleConfig battleConfig = null;

            SerializeHelper.DeserializeJsonToData(Utils.GetBattleConfigPath(battleConfigName), out battleConfig);

            BattleEngine battleEngine = new BattleEngine();

            battleEngine.Init(battleConfig);

            if (AppConst.AsyncServer)
            {
                Task <BattleReport> task = new Task <BattleReport>(battleEngine.DoPlayBattle);

                task.Start();

                task.GetAwaiter().OnCompleted(() => EndSimulation(task));
            }
            else
            {
                BattleReport battleReport = battleEngine.DoPlayBattle();

                EndSimulation(battleReport);
            }
        }
Beispiel #6
0
        /// <summary>
        /// Process injuries
        /// </summary>
        /// <param name="battleReport">Battle report</param>
        /// <returns>Injury report</returns>
        public InjuryReport ProcessInjuries(BattleReport battleReport)
        {
            // If a ganger is down, a roll less than three means they're injured.
            var injuries = new List <GangerInjuryReport>();

            foreach (var stats in battleReport.GangBattleStats)
            {
                if (stats.OutOfAction || (stats.Down && _diceRoller.RollDie() <= 3))
                {
                    injuries.Add(new GangerInjuryReport()
                    {
                        TheGanger = _gangerManager.GetGanger(stats.GangerId),
                        Injuries  = DetermineInjury(null),
                    });
                }
            }

            // var injuries = battleReport.GangBattleStats
            //    .Where(stats => stats.OutOfAction || (stats.Down && DiceRoller.RollDie() <= 3))
            //    .Select(ganger => _gangerManager.GetGanger(ganger.GangerId))
            //    .Select(ganger => new GangerInjuryReport() { TheGanger = ganger, Injuries = DetermineInjury(null) })
            //    .ToList();

            // apply injuries to Gangers
            var injuredGangers = new List <GangerInjuryReport>();

            for (int i = 0; i < injuries.Count(); i++)
            {
                var ganger = injuries[i].TheGanger;
                foreach (var injury in injuries[i].Injuries)
                {
                    ganger = injury.InjuryEffect(ganger);
                }

                injuredGangers.Add(new GangerInjuryReport()
                {
                    Injuries  = injuries[i].Injuries,
                    TheGanger = ganger,
                });
            }

            // update gangers in db
            foreach (var report in injuredGangers)
            {
                _gangerManager.UpdateGanger(report.TheGanger);
                foreach (var injury in report.Injuries)
                {
                    if (injury.InjuryId != InjuryEnum.FullRecovery)
                    {
                        _gangerManager.AddGangerInjury(report.TheGanger.GangerId, injury.InjuryId);
                    }
                }
            }

            return(new InjuryReport()
            {
                Injuries = injuries,
            });
        }
Beispiel #7
0
 private static void AddButtonForOption(string option)
 {
     GameObject newButton = Instantiate(Resources.Load("FilterOption"), Vector2.zero, Quaternion.identity, buttonContainer) as GameObject;
     newButton.transform.localPosition = new Vector2(0f, 495f + (buttons.Count * -20f));
     newButton.transform.GetChild(0).GetComponent<Text>().text = option;
     newButton.GetComponent<Button>().onClick.AddListener(delegate { BattleReport.FilterReport(option); });
     buttons.Add(newButton);
 }
Beispiel #8
0
        public static BattleFrameData GetFrameDate(this ClientContext context, int frame)
        {
            BattleReport    battleReport    = context.battleReport.value;
            BattleFrameData battleFrameData = null;

            battleReport.battleFrames.TryGetValue(frame, out battleFrameData);
            return(battleFrameData);
        }
Beispiel #9
0
 private void EndSimulation(BattleReport battleReport)
 {
     if (!string.IsNullOrEmpty(battleReportName))
     {
         SerializeHelper.SerializeDataToBytes <BattleReport>(battleReport, Utils.GetBattleReportPath(battleReportName));
         SerializeHelper.SerializeDataToJson <BattleReport>(battleReport, Utils.GetBattleReportPath(battleReportName) + ".json");
     }
     Debug.LogWarning("result ->  " + battleReportName);
 }
        public async Task <IActionResult> Edit(EditBattleReportViewModel viewModel)
        {
            viewModel.StatusMessage = string.Empty;
            if (!ModelState.IsValid)
            {
                viewModel.Factions = await _db.Factions.OrderBy(f => f.Name).ToListAsync();

                viewModel.PosterWon = viewModel.BattleReport.WinnersUsername == User.Identity.Name;
                int postersFactionId = viewModel.Factions.First(f => f.Name == viewModel.BattleReport.PostersFaction).Id;
                viewModel.PostersFactionThemes = await _db.Themes.Where(t => t.FactionId == postersFactionId).OrderBy(t => t.Name).ToListAsync();

                viewModel.PostersFactionCasters = await _db.Casters.Where(c => c.FactionId == postersFactionId).OrderBy(c => c.Name).ToListAsync();

                int opponentsFactionId = viewModel.Factions.First(f => f.Name == viewModel.BattleReport.OpponentsFaction).Id;
                viewModel.OpponentsFactionThemes = await _db.Themes.Where(t => t.FactionId == opponentsFactionId).OrderBy(t => t.Name).ToListAsync();

                viewModel.OpponentsFactionCasters = await _db.Casters.Where(c => c.FactionId == opponentsFactionId).OrderBy(c => c.Name).ToListAsync();

                return(View(viewModel));
            }

            BattleReport battleReport = await _db.BattleReports.FindAsync(viewModel.BattleReport.Id);

            battleReport.PostersFaction       = viewModel.BattleReport.PostersFaction;
            battleReport.PostersTheme         = viewModel.BattleReport.PostersTheme;
            battleReport.PostersCaster        = viewModel.BattleReport.PostersCaster;
            battleReport.PostersArmyList      = viewModel.BattleReport.PostersArmyList;
            battleReport.PostersArmyPoints    = viewModel.BattleReport.PostersArmyPoints;
            battleReport.PostersControlPoints = viewModel.BattleReport.PostersControlPoints;

            battleReport.OpponentsFaction       = viewModel.BattleReport.OpponentsFaction;
            battleReport.OpponentsTheme         = viewModel.BattleReport.OpponentsTheme;
            battleReport.OpponentsCaster        = viewModel.BattleReport.OpponentsCaster;
            battleReport.OpponentsArmyList      = viewModel.BattleReport.OpponentsArmyList;
            battleReport.OpponentsArmyPoints    = viewModel.BattleReport.OpponentsArmyPoints;
            battleReport.OpponentsControlPoints = viewModel.BattleReport.OpponentsControlPoints;

            battleReport.DatePlayed   = viewModel.BattleReport.DatePlayed;
            battleReport.EndCondition = viewModel.BattleReport.EndCondition;
            battleReport.GameSize     = viewModel.BattleReport.GameSize;
            battleReport.Scenario     = viewModel.BattleReport.Scenario;

            battleReport.LosersUsername = viewModel.PosterWon ? viewModel.BattleReport.OpponentsUsername : viewModel.BattleReport.PostersUsername;
            battleReport.LosingFaction  = viewModel.PosterWon ? viewModel.BattleReport.OpponentsFaction : viewModel.BattleReport.PostersFaction;
            battleReport.LosingTheme    = viewModel.PosterWon ? viewModel.BattleReport.OpponentsTheme : viewModel.BattleReport.PostersTheme;
            battleReport.LosingCaster   = viewModel.PosterWon ? viewModel.BattleReport.OpponentsCaster : viewModel.BattleReport.PostersCaster;

            battleReport.WinnersUsername = viewModel.PosterWon ? viewModel.BattleReport.PostersUsername : viewModel.BattleReport.OpponentsUsername;
            battleReport.WinningFaction  = viewModel.PosterWon ? viewModel.BattleReport.PostersFaction : viewModel.BattleReport.OpponentsFaction;
            battleReport.WinningTheme    = viewModel.PosterWon ? viewModel.BattleReport.PostersTheme : viewModel.BattleReport.OpponentsTheme;
            battleReport.WinningCaster   = viewModel.PosterWon ? viewModel.BattleReport.PostersCaster : viewModel.BattleReport.OpponentsCaster;

            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(UnconfirmedBattleReports), new { id = User.Identity.Name }));
        }
Beispiel #11
0
 private void VomitCheck(int severity)
 {
     if (severity >= vomitThreshold)
     {
         if (UnityEngine.Random.Range(0, 100) > myCombatSkills.statusResistance / (severity + 1))
         {
             stateMachine.TriggerTemporaryState(IncapacitatedState.TemporaryState.Vomitting, severity + 1);
             string line = "<color=blue>The injury causes " + gameObject.name + " to vomit!</color>";
             BattleReport.AddToBattleReport(line);
         }
     }
 }
Beispiel #12
0
 private void DownedCheck(int severity)
 {
     if (severity >= downedThreshold)
     {
         if (UnityEngine.Random.Range(0, 100) > myCombatSkills.statusResistance / (severity + 1))
         {
             stateMachine.TriggerTemporaryState(IncapacitatedState.TemporaryState.Downed, severity + 1);
             string line = "<color=blue>" + gameObject.name + " is knocked to the ground!</color>";
             BattleReport.AddToBattleReport(line);
         }
     }
 }
Beispiel #13
0
        public void Add(ICombatGroup combatGroup, BattleSide battleSide, bool allowReportAccess)
        {
            bool isAttacker = battleSide == BattleSide.Attack;

            lock (battleLock)
            {
                if (GetCombatGroup(combatGroup.Id) != null)
                {
                    throw new Exception(
                              string.Format("Trying to add a group to battle {0} with id {1} that already exists",
                                            BattleId,
                                            combatGroup.Id));
                }

                (battleSide == BattleSide.Attack ? Attackers : Defenders).Add(combatGroup);

                if (isAttacker)
                {
                    combatGroup.CombatObjectAdded   += AttackerGroupOnCombatObjectAdded;
                    combatGroup.CombatObjectRemoved += AttackerGroupOnCombatObjectRemoved;
                }
                else
                {
                    combatGroup.CombatObjectAdded   += DefenderGroupOnCombatObjectAdded;
                    combatGroup.CombatObjectRemoved += DefenderGroupOnCombatObjectRemoved;
                }

                if (BattleStarted)
                {
                    BattleReport.WriteReportGroup(combatGroup, isAttacker, ReportState.Entering);

                    if (isAttacker)
                    {
                        ReinforceAttacker(this, combatGroup);
                    }
                    else
                    {
                        ReinforceDefender(this, combatGroup);
                    }
                }

                if (allowReportAccess)
                {
                    BattleReport.AddAccess(combatGroup, battleSide);
                }

                if (combatGroup.Tribe != null)
                {
                    BattleReport.AddTribeToBattle(combatGroup.Tribe, battleSide);
                }
            }
        }
Beispiel #14
0
        public void Remove(ICombatGroup group, BattleSide side, ReportState state)
        {
            lock (battleLock)
            {
                // Remove from appropriate combat list
                if (side == BattleSide.Attack)
                {
                    if (!Attackers.Remove(group))
                    {
                        return;
                    }

                    group.CombatObjectAdded   -= AttackerGroupOnCombatObjectAdded;
                    group.CombatObjectRemoved -= AttackerGroupOnCombatObjectRemoved;
                }
                else
                {
                    if (!Defenders.Remove(group))
                    {
                        return;
                    }

                    group.CombatObjectAdded   -= DefenderGroupOnCombatObjectAdded;
                    group.CombatObjectRemoved -= DefenderGroupOnCombatObjectRemoved;
                }

                // If battle hasnt started then dont worry about cleaning anything up since nothing has happened to these objects
                if (!BattleStarted)
                {
                    return;
                }

                // Snap a report of exit
                BattleReport.WriteReportGroup(group, side == BattleSide.Attack, state);

                // Tell objects to exit from battle
                foreach (var co in group.Where(co => !co.Disposed))
                {
                    co.ExitBattle();
                }

                // Send exit events
                if (side == BattleSide.Attack)
                {
                    WithdrawAttacker(this, group);
                }
                else
                {
                    WithdrawDefender(this, group);
                }
            }
        }
Beispiel #15
0
        private void Start()
        {
            if (!string.IsNullOrEmpty(battleReportName))
            {
                BattleReport battleReport = null;

                SerializeHelper.DeserializeBytesToData <BattleReport>(Utils.GetBattleReportPath(battleReportName), out battleReport);

                battleReportPlayer = new BattleReportPlayer();

                battleReportPlayer.Init(battleReport);
            }
        }
Beispiel #16
0
        //
        // Initial route set
        //
        static public void post(BattleReport btrpt)
        {
            var connection = SqliteHelper.DBContext("HsiuHsien_MainDB.db");

            using (connection){
                connection.DefaultTimeout = 60;
                //Insert initial exp data
                connection.Open();
                var insertCmd = connection.CreateCommand();

                insertCmd.CommandText = String.Format(@"INSERT INTO Ro_Rou( Ro_No, Ch_No) VALUES( '1', '{0}')", btrpt.Ch_Dtl.Ch_No);
                insertCmd.ExecuteNonQuery();
            }
        }
Beispiel #17
0
        /// <Summary>
        /// Initializes a new instance of the BattleViewer class.
        /// </Summary>
        /// <param name="thisBattle">The <see cref="BattleReport"/> to be displayed.</param>
        public BattleViewer(BattleReport report)
        {
            InitializeComponent();
            theBattle  = report;
            eventCount = 0;

            // Take a copy of all of the stacks so that we can mess with them
            // without disturbing the master copy in the global turn file.

            foreach (Stack stack in theBattle.Stacks.Values)
            {
                myStacks[stack.Key] = new Stack(stack);
            }
        }
Beispiel #18
0
    private void KnockoutCheck(int severity)
    {
        int multiplier = 10; // * severityLevel to get time knocked out

        if (severity >= knockoutThreshold)
        {
            if (UnityEngine.Random.Range(0, 100) > myCombatSkills.statusResistance / (severity + 1))
            {
                int duration = severity * multiplier;
                myBody.unconscious = true;
                stateMachine.TriggerTemporaryState(IncapacitatedState.TemporaryState.Unconscious, duration);
                string line = "<color=blue>" + gameObject.name + " has been knocked unconscious by the attack!</color>";
                BattleReport.AddToBattleReport(line);
            }
        }
    }
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            BattleReport reportFromDB = await _db.BattleReports.FindAsync(id);

            if (reportFromDB == null)
            {
                return(NotFound());
            }

            return(View(reportFromDB));
        }
Beispiel #20
0
        public BattleReport DoPlayBattle()
        {
            _context = Contexts.sharedInstance.server;

            while (!_context.isBattleEnd)
            {
                _systems.Execute();
                _systems.Cleanup();
            }

            BattleReport battleReport = _context.battleReport.value;

            OnBattleEnd();

            return(battleReport);
        }
Beispiel #21
0
    public static int get_Version(IntPtr l)
    {
        int result;

        try
        {
            BattleReport battleReport = (BattleReport)LuaObject.checkSelf(l);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, battleReport.Version);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #22
0
    public static int constructor(IntPtr l)
    {
        int result;

        try
        {
            BattleReport o = new BattleReport();
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, o);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #23
0
    private void Attack()
    {
        AttackInfo         myAttack;
        AttackTimer        attackTimer = usm.attackTimer;
        BodyPartController myBody      = usm.bodyController;
        CombatSkills       mySkills    = usm.combatSkills;

        if (Random.Range(0, 100) <= 75)
        {
            if (!myBody.PartTooInjured(attack1Parts))
            {
                AttackAnimation();
                myAttack = mySkills.RequestAttackInfo(attack1Parts[0].MyWeapon());
            }
            else
            {
                string line = "<color=red>" + gameObject.name + " is too injured to attack with their " + attack1Parts[0].MyWeapon().name + "</color>";
                FloatingTextController.CreateFloatingText("Too injured!", transform, Color.red);
                BattleReport.AddToBattleReport(line);
                attackTimer.ResetAttackTimer(7f); //arbitrarily reset attack timer to prevent attack
                                                  //unit reactions -> run away if not player?
                return;
            }
        }
        else
        {
            if (!myBody.PartTooInjured(attack2Parts))
            {
                AttackAnimation();
                myAttack = mySkills.RequestAttackInfo(attack2Parts[0].MyWeapon());
            }
            else
            {
                string line = "<color=red>" + gameObject.name + " is too injured to attack with their " + attack2Parts[0].MyWeapon().name + "</color>";
                FloatingTextController.CreateFloatingText("Too injured!", transform, Color.red);
                BattleReport.AddToBattleReport(line);
                attackTimer.ResetAttackTimer(7f); //arbitrarily reset attack timer to prevent attack
                                                  //unit reactions -> run away if not player?
                return;
            }
        }
        Debug.Log(gameObject.name + " attacking with reset timer of " + myAttack.speed);
        targetBody.RecieveAttack(myAttack, transform); //should reset back to whatever weapon was used
        attackTimer.ResetAttackTimer(myAttack.speed);
    }
Beispiel #24
0
    public void TakeDamage(AttackInfo recievedAttack)
    {
        DamageInfo damageInfo = DetermineSeverityLevel(recievedAttack);
        int        severity   = damageInfo.severityLevel;
        string     line;

        if (severity >= 0)
        {
            if (severity > currentSeverityLevel)
            {
                currentSeverityLevel = severity;
                if (dollPart != null)
                {
                    dollPart.SeverityColor(severity);
                }
            }
            string log;
            if (dollPart != null)
            {
                //Debug.Log(gameObject.name + " is logging for " + damageInfo.damageType + " damage!");
                log = dollPart.LogInjury(severity, damageInfo.damageType);
            }

            string unitName     = gameObject.name;
            string injuryString = GetInjuryString(damageInfo.damageType, severity);

            if (injuryString == null)
            {
                Debug.LogError("injury string is null for " + damageInfo.damageType.ToString() + " severity " + severity);
            }

            line = string.Format(injuryString, unitName, damageInfo.weaponName, damageInfo.attackerName);
            string[] filters = new string[] { gameObject.name, damageInfo.attackerName };
            BattleReport.AddToBattleReport(line, filters);
            StatusChecks(severity);
            Bleed(damageInfo);
        }
        else
        {
            line = recievedAttack.attackerName + " 's " + recievedAttack.weapon.name + " does no damage to " + gameObject.name + "'s " + name;
            ReportFilter.AddToFilterList(gameObject.name);
            ReportFilter.AddToFilterList(damageInfo.attackerName);
            BattleReport.AddToBattleReport(line);
        }
    }
Beispiel #25
0
    public static int set_Commands(IntPtr l)
    {
        int result;

        try
        {
            BattleReport         battleReport = (BattleReport)LuaObject.checkSelf(l);
            List <BattleCommand> commands;
            LuaObject.checkType <List <BattleCommand> >(l, 2, out commands);
            battleReport.Commands = commands;
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #26
0
    public static int set_BattleType(IntPtr l)
    {
        int result;

        try
        {
            BattleReport battleReport = (BattleReport)LuaObject.checkSelf(l);
            BattleType   battleType;
            LuaObject.checkEnum <BattleType>(l, 2, out battleType);
            battleReport.BattleType = battleType;
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #27
0
    public static int set_RandomSeed(IntPtr l)
    {
        int result;

        try
        {
            BattleReport battleReport = (BattleReport)LuaObject.checkSelf(l);
            int          randomSeed;
            LuaObject.checkType(l, 2, out randomSeed);
            battleReport.RandomSeed = randomSeed;
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #28
0
    public static int set_InstanceId(IntPtr l)
    {
        int result;

        try
        {
            BattleReport battleReport = (BattleReport)LuaObject.checkSelf(l);
            ulong        instanceId;
            LuaObject.checkType(l, 2, out instanceId);
            battleReport.InstanceId = instanceId;
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
        /// <summary>
        /// Determines if this village should be attacked.
        /// </summary>
        /// <returns></returns>
        private async Task <bool> ShouldAttack(CancellationToken ct)
        {
            ReadOnlyCollection <IWebElement> reports = villageInfoScreen.GetLastReports();

            // Previous attacks, predict if it's worth to attack based on the most recent report
            if (reports.Count > 0)
            {
                // We click the first report and read it
                reports[0].Click();
                BattleReport report = battleReportScreen.ReadReport();

                await Task.Delay(random.Next(450, 700), ct);

                return(report.ShouldAttackAgain());
            }

            // No previous attacks means attack.
            return(true);
        }
Beispiel #30
0
        //
        // Attack
        //
        private void button1_Click(object sender, System.EventArgs e)
        {
            // Monster mns = test.Mns_testValue();
            // List<Monster> MnsList = new List<Monster>();
            // MnsList.Add(mns);
            // btrpt.Mns_Dtl = MnsList;
            btrpt = Mns_Sts.get(btrpt);
            string result = Battle.StartFight(ref btrpt);

            foreach (string meg in btrpt.message)
            {
                output.AppendText(meg);
                Thread.Sleep(400);
                output.AppendText(Environment.NewLine);
            }
            output.AppendText(result);
            output.AppendText(Environment.NewLine);
            UIDisplay(btrpt);
        }
Beispiel #31
0
    /// <summary>
    /// Instantiates the next battle.
    /// </summary>
    private void LoadBattle()
    {
        //Create new battle gameobject.
        this.battleObject = (GameObject)Instantiate(this.BattlePrefab);
        this.battleObject.GetComponent<BattleScript>().Battle = Globals.Instance.Battle;

        BattleScript bScript = this.battleObject.GetComponent<BattleScript>();

        //Set the initial score.
        bScript.Score = Globals.Instance.Score;

        //Create new battle report and set the object to record data there.
        BattleReport report = new BattleReport();
        bScript.Report = report;
        Globals.Instance.Reports.Add(report);

        //Set the delegate method if applicable.
        if (this.UseServerAgents) bScript.AITurnDelegate = this.AFABLTurn;
    }
    /// <summary>
    /// Instantiates the next battle.
    /// </summary>
    private void LoadNextBattle()
    {
        //Create new battle gameobject.
        this.battleObject = (GameObject)Instantiate(this.BattlePrefab);
        this.battleObject.GetComponent<BattleScript>().Battle = this.scenario.Battles[0];

        //Create new battle report and set the object to record data there.
        BattleReport report = new BattleReport();
        this.battleObject.GetComponent<BattleScript>().Report = report;

        //Set the initial score.
        this.battleObject.GetComponent<BattleScript>().Score = this.score;

        //Update lists.
        this.scenario.Battles.RemoveAt(0);
        this.battleReports.Add(report);
    }