Code Monkey home page Code Monkey logo

warno-data's Introduction

About WARNO

WARNO is the latest addition to the renowned French studio Eugen Systems' portfolio of real-time tactics games. Available as an Early Access title on Steam, WARNO emerges as the spiritual successor to the acclaimed Wargame series. It features hundreds of the Cold War era's most iconic units from NATO and the Warsaw Pact, offering an immersive tactical experience.

About WARNO-DATA

In WARNO, game behaviour and unit data is stored within Eugen Systems' proprietary .ndf files. While Eugen Systems provides a brief modding manual and an .ndf reference guide, outlining the file format, it lacks explanations of the contained data, which is distributed across thousands of .ndf files.

WARNO-DATA aims to bridge this gap by providing a comprehensive wiki. It meticulously documents every key property of the most important .ndf files and explains core game mechanics, including but not limited to damage and accuracy calculations.

Official Wiki

The official WARNO-DATA wiki is accessible here on GitHub.

Data Dictionary
Contains a comprehensive dictionary, outlining significant properties of crucial .ndf files such as UniteDescriptor.ndf, WeaponDescriptor.ndf, and others.

In-Depth Guide to Game Mechanics
Here, you'll find detailed insights into various fundamental game mechanics, including accuracy and damage calculation, among others.

Contributing

Help decipher the yet undocumented properties listed in this thread. For any issues or questions, please open an issue, and I'll be happy to assist.

Copyright Notice

All data presented belongs to Eugen Systems. WARNO-DATA is a community-driven project, operating under the GPL-3.0 licence, and is dedicated to enriching the WARNO community.

warno-data's People

Contributors

perytron avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

warno-data's Issues

Update to Game Version 80721

It has been a long time since I've touched this project. I therefore try my best to adapt the wiki, the Python script and the exports to the changes which had been made by the devs.

This 'issue' is more of a to-do list. It lists everything that needs to be changed for a successful update to game version 80721.

  • Parser Update AirplaneConstantes.ndf
  • Parser Update GDConstantes.ndf
  • Parser Update UniteDescriptor.ndf
  • Parser Update WeaponDescriptor.ndf
  • Parser Update Ammunition.ndf
  • Parser Update DamageResistance.ndf
  • Parser Update DivisionRules.ndf
  • Parser Update OrderAvailability_Tactic.ndf

Error While Trying to Extract DivisionRules.ndf

I would like to first say that you have done a fantastic job on the project however, the data extraction keeps throwing an error with newer versions of the files used to create the export csv, I was wondering if I could get your input updating the project so it can handle the newer data fields added since the patch this was made for?

returned value is 0
Traceback (most recent call last):

DivisionRulesArray = helper.csv.export(procedures.DivisionRules.extract("/Scripts/data/DivisionRules.ndf", "/Scripts/data/Divisions.ndf"), version, "DivisionRules", keywords.deck) 

WARNO-DATA-main\WARNO-DATA-main\Scripts\procedures\DivisionRules.py", line 107, in extract
extractDivisionRules(open(rootDirectory + filePathDivisionRules,"r").read(), 0, Divisions, 0)

WARNO-DATA-main\WARNO-DATA-main\Scripts\procedures\DivisionRules.py", line 28, in extractDivisionRules
extractDivisionRules(temporaryStr, level + 1, Divisions, divisionIndex)

WARNO-DATA-main\Scripts\procedures\DivisionRules.py", line 46, in extractDivisionRules
DivisionRules[-1][listIndex] = [DivisionRules[-1][listIndex][0], Divisions[divisionIndex][listIndex][1]]
~~~~~~~~~^^^^^^^^^^^^^^^
IndexError: list index out of range

ndf parser that might be of use for you.

Hi! Sorry for contacting you via Issues, wasn't able to find any other means. I've recently released a parser that converts Eugen's ndf files to python structures, allows for reading and editing data as well as writing it back as an ndf code. But you might be interested in the first part of that statement - reading data in. Since it's aware of the data structure, you don't have to weave a bunch of regexps together to get to a specific item. Potentially it would make your scripts substantially shorter and easier to maintain. Here is an example code for your case:

import ndf_parse as ndf

# Setup path to the source mod. Leaving output mod empty since you don't need to write data out
mod = ndf.Mod(r"path\to\mod\root", "") 
ammo = mod.parse_src(r"GameData\Generated\Gameplay\Gfx\Ammunition.ndf")
for obj_row in ammo:
    obj = obj_row.value  # row stores additional metadata like namespace, visibility, type etc. Value stores well... the value
    # skip anything that is not of this type
    if obj.type != "TAmmunitionDescriptor": 
        continue
    name = obj.by_member("Name").value 
    caliber = obj.by_member("Caliber").value
    ...

You can take a look at the documentation to see some code examples and an API reference. Hope this helps and again sorry for the issue format!

Refactor .ndf Parser (OOP, RegEx)

Hello, WARNO community!

It has been a while since I last actively developed this project. However, an issue opened by wolff69 has sparked my interest in the project again. After assessing the current state of the code, I have come to the conclusion that the best course of action is to perform a complete refactor by rewriting the entire code base.
Since the last commit on the main branch, I have undergone a semester focused on Python at the University of Zurich which now helps me to go about this project more professionally. I have now decided to adopt a pure object-oriented approach (OOP) using regular expressions (RegEx). This approach should result in a code base that is more readable, versatile, and easily modifiable, enabling not only those with in-depth knowledge of this specific code but also others to contribute to the project.

I will make sure to keep you updated on the progress. Greetings,
Gianluca

Crucial functions:

  • complete .ndf parser
  • .csv exporter
  • SQL query template generator

Specific .ndf Files:

  • AirplaneConstantes.ndf
  • Ammunition.ndf
  • DamageResistance.ndf
  • DivisionRules.ndf
  • Divisions.ndf
  • GDConstantes.ndf
  • OrderAvailability_Tactic.ndf
  • UniteDescriptor.ndf
  • WeaponDescriptor.ndf

Data Exploration

Help me to figure out what the following variables from various .ndf files mean. This is crucial for the decision on what needs to be extracted, but also to keep the Data Directory up to date.

Ammunition.ndf:

  • DispersionWithoutSorting
  • DisplaySalveAccuracy
  • ShowDamageInUI

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.