Skip to content

Commit

Permalink
Merge pull request #3988 from IllianiCBT/KillLog_AddScenarioAddContract
Browse files Browse the repository at this point in the history
Added Scenario & Mission Tracking to Kills, Added Ability to Assign Kills to Scenario and/or Mission
  • Loading branch information
HammerGS authored Apr 15, 2024
2 parents 02eb7d0 + 498dea6 commit 52133a3
Show file tree
Hide file tree
Showing 8 changed files with 210 additions and 32 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
dialogAdd.title=Add Scenario Entry
dialogEdit.title=Edit Scenario Entry
lblKill.text=Killed What:
lblKiller.text=Killed With:
dialogAdd.title=Add Kill Entry
dialogEdit.title=Edit Kill Entry
lblKill.text=Target:
lblKiller.text=Killer:
lblDate.text=Date:
lblMissionId.text=Mission:
lblScenarioId.text=Scenario:
btnOK.text=Done
btnClose.text=Cancel
4 changes: 4 additions & 0 deletions MekHQ/src/mekhq/campaign/Campaign.java
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,10 @@ public Scenario getScenario(int id) {
return scenarios.get(id);
}

public Collection<Scenario> getScenarios() {
return scenarios.values();
}

public void setLocation(CurrentLocation l) {
location = l;
}
Expand Down
30 changes: 28 additions & 2 deletions MekHQ/src/mekhq/campaign/Kill.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,19 @@ public class Kill {
private LocalDate date;
private String killed;
private String killer;
private int missionId;
private int scenarioId;

public Kill() {
}

public Kill(UUID id, String kill, String killer, LocalDate d) {
public Kill(UUID id, String kill, String killer, LocalDate d, int missionId, int scenarioId) {
pilotId = id;
this.killed = kill;
this.killer = killer;
date = d;
this.missionId = missionId;
this.scenarioId = scenarioId;
}

public UUID getPilotId() {
Expand All @@ -72,6 +76,14 @@ public String getKilledByWhat() {
return killer;
}

public int getMissionId() {
return missionId;
}

public int getScenarioId() {
return scenarioId;
}

public void setDate(LocalDate d) {
date = d;
}
Expand All @@ -84,6 +96,14 @@ public void setKilledByWhat(String s) {
killer = s;
}

public void setMissionId(int id) {
missionId = id;
}

public void setScenarioId(int id) {
scenarioId = id;
}

public static Kill generateInstanceFromXML(Node wn, Version version) {
Kill retVal = null;
try {
Expand All @@ -100,6 +120,10 @@ public static Kill generateInstanceFromXML(Node wn, Version version) {
retVal.killer = wn2.getTextContent();
} else if (wn2.getNodeName().equalsIgnoreCase("date")) {
retVal.date = MHQXMLUtility.parseDate(wn2.getTextContent().trim());
} else if (wn2.getNodeName().equalsIgnoreCase("missionId")) {
retVal.missionId = Integer.parseInt(wn2.getTextContent());
} else if (wn2.getNodeName().equalsIgnoreCase("scenarioId")) {
retVal.scenarioId = Integer.parseInt(wn2.getTextContent());
}
}
} catch (Exception ex) {
Expand All @@ -117,11 +141,13 @@ public void writeToXML(final PrintWriter pw, int indent) {
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "killed", killed);
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "killer", killer);
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "date", date);
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "missionId", missionId);
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "scenarioId", scenarioId);
MHQXMLUtility.writeSimpleXMLCloseTag(pw, --indent, "kill");
}

@Override
public Kill clone() {
return new Kill(getPilotId(), getWhatKilled(), getKilledByWhat(), getDate());
return new Kill(getPilotId(), getWhatKilled(), getKilledByWhat(), getDate(), getMissionId(), getScenarioId());
}
}
11 changes: 10 additions & 1 deletion MekHQ/src/mekhq/campaign/ResolveScenarioTracker.java
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,8 @@ public void assignKills() {
+ " when trying to assign kills");
continue;
}
status.addKill(new Kill(p.getId(), killed, u.getEntity().getShortNameRaw(), campaign.getLocalDate()));
status.addKill(new Kill(p.getId(), killed, u.getEntity().getShortNameRaw(), campaign.getLocalDate(),
getMissionId(), getScenarioId()));
}
}
}
Expand Down Expand Up @@ -1356,6 +1357,14 @@ public Mission getMission() {
return campaign.getMission(scenario.getMissionId());
}

public int getMissionId() {
return campaign.getMission(scenario.getMissionId()).getId();
}

public int getScenarioId() {
return scenario.getId();
}

public Hashtable<String, String> getKillCredits() {
return killCredits;
}
Expand Down
4 changes: 2 additions & 2 deletions MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -769,11 +769,11 @@ public void actionPerformed(ActionEvent action) {
if (people.length > 1) {
nkd = new AddOrEditKillEntryDialog(gui.getFrame(), true, null,
(unit != null) ? unit.getName() : resources.getString("bareHands.text"),
gui.getCampaign().getLocalDate());
gui.getCampaign().getLocalDate(), gui.getCampaign());
} else {
nkd = new AddOrEditKillEntryDialog(gui.getFrame(), true, selectedPerson.getId(),
(unit != null) ? unit.getName() : resources.getString("bareHands.text"),
gui.getCampaign().getLocalDate());
gui.getCampaign().getLocalDate(), gui.getCampaign());
}
nkd.setVisible(true);
if (nkd.getKill().isPresent()) {
Expand Down
4 changes: 2 additions & 2 deletions MekHQ/src/mekhq/gui/control/EditKillLogControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ private void killTableValueChanged(ListSelectionEvent evt) {

private void addKill() {
AddOrEditKillEntryDialog dialog = new AddOrEditKillEntryDialog(parent, true,
person.getId(), "", campaign.getLocalDate());
person.getId(), "", campaign.getLocalDate(), campaign);
dialog.setVisible(true);
if (dialog.getKill().isPresent()) {
campaign.addKill(dialog.getKill().get());
Expand All @@ -121,7 +121,7 @@ private void addKill() {
private void editKill() {
Kill kill = killModel.getKillAt(killTable.getSelectedRow());
if (null != kill) {
AddOrEditKillEntryDialog dialog = new AddOrEditKillEntryDialog(parent, true, kill);
AddOrEditKillEntryDialog dialog = new AddOrEditKillEntryDialog(parent, true, kill, campaign);
dialog.setVisible(true);
refreshTable();
}
Expand Down
Loading

0 comments on commit 52133a3

Please sign in to comment.