| 118 | } |
| 119 | |
| 120 | @Override |
| 121 | public String getToken(String tokenSource, PlayerCharacter pc, ExportHandler eh) |
| 122 | { |
| 123 | StringTokenizer aTok = new StringTokenizer(tokenSource, ".", false); |
| 124 | //Weapon Token |
| 125 | aTok.nextToken(); |
| 126 | |
| 127 | int merge = Constants.MERGE_ALL; |
| 128 | int weapon; |
| 129 | Equipment eq; |
| 130 | |
| 131 | // First check to see if there is a MERGE token |
| 132 | String token = aTok.nextToken(); |
| 133 | switch (token) |
| 134 | { |
| 135 | case "MERGENONE" -> { |
| 136 | merge = Constants.MERGE_NONE; |
| 137 | token = aTok.nextToken(); |
| 138 | } |
| 139 | case "MERGELOC" -> { |
| 140 | merge = Constants.MERGE_LOCATION; |
| 141 | token = aTok.nextToken(); |
| 142 | } |
| 143 | case "MERGEALL" -> { |
| 144 | merge = Constants.MERGE_ALL; |
| 145 | token = aTok.nextToken(); |
| 146 | } |
| 147 | } |
| 148 | |
| 149 | List<Equipment> weaponList = pc.getExpandedWeapons(merge); |
| 150 | |
| 151 | switch (token) |
| 152 | { |
| 153 | case "ALL" -> token = aTok.nextToken(); |
| 154 | case "EQUIPPED" -> { |
| 155 | // remove all weapons which are not equipped from list |
| 156 | weaponList.removeIf(equipment -> !equipment.isEquipped()); |
| 157 | token = aTok.nextToken(); |
| 158 | } |
| 159 | case "NOT_EQUIPPED" -> { |
| 160 | // remove all weapons which are equipped from list |
| 161 | weaponList.removeIf(Equipment::isEquipped); |
| 162 | token = aTok.nextToken(); |
| 163 | } |
| 164 | case "CARRIED" -> { |
| 165 | // remove all weapons which are not carried from list |
| 166 | weaponList.removeIf(equipment -> equipment.numberCarried().intValue() == 0); |
| 167 | token = aTok.nextToken(); |
| 168 | } |
| 169 | case "NOT_CARRIED" -> { |
| 170 | // remove all weapons which are carried from list |
| 171 | weaponList.removeIf(equipment -> equipment.numberCarried().intValue() > 0); |
| 172 | token = aTok.nextToken(); |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | weapon = getIntToken(token, 0); |
| 177 | if (weapon < weaponList.size()) |