GithubHelp home page GithubHelp logo

inferno8 / wesnoth-era_of_magic Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 3.0 8.86 MB

add-on for Battle for Wesnoth

License: GNU General Public License v2.0

Lua 96.69% Shell 3.31%
wesnoth wesnoth-umc

wesnoth-era_of_magic's Introduction

About

Era of Magic is an add-on for Battle for Wesnoth (BfW), providing a collection of units and associated artwork. For instructions on how to use, see the BfW documentation at:

http://www.wesnoth.org/

For a discussion of this add-on, visit:

https://forums.wesnoth.org/viewtopic.php?f=19&t=20039

License

The add-on's source code is provided under the terms of the GNU General Public License version 2, or (at your option) any later version, under the same terms as the main BfW project.

Installing

This add-on is best installed through the BfW add-on interface. Please see the BfW help for more information.

wesnoth-era_of_magic's People

Contributors

forestdragon-wesnoth avatar galegosimpatico avatar inferno8 avatar mxb2001 avatar proditormagnus avatar slayer95 avatar toranks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

wesnoth-era_of_magic's Issues

Dimensional gate recovers all advancements when load a savegame

A Dimensional Gate recover all of its advancements and the ability to level up simply by loading a savegame.

I'm wondering if this is because the unit advances have been edited directly instead of using [object]

Maybe this is a better alternative:

[event]
    name=recruit,recall,unit placed
    id=eoma_soulcatcher_event4
    first_time_only=no
    [filter]
        ability=soul_catcher
    [/filter]

[modify_unit]
   [filter]
      x,y=$x1,$y1
   [/filter]
  [object]
    id=delete_advancements
    [effect]
       apply_to=remove_advancement
       types=EoMa_Rhami,EoMa_Fire_Elemental,EoMa_Water_Elemental,EoMa_Air_Elemental,EoMa_Earth_Elemental,EoMa_Jinn,EoMa_RhamiKai,EoMa_RhamiDatu,EoMa_Fire_Avatar,EoMa_Water_Avatar,EoMa_Air_Avatar,EoMa_Earth_Avatar,EoMa_Great_Jinn,EoMa_Efreet
    [/effect]
  [/object]
 [/modify_unit]

    [allow_undo]
    [/allow_undo]
[/event]

This need to change the code on other parts too (for example when kills a unit and advances, first delete the object then advances, and in the two last scenarios, when you pay 6 gold to a free advance), but from what i've seen in various parts of the code, the solution of using object is simpler than currently exists.

EDIT: Already tested and works

If you want, I can fix it in several parts and send a PR proposal @inferno8

This PR is related, because of it I discovered that neither my fix nor the original method works correctly:
inferno8/wesnoth-To_Lands_Unknown#17

EoMa_remember_indirectly_damaged_unit lua error

Got this when Omen attacked one of Rhamis with its all around attack (BfW 1.16.8, latest development version of EoMa, debug on):
eoma_preload_issue

My knowledge of lua is limited but it seems like the "T" variable is not assigned properly (?).
@ProditorMagnus any ideas on how to fix this?

Unknown unit types in the final scenario

Hey.. I'm posting here cause there's no repo for To Lands Unknown. Sorry if it's the wrong place
Had an error for unknown unit types in the final scenario
I'm playing 1.14.0-2, To Lands unknown 3.0.0. Please find attached a screenshot

screenshot from 2018-05-04 04-40-23

Animation error when a dimensional gate kills another dimensional gate

2023-02-20.05-16-57.mp4

This has a easy fix. Simply doesn't allow one dimensional gate consume another:

[event]
    name=die
    id=eoma_soulcatcher_event3
    first_time_only=no
    [filter]
        [not]
            race=mechanical,undead
			[or]
				type=EoMa_Dimensional_Gate_II,EoMa_Dimensional_Gate
			[/or]
        [/not]
    [/filter]

Or if you prefer, one dimensional gate can be allowed to consume another without this error, I can find a way and send a joint PR proposal with #36

Minor internal issues

When creating script to transform EoMa to version suitable for ageless, I found that

  • eomaprecision does not have eoma_ like other abilities
  • Grand Summoner is TLU_Grand_Summoner instead of EoMa_Grand_Summoner
  • Races tharis, cyclops, roc, salamander, summoner have no prefix
  • MAGENTA_IS_THE_TEAM_COLOR is still used
  • Some faction ids are like darkblood_rpg, others like destroyers. There is also alkamija_rpg, but summoners
  • 20180525 21:12:27 error general: Mismatched parenthesis:
./units/Kharos/Child_of_Light.cfg:            halo="halo/silverwarrior-teleport[3~7].png~GS()~CS(30,30,30:100"
./units/Kharos/Mistress_of_Light.cfg:            halo="halo/silverwarrior-teleport[3~7].png~GS()~CS(30,30,30:100"

Triple strike lua error on 1.17.22

When killing third party with triple strike, the following lua error appears on 1.17.22 (-d --log-debug=wml):
2023-11-04 130916

Context: Raging Hydra attacked one of two Bronze Warriors. The primary target's HP was initially full, while the other unit had only 1HP (debug). When the bystander was successfully killed, the lua error appeared. This also happens during defense and in TLU.

The error does not appear on 1.16.x.

On the other hand, the similar "All around" weapon special works fine.

I am not a lua expert but it looks like [harm_unit] tries to access a non-existing unit in an array at the given index.
@ProditorMagnus Any ideas on how to fix this?

EoMa faction unit count table

Factions: v4.6 Planned: v.4.7 notes
Dark Blood Alliance 40 1 41 Corrupted Wyvern (lvl4)
Summoners 38 2 40 Master Banisher (lvl4), Dimensional Gate 3
Barbarians 38 38
Tharis 37 1 38 Chainlady (lvl3)
Kharos 37 37
Runemasters 38 (-2) 36 remove: Dwarvish Cadet, Dwarvish Commando
Destroyers 35 35
Sky Kingdom 35 35

Unknown unit types

Tested on 1.13.14, log has
Unknown unit type : EoMa_Dwarvish_Arctic_Scout
Unknown unit type : EoMa_Dwarvish_Arctic_Commando

WMLUNITS warnings for Era of Magic

Warning: Weapon special chance_to_hit has no name for EoMa_Perfect_Drone.
Warning: Weapon special chance_to_hit has no name for EoMa_Goblin_Kamikaze.
Warning: Weapon special chance_to_hit has no name for EoMa_Chronomancer.
Warning: Weapon special chance_to_hit has no name for EoMa_Chronomancer_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Hidden_Face.
Warning: Weapon special chance_to_hit has no name for EoMa_Hidden_Face_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Mirrorshield.
Warning: Weapon special chance_to_hit has no name for EoMa_Mirrorshield_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Mystic_Warrior.
Warning: Weapon special chance_to_hit has no name for EoMa_Mystic_Warrior_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Sky_Guardian.
Warning: Weapon special chance_to_hit has no name for EoMa_Sky_Guardian_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Grand_Summoner.
Warning: Weapon special chance_to_hit has no name for EoMa_Grand_Summoner_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Mystical_Jinn.
Warning: Weapon special chance_to_hit has no name for EoMa_Mystical_Jinn_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Neutral_Summoner.
Warning: Weapon special chance_to_hit has no name for EoMa_Neutral_Summoner_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Summons_Master.
Warning: Weapon special chance_to_hit has no name for EoMa_Summons_Master_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Sworddancer.
Warning: Weapon special dummy has no name for EoMa_Chaos_Wyvern.
Warning: Weapon special dummy has no name for EoMa_Chaos_Rider.
Warning: Weapon special dummy has no name for EoMa_Chaos_Rider_rpg.
Warning: Weapon special dummy has no name for EoMa_Chaos_Wyvern_rpg.
Warning: Weapon special dummy has no name for EoMa_Great_Wyvern.
Warning: Weapon special dummy has no name for EoMa_Great_Wyvern_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Shadow_Salamander_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Swamp_Spirit.
Warning: Weapon special chance_to_hit has no name for EoMa_Temple_Guard.
Warning: Weapon special dummy has no name for EoMa_Wyvern.
Warning: Weapon special dummy has no name for EoMa_Wyvern_Tamer.
Warning: Weapon special dummy has no name for EoMa_Wyvern_Tamer_rpg.
Warning: Weapon special dummy has no name for EoMa_Wyvern_Rider.
Warning: Weapon special dummy has no name for EoMa_Wyvern_Rider_rpg.
Warning: Weapon special dummy has no name for EoMa_Wyvern_rpg.
Warning: Weapon special dummy has no name for EoMa_Apocalypse.
Warning: Weapon special dummy has no name for EoMa_Apocalypse_rpg.
Warning: Weapon special chance_to_hit has no name for EoMa_Atokpi_Charger.
Warning: Weapon special chance_to_hit has no name for EoMa_Atokpi_Charger_rpg.
Warning: Weapon special dummy has no name for EoMa_Black_Portal.
Warning: Weapon special dummy has no name for EoMa_DarkApostle.
Warning: Weapon special dummy has no name for EoMa_DarkApostle_rpg.
Warning: Weapon special dummy has no name for EoMa_Devourer.
Warning: Weapon special dummy has no name for EoMa_Pirania_Monstruosa.
Warning: Weapon special dummy has no name for EoMa_Titania.
Error: No attack icon 'attacks/dummy.png' found for 'eoma_wesnoth_bug_3827'.
Warning: Weapon special dummy has no name for eoma_wesnoth_bug_3827.
Warning: Weapon special chance_to_hit has no name for EoMa_Savage_Roc_Rider.

Unit type and base unit type events are merged

Too many unbalanced tags corrupts other abilities. I also don't think the {OPTIONS} trick even works.

For example, TLU's ability Meditation main event handler is garbled and never run.

imagen

Fallen Cyclops King and Um description contains markup that breaks help

Span works when hovering unit type name on sidebar, but does not let you open help menu on that type.

Detected with https://github.com/ProditorMagnus/WML_tree_tools.

AE_mag_Fallen_Cyclops_King This unit is from The Era of Magic. Its coding and art were done by inferno8.

The following extract has been compiled by golem XTC1-3 from excavation site 3, property of cartographer Silos:
<span font-style='italic'>-(...) most unusual. The subservient dead flesh (...) animated using (...) (new?) (...) useful. Much (intelligence?) easier.
- New (...) (milestone?). Necromancy reigns (a supreme?) dark art. Artisans of living flesh will (bow to?) our thrulls (...).
-They destroyed them. But they don't (...). No (...) control. It (...) conscience. We (cannot?) (...).
- High warlocks have (barricade?) inside (...). Population (...) alone. (...) slaughter. (must?) flee. (King?) fled by the (...) gate. (...) collapse (...).
- Battle lost (...). They (are?) legion. They (not?) stop. They (only?) destroy. They all destroy. (...) prime command prevails (...). What have (we?) done. (...)failure (...).
- They share (...) mind. (...) not necromancy (...). Do not engage (...) it will grow (...) more intelligence. Do not repeat (....). If you (read?) flee. You (...) doomed.</span>
AE_mag_Um This unit is from The Era of Magic. Its coding and art were done by inferno8.

Ums (<italic>text='um'</italic> in single) are the Sky Kingdom's top secret weapon. They represent the pinnacle of Sky Kingdom's biological enhancement technology. Their creation is a result of long, hard studies and experiments, requiring many factors, including a fit Mu specimen, genetic modification, and extreme amounts of nutrition. Their name means 'mind' in the language of one of the nations the Sky Kingdom have observed. The power of the Ums is beyond that of any other artificial being the Sky Kingdom has created.

Improve swift strike code

+#define WEAPON_SPECIAL_AE_MAG_SWIFTSTRIKE VALUE
+    [attacks]
+        id=AE_mag_swiftstrike
+        name= _ "swift strike"+" +"+{VALUE}
+        description= _ "When this attack is used offensively, the attacker gets +1 bonus strike."
+        apply_to=self
+        active_on=offense
+        add=1
+    [/attacks]
+#enddef

If it takes {VALUE}, then value should affect function of the ability. I also dont see why this should be forbidden in rpg.

Also noticed FROZEN_REGENERATION looks like it does not work on mixed terrain like ice+forest.

WEAPON_SPECIAL_EOMA_STUN modifies chance to hit

#taken from EFM
#define WEAPON_SPECIAL_EOMA_STUN
    [chance_to_hit]
        id=eoma_stun
        name= _ "stun"
        description= _ "This attack puts enormous pressure on the enemy, disrupting his ZOC if a hit is landed. Not active on defense. Does not work on units that do not have a ZoC."
        apply_to=opponent
        active_on=offense
        value=60
        cumulative=yes
    [/chance_to_hit]

Description does not tell anything about change to hit. No in game impact, all attacks with it have another chance_to_hit special too.

Collector issues

  1. {MODIFY_UNIT id=$second_unit.id max_hitpoints $maxhp} needs to add [object] instead to not lose added hp after unit rebuild
  2. eoma_collector_offensive needs to be cleared after attack even if unit did not die

making better use of the help system

If you have three abilities which do the same, but differ slightly, let's say the hit and run ability, it will be listed thrice in the help. The general rule is, an entry in the help is created for each ability/trait id.

What the ability actually does has nothing to do with the help entry, abilities definitions are inserted with maros into the unit definition, and can thus be tailored for each unit.

I found a good way how to use this approach in WoL and EoC
In this example, all elementals have the same ability โ€“ they get on their terrain +5 hp:
https://github.com/ProditorMagnus/Ageless-for-1-14/blob/master/data/general_data/abilities/resurgence.cfg

One gives the abilities the same id, name and a description which suits all, but gives it depending on the used macro a different implementation.

In some way the mainline's leadership ability did sth. similar until 1.12, by giving different implementations in the macro, and filtering by level which one is active.

It would be good to crowd the help less.

message to inferno8

the bfw forum seems to be unable to load for me at the moment (as well the entire bfw site, possibly due to overcrowrding), while other sites aren't. If this continues, we might have to resort to other methods of communication, like e-mail.

EDIT: nevermind, works now.

Harbinger's chaotic vortex leads to a lua error

Minor issue, tested using the latest release with wesnoth 1.16.6

Use the chaotic vortex, everything looks ok, when the faction with the unit that was just hit gets its turn there's an error saying that set_variable_local expected a string but got a boolean
(screenshot at https://imgur.com/a/ZQJ2fT7, I don't know how to copy&paste that out of wesnoth)

Status of translations

Language Verified Fuzzy Missing
German (de) 496 643 1362
Spanish (es) 2501 0 0
French (fr) 1725 395 381
Hungarian (hu) 237 416 1848
Italian (it) 243 416 1842
Polish (po) 2444 23 34
Russian (ru) 272 310 1919
Chinese (zh_CN) 310 483 1708

It can be seen that there is a large amount of missing strings in German, Hungarian, Italian, Russian, and Chinese. So I'd like to propose and step forward to handle these through machine translation (i.e. no guarantee about quality. See also Cunningham's Law).

French and/or fuzzy strings can be updated too, if so desired.

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.