Kromtec / LegendsViewer

Recreates Dwarf Fortress' Legends Mode from exported files.
GNU General Public License v3.0
62 stars 19 forks source link

Feature Request: War Graph #13

Closed CharonM72 closed 6 years ago

CharonM72 commented 8 years ago

Legends Browser has a really badass hoverable war graph. Can some kind of war graph be implemented in Legends Viewer? It would make it a lot easier to see who was the most aggressive, and who attacked who, etc.

leacasas commented 8 years ago

I think this can be accomplished using vis.js. I can try to do a Proof of Concept to see if it works.

Actually, There are a great number of tools that can be used for this:

Kromtec commented 8 years ago

I already use Cytoscape.js for the familytrees. Would be cool if you could try to make the war graph with the same library. But if another tool is better suited feel free to include it.

leacasas commented 8 years ago

@Kromtec I've finished a proof of concept, if you want to check it out. It is just an overview of the wars. A couple of charts that show attack/defend statistics plus a circular graph that shows more visually who attacked who. I put it on the world stats page, if it works I could develop a more fleshed out version and include it in the warfare tab.

It uses existing libraries (Chart.js and Cytoscape.js). I only added a plugin for the version of Chart.js that we embedded in the application.

Kromtec commented 8 years ago

@leacasas I like it. This will be really cool!

Feedback: Wars by Civ "Wars fought by Civilization" should be grouped by civilizations. Currently it shows a bar for each entity, which can get very cluttered real fast. The entity class has the properties Entity.IsCiv and Entity.Parent. Every entity that has no parent and is not a civ (like nomads, outcasts, ...) could be grouped into an independent group.

:exclamation: I am not sure if entities that are part of a civ are always a direct child of the civ. Maybe you have to go from parent to parent until it is null or a Civ.

You could make a more detailed chart on the entity page of civilizations that shows all wars of child entites of this civ.

War Graph Same issue here. Try to group by civ and find a style that grants a good readablity for medium sized worlds with medium history.

leacasas commented 8 years ago

Thanks for your feedback, I really appreciate it.

The past few days I haven't been available to take a look at this, maybe in a few days I'll be able to review this once again.

I had issues with DF in my machine to generate large worlds with long history, I guess I'll ask in forums for big saves in order to get a good set of test data. I wasn't able to test this with more than 20 civs (and strangely enough almost always the goblins were the absolute masters of the world).

Another thing to point out is that the circle layout of Cytoscape.js is not very flexible (at least I haven found a way to really manipulate the sizes and all that)

Kromtec commented 6 years ago

Implemented in version 1.18.00