Teleporting in a radius around a center
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.
- Devotation
- Posts: 19
- Joined: September 9th, 2016, 9:22 pm
Teleporting in a radius around a center
Hello,
I have written a ability which should allow units with the ability 'symbiosis' to teleport to any hex around a center unit in a specified radius.
It does absolutly nothing.
Thank you in advance.
I have written a ability which should allow units with the ability 'symbiosis' to teleport to any hex around a center unit in a specified radius.
It does absolutly nothing.
Code: Select all
#define ABILITY_SYMBIOSIS_CENTER RADIUS
[teleport]
id=Symbiosis_center_{RADIUS}
name= _ "Symbiosis Center"
female_name= _ "female^Symbiosis Center"
description= _ "This Ability grants plants to teleport between two hexes in a "+{RADIUS}+" hex radius around this unit."
[tunnel]
[source]
[and]
[filter]
ability=Symbiosis_center_{RADIUS}
[/filter]
radius={RADIUS}
[/and]
[not]
terrain=X*,*^X*,Q*
[/not]
[/source]
[target]
[and]
[filter]
ability=Symbiosis_center_{RADIUS}
[/filter]
radius={RADIUS}
[/and]
[not]
terrain=X*,*^X*,Q*
[/not]
[/target]
[filter]
ability=symbiosis
[/filter]
[/tunnel]
[/teleport]
#enddef
#define ABILITY_SYMBIOSIS
[dummy]
id=symbiosis
name= _ "Symbiosis"
female_name= _ "female^Symbiosis"
description= _ "This Ability grants plants to teleport between two hexes in a n hex radius around a center unit."
[/dummy]
#enddef
No cost too great.
- beetlenaut
- Developer
- Posts: 2825
- Joined: December 8th, 2007, 3:21 am
- Location: Washington State
- Contact:
Re: Teleporting in a radius around a center
I see some things that are suspicious, but I'm not sure what your problem is yet. You could narrow it down though. Move the [tunnel] into a start or moveto event with an empty [filter], and see if it works there. If it does, put the filter back and try again. If not, try [store_location] with the [source] location filters and a variable, and use :inspect to see if the right hexes are being stored in the first place, etc.
Basically, move things around to find the simplest configuration that does something, then put things back until it stops working. Then you'll know where the problem is.
Basically, move things around to find the simplest configuration that does something, then put things back until it stops working. Then you'll know where the problem is.
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
Re: Teleporting in a radius around a center
Using [teleport][tunnel] specifies how the unit with that ability may teleport. It can't create tunnels for unrelated units to use. So it's the symbiosis ability which needs to be the [teleport] ability, while the center ability can be a dummy.
- Devotation
- Posts: 19
- Joined: September 9th, 2016, 9:22 pm
Re: Teleporting in a radius around a center
Well i did it that way because my other ability which doesn't use radia does work that way.zookeeper wrote:Using [teleport][tunnel] specifies how the unit with that ability may teleport. It can't create tunnels for unrelated units to use. So it's the symbiosis ability which needs to be the [teleport] ability, while the center ability can be a dummy.
Code: Select all
#define ABILITY_RIFT
[teleport]
id=NWRift
name= _ "Rift"
description= _ "Adjacent allies can teleport between two or more units with this ability"
affect_self=no
affect_allies=yes
affect_enemies=no
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[/affect_adjacent]
[tunnel]
bidirectional=yes
[source]
[filter_adjacent_location]
[filter]
ability=NWRift
is_enemy=no
[/filter]
[/filter_adjacent_location]
[/source]
[target]
[filter_adjacent_location]
[filter]
ability=NWRift
is_enemy=no
[/filter]
[/filter_adjacent_location]
[/target]
[filter]
[filter_adjacent]
ability=NWRift
is_enemy=no
[/filter_adjacent]
[/filter]
[/tunnel]
[/teleport]
#enddef
Just have to work out how to seperate the centers from another. Thank you.
Last edited by Celtic_Minstrel on February 27th, 2018, 1:19 am, edited 2 times in total.
Reason: Fix broken markup (presumably caused by forum upgrade?)
Reason: Fix broken markup (presumably caused by forum upgrade?)
No cost too great.