Skip to content

Commit 53067e6

Browse files
authored
Merge pull request #711 from 7474/copilot/progress-porting-task
Port commented-out VB6 logic to working C# across combat, pilot, and unit systems
2 parents d8844f8 + 419f278 commit 53067e6

File tree

7 files changed

+790
-1371
lines changed

7 files changed

+790
-1371
lines changed

SRC.Sharp/SRCCore/Commands/Command.attack.cs

Lines changed: 76 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,54 +1311,44 @@ private void FinishAttackCommand()
13111311
SRC.UList.CheckAutoHyperMode();
13121312
SRC.UList.CheckAutoNormalMode();
13131313

1314-
//// ADD START MARGE
1315-
//// 再移動
1316-
//if (is_p_weapon && SelectedUnit.Status == "出撃")
1317-
//{
1318-
// if (SelectedUnit.MainPilot().IsSkillAvailable("遊撃") && SelectedUnit.Speed * 2 > SelectedUnitMoveCost)
1319-
// {
1320-
// // 進入イベント
1321-
// if (SelectedUnitMoveCost > 0)
1322-
// {
1323-
// Event.HandleEvent("進入", SelectedUnit.MainPilot().ID, SelectedUnit.x, SelectedUnit.y);
1324-
// if (SRC.IsScenarioFinished)
1325-
// {
1326-
// SRC.IsScenarioFinished = false;
1327-
// return;
1328-
// }
1329-
// }
1330-
1331-
// // ユニットが既に出撃していない?
1332-
// if (SelectedUnit.Status != "出撃")
1333-
// {
1334-
// GUI.RedrawScreen();
1335-
// Status.ClearUnitStatus();
1336-
// return;
1337-
// }
1338-
1339-
// SelectedCommand = "再移動";
1340-
// Map.AreaInSpeed(SelectedUnit);
1341-
// if (!Expression.IsOptionDefined("大型マップ"))
1342-
// {
1343-
// GUI.Center(SelectedUnit.x, SelectedUnit.y);
1344-
// }
1345-
1346-
// GUI.MaskScreen();
1347-
// if (GUI.NewGUIMode)
1348-
// {
1349-
// Application.DoEvents();
1350-
// Status.ClearUnitStatus();
1351-
// }
1352-
// else
1353-
// {
1354-
// Status.DisplayUnitStatus(SelectedUnit);
1355-
// }
1356-
1357-
// CommandState = "ターゲット選択";
1358-
// return;
1359-
// }
1360-
//}
1361-
//// ADD END MARGE
1314+
// 再移動
1315+
if (is_p_weapon && SelectedUnit.Status == "出撃")
1316+
{
1317+
if (SelectedUnit.MainPilot().IsSkillAvailable("遊撃") && SelectedUnit.Speed * 2 > SelectedUnitMoveCost)
1318+
{
1319+
// 進入イベント
1320+
if (SelectedUnitMoveCost > 0)
1321+
{
1322+
Event.HandleEvent("進入", SelectedUnit.MainPilot().ID, "" + SelectedUnit.x, "" + SelectedUnit.y);
1323+
if (SRC.IsScenarioFinished)
1324+
{
1325+
SRC.IsScenarioFinished = false;
1326+
return;
1327+
}
1328+
}
1329+
1330+
// ユニットが既に出撃していない?
1331+
if (SelectedUnit.Status != "出撃")
1332+
{
1333+
GUI.RedrawScreen();
1334+
Status.ClearUnitStatus();
1335+
return;
1336+
}
1337+
1338+
SelectedCommand = "再移動";
1339+
Map.AreaInSpeed(SelectedUnit);
1340+
if (!Expression.IsOptionDefined("大型マップ"))
1341+
{
1342+
GUI.Center(SelectedUnit.x, SelectedUnit.y);
1343+
}
1344+
1345+
GUI.MaskScreen();
1346+
Status.DisplayUnitStatus(SelectedUnit);
1347+
1348+
CommandState = "ターゲット選択";
1349+
return;
1350+
}
1351+
}
13621352

13631353
// 行動数を減らす
13641354
WaitCommand();
@@ -1508,53 +1498,44 @@ private void MapAttackCommand()
15081498

15091499
SelectedPartners.Clear();
15101500

1511-
// TODO Impl 再移動
1512-
//// 再移動
1513-
//if (is_p_weapon && SelectedUnit.Status == "出撃")
1514-
//{
1515-
// if (SelectedUnit.MainPilot().IsSkillAvailable("遊撃") && SelectedUnit.Speed * 2 > SelectedUnitMoveCost)
1516-
// {
1517-
// // 進入イベント
1518-
// if (SelectedUnitMoveCost > 0)
1519-
// {
1520-
// Event.HandleEvent("進入", SelectedUnit.MainPilot().ID, SelectedUnit.x, SelectedUnit.y);
1521-
// if (SRC.IsScenarioFinished)
1522-
// {
1523-
// SRC.IsScenarioFinished = false;
1524-
// return;
1525-
// }
1526-
// }
1527-
1528-
// // ユニットが既に出撃していない?
1529-
// if (SelectedUnit.Status != "出撃")
1530-
// {
1531-
// GUI.RedrawScreen();
1532-
// Status.ClearUnitStatus();
1533-
// return;
1534-
// }
1535-
1536-
// SelectedCommand = "再移動";
1537-
// Map.AreaInSpeed(SelectedUnit);
1538-
// if (!Expression.IsOptionDefined("大型マップ"))
1539-
// {
1540-
// GUI.Center(SelectedUnit.x, SelectedUnit.y);
1541-
// }
1542-
1543-
// GUI.MaskScreen();
1544-
// if (GUI.NewGUIMode)
1545-
// {
1546-
// Application.DoEvents();
1547-
// Status.ClearUnitStatus();
1548-
// }
1549-
// else
1550-
// {
1551-
// Status.DisplayUnitStatus(SelectedUnit);
1552-
// }
1553-
1554-
// CommandState = "ターゲット選択";
1555-
// return;
1556-
// }
1557-
//}
1501+
// 再移動
1502+
if (is_p_weapon && SelectedUnit.Status == "出撃")
1503+
{
1504+
if (SelectedUnit.MainPilot().IsSkillAvailable("遊撃") && SelectedUnit.Speed * 2 > SelectedUnitMoveCost)
1505+
{
1506+
// 進入イベント
1507+
if (SelectedUnitMoveCost > 0)
1508+
{
1509+
Event.HandleEvent("進入", SelectedUnit.MainPilot().ID, "" + SelectedUnit.x, "" + SelectedUnit.y);
1510+
if (SRC.IsScenarioFinished)
1511+
{
1512+
SRC.IsScenarioFinished = false;
1513+
return;
1514+
}
1515+
}
1516+
1517+
// ユニットが既に出撃していない?
1518+
if (SelectedUnit.Status != "出撃")
1519+
{
1520+
GUI.RedrawScreen();
1521+
Status.ClearUnitStatus();
1522+
return;
1523+
}
1524+
1525+
SelectedCommand = "再移動";
1526+
Map.AreaInSpeed(SelectedUnit);
1527+
if (!Expression.IsOptionDefined("大型マップ"))
1528+
{
1529+
GUI.Center(SelectedUnit.x, SelectedUnit.y);
1530+
}
1531+
1532+
GUI.MaskScreen();
1533+
Status.DisplayUnitStatus(SelectedUnit);
1534+
1535+
CommandState = "ターゲット選択";
1536+
return;
1537+
}
1538+
}
15581539

15591540
// 行動終了
15601541
WaitCommand();

0 commit comments

Comments
 (0)