Dig ability
Moderator: Forum Moderators
Forum rules
- Please use [code] BBCode tags in your posts for embedding WML snippets.
- To keep your code readable so that others can easily help you, make sure to indent it following our conventions.
- ChaosRider
- Posts: 846
- Joined: April 15th, 2012, 1:15 pm
Re: Dig ability
In edit 3 of my earlier post is fixed version of dig ability.
My code wasnt that bad, i just didnt see why my code cant work... I cant search adjected units to x,y=$x1,$y1 when on this x,y there is no unit. Thats why i creating there some peasant while my code is working, at end of my code im killing this peasant . Thats why also summoners code works well, cause there is created new elemental, after what near him is search unit who summoned him.
edit: also this code dont need to know what type of unit have this ability, thx what its easy to add it to MWC campaign as one of items (but there i will set 6 mp needed to dig).
My code wasnt that bad, i just didnt see why my code cant work... I cant search adjected units to x,y=$x1,$y1 when on this x,y there is no unit. Thats why i creating there some peasant while my code is working, at end of my code im killing this peasant . Thats why also summoners code works well, cause there is created new elemental, after what near him is search unit who summoned him.
edit: also this code dont need to know what type of unit have this ability, thx what its easy to add it to MWC campaign as one of items (but there i will set 6 mp needed to dig).
Creator of WOTG (+2880 units), MWC (+615 units), SurvivorsArea, RandomColosseum, RC WOTG, RC MWC, ColosseumRandomClonesBattle, BetweenDarknessAndLight, StealingWeapons, MoreUnitsForms, MoreDamageTypes, CanBeOnlyOne, ColosseumOneWinner, BonusSpam, CriticalStrike - available at 1.12 Wesnoth server.
- ChaosRider
- Posts: 846
- Joined: April 15th, 2012, 1:15 pm
Re: Dig ability
When we want to filter units which have more mp than some variable then we have to only set filers for lower movement points than this variable but with [not][/not] , example:Dugi wrote:I think that there might be one solution, but it is a bit ugly*. Something like this:I am not assuring you that it works, because I am not quite sure if filter_adjacent works if there is no unit on the primary hex. But if it doesn't, then the solution will be extremely ugly.Code: Select all
[set_menu_item] ... [filter] [filter_location] # It is a cave terrain terrain=Xu [/filter_location] [and] [filter_adjacent] ability=dig [and] [filter_wml] moves=3 [/filter_wml] [or] [filter_wml] moves=4 [/filter_wml] [/or] [or] [filter_wml] moves=5 [/filter_wml] [/or] [/and] ... etc, until the maximum movement the fastest of your units can have [/filter_adjacent] [/and] [/filter] ... [/set_menu_item]
* You can't use variable compare to check the movement, because the unit is not on the hex that was clicked on and therefore not stored into the unit variable and can't.
Spoiler:
Creator of WOTG (+2880 units), MWC (+615 units), SurvivorsArea, RandomColosseum, RC WOTG, RC MWC, ColosseumRandomClonesBattle, BetweenDarknessAndLight, StealingWeapons, MoreUnitsForms, MoreDamageTypes, CanBeOnlyOne, ColosseumOneWinner, BonusSpam, CriticalStrike - available at 1.12 Wesnoth server.
Re: Dig ability
:facepalm:When we want to filter units which have more mp than some variable then we have to only set filers for lower movement points than this variable but with [not][/not] , example:
- ChaosRider
- Posts: 846
- Joined: April 15th, 2012, 1:15 pm
Re: Dig ability
Cause ?
Creator of WOTG (+2880 units), MWC (+615 units), SurvivorsArea, RandomColosseum, RC WOTG, RC MWC, ColosseumRandomClonesBattle, BetweenDarknessAndLight, StealingWeapons, MoreUnitsForms, MoreDamageTypes, CanBeOnlyOne, ColosseumOneWinner, BonusSpam, CriticalStrike - available at 1.12 Wesnoth server.
- ChaosRider
- Posts: 846
- Joined: April 15th, 2012, 1:15 pm
Re: Dig ability
I had a similar task with statistics, calculate the sum of probability for many variables from 2 and higher... (max was 400), i dont remember well about what was that, but i remember how we done it:
1 - (P(0)+P(1))...
1 - (P(0)+P(1))...
Creator of WOTG (+2880 units), MWC (+615 units), SurvivorsArea, RandomColosseum, RC WOTG, RC MWC, ColosseumRandomClonesBattle, BetweenDarknessAndLight, StealingWeapons, MoreUnitsForms, MoreDamageTypes, CanBeOnlyOne, ColosseumOneWinner, BonusSpam, CriticalStrike - available at 1.12 Wesnoth server.
Re: Dig ability
you have to write "movement_left >= 3" but from my experience that is not realy reliable.ChaosRider wrote: units with 3 or more mp cant go by this part in filter:
"formula="moves >= 3""
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.
- Paulomat4
- Moderator Emeritus
- Posts: 730
- Joined: October 16th, 2012, 3:32 pm
- Location: Wesmere library, probably summoning Zhangor
Re: Dig ability
Hey, I'm currently trying to make this ability work in my campaign.
I took the code from trewe's last post and worked on from there. I can successfully dig, but I don't understand why neigboring units are nstored as well in the second part of the code. Does anybody have an idea?
I took the code from trewe's last post and worked on from there. I can successfully dig, but I don't understand why neigboring units are nstored as well in the second part of the code. Does anybody have an idea?
Code: Select all
#define ABILITY_DIG
[dummy]
id=dig
name= _ "dig"
description= _ "This unit Is able to dig itself through cave walls. For the cost of three mp it can change the terrain of an adjacent cave wall to cave ground."
[/dummy]
#enddef
#define MOVES_NO_LESS_THAN_3
[and]
[not]
[filter_wml]
moves=3
[/filter_wml]
[/not]
[/and]
[and]
[not]
[filter_wml]
moves=2
[/filter_wml]
[/not]
[/and]
[and]
[not]
[filter_wml]
moves=1
[/filter_wml]
[/not]
[/and]
[and]
[not]
[filter_wml]
moves=0
[/filter_wml]
[/not]
[/and]
#enddef
#define ABILITY_DIG_EVENT
[event]
name=side turn
first_time_only=no
[set_menu_item]
[show_if]
[have_location]
terrain=Xu*
x,y=$x1,$y1
[filter_adjacent_location]
[filter]
side=$side_number
[and]
type=Dwarvish Miner
[/and]
[and]
ability=dig
[/and]
[and]
{MOVES_NO_LESS_THAN_3}
[/and]
[/filter]
[/filter_adjacent_location]
[/have_location]
[/show_if]
id=dig_cavewall
description= _ "dig into this cave wall"
image=misc/shovelicon.png
[command]
[sound]
name=mace.wav
repeat=3
[/sound]
[terrain]
terrain=Uu^Dr
x,y=$x1,$y1
[/terrain]
# teleport the miner to the newly created cave
[store_unit]
[filter]
[filter]
side=$side_number
[and]
type=Dwarvish Miner
[/and]
[and]
ability=dig
[/and]
[and]
{MOVES_NO_LESS_THAN_3}
[/and]
[/filter]
[filter_location]
[filter_adjacent_location]
terrain=Uu^Dr
x,y=$x1,$y1
[/filter_adjacent_location]
[/filter_location]
[/filter]
variable=miner
kill=yes
[/store_unit]
{VARIABLE miner.x $x1}
{VARIABLE miner.y $y1}
# drain moves ? attacks ? do whatever you want here.
{VARIABLE miner.moves 0}
{VARIABLE miner.attacks_left 0}
# note that if more than one unit was adjacent the first stored is modified and all others just stay where they were
{FOREACH miner i}
[unstore_unit]
variable=miner[$i]
[/unstore_unit]
{NEXT i}
[redraw]
clear_shroud=yes
[/redraw]
[/command]
[/set_menu_item]
[/event]
#enddef
Creator of Dawn of Thunder and Global Unitmarkers
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
Re: Dig ability
Yes. It is to deal with cases where more than 1 units can dig into single hex. They however get unstored to their original place.
- Paulomat4
- Moderator Emeritus
- Posts: 730
- Joined: October 16th, 2012, 3:32 pm
- Location: Wesmere library, probably summoning Zhangor
Re: Dig ability
I'm sorry, i expressed myself badly. I understood of course that those are supposed to simply get unstored at their original place. Problem is: They don't.
Imagine following situation:
2 dwarvish miners next to each other and both next to the same cavewall hex.
One with full moves, another one with 0.
Now, miner1 without moves is unable to dig, miner2 with moves is able.
So, I'm digging said hex.
Both miners are stored (while only miner2 should) and miner1 is unstored at said hex.
Normally miner1 shouldn't even get stored thanks to the filter, right? The filter works in but it doesn't in .
Imagine following situation:
2 dwarvish miners next to each other and both next to the same cavewall hex.
One with full moves, another one with 0.
Now, miner1 without moves is unable to dig, miner2 with moves is able.
So, I'm digging said hex.
Both miners are stored (while only miner2 should) and miner1 is unstored at said hex.
Normally miner1 shouldn't even get stored thanks to the filter, right? The filter works in
Code: Select all
[filter_adjacent_location]
Code: Select all
[store_unit]
Creator of Dawn of Thunder and Global Unitmarkers
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
Re: Dig ability
Are you sure [filter][filter][/filter][/filter] is valid structure?
- Paulomat4
- Moderator Emeritus
- Posts: 730
- Joined: October 16th, 2012, 3:32 pm
- Location: Wesmere library, probably summoning Zhangor
Re: Dig ability
Yup, that was it. It works when i remove the inner [filter] tag. Thanks for your help ravana!Are you sure [filter][filter][/filter][/filter] is valid structure?
Creator of Dawn of Thunder and Global Unitmarkers
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
"I thought Naga's used semi-automatic crossbows with incendiary thermite arrows . . . my beliefs that this race is awesome are now shattered." - Evil Earl
Re: Dig ability
You might want to look into the bomb and pick I've created a while ago for Strange Legacy.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical, UR Epic Era
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses, Dwarf Dwarfson Dwarvenminer
Developer of: Trapped, Five Fates, Strange Legacy, Epical, UR Epic Era
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses, Dwarf Dwarfson Dwarvenminer