Currently Online

Latest Posts

Topic: labirynth behaving strangely

king_of_nowhere
Avatar
Topic Opener
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2015-02-10, 19:38

I post here and not on technical help because I don't know if it is a bug or a feature. The atlantean labirinth is not working as I suppose it should work. If it has inside soldiers it can promote, it should promote them, not change them. Instead here I was, with two soldier with the promotions eavasion 1 and healtpoints 1 inside the labyrinth. since the hp 1 promotion was expensive that early in the game, I wanted to make sure they'd survive, so i wanted them to be promoted to evasion 2. there were only those 2 soldiers inside. the labirinth was full of food. it remained there for a minute without promoting no one, then it sent one soldier away. and a little later it sent waway also the other. I really wanted to promote those two soldiers, so I kicked out all the new soldiers that came in until I got again those two soldiers inside. Again, it did not promote them. That's far from the only instance it does it. The labirynth malfunctions all the time. All the time I want the soldiers to promote to full but, despite having full food and full wares, it does not complete the promotion and it send away the soldiers instead. Anyone here knows why it does it and how I can stop it? Also if it is intended to work that way or if it is a bug.


Top Quote
teppo

Joined: 2012-01-30, 08:42
Posts: 423
Ranking
Tribe Member
Posted at: 2015-02-11, 04:39

You need two bread and two fish/meat to upgrade an Atlantean soldier to evade two ( see https://wl.widelands.org/wiki/SoldierLevels/ )

The labyrinth works so, that if an evade-two training has repeatedly failed, it kicks away soldiers in need of that training rather eagerly. However, there should have been an attempt to train the guy. If you are sure that enough of both types of food was present when the training cycle reached the evade 1->2 stage, file a bug report and attach a replay that demonstrates the problem to the bug report.

The expulsion should happen only after repeated failures of a training step (per training site, not per soldier); it is the trainer who gives up.


Top Quote
king_of_nowhere
Avatar
Topic Opener
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2015-02-15, 14:25

after some experimenting, I think I got an idea: the labyrinth is programmed to give the promotions in sequence: evade, defense, hp. once it promoted a soldier to evasion 1, it will try to promote to some other stat, sat defence. if there isn't a shield, or if the soldier already has defence 2, the labyrinth will say "cannot promote" and send the soldier away. I am relatively sure because I had 6 soldiers with evade 1 and hp 1 promotions in and no shields, it kicked out the first two and then promoted to evade 2 the third, then it kicked out the next two and promoted to evasion 2 the third again. I think it should be reprogrammed; instead of trying to force a specific promotion, it should see if there is any promotion available before kicking out a soldier. I filed a bug report with a replay in case.

https://bugs.launchpad.net/widelands/+bug/1422124

Edited: 2015-02-15, 14:28

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-02-15, 17:49

This sounds about right. No idea if this can be reprogrammed easily though.


Busy indexing nil values

Top Quote
DragonAtma
Avatar
Joined: 2014-09-14, 00:54
Posts: 351
Ranking
Tribe Member
Posted at: 2015-02-15, 22:12

Here's what I recommend:

When a soldier enters a training building, assign a Failvalue of 0.
Cycle through the various training types. For each of them, pick a random soldier.
If the soldier can be trained, train them and lower their failvalue by X (where X is the number of stats trained there).
If the soldier cannot be trained, raise their failvalue by 1.
If the soldier reaches 10 failvalue, kick them out.

That way it'll eventually eject untrainable soldiers, but it takes multiple failures to do so. Also, even if you're only training certain stats, this should work out fine.

Edited: 2015-02-15, 22:13

Top Quote
king_of_nowhere
Avatar
Topic Opener
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2015-02-15, 23:12

I suppose, but anyway training camps of both barbarians and empire and atlantean dungeon can train multiple stats without having that problem. so it should be possible to take the code from there and adapt it to 3 stats instead of 2


Top Quote
king_of_nowhere
Avatar
Topic Opener
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2015-05-02, 20:44

Ok, I found some time and I made a few replays where I show what happens. I am fairly sure labyrinth should not behave like that, it should not kick out a soldier it can promote, so I filed a bug report https://bugs.launchpad.net/widelands/+bug/1451078


Top Quote
fk
Avatar
Joined: 2013-07-30, 21:58
Posts: 151
Ranking
At home in WL-forums
Posted at: 2015-05-03, 08:01

The bug is similar to: https://bugs.launchpad.net/widelands/+bug/1251918


Top Quote
king_of_nowhere
Avatar
Topic Opener
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2015-05-03, 12:59

no, it's not related. that old report refers to soldiers leaving if there is no food to train them. and i would not call it a bug. this one insted applies even if food is pplentiful


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-05-03, 14:55

Thanks for looking into this face-smile.png


Busy indexing nil values

Top Quote