robertjanetzko / legendsbrowser Goto Github PK
View Code? Open in Web Editor NEWLegends Browser is an multi-platform, open source, java-based legends viewer for dwarf fortress 0.42.
License: MIT License
Legends Browser is an multi-platform, open source, java-based legends viewer for dwarf fortress 0.42.
License: MIT License
The linked exportlengeds LUA was last updated October 28, 2015. The script included with dfhack contains these commits, and has been further updated since (in fact, was last updated within the last few weeks)
I suggest removing this note from the documentation.
Doesn't work AFAIK
I have one histfig who has three kids, each with a different spouse. The family tree code gets confused and thinks he is either the sole parent, or thinks his kids all have the same mom.
Not quite sure how we should handle this yet...
Custom size map images get treated as squares (and stretched unnecessarily), while overlays are displayed correctly (?). As result, locations and underlying maps are misaligned:
Mini-maps are affected too.
Later:
Seems to be a case of corrupted export/world, races cannot be picked up too. Had 4 "unknown reference 48 ABSTRACT_BUILDING" during DFHack export. Generation was run with culling of unimportant character plus 980 years of history, so, i guess, this is a reason?
Tried with short non-square pocket worlds, everything seems fine there. Going to run the same seeds without culling. Aaaand it crashes reliably, but the same preset with <100 years produces normal results. Tried 510 years with culling - got 4 "unknown reference 48 ABSTRACT_BUILDING" again, but LegendsBrowser works fine. Stuff is weird, yo, but seems unrelated to LB. Sorry to bother.
Hi,
I notice you mention that "LegendsBrowser is open source", but you do not specifically mention what license it's under. Can you please either license the software or make it explicit that the software is unlicensed and in the public domain?
For example, see here for some more information if you want to pick a permissive or copyleft license.
Hi,
Ubuntu 18.04 LTS, LNP 44.12.r02.
I did open-legends
then exportlegends info
in DFHack console. When I try to open the resulting xml file in the browser, it displays loading legends.xml...
but nothing happens afterwards.
I have found the following in the log:
[2019-01-01 17:50:32] INFO: server started on localhost:58881
[2019-01-01 17:50:53] INFO: legendsPath: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-legends.xml
legendsPlusPath: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-legends_plus.xml
worldGenPath /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-world_gen_param.txt
historyPath: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-world_history.txt
sitesAndPropsPath: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-world_sites_and_pops.txt
imagePath: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-detailed.bmp
[2019-01-01 17:50:53] INFO: load legends: /home/hippo/Desktop/LinuxLNP-0.44.12-r02/df_linux/region1-00133-07-09-legends.xml
[2019-01-01 17:50:53] WARNING: site - unknown element: rectangle = 295,1877:297,1879
[2019-01-01 17:50:53] WARNING: structure - unknown element: local_id = 0
[2019-01-01 17:50:53] WARNING: structure - unknown element: subtype = catacombs
[2019-01-01 17:50:53] WARNING: structure - unknown element: copied_artifact_id = 12
[2019-01-01 17:50:53] WARNING: artifact - unknown element: name_string = mamgozom ibmat lisid
[2019-01-01 17:50:53] WARNING: artifact - unknown element: site_id = 60
[2019-01-01 17:50:53] WARNING: artifact - unknown element: structure_local_id = 0
[2019-01-01 17:50:53] WARNING: artifact - unknown element: holder_hfid = 1366
[2019-01-01 17:50:53] WARNING: artifact - unknown element: subregion_id = 543
[2019-01-01 17:50:54] WARNING: historical_figure - unknown element: relationship_profile_hf_visual = 100
[2019-01-01 17:50:54] WARNING: entity_reputation - unknown element: rep_treasure_hunter = 150
[2019-01-01 17:50:54] WARNING: entity_reputation - unknown element: rep_knowledge_preserver = 50
[2019-01-01 17:50:54] SEVERE: error loading legends
org.xml.sax.SAXParseException; lineNumber: 1383533; columnNumber: 23; The reference to entity "bookeeper" must end with the ';' delimiter.
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
at legends.LegendsReader.read(LegendsReader.java:37)
at legends.model.World$1.run(World.java:476)
`
I got this error while loading legendsbrowser on my dfhack exported legends data:
[Fatal Error] :875992:58: Element type "history_event_body_abusedst.T_abuse_data:" must be followed by either attribute specifications, ">" or "/>".
[2020-03-03 15:57:15] SEVERE: error loading legends
org.xml.sax.SAXParseException; lineNumber: 875992; columnNumber: 58; Element type "history_event_body_abusedst.T_abuse_data:" must be followed by either attribute specifications, ">" or "/>".
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
at legends.LegendsReader.read(LegendsReader.java:87)
at legends.model.World$1.run(World.java:492)
Here is what I got at line 875992 in my *-legends.xml
, I fail to see what is the problem :
<hf_skill>
<skill>SPEAKING</skill>
<total_ip>500</total_ip>
</hf_skill>
Tell me what to look for , I will gladly help debug this issue.
It would be nice to have a map layer for the current locations of megabeasts (and possibly semi-megabeasts separately). This might be their current location, or settlement, or current wandering area, or the location of their last event.
Generally, it would be nice to be able to click a region tile and see what's there (entities, performance troupes, sites, structures, leaders, artifacts, the occasional forgotten megabeast, etc).
it's possible for multiple sites to be in the same location on the world map.
For example, a town, a camp, a road and a bridge can overlap. As a result of it, it's possible for a town to become unclickable and invisible. It just looks like the road, bridge and all, ends in a camp. Even if the town is the capital. :)
The following occurs loading legends_plus.xml
java -jar legendsbrowser-1.19.2.jar -w legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
[2021-08-02 18:01:18] INFO: loading world: legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
[2021-08-02 18:01:18] INFO: server started on localhost:58881
[2021-08-02 18:01:18] INFO: legendsPath: legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
legendsPlusPath: legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
worldGenPath legends-region1-00143-01-01/region1-world_gen_param.txt
historyPath: legends-region1-00143-01-01/region1-00143-01-01-world_history.txt
sitesAndPropsPath: legends-region1-00143-01-01/region1-00143-01-01-world_sites_and_pops.txt
imagePath: null
[2021-08-02 18:01:18] INFO: load legends: legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
[2021-08-02 18:01:19] WARNING: df_world - unknown element: rivers = 34,79
[2021-08-02 18:01:19] WARNING: df_world - unknown element: creature_raw =
[2021-08-02 18:01:19] WARNING: structure - unknown element: deity_type = 1
[2021-08-02 18:01:20] WARNING: identity - unknown element: nemesis_id = 503
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: change_hf_state
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: add_hf_entity_link
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: created_building
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: add_hf_site_link
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: assume_identity
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: artifact_created
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: change_hf_job
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: create_entity_position
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hist_figure_died
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hist_figure_wounded
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hist_figure_new_pet
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: creature_devoured
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: item_stolen
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: add_hf_hf_link
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: remove_hf_site_link
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: change_creature_type
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: war_peace_accepted
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: replaced_building
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: remove_hf_entity_link
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hf_learns_secret
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: war_peace_rejected
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hf_act_on_building
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: entity_action
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: body_abused
[2021-08-02 18:01:20] WARNING: historical_event - UNKNOWN SUBTYPE: hf_does_interaction
[2021-08-02 18:01:21] WARNING: df_world - unknown element: historical_event_relationships = 142
[2021-08-02 18:01:21] WARNING: df_world - unknown element: historical_event_relationship_supplements = 81
[2021-08-02 18:01:21] INFO: load legends: legends-region1-00143-01-01/region1-00143-01-01-legends_plus.xml
[2021-08-02 18:01:21] WARNING: df_world - unknown element: rivers = 34,79
[2021-08-02 18:01:21] WARNING: df_world - unknown element: creature_raw =
[2021-08-02 18:01:21] WARNING: structure - unknown element: deity_type = 1
[2021-08-02 18:01:21] WARNING: identity - unknown element: nemesis_id = 503
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - hfid = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - state = settled
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - reason = none
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - site = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - civ = 220
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - histfig = 293
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - link_type = position
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - position = general
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - appointer_hfid = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - promise_to_hfid = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - site_civ = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - structure = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - builder_hf = 306
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - rebuild = false
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - trickster = 598
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - identity_histfig_id = 598
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - identity_name = Bithsêstgenlath
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - target = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - artifact_id = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - creator_unit_id = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - creator_hfid = 306
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - new_job = beast_hunter
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - old_job = standard
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - victim_hf = 551
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - slayer_hf = 6
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - slayer_race = 583
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - slayer_caste = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - death_cause = struck_down
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - woundee = 550
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - wounder = 6
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - woundee_race = 572
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - woundee_caste = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - body_part = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - injury_type = smash
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - part_lost = false
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - group = 595
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - pets = giant rat
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - victim = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - race = goat
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - caste = male
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - eater = 14
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - entity = 241
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - item_type = plant_growth
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - item_subtype = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - mat = quarry bush leaf
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - stash_site = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - circumstance = 9
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - theft_method = theft
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - hf = 443
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - hf_target = 435
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - mattype = 630
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - matindex = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - changee = 767
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - changer = 280
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - old_race = dwarf
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - old_caste = 1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - new_race = twilight crone
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - new_caste = 1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - topic = requestpeace
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - source = 248
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - destination = 222
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - old_structure = 0
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - new_structure = 2
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - identity_nemesis_id = 503
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - identity_race = human
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - identity_caste = female
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - student = 704
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - teacher = -1
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - artifact = 10
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - secret_text = the secrets of life and death
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - item = 20
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - action = prayedinside
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - bodies = 849
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - victim_entity = 355
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - abuse_type = mutilated
[2021-08-02 18:01:21] WARNING: historical_event - unknown element: UNKNOWN - pile_type = gruesomesculpture
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - interaction = 93
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - tree = 201
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - item_mat = cotton
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - doer = 588
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - interaction_action = cursed to assume the form of a gecko-like monster every full moon
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - region = -1
[2021-08-02 18:01:22] WARNING: historical_event - unknown element: UNKNOWN - sanctify_hf = 1165
[2021-08-02 18:01:22] WARNING: df_world - unknown element: historical_event_relationships = 142
[2021-08-02 18:01:22] WARNING: df_world - unknown element: historical_event_relationship_supplements = 81
[2021-08-02 18:01:22] WARNING: no map image found
[]
[]
[]
[]
[2021-08-02 18:01:23] INFO: world ready
[2021-08-02 18:01:35] SEVERE: error in request: /worldmap
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getMapDescription' in class legends.model.WorldConstruction threw exception java.lang.NullPointerException at worldMap.vm[line 39, column 44]
at org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:223)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at legends.helper.Decorate.render(Decorate.java:26)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.Template.merge(Template.java:356)
at org.apache.velocity.Template.merge(Template.java:260)
at legends.RequestThread.run(RequestThread.java:164)
Caused by: java.lang.NullPointerException
at legends.model.WorldConstruction.getMapDescription(WorldConstruction.java:113)
at jdk.internal.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.runtime.parser.node.PropertyExecutor.execute(PropertyExecutor.java:142)
at org.apache.velocity.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:539)
at org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:198)
... 12 more
The boxes are all empty, and other pages throw exceptions.
When selecting a site on the world map, then going back (with the back button of the browser), the position and zoom level of the camera on the map are reset.
They could be stored in a cookie for example, so that the map is restored just as it was before.
However, clicking again on the menu 'World Map' could be a way to reset it.
I had my legends files stored in /User/code/Documents/D&D/region1/...
but whenever I got to Documents
and clicked on D&D
it kicked me back to /User/code/
. It seems you aren't encoding the paths in your links, so invalid characters may cause unexpected behavior.
When trying to load a xml file of a new version's world, I get the following error:
The element type "conspirator_hfid" must be terminated by the matching end-tag ""....
I've tried with both the world attached and another one (with longer history, won't upload because it's 3 GB). It's the same error for both.
The xml was made using the "x" command in the vanilla Legends interface. I'm on Linux pop_OS! 19.10, 64 bits, and I'm using openjdk 11.0.6 to run the .jar file.
I am just gonna add some issues here with the new legends stuff and samples. There's a looooot added, so gotta do this issue-by-issue.
[2020-01-31 20:51:14] WARNING: entity - unknown element: honor = 0
Used by mercenary companies. Samples:
<honor>
<id>0</id>
<name>Captain</name>
<gives_precedence>100</gives_precedence>
<requires_any_melee_or_ranged_skill/>
<required_skill_ip_total>12600</required_skill_ip_total>
<required_battles>4</required_battles>
<required_years>10</required_years>
<exempt_epid>0</exempt_epid>
<exempt_former_epid>0</exempt_former_epid>
</honor>
<honor>
<id>1</id>
<name>Sword Master</name>
<gives_precedence>110</gives_precedence>
<required_skill>SWORD</required_skill>
<required_skill_ip_total>12600</required_skill_ip_total>
</honor>
<honor>
<id>2</id>
<name>Sword Adept</name>
<gives_precedence>210</gives_precedence>
<required_skill>SWORD</required_skill>
<required_skill_ip_total>5600</required_skill_ip_total>
</honor>
<honor>
<id>0</id>
<name>Captain</name>
<gives_precedence>100</gives_precedence>
<requires_any_melee_or_ranged_skill/>
<required_skill_ip_total>12600</required_skill_ip_total>
<required_battles>4</required_battles>
<exempt_epid>0</exempt_epid>
<exempt_former_epid>0</exempt_former_epid>
</honor>
<honor>
<id>1</id>
<name>Initiate</name>
<granted_to_everybody/>
<exempt_epid>0</exempt_epid>
<exempt_former_epid>0</exempt_former_epid>
</honor>
<honor>
<id>2</id>
<name>Crossbow Master</name>
<gives_precedence>110</gives_precedence>
<required_skill>CROSSBOW</required_skill>
<required_skill_ip_total>12600</required_skill_ip_total>
</honor>
Hey,
Thy for the fixes, I took 1.08 for a spin, looks good, there are two minor problems I found:
1, The World map button on top doesn't do anything for me, it just displays "Waiting for localhost" forever. Tried multiple browser, problem is elsewhere.
2, Competitions, Art forms, etc. are displayed as "UNKNOWN".
eg:
In 1, The Hairy Walls held a UNKNOWN competition in in Yorepaged as part of the 0-1. Competing were the dwarf Cerol Beardseal, the night_creature_3 Cog Wipedcloister and the dwarf Zaneg Manorsnarled. the dwarf Zaneg Manorsnarled was the victor
An Exploration of the Goblins
Essay by the goblin Azstrog Wrathmenaces
form -1 UNKNOWN POETIC FORM
References
The goblin Azstrog Wrathmenaces became a fishery_worker in Troubleghoul
Style
Vicious
I assume these need more dfhack research and/or some addition to the exporter script, so as stated above it's a minor problem for now.
Loading World
Illegal character in opaque part at index 64: jar:file:/Users/fricy/Applications/Macnewbie_10.4/Macnewbie/User Generated Content/Legends/region1_legends_exports/region1-00005-01-01-legends_archive.zip...
If I remove the spaces from User Generated Content it loads. Curiously the Browser is able to load "unprocessed" legends from the "Dwarf Fortress" folder which also contains spaces.
Version 1.06 and 1.07 both [OSX]
Line 162 should be:
file:write("\t\t<style>"..(df.written_content_style[styleV] or styleV).."</style>\n")
instead of closing with /type:
file:write("\t\t<style>"..(df.written_content_style[styleV] or styleV).."</type>\n")
Looking at my error log, I realized there were some stuff that were in previous versions. Such as for example, the relationship entries. The latter corresponds a little to the reputation types on the wiki, so I checked my two 44.12 worlds where I did a bunch of testing when filling out the wiki there.
Here's my errologs:
[2020-02-01 16:38:50] WARNING: site - unknown element: rectangle = 359,640:361,642
[2020-02-01 16:38:50] WARNING: structure - unknown element: local_id = 0
[2020-02-01 16:38:50] WARNING: structure - unknown element: subtype = catacombs
[2020-02-01 16:38:50] WARNING: artifact - unknown element: name_string = mukongegngun
[2020-02-01 16:38:50] WARNING: artifact - unknown element: site_id = 16
[2020-02-01 16:38:50] WARNING: artifact - unknown element: holder_hfid = 266
[2020-02-01 16:38:50] WARNING: artifact - unknown element: abs_tile_x = 30554
[2020-02-01 16:38:50] WARNING: artifact - unknown element: abs_tile_y = 33669
[2020-02-01 16:38:50] WARNING: artifact - unknown element: abs_tile_z = 143
[2020-02-01 16:38:50] WARNING: artifact - unknown element: subregion_id = 171
[2020-02-01 16:38:50] WARNING: artifact - unknown element: structure_local_id = 6
[2020-02-01 16:38:50] WARNING: historical_figure - unknown element: relationship_profile_hf_visual = 100
[2020-02-01 16:38:50] WARNING: historical_figure - unknown element: relationship_profile_hf_historical = 64
[2020-02-01 16:38:50] WARNING: historical_figure - unknown element: relationship_profile_hf_identity = 4
[2020-02-01 16:38:50] WARNING: entity_reputation - unknown element: rep_treasure_hunter = 150
[2020-02-01 16:38:50] WARNING: entity_reputation - unknown element: rep_knowledge_preserver = 50
[2020-02-01 16:38:51] WARNING: entity_reputation - unknown element: rep_hero = 20
[2020-02-01 16:38:51] WARNING: historical_event - unknown element: plundered site - detected =
[2020-02-01 16:38:51] WARNING: historical_event - unknown element: artifact possessed - subregion_id = -1
[2020-02-01 16:38:51] WARNING: historical_event - unknown element: artifact possessed - feature_layer_id = -1
[2020-02-01 16:38:51] WARNING: historical_event - unknown element: artifact created - name_only =
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: artifact recovered - structure_id = -1
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: artifact recovered - subregion_id = 74
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: artifact recovered - feature_layer_id = -1
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: hf recruited unit type for entity - subregion_id = -1
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: hf recruited unit type for entity - feature_layer_id = -1
[2020-02-01 16:38:52] WARNING: historical_event - UNKNOWN SUBTYPE: tactical situation
[2020-02-01 16:38:52] WARNING: historical_event - UNKNOWN SUBTYPE: squad vs squad
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: merchant - trader_entity_id = 69
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: merchant - depot_entity_id = 2279
[2020-02-01 16:38:52] WARNING: historical_event - unknown element: merchant - site_id = 2279
[2020-02-01 16:38:53] WARNING: historical_event - unknown element: reclaim site - unretire =
[2020-02-01 16:38:53] WARNING: historical_event - UNKNOWN SUBTYPE: entity rampaged in site
[2020-02-01 16:38:53] WARNING: historical_event - UNKNOWN SUBTYPE: agreement concluded
[2020-02-01 16:38:53] WARNING: written_content - unknown element: author_roll = 13
[2020-02-01 16:38:53] SEVERE: error loading history
[2020-02-01 16:40:15] WARNING: site - unknown element: rectangle = 85,647:87,649
[2020-02-01 16:40:15] WARNING: structure - unknown element: local_id = 0
[2020-02-01 16:40:15] WARNING: structure - unknown element: subtype = catacombs
[2020-02-01 16:40:15] WARNING: structure - unknown element: copied_artifact_id = 86
[2020-02-01 16:40:16] WARNING: artifact - unknown element: name_string = gosmsexuno
[2020-02-01 16:40:16] WARNING: artifact - unknown element: site_id = 58
[2020-02-01 16:40:16] WARNING: artifact - unknown element: structure_local_id = 8
[2020-02-01 16:40:16] WARNING: artifact - unknown element: subregion_id = 319
[2020-02-01 16:40:16] WARNING: artifact - unknown element: holder_hfid = 887
[2020-02-01 16:40:16] WARNING: artifact - unknown element: abs_tile_x = 61056
[2020-02-01 16:40:16] WARNING: artifact - unknown element: abs_tile_y = 41088
[2020-02-01 16:40:16] WARNING: artifact - unknown element: abs_tile_z = -1000000
[2020-02-01 16:40:16] WARNING: historical_figure - unknown element: relationship_profile_hf_visual = 100
[2020-02-01 16:40:16] WARNING: entity_reputation - unknown element: rep_treasure_hunter = 50
[2020-02-01 16:40:16] WARNING: historical_figure - unknown element: relationship_profile_hf_historical = 32
[2020-02-01 16:40:16] WARNING: entity_reputation - unknown element: rep_knowledge_preserver = 50
[2020-02-01 16:40:17] WARNING: entity_reputation - unknown element: rep_dancer = 42
[2020-02-01 16:40:18] WARNING: historical_figure - unknown element: relationship_profile_hf_identity = 22
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: plundered site - detected =
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: artifact possessed - subregion_id = -1
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: artifact possessed - feature_layer_id = -1
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: artifact created - name_only =
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: hf recruited unit type for entity - subregion_id = -1
[2020-02-01 16:40:18] WARNING: historical_event - unknown element: hf recruited unit type for entity - feature_layer_id = -1
[2020-02-01 16:40:19] WARNING: historical_event - UNKNOWN SUBTYPE: hf viewed artifact
[2020-02-01 16:40:19] WARNING: historical_event - unknown element: artifact recovered - structure_id = -1
[2020-02-01 16:40:19] WARNING: historical_event - unknown element: artifact recovered - subregion_id = -1
[2020-02-01 16:40:19] WARNING: historical_event - unknown element: artifact recovered - feature_layer_id = -1
[2020-02-01 16:40:20] WARNING: historical_event - unknown element: musical form created - subregion_id = -1
[2020-02-01 16:40:21] WARNING: historical_event - UNKNOWN SUBTYPE: tactical situation
[2020-02-01 16:40:21] WARNING: historical_event - UNKNOWN SUBTYPE: squad vs squad
[2020-02-01 16:40:21] WARNING: historical_event - unknown element: merchant - trader_entity_id = 249
[2020-02-01 16:40:21] WARNING: historical_event - unknown element: merchant - depot_entity_id = 10367
[2020-02-01 16:40:21] WARNING: historical_event - unknown element: merchant - site_id = 10367
[2020-02-01 16:40:22] WARNING: historical_event - UNKNOWN SUBTYPE: entity rampaged in site
[2020-02-01 16:40:22] WARNING: historical_event - UNKNOWN SUBTYPE: entity expels hf
[2020-02-01 16:40:22] WARNING: historical_event - unknown element: merchant - hardship =
[2020-02-01 16:40:22] WARNING: historical_event - unknown element: merchant - lost_value =
[2020-02-01 16:40:23] WARNING: written_content - unknown element: author_roll = 8
This bug seems to be introduced in 1.07, I can load the same export in 1.06 and the maps are displayed.
By factorizing all color-related constants, we could define several themes (day/night for instance) and add a switch in the upper menu bar.
Ubuntu must have recently updated its default java runtime. Launching (via java -jar legendsbrowser-1.19.2.jar
) now gives:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
After reverting to Java 8 (sudo update-alternatives --config java
) LegendsBrowser launches fine.
It's always hard to figure out the best way to thank someone for being so awesome and doing all this work, but I figure an issue in Github is the least I can do. I was really surprised to hear that you already had 0.47 stuff done so quickly.
This collects the new intrigue, plot and agreement stuff.
[2020-01-31 20:51:11] WARNING: historical_figure - unknown element: intrigue_plot = 224
New in .47, these are kinda hilarious. It's basically the todolist of the villain in question. Some samples:
<intrigue_plot>
<local_id>1</local_id>
<type>grow funding network</type>
<plot_actor>
<actor_id>0</actor_id>
<plot_role>source of funds</plot_role>
<agreement_id>12</agreement_id>
</plot_actor>
<plot_actor>
<actor_id>9</actor_id>
<plot_role>source of funds</plot_role>
<agreement_id>120</agreement_id>
</plot_actor>
<plot_actor>
<actor_id>10</actor_id>
<plot_role>source of funds</plot_role>
<agreement_id>248</agreement_id>
</plot_actor>
<plot_actor>
<actor_id>11</actor_id>
<plot_role>source of funds</plot_role>
<agreement_id>469</agreement_id>
</plot_actor>
</intrigue_plot>
<intrigue_plot>
<local_id>0</local_id>
<type>attain rank</type>
<on_hold/>
</intrigue_plot>
<intrigue_plot>
<local_id>1</local_id>
<type>grow funding network</type>
</intrigue_plot>
<intrigue_plot>
<local_id>2</local_id>
<type>grow asset network</type>
</intrigue_plot>
<intrigue_plot>
<local_id>3</local_id>
<type>grow corruption network</type>
<on_hold/>
</intrigue_plot>
[2020-01-31 20:51:11] WARNING: historical_figure - unknown element: intrigue_actor = torment
Figures that are related to their villainous plots. Sample
<intrigue_actor>
<local_id>0</local_id>
<hfid>1399</hfid>
<role>master</role>
<strategy>obey</strategy>
</intrigue_actor>
<intrigue_actor>
<local_id>1</local_id>
<hfid>1289</hfid>
<role>possibly unknown director</role>
</intrigue_actor>
[2020-01-31 20:51:14] WARNING: historical_event - UNKNOWN SUBTYPE: hfs formed intrigue relationship
[2020-01-31 20:51:14] WARNING: historical_event - UNKNOWN SUBTYPE: failed intrigue corruption
'So-and-so corrupted this-and-that'
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - successful =
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - failed_judgment_test =
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - action = bribe official
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - method = intimidate
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_facet = fearlessness
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_facet_rating = 60
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_facet_modifier = -2
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_value = law
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_value_rating = -20
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - top_value_modifier = 6
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - coconspirator_bonus = 3
[2020-01-31 20:51:14] WARNING: historical_event - unknown element: agreement formed - ally_defense_bonus = 2
Sample:
<historical_event>
<id>5682</id>
<year>14</year>
<seconds72>344400</seconds72>
<type>agreement formed</type>
<agreement_id>10</agreement_id>
</historical_event>
<historical_event>
<id>5683</id>
<year>14</year>
<seconds72>344400</seconds72>
<type>agreement formed</type>
<agreement_id>11</agreement_id>
<successful/>
<failed_judgment_test/>
<action>bribe official</action>
<method>intimidate</method>
<top_facet>fearlessness</top_facet>
<top_facet_rating>60</top_facet_rating>
<top_facet_modifier>-2</top_facet_modifier>
<top_value>law</top_value>
<top_value_rating>-20</top_value_rating>
<top_value_modifier>6</top_value_modifier>
</historical_event>
Hi,
I get an out-of-memory error with the latest version, running on the attached legends-export.
OS: Windows 10
df: 0.42.04
java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) Client VM (build 25.66-b18, mixed mode, sharing)
region3-00258-07-01-legends.zip
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-213" Exception in thread "Thread-20" java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.newNode(Unknown Source) at java.util.HashMap.merge(Unknown Source) at java.util.stream.Collectors.lambda$toMap$172(Unknown Source) at java.util.stream.Collectors$$Lambda$49/24700072.accept(Unknown Source) at java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at legends.model.World.setHistoricalEvents(World.java:311) at legends.xml.WorldContentHandler$$Lambda$37/6657591.accept(Unknown Source) at legends.xml.handlers.ListContentHandler.popContentHandler(ListContentHandler.java:48) at legends.xml.handlers.XMLContentHandler.endElement(XMLContentHandler.java:96) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at legends.LegendsReader.read(LegendsReader.java:33) at legends.model.World$1.run(World.java:481)
[2020-01-31 20:51:10] WARNING: site - unknown element: site_properties = 22
New in .47, these are the houses that histfigs can buy and own and store all their artifacts in.
Sample on site:
<site_properties>
<site_property>
<id>0</id>
<structure_id>5</structure_id>
</site_property>
<site_property>
<id>1</id>
<type>house</type>
<owner_hfid>497</owner_hfid>
</site_property>
<site_property>
<id>2</id>
<type>house</type>
</site_property>
<site_property>
<id>3</id>
<type>house</type>
</site_property>
</site_properties>
(Structure ID here refers to a counting house, I guess merchenary companies need to buy these plots)
Sample on histfig:
<site_property>
<site_id>72</site_id>
<property_id>0</property_id>
</site_property>
Gambling
<historical_event>
<id>9315</id>
<year>21</year>
<seconds72>16800</seconds72>
<type>gamble</type>
<gambler_hfid>655</gambler_hfid>
<site_id>54</site_id>
<structure_id>2</structure_id>
<old_account>0</old_account>
<new_account>-5000</new_account>
</historical_event>
Embezzlement:
<historical_event>
<id>9543</id>
<year>21</year>
<seconds72>310800</seconds72>
<type>hf convicted</type>
<convicted_hfid>1399</convicted_hfid>
<convicter_enid>445</convicter_enid>
<crime>embezzlement</crime>
<prison_months>72</prison_months>
</historical_event>
Merchant companies doing trade
<historical_event>
<id>35608</id>
<year>49</year>
<seconds72>210000</seconds72>
<type>trade</type>
<trader_hfid>5100</trader_hfid>
<trader_entity_id>-1</trader_entity_id>
<source_site_id>236</source_site_id>
<dest_site_id>313</dest_site_id>
<production_zone_id>5</production_zone_id>
<allotment>13</allotment>
<allotment_index>0</allotment_index>
<account_shift>4370</account_shift>
</historical_event>
Ransom
<historical_event>
<id>349282</id>
<year>143</year>
<seconds72>134400</seconds72>
<ransomed_hfid>27798</ransomed_hfid>
<ransomer_hfid>27798</ransomer_hfid>
<payer_hfid>22999</payer_hfid>
<moved_to_site_id>251</moved_to_site_id>
</historical_event>
I suspect these are bugged, ransomer and ransommed are the same, always...
Getting a structure:
<historical_event>
<id>501209</id>
<year>181</year>
<seconds72>0</seconds72>
<site_id>572</site_id>
<building_profile_id>6</building_profile_id>
<acquirer_hfid>17781</acquirer_hfid>
<purchased_unowned/>
<inherited/>
<rebuilt_ruined/>
</historical_event>
Improving a structure:
<historical_event>
<id>76574</id>
<year>73</year>
<seconds72>109200</seconds72>
<site_id>332</site_id>
<structure_id>2</structure_id>
<modifier_hfid>10355</modifier_hfid>
<modification>dungeon</modification>
</historical_event>
<historical_event>
<id>152018</id>
<year>97</year>
<seconds72>243600</seconds72>
<site_id>332</site_id>
<structure_id>2</structure_id>
<modifier_hfid>10355</modifier_hfid>
<modification>improved fortifications</modification>
</historical_event>
Getting better equipment:
<historical_event>
<id>502656</id>
<year>181</year>
<seconds72>243600</seconds72>
<type>hf equipment purchase</type>
<quality>3</quality>
<group_hfid>19208</group_hfid>
<site_id>-1</site_id>
<structure_id>-1</structure_id>
<subregion_id>-1</subregion_id>
<feature_layer_id>-1</feature_layer_id>
</historical_event>
Unsure what this is?
<historical_event>
<id>29091</id>
<year>44</year>
<seconds72>226800</seconds72>
<entity_id>546</entity_id>
<reason>lack of funds</reason>
</historical_event>
Enslavement:
<historical_event>
<id>721427</id>
<year>239</year>
<seconds72>92400</seconds72>
<enslaved_hfid>17680</enslaved_hfid>
<seller_hfid>18417</seller_hfid>
<payer_entity_id>2996</payer_entity_id>
<moved_to_site_id>638</moved_to_site_id>
</historical_event>
Would it be possible to somehow specify the world to use at startup (i.e. as a command line argument), and then disable the "exit" button? I'd like to serve a world or two publicly over the web, but (for obvious reasons) I don't want to expose my server's filesystem to the world, so something like this would be a really nice feature.
Evil/Good regions do not look different from the others on the world map.
Some leads to fix that:
region*-world_map.bmp
instead of the default region*-detailed.bmp
region*-evil.bmp
on top of the map, with purple/blue colorsI get the following when trying to open a page for dwarf necromancers or vampires.
Human necromancer pages do open.
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getShortDescription' in class legends.model.events.HfLearnsSecretEvent threw exception java.lang.ArrayIndexOutOfBoundsException: 1 at events.vm[line 29, column 40]
I just updated to DFhack 0.47.04-r2 Which is when I got the error in LB 1.18.2.
So I updated to 1.19.2 but the error persists.
Here's another find:
Collection view, minimap doesn't show site location:
http://i.imgur.com/D1XN5LN.png
Select site, location is displayed:
http://i.imgur.com/lfJp0Pt.png
exportlegends info
in dfhack)This seems to cause everything except the initial xml file to fail to load, including the civs file (though oddly, the map still loads). In the error logs, it can be seen that the file trying to be accessed is using a lowercase path. On a Windows system, this does not matter, however on a Unix system the caps are important and must match.
Some sites can have enormous event lists, which can cause extremely long load times and can be unwieldy. I think it'd be good to have events paginate, which could be done by having the event list be a fragment that's loaded with javascript. That way support doesn't have to be included in every page that shows events.
I downloaded the latest version of Legends Browser for mac OS (1.19.2), open the .dmg file and moved the application into my DF folder. However, the moment I open the application, it closes. The icon appears at my bottom bow for less than a second, after which is closes, it doesn't even give me an error message.
When I try to look up any necromancer, vampire or werebeast this shows up instead of hf page:
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getShortDescription' in class legends.model.events.HfLearnsSecretEvent threw exception java.lang.ArrayIndexOutOfBoundsException: 1 at events.vm[line 29, column 40]
or
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getShortDescription' in class legends.model.events.HfDoesInteractionEvent threw exception java.lang.NullPointerException at events.vm[line 29, column 40]
This wasn't a problem with dfhack 0.47.04-beta1, I noticed changes in legend_plus.xml:
this
<secret_text>[IS_NAME:the secrets of life and death]</secret_text>
became
<secret_text>the secrets of life and death</secret_text>
,
this
<interaction_action>[IS_HIST_STRING_2:, passing on the anteater monster curse]</interaction_action>
<interaction_string>[I_TARGET:A:CREATURE]</interaction_string>
became
<interaction_action>bit, passing on the gila monster monster curse</interaction_action>
,
this
<interaction_action>[IS_HIST_STRING_1: cursed ]</interaction_action>
<interaction_string>[IS_HIST_STRING_2: to prowl the night in search of blood]</interaction_string>
became
<interaction_action>cursed to prowl the night in search of blood</interaction_action>
So this may be the cause of this problem, I think.
Example xml's:
New dfhack, not working:
legends_new.zip
legends.zip
Old, working:
legends_old.zip
In https://github.com/robertjanetzko/LegendsBrowser/blob/master/src/main/java/legends/Application.java
function initWebServer
swallows UnsupportedOperationException
from:
Desktop.getDesktop().browse(new URI("http://localhost:" + server.getPort()));
The problem is that Desktop.browse
is notoriously unreliable and non-portable.
On Unix systems, the correct solution is to spawn a process, xdg-open http://localhost:58881
, but for some reason nobody has ever bothered to patch that into Java itself.
At the very least, pop up a window to display the warning so we at least know, when not running from a terminal.
Hello,
I'm running Mac OS X 10.11.6 (15G1004). I downloaded the DMG, copied the application to my ~/Applications folder and opened the app. It immediately gave me a dialog box saying nothing but JRELoadError
Anything I can try?
This... almost seems like you could make one of those anime relationship charts :D (I am joking, don't feel pressured)
[2020-01-31 20:51:11] WARNING: historical_figure - unknown element: vague_relationship = 5955
Used for the new <childhood_friend/>
, <war_buddy />
, <religious_persecution_grudge/>
, athletic buddy type relationships. sample:
<vague_relationship>
<jealous_relationship_grudge/>
<hfid>38525</hfid>
</vague_relationship>
<vague_relationship>
<jealous_obsession/>
<hfid>37139</hfid>
</vague_relationship>
[2020-01-31 20:51:11] WARNING: historical_figure - unknown element: relationship_profile_hf_historical = 50
Very similar to relationship_profile_hf_visual. Sample:
<relationship_profile_hf_visual>
<hf_id>1399</hf_id>
<meet_count>0</meet_count>
<last_meet_year>-1</last_meet_year>
<last_meet_seconds72>6815848</last_meet_seconds72>
<love>-25</love>
<respect>0</respect>
<trust>0</trust>
<loyalty>0</loyalty>
<fear>25</fear>
</relationship_profile_hf_visual>
<relationship_profile_hf_historical>
<hf_id>1289</hf_id>
<love>0</love>
<respect>0</respect>
<trust>0</trust>
<loyalty>0</loyalty>
<fear>0</fear>
</relationship_profile_hf_historical>
X and Y coordinate are exchanged in the leaflet imageOverlay.
This bug was triggered by generating a non square world.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.