GithubHelp home page GithubHelp logo

cooljeanius / son_of_the_black_eye_easy_edition Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 21.8 MB

Add-on campaign for Battle of Wesnoth; forked from mainline SotBE

Home Page: https://forums.wesnoth.org/viewtopic.php?f=8&t=53597

License: GNU General Public License v2.0

Lua 90.17% Shell 9.83%
wesnoth wesnoth-campaign wesnoth-umc

son_of_the_black_eye_easy_edition's Introduction

I know this is supposed to be an expert-level campaign, but I still wanted to
beat it anyways, so I had to edit it a lot. I edited it so much that I'm
making this repository so that I can publish my changes as a separate campaign
on the add-on server. My edits were only targeted at making the main 
objectives easier; I've also tried rebalancing so that the optional objectives
(i.e. killing the enemy leader in a scenario where you're just supposed to
survive) are harder. Here's a description of my changes so far:

01 End of Peace: Just some basic gold tweaks. Probably too easy now, but it's
  the first scenario, so it ought to be easy IMO. Also Vrag is loyal now.
02 The Human Army: Just gold tweaks; add some easter eggs for people using
  debug mode to attack Lanbec'h
03 Toward Mountains of Haag: Started off as just basic gold/turns tweaks, on
  another playthru I decided to add some looting events for capturing dwarven
  villages, too. The dwarven recruiting instructions here are a WIP. In later
  versions: add "Over the Northern Mountains" to music playlist (since you are
  going over the northern mountains), use Dwarvish Woodcutters, add dwarf responses
  to getting looted, have trolls be slowed when they appear (so they don't get to
  the dwarves before you do), use LIMIT_CONTEMPORANEOUS_RECRUITS, try to have troll
  AI protect Grüü better, etc.
04 The Siege of Barag Gor: OK now here's where things really start to change.
  The defenders of Barag Gor kept dying before I could save them, so I had to
  make them stronger. The shamans wouldn't hit anything whenever they attacked,
  so I made their attacks magic, partly to increase their hit chances, and
  partly also because that just made more sense to me anyways? Also I put more
  villages inside of Barag Gor for healing, and also because as a city, it just
  made sense to have them. I also made Rugh's death cause defeat, which may
  seem like it makes it harder, but actually it makes it easier by saving you
  the time of just waiting around after he dies for the rest of you to die as
  well, because that's basically what happens when he dies anyways. To make up
  for his death now causing defeat, I upgraded him into a Nightblade on Easy.
  I also added some traits to the shamans. While putting "Aged" on the Old one
  might make things harder, it just made more sense flavor-wise. And the traits
  I put on the other two were positive. I also gave the defenders of Barag Gor
  2 more archers on Easy. Also the usual gold, income, & turn limit tweaks. In
  later versions: give Rugh and Jetto traits, AI tweaks
05 To the Harbor of Tirigaz: apologize for Holy Water being a red herring, also
  gold tweaks.
06 Black Flag: Here the enemies kept overtaking me before I really had a chance
  to set up, so I removed their starting villages so they'd waste more time
  capturing them instead. I also wanted to give your ally some villages as
  well, so I made Affman a leader so that his side could have villages.
  Finally, I also turned the generals into lieutenants in this scenario as
  well.
07 The Desert of Death: It took too long waiting for everyone to get a chance
  to recover from their scorpion poisonings, so I added more villages to the
  map.
08 Silent Forest: basic gold/turns tweaks; use LIMIT_CONTEMPORANEOUS_RECRUITS
  more; get gold on interrogation; add another village...
09 Shan Taum the Smug: just gold tweaks (at first); I also tried to make
  Shan Taum's side persistent, but then later decided against it. Gave Shan Taum
  some guards if he is attacked (since I'm only trying to make the main objectives
  easier here, not the bonus objectives), and an income. In later versions: add
  another keep, more gold/income tweaks, modify Shan Taum AI and recruits, give
  Shan Taum more gold if you try to play too aggressively
10 Saving Inarix: I made it much easier to save Inarix here. I turned Thelarion
  from an Elvish Champion into an Elvish Hero here, and since he keeps coming
  back in later missions, I made (or at least tried to make) his side
  persistent (as well as Darstang's). I upgraded Plonk from a Slayer to a
  Nightblade to help you break thru the bottleneck on the bridge more easily.
  I gave Inarix more guards escorting him on easy, and adjusted their
  coordinates. I also gave Darstang and Thelarion events for when they're
  attacked. On another playthru, I made the guards on the bridge weaker, and gave
  the player a hint as to how to break thru them. I also had Inarix reprimand the
  player if the player forgets to move any saurians on the turn they appear, as
  I did that once. In later versions: make use of Dwarvish Woodcutters, give Plonk
  an extra trait (on EASY), give Inarix traits, add some delays to the explosion
  animation
11 Clash of Armies: I reduced the number of gryphons the dwarves recruit here
  so you don't have to split your attention as much and can focus more easily.
  I also reduced the HP boosts for the transport ships so they can be destroyed
  more easily. On another playthru, I handled the case of the player having an
  empty recall list when the roles at the start are assigned. In later versions:
  debug message tweaks, have falcons appear with merfolk on EASY
12 Giving Some Back: basic gold/turns tweaks; also gave orcs starting villages. In
  later versions: give Arthain more recruits, try to prevent your allies from
  killing the enemy leaders for you and stealing your experience, have enemies
  target your allies more
13 The Dwarvish Stand: Started off as just gold tweaks, also decided to give
  the player a yeti here as it's the first of a series of winter levels. On
  another playthru, I also let the player start recruiting Frost Stoats and
  Icemonaxes here, for the duration of the winter, as they are specialized for
  snowy terrain. In later versions: increase turn limit, use "Over the Northern
  Mountains", have dwarves use Dwarvish Woodcutters, have bandits use Ruffians and
  Woodsmen, make terrain snowier (and add snowshoes to compensate), give enemies a
  bit more gold if you have too much, add events for attacking enemy leaders so
  that they're better defended, more gold/income tweaks, give enemies more guards,
  update cutscenes, add sound effects to certain new events so you can tell if they
  happen or not, even more enemy defenses, etc.
14 Back Home: I used the LIMIT_CONTEMPORANEOUS_RECRUITS and ON_DIFFICULTY
  macros here a lot. This is about where I started to realize that making
  Thelarion's side persistent didn't actually work. I might go back and try
  the `persistent=yes` method later (instead of the `save_id=` method currently
  in use), but knyghtmare says that that method results in multiple
  Lanbec'hs back in S11 (Clash of Armies)... In later versions: increase turn
  limit, add more snowshoes, make terrain snowier here too, modify enemy AI, let
  elves recruit Elvish Horsemen, give enemies more gold if you have too much, etc.
15 Civil War: started off as mostly just some basic turns/gold tweaks. I have
  also tried to add back the commented-out assassination code. To try to make
  said code actually work, I felt that I'd need a way to give the player a
  way to sneak around the front lines to actually pull off assassinations
  while the enemy still has other units alive, which is why I gave the player
  (the option of) some additional units, assuming they have either Plonk or
  Jetto still around. It's still kind of hard to make sure the enemies still
  have enough units left for one to take over as a leader though; any
  suggestions as to how to improve this while still keeping it are welcome. In
  later versions: use "Over the Northern Mountains", increase turn limit, one more
  pair of snowshoes, make terrain snowier here too, modify enemy AI, disable
  poison-spreading behavior
16 The Coward: I edited the map here to give the player more keep tiles for
  recruiting, so they can catch up to the stream on enemies flooding them on
  time. Also some gold levels tweaks. After the enemy's initial assault wears
  off they're not left with much, so I added an event when Orga is attacked to
  give him some gold back to make up for what I took away. Also, now that I
  allowed recruiting Frost Stoats and Icemonaxes earlier in this campaign, I took
  them away again after this scenario, due to winter ending.
17 The Human Attack: started off as just gold tweaks; also added an event
  giving Lanbec'h guards when he's attacked to keep the focus on just
  surviving, rather than trying to kill him. The guards do drop gold when killed,
  though, to make sure they aren't TOO overpowering. In later versions: give
  Lanbec'h more recruits, add a few more events
18 Northern Alliance: again, mostly just gold tweaks. I also tried to make
  Shan Taum more defensive so he'd defend more against Howgarth rather than
  killing your green side of orcish allies, but that didn't really work. I
  mean, it worked in the sense that I saved my allies after I made my edits,
  but Howgarth still got to Shan Taum before me though. Note that it's possible
  to use the AI_CONTROLLER thing to stop Howgarth from getting to Shan Taum
  before you, but as that is going to be deprecated soon, I want to make sure
  it works even without it. In later versions: give Lanbec'h, Shan Taum, and
  Howgarth more recruits, modify enemy AI, add an event for Shan Taum being
  attacked

Note: this add-on was originally part of my generalized mods collection;
its history there can be found at: https://github.com/cooljeanius/wesnoth_mods
Forum thread here: https://forums.wesnoth.org/viewtopic.php?f=8&t=53597

son_of_the_black_eye_easy_edition's People

Contributors

cooljeanius avatar imgbotapp avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

son_of_the_black_eye_easy_edition's Issues

More complex mathematical computations

  • Mountains of Haag: make the looting of the treasury dependent on how many villages the orcs captured from the dwarves
  • Silent Forest: make the limit on the number of woses dependent on the number of units with fire-based attacks that the player has
  • Silent Forest: come up with a new formula to determine how much gold the elf you interrogate carries
  • Civil War: when the enemy unit is having a conversation with one of your units, compare the forced chance-to-hit against the terrain's chance-to-hit, so that the enemy unit always has their chance-to-hit reduced

Make sure all Nightblades get the icon for their "Kick" attack applied correctly

So far only the unique Nightblades that get a "kick" icon are Rugh and Plonk; I wrote a block of code meant to address that, but it doesn't appear to work currently:

# Might want to put this in a separate macro instead, but for now just keep it here:
[if]
[variable]
name=unit.type
equals="Orcish Nightblade"
[/variable]
[and]
[not]
# These 2 already handle this separately:
[variable]
name=unit.id
equals=Rugh
[/variable]
[or]
[variable]
name=unit.id
equals=Plonk
[/variable]
[/or]
[/not]
[/and]
[then]
# FIXME: this doesn't work:
[modify_unit]
[filter]
id=$unit.id
[/filter]
[object]
id=kick_icon
duration=forever
silent=yes
[effect]
apply_to=attack
name=kick
set_icon=attacks/kick.png
[/effect]
[/object]
[/modify_unit]
[/then]
[/if]

Winter specializations

Orcs aren't very good at fighting in snow, which is rather odd, given that their faction name is "Northerners". This is why I gave the player a yeti. However, just one yeti isn't exactly enough. I need to come up with other ways of modifying the orcish sides to make them fare better with snow. Once Wesnoth 1.15 becomes Wesnoth 1.16 it will add some new monsters to the game that will presumably be better with snow (such as the Icemonax), so maybe make them recruitable for the winter scenarios?

AI improvements

  • The Dwarves in Mountains of Haag need their recruitment_instructions tuned a bit better
  • Disable the 1.15 AI's spread_poison CA in certain missions (this part can wait until 1.15 becomes 1.16)
  • Come up with a plan for what to do once the AI_CONTROLLER macro is deprecated, as it is used heavily here
  • In the final scenario, make the AI "smarter" (dumber from their point of view, but smarter from a coding perspective) about saving its Lancers until Kapou'e is ready for them, so that we don't have to use the current solution of using LIMIT_CONTEMPORANEOUS_RECRUITS to keep their numbers low

Have Inarix prevent your turn from ending if you forget to move her

See here:

# FIXME: it's too late to do this here, since the turn is already ending:
#ifdef __UNUSED__
[disallow_end_turn][/disallow_end_turn]
[message]
speaker="narrator"
image=wesnoth-icon.png
message=_"You must move some saurians first before ending this turn!"
[/message]
[event]
name=moveto
[filter]
race=lizard
[/filter]
[allow_end_turn]
[/allow_end_turn]
[/event]
#endif

Add indicator to show which units are wearing snowshoes

@brirush84's original submission of snowshoes code in bug #10 originally included a trait to show units wearing snowshoes, but unfortunately I cut that in the process of rewriting the macro to use the {PICKUPPABLE_ITEM} macro instead. I should test adding the trait back, or invent a different way of indicating that a unit is wearing snowshoes, such as adding an icon to the unit sprites, or something...

Some scenarios may have become TOO easy?

When trying to graft Yumi's mainline changes for 1.15 onto this branch in 69da735, I tried to make sure all my amounts would stay easier than hers. However, in doing so, I may have inadvertently made things TOO easy, to the point where it becomes boring to play. However, to keep the title of "Easy Edition" I really ought to keep all my amounts easier than what's in mainline... maybe it's time to change what the acronym stands for, and make it "Eric's Edition" instead? I'm not too sure about this; leaving open for discussion...

Enemy persistence

Darstang, Thelarion, and Shan Taum keep coming back to fight the player across multiple scenarios. Their sides should be made persistent when relevant. Unfortunately when I tried to do so previously, it didn't work out properly. Find out what went wrong and fix it.
(Note: while Lanbec'h also comes back to fight the player across multiple scenarios, making his side persistent would just be unfair, so I'm leaving him out of this)

Make mountains snowy?

In the winter levels, the mountains are just regular mountains (Mm) instead of snow-covered ones (Ms), which has the odd effect of having some units be able to move more quickly thru the mountains than they do across the plains. @nemaara thinks that this is because the original SotBE might have been written before snow-covered mountains were introduced, but I would want to verify that before changing anything here. Also, making the mountains snow-covered might make things harder, when I'm trying to make things easier in this campaign, so I'd want to consider that, as well... I might still make the change anyways, though, just because it'd make more sense...

Show title card in opening story

I created a social card that would do nice double duty as a title card; unfortunately it doesn't look quite right when mixed in with the travel maps. Part of that is because the transition between story parts is just a cut thru black by default; a fade would look better, if that's possible.

More traits for more units

This is a follow-up to bug #7. Other candidates for gaining more traits (at least on EASY): Jetto, Al'Brock, Flar'Tar, Plonk, Inarix

Dialogue improvements

  • better yeti-related dialogue in general
  • Mountains of Haag: make dwarves react to getting looted (requires coming up with an image for the responding villages)
  • Civil War: ensure enemy leaders don't end up talking to themselves
  • Civil War: ensure Kapou'e doesn't think there are still enemy leaders after you've converted enemy sides to allies via assassination
  • Civil War: reduce duplication in end-of-level dialogue
  • The Human Attack: additional text explaining that ally side is the one getting the gold when an allied unit kills a Royal Guard
  • General copyediting/proofreading, as done in mainline SotBE

Role assignment resiliency

Ensure all instances where roles are assigned are able to handle the case where the game fails to assign the role. This means either adding else statements to the role declaration, or adding a condition to check that it was assigned later when actually using that role, or adding comments where neither method is necessary.

Icemonaxes and Frost Stoats don't have names

This can lead to problems when there is code that expects to be able to get a unit name, but instead receives an empty string (for example, when picking up snowshoes). This is split off from issue #10.

S09: make the fight against Shan Taum more defensive

The problem with this scenario is that there's a fine balance to strike between keeping it easy enough to survive while also keeping it too hard to actually beat Shan Taum... I'm thinking I might need to add more events that give him guards and/or extra gold, in case the player gets too close to him...
(this also kinda depends on #17 a bit, since part of the reason I died in a recent playthru was due to forgetting that I needed to keep Grüü alive, and leaving him exposed)

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.