package com.rebelkeithy.ftl.actions; import java.util.Set; import com.rebelkeithy.ftl.augmentations.AbstractAugmentation; import com.rebelkeithy.ftl.augmentations.AugmentationRegistry; import com.rebelkeithy.ftl.properties.Properties; import com.rebelkeithy.ftl.ship.Ship; public class InstallAugmentationAction extends Action { public InstallAugmentationAction(String action) { super(action); } @Override public void preform(String action, Object... params) { //TODO: Check for augmentation in inventory Ship ship = game.getShip((String) params[0]); if(ship == null) return; String augName = (String) params[1]; AbstractAugmentation aug = AugmentationRegistry.getAugmentation(augName); if(aug == null) return; Properties prop = ship.getProperties(); Properties augmentations = prop.getProperty("augmentations"); if(augmentations == null) { augmentations = new Properties(); prop.setProperty("augmentations", augmentations); } Set<String> augs = augmentations.getKeys(); int numAugs = 0; for(String i : augs) { numAugs += augmentations.getInteger(i); } if(numAugs < 3) { int numThisAug = augmentations.getInteger(augName); augmentations.setInteger(augName, numThisAug + 1); aug.install(ship.getName()); } } }