public void saveShip() { if (myTutorialManager != null) return; HullConfig hull; float money; ArrayList<SolItem> items; if (myHero != null) { hull = myHero.getHull().config; money = myHero.getMoney(); items = new ArrayList<SolItem>(); for (List<SolItem> group : myHero.getItemContainer()) { for (SolItem i : group) { items.add(0, i); } } } else if (myTranscendentHero != null) { FarShip farH = myTranscendentHero.getShip(); hull = farH.getHullConfig(); money = farH.getMoney(); items = new ArrayList<SolItem>(); for (List<SolItem> group : farH.getIc()) { for (SolItem i : group) { items.add(0, i); } } } else { hull = myRespawnHull; money = myRespawnMoney; items = myRespawnItems; } SaveManager.writeShip(hull, money, items, this); }
public void beforeHeroDeath() { if (myHero == null) return; float money = myHero.getMoney(); ItemContainer ic = myHero.getItemContainer(); setRespawnState(money, ic, myHero.getHull().config); myHero.setMoney(money - myRespawnMoney); for (SolItem item : myRespawnItems) { ic.remove(item); } }
public void update() { myDraDebugger.update(this); if (myPaused) return; myTimeFactor = DebugOptions.GAME_SPEED_MULTIPLIER; if (myHero != null) { ShipAbility ability = myHero.getAbility(); if (ability instanceof SloMo) { float factor = ((SloMo) ability).getFactor(); myTimeFactor *= factor; } } myTimeStep = Const.REAL_TIME_STEP * myTimeFactor; myTime += myTimeStep; myPlanetManager.update(this); myCam.update(this); myChunkManager.update(this); myMountDetectDrawer.update(this); myObjectManager.update(this); myDraMan.update(this); myMapDrawer.update(this); mySoundManager.update(this); myBeaconHandler.update(this); myHero = null; myTranscendentHero = null; List<SolObject> objs = myObjectManager.getObjs(); for (int i = 0, objsSize = objs.size(); i < objsSize; i++) { SolObject obj = objs.get(i); if ((obj instanceof SolShip)) { SolShip ship = (SolShip) obj; Pilot prov = ship.getPilot(); if (prov.isPlayer()) { myHero = ship; break; } } if (obj instanceof StarPort.Transcendent) { StarPort.Transcendent trans = (StarPort.Transcendent) obj; FarShip ship = trans.getShip(); if (ship.getPilot().isPlayer()) { myTranscendentHero = trans; break; } } } if (myTutorialManager != null) myTutorialManager.update(); }
private void setRespawnState(float money, ItemContainer ic, HullConfig hullConfig) { myRespawnMoney = .75f * money; myRespawnHull = hullConfig; myRespawnItems.clear(); for (List<SolItem> group : ic) { for (SolItem item : group) { boolean equipped = myHero == null || myHero.maybeUnequip(this, item, false); if (equipped || SolMath.test(.75f)) { myRespawnItems.add(0, item); } } } }
// uh, this needs refactoring private void createPlayer(ShipConfig prevShip) { Vector2 pos = myGalaxyFiller.getPlayerSpawnPos(this); myCam.setPos(pos); Pilot pilot; if (myCmp.getOptions().controlType == GameOptions.CONTROL_MOUSE) { myBeaconHandler.init(this, pos); pilot = new AiPilot( new BeaconDestProvider(), true, Fraction.LAANI, false, "you", Const.AI_DET_DIST); } else { pilot = new UiControlledPilot(myScreens.mainScreen); } ShipConfig shipConfig; if (DebugOptions.GOD_MODE) { shipConfig = myPlayerSpawnConfig.godShipConfig; } else if (prevShip != null) { shipConfig = prevShip; } else { shipConfig = myPlayerSpawnConfig.shipConfig; } float money = myRespawnMoney != 0 ? myRespawnMoney : myTutorialManager != null ? 200 : shipConfig.money; HullConfig hull = myRespawnHull != null ? myRespawnHull : shipConfig.hull; String itemsStr = !myRespawnItems.isEmpty() ? "" : shipConfig.items; boolean giveAmmo = prevShip == null && myRespawnItems.isEmpty(); myHero = myShipBuilder .buildNewFar( this, new Vector2(pos), null, 0, 0, pilot, itemsStr, hull, null, true, money, null, giveAmmo) .toObj(this); ItemContainer ic = myHero.getItemContainer(); if (!myRespawnItems.isEmpty()) { for (int i1 = 0, sz = myRespawnItems.size(); i1 < sz; i1++) { SolItem item = myRespawnItems.get(i1); ic.add(item); } } else if (DebugOptions.GOD_MODE) { myItemManager.addAllGuns(ic); } else if (myTutorialManager != null) { for (int i = 0; i < 50; i++) { if (ic.groupCount() > 1.5f * Const.ITEM_GROUPS_PER_PAGE) break; SolItem it = myItemManager.random(); if (!(it instanceof GunItem) && it.getIcon(this) != null && ic.canAdd(it)) { ic.add(it.copy()); } } } ic.seenAll(); AiPilot.reEquip(this, myHero); myObjectManager.addObjDelayed(myHero); myObjectManager.resetDelays(); }