Jump to content

0abc mod


Nescio
 Share

Recommended Posts

31 minutes ago, Angen said:

adding 4th phase is no big deal as ai is supporting it allready. All you have to do is to create new technology one for athen as they seems to have they own one and one generic for others. 

Adding the technologies is not the problem. I've the following files:

simulation/data/technologies/phase_city.json
simulation/data/technologies/phase_city_athen.json.DELETED
simulation/data/technologies/phase_city_generic.json
simulation/data/technologies/phase_metropolis.json
simulation/data/technologies/phase_metropolis_generic.json
simulation/data/technologies/phase_town.json
simulation/data/technologies/phase_town_athen.json.DELETED
simulation/data/technologies/phase_town_generic.json
simulation/data/technologies/phase_village.json

and my mod include has some structures and technologies that require the metropolis phase. However, when I open the tech tree, the fourth phase doesn't show up:

1592494907_Screenshotfrom2019-02-0922-51-32.thumb.png.cae62ae0da60fafbf5582088981e1dc4.png

Apparently I'm overlooking something. In A22, before the introduction of the `_generic` phase, I only had to add a phase_metropolis.json file and it worked immediately, tech tree and all.

[EDIT]: And if I delete the generic town and city phases and insert their lines, omitting "replaces", into phase_town.json and phase_city,.json, then the tech tree breaks:

2082602204_Screenshotfrom2019-02-0923-04-47.thumb.png.43589c6600d125a71683c534709056c6.png

Edited by Nescio
Link to comment
Share on other sites

4 hours ago, Angen said:

@Nescio I found out that something is wrong with requirments of that phase. The phase is loaded in techtree but then removed by one function because thechs[0] is not defined. Could you try to simplify tech requirments for that phase and try then? And yes replaces has to exists else it is removed too. 

2 hours ago, Angen said:

@Nescio remove from technology any [ civ : ... ] if you want specific phase requirements for some civilisation use phase_metropolis_ptol, if you use _generic it is meant for all civs which does not have special file. Second one, icon name is wrong for that phase.

Basically I don't want to use _generic phases at all, simply one file per phase, as worked in A22 (see https://github.com/0abc/0abc-a22/tree/master/simulation/data/technologies ). And the icon's correct: https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/art/textures/ui/session/portraits/technologies/imperial_phase.png

 

Link to comment
Share on other sites

9 hours ago, Servo said:

error on trying to build a palisade.

interestinglog.html

Unfortunately I can't reproduce the first error, gates work fine on my end; what's your 0abc version?

However, I do get the second error, but only the first time I select palisade wallset in game:

ERROR: CCacheLoader failed to find archived or source file for: "simulation/templates/structures/gaia_fortress.xml"
ERROR: Failed to load entity template 'structures/gaia_fortress'
ERROR: JavaScript error: simulation/components/GuiInterface.js line 1207 TypeError: this.placementWallEntities[tpl].templateData is null GuiInterface.prototype.SetWallPlacementPreview@simulation/components/GuiInterface.js:1207:11 GuiInterface.prototype.ScriptCall@simulation/components/GuiInterface.js:1981:1 updateBuildingPlacementPreview@gui/session/input.js:195:1 handleInputAfterGui@gui/session/input.js:1076:4
ERROR: Error calling component script function ScriptCall

I'm not sure what causes it, though. Building palisades works fine.

Link to comment
Share on other sites

For those interested in gameplay balancing:

Basically there are two radically different approaches for implementing a counter system. One way is to give virtually all unit templates bonus attacks; in that case it's actually unnecessary to have different damage types. Alternatively, one can choose to avoid hard bonus attacks and differentiate with damage types instead; it's less straightforward but also more satisfying.

Balancing in 0abc is unfinished, it's very much a work in progress. Here's a basic outline:

  • currently four damage types: crush, hack, pierce, and thrust.
  • base templates (template_unit_infantry.txt etc.) have equal armour for all types; later this can be changed in their children.
  • ranged attacks are typically 100% pierce; differentiation by range and strength; e.g. archers have twice the range but halve the damage of javelinists
  • a rock-paper-scissors for melee infantry:
    • spear: 100% thrust damage; −1 crush armour, +1 hack armour
    • sabre: 100% hack damage; −1 thrust armour, +1 crush armour
    • mace: 100% crush damage; −1 hack armour, +1 thrust armour
  • then melee infantry types in between:
    • sword: 50% hack, 50% thrust
    • axe: 75% hack, 25% crush
    • pike: 50% thrust, 50% pierce; +1 crush armour, −1 hack armour, +1 pierce armour, −1 thrust armour
  • next: alter camelry, cavalry, chariotry, and elephantry armour (not yet decided)
  • Like 1
Link to comment
Share on other sites

Created many more aura icons: D1778, based upon existing aura and resource icons.

It would be nice if someone (@Lion.Kanzen, @niektb, @Sundiata, @wackyserious, anyone else) could create the following simple icons (PNG, 128×128 pixels, transparent background; example) for me:

  • bricks
  • cheese
  • fish
  • fruit
  • winged sandal (walk speed)
  • shield (armour)
  • bow-and-arrow, orientation bow bottom-left to top-right, arrow bottom-right to top-left (pierce)
  • spear, orientation bottom-left to top-right (thrust)
  • sabre, orientation bottom-left to top-right (hack)
  • mace, orientation bottom-left to top-right (crush)
  • chain or fence, horizontal (capture points)
  • grabbing hand, vertical (capture attack)

Also, the following units in the base game could use their own icon based upon their actor (@wowgetoffyourcellphone?):

  • athen_champion_ranged_gastraphetes
  • pers_champion_cavalry_archer
Link to comment
Share on other sites

2 hours ago, Thorfinn the Shallow Minded said:

Do you think that there might be some further differentiation offered between different types of swords?  Clearly the gladius was used primarily for thrusting while most swords Celts used were better at cutting.  

Yes, I do. In my voculabary swords (and daggers) are double-edged and sabres (and knifes) are single-edged. Fundamentally there are three basic movements: thrusting (forward), slashing (horizontal), and chopping (vertical). True swords can be used for all three (although not every blade is equally good at everything), sabres typically excel at cutting.

  • swords (double-edged): akinakes, xiphos, gladius, spatha, jian
  • sabres (single-edged): khopesh, kopis, makhaira, falcata, seax, machete, cutlass, kilij, scimitar, shamshir, pulwar, talwar, dao

In 0 A.D. swords, sabres, axes, clubs, and side-arms are all considered to be “swords”; in this mod I differentiate between them:

  • mace: 100% crush
  • sabre: 100% hack
  • sword: 50% hack, 50% thrust
  • spear: 100% thrust
  • arrow: 100% pierce

I also have separate templates for axemen (33% crush, 67% hack) and longswordsmen (75% hack, 25% thrust); the former is used for the Iranian sagaris, the latter reserved for the Thracian rhomphaia.

19 hours ago, Sundiata said:

@Nescio, I'm a little pre-occupied these days, but I'll keep you informed if that changes. Success! 

Thanks!

Link to comment
Share on other sites

@Nescio what 100% means for damage type? Does it mean it has number 100 or it there is only that damage type used?

 

btw, that post about to remove any from phase json and to use specific phase file for civ for which you need different requirments was fix for the bug in tech tree in case I was not clear about that :)

Edited by Angen
Link to comment
Share on other sites

15 minutes ago, Angen said:

@Nescio what 100% means for damage type? Does it mean it has number 100 or it there is only that damage type used?

It means its damage is purely of one type. Actual numbers can vary, e.g. infantry spearman currently has 7 thrust damage and cavalry spearman 10 thrust damage; those numbers are subsequently modified by technologies and auras; e.g. mercenaries have their attack damage (all types) multiplied by 1.15, champions by 2.0 (and a mercenary champion thus by 1.15×2.0=2.3).

15 minutes ago, Angen said:

btw, that post about to remove any from phase json and to use specific phase file for civ for which you need different requirments was fix for the bug in tech tree in case I was not clear about that :)

Yes, I figured out it works if one has five files:

phase_metropolis.json
phase_metropolis_generic.json
phase_metropolis_mace.json
phase_metropolis_ptol.json
phase_metropolis_sele.json

However, then the phase is available to all factions, which is not what I want. In A22 I could simply do everything in a single file, and limit it there to those three civs.

Edited by Nescio
reply to edit
Link to comment
Share on other sites

I think errors on palisades is still there. Yes you can build it but you can’t make a gate. Also after you build a palisade and you want to make a gate then the error occurs. The error occur when you click on the built palisade.

I will try to look if there is interesting log on it. 

Btw if I update and replace the previous one all saved games disappear too meaning I have a new file that stars from 0. Can’t it be that it just revise the file and have the saved games intact and all added ones will be available for the saved games?

Edited by Servo
Link to comment
Share on other sites

2 hours ago, Angen said:

Did you try to remove generic one? 

Yes, I did (nogeneric.zip):

Spoiler

ERROR: File 'simulation/data/technologies/phase_metropolis_generic.json' does not exist

ERROR: JavaScript error: gui/reference/common/helper.js line 133 TypeError: loadTechData(...) is undefined isPairTech@gui/reference/common/helper.js:133:11 loadProductionQueue@gui/reference/common/core.js:138:8 getTemplateListsFromTemplate@gui/reference/common/core.js:94:22 compileTemplateLists@gui/reference/common/core.js:41:15 selectCiv@gui/reference/structree/structree.js:87:22 __eventhandler96 (selectionchange)@civSelection selectionchange:0:1 init@gui/reference/structree/structree.js:47:37 __eventhandler63 (press)@structreeButton press:1:7

ERROR: GUI page 'page_structree.xml': Failed to call init() function

 

Nor do I understand why the A22 situation doesn't work (a22phases.zip):

Spoiler

WARNING: JavaScript warning: gui/reference/common/helper.js line 112 reference to undefined property g_ParsedData.phaseList[0]

WARNING: The "phase_town" technology is not researchable in any structure buildable by the athen civilisation, but is required by something that this civ can research, train or build!

WARNING: The "phase_city" technology is not researchable in any structure buildable by the athen civilisation, but is required by something that this civ can research, train or build!

WARNING: Unrecognised phase (phase_village)

WARNING: JavaScript warning: gui/reference/common/helper.js line 100 reference to undefined property g_ParsedData.phaseList[0]

WARNING: Unrecognised phase (phase_village)

WARNING: Unrecognised phase (phase_village)

WARNING: JavaScript warning: gui/reference/structree/structree.js line 189 reference to undefined property buildList[phase]

ERROR: JavaScript error: gui/reference/structree/structree.js line 189 TypeError: buildList[phase] is undefined selectCiv@gui/reference/structree/structree.js:189:3 __eventhandler96 (selectionchange)@civSelection selectionchange:0:1 init@gui/reference/structree/structree.js:47:37 __eventhandler63 (press)@structreeButton press:1:7

ERROR: GUI page 'page_structree.xml': Failed to call init() function

 

 

1 hour ago, Servo said:

I think errors on palisades is still there. Yes you can build it but you can’t make a gate. Also after you build a palisade and you want to make a gate then the error occurs. The error occur when you click on the built palisade.

I will try to look if there is interesting log on it. 

Btw if I update and replace the previous one all saved games disappear too meaning I have a new file that stars from 0. Can’t it be that it just revise the file and have the saved games intact and all added ones will be available for the saved games?

Version numbers are there for a reason: to prevent you from loading save games started under an earlier version, which sometimes might work, but can also cause errors and crashes. Therefore only the save games matching your current mod selection show up in game, all others exist but are hidden. Also, you can have different versions of the same mod installed; just don't load them simultaneously.

So if you want the palisade errors to disappear (and to enjoy numerous other changes), finish your save games, update the mod, and start a new game.

Link to comment
Share on other sites

@Nescio you can be tricky and add phase technology only to chosen civs so another will have no chance or requirement to research or use it. 

 

I think that you cannot have phase_metropolis_{civ} in templates because it is passed to children and if they do not have specified file, they use generic. The solution would be really to set that phase just to specific civs structure and unit files, not to templates.

image.thumb.png.2211aab2ab1e6bba4762945460cd66dd.png7

image.thumb.png.090bd43cadb3a7873b8fa5ce5184fd48.png

Edited by Angen
Link to comment
Share on other sites

11 minutes ago, Angen said:

@Nescio you can be tricky and add phase technology only to chosen civs so another will have no chance or requirement to research or use it. 

 

I think that you cannot have phase_metropolis_{civ} in templates because it is passed to children and if they do not have specified file, they use generic. The solution would be really to set that phase just to specific civs structure and unit files, not to templates.

Yes, but if e.g. the Gauls capture a Seleucid centre, then they (G) can research the metropolis phase there.

Link to comment
Share on other sites

1 hour ago, Angen said:

@Nescio you can be tricky and add phase technology only to chosen civs so another will have no chance or requirement to research or use it. 

 

I think that you cannot have phase_metropolis_{civ} in templates because it is passed to children and if they do not have specified file, they use generic. The solution would be really to set that phase just to specific civs structure and unit files, not to templates.

Actually I tried that too, giving the centre the following production queue:

  <ProductionQueue>
    <BatchTimeModifier>0.8</BatchTimeModifier>
    <Technologies datatype="tokens">
      phase_town_{civ}
      phase_city_{civ}
      phase_metropolis_mace
      phase_metropolis_ptol
      phase_metropolis_sele
    </Technologies>
  </ProductionQueue>

But then I get the following errors:

541538845_Screenshotfrom2019-02-1222-16-34.thumb.png.ab81887257bba38f5436a5c25f9d32ce.png

Neither the fourth phase nor the library or siege tower show up.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...