Hello there. :D
I was just thinking how nice it would be to read some blog before getting some sleep.
Yay.
Lucky me.
All good stuff. Will the brief sensor ping on the map (especially the in-system one) for certain quest locations be more easy to use in this new intel screen? Previously, it was a pain to use the ping, and I don't even remember the exact process of how it's done; it was never clear when you could use the intel screen for that to begin with.
I disagree with the circular icons on the basis that they are completely out of order with the TriPad style (rectangle with clipped corners). I find the stylistic dissonance much more irritating than the icons "not lining up to a grid," which has never even crossed my mind in my time playing. They also appear to be "suffocating" the icons, which have all been designed for use with the square shape, as seen on the left of the screen. They feel messier in the new setup, and much cleaner before, as I see it.
Good luck with further progress.
P.S. Add orbital bombardment (even if it's just a text event) and I will love you forever.
You just select the item in the list and press "S"
QuoteQuote from: Robbie Vulcan on Today at 10:35:52 AM
P.S. Add orbital bombardment (even if it's just a text event) and I will love you forever.
That may possibly have several TODO items related to it.
Or it may not. No promises, though
With the remaining duration on the bounty in -days- (not the current intel UI's useless '1 month remaining' that could mean 'you've got 30 days to get out there and have plenty of time' or could mean 'this expires tomorrow and you should just ignore it').
Assuming we can get trade fleet departure info for hostile factions? Hm... perhaps that's a good use for the old install-a-comm-sniffer action?
The first thing that hits me, reading this, is how the tags work. Yes, it's a definite improvement over the current UI... but when bounty hunting (for an example of one plausible activity), here's what I actually want out of the intel screen:
Show me a map, with fuel range indicators.
On that map, show the location of every bounty that will reward credits (i.e. not just Hegemony-tagged, but all non-hostile factions' tags).
With the remaining duration on the bounty in -days- (not the current intel UI's useless '1 month remaining' that could mean 'you've got 30 days to get out there and have plenty of time' or could mean 'this expires tomorrow and you should just ignore it').
And the ability to click on any of those icons to get the full details of that bounty.
(Edit: Actually, I'd also like to see bounties that won't award credits in some greyed-out form, because otherwise if you get multiple bounties in the same place you could get a real surprise when you jump in expecting to fight one pirate fleet, and instead get two - one of which won't give you a payout.)
Similarly, for your trade fleet departures, I'd want to be able to tag "all hostile factions" rather than one faction at a time. (Assuming we can get trade fleet departure info for hostile factions? Hm... perhaps that's a good use for the old install-a-comm-sniffer action?)
For your other points, I think the new UI has all of that covered. I mean, if it was a dedicated, specifically-for-bounties UI, it might also show the days remaining on the icon (or it might not, depending on how busy that looked), but with a few allowances for the UI being general-purpose.I really can't agree here - the days remaining for a bounty is information that -needs- to be visible on the map, because otherwise I have to click through every icon, see which bounty it matches up to, and then manually ignore entries that are too close to expiring. Now, this doesn't necessarily need to be presented in text form; a way to filter events by time in addition to tag would work (especially if it combined with travel time so I could filter out "events my fleet cannot possibly get to before they expire"), as could some sort of time display built into the icon (though most of the simple ways of doing that only work if we assume all bounties have the same initial duration).
I would like to be able to see exploration missions and bounties on the same map since I often try to chain multiple different mission types in one expedition. Will selecting 'bounties' and 'exploration' show only events with both the mission and bounty tag? or will it show both missions and bounties? A good alternative might be player-placed markers on the map that persist when switching tags. Or I guess you mentioned the 'important' tag, that could be a work around maybe.
some sort of time display built into the icon (though most of the simple ways of doing that only work if we assume all bounties have the same initial duration).
For fuel, hmm. I think I can actually work that in - didn't want to put the full-fledged map filter in there, but it really doesn't have to be that. There - something like this (in fact, so much "like" this that it is this):
I really can't agree here - the days remaining for a bounty is information that -needs- to be visible on the map, because otherwise I have to click through every icon, see which bounty it matches up to, and then manually ignore entries that are too close to expiring. Now, this doesn't necessarily need to be presented in text form; a way to filter events by time in addition to tag would work (especially if it combined with travel time so I could filter out "events my fleet cannot possibly get to before they expire"), as could some sort of time display built into the icon (though most of the simple ways of doing that only work if we assume all bounties have the same initial duration).
I'll admit, I'm focusing on bounties here because that's what, in the current game, is the important thing on the intel screen for my playstyle. However, the same thing applies to any form of time-limited event. If I'm a trader looking to take advantage of temporary shortfalls, I need to be able to figure out whether I can get there in time. If I'm a pirate looking at intercepting a trader's convoy, I need to be able to figure out if I have enough time to intercept the fleet. This is critical information; without it, I have to check through each map icon individually to figure out which ones represent actual opportunities and which ones are just chaff.
The only two cases (of those currently presented) where time isn't a critical factor are missions (where the timer starts ticking when you accept it and thus you won't have ones that are almost-expired cluttering up the map), and hazard beacons (which have no time-relevant data at all, though for these it'd still be nice to be able to mark systems that you know you've cleared; a sort of a 'tag as unimportant' rather than the current 'tag as important' option.)
some sort of time display built into the icon (though most of the simple ways of doing that only work if we assume all bounties have the same initial duration).
Great Idea, I'd love a clock-like timer build into the icon. Another potential advantage of round icons:)
Maybe it could only start to tick down when "absolute time left" + "projected player travel time to icon location" reach a certain treshold.
Speaking of which - what's the sorting criterion for the event list on the left, there? Time remaining would be a useful option for some event types.
I would like to be able to see exploration missions and bounties on the same map since I often try to chain multiple different mission types in one expedition. Will selecting 'bounties' and 'exploration' show only events with both the mission and bounty tag? or will it show both missions and bounties? A good alternative might be player-placed markers on the map that persist when switching tags. Or I guess you mentioned the 'important' tag, that could be a work around maybe.
I'm not sure if this has been added or already fixed when hovering over a planet on the map. I want to know my relationship of said faction in that sector. When I hover over Corvus,it will show Hedgemony but in order to see if I'm friend or foe I have to go to factions tab. It is a pain do bounce back and forth on these tab since you lose information of what your doing.
Can you hide certain tags which can be spoilers until the player encounters them in the world? I'm pretty sure theare a spoiler for newcomers.SpoilerRemnants[close]
Lastly, is it possible for the map to be functional while the game is unpaused, perhaps with additional time acceleration functions? If the player wants to pass time while keeping appraised of Sector happenings, that would be a way to do it.
This is highly relevant to my interests.
No, seriously, I'm loving this. Tag based systems are so wonderful, I wish I could use tags to organize all my real-world stuff, too. And I'm sure that you made it easy to, as you put it, "visualize the spatial relationships between events" is a huge step forward for game flow.
The only thing I can think of that's still sub-optimal is the separate map. It could probably be rolled completely into the intel UI. Oh, well.
Ideally, I think, it would show all, but items whetr both tags apply are on the top of the list.
Hopefully this will put the fuel range overlay in front of my face more often. [Insert self-deprecating smirk]
So, if I'm reading that right, it's sorted by importance, then type, and then is completely random if, say, you just came back from a two-month exploratory mission and got info on all of them at the exact same time?Speaking of which - what's the sorting criterion for the event list on the left, there? Time remaining would be a useful option for some event types.
It's sorted by importance, then type, and then by when the player found out about it. So e.g. within personal bounties, the newest ones would show up closer to the top of the list.
1. Construct a Mission where you have to use the Intel system (including a little light sorting / filtering) to find a thing.
2. Use some methodology to get players to regularly check out Intel.
Oh, hmm! Got excited for a second, but I think the icons are too small for that to be apparent.
Taking on a commission requires talking to a high-ranking faction officialHa, did you happen to take this idea from Mount & Blade by any chance?
It also feels like the new intel notifications are large enough (see: first screenshot in blog post) that it'd be pretty hard to miss entirely, though possibly some sort of visual attention-getter could improve things further.My main feeling about it is that there's going to be a stream of such data whenever we're traveling about. At various points, the game needs to point users towards that specific UI element, so that newbies know, "that stuff on the left is associated with that button on the right". I think that getting people into that area is almost as important as getting them into Command later on; players need to know, "hey, this is where most of the RPG-style missions live; this Sandbox has some structure".
E.G. a color change in the rim would be tiny, but is still seems like it would be helpful:Spoiler(https://i.imgur.com/hkWgCRI.png)[close]
Maybe having the list be a sort of table instead would help? You'd have columns for the faction offering, the location, the reward, and the days remaining. The only disadvantage is it would have to hide the map to be of any use.
Are multiple stages of the same event still displayed as separate report entries, where selecting one report lists all for that event?
(e.g. food shortage started; relief fleet launched; relief fleet turned back/arrived; shortage over)
QuoteTaking on a commission requires talking to a high-ranking faction officialHa, did you happen to take this idea from Mount & Blade by any chance?
I know I did for Nexerelin, just talking to a "real" person adds a bit more personality to the whole exercise (even without the whole oath of fealty bit).
Hypothetical here, but will the Intel screen ever keep track of or let me sort all the individuals I've built reputation with and their general location (i.e. station commanders, patrols I've ticked off, etc.)? Right now, the reputation system for individuals isn't that important but I'm assuming it might be at some point. As it is, I typically have no idea who or where any of these individuals are so that I might exploit/avoid interactions with them.
My main feeling about it is that there's going to be a stream of such data whenever we're traveling about. At various points, the game needs to point users towards that specific UI element, so that newbies know, "that stuff on the left is associated with that button on the right". I think that getting people into that area is almost as important as getting them into Command later on; players need to know, "hey, this is where most of the RPG-style missions live; this Sandbox has some structure".
Anyhow, the overall feel looks great; I love the filters, that'll really help make things simpler and clearer; no more UI layers, endless lists on the left, etc., which I felt really got in the way of getting to the information we need.
Warning BeaconsHonestly, the warning beacons really mean "Hey guys, big monsters and bigger riches! Come ye and plunder!" In this case, farm never-ending Remnants for lots of rare stuff (fighters, HVDs, and others) if we cannot produce them. Also, glorious training for character and officers under the level cap.
During their travels through the Sector, the player finds warning beacons in hyperspace. Now, each such find results in a piece of intel for its location, making it easy to see exactly where these systems are located, and to perhaps note any pattern to their placement that might guide future exploration. (Naturally, so the dangerous systems can be more easily avoided, and not at all plundered for the riches within.)
With trade fleets becoming way easier to intercept now, are there any sort of mechanic in (or planned) to make them rise in difficulty? For example, once you intercept 2 or 3 big fleets they start getting reinforced or even escorted by other fleets.
I just worry this could be a potential easy money pot and/or boring.
This looks like a nice quality of life upgrade. On the rim clock icons, I feel like I will still need to click on them to get the days remaining anyways, because thats what determines if I can make it or not. On the one hand its nice to get some information at a glance, but that information isn't sufficient.
Having tried in the past to figure out how to mod in missions and being very confused, is it possible to have an example implemented using the new system we can learn from?
public class AnalyzeEntityMissionIntel extends BaseMissionIntel {
public static Logger log = Global.getLogger(AnalyzeEntityMissionIntel.class);
protected int reward;
protected FactionAPI faction;
protected MarketAPI market;
protected SectorEntityToken entity;
public AnalyzeEntityMissionIntel(SectorEntityToken entity) {
this.entity = entity;
WeightedRandomPicker<MarketAPI> marketPicker = new WeightedRandomPicker<MarketAPI>();
for (MarketAPI market : Global.getSector().getEconomy().getMarketsCopy()) {
marketPicker.add(market, market.getSize());
}
market = marketPicker.pick();
if (market == null) {
endImmediately();
return;
}
faction = market.getFaction();
if (!market.getFaction().isHostileTo(Factions.INDEPENDENT) && (float) Math.random() > 0.67f) {
faction = Global.getSector().getFaction(Factions.INDEPENDENT);
}
setDuration(120f);
reward = (int) Misc.getDistance(new Vector2f(), entity.getLocationInHyperspace());
reward = (reward / 10000) * 10000;
if (reward < 10000) reward = 10000;
log.info("Created AnalyzeEntityMissionIntel: " + entity.getName() + ", faction: " + faction.getDisplayName());
initRandomCancel();
setPostingLocation(market.getPrimaryEntity());
Global.getSector().getIntelManager().queueIntel(this);
}
public SectorEntityToken getEntity() {
return entity;
}
@Override
protected MissionResult createAbandonedResult(boolean withPenalty) {
if (withPenalty) {
MissionCompletionRep rep = new MissionCompletionRep(RepRewards.HIGH, RepLevel.WELCOMING,
-RepRewards.TINY, RepLevel.INHOSPITABLE);
ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(
new RepActionEnvelope(RepActions.MISSION_FAILURE, rep,
null, null, true, false),
faction.getId());
return new MissionResult(0, result);
}
return new MissionResult();
}
@Override
protected MissionResult createTimeRanOutFailedResult() {
return createAbandonedResult(true);
}
@Override
public void missionAccepted() {
entity.getMemoryWithoutUpdate().set("$aem_target", true, getDuration());
entity.getMemoryWithoutUpdate().set("$aem_eventRef", this, getDuration());
Misc.setFlagWithReason(entity.getMemoryWithoutUpdate(), MemFlags.ENTITY_MISSION_IMPORTANT,
"aem", true, getDuration());
}
@Override
public void endMission() {
entity.getMemoryWithoutUpdate().unset("$aem_target");
entity.getMemoryWithoutUpdate().unset("$aem_eventRef");
Misc.setFlagWithReason(entity.getMemoryWithoutUpdate(), MemFlags.ENTITY_MISSION_IMPORTANT,
"aem", false, 0f);
endAfterDelay();
}
@Override
public void advanceMission(float amount) {
}
@Override
public boolean callEvent(String ruleId, final InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
String action = params.get(0).getString(memoryMap);
CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
CargoAPI cargo = playerFleet.getCargo();
if (action.equals("runPackage")) {
AddRemoveCommodity.addCreditsGainText(reward, dialog.getTextPanel());
cargo.getCredits().add(reward);
MissionCompletionRep rep = new MissionCompletionRep(RepRewards.HIGH, RepLevel.WELCOMING,
-RepRewards.TINY, RepLevel.INHOSPITABLE);
ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(
new RepActionEnvelope(RepActions.MISSION_SUCCESS, rep,
null, dialog.getTextPanel(), true, false),
faction.getId());
setMissionResult(new MissionResult(reward, result));
setMissionState(MissionState.COMPLETED);
endMission();
}
return true;
}
protected void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode) {
Color h = Misc.getHighlightColor();
Color g = Misc.getGrayColor();
float pad = 3f;
float opad = 10f;
float initPad = pad;
if (mode == ListInfoMode.IN_DESC) initPad = opad;
Color tc = getBulletColorForMode(mode);
bullet(info);
boolean isUpdate = getListInfoParam() != null;
if (isUpdate) {
// 3 possible updates: de-posted/expired, failed, completed
if (isFailed() || isCancelled()) {
return;
} else if (isCompleted()) {
if (missionResult.payment > 0) {
info.addPara("%s received", initPad, tc, h, Misc.getDGSCredits(missionResult.payment));
}
CoreReputationPlugin.addAdjustmentMessage(missionResult.rep1.delta, faction, null,
null, null, info, tc, isUpdate, 0f);
}
} else {
// either in small description, or in tooltip/intel list
if (missionResult != null) {
if (missionResult.payment > 0) {
info.addPara("%s received", initPad, tc, h, Misc.getDGSCredits(missionResult.payment));
initPad = 0f;
}
if (missionResult.rep1 != null) {
CoreReputationPlugin.addAdjustmentMessage(missionResult.rep1.delta, faction, null,
null, null, info, tc, isUpdate, initPad);
initPad = 0f;
}
} else {
if (mode != ListInfoMode.IN_DESC) {
info.addPara("Faction: " + faction.getDisplayName(), initPad, tc,
faction.getBaseUIColor(),
faction.getDisplayName());
initPad = 0f;
}
info.addPara("%s reward", initPad, tc, h, Misc.getDGSCredits(reward));
addDays(info, "to complete", duration, tc, 0f);
}
}
unindent(info);
}
@Override
public void createIntelInfo(TooltipMakerAPI info, ListInfoMode mode) {
Color c = getTitleColor(mode);
info.addPara(getName(), c, 0f);
addBulletPoints(info, mode);
}
public String getSortString() {
return "Analyze";
}
public String getName() {
String name = "";
// if (entity.getCustomEntitySpec() != null) {
// name = entity.getCustomEntitySpec().getNameInText();
// } else {
name = entity.getName(); // we want caps on every word since this is a title, so no getNameInText()
// }
return "Analyze " + name + getPostfixForState();
}
@Override
public FactionAPI getFactionForUIColors() {
return faction;
}
public String getSmallDescriptionTitle() {
return getName();
}
@Override
public void createSmallDescription(TooltipMakerAPI info, float width, float height) {
Color h = Misc.getHighlightColor();
Color g = Misc.getGrayColor();
//Color c = getTitleColor(mode);
Color tc = Misc.getTextColor();
float pad = 3f;
float opad = 10f;
info.addImage(faction.getLogo(), width, 128, opad);
String name = "";
String shortName = "";
String isOrAre = "is";
String aOrAn = "a";
if (entity.getCustomEntitySpec() != null) {
name = entity.getCustomEntitySpec().getNameInText();
shortName = entity.getCustomEntitySpec().getShortName();
isOrAre = entity.getCustomEntitySpec().getIsOrAre();
aOrAn = entity.getCustomEntitySpec().getAOrAn();
} else {
name = entity.getName();
shortName = entity.getName();
}
String authorities = "authorities";
if (!faction.getId().equals(market.getFactionId())) {
authorities = "concerns";
}
info.addPara("%s " + authorities + " " + market.getOnOrAt() + " " + market.getName() +
" have posted a reward for running a custom sensor package on " + aOrAn + " " + name + ".",
opad, faction.getBaseUIColor(), Misc.ucFirst(faction.getPersonNamePrefix()));
String loc = BreadcrumbSpecial.getLocatedString(entity, true);
info.addPara("The " + shortName + " " + isOrAre + " " + loc + ".", opad);
if (isPosted() || isAccepted()) {
addBulletPoints(info, ListInfoMode.IN_DESC);
addGenericMissionState(info);
addAcceptOrAbandonButton(info, width, "Accept", "Abandon");
} else {
addGenericMissionState(info);
addBulletPoints(info, ListInfoMode.IN_DESC);
}
}
public String getIcon() {
return Global.getSettings().getSpriteName("campaignMissions", "analyze_entity");
}
public Set<String> getIntelTags(SectorMapAPI map) {
Set<String> tags = super.getIntelTags(map);
tags.add(Tags.INTEL_EXPLORATION);
tags.add(faction.getId());
return tags;
}
@Override
public SectorEntityToken getMapLocation(SectorMapAPI map) {
return entity;
}
}
I'm guessing this is called by the manager component you mentioned that limits the number of missions available.
Will we as modders be able to hook our own in into the same system, or would we write our own plugin to call the missions?
Gave it a shot:
I think this is alright, hmm. Main concern is that I suspect 90% of the players wouldn't know what the heck that means or even notice it in the first place. In which case the relatively low amount of clutter this adds has no upside. Going to keep an eye on this and see how it feels to use.
I mean, yeah, "or" instead of "and" would be nice at times, but I'm not liking the UI/interaction complexity costs that come with that, and of the two, "and" seems the much more useful option. We're dealing with potentially lots of intel, and the goal is to be able to drill down, not show more and more of it.
maybe hovering the cursor over a tag could work as "or"?
Oh, I was thinking something like how the ability icons get partially dimmer, but yeah, this could work. Gave it a shot:That just means one more thing for someone to put in a "Starsector - Top 10 QOL features YOU NEVER KNEW EXISTED!" video in the future. ;)Spoiler(https://i.imgur.com/oyofynp.png)[close]
I think this is alright, hmm. Main concern is that I suspect 90% of the players wouldn't know what the heck that means or even notice it in the first place. In which case the relatively low amount of clutter this adds has no upside. Going to keep an eye on this and see how it feels to use.
Thought about that a bit: maybe hovering the cursor over a tag could work as "or"? No added UI elements, self-explanatory, no danger of cluttering the map with symbols, since you can't hover over more than one tag at a time (so display the symbols of two at most). But it would be nice to view e.g. bounties and missions at the same time to plan an optimal route.
Another benefit: Showing the entirety of two items groups (from hovering) just before showing the overlap of those groups (from then clicking) would be valuable visual information. It would immediately give you a feeling for how similar or dissimilar the two groups are, relative to their size.
How about left click/right click, and highlighting the boxes with diff colors to indicate which you've done. A set of transparent diagonal stripes to cross out the excluded boxes, or some similar indicator like greying the boxes out, would make it easier to visually display how the player input is affecting the filters.
That just means one more thing for someone to put in a "Starsector - Top 10 QOL features YOU NEVER KNEW EXISTED!" video in the future. ;)
Thank you for looking at the warning beacons, I had to write down Where the level 3 ones were on pen and paper previously.
I’m really a fan of the circular time remaining effect on the intel screen. I feel like it’s fairly intuitive to make the leep to understanding what it means after looking at it, then at the tooltip, then at it.
This would suit me perfectly. :)E.G. a color change in the rim would be tiny, but is still seems like it would be helpful:Spoiler(https://i.imgur.com/hkWgCRI.png)[close]
Oh, I was thinking something like how the ability icons get partially dimmer, but yeah, this could work. Gave it a shot:Spoiler(https://i.imgur.com/oyofynp.png)[close]
I think this is alright, hmm. Main concern is that I suspect 90% of the players wouldn't know what the heck that means or even notice it in the first place. In which case the relatively low amount of clutter this adds has no upside. Going to keep an eye on this and see how it feels to use.
New to the forum too, but love this game.
Apologies if this has already been suggested or asked for, but since we're on the topic of faction commissions, I always thought it would be neat if faction commission got more gameplay.
It would be cool to be able to search ships and basically do the same things faction ships do now. Confiscate contraband, take bribes, mark people as criminals etc. Not many space games out there let you play as the navy/police and actually do the things they do, so it would be pretty neat.