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); } }
// 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(); }