Separate Personal and Ship Inventory

Post ideas & suggestions you have pertaining to the game here.
F50
Fleet Officer
Fleet Officer
Posts: 1004
Joined: Sat Mar 11, 2006 5:25 pm

That would be a good idea but it would have the same memory leak possibility.

I like the idea of having two tabs cargo viewing, regular and reserve. It would be possible to access everything from either tab, you would just have to choose which one. The only exception would be the 'U' key which would need to have a small config option somewhere (sort 'U' list to view regular-reserve, sort 'U' list to view reserve-regular, view only reserve, view only regular). All newly received items would appear in the regular hold. I don't see a reason for more than two holds as both tabs would be sorted in the way the hold is now.
User avatar
Salvagebot 1.0
Commonwealth Pilot
Commonwealth Pilot
Posts: 56
Joined: Sat Oct 06, 2007 6:43 am
Location: Tinker Sanford

Ahh, now I understand what Czert was talking about.

Yes, tabbed inventories would work, and you'd only really need 2 tabs. Good idea!

It would also be helpful if fuel had its own category so it'd sort the same way weapons, damaged weapons, ammo, shields, damaged shields, armor, and damaged armor are all sorted separately.

Medical supplies too. They should have their own sorting category.

And I want a Red Ryder BB gun, too!

Hmm, just to be clear:

All lists of items in the game are sorted first by category and second by level. This is readily apparent by the way weapons and shields and the like sort to the top, without high-level trade goods like ithalium ore getting in the way. So far so good.
The problem is the "miscellaneous" category. It's too big. There are items in this category which aren't really miscellaneous, particularly fuel.
If fuel had its own category it would mean all the fuel would be grouped together, followed by the hodgepodge of ore, food, and other trade goods.
"Sort by category" is a great idea and already implemented, we just need a couple more categories. This should be an extremely cheap way to improve inventory management.
Personal effects like ribbons and ID chips are a category.
Fuel is pretty clearly a category.
Medical supplies I believe should also be a category since there are 2 specific places they're worth far more than their resale value.
Ore because of its usefulness in the fabricator I'd also think should get its own category.
Illegals since you're always hiding them in the early game probably warrant a category as well.
I can't think of a reason to have other categories, but other players might.
Since there's already a sort order "category + level" it would mean very little work on the programmer's part: just change a few categorizations from "miscellaneous" to some newly-designated categories like "fuel". Problem solved.
User avatar
FAD
Militia Captain
Militia Captain
Posts: 732
Joined: Thu Aug 10, 2006 5:33 am
Location: Area 51

Problem solved, for the most part, perhaps. Then we have those categorized meds along with those illegal meds. Which should those be categorized in? Placing them in one or the other could cause accidental and unwarrented forgetfulness where the CW is concerned. :x
And one thing I hate most is losing my illegals due to forgetfulness.

But overall, I do like the idea of categorizing everything so they appear in their proper place in the hold. Would be so much easier in many respects.
User avatar
Salvagebot 1.0
Commonwealth Pilot
Commonwealth Pilot
Posts: 56
Joined: Sat Oct 06, 2007 6:43 am
Location: Tinker Sanford

Illegal meds are illegal first, as the most important thing about unlicensed cancer dust is that it will be taken from you if you're not careful with it.

Re: Tabs
Mr. Moromisato appears to have gone to great lengths to make all of the game except the intro keyboard-friendly. Once I click "Continue" I never touch the mouse again.

Tabs without hotkeys would require use of the mouse, breaking with the keyboard-friendly design. I'm not saying that's bad, but if you didn't want to lose that design feature then you'd need an easy way to work the tabs from the keyboard, like hotkeys that select the active tab. Bah, what am I saying, the left and right arrows could do it. Duuh. Never mind.

It would be pretty cool if the mouse complemented the keyboard, like if you could click on targets to target them, right-click on a target to dock with it, roll the mouse wheel to cycle weapons (like "Mount and Blade" only faster), etc. I can think of a couple of spots where I would find it useful, like right-clicking to dock on all the fiddly bits of a Sung Slave Camp you've just busted.
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

Personally, I'd go one further, a Weapons bay, so all weapons like missles, are in one place. IT makes more sense and logic then having in the cargo hold nad hte Misle system loading them? Little robots? :D
Image
Image
User avatar
Salvagebot 1.0
Commonwealth Pilot
Commonwealth Pilot
Posts: 56
Joined: Sat Oct 06, 2007 6:43 am
Location: Tinker Sanford

I'm not sure what would be gained by a separate weapons bay, given that some merchants trade in items including weapons and some don't.

Its payoff would be negative -- it would add work in all situations where docked with stations that traded in both weapons and other kinds of merchandise, unless there's something about your idea I'm not understanding.
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

It's easy to have any inventory screen filter out for certain types of items.

Creating several playership dockscreens to show 'equip' versus 'personal' items would be as easy as giving the items you want to seperate a modifier and filtering for it.

If you have a bunch of items you want to keep seperate, tag them differently.
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

Periculi wrote:It's easy to have any inventory screen filter out for certain types of items.

Creating several playership dockscreens to show 'equip' versus 'personal' items would be as easy as giving the items you want to seperate a modifier and filtering for it.

If you have a bunch of items you want to keep seperate, tag them differently.

Hmm how?
Image
Image
F50
Fleet Officer
Fleet Officer
Posts: 1004
Joined: Sat Mar 11, 2006 5:25 pm

Wow, actually that's amazingly easy. Just tag each item and then have a hotkey (possibly including a special key such as ctrl to differentiate from undock and such) to display only [a]ll, llegal items, [w]eapons, [f]uel, [c]ommodities, etc.
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

I'm a noob at modding. A little example would be nice. :) And apprieated. ;)
Image
Image
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

Code: Select all

<DockScreen UNID="&dsDeviceUpgrade1;"
		name=				"=(objGetName gSource)"
		type=				"itemPicker"
		backgroundID=		"&rsItemListScreen;"
		>

	<ListOptions
		dataFrom=	"player"
		list=		"dI; +upgrade"
		/>

	<Panes>
		<Default
				desc=	"Pick available upgrade.">

			<Initialize>
				(block (thisItem)
					(setq thisItem (scrGetItem gScreen))
					(if thisItem
						(block Nil
							(setq gResult (shpCanRemoveDevice gPlayerShip thisItem))
							
							; Make up the install cost
							(setq gCost (divide (multiply gMargin (itmGetInstallCost thisItem)) 5))

							(switch
								(eq gResult 1)
									(block Nil
										(scrSetDesc gScreen "Your ship has too much cargo to be able to remove the cargo expansion.")
										(setq thisItem Nil)
										)
										
								(not (eq gResult 0))
									(block Nil
										(scrSetDesc gScreen "The upgrade cannot be performed.")
										(setq thisItem Nil)
										)
									
								(gr (itmGetMass thisItem) (objGetCargoSpaceLeft gPlayerShip))
									(block Nil
										(scrSetDesc gScreen "The technicians insist you clean some room in your holds for them to work in first.")
										(setq thisItem Nil)
										)
								
								(ls (plyGetCredits gPlayer) gCost)
									(scrSetDesc gScreen (cat "We can upgrade your ship for " gCost " credits. Unfortunately, you cannot afford the cost."))

								(eq gCost 0)
									(scrSetDesc gScreen (cat "This ship can be upgraded free of charge."))

								(scrSetDesc gScreen
									(cat "We can upgrade your ship for " gCost " credits.")
									)
								)
							)
						(scrSetDesc gScreen "We cannot perform any upgrading for your ship.")
						)

					; Enable/disable actions
					(scrEnableAction gScreen 0
						(and thisItem (geq (plyGetCredits gPlayer) gCost))
						)
					)
			</Initialize>

			<Actions>
				<Action name="Upgrade your ship" imageID="&rsItemListScreen;" imageIndex="1" default="1" key="U">
					(block (thisItem)
						(setq thisItem (scrGetItem gScreen))

						(if (and thisItem (geq (plyGetCredits gPlayer) gCost))
							(block Nil
								(shpRemoveDevice gPlayerShip (scrGetItemListCursor gScreen))
								(plyCharge gPlayer gCost)
								(scrShowScreen gScreen gPrevScreen gPrevPane)
								)
							)
						)
				</Action>

				<Action name="Cancel" imageID="&rsItemListScreen;" imageIndex="0" cancel="1" key="C">
					(scrShowScreen gScreen gPrevScreen gPrevPane)
				</Action>

			</Actions>

		</Default>

	</Panes>

</DockScreen>
Here is the code for a dockscreen I added to commonwealth drydocks. What it does is exactly from the RemoveDevice dockscreen, except where the <ListOptions tag has been altered to only find devices with the tag 'upgrade' in the player inventory of installed devices.

Code: Select all

   <ListOptions
      dataFrom=   "player"
      list=      "dI; +upgrade"
      /> 
The screen allows only devices with 'upgrade' tag to be seen on the item list and with some other changes it also can only be removed at this screen- the regular RemoveDevice screens I altered to be blind to the 'upgrade' tag.

The device is installed on a playership in the initial config, before the game starts. It is a blank device that merely occupies some device slots. When you go to the special remove page and 'upgrade' your ship, the device is removed and the device slots can now be used.

In order to hide the device as much as possible, I put in filters on the playership cargo and configuration view, normal device screens, or anywhere else I could find to put the filter.

The net result is a remove device screen for a special class of upgrade devices.

I just copied an existing dockscreen operation I needed and placed my filters in the right spot and now I have a mod to upgrade my playership with more device slots as the game progresses. :)

This same approach could be used to separate out any 'class' of items and only display them where you want- specialty shops, personal locker of the playership, whatever you like.
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

Periculi wrote:

Code: Select all

<DockScreen UNID="&dsDeviceUpgrade1;"
		name=				"=(objGetName gSource)"
		type=				"itemPicker"
		backgroundID=		"&rsItemListScreen;"
		>

	<ListOptions
		dataFrom=	"player"
		list=		"dI; +upgrade"
		/>

	<Panes>
		<Default
				desc=	"Pick available upgrade.">

			<Initialize>
				(block (thisItem)
					(setq thisItem (scrGetItem gScreen))
					(if thisItem
						(block Nil
							(setq gResult (shpCanRemoveDevice gPlayerShip thisItem))
							
							; Make up the install cost
							(setq gCost (divide (multiply gMargin (itmGetInstallCost thisItem)) 5))

							(switch
								(eq gResult 1)
									(block Nil
										(scrSetDesc gScreen "Your ship has too much cargo to be able to remove the cargo expansion.")
										(setq thisItem Nil)
										)
										
								(not (eq gResult 0))
									(block Nil
										(scrSetDesc gScreen "The upgrade cannot be performed.")
										(setq thisItem Nil)
										)
									
								(gr (itmGetMass thisItem) (objGetCargoSpaceLeft gPlayerShip))
									(block Nil
										(scrSetDesc gScreen "The technicians insist you clean some room in your holds for them to work in first.")
										(setq thisItem Nil)
										)
								
								(ls (plyGetCredits gPlayer) gCost)
									(scrSetDesc gScreen (cat "We can upgrade your ship for " gCost " credits. Unfortunately, you cannot afford the cost."))

								(eq gCost 0)
									(scrSetDesc gScreen (cat "This ship can be upgraded free of charge."))

								(scrSetDesc gScreen
									(cat "We can upgrade your ship for " gCost " credits.")
									)
								)
							)
						(scrSetDesc gScreen "We cannot perform any upgrading for your ship.")
						)

					; Enable/disable actions
					(scrEnableAction gScreen 0
						(and thisItem (geq (plyGetCredits gPlayer) gCost))
						)
					)
			</Initialize>

			<Actions>
				<Action name="Upgrade your ship" imageID="&rsItemListScreen;" imageIndex="1" default="1" key="U">
					(block (thisItem)
						(setq thisItem (scrGetItem gScreen))

						(if (and thisItem (geq (plyGetCredits gPlayer) gCost))
							(block Nil
								(shpRemoveDevice gPlayerShip (scrGetItemListCursor gScreen))
								(plyCharge gPlayer gCost)
								(scrShowScreen gScreen gPrevScreen gPrevPane)
								)
							)
						)
				</Action>

				<Action name="Cancel" imageID="&rsItemListScreen;" imageIndex="0" cancel="1" key="C">
					(scrShowScreen gScreen gPrevScreen gPrevPane)
				</Action>

			</Actions>

		</Default>

	</Panes>

</DockScreen>
Here is the code for a dockscreen I added to commonwealth drydocks. What it does is exactly from the RemoveDevice dockscreen, except where the <ListOptions tag has been altered to only find devices with the tag 'upgrade' in the player inventory of installed devices.

Code: Select all

   <ListOptions
      dataFrom=   "player"
      list=      "dI; +upgrade"
      /> 
The screen allows only devices with 'upgrade' tag to be seen on the item list and with some other changes it also can only be removed at this screen- the regular RemoveDevice screens I altered to be blind to the 'upgrade' tag.

The device is installed on a playership in the initial config, before the game starts. It is a blank device that merely occupies some device slots. When you go to the special remove page and 'upgrade' your ship, the device is removed and the device slots can now be used.

In order to hide the device as much as possible, I put in filters on the playership cargo and configuration view, normal device screens, or anywhere else I could find to put the filter.

The net result is a remove device screen for a special class of upgrade devices.

I just copied an existing dockscreen operation I needed and placed my filters in the right spot and now I have a mod to upgrade my playership with more device slots as the game progresses. :)

This same approach could be used to separate out any 'class' of items and only display them where you want- specialty shops, personal locker of the playership, whatever you like.
Thanks... At some point, I will figure out what to do with this example. :) I'm a noob. But thanks! I appriate it.
Image
Image
F50
Fleet Officer
Fleet Officer
Posts: 1004
Joined: Sat Mar 11, 2006 5:25 pm

do you have to quote long, long pages of code?
User avatar
Ttech
Fleet Admiral
Fleet Admiral
Posts: 2767
Joined: Tue Nov 06, 2007 12:03 am
Location: Traveling in the TARDIS
Contact:

F50 wrote:do you have to quote long, long pages of code?
Because I was using my iPAQ, and I didn't see the long code.
Otherwise I'd quote it but remobve the code. Sorry.
Image
Image
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

:lol: I thought it was a just a teeny little bit of code.

/me pets lovely new prototype expansion mod weighing in at an unquotable 2.5 mb of xml. Good little code, debug. no! stop jumping! debug! down code, down! debug! Debug! Oh NO! Why do you crash without error reporting!! arrrgh..

ahrmhmm hey, you know... the personal inventory filter gives me an idea. You could have a few extra ship's interior screens to handle custom cargo holds- I wonder how hard it would be to create a working hyperhold- something that disappears the mass (and imaginary corresponding volume) of the items you stow in it.
Post Reply