Giter VIP home page Giter VIP logo

aoe2techtree's People

Contributors

chromy avatar dersaidin avatar exterkamp avatar goto-bus-stop avatar harirarn avatar heavenlychorus avatar hhirsch avatar hszemi avatar jeremie-martin avatar kimegede avatar lalitpatel avatar loser4ever avatar mangelware avatar nico2che avatar paulirish avatar rotzbua avatar thbrown avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aoe2techtree's Issues

Add extra details?

Hi, I'm trying to use the data.json to make a simulator.
That works great, so thanks!
But it could be even better when I had a few extra details.

I don't know which data is available exactly through the .dat file but could it be possible to add some of the below details to data.json?

Things I encountered so far:

  • Projectile speed
  • 'Frames per Angle' and 'Animation Duration' to properly calculate the Frame Delay in seconds
  • Monk conversion 'susceptibility' per unit
  • Blast Radius
  • Trample Damage

And probably more complicated (?):

  • Structured data around technologies and upgrades, e.g. "Plate Barding Armor" : { targetClass: "cavalry", upgrades: { "meleeArmor" : 1, "pierceArmor" : 1 } }
  • Maybe break out the consts (e.g. const UNIQUE_UNIT = "UNIQUE UNIT";) into a separate JS file?

Thanks!

[Bug] Wonder does not show stats

The wonder doesn't seem to get it's metadata right
Screenshot_3

If it helps with anything, i've made this awfulness, that althogh works, looks horrible:

         if (meta !== undefined) {
            text = text.replace(/‹cost›/, "Cost: " + cost(meta.Cost));
            let stats = []
            if (text.match(/‹hp›/)) {
                stats.push("HP: " + meta.HP);
                text = text.replace(/‹hp›/, "HP: " + meta.HP);
            }
            if (text.match(/‹attack›/)) {
                stats.push("Attack: " + meta.Attack);
                text = text.replace(/‹attack›/, "Attack: " + meta.Attack);
            }
            if (text.match(/‹(A|a)rmor›/)) {
                stats.push("Armor: " + meta.MeleeArmor);
                text = text.replace(/‹(A|a)rmor›/, "Armor: " + meta.MeleeArmor);
            }
            if (text.match(/‹(P|p)iercearmor›/)) {
                stats.push("Pierce armor: " + meta.PierceArmor);
                text = text.replace(/‹(P|p)iercearmor›/, "Pierce armor: " + meta.PierceArmor);
            }
            if (text.match(/‹garrison›/)) {
                stats.push("Garrison: " + meta.GarrisonCapacity);
                text = text.replace(/‹garrison›/, "Garrison: " + meta.GarrisonCapacity);
            }
            if (text.match(/‹range›/)) {
                stats.push("Range: " + meta.Range);
                text = text.replace(/‹range›/, "Range: " + meta.Range);
            }

Good luck and I hope you don't get annoyed at that many bug reports haha

[Feature Request] Toggle for applying civ bonuses onto unit cost

The in-game tech tree will display unit costs with civ bonus applied, when ur in a game playing as the civ.
For example, goths champions @39f+13g, portuguese crossbow-line @25W+36g.
That would be neat to have when players want to check the cost like they do in game, instead of calculating themselves.

Show cost for Elite unit upgrades

It would be nice to see the cost of the Elite upgrades for units. Right now unique units, eagles, skirms, etc. have the stats of the Elite unit listed. There's no way I could see to get the cost of the upgrade.
Maybe like the in-game tech tree, it lists the upgrade cost at the end of the Elite unit description.

Mobile View

mobile view is still an issue, #24

  1. right sidebar and font size is pretty large compared to a mobile display res. better make it as an "hamburger menu" to completely hide it.

  2. tech tree doesn't fit the screen in horizontal way, also cannot select or change the civilizations from the top down menu since it doesn't fit the screen.

  3. Unit names can't fit in their box

  4. Unable to deselect an already selected unit / unable to close the description box

page generally does not fit horizontally.

tree

civ menu / sidebar

New UI Background

Something is off with the rows of tech tree and the background image. I'm using Microsoft Edge as the browser (it was working well a couple of days ago).

aoe2tech

Civ bonuses should affect the prices

For example, the Spanish bonus "Blacksmith upgrades don't cost gold" isn't reflected in the tech tree when the Spanish civ is selected.

I understand how conditional bonuses would be hard to implement (for example, having Supplies or not would affect the price of the Militia line), but is this possible for general bonuses for civs like the Spanish or Chinese?

[Feature Request] Improve scaling on vertical monitors

I have two monitors setup in a vertical orientation and the scaling makes it some what hard to use and leaves a lot of dead space, It would be nice if the information on the left was moved to the top so that move of the technologies fit on the screen. Also it seems like the icons could be a little smaller in vertical orientation like this.

image

URL only support first letter as Capital (Chinese, not chinese)

The problem is you can view the specified civ info if you type first letter in UPPER CASE like "Chinese".

If you type in full lower case like "chinese" after "#" the website show "Aztecs".

If you can change letter to lowercase it'd very useful for common using.

Thanks.

Wrong number for Town Center build time?

Hi,
as the title says the TC build time in the techtree is stated as 100s.
Other sources like:
https://ageofempires.fandom.com/wiki/Town_Center_(Age_of_Empires_II) or
https://aoe2stats.net/#
say that it should be 150s or 2:30 minutes.

Further suggestions
You could also add the Town Center field in Feudal Age for cumans. Maybe with a note that only one can be build, and the build time is 270s. (I was searching for the cuman TC build time when I stumbled over this).

Concentrate data

Hello, nice endeavour thank you :)

You extract data/data.json from dat files.
But reverse-engineered js/civs.js right? What about putting the civ/tech-tree-disable map in a json file too ? js folder was the last directory I was expecting finding such data.
I am considering flattening into a multi-civ tech chart like those ancient ones did (is there really no such one for DE? Dayum they just milking the cow...):
https://www.redbubble.com/people/mammothtank/works/29656608-age-of-empires-2-civilization-tech-tree?p=poster

Helptext card redesign?

There's some really exciting things that could happen if we redesign the content of the helptext popup card when selecting a unit. That said, this would take the design farther away from the in-game tree.

For example, here's a possible before and after:

image

I have this online here: https://paulirish.github.io/aoe2techtree/ (from a branch back in April)


@exterkamp and I explored a few more ideas in this doc: https://docs.google.com/document/d/1jgDrIsBGoJZfTVcapuh9E-3yZAk5OyBFfuqTA8cJ1fI/edit

eg, more use of icons:

and linking to buildings where the upgrades are available (though ideally, do #61)

I'm curious if folks are interested in exploring these kinds of ideas. If so, I figure we can debate the UX a bit before I put up a PR for review?

Frame Delay should be displayed in seconds

Currently frame delay is displayed in frames. But different unit animation are done at done at different frame rates. This makes the number quite meaning less. Further most animation were in about 20 fps in the original game and at 60 fps in DE. This also leads to a big disparity between the numbers for both versions. It would be much better if this attack delay is displayed in seconds instead.

How I find frame delay in seconds?
I will demonstrate this with crossbowman in AGE.

  1. Find crossbowman in Units tab. Note down its Frame Delay (15) and Attack Graphic (693).
  2. Go to Graphics tab and find graphic 693. Note down Frames per Angle (30) and Animation Duration (0.7).
  3. The attack delay in seconds is then 0.7*15/30 = 0.35.

So crossbowman shoot after 0.35 seconds. In comparison Arbalester has Frame Delay = 20, Frames per angle = 45 and Animation duration = 0.77. This gives animation duration of 0.77*20/45 = 0.342.

This shows that even though crossbowman and arbalester have different frame delay in frames, they are almost same in seconds.

More building stats in data.json

Hi, I want to display more detailed stats about some buildings (e.g. attack bonuses for tower, castle) in my app. This information is already in the data file for units but incomplete for buildings. Is it possible to add this to your data file?

For the watch tower the following data exists:

"79": {
            "Attack": 5,
            "Cost": {
                "Stone": 125,
                "Wood": 50
            },
            "GarrisonCapacity": 5,
            "HP": 700,
            "ID": 79,
            "LanguageHelpId": 26178,
            "LanguageNameId": 5178,
            "LineOfSight": 10,
            "MeleeArmor": 1,
            "PierceArmor": 7,
            "Range": 8,
            "TrainTime": 80,
            "internal_name": "WCTW"
        },

But in the aoe wiki there is also data about attack classes:
https://ageofempires.fandom.com/wiki/Watch_Tower_(Age_of_Empires_II)

all the bonuses and armor classes are gone

that is a huge let down. the main reason i used this tech tree was because it was a nice concise view that i could quickly reference for armor classes and bonuses. why would you remove that???

Unit Upgrade Cost in data.json

Hi, I want to display the upgrade cost and research time in my app. Is it possible to add this to your data file?

I know I can use the description text e.g.

Upgrades: range, attack (University); to Heavy Scorpion 1000F, 1100W (Siege Workshop); more resistant to Monks (Monastery).

But there the research time is missing and I am displaying the range/attack upgrades etc. in another way already.

DE building ordering

Hi there, I noticed a few discrepancies in ordering between the Definitive Edition in-game tech tree and the site, most of which are due to differences between the DE and HD tech trees.

  • Blacksmith/Siege Workshop have moved to between the Stable and Dock, from between Town Center and University in HD. Internal to this, Mangonels and Rams are reversed under Siege Workshop -- in both HD and DE they are consistent with their position in the building menus where Rams are on the left.
    20200507162250_1

  • The University is now between the Dock and Towers, instead of Blacksmith and Mining Camp in HD.
    20200507163113_1

  • The Wonder (and Feitoria on the Portuguese tree) are now between Town Center and Mining Camp instead of between Stable and Dock in HD.
    20200507162306_1

  • Krepost is found between Castle and Monastery on the Bulgarian tech tree, rather than between Stable and Dock, and it shows the Konnik as a buildable unit.
    20200507162316_1

These are rather minor issues I know, but the Blacksmith/University ordering in particular really throw me off whenever I switch between the website and game trees. I'd totally understand if you're keeping it this way to match HD Edition, however since the dataset is based on the latest version of DE, I figured consistency in alignment would make the most sense. Anyway, love the site - keep up the good work!

Mobile View

Hi, I was trying to view this on a mobile while killing some time today.
I was unable to select other Civ's aside from the default Aztec as i couldnt see the drop down.

Thanks for this website tho its awesome!

Common tree vs. Civ-specific trees

The newly added civTechTrees.json contains easily readable structural information about the tech tree for each civ. This finally enables us to somewhat accurately reproduce the in-game tech tree for each civ in the definitive edition.

Having a dedicated tree layout for each civ means that it is possible to sensibly display the effects of Cuman and Burgundian civ bonuses, namely having certain items available in earlier ages.
However, this would then be inconsistent with the general approach to applying civ bonuses in the tech tree – which is to not apply them. Mainly because it would be a lot of work to implement a framework to figure out the correct numbers for cost rebates etc., and nobody has invested the time to create that yet.

The approach of having a common tree layout for all civs that includes all extra unique units has the advantage that you have immediate access to their stats at any time, and do not have to remember and switch to their respective civ first. It inflates the tree a bit though.

Not full translation for Khmer in russian

data/locales/ru/strings.json id=120177 - part about Farmers don't require Mills/Town Centers to drop off food is lost.
Literary translation for this part: Фермерам не нужно относить добытую еду в мельницу/городской совет.

Add AoE2DE Balancing as extra Dataset

With AoE2DE it would be nice to also switch between different balancing datasets, I think. TriRem had posted a paste somewhere collecting all the changes. don't really find it now, though.

Update: Also here from FE a basic changelog.

JS is completely broken on firefox 68

SyntaxError: invalid regexp group civs.js:1:1
ReferenceError: civ is not defined aoe2techtree.net:311:9
ReferenceError: civ is not defined aoe2techtree.net:311:9
ReferenceError: civ is not defined 33 aoe2techtree.net:311:9
ReferenceError: civ is not defined 2 aoe2techtree.net:311:9
ReferenceError: civsConfig is not defined 3 aoe2techtree.net:592:27

Everything is always marked with an X, changing civs doesn't do anything

The Extra Stats No Longer Appear

The movement speed, attack bonuses, attack rate, attack delay, build time, LOS, and time to build no longer appear after selecting a unit.
OS: W7
Browser: Vivaldi

Please see the image attached below for more details.
image

[Edit]: Only the bonus attacks no longer appear now.

Link tech to the affected units/buildings

Sometimes when reading the description of a tech I wonder what exactly will be affected by it.
I am creating this issue after trying to figure out if 'Farimba' affects camel riders or not (in the description we see that it affects 'Cavalry'). Another popular confusion is the blacksmith armor lines and ranged mounted units.
I would suggest to add a list of tech ids for every unit and building in the data.json since the other direction of the relation is far less important.

Incorrect Town Center cost

Town Center Cost is incorrectly displayed as costing only 275W. The correct cost should be 275W 100S.

In data.json there are two buildings that use the LanguageNameId 5164 corresponding to the Town Center. Buliding ID 71 (line 186) and Building ID 109 (line 357). Building ID 71 shows the cost of the TC to be only 275W while building ID 109 shows the correct 275W 100S value.

This value is used as a constant in techtree.js to define the TOWN CENTER (line 31).

Add support for loading civs when the url hash changes from user browsing.

I'm not too familiar with the pull request process, so I'd like to submit a suggestion.

Add the below javascript into the "index.html" script section to allow users to navigate between Civs they have looked at. This will allow users to more conveniently compare tech trees of multiple Civs via the Back and Forward buttons. Also, users will not have to solely rely on the Civ Selection Dropdown to navigate the site.

//Update the Civ based on the url hash to support browsing history navigation changes
window.onhashchange = function(){
let hash = window.location.hash;
let civselect = document.getElementById("civselect");
if(hash.split('#')[1] != civselect.value && hash != "")
{
civselect.value = hash.split('#')[1];
loadCiv();
}
};

Konnik mounted/dismounted

I have found some differing stats for the Konnik mounted vs. dismounted in the AoE II wiki:
https://ageofempires.fandom.com/wiki/Konnik

E.g. pierce armor:
1, 2 (Elite)
0, 1 (Elite) (Dismounted)

In the tech tree the pierce armor of the mounted Konnik seems to be used.

Are there maybe two units in the AoE II Dataset? One for the mounted and one for the dismounted Konnik?

This would also be interesting for implementation of counter units of the different Konnik versions here:
denniske/aoe2companion#10

Make cross reference UI collapsible

I would really like to have the collapsable cross reference UI!

Currently, the panel is so tall that it overflows my screen:
image

The other option is just fixing the code that positions the help panel. Either options would result in a great outcome imho. Cheers~

Originally posted by @pardoman in #15 (comment)

Charge attack and cooldown as additional stats

Maybe you are already working on it but here is an issue for tracking purposes. The Lords of the West expansion introduced the coustillier which has the charge mechanic. This can be displayed in the stats.
This number can be seen in AGE as Max Charge and Recharge Rate. If I get some time over the weekend I shall write a PR to add it.

data reference ID in the json

to build an analytic dashboard it would be great if the json could contain reference id's. ie. what unit belongs to what civ and what building can create what unit. It is somewhere in the scripts, of the html page, for me a little difficult to rebuild

Add other languages

Currently the tech tree is only available in English. We could take the strings files of all available languages and make the tech tree available in those languages as well.

This would mean:

  • Increased size of the data file or separation of data and text
  • Hardcoded civilisation selection dropdown would have to become dynamic
  • Anchors should encode the language as well (keep en as the default language)

Add an "all-available" Civilization

It would be nice to have an all-available Civilization to be able to show the techtree without any techs and units crossed out. This would be helpfull to show beginners all the units and techs at once. This might be even better with an option to (not) show unique units and techs.

Page display techtree

Hey guys, i got an issue as i tried to watch the AOE 2 Tech tree on internet, both on my computer and on my mobile phone. I can't see the top of the page and so i can't change the civs and can't see all the feodal age possibilities.
I tried to use an other research engine, didn't changed anything.
Love the work you do btw !
New on GitHub so don't be mean ;)

Continued New Scrolling problems

The new scrolling feature creates a bizarre and trippy experience on my devices. For research and web browsing I use devices that have excellent omni-directional scrolling built-in, such as the standalone Apple Touchpad, or a Mac Laptop. So naturally, overriding that leads to not only a degraded experience, but unexpected and strange behavior.

Here is an idea for a fix:

If scrolling is a 2D vector, if at any time the x component is observed to be nonzero, set a flag to indicate "This user wishes to control their own horizontal scroll" and skip any custom scrolling behavior entirely for that user, from that point forward. That way, only users using a simpler input device, which only scrolls on the Y axis, would have their scrolling overridden.

Personally however, my vote (for what it's worth) would be for removing the new behavior entirely. Here's why:

The reason I believe it should be completely removed is, users have legitimate reasons for wanting to scroll vertically, and this feature not only takes that away from them, but replaces it with a strange unexpected behavior -- even with a conventional mouse and scroll wheel. For instance, maybe they need to view the site in a smaller window. That may seem like a sub-optimal way to browse the site, but why should the site dictate preconditions for how users must use it? It doesn't seem right to include behaviors that punish some users for browsing the site like they would any other website.

If it's really essential to make the scroll behavior work exactly like in game, realize that the game itself comes with a lot of assumptions. The game is designed for a mouse-PC combination. Honestly, anytime I'm at my PC and thinking about this game, I'm playing it. For me personally, the tech tree site is for occasions when I need to consult the tech tree from a secondary device, like a laptop.

I also feel like any developer who has experienced just how smooth built-in omnidirectional scrolling can be on some devices would never want to take that away, just to provide a small convenience to other users who already have equivalent means at their disposal (including scrolling with the keyboard arrows). There is no alternative equivalent to smooth built-in omnidirectional scrolling -- once you take it away, it's gone :(

Fonts not looking great

Hey, I tried the app today and noticed that the fonts for the CivTree are getting rendered outside of their respective squares. See Elite Skirmisher or Man-at-Arms.

image

I'm on a MacBook Air, running Chrome 81.

Similar issue in Firefox Developer Edition version 77.0b2
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.