Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ Desktop.ini
*~
.deps
.dirstamp
*.cfg-bak
6 changes: 4 additions & 2 deletions _main.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@
name="wesnoth-Defense_of_Elensefar"
[/textdomain]

# wmllint: general spellings Elensefar undead Blackwater Carcyn lich liches nightstalk Alduin dwarves dwarvish dwarven Knalgan there'll
# wmllint: general spellings nagas merfolk saurians Tath Grey

# wmlscope: set export=no
[campaign]
id="Defense_of_Elensefar"
name= _ "Defense of Elensefar"
abbrev= _ "DoE"
define=CAMPAIGN_DEFENSE_OF_ELENSEFAR
extra_defines=ENABLE_ANCIENT_LICH
{ENABLE_ANCIENT_LICH}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See issue #4

icon="items/holy-water.png"
# image=""
{CAMPAIGN_DIFFICULTY EASY "units/human-peasants/peasant.png~RC(magenta>red)" ( _ "Civilian") ( _ "Beginner")}
Expand All @@ -32,7 +35,6 @@ Three months after the attack on Carcyn, an army of undead came out of the North
Now the few who remained in Elensefar must hope to defend. A single-scenario campaign.

Note: The author has no idea if the nightmare difficulty is possible, but better players keep asking for hard to be harder."

[/campaign]

#ifdef CAMPAIGN_DEFENSE_OF_ELENSEFAR
Expand Down
63 changes: 35 additions & 28 deletions scenarios/01_Elensefar.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

[scenario]
current_time=0
description=""
Expand All @@ -16,12 +17,13 @@
[story]
{DOE_PROLOGUE_STORY_OF_SOTA}
[/story]
# you:
[side]
controller="human"
fog=yes
{GOLD4 300 300 250 150}
{GOLD4 300 250 200 150}
hidden=no
income=4
{INCOME4 7 6 5 4}
no_leader=no
share_vision="none"
shroud=no
Expand All @@ -46,25 +48,26 @@
support_villages=yes
[/ai]
[/side]
# enemies:
[side]
controller="ai"
fog=no
facing=nw
{GOLD4 150 200 200 250}
{GOLD4 100 150 200 250}
hidden=no
{INCOME4 40 50 50 60}
{INCOME4 30 40 50 60}
no_leader=no
share_vision="none"
shroud=no
side=2
team_name=Undead
user_team_name= _ "Undead"
id=Ras-Tabahn
name="King Ras–Tabahn"
name=_"King Ras–Tabahn"
type="Ancient Lich"
recruit="Walking Corpse, Dark Adept, DoE_Ghost, Ghoul"
# This side also has a recall list, see the RAS_HAS_RECALLS lines later
# Killing a lighthouse was intended to be possible, but it splits the enmy forces too much. It might be an interesting way to add a turn-limit, by having a couple of dedicated attackers start with the lighthouses.
# Killing a lighthouse was intended to be possible, but it splits the enemy forces too much. It might be an interesting way to add a turn-limit, by having a couple of dedicated attackers start with the lighthouses.
[ai]
[avoid]
[and]
Expand Down Expand Up @@ -114,7 +117,8 @@

# Hard difficulty allows this side to recruit blood bats, so the gold and income are much higher to match the more expensive units and upkeep.
[event]
{QUANTITY4 name (unused_event) (unused_event) (turn 13) (turn 13)}
# An enemy reinforcements event, so having it happen earlier makes it harder:
{QUANTITY4 name (unused_event) (unused_event) (turn 19) (turn 13)}
[message]
type="DoE Lighthouse"
message=_ "I just saw a flock of bats arriving on the north side of the river."
Expand All @@ -126,12 +130,13 @@
[/modify_side]
[gold]
side=3
{QUANTITY4 amount 0 0 63 84}
{QUANTITY4 amount 0 1 63 84}
[/gold]
[/event]

[event]
{QUANTITY4 name (turn 13) (turn 19) (turn 25) (turn 25)}
# This turn should be dawn:
{QUANTITY4 name (turn 13) (turn 19) (turn 25) (turn 31)}
[modify_side]
side=2
income=25
Expand Down Expand Up @@ -159,7 +164,7 @@
{IS_LOYAL}
[/unit]
[redraw]
clear_fog=yes
clear_shroud=yes
[/redraw]
[message]
race=merman
Expand Down Expand Up @@ -256,26 +261,26 @@

# Add units to Ras-Tabahn's recall list
#define RAS_HAS_RECALLS COUNT TYPE
[for]
start=1
end={COUNT}
[do]
[unit]
type={TYPE}
side=2
placement=recall
random_gender=yes
[/unit]
[/do]
[/for]
[for]
start=1
end={COUNT}
[do]
[unit]
type={TYPE}
side=2
placement=recall
random_gender=yes
[/unit]
[/do]
[/for]
#enddef
{RAS_HAS_RECALLS 5 "Dark Sorcerer"}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 2 4 4} Spectre}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 2 3 4} Spectre}
{RAS_HAS_RECALLS 5 DoE_Shadow}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 1 3 4} DoE_Nightgaunt}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 2 3 4} DoE_Nightgaunt}
{RAS_HAS_RECALLS 5 Necrophage}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 1 3 4} Ghast}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 2 2 4 5} Lich}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 1 2 3} Ghast}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 1 2 4 5} Lich}
{RAS_HAS_RECALLS {ON_DIFFICULTY4 0 0 1 1} "Ancient Lich"}
#undefine RAS_HAS_RECALLS

Expand Down Expand Up @@ -495,6 +500,7 @@
[message]
# use $unit to make the auto-store happen before the transform
id=$unit.id
# wmllint: local spelling Neep
message= _ "Neep! Neep!"
[/message]
[message]
Expand Down Expand Up @@ -568,7 +574,7 @@
name=bat_transformed_to_undead
[message]
x,y=$x1,$y1
message= _ "Neeeeeeeep!"
message= _ "Neeeeeeeep!" # wmllint: no spellcheck
scroll=no
[/message]
[message]
Expand Down Expand Up @@ -851,6 +857,7 @@
[else]
[message]
speaker=unit
# wmllint: local spelling male_necro
message= _ "male_necro^Vaults full of bodies! They shall all join my minions, and all of the living defenders soon will too!"
female_message= _ "female_necro^Vaults full of bodies! They shall all join my minions, and all of the living defenders soon will too!"
[/message]
Expand Down
4 changes: 3 additions & 1 deletion scenarios/02_Epilogue.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

[scenario]
id="02_Epilogue"
name= _ "Epilogue"
Expand All @@ -22,6 +23,7 @@
[/event]

[side]
side=1
controller="human"
team_name=Heroes
user_team_name= _ "Elensefar"
Expand Down
3 changes: 2 additions & 1 deletion units/DoE_Caravan.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

[unit_type]
id="DoE Mortuary Caravan"
name= _ "Mortuary Caravan"
Expand Down
2 changes: 2 additions & 0 deletions units/DoE_Ghost.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# wmllint: no translatables

[unit_type]
id=DoE_Ghost
[base_unit]
Expand Down
3 changes: 2 additions & 1 deletion units/DoE_Lighthouse.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

[unit_type]
id="DoE Lighthouse"
name= _ "Lighthouse"
Expand Down
4 changes: 3 additions & 1 deletion units/DoE_Nightgaunt.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# wmllint: no translatables

[unit_type]
id=DoE_Nightgaunt
[base_unit]
[base_unit]
id=Nightgaunt
[/base_unit]
cost=45
Expand Down
2 changes: 2 additions & 0 deletions units/DoE_Shadow.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# wmllint: no translatables

[unit_type]
id=DoE_Shadow
[base_unit]
Expand Down
2 changes: 1 addition & 1 deletion utils/abilities.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

#define DOE_ABILITY_NIGHTSTALK
[hides]
Expand Down
6 changes: 3 additions & 3 deletions utils/journey.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# wmllint: no translatables

# trackplacer: map=data/core/images/maps/titlescreen.png
# trackplacer: map=data/core/images/maps/titlescreen.webp

#define ENEMY_NEW_JOURNEY X Y
# Make a new journey mark on a tracking map
Expand Down Expand Up @@ -62,13 +62,13 @@
#define JOURNEY_PART STAGE
[part]
[background_layer]
image=maps/background.jpg
image=maps/background.webp
scale_vertically=yes
scale_horizontally=no
keep_aspect_ratio=yes
[/background_layer]
[background_layer]
image=maps/titlescreen.png
image=maps/titlescreen.webp
scale_vertically=yes
scale_horizontally=no
keep_aspect_ratio=yes
Expand Down
1 change: 1 addition & 0 deletions utils/lighthouse_schedule.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# wmllint: no translatables
# Time Area for the lighthouse and the mortuary houses, simulating illumination (from TRoW's Clearwater Port)
#define DOE_LIT_SCHEDULE
# Schedule using the red, green, blue values from other ToDs,
Expand Down
4 changes: 2 additions & 2 deletions utils/story.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#text_domain wesnoth-Defense_of_Elensefar
#textdomain wesnoth-Defense_of_Elensefar

#define DOE_PROLOGUE_STORY_OF_SOTA
{JOURNEY_PART CARCYN}
Expand Down Expand Up @@ -33,7 +33,7 @@ Still, it was a formidable army that approached Elensefar."
#define DOE_EPILOGUE
[part]
[background_layer]
image=story/landscape-battlefield.jpg
image=story/landscape-battlefield.webp
scale_vertically=yes
scale_horizontally=no
keep_aspect_ratio=yes
Expand Down