Exemplo n.º 1
0
        public BattleFriendlySupportDetail(BattleNight bd, BattleIndex attackerId, BattleIndex defenderId, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, bool nightAirAttackFlag, int defenderHP)
            : base(bd, attackerId, defenderId, damages, criticalTypes, attackType, equipmentIDs, defenderHP)
        {
            NightAirAttackFlag = nightAirAttackFlag;

            int[] attackerSlots;

            if (attackerId.IsFriend)
            {
                Attacker      = bd.FriendlySupport.FriendlyMembersInstance[attackerId.Index];
                attackerSlots = bd.FriendlySupport.FriendlySlots[attackerId.Index];
            }
            else
            {
                attackerSlots = SetAttacker();
            }

            if (defenderId.IsFriend)
            {
                Defender = bd.FriendlySupport.FriendlyMembersInstance[defenderId.Index];
            }
            else
            {
                SetDefender();
            }


            if (AttackType == 0 && Attacker != null)
            {
                AttackType = CaclulateAttackKind(attackerSlots, Attacker.ShipID, Defender.ShipID);
            }
        }
Exemplo n.º 2
0
        public override void EmulateBattle(int[] hps, int[] damages)
        {
            if (!IsAvailable)
            {
                return;
            }

            // 表示上は逐次ダメージ反映のほうが都合がいいが、AddDamage を逐次的にやるとダメコン判定を誤るため
            int[] currentHP = new int[hps.Length];
            Array.Copy(hps, currentHP, currentHP.Length);

            for (int i = 0; i < Targets.Length; i++)
            {
                if (Targets[i] >= 0)
                {
                    BattleIndex attacker = new BattleIndex(i, Battle.IsFriendCombined, Battle.IsEnemyCombined);
                    BattleIndex defender = new BattleIndex(Targets[i] + (i < 12 ? 12 : 0), Battle.IsFriendCombined, Battle.IsEnemyCombined);

                    BattleDetails.Add(new BattleDayDetail(Battle, attacker, defender, new double[] { AttackDamages[i] + Damages[defender] - Math.Floor(Damages[defender]) },                        //propagates "guards flagship" flag
                                                          new int[] { CriticalFlags[i] }, -1, null, currentHP[defender]));
                    currentHP[defender] -= Math.Max(AttackDamages[i], 0);
                }
            }

            for (int i = 0; i < hps.Length; i++)
            {
                AddDamage(hps, i, (int)Damages[i]);
                damages[i] += AttackDamages[i];
            }
        }
Exemplo n.º 3
0
        public override void EmulateBattle(int[] hps, int[] damages)
        {
            if (!IsAvailable)
            {
                return;
            }

            for (int i = 0; i < Battle.Initial.EnemyMembers.Length; i++)
            {
                if (Battle.Initial.EnemyMembers[i] > 0)
                {
                    var index = new BattleIndex(BattleSides.EnemyMain, i);
                    BattleDetails.Add(new BattleSupportDetail(Battle, index, Damages[i], Criticals[i], SupportFlag, hps[index]));
                    AddDamage(hps, index, (int)Damages[i]);
                }
            }
            if (Battle.IsEnemyCombined)
            {
                for (int i = 0; i < Battle.Initial.EnemyMembersEscort.Length; i++)
                {
                    if (Battle.Initial.EnemyMembersEscort[i] > 0)
                    {
                        var index = new BattleIndex(BattleSides.EnemyEscort, i);
                        BattleDetails.Add(new BattleSupportDetail(Battle, index, Damages[i + 6], Criticals[i + 6], SupportFlag, hps[index]));
                        AddDamage(hps, index, (int)Damages[i + 6]);
                    }
                }
            }
        }
Exemplo n.º 4
0
        public override void EmulateBattle(int[] hps, int[] damages)
        {
            if (!IsAvailable)
            {
                return;
            }

            var friendHps = Battle.FriendlySupportInfo.FriendlyInitialHPs.ToArray();

            for (int i = 0; i < TorpedoFlags.Length; i++)
            {
                int attackType = (TorpedoFlags[i] > 0 ? 1 : 0) | (BomberFlags[i] > 0 ? 2 : 0);
                if (attackType > 0)
                {
                    bool isEnemy = new BattleIndex(i, false, Battle.IsEnemyCombined).IsEnemy;


                    // 航空戦は miss/hit=0, critical=1 のため +1 する(通常は miss=0, hit=1, critical=2)
                    BattleDetails.Add(new BattleFriendlyAirDetail(
                                          Battle,
                                          new BattleIndex(i, Battle.IsFriendCombined, Battle.IsEnemyCombined),
                                          Damages[i],
                                          Criticals[i] + 1,
                                          attackType,
                                          isEnemy ? hps[i] : friendHps[i]));

                    if (isEnemy)
                    {
                        AddDamage(hps, i, (int)Damages[i]);
                    }
                }
            }
        }
Exemplo n.º 5
0
        public override void EmulateBattle(int[] hps, int[] damages)
        {
            if (!IsAvailable)
            {
                return;
            }


            foreach (var atk in Attacks)
            {
                switch (atk.AttackType)
                {
                case 100:
                    // nelson touch
                    for (int i = 0; i < atk.Defenders.Count; i++)
                    {
                        var comboatk = new BattleIndex(atk.Attacker.Side, i * 2);                                       // #1, #3, #5
                        BattleDetails.Add(new BattleNightDetail(Battle, comboatk, atk.Defenders[i].Defender, new[] { atk.Defenders[i].RawDamage }, new[] { atk.Defenders[i].CriticalFlag }, atk.AttackType, atk.EquipmentIDs, atk.NightAirAttackFlag, hps[atk.Defenders[i].Defender]));
                        AddDamage(hps, atk.Defenders[i].Defender, atk.Defenders[i].Damage);
                        damages[comboatk] += atk.Defenders[i].Damage;
                    }
                    break;

                case 101:
                case 102:
                    // nagato/mutsu touch
                    for (int i = 0; i < atk.Defenders.Count; i++)
                    {
                        var comboatk = new BattleIndex(atk.Attacker.Side, i / 2);                                       // #1, #1, #2
                        BattleDetails.Add(new BattleNightDetail(Battle, comboatk, atk.Defenders[i].Defender, new[] { atk.Defenders[i].RawDamage }, new[] { atk.Defenders[i].CriticalFlag }, atk.AttackType, atk.EquipmentIDs, atk.NightAirAttackFlag, hps[atk.Defenders[i].Defender]));
                        AddDamage(hps, atk.Defenders[i].Defender, atk.Defenders[i].Damage);
                        damages[comboatk] += atk.Defenders[i].Damage;
                    }
                    break;

                case 103:
                case 104:
                    // colorado touch / kongo-class night attack
                    for (int i = 0; i < atk.Defenders.Count; i++)
                    {
                        var comboatk = new BattleIndex(atk.Attacker.Side, i);                                       // #1, #2 (, #3)
                        BattleDetails.Add(new BattleNightDetail(Battle, comboatk, atk.Defenders[i].Defender, new[] { atk.Defenders[i].RawDamage }, new[] { atk.Defenders[i].CriticalFlag }, atk.AttackType, atk.EquipmentIDs, atk.NightAirAttackFlag, hps[atk.Defenders[i].Defender]));
                        AddDamage(hps, atk.Defenders[i].Defender, atk.Defenders[i].Damage);
                        damages[comboatk] += atk.Defenders[i].Damage;
                    }
                    break;

                default:
                    foreach (var defs in atk.Defenders.GroupBy(d => d.Defender))
                    {
                        BattleDetails.Add(new BattleNightDetail(Battle, atk.Attacker, defs.Key, defs.Select(d => d.RawDamage).ToArray(), defs.Select(d => d.CriticalFlag).ToArray(), atk.AttackType, atk.EquipmentIDs, atk.NightAirAttackFlag, hps[defs.Key]));
                        AddDamage(hps, defs.Key, defs.Sum(d => d.Damage));
                    }
                    damages[atk.Attacker] += atk.Defenders.Sum(d => d.Damage);
                    break;
                }
            }
        }
Exemplo n.º 6
0
		public BattleSupportDetail(BattleData bd, BattleIndex defenderId, double damage, int criticalType, int attackType, int defenderHP)
			: base(bd, BattleIndex.Invalid, defenderId, new double[] { damage }, new int[] { criticalType }, attackType, null, defenderHP)
		{
			var attackerSlots = SetAttacker();
			SetDefender();

			if (AttackType == 0 && Attacker != null)
				AttackType = CaclulateAttackKind(attackerSlots, Attacker.ShipID, Defender.ShipID);
		}
Exemplo n.º 7
0
		public BattleDayDetail(BattleData bd, BattleIndex attackerId, BattleIndex defenderId, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, int defenderHP)
			: base(bd, attackerId, defenderId, damages, criticalTypes, attackType, equipmentIDs, defenderHP)
		{
			var attackerSlots = SetAttacker();
			SetDefender();

			if (AttackType == 0 && Attacker != null)
				AttackType = CaclulateAttackKind(attackerSlots, Attacker.ShipID, Defender.ShipID);

		}
Exemplo n.º 8
0
 public BattleFriendlyAirDetail(BattleData bd, BattleIndex defenderId, double damage, int criticalType, int attackType, int defenderHP)
     : base(bd, 0, defenderId, damage, criticalType, attackType, defenderHP)
 {
     if (defenderId.IsFriend)
     {
         Defender = bd.FriendlySupportInfo.FriendlyMembersInstance[defenderId.Index];
     }
     else
     {
         SetDefender();
     }
 }
Exemplo n.º 9
0
        /// <param name="bd">戦闘情報。</param>
        /// <param name="attackerIndex">攻撃側のインデックス。</param>
        /// <param name="defenderIndex">防御側のインデックス。</param>
        /// <param name="damages">ダメージの配列。</param>
        /// <param name="criticalTypes">命中判定の配列。</param>
        /// <param name="attackType">攻撃種別。</param>
        /// <param name="defenderHP">防御側の攻撃を受ける直前のHP。</param>
        public BattleDetail(BattleData bd, BattleIndex attackerIndex, BattleIndex defenderIndex, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, int defenderHP)
        {
            Battle = bd;

            AttackerIndex  = attackerIndex;
            DefenderIndex  = defenderIndex;
            RawDamages     = damages;
            Damages        = damages.Select(dmg => (int)dmg).ToArray();
            GuardsFlagship = damages.Select(dmg => dmg != Math.Floor(dmg)).ToArray();
            CriticalTypes  = criticalTypes.Select(i => (CriticalType)i).ToArray();
            AttackType     = attackType;
            EquipmentIDs   = equipmentIDs;
            DefenderHP     = defenderHP;
        }
Exemplo n.º 10
0
		/// <summary>
		/// 両軍のHPゲージを設定します。
		/// </summary>
		private void SetHPBar(BattleData bd)
		{

			KCDatabase db = KCDatabase.Instance;
			bool isPractice = bd.IsPractice;
			bool isFriendCombined = bd.IsFriendCombined;
			bool isEnemyCombined = bd.IsEnemyCombined;
			bool isBaseAirRaid = bd.IsBaseAirRaid;
			bool hasFriend7thShip = bd.Initial.FriendMaxHPs.Count(hp => hp > 0) == 7;

			var initial = bd.Initial;
			var resultHPs = bd.ResultHPs;
			var attackDamages = bd.AttackDamages;


			foreach (var bar in HPBars)
				bar.SuspendUpdate();


			void EnableHPBar(int index, int initialHP, int resultHP, int maxHP)
			{
				HPBars[index].Value = resultHP;
				HPBars[index].PrevValue = initialHP;
				HPBars[index].MaximumValue = maxHP;
				HPBars[index].BackColor = SystemColors.Control;
				HPBars[index].Visible = true;
			}

			void DisableHPBar(int index)
			{
				HPBars[index].Visible = false;
			}



			// friend main
			for (int i = 0; i < initial.FriendInitialHPs.Length; i++)
			{
				int refindex = BattleIndex.Get(BattleSides.FriendMain, i);

				if (initial.FriendInitialHPs[i] != -1)
				{
					EnableHPBar(refindex, initial.FriendInitialHPs[i], resultHPs[refindex], initial.FriendMaxHPs[i]);

					string name;
					bool isEscaped;
					bool isLandBase;

					var bar = HPBars[refindex];

					if (isBaseAirRaid)
					{
						name = string.Format("第{0}基地", i + 1);
						isEscaped = false;
						isLandBase = true;
						bar.Text = "LB";        //note: Land Base (Landing Boat もあるらしいが考えつかなかったので)

					}
					else
					{
						ShipData ship = bd.Initial.FriendFleet.MembersInstance[i];
						name = ship.NameWithLevel;
						isEscaped = bd.Initial.FriendFleet.EscapedShipList.Contains(ship.MasterID);
						isLandBase = ship.MasterShip.IsLandBase;
						bar.Text = Constants.GetShipClassClassification(ship.MasterShip.ShipType);
					}

					ToolTipInfo.SetToolTip(bar, string.Format
						("{0}\r\nHP: ({1} → {2})/{3} ({4}) [{5}]\r\n与ダメージ: {6}\r\n\r\n{7}",
						name,
						Math.Max(bar.PrevValue, 0),
						Math.Max(bar.Value, 0),
						bar.MaximumValue,
						bar.Value - bar.PrevValue,
						Constants.GetDamageState((double)bar.Value / bar.MaximumValue, isPractice, isLandBase, isEscaped),
						attackDamages[refindex],
						bd.GetBattleDetail(refindex)
						));

					if (isEscaped) bar.BackColor = Color.Silver;
					else bar.BackColor = SystemColors.Control;
				}
				else
				{
					DisableHPBar(refindex);
				}
			}


			// enemy main
			for (int i = 0; i < initial.EnemyInitialHPs.Length; i++)
			{
				int refindex = BattleIndex.Get(BattleSides.EnemyMain, i);

				if (initial.EnemyInitialHPs[i] != -1)
				{
					EnableHPBar(refindex, initial.EnemyInitialHPs[i], resultHPs[refindex], initial.EnemyMaxHPs[i]);
					ShipDataMaster ship = bd.Initial.EnemyMembersInstance[i];

					var bar = HPBars[refindex];
					bar.Text = Constants.GetShipClassClassification(ship.ShipType);

					ToolTipInfo.SetToolTip(bar,
						string.Format("{0} Lv. {1}\r\nHP: ({2} → {3})/{4} ({5}) [{6}]\r\n\r\n{7}",
							ship.NameWithClass,
							initial.EnemyLevels[i],
							Math.Max(bar.PrevValue, 0),
							Math.Max(bar.Value, 0),
							bar.MaximumValue,
							bar.Value - bar.PrevValue,
							Constants.GetDamageState((double)bar.Value / bar.MaximumValue, isPractice, ship.IsLandBase),
							bd.GetBattleDetail(refindex)
							)
						);
				}
				else
				{
					DisableHPBar(refindex);
				}
			}


			// friend escort
			if (isFriendCombined)
			{
				FleetFriendEscort.Visible = true;

				for (int i = 0; i < initial.FriendInitialHPsEscort.Length; i++)
				{
					int refindex = BattleIndex.Get(BattleSides.FriendEscort, i);

					if (initial.FriendInitialHPsEscort[i] != -1)
					{
						EnableHPBar(refindex, initial.FriendInitialHPsEscort[i], resultHPs[refindex], initial.FriendMaxHPsEscort[i]);

						ShipData ship = bd.Initial.FriendFleetEscort.MembersInstance[i];
						bool isEscaped = bd.Initial.FriendFleetEscort.EscapedShipList.Contains(ship.MasterID);

						var bar = HPBars[refindex];
						bar.Text = Constants.GetShipClassClassification(ship.MasterShip.ShipType);

						ToolTipInfo.SetToolTip(bar, string.Format(
							"{0} Lv. {1}\r\nHP: ({2} → {3})/{4} ({5}) [{6}]\r\n与ダメージ: {7}\r\n\r\n{8}",
							ship.MasterShip.NameWithClass,
							ship.Level,
							Math.Max(bar.PrevValue, 0),
							Math.Max(bar.Value, 0),
							bar.MaximumValue,
							bar.Value - bar.PrevValue,
							Constants.GetDamageState((double)bar.Value / bar.MaximumValue, isPractice, ship.MasterShip.IsLandBase, isEscaped),
							attackDamages[refindex],
							bd.GetBattleDetail(refindex)
							));

						if (isEscaped) bar.BackColor = Color.Silver;
						else bar.BackColor = SystemColors.Control;
					}
					else
					{
						DisableHPBar(refindex);
					}
				}

			}
			else
			{
				FleetFriendEscort.Visible = false;

				foreach (var i in BattleIndex.FriendEscort.Skip(Math.Max(bd.Initial.FriendFleet.Members.Count - 6, 0)))
					DisableHPBar(i);
			}

			MoveHPBar(hasFriend7thShip);



			// enemy escort
			if (isEnemyCombined)
			{
				FleetEnemyEscort.Visible = true;

				for (int i = 0; i < 6; i++)
				{
					int refindex = BattleIndex.Get(BattleSides.EnemyEscort, i);

					if (initial.EnemyInitialHPsEscort[i] != -1)
					{
						EnableHPBar(refindex, initial.EnemyInitialHPsEscort[i], resultHPs[refindex], initial.EnemyMaxHPsEscort[i]);

						ShipDataMaster ship = bd.Initial.EnemyMembersEscortInstance[i];

						var bar = HPBars[refindex];
						bar.Text = Constants.GetShipClassClassification(ship.ShipType);

						ToolTipInfo.SetToolTip(bar,
							string.Format("{0} Lv. {1}\r\nHP: ({2} → {3})/{4} ({5}) [{6}]\r\n\r\n{7}",
								ship.NameWithClass,
								bd.Initial.EnemyLevelsEscort[i],
								Math.Max(bar.PrevValue, 0),
								Math.Max(bar.Value, 0),
								bar.MaximumValue,
								bar.Value - bar.PrevValue,
								Constants.GetDamageState((double)bar.Value / bar.MaximumValue, isPractice, ship.IsLandBase),
								bd.GetBattleDetail(refindex)
								)
							);
					}
					else
					{
						DisableHPBar(refindex);
					}
				}

			}
			else
			{
				FleetEnemyEscort.Visible = false;

				foreach (var i in BattleIndex.EnemyEscort)
					DisableHPBar(i);
			}




			if ((isFriendCombined || (hasFriend7thShip && !Utility.Configuration.Config.FormBattle.Display7thAsSingleLine)) && isEnemyCombined)
			{
				foreach (var bar in HPBars)
				{
					bar.Size = SmallBarSize;
					bar.Text = null;
				}
			}
			else
			{
				bool showShipType = Utility.Configuration.Config.FormBattle.ShowShipTypeInHPBar;

				foreach (var bar in HPBars)
				{
					bar.Size = DefaultBarSize;

					if (!showShipType)
						bar.Text = "HP:";
				}
			}


			{   // support
				PhaseSupport support = null;

				if (bd is BattleDayFromNight bddn)
				{
					if (bddn.NightSupport?.IsAvailable ?? false)
						support = bddn.NightSupport;
				}
				if (support == null)
					support = bd.Support;

				if (support?.IsAvailable ?? false)
				{

					switch (support.SupportFlag)
					{
						case 1:
							FleetFriend.ImageIndex = (int)ResourceManager.EquipmentContent.CarrierBasedTorpedo;
							break;
						case 2:
							FleetFriend.ImageIndex = (int)ResourceManager.EquipmentContent.MainGunL;
							break;
						case 3:
							FleetFriend.ImageIndex = (int)ResourceManager.EquipmentContent.Torpedo;
							break;
						case 4:
							FleetFriend.ImageIndex = (int)ResourceManager.EquipmentContent.DepthCharge;
							break;
						default:
							FleetFriend.ImageIndex = (int)ResourceManager.EquipmentContent.Unknown;
							break;
					}

					FleetFriend.ImageAlign = ContentAlignment.MiddleLeft;
					ToolTipInfo.SetToolTip(FleetFriend, "支援攻撃\r\n" + support.GetBattleDetail());

					if ((isFriendCombined || hasFriend7thShip) && isEnemyCombined)
						FleetFriend.Text = "自軍";
					else
						FleetFriend.Text = "自軍艦隊";

				}
				else
				{
					FleetFriend.ImageIndex = -1;
					FleetFriend.ImageAlign = ContentAlignment.MiddleCenter;
					FleetFriend.Text = "自軍艦隊";
					ToolTipInfo.SetToolTip(FleetFriend, null);

				}
			}


			if (bd.Initial.IsBossDamaged)
				HPBars[BattleIndex.EnemyMain1].BackColor = Color.MistyRose;

			if (!isBaseAirRaid)
			{
				foreach (int i in bd.MVPShipIndexes)
					HPBars[BattleIndex.Get(BattleSides.FriendMain, i)].BackColor = Color.Moccasin;

				if (isFriendCombined)
				{
					foreach (int i in bd.MVPShipCombinedIndexes)
						HPBars[BattleIndex.Get(BattleSides.FriendEscort, i)].BackColor = Color.Moccasin;
				}
			}

			foreach (var bar in HPBars)
				bar.ResumeUpdate();
		}
Exemplo n.º 11
0
 public BattleAirDetail(BattleData bd, int waveIndex, BattleIndex defenderId, double damage, int criticalType, int attackType, int defenderHP)
     : base(bd, BattleIndex.Invalid, defenderId, new double[] { damage }, new int[] { criticalType }, attackType, null, defenderHP)
 {
     WaveIndex = waveIndex;
 }
Exemplo n.º 12
0
        /// <param name="bd">戦闘情報。</param>
        /// <param name="attackerIndex">攻撃側のインデックス。</param>
        /// <param name="defenderIndex">防御側のインデックス。</param>
        /// <param name="damages">ダメージの配列。</param>
        /// <param name="criticalTypes">命中判定の配列。</param>
        /// <param name="attackType">攻撃種別。</param>
        /// <param name="defenderHP">防御側の攻撃を受ける直前のHP。</param>
        public BattleDetail(BattleData bd, BattleIndex attackerIndex, BattleIndex defenderIndex, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, int defenderHP)
        {
            Battle = bd;

            AttackerIndex  = attackerIndex;
            DefenderIndex  = defenderIndex;
            RawDamages     = damages;
            Damages        = damages.Select(dmg => (int)dmg).ToArray();
            GuardsFlagship = damages.Select(dmg => dmg != Math.Floor(dmg)).ToArray();
            CriticalTypes  = criticalTypes.Select(i => (CriticalType)i).ToArray();
            AttackType     = attackType;
            EquipmentIDs   = equipmentIDs;
            DefenderHP     = defenderHP;

            int[] slots = null;


            if (AttackerIndex < 0)
            {
                Attacker = null;
                slots    = null;
            }
            else
            {
                switch (AttackerIndex.Side)
                {
                case BattleSides.FriendMain:
                {
                    var atk = bd.Initial.FriendFleet.MembersInstance[AttackerIndex.Index];
                    Attacker = atk.MasterShip;
                    slots    = atk.AllSlotMaster.ToArray();
                }
                break;

                case BattleSides.FriendEscort:
                {
                    var atk = bd.Initial.FriendFleetEscort.MembersInstance[AttackerIndex.Index];
                    Attacker = atk.MasterShip;
                    slots    = atk.AllSlotMaster.ToArray();
                }
                break;

                case BattleSides.EnemyMain:
                    Attacker = bd.Initial.EnemyMembersInstance[AttackerIndex.Index];
                    slots    = bd.Initial.EnemySlots[AttackerIndex.Index];
                    break;

                case BattleSides.EnemyEscort:
                    Attacker = bd.Initial.EnemyMembersEscortInstance[AttackerIndex.Index];
                    slots    = bd.Initial.EnemySlotsEscort[AttackerIndex.Index];
                    break;
                }
            }


            if (bd.IsBaseAirRaid)
            {
                Defender = null;
            }
            else
            {
                switch (DefenderIndex.Side)
                {
                case BattleSides.FriendMain:
                    Defender = bd.Initial.FriendFleet.MembersInstance[DefenderIndex.Index].MasterShip;
                    break;

                case BattleSides.FriendEscort:
                    Defender = bd.Initial.FriendFleetEscort.MembersInstance[DefenderIndex.Index].MasterShip;
                    break;

                case BattleSides.EnemyMain:
                    Defender = bd.Initial.EnemyMembersInstance[DefenderIndex.Index];
                    break;

                case BattleSides.EnemyEscort:
                    Defender = bd.Initial.EnemyMembersEscortInstance[DefenderIndex.Index];
                    break;
                }
            }


            if (AttackType == 0 && Attacker != null)
            {
                AttackType = CaclulateAttackKind(slots, Attacker.ShipID, Defender.ShipID);
            }
        }
Exemplo n.º 13
0
 public BattleNightDetail(BattleData bd, BattleIndex attackerId, BattleIndex defenderId, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, bool nightAirAttackFlag, int defenderHP)
     : base(bd, attackerId, defenderId, damages, criticalTypes, attackType, equipmentIDs, defenderHP)
 {
     NightAirAttackFlag = nightAirAttackFlag;
 }
Exemplo n.º 14
0
 public BattleDayDetail(BattleData bd, BattleIndex attackerId, BattleIndex defenderId, double[] damages, int[] criticalTypes, int attackType, int[] equipmentIDs, int defenderHP)
     : base(bd, attackerId, defenderId, damages, criticalTypes, attackType, equipmentIDs, defenderHP)
 {
 }