Starsector API
Loading...
Searching...
No Matches
CombatDamageData.java
Go to the documentation of this file.
1package com.fs.starfarer.api.campaign;
2
3import java.util.HashMap;
4import java.util.Map;
5
6import com.fs.starfarer.api.fleet.FleetMemberAPI;
7
8public class CombatDamageData {
9
10 public static class DamageToFleetMember {
11 public float hullDamage;
12 }
13
14 public static class DealtByFleetMember {
15 private FleetMemberAPI member;
16 private Map<FleetMemberAPI, DamageToFleetMember> damage = new HashMap<FleetMemberAPI, DamageToFleetMember>();
17 public DealtByFleetMember(FleetMemberAPI member) {
18 this.member = member;
19 }
20
21 public DamageToFleetMember getDamageTo(FleetMemberAPI target) {
22 DamageToFleetMember damageTo = damage.get(target);
23 if (damageTo == null) {
24 damageTo = new DamageToFleetMember();
25 damage.put(target, damageTo);
26 }
27 return damageTo;
28 }
29
30 public void addHullDamage(FleetMemberAPI target, float damage) {
31 getDamageTo(target).hullDamage += damage;
32 }
33
34 public FleetMemberAPI getMember() {
35 return member;
36 }
37
38 public Map<FleetMemberAPI, DamageToFleetMember> getDamage() {
39 return damage;
40 }
41 }
42
43 private Map<FleetMemberAPI, DealtByFleetMember> dealt = new HashMap<FleetMemberAPI, DealtByFleetMember>();
44
45 public Map<FleetMemberAPI, DealtByFleetMember> getDealt() {
46 return dealt;
47 }
48
49 public DealtByFleetMember getDealtBy(FleetMemberAPI member) {
50 DealtByFleetMember dealtBy = dealt.get(member);
51 if (dealtBy == null) {
52 dealtBy = new DealtByFleetMember(member);
53 dealt.put(member, dealtBy);
54 }
55 return dealtBy;
56 }
57
58 public void add(CombatDamageData other) {
59 for (FleetMemberAPI member : other.dealt.keySet()) {
60 DealtByFleetMember curr = getDealtBy(member);
61 DealtByFleetMember adding = other.getDealtBy(member);
62
63 for (FleetMemberAPI target : adding.damage.keySet()) {
64 curr.addHullDamage(target, adding.getDamageTo(target).hullDamage);
65 }
66 }
67 }
68
69}
70
71
72
DealtByFleetMember getDealtBy(FleetMemberAPI member)
Map< FleetMemberAPI, DealtByFleetMember > getDealt()