Last Exile

Discussion and development of scenarios and campaigns for the game.

Moderator: Forum Moderators

Post Reply
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Last Exile

Post by galicae »

Story: Arega is the sole hope of his neglected tribe, living on the border of Wesnoth. He is expected to lead them back to importance, and takes this responsibility earnestly. He yields an enchanted blade that shapes his appearance in accordance to his soul. He is exiled from his village for killing a monster they believe to be a deity, because he tries to protect the crops. He is shattered by their decision and embarks on a hopeless journey...

Main Hero: Arega, a Meros Noble at the start, can evolve to any of the three lines the player chooses (with his actions!!)

Sprites: stolen, err, borrowed, from many different eras and factions. I hope no one will be offended, but I never really was into painting.

Release Date: is gonna be up and running before the summer is over
working on the greek translation
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Re: Last Exile

Post by galicae »

First serious setback with coding:
I'm trying to make my allies avoid an enemy unit. I understand the [avoid] tag is for terrain (eg avoid x, y=14, 9). Any ideas?

I tried linking the coordinates of the Enemy to those to be avoided: like

Code: Select all

[event]
name=moveto
first_time_only=no
[filter]
id=Enemy
[/filter]
{VARIABLE avoid_x $x1}
{VARIABLE avoid_y $y1}
[modify_ai]
side=2
[avoid]
x= avoid_x
y=avoid_y
radius=7
[/avoid]
etc.
it obviously is a failure, because the peasants started attacking the Enemy :lol2:

i'd appreciate anything

PS: i haven't coded ANYTHING since Wesnoth 1.4
working on the greek translation
User avatar
doofus-01
Art Director
Posts: 4128
Joined: January 6th, 2008, 9:27 pm
Location: USA

Re: Last Exile

Post by doofus-01 »

Two things I see immediately are:

1. No x,y in your [filter], which is odd for a moveto event but maybe it is intended.
2. You are not substituting avoid_x/y variables with their values. Use x=$avoid_x, or just use x=$x1.
BfW 1.12 supported, but active development only for BfW 1.13/1.14: Bad Moon Rising | Trinity | Archaic Era |
| Abandoned: Tales of the Setting Sun
GitHub link for these projects
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Re: Last Exile

Post by galicae »

my bad
I know about the $variable thing.
how can I access a unit's variables (e.g. hitpoints, coordinates)? I guess that would solve the problem. Is it something like $Enemy.variables.hitpoints?
As for the avoid thing, I originally tried with

Code: Select all

[avoid]
[filter]
id=Enemy
[/filter]
radius=7
[/avoid]
in the side tag of side 2. It seemed to work for the first round, since the nearest Peasant did distance himself from the Enemy, but then nothing.
I had to find a way to make it dynamic, to be refreshed every round, that's why I tried the [modify_ai] command.

As for the moveto event, it triggers every time the filtered unit moves. It's a bit like overclocking a processor. I don't know if it was intended like this, it worked in my other campaign.
working on the greek translation
User avatar
doofus-01
Art Director
Posts: 4128
Joined: January 6th, 2008, 9:27 pm
Location: USA

Re: Last Exile

Post by doofus-01 »

galicae wrote:Is it something like $Enemy.variables.hitpoints?
$Enemy.hitpoints
See: http://wiki.wesnoth.org/InternalActionsWMLUnitTags
I'm not sure about the avoid stuff. Maybe you could set the ai aggression low.
BfW 1.12 supported, but active development only for BfW 1.13/1.14: Bad Moon Rising | Trinity | Archaic Era |
| Abandoned: Tales of the Setting Sun
GitHub link for these projects
User avatar
boru
Posts: 788
Joined: November 19th, 2009, 11:02 pm

Re: Last Exile

Post by boru »

galicae wrote:He yields an enchanted blade that shapes his appearance in accordance to his soul.
No, he wields an enchanted blade.
galicae wrote:Sprites: stolen, err, borrowed, from many different eras and factions. I hope no one will be offended, but I never really was into painting.
While it isn't required, it's a good idea to tell artists that their work will be included in your project. Don't be shy to send them a PM, the artsts are some of the coolest people here.

Read this for the new ai instructions: http://wiki.wesnoth.org/Customizing_AI_in_Wesnoth_1.8

I'm anything but an expert at ai, however if [avoid] tag is not doing it for you, it might be necessary to give your units another goal with a higher score, for example protect a location or take villages.
“It is written in my life-blood, such as that is, thick or thin; and I can no other.” - J.R.R. Tolkien

My campaign: Swamplings - Four centuries before the founding of Wesnoth, the first wolf rider emerges from a tribe of lowly swamp goblins.
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Re: Last Exile

Post by galicae »

shoot, I knew there was something wrong with the yielding stuff. Thanks, I appreciate that.
OK, I start making a list of borrowed sprites and start pm-ing their respective creators. Thanks again for the suggestion.
AI was not so developed back in 1.4... I really got to get myself up-to-date...
I got a fairly long checklist by now, that will keep me busy for a while. thx :Awesome:
working on the greek translation
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Re: Last Exile

Post by galicae »

I'm just writing this to notify nobody in particular that I finally came up with a PLOT for the campaign!!! This time the undead won't be the bad guys, and the campaign will not focus solely on Arega. Rather, it will tell the tales of all secondary heroes that will gather on the sheltered mountain that will be their last exile...

plot:
Spoiler:
working on the greek translation
Skizzaltix
Posts: 1114
Joined: December 9th, 2005, 2:38 am

Re: Last Exile

Post by Skizzaltix »

And here I thought it was going to be about fleets of airships doing battle over a little girl with a goat! Just goes to show what I know.

How are you planning to work the disasters in? Just as scripted events? Or maybe it could be interesting to have not just one or two scenarios be of the kind where certain areas are deadly each turn, but have every scenario past a certain point be like that…
galicae
Translator
Posts: 59
Joined: August 26th, 2009, 1:54 pm
Location: behind my glasses

Re: Last Exile

Post by galicae »

And here I thought it was going to be about fleets of airships doing battle over a little girl with a goat!
that's what I would think if I saw the title. I swear.
To be honest, at the very beginning I wasn't sure either why the name was that. It was just catchy, plus I never understood why the anime was named like that (hint: I never finished it). But yesterday it dawned on me: (I accept being influenced by that) why do all, ALL campaigns finally come out with an undead enemy? A great lich that threatens Wesnoth with doom? Why is there not a SINGLE campaign (including my previous) with no undead enemies in it?
I consider the undead to be plot devices. They are degraded to plot devices. So I come to their rescue!!

As far as the WML is considered, I don't have a specific plan. There will be a scenario where Arega tries to escape from a flood running behind him (I would change the terrain every round and set an if clause checking whether Arega is in deep water, where he would die, there is a scenario in "The Heist"). Other scenarios would include all kinds of animals and monstrosities hunting you. One could be lots of yetis and avalanches, or frozen winds (something like that in "Gali's Contract"), another could be our heroes dying from the heat or the cold (their enemies as well) and losing a small percentage of hp per turn, etc. etc. But yeah, greater disasters, such as meteorites and tidal waves will only be referred to. I lack the skill to code them.

Oh, and I'm extremely open-minded. Anyone can help if they would like to. I will only code fast enough with the new plug-in, which I still haven't tried out yet.
working on the greek translation
Post Reply