Legend of the Invincibles

Discussion and development of scenarios and campaigns for the game.

Moderators: Forum Moderators, Developers

Post Reply

Which of these crafting recipes you are using or planning to use? Unpopular ones will be reworked.

The End of All that Is
4
9%
Gloombringer
1
2%
Soul Eclipse
4
9%
Guerilla
5
11%
Scaryface
6
13%
Thundering Revenge
2
4%
Marie Byrd
4
9%
Marrowrend
11
23%
Deathblade Inheritance
0
No votes
Soul Render
10
21%
 
Total votes: 47

User avatar
Flameslash
Posts: 633
Joined: December 21st, 2008, 12:29 pm

Re: Legend of the Invincibles

Post by Flameslash » February 23rd, 2013, 1:56 am

I'm stuck on scenario 3 in chapter 1 on medium. The enemy keep sending Level 2 Wolf Riders and Trolls at me, as well as assassins. Every turn they kill at least 1, sometimes even three units, even some on full health and 70% terrain. If a unit survives their wrath the enemy will just send an assassin to poison me, and there are no villages closer than three turns away for my units (two with Flying Boots). Oh, and I got an item called, um...

EDIT: I tried again on easy but couldn't get any level ups (and only 1 piece of equipment and a gem) in scenario 1 because the bloody peasants kept getting in the way.
Screenshot of Spear:

flyskippy1
Posts: 11
Joined: February 20th, 2013, 12:14 am

Re: Legend of the Invincibles

Post by flyskippy1 » February 23rd, 2013, 11:25 pm

FYI, I can hit the same infinite item bug with the item storage system in the latest update.

Other thing I noticed playing Chapter 3: When AMLAing Teh Ehro's healing ability, he went from (cures, heals +8) to heals +24, losing the cures. Not sure if that's on purpose.

RainerT
Posts: 60
Joined: May 16th, 2011, 7:53 am

Re: Legend of the Invincibles

Post by RainerT » February 24th, 2013, 9:59 am

Hi,

I just had a flew, therefor I didn't answer earlier.

I just updateted to the new version and noticed like others that Items taken from the container aren't removed in the container. I guess it has something to do with the changes to the new container system.
Dugi wrote:@RainerT
Your argument about specific changes with leaders is good. I think I will do it.
You should also adept the resistances Krux, since he is the son of demigods an not an elf. Arcane should be 0 and fire and cold +10.

Dugi wrote:Regarding the items, what do you exactly want? Less resistances? If you have specific suggestions, you can see the file utils/items_list.cfg in LotI's files, change it how you would like it to be (because you appear to know more about the long-term strategy of the campaign than me, if I was replying it all the time I would never do anything; it should be understandable enough, but it is quite significantly different from usual WML), and send it back to me. You can also try to add some items.
It's basically the offensive side, that is to strong. Yo can get such massive damage, that the AMLA otions are more like a nuisance. In general I would avoid that armor pieces add damage apart from some exceptions like item sets ore very special armors. In case of resistances it is okay. Th only thing I would change is "Unimpalabilty". It is to easy with the +40 in pierce to compensate the only weak spot of horse units. +20 is enough. You could still think about handling magic resistances like physical.

There is one thing I never understood. Why is impact reduction halved? It doesn't really matter, because you have rarly enemies with blunt weapons, but don't see any sense in it.


I still think some resistances should be corrected.

The +20 in cold should be removed from the chaos rider, because it doesn't make sense anymore and makes his magic resistances to powerful.

Celestial messanger shuoldn't get physical resistances. He is a healer and magician, but not a fighter.

Scythemaster should get a +10 in edge and blunt and Swordmaster a +10 in pierce. Both are heavy meleefighters and should have resistances for all physical attacks.

I thought about improving the physical resistances of elves as well, but I have a better idea. All elvish fighters/bowmen apart from the gryphon rider should get a reduced chance to hit, since they are agile fighters.


I noticed, if you purify an undead with an chaos rider, the purified unit still has the undead trait.

User avatar
Dugi
Posts: 4931
Joined: July 22nd, 2010, 10:29 am
Location: Carpathian Mountains
Contact:

Re: Legend of the Invincibles

Post by Dugi » February 24th, 2013, 7:12 pm

So, about the inventory issue: I said that some problems with retrospective compatibility might appear. These problems would vanish over time (when you start a new game). Fixing it anyway.

Regarding the issues with difficulty in scenario 3, chapter 1: I loaded an older save file (where only fencers and thieves were on the recruit list), on hard, and I was able to get to the leader and damage him. I was not able to kill him, though, but I had only crappy fencers and thieves to recruit, and not proper warriors. I had enough gold all the time anyway. With some Spearmen and Heavy Infantrymen, I would have probably won, I was not far from it. So, this scenario is completable.
Despite this, I have decreased its difficulty, by giving the enemy less income on higher difficulties. The aim of this add-on is not to frustrate.
flyskippy1 wrote:Other thing I noticed playing Chapter 3: When AMLAing Teh Ehro's healing ability, he went from (cures, heals +8) to heals +24, losing the cures. Not sure if that's on purpose.
It is not removed, just 'heals, cures' is too long, so I altered the 'heals' ability to cure as well (its description says so).

@RainerT
I am not sure if you wanted to tell that you had influenza and wanted to shorten it to flu.
I have set Krux's resistances accordingly to his movetype and to an average between Efraim and Lethalia.
Pieces of armour that increase damage are very rare. I found only The Black Ring, Mighty Gauntlets, Hellslash, Reaper's Ring, and the Dark Set of Destruction. Crafting recipes that significantly improved damage were Blood Revenge, Murderlust, The Art of War and Hatred. I have weakened it/removed it on all of them except Hatred. Can you be more specific about removing these effects from items? From which items should I remove it?
And the AMLA is not a nuisance, because when you use it to add 1 to damage, the increased damage is then multiplied by the items' damage multipliers, that can make a difference. A weak weapon adds more damage than one AMLA, but three AMLAs + the same weak weapon will add as much damage as a potent weapon would add.
The reason why I made the armours increase the impact resistance less is that maces and hammers were always used to bash through armours (a heavy club might use primitive, but against armoured knights, it is much better, that's why Romans used swords, but medieval knights frequently used maces). And I wanted to make the armours have some kind of flaw, to make the units with very good armours and helms and stuff still vulnerable to some kind of melee damage.
Swordmaster had the same resistances as Royal Guard, Scythemaster had the same resistances as Halberdier. I have done the changes you have told me to do anyway.
Removed the 20% cold resistance from Chaos Rider.
Celestial Messenger has some resistances because he is some kind of arcane being, who is slightly resistant to mundane damage. He is still not a good tank and not a good fighter, so a slightly more resilient healer might be useful to have.
A half of elves had advancements with dodging, but I added it to all of them (elvish fighters still have the weak resistance advancements).
And I think that I fixed the problem with remaining undead after being purified.

About Caeordwyccywyrin's spear, there are more items with funny names, most of them are more rare, though.

MRDNRA
Posts: 212
Joined: September 11th, 2009, 5:06 pm

Re: Legend of the Invincibles

Post by MRDNRA » February 24th, 2013, 8:44 pm

I certainly remember being able to complete it chapter 1 scen 3 on easy in older versions with just thieves and fencers recruitable. I'm certainly recruiting a lot fewer of them now but recruiting several of them I guess may well be the key to that scenario to just avoid several enemy troops to reach their leader quickly, especially with rogues now available and having skirmish also. I will try it out at some point and post back to let you know how I manage.

User avatar
Dugi
Posts: 4931
Joined: July 22nd, 2010, 10:29 am
Location: Carpathian Mountains
Contact:

Re: Legend of the Invincibles

Post by Dugi » February 24th, 2013, 8:54 pm

Thanks in advance.

Well, what I forgot to add is that I uploaded it as version 2.4.14. I plan to start working on chapter 9 soon. It will be named The Final Crusade or Under the Burning Skies, I have not decided yet.

Ugmpag
Posts: 12
Joined: December 12th, 2012, 12:37 am

Re: Legend of the Invincibles

Post by Ugmpag » February 25th, 2013, 12:55 am

Flameslash wrote
I'm stuck on scenario 3 in chapter 1 on medium.
Hi flameslash, I had a look at your screenshot and
Spoiler:
I started the campaign over on hard and am only at scenario 5 so I went back and replayed 3 a couple more times. Just have a couple of swords (claymore and rhearents) and -1 armour from item drops and finished on turns 24 and 26 with a dozen or so units lost. I don't see how you could beat this scenario without strategically sacrificing units, but it isn't too hard if you keep an eye on the day/night cycles.
edit- downloaded 2.4.14 and played through scenario 3 on hard. only took 19 turns and i used turn 18 for xp.

Scenario 4 in chapter 1 seems much too easy on hard. It is a mad race to get across the river to try for kills before the woses and elves wipe out the enemies. Played it a couple of times as well, and only once did I have a lone troll come north. Both times the bottom two leaders were killed before I could get to them. Maybe a bit more gold to Brag in the SW would make the endgame a little harder?
edit - just ran the scenario sitting in the keep clicking end turn. The elves won on turn 19 with no help from me.
Last edited by Ugmpag on February 26th, 2013, 12:48 am, edited 1 time in total.

MRDNRA
Posts: 212
Joined: September 11th, 2009, 5:06 pm

Re: Legend of the Invincibles

Post by MRDNRA » February 25th, 2013, 10:22 am

Scen 3 chapter 1 is definitely completable on easy when fighting all the orcs if you semi spam rogues (roughly 50% of recruits rogues the rest a mixture). I still lost quite a lot on this playthrough but would've won if the orc leader hadn't killed my leader from virtually full health in just 2 hits. I had managed to level a few other units to level 2 (had 3 units within a kill of levelling at the start of the level) although I did lose one of those as well as several of the recruited rogues. Basically it's a case of using the rogues to do as much damage as possible while ignoring ToD and hopefully getting a few other units levelled in the process.

Edit: Also a minor bug report. Delenia's crown disappeared after giving her some gear on the first mission. It still hadn't come back by scenario 3.

gfgtdf
Developer
Posts: 1203
Joined: February 10th, 2013, 2:25 pm

Re: Legend of the Invincibles

Post by gfgtdf » February 26th, 2013, 6:19 pm

since the item storae was realy slow i rewrote it in lua.
here is the code if you want to use it too (i haven't notived bugs yet but ofc that doesnt mean there arent any):

Code: Select all

						[option]
							message="View the item storage"
							[command]
								[lua]
								code = <<
									local helper = wesnoth.require("lua/helper.lua")
									local turn_number = wesnoth.get_variable("turn_number")
									item_list_object = helper.get_variable_array("item_list.object")
									item_by_id = {}
									for i=1,#item_list_object do
										item_by_id[item_list_object[i].number] = i - 1
									end
									
								
									inventory_message = {}
									inventory_message.speaker = "narrator"
									inventory_message.message = "What do you want to unstore? <span color='red'> Keep on mind that after the second turn, you can unstore only items that cannot be unequipped.</span>"
									inventory_message.side_for = 1 
									--TODO: make side number right
									local option_exit = { "option", { message = "exit",
										{ "command", { 
											{ "set_variable", { name = "item_chosen", value = -1 } }
										} } } }
									table.insert(inventory_message,option_exit)
									
									inventory = helper.get_variable_array("inventory")
									if(inventory == nil) then 
										inventory = {}
									end
									for i=1,#inventory do
										local k = item_by_id[inventory[i].type]
										if turn_number < 3 or item_list_object[k+1].sort == "potion" or  item_list_object[k+1].sort == "limited" then
											--TODO: maybe there is a better way with lua variable substutution? i don't know how, i dont know how to handle translation eigher
											local option = { "option", { message = item_list_object[k+1].name .. " (".. item_list_object[k+1].sort .. "):\n" .. item_list_object[k+1].description,
												{ "command", { 
													{ "set_variable", { name = "item_chosen", value = k } },
													{ "set_variable", { name = "inventory_location", value = i - 1} },
													{ "set_variable", { name = "compatibility", value = "yes" } }
												} } } } 
											table.insert(inventory_message,option)
										else
										end
									end
									local all_sorts = {"potion", "limited", "armour", "gauntlets", "helm","boots","cloak","amulet","ring","sword","axe","bow","staff","xbow","dagger","knife","mace","polearm","claws","sling","spear"}
									for sort_index=1,#all_sorts do
										local sort = all_sorts[sort_index]
										local sort_inventory = helper.get_variable_array("item_storage." .. sort)
										if sort_inventory == nil then
											sort_inventory = {}
										end
										if turn_number < 3 or sort == "potion" or  sort == "limited" then
											for i=1,#sort_inventory do
												local k = item_by_id[sort_inventory[i].type]
												local option = { "option", { message = item_list_object[k+1].name .. " (".. item_list_object[k+1].sort .. "):\n" .. item_list_object[k+1].description,
													{ "command", { 
														{ "set_variable", { name = "item_chosen", value = k } },
														{ "set_variable", { name = "inventory_index_chosen", value = i - 1} },
														{ "set_variable", { name = "sort_chosen", value = sort } },
														{ "set_variable", { name = "compatibility", value = "no" } }
													} } } } 
												table.insert(inventory_message,option)
											end
										end
									end
									wesnoth.fire("message",inventory_message)
								>>
								[/lua]
							    [if]
								[variable]
								   name=item_chosen
								   equals=-1
								[/variable]
								[else]
								    [item]
									halo=halo/misc/leadership-flare-1.png:20,halo/misc/leadership-flare-2.png:20,halo/misc/leadership-flare-3.png:20,halo/misc/leadership-flare-4.png:20,halo/misc/leadership-flare-4.png:20,halo/misc/leadership-flare-6.png:20,halo/misc/leadership-flare-7.png:20,halo/misc/leadership-flare-8.png:20,halo/misc/leadership-flare-9.png:20,halo/misc/leadership-flare-10.png:20,halo/misc/leadership-flare-11.png:20,halo/misc/leadership-flare-12.png:20,halo/misc/leadership-flare-13.png:20,misc/blank-hex.png:1000
									x,y=$x1,$y1
									image=$item_list.object[$item_chosen].image
								    [/item]
									    [if]
										[variable]
										   name=sort_chosen
										   equals=""
										[/variable]
										[then]
											{VARIABLE sort_chosen $item_list.object[$item_chosen].sort}
										[/then]
									    [/if]
									    [if]
										[variable]
										   name=compatibility
										   equals=yes
										[/variable]
										[then]
											{CLEAR_VARIABLE inventory[$inventory_location]}
										[/then]
										[else]
											{CLEAR_VARIABLE item_storage.$sort_chosen|[$inventory_location}
										[/else]
									    [/if]
									[set_variables]
									    name=items
									    mode=append
										[value]
										   x=$x1
										   y=$y1
										   type=$item_list.object[$item_chosen].number
										   sort=$sort_chosen
										[/value]
									[/set_variables]
									{PLACE_ITEM_EVENT $x1 $y1}
									{CLEAR_VARIABLE inventory_location,compatibility}
									{VARIABLE_OP items_dropped add 1}
								[/else]
							    [/if]
								{VARIABLE to_remove -1}
							[/command]
						[/option]
Edit: corrrection of code
Last edited by gfgtdf on February 27th, 2013, 4:08 pm, edited 2 times in total.
Scenario with Robots SP scenario (1.11/1.12), allows you to build your units with components, PYR No preperation turn 1.12 mp-mod that allows you to select your units immideately after the game begins.

User avatar
Dugi
Posts: 4931
Joined: July 22nd, 2010, 10:29 am
Location: Carpathian Mountains
Contact:

Re: Legend of the Invincibles

Post by Dugi » February 26th, 2013, 11:29 pm

Nice code, but I can use lua as well, I not using it in LotI for purpose. If I was to use it in LotI, I would probably end up converting everything to lua because of performance. I also doubt it would speed it up significantly, because in my opinion one of the things that cause severe delays is the size of the options' list.

Sorry for my delays, my laptop seems to be somehow messed up physically, I had it totally disassembled a hour ago.

gfgtdf
Developer
Posts: 1203
Joined: February 10th, 2013, 2:25 pm

Re: Legend of the Invincibles

Post by gfgtdf » February 26th, 2013, 11:46 pm

no i measured the time, the old method takes ~7 seconds to open inventory and ~1 second with the new method (100 items in the inventory).
the most time is took by the fact that you loop though the full itemlist to find the right index for each item in the inventory.
In fact i mesured the time and came to the conclusion that most of the time is took by the code in these four lines :

Code: Select all

{FOREACH inventory i}
{FOREACH item_list.object k}
{NEXT k}
{NEXT i}
what is the the reason why dou don't use lua in LoI1 on purpose?
Last edited by gfgtdf on February 27th, 2013, 1:30 am, edited 1 time in total.
Scenario with Robots SP scenario (1.11/1.12), allows you to build your units with components, PYR No preperation turn 1.12 mp-mod that allows you to select your units immideately after the game begins.

User avatar
Crow_T
Posts: 851
Joined: February 24th, 2011, 4:20 am

Re: Legend of the Invincibles

Post by Crow_T » February 27th, 2013, 1:12 am

what is the the reason why dou don't use lua in LoI1 on purpose?
Dugi just recently started to understand the power of Lua (the un-official answer).

Any new graphics updates? :wink: Btw taking apart a laptop has got to be a bit painful.

User avatar
Dugi
Posts: 4931
Joined: July 22nd, 2010, 10:29 am
Location: Carpathian Mountains
Contact:

Re: Legend of the Invincibles

Post by Dugi » February 27th, 2013, 1:29 am

@Ugmpag
7 seconds less means nothing. With 100 items in inventory, it opened in like 4 seconds for me without lua. Can you tell me the percentage? My change in the way it worked was not to increase performance, but to let you find these items faster.
The slowers are the dual foreach and the message, lua can accelerate the dual foreach, I know that, I even know how to make it faster, but as I said, I am not using lua in LotI because it is confusing for anybody trying to learn WML. There are a few pieces of lua to show some statuses and AI, but these are things that cannot be done in WML. WML can be even hundreds of times slower than lua, but in most cases, the speed of WML is enough.
By the way, the dual foreach will not be needed after the end of development, so it will be pretty quick after that I decide that there will be no more items (or that I will add them rarely).

@Crow_T
I was aware of the power of lua for long, but I decided that World of Wesnoth needs lua because when I considered its size, I realised that macros and interface changes would consume extreme sizes of save files, resulting in annoying lags. This is not the case.
No updates at all, I was trying to fix my laptop in the last days, it started turning off without reason, reinstalling OS (that was badly messed anyway, and I wanted to reinstall it for long, the only really working thing was Wine) did not help (then it turned off also on Windows), from the behavior of the problem I started to think that it was related with temperature, and I found out later that my video card was overheating all the time for unknown reasons. Then I verified that the cooler was not cooling too much, so I had to disassemble it all (so damn stupid that getting to the cooler requires removing everything including the motherboard), clean it, and reassemble it (fortunately, my roomate had some screwdrivers in dorm and I did not have to use knives). Now it seems to work fine.

gfgtdf
Developer
Posts: 1203
Joined: February 10th, 2013, 2:25 pm

Re: Legend of the Invincibles

Post by gfgtdf » February 27th, 2013, 1:49 am

Dugi wrote:@Ugmpag
7 seconds less means nothing. With 100 items in inventory, it opened in like 4 seconds for me without lua. Can you tell me the percentage? My change in the way it worked was not to increase performance, but to let you find these items faster.
The slowers are the dual foreach and the message, lua can accelerate the dual foreach, I know that, I even know how to make it faster, but as I said, I am not using lua in LotI because it is confusing for anybody trying to learn WML. There are a few pieces of lua to show some statuses and AI, but these are things that cannot be done in WML. WML can be even hundreds of times slower than lua, but in most cases, the speed of WML is enough.
By the way, the dual foreach will not be needed after the end of development, so it will be pretty quick after that I decide that there will be no more items (or that I will add them rarely).
you mean me by Ugmpag ? 7 seconds without and 1 second with means it takes 14 percent of the original time (was that your question?). But i suppose if it takes only 4 seconds for you, it'll give you less speedup (percentagely).
I know the latest changes was not to increase performace, my post was independent from the latest update.
Scenario with Robots SP scenario (1.11/1.12), allows you to build your units with components, PYR No preperation turn 1.12 mp-mod that allows you to select your units immideately after the game begins.

User avatar
Crow_T
Posts: 851
Joined: February 24th, 2011, 4:20 am

Re: Legend of the Invincibles

Post by Crow_T » February 27th, 2013, 1:53 am

Taking apart laptops is no fun at all- surprisingly, my leatherman wave had the optimal screwdriver when I had to take apart mine (a tool every man should have).

Hopefully LotI is all backed up somewhere!

Post Reply