Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add a 4th "Nightmare" difficulty #53

Merged
merged 17 commits into from
May 27, 2022
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#textdomain wesnoth-A_New_Order

Changelog for 1.4.2:
* (WIP)

Changelog for Porting to 1.16 Server (i.e. 1.4.1)
* New frankenportrait for first scenario's Medic
* Update credits
Expand Down
7 changes: 4 additions & 3 deletions _main.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,16 @@ add-ons/A_New_Order#enddef
#else
# The version number is also set many other places in the code (e.g. in ano_macros.cfg);
# be sure to check those places, as well, when updating this for a new release:
version=1.4.1
version=1.4.2
#endif
icon=data/{LDR_PATH}/images/logo_small.png
image=data/{LDR_PATH}/images/logo_large.png
first_scenario=01_Breaking_the_Circle
difficulties=EASY,NORMAL,HARD
difficulties=EASY,NORMAL,HARD,NIGHTMARE
{CAMPAIGN_DIFFICULTY EASY "data/{LDR_PATH}/images/akladian/akl-clansman.png~TC(1,magenta)" _"Akladian Clansman" _"Trivial" }
{CAMPAIGN_DIFFICULTY NORMAL "data/{LDR_PATH}/images/akladian/akl-warrior.png~TC(1,magenta)" _"Akladian Warrior" _"Normal" }
{CAMPAIGN_DIFFICULTY HARD "data/{LDR_PATH}/images/akladian/akl-shieldguard.png~TC(1,magenta)" _"Akladian Shieldguard" _"Impossible" }
{CAMPAIGN_DIFFICULTY HARD "data/{LDR_PATH}/images/akladian/akl-shieldguard.png~TC(1,magenta)" _"Akladian Shieldguard" _"Difficult" }
{CAMPAIGN_DIFFICULTY NIGHTMARE "data/{LDR_PATH}/images/akladian/akl-protector.png~TC(1,magenta)" _"Akladian Protector" _"Impossible" }
define=ANEWORDER
description= _"The old kingdom of Wesnoth has fallen before barbarian hordes. The occupying barbarians are on the brink of civil war, the seeds of Wesnothian rebellion are kept alive by old legends, while bandits and Dunefolk mercenaries roam the land. Can Gawen Hagarthen unite these disparate factions against a common foe?

Expand Down
2 changes: 1 addition & 1 deletion dist/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.4.1
1.4.2
4 changes: 2 additions & 2 deletions info.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#textdomain wesnoth-A_New_Order

[info]
version="1.4.1"
uploads="0"
version="1.4.2"
uploads="1"
[/info]
29 changes: 25 additions & 4 deletions macros/ano-01_06macros.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@
[/not]
[/filter_second]
{MESSAGE Assassin () (Assassin) _"Get out of my way... I am not here because of you."}
#ifdef NIGHTMARE
cooljeanius marked this conversation as resolved.
Show resolved Hide resolved
[if]
[have_unit]
id=Assassin
[filter_adjacent]
count=6
is_enemy=yes
[/filter_adjacent]
[/have_unit]
[then]
{MESSAGE Assassin () (Assassin) _"...and that means all of you!"}
# TODO: literally make the unit get out of the assassin's way
[/then]
[/if]
#endif
[/event]
[event]
name=die
Expand Down Expand Up @@ -168,7 +183,7 @@
id="Gawen Hagarthen"
[/criteria]
protect_radius=5 # (equal to Young Hagarthen's move points)
value={ON_DIFFICULTY 9 8 7}
value={ON_DIFFICULTY4 9 8 7 6}
[/goal]
[/ai]
[/modify_side]
Expand Down Expand Up @@ -288,8 +303,10 @@
[/not]
[/have_unit]
[then]
#ifdef __DEBUG__
#ifdef DEBUG_MODE
{IF_DEBUG_MODE_IS_ACTUALLY_ON}
{DEBUGMSG1 "$unit.id isn't loyal; skipping refunding the player the cost of it"}
{END_IF_WITHOUT_ELSE}
#else
[delay]
time=1
Expand All @@ -298,8 +315,10 @@
[/then]
[/elseif]
[else]
#ifdef __DEBUG__
#ifdef DEBUG_MODE
{IF_DEBUG_MODE_IS_ACTUALLY_ON}
{DEBUGMSG1 "Skipping refunding player the cost of the moved unit..."}
{END_IF_WITHOUT_ELSE}
#else
[delay]
time=1
Expand All @@ -319,8 +338,10 @@
[/store_unit]
[/then]
[else]
#ifdef __DEBUG__
#ifdef DEBUG_MODE
{IF_DEBUG_MODE_IS_ACTUALLY_ON}
{DEBUGMSG1 "It's not time to evacuate yet!"}
{END_IF_WITHOUT_ELSE}
#else
[delay]
time=1
Expand Down
100 changes: 75 additions & 25 deletions macros/ano-20macros.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
# TODO: maybe don't let this capture villages, at least not on EASY?
[unit]
name= _ "A Former Friend"
type={ON_DIFFICULTY "Walking Corpse" "Soulless" "Ghoul"}
type={ON_DIFFICULTY4 "Walking Corpse" "Soulless" "Ghoul" "Necrophage"}
side=8
x=$x1
y=$y1
Expand Down Expand Up @@ -129,7 +129,7 @@
{IF ano_six_keep not_equals yes}

{VARIABLE ano_six_keep yes}
{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
Expand All @@ -138,7 +138,7 @@
{MSG_narrator _"You have received $gold_amt gold pieces."}
{CLEAR_VARIABLE gold_amt}
{ELSE}
{MSG_narrator _"OOPS. This is a bug."}
{MSG_narrator _"OOPS. There is a bug with looting Robert the Hefty's keep; please report it."}
{END_IF}
[/event]

Expand All @@ -149,7 +149,7 @@
x,y=43,24 #UNDEAD 1
[/filter]

{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
Expand All @@ -169,15 +169,17 @@
{IF ano_five_keep not_equals yes}

{VARIABLE ano_five_keep yes}
{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
side=1
[/gold]
{MSG_narrator _"You have received $gold_amt gold pieces."}
{CLEAR_VARIABLE gold_amt}
{END_IF_WITHOUT_ELSE}
{ELSE}
{MSG_narrator _"OOPS. There is a bug with looting Uri van Roe's keep; please report it."}
{END_IF}
[/event]

[event]
Expand All @@ -190,15 +192,17 @@
{IF ano_four_keep not_equals yes}

{VARIABLE ano_four_keep yes}
{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
side=1
[/gold]
{MSG_narrator _"You have received $gold_amt gold pieces."}
{CLEAR_VARIABLE gold_amt}
{END_IF_WITHOUT_ELSE}
{ELSE}
{MSG_narrator _"OOPS. There is a bug with looting Borlug's keep; please report it."}
{END_IF}
[/event]

[event]
Expand All @@ -211,15 +215,17 @@
{IF ano_three_keep not_equals yes}

{VARIABLE ano_three_keep yes}
{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
side=1
[/gold]
{MSG_narrator _"You have received $gold_amt gold pieces."}
{CLEAR_VARIABLE gold_amt}
{END_IF_WITHOUT_ELSE}
{ELSE}
{MSG_narrator _"OOPS. There is a bug with looting Bor Cryne's keep; please report it."}
{END_IF}
[/event]

[event]
Expand All @@ -229,7 +235,7 @@
x,y=43,3 #ORCS 2
[/filter]

{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
Expand All @@ -246,7 +252,7 @@
x,y=41,14 #Grekulak
[/filter]

{VARIABLE gold_amt {ON_DIFFICULTY 70 60 50}}
{VARIABLE gold_amt {ON_DIFFICULTY4 70 60 50 40}}
{MSGa_Gawen _"Ha! They were hiding some gold here!"}
[gold]
amount=$gold_amt
Expand Down Expand Up @@ -288,6 +294,8 @@
{MSG_Cryne _"I did! And I regret to this day that he failed - but what one can expect from an underling..."}
{VARIABLE ano_assa_cryne yes}
{ELSE}
#po: should be unreachable, but just in case:
{MSG_Cryne _"What was that? Speak up, you mumbler!"}
{FOUR_END_IFs}

{END_WHILE}
Expand Down Expand Up @@ -616,37 +624,48 @@
id=Deorien
[/not]
[/filter_second]
#po: NORMAL or HARD difficulty, so Mal-Raylal revives:
#po: NORMAL, HARD, or NIGHTMARE difficulty, so Mal-Raylal revives:
{MSG_Grekulak _"Arise, my slave, arise!"}
[unit]
#ifdef NIGHTMARE
type=Nightgaunt
#else
type=Shadow
#endif
side=8
x=$x1
y=$y1
id=Shadow of Mal-Raylal
name=_"Shadow of Mal-Raylal"
[modifications]
{TRAIT_LOYAL}
[/modifications]
[/unit]
[store_unit]
[filter]
id=Mal-Raylal
[/filter]
variable=ano_undead_bor
variable=ano_shade_of_mal_raylal
kill=yes
[/store_unit]
[store_unit]
[filter]
id=Shadow of Mal-Raylal
[/filter]
variable=ano_undead_bor
variable=ano_shade_of_mal_raylal
kill=yes
[/store_unit]
{VARIABLE ano_undead_bor.x $x1}
{VARIABLE ano_undead_bor.y $y1}
{VARIABLE ano_shade_of_mal_raylal.x $x1}
{VARIABLE ano_shade_of_mal_raylal.y $y1}
[unstore_unit]
variable=ano_undead_bor
variable=ano_shade_of_mal_raylal
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE ano_undead_bor}
{CLEAR_VARIABLE ano_shade_of_mal_raylal}
[scroll_to_unit]
id=Shadow of Mal-Raylal
highlight=yes
[/scroll_to_unit]
[/event]
#endif

Expand All @@ -661,7 +680,10 @@
{IF ano_grekulak_come equals yes}
{MSG_Grekulak _"Arise, my slave, arise! Why are you deaf to my calls?"}
{MSG_Deorien _"He who dies by my hand is freed from the chains of necromancy forever."}
{END_IF_WITHOUT_ELSE}
{ELSE}
#po: This should probably be unreachable, but just in case:
{MSG_Deorien _"Hm, it seems that this necromancer has strayed rather far from his master..."}
{END_IF}
[/event]

[event]
Expand All @@ -675,7 +697,11 @@
{IF ano_grekulak_come equals yes}
{MSG_Grekulak _"Arise, my slave, arise! Why you are deaf to my calls?"}
{MSG_Deorien _"He who dies by my hand is freed from the chains of necromancy forever."}
{END_IF_WITHOUT_ELSE}
{ELSE}
{MSGm_Ruvio _"Wait! Deorien! Heal him before he passes, so that I may have a chance to strike the final blow!"}
{MSG_Deorien _"I'm sorry, Ruvio, but it looks as though it's already too late..."}
# FIXME: Ruvio has another message in an event that fires separately after this that reads weirdly when placed after this dialogue...
{END_IF}
[/event]

[event]
Expand Down Expand Up @@ -727,7 +753,13 @@
{ELSE}
{MSGm_Ruvio _"So, I will have the chance to kill you, anyway!"}
{END_IF}
{END_IF_WITHOUT_ELSE}
{ELSE}
{IF_HAVE_UNIT (Bor Cryne)}
#po: Case where Bor Cryne dies before Grekulak has arrived:
{MSG_Cryne _"Just you wait... Once Grekulak comes..."}
{ELSE}
[redraw][/redraw]
{TWO_END_IFs}
[/event]

[event]
Expand Down Expand Up @@ -765,6 +797,7 @@
id=Ruvio
[/not]
[/filter_second]
#po: Ruvio is addressing Gawen here:
{MSGm_Ruvio _"Why... Why, my lord? I have only ever asked for but one thing, and yet it was denied me..."}
[/event]

Expand Down Expand Up @@ -808,6 +841,7 @@
[/filter_second]

{IF ano_first_dead equals no}
[redraw][/redraw]
{ELSE}
{IF ano_grekulak_come equals yes}
{WHITEMAGEINRANGE $x1 $y1}
Expand All @@ -816,11 +850,16 @@
{IF ano_opt equals yes}
{MSG_Grekulak _"Rise up, rise up! Join my army! ...Why do you not rise up!?"}
{MSG_Deorien _"You overestimate your strength, Grekulak. White mages and Mages of Light will protect fallen units from being resurrected by you!"}
{ALLOW_RECRUIT 1 ("White Mage")}
{ELSE}
{MSGa_Gawen _"How can this be? He is raising our dead!"}
{MSG_Deorien _"My lord, Grekulak's power is not as strong as he would have you - or himself - believe. He cannot raise people who die in the vicinity of white magi or magi of light."}
{ALLOW_RECRUIT 1 ("White Mage")}
{END_IF}
{END_IF_WITHOUT_ELSE}
{ELSE}
#po: ought to be unreachable, but just in case:
{MSG_Deorien _"How can this be? The undead were supposed to arrive with Grekulak, yet here they are separate from him! Something truly strange must have happened... Be on your guards!"}
{END_IF} #
{END_IF}
[/event]

Expand All @@ -840,10 +879,13 @@
{IF ano_grekulak_come equals yes}
{WHITEMAGEINRANGE $x1 $y1}
{IF ano_opt equals yes}
# (the unit stays safely dead)
{ELSE}
{RISE_UP_RISE_UP}
{END_IF}
{END_IF_WITHOUT_ELSE}
{ELSE}
{MSG_narrator _"OOPS. If one of the undead sides is killing you before Grekulak has come, then that is a bug; please report it."}
{END_IF}
[/event]

[event]
Expand All @@ -854,7 +896,15 @@
{MSG_Cryne _"I think it's time to make use of all our reserves!"}
[gold]
side=3
amount={ON_DIFFICULTY 40 50 60}
amount={ON_DIFFICULTY4 40 50 60 70}
[/gold]
#ifdef NIGHTMARE
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 16 4}
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 16 5}
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 17 4}
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 17 6}
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 18 4}
{IF_NOT_HAVE_CREATE_LOYAL 3 (Akladian Clansman) 18 5}
#endif
[/event]
#enddef
Loading