[MP] Add Survival Scenario Achievements (#7347)

1. Dark Forecast
2. Isle of Mists
3. Team Survival
4. ANL
5. ANL Mines
6. ANL Rescue
This commit is contained in:
Tahsin Jahin Khalid 2023-02-10 02:31:33 +08:00 committed by GitHub
parent 4f232c7265
commit 89361ba152
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 146 additions and 5 deletions

View file

@ -58,3 +58,5 @@
#ifhave campaigns/World_Conquest
{campaigns/World_Conquest/achievements.cfg}
#endif
# multiplayer achievements
{multiplayer/achievements.cfg}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,71 @@
#textdomain wesnoth-multiplayer
[achievement_group]
display_name=_"Wesnoth Multiplayer (Survivals)"
content_for=wesnoth_MP_survivals
# Dark Forecast
[achievement]
id=Wesnoth_MP_Dark_Forecast
name= _ "Foresight of Triumph"
name_completed= _ "Foresight of Triumph"
description= _ "Complete the survival scenario <i>2p - Dark Forecast</i>."
description_completed= _ "Completed the survival scenario <i>2p - ark Forecast</i>."
icon="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/drakes/blademaster.png~RC(magenta>red), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/drakes/blademaster.png~RC(magenta>red), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
[/achievement]
# Isle of Mists
[achievement]
id=Wesnoth_MP_Isle_of_Mists
name= _ "Banish the Mists"
name_completed= _ "Banished the Mists"
description= _ "Complete the survival scenario <i>2p - Isle of Mists</i>."
description_completed= _ "Completed the survival scenario <i>2p - Isle of Mists</i>."
icon="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/dunefolk/soldier/blademaster.png~RC(magenta>blue), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/dunefolk/soldier/blademaster.png~RC(magenta>blue), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
[/achievement]
# Team Survival
[achievement]
id=Wesnoth_MP_Team_Survival
name= _ "Flawless Teamwork"
name_completed= _ "Flawless Teamwork"
description= _ "Complete the survival scenario <i>6p - Team Survival</i>."
description_completed= _ "Completed the survival scenario <i>6p - Team Survival</i>."
icon="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/elves-wood/sorceress.png~RC(magenta>green), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/elves-wood/sorceress.png~RC(magenta>green), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
[/achievement]
# A New Land
[achievement]
id=Wesnoth_MP_ANL
name= _ "Return to Glory"
name_completed= _ "Return to Glory"
description= _ "Complete the survival scenario <i>4p - A New Land</i>."
description_completed= _ "Completed the survival scenario <i>4p - A New Land</i>."
icon="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/human-loyalists/general.png~RC(magenta>gold), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/blank-attack.png~SCALE(72,72)~BLIT(units/human-loyalists/general-leading2.png~RC(magenta>gold), 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
[/achievement]
[achievement]
id=Wesnoth_MP_ANL_mines
name= _ "Economic Recession"
name_completed= _ "Economic Recession"
description= _ "Destroy all enemy mushroom mines in <i>4p - A New Land</i>."
description_completed= _ "Destroyed all enemy mushroom mines in <i>4p - A New Land</i>."
icon="attacks/blank-attack.png~SCALE(72,72)~BLIT(scenery/mine-abandoned.png, 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/blank-attack.png~SCALE(72,72)~BLIT(scenery/mine-abandoned.png, 0, 0)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
max_progress=4
[/achievement]
[achievement]
id=Wesnoth_MP_ANL_rescue_allies
name= _ "Rescue!"
name_completed= _ "Rescue!"
description= _ "Rescue the trapped units in <i>4p - A New Land</i>."
description_completed= _ "Rescued the trapped units in <i>4p - A New Land</i>."
icon="attacks/heater-shield.png~SCALE(72,72)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
icon_completed="attacks/heater-shield.png~SCALE(72,72)~BLIT(misc/achievement-frame-mp.png, 0, 0)"
max_progress=4
[/achievement]
[/achievement_group]

View file

@ -330,6 +330,7 @@ on_event("die", function()
message = _"The screams and pleas for mercy are finally silenced, as you remove your blood soaked blade from the last of the rebels. There will be no more resistance from the local scum. Your reign has finally earned stability.",
image ="wesnoth-icon.png",
}
wesnoth.achievements.set("wesnoth_MP_survivals","Wesnoth_MP_Dark_Forecast")
wesnoth.wml_actions.endlevel {
result = "victory",
}

View file

@ -343,6 +343,7 @@ on_event("die", function()
message = _"As you finally defeat your last remaining foes, the dreary mists around the island seem to lift. The phantoms fade away, at last released from their eternal guardianship. You have finally cleansed the ancient shrine... for now.",
image ="wesnoth-icon.png",
}
wesnoth.achievements.set("wesnoth_MP_survivals","Wesnoth_MP_Isle_of_Mists")
wesnoth.wml_actions.endlevel {
result = "victory",
}

View file

@ -463,10 +463,10 @@ For experienced players, its recommended to lower the starting gold to 75."
# Rescuing trapped units
{ANL_RESCUE_TRAPPED_UNIT 25 13 24 12}
{ANL_RESCUE_TRAPPED_UNIT 35 13 36 12}
{ANL_RESCUE_TRAPPED_UNIT 25 43 24 43}
{ANL_RESCUE_TRAPPED_UNIT 35 43 36 43}
{ANL_RESCUE_TRAPPED_UNIT 25 13 24 12 ({ANL_RESCUE_ACHIEVEMENT_PROGRESS})}
{ANL_RESCUE_TRAPPED_UNIT 35 13 36 12 ({ANL_RESCUE_ACHIEVEMENT_PROGRESS})}
{ANL_RESCUE_TRAPPED_UNIT 25 43 24 43 ({ANL_RESCUE_ACHIEVEMENT_PROGRESS})}
{ANL_RESCUE_TRAPPED_UNIT 35 43 36 43 ({ANL_RESCUE_ACHIEVEMENT_PROGRESS})}
# Destroying mushroom mines
# reduces base income by 10g and destroys the village worthy 3g more
@ -497,6 +497,16 @@ For experienced players, its recommended to lower the starting gold to 75."
image=terrain/village/cave-tile.png
message= _ "You destroy the mushroom mine. The northwest undead now have 10 less income."
[/message]
[set_variable]
name=mines_destroyed
add=1
[/set_variable]
[progress_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL_mines
amount=1
limit=$mines_destroyed
[/progress_achievement]
{CLEAR_VARIABLE side}
[/event]
@ -525,6 +535,16 @@ For experienced players, its recommended to lower the starting gold to 75."
image=terrain/village/cave-tile.png
message= _ "You destroy the mushroom mine. The northeast orcs now have 10 less income."
[/message]
[set_variable]
name=mines_destroyed
add=1
[/set_variable]
[progress_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL_mines
amount=1
limit=$mines_destroyed
[/progress_achievement]
{CLEAR_VARIABLE side}
[/event]
@ -553,6 +573,16 @@ For experienced players, its recommended to lower the starting gold to 75."
image=terrain/village/cave-tile.png
message= _ "You destroy the mushroom mine. The southwest orcs now have 10 less income."
[/message]
[set_variable]
name=mines_destroyed
add=1
[/set_variable]
[progress_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL_mines
amount=1
limit=$mines_destroyed
[/progress_achievement]
{CLEAR_VARIABLE side}
[/event]
@ -581,6 +611,16 @@ For experienced players, its recommended to lower the starting gold to 75."
image=terrain/village/cave-tile.png
message= _ "You destroy the mushroom mine. The southeast undead now have 10 less income."
[/message]
[set_variable]
name=mines_destroyed
add=1
[/set_variable]
[progress_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL_mines
amount=1
limit=$mines_destroyed
[/progress_achievement]
{CLEAR_VARIABLE side}
[/event]
@ -794,6 +834,12 @@ For experienced players, its recommended to lower the starting gold to 75."
message= _ "You have won the game, but you may continue if you wish..."
image=wesnoth-icon.png
[/message]
# give achievement here
[set_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL
[/set_achievement]
[/event]
# Deaths

View file

@ -546,6 +546,11 @@ Ww
image=portraits/elves/lady.webp
[/message]
[set_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_Team_Survival
[/set_achievement]
[endlevel]
result=victory
[/endlevel]

View file

@ -181,7 +181,7 @@
[/switch]
#enddef
#define ANL_RESCUE_TRAPPED_UNIT MOVETO_X MOVETO_Y UNIT_X UNIT_Y
#define ANL_RESCUE_TRAPPED_UNIT MOVETO_X MOVETO_Y UNIT_X UNIT_Y EXTRA_WML
[event]
name=moveto
[filter]
@ -217,6 +217,8 @@
object_id=trapped-web
[/remove_object]
{EXTRA_WML}
# Lose all moves of capturing unit (also if it is a skirmisher)
[set_variable]
name=unit.moves
@ -228,6 +230,19 @@
[/event]
#enddef
#define ANL_RESCUE_ACHIEVEMENT_PROGRESS
[set_variable]
name=ally_rescued
add=1
[/set_variable]
[progress_achievement]
content_for=wesnoth_MP_survivals
id=Wesnoth_MP_ANL_rescue_allies
amount=1
limit=$ally_rescued
[/progress_achievement]
#enddef
#define ANL_PLACE_UNIT SIDE TYPE X Y
{NOTRAIT_UNIT {SIDE} {TYPE} {X} {Y} }
{GUARDIAN}