Mixed Questions
-
@Cernel Good Question.
If you ask me I wouldn't substitute anything at all. While it's true that properties files have their limitations, it's certainly possible to have a key with spaces if the spaces are escaped correctly. See https://en.wikipedia.org/wiki/.properties#Format
However because we probably want to stay compatible, this behaviour will probably stay for a while... -
@RoiEX Can you try that? I tried to escape spaces (substituting underscores with spaces with a backslash beforehand) and the game didn't get it.
-
@Cernel it could be the case that we're not implementing it correctly.
Please remind me tomorrow to have a look at this -
Adjusted now but still does not work.
-
@Schulz No line breaking after the equal sign. I really suggest opening the original file with a text editor that can see the line breaks (I'm assuming you opened it with Windows notepad), if that one was formatted correctly.
-
I've succesfully created the Objectives file. Thank you so much.
-
@RoiEX said in Mixed Questions:
@Cernel it could be the case that we're not implementing it correctly.
Please remind me tomorrow to have a look at thisIn
the_pact_of_steel/.../objectives.propertiesI've substituted all occurrences of "Pact_of_Steel_2" with "Pact\ of\ Steel\ 2". The Objectives tab is gone.In any case, if both underscores substitution and backslash escapade [sic] would work, I suppose you developers would have to decide the best practice, and make sure
the_pact_of_steelfollows it.Myself, I prefer underscores to all those backslashes, but the item that I really dislike is that a same character (the underscore in properties) is representing two different ones (the underscore and the space in info name). So, in that case, I think the info name should not be allowed to have spaces and underscores. Thinking again about it, I would actually disallow spaces in infoname, and automatically convert underscores to spaces when the name is shown to the user, but this would require mass converting most current xml (and obliging people to do the same, @RogerCooper comes to mind).
I'm not even sure having this properties file referencing specific games inside a same map was a good idea, to start with. Maybe all this should have been part of the xml only. It is also inconsistent for pretty much any other properties, as, for example, if you customize tooltips you cannot customize them for each game in the map, even though I'm not seeing why having several same-map games with different unit characteristics should be less supported than having the same situation with different objectives, instead. Am I right?
-
@Cernel How about keeping the properties working with underscores, representing both info name underscores and spaces, and deprecating (meaning keeping supporting indefinitely), spaces in info name, while updating the display as to always show underscores in info name as spaces, to the user?
-
@Cernel I agree that this kind of reference isn't really ideal, and there are a lot of other things that I'd consider weird or inconsistent.
I think most of the weirdness comes from the possibility that you can define multiple xmls within a single zip.
IIRC @LaFayette did some brainstorming on what a potential replacement could look like a while back.
In any case I'm not a fan of doing automatic substitutions, because 1. it adds complexity and might be confusing to new map makers who would have to learn about it first and 2. In my experience this leads down a rabbit hole where more and more substitutions are demanded, where it would be simpler to just make a clear destinction between display names and actual unique keys to separate maps.
-
FWIW, the way maps are linked to folder, to source XML file, and then to the display name is very archaic and problem needs a better design. The duplication is painful and source of errors. Maps going to http-server and being stored in database instead of repositories will be an opportunity for us to re-think this.
-
@beelee said in Mixed Questions:
The spelling needs to be the same as the map name at the top of the xml (not the bottom of xml )except you need to use underscores "_" instead of "spaces".
So this "World War II v3 1941" is written like this in objectives.properties "World_War_II_v3_1941".
@beelee I just wanted to say "thank you"; as this just helped me resolve an issue I didn't even realize that I had. Since the Objectives tab wasn't even showing up, I failed to notice that they were missing.
So, besides the "objectives.properties" file, are there any other places where the map name(s) need to match? I gather the "README.md" file needs to match the map name at the bottom part of xml; or is it even necessary if the files are just local to my computer and not being uploaded to GitHub? -
@Stohrm said in Mixed Questions:
@beelee said in Mixed Questions:
The spelling needs to be the same as the map name at the top of the xml (not the bottom of xml )except you need to use underscores "_" instead of "spaces".
Since the Objectives tab wasn't even showing up, I failed to notice that they were missing.
Heh heh. I did the same thing. Must've worked on a mod for weeks before realized there was no objectives. :grinning_face:
yea idk, being local might be ok. When uploading to Git you gotta be on it. @Frostion has a nice guide for adding stuff to Git.
Well sadly, I can't seem to find it right now. I thought it was under map making but w/e...:) I'll try and find it again when I have a few more brain cells functioning
Here it is:
https://docs.google.com/document/d/1FfF7N0srp9QG0_if5D-c1d1Aa1QTttdhxgm1GBh3pI4/edit
Edit
Yea you gotta make sure the name is right or it won't show up in "Select Map" when you have triplea fired up. Gotta use the bottom one for that. I think
-
FWIW, the folder structure that is uploaded to github matches what you would have locally. You can work on files locally, make sure it works, and upload changes incrementally to github. It's not required for maps to be working to be in a repository (github), but they should be working when added to map index file: https://github.com/triplea-game/triplea/blob/master/triplea_maps.yaml
Publishing to github often allows you to recover previous versions in case you make a mistake, and you can use 'git' locally to do the same. The upload also allows others do DL the work in progress map by downloading the repository.
While none of the above is terribly complicated, there is a learning curve to it. Hence there is a long term project to make this even easier yet and allow uploads from in-game.
-
@RoiEX Anyways, I also want to add that, if it is true that escaping spaces in calling info name from properties folders is currently somehow disabled (I know, for having tried it, that generally escaping spaces in properties folders, instead, works, at least in other cases), I don't know if it would be that good to enable it, as then you would end up with two different methods for doing the same thing supported at the same time. If going that way, I'm just strongly suggesting making clear which one of the two methods is the correct one, deprecating the other, and updating the_pact_of_steel.
-
escaping spaces in calling info name from properties folders is currently somehow disabled
This isn't true. The code uses the default java way to parse
.propertiesfiles, which supports escaping spaces.The "real" problem is that before actually comparing the map name with the key is that the game name is being substituted for a weird underscore solution as already mentioned by you.
Found the place in the code:
https://github.com/triplea-game/triplea/blob/4a22b54ee153168091a4d537db1f5725cc011a8b/game-core/src/main/java/games/strategy/triplea/ui/ObjectivePanel.java#L129-L132The following characters are replaced by underscores:
/, the normal slash\b, the backspace character (which probably isn't ever going to land in the name, but hey for completeness)\n, the newline char\r, the carriage return char\tthe Tab character\0, the null character which is probably not going to land in any file either\f, the new page character that I didn't know until now (probably never used either)`, the backtick for some reason?and some other common symbols:*\<>|"':.,^[]=+;- and finally the space character
The code basically re-uses the "filtering mechanism" for filenames, replacing illegal characters there, which is why the weird characters end up in this list.
I mean we could optionally "allow" the real map name to be used, but if you ask me this logic should really be part of the XML instead.
-
@RoiEX As I said, in my opinion the best solution would have been forbidding using all those characters and the space character in the info name of the game file (xml), then, when the info name is displayed to the user anywhere, display all underscores as spaces. Of course, this may not be feasible, for compatibility, as there are a lot of info name entries with spaces in them already.
-
@Cernel said in Mixed Questions:
@RoiEX As I said, in my opinion the best solution would have been forbidding using all those characters and the space character in the info name of the game file (xml), then, when the info name is displayed to the user anywhere, display all underscores as spaces. Of course, this may not be feasible, for compatibility, as there are a lot of info name entries with spaces in them already.
And I would apply the exact same restriction to the "mapName" property (that is the one that is searching for the name of the map file), so that you cannot have spaces in map names. Maybe in this one also adding that all characters must be lower case, since this is the current practice.
-
Can one tech token's cost be 2.5?
-
@Schulz You can sort this out by setting it at that value, see what happens, faster than waiting for someone to give you an answer on that. I'm almost sure it will not be accepted and the game will fail to parse.
-
@Schulz said in Mixed Questions:
Can one tech token's cost be 2.5?
I don't think it likes decimals much; but you can sell 2 tokens for 5 PU's (if that's your ultimate goal). At least I think you can. Myself, I'm going to try adding them to the Purchase phase of the game - similar to the way Suicide tokens are bought by the Japanese in World War II Global 1940...
I found this in PoS-2 (and modified it) :
<!-- You can use a production frontier to buy resources using other resources. <productionRule name="buyTechTokens"> <cost resource="PUs" quantity="5" /> <result resourceOrUnit="techTokens" quantity="2"/> </productionRule>-->
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login