Necromanteion [0.7.1]
Moderator: Forum Moderators
Re: Necromanteion
I figured both.
So I took a look at TSG, scenario 6b:
This should do for the storing. Much easier and clear. And even includes a check for occupation (if this is done by the empty [not][filter] tags, couldn't figure out, what else they would be good for.)
I will test this now.
Yay! THIS ROCKING WORKS! I did it! Muahaha.
Well, it was interesting to see that the three spwaned units appeared to shape a perfect triangle around the center of the area around the temple. Curious...
So I took a look at TSG, scenario 6b:
Code: Select all
[store_locations] # as found in TSG, 06b - The Long March for determining ambush positions
x=15-25
y=9-19
terrain=Gg,Ggf
[not]
[filter]
[/filter]
[/not]
variable=spawnhex
[/store_locations]
I will test this now.
Yay! THIS ROCKING WORKS! I did it! Muahaha.
Well, it was interesting to see that the three spwaned units appeared to shape a perfect triangle around the center of the area around the temple. Curious...
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion
Well, I am trying to polish the gameplay a bit by adding some more messages. I thought after the rest this would be quiet easy, well...
My goal was to create a message at start of the game (the turn 1 trigger isn't allowed), which is visible ONLY to the specific side. I did:
Which works fine... but... all players still all see the messages. (Which is quiet uncomfy, due to the fact, that one can see which faction is played by the opponent).
I don't know whats wrong with the code. I think the "start" trigger could use a bit more of an explanation in the wiki, maybe?
/edit: Changed the code slightly: trigger only ONE start event and have both Messages in this very event. Still, both players can see each others messages. Hmm...
My goal was to create a message at start of the game (the turn 1 trigger isn't allowed), which is visible ONLY to the specific side. I did:
Code: Select all
# START #1: Explaining the scenario.
#define MESSAGE_START START_SIDE START_X START_Y
[message]
x,y={START_X},{START_Y}
side_for={START_SIDE}
duration=30
message= _ "Finally... We've reached the Haunted Valley! Legend says it's the home of the dead. Well, if this is true, we might use them for our purposes. The temple has to be somewhere in the center, I guess. Let's move, we have to hurry, our enemies will be here soon!"
[/message]
#enddef
[event]
name=start
{MESSAGE_START 1 1 14}
{MESSAGE_START 2 39 14}
[/event]
I don't know whats wrong with the code. I think the "start" trigger could use a bit more of an explanation in the wiki, maybe?
/edit: Changed the code slightly: trigger only ONE start event and have both Messages in this very event. Still, both players can see each others messages. Hmm...
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
Reminicent of fist of guthix, and an amazing idea. But I HIGHLY recomend a random number between 0 and 10Thanatos wrote: However, occuping the temple hex has his bad sides too: For every round, the leader will hold the temple, he will suffer a loss of 10 HP (this number is debateable), allowing the leader to die there, if he will not move away in time.
a. to keep things more interesting
b. to add some randomness
c. to force players to draft more flexible strategies, eliminate one size fits every game
d. the odds of having a 0 sort of appeals to players greed and psychologically trick them into staying too long
e. by having randomness theres luck involved like "OH MAN YOU ARE SO LUCKY THAT DIDNT KILL YOU"
Re: Necromanteion [competetive 2P MP scenario, in development]
I might consider that. Especially your argument "d" is quiet appealing.
I still have to alter the temple drain WML so that the unit will actually die on 0 HP or less. Atm it doesn't, it just lives on with negative HP.
Never heard of "Fist of Guthix". Was/is that a Wesnoth scenario?
---
I think I will upload the complete WML file so far in the next days to make the discussion of points still to do more transparent.
After that I will go and concentrate on the map.
Then balancing.
I still have to alter the temple drain WML so that the unit will actually die on 0 HP or less. Atm it doesn't, it just lives on with negative HP.
Never heard of "Fist of Guthix". Was/is that a Wesnoth scenario?
---
I think I will upload the complete WML file so far in the next days to make the discussion of points still to do more transparent.
After that I will go and concentrate on the map.
Then balancing.
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
*Sneaks in*
Fist of Guthix is a Runescape reference. See the following link for more details if curious.
Fist of Guthix
*Sneaks back out*
Fist of Guthix is a Runescape reference. See the following link for more details if curious.
Fist of Guthix
*Sneaks back out*
Mainline Maintainer: AOI, DM, NR, TB and THoT.
UMC Maintainer: Forward They Cried, A Few Logs, A Few More Logs, Start of the War, and Battle Against Time
UMC Maintainer: Forward They Cried, A Few Logs, A Few More Logs, Start of the War, and Battle Against Time
Re: Necromanteion [competetive 2P MP scenario, in development]
Thanks, Turuk.
Well I have worked a bit more on the code.
Recent changes:
- Random temple drain (ranged from 1 to 10 hp).
- Now a unit can die of the temple drain.
- The temple also got labeled - for user convienience.
- Added a message that will be show when "die" is triggered.
- All dialogs polished.
So, the very one bug/problem that still bothers me is the not-working-as-it-should starting message (see second post of this page). If that could be fixed somehow I could move on to map making and then to balance.
Well I have worked a bit more on the code.
Recent changes:
- Random temple drain (ranged from 1 to 10 hp).
- Now a unit can die of the temple drain.
- The temple also got labeled - for user convienience.
- Added a message that will be show when "die" is triggered.
- All dialogs polished.
So, the very one bug/problem that still bothers me is the not-working-as-it-should starting message (see second post of this page). If that could be fixed somehow I could move on to map making and then to balance.
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
Basically in fist of guthix the prey must charge this magic... ball... thing by standing near this magical man hole cover (XD). The closer they are to the middle, the faster it charges. However they take damage while charging the ball, which is also multiplied as they get closer.
if its 0 dont unstore them
also if you go with random amount you want some cool floaty red text above thier heads that tells exactly how much.
i think its something like this
[unstore_unit]
variable=leadervariable (variable in which the leader is stored)
text=$damage (whatever random variable you have set to store the damage)
red,green,blue=255,0,0 (full red, empty blue and green)
[/unstore_unit]
then you run into issues with killed leaders though... you could have it unstore them (with the damage shown), and then imediatly store and clear all units with less_then_equal_to 0 hitpoints
if its 0 dont unstore them
also if you go with random amount you want some cool floaty red text above thier heads that tells exactly how much.
i think its something like this
[unstore_unit]
variable=leadervariable (variable in which the leader is stored)
text=$damage (whatever random variable you have set to store the damage)
red,green,blue=255,0,0 (full red, empty blue and green)
[/unstore_unit]
then you run into issues with killed leaders though... you could have it unstore them (with the damage shown), and then imediatly store and clear all units with less_then_equal_to 0 hitpoints
Re: Necromanteion [competetive 2P MP scenario, in development]
Hmm, interesting.Gambit wrote: if its 0 dont unstore them
I somehow think the [kill] tag allows some more effects than just not unstoring the unit.
Just not unstoring the unit for example wouldn't show death animation and so on...
As you can see on page two, zookeeper added the floating damage message to the code already. I edited this so it will show the random number.
Just using [kill] and then [endlevel] works absolutely fine so far.
/addendum: Created a .pbl file. Upload to server comes closer.
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
Okay on units to be killed: while stored and dishing out damage, assign them a role "TBK". Then unstore and display the damage amount, then use [kill] to kill units with the role TBK. (with animations and what not)
Re: Necromanteion [competetive 2P MP scenario, in development]
This is not needed and much too complicated.
The filter is easily using the coordinates of the temple.
Easy rule= If you occupy the temple hex too long, you will die there.
I actually don't get the need of your recommendations (because the problem was solved 5 posts ago). Of course I will listen if there is a way to really improve the code, but for now I think it's quiet neat.
See the code:
The filter is easily using the coordinates of the temple.
Easy rule= If you occupy the temple hex too long, you will die there.
I actually don't get the need of your recommendations (because the problem was solved 5 posts ago). Of course I will listen if there is a way to really improve the code, but for now I think it's quiet neat.
See the code:
Code: Select all
[event]
name=new turn
first_time_only=no
[if]
[have_unit]
x,y=20,14
[not]
race=undead
[/not]
[/have_unit]
[then]
[store_unit]
[filter]
x,y=20,14
[not]
race=undead
[/not]
[/filter]
variable=temple_dweller
[/store_unit]
[set_variable]
name=rand_drain
rand=1..10
[/set_variable]
[set_variable]
name=temple_dweller.hitpoints
add=-$rand_drain
[/set_variable]
[unstore_unit]
variable=temple_dweller
find_vacant=no
text= _ "$rand_drain"
{COLOR_HARM}
[/unstore_unit]
[if]
[variable]
name=temple_dweller.hitpoints
less_than_equal_to=0
[/variable]
[then]
[kill]
x,y=20,14
animate=yes
fire_event=yes
[/kill]
[endlevel]
[/endlevel]
[/then]
[else]
[/else]
[/if]
{CLEAR_VARIABLE temple_dweller}
{CLEAR_VARIABLE rand_drain}
[/then]
[/if]
[/event]
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
AH! cool. you store them, damage them, unstore (without clearing) and then even though they're unstored you quickly check the hitpoints to see if they need killed or not. lol i was way oercomplicating that i think i was thinking broad range, multiple units and different possible places (forgetting that the only place this event is even possible is with a leader at the temple...)
okay ill shutup.... or at least think about what you actually need first...
i cannot wait to play this....
okay ill shutup.... or at least think about what you actually need first...
i cannot wait to play this....
Re: Necromanteion [competetive 2P MP scenario, in development]
Actually the drain will affect all non-undead units occupying the temple at start of turn. Of course it's most likely, there will be a leader on this hex, but in combination with the drain the leader will also have to leave that hex again for a while to recover. In this situation, to avoid just blocking the hex with a non-leader unit, the drain is effective to all non-undead units.Gambit wrote:AH! cool. you store them, damage them, unstore (without clearing) and then even though they're unstored you quickly check the hitpoints to see if they need killed or not. lol i was way oercomplicating that i think i was thinking broad range, multiple units and different possible places (forgetting that the only place this event is even possible is with a leader at the temple...)
okay ill shutup.... or at least think about what you actually need first...
i cannot wait to play this....
But no matter which unit will be drained or even killed by the drain, the unit will always be standing on the hex, which is actually causing the drain, and this place is fixed. Even with having more "temple" hexes the principle would stay the same: If you know, which hex has the ability to drain, you also now, where the units are that are subject to this drain or kill.
Actually you will be able to play this soon.
I think about uploading version 0.3 of the code to the add-on server sometime tomorrow.
The map is still unfinished, but you could test the code on this rough sketch and maybe edit the map as you want it to look like, at least for now. I will certainly do a map myself, but this may take time.
I tend to make two more releases before 1.0, that is some 0.7 release after creating the map and then some 0.9 release for balancing purposes only. When they will come, I don't know, it's just a rough sketch for me, to keep on track. All plans are subject to change, if needed. (In fact, I am not even sure about feature freeze yet. I had an idea of making the scenario more balancable by the players themselves, including some kind of difficulty options to alter some variables of the game [span of drain, number of undead spawns, turn from which the spawns begin]. There's a good reference on how doing this in the SX macros.)
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
so if it can happen to any non-undead unit, what happens when say... a spearman is drained to death? the level still ends? :s
Re: Necromanteion [competetive 2P MP scenario, in development]
Yeah, you got me.
Well, but just removing the [endlevel] tags solves the problem.
If the leader dies, the level ends automatically, even without these tags.*)
Problem solved. Thanks pointing this out.
*) edit: No, it doesn't. However, applying the [endlevel] tag to the "die"-event fixes the issue. Tested and done.
Well, but just removing the [endlevel] tags solves the problem.
If the leader dies, the level ends automatically, even without these tags.*)
Problem solved. Thanks pointing this out.
*) edit: No, it doesn't. However, applying the [endlevel] tag to the "die"-event fixes the issue. Tested and done.
Last edited by Thanatos on January 9th, 2009, 12:48 am, edited 1 time in total.
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
Re: Necromanteion [competetive 2P MP scenario, in development]
I have changed the store_locations filter only slighty. Due to the wiki, the notation should be right. However, now the spawns don't appear anymore.
Or is it because there are no variables allowed in turn names?
/edit: No that isn't it. It's the [store_locations] filter. But I copied it right from the wiki.
Will search forums for more info.
Or is it because there are no variables allowed in turn names?
/edit: No that isn't it. It's the [store_locations] filter. But I copied it right from the wiki.
Will search forums for more info.
Code: Select all
{VARIABLE global_spawn_startturn 5}
{VARIABLE global_spawn_number 3}
{VARIABLE global_spawn_radius 5}
# NEW TURN:
# - Spawn undead, if no leader occupies the temple hex.
#
#define SELECT_RANDOM_UNDEAD
[set_variable]
name=rand_ud
rand="Ghost","Ghoul","Skeleton","Skeleton Archer","Walking Corpse"
[/set_variable]
#enddef
#define SPAWN_RANDOM_UNDEAD TIMES
[set_variable]
name=loops
value=0
[/set_variable]
[while]
[variable]
name=loops
less_than={TIMES}
[/variable]
[do]
{SELECT_RANDOM_UNDEAD}
[store_locations]
terrain=Aa^Vea,Aa^Vha,Ch,Chr,Cud,Gg,Ggf # snipp...
[and]
x,y=20,14
radius=$global_spawn_radius
[/and]
[not]
[filter]
[/filter]
[/not]
variable=spawnhex
[/store_locations]
[set_variable]
name=maxlength
format=$spawnhex.length
[/set_variable]
[set_variable]
name=maxlength
add=-1
[/set_variable]
[set_variable]
name=rand_container
rand=1..$maxlength
[/set_variable]
[set_variable]
name=rand_posx
to_variable=spawnhex[$rand_container].x
[/set_variable]
[set_variable]
name=rand_posy
to_variable=spawnhex[$rand_container].y
[/set_variable]
{GENERIC_UNIT 3 $rand_ud $rand_posx $rand_posy}
[set_variable]
name=loops
add=1
[/set_variable]
[/do]
[/while]
{CLEAR_VARIABLE loops}
{CLEAR_VARIABLE rand_container}
{CLEAR_VARIABLE spawnhex}
{CLEAR_VARIABLE maxlength}
#enddef
[event]
name=turn $global_spawn_startturn
[event]
name=new turn
first_time_only=no
[if]
[not]
[have_unit]
x,y=20,14
[and]
canrecruit=yes
[/and]
[/have_unit]
[/not]
[then]
{SPAWN_RANDOM_UNDEAD $global_spawn_number}
{CLEAR_VARIABLE rand_ud}
{CLEAR_VARIABLE rand_posx}
{CLEAR_VARIABLE rand_posy}
[/then]
[/if]
[/event]
[/event]
ThanatoNoth | Necromanteion | Undead Rights Protection Society
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")
"The gods can demand nothing of me. Even gods answer to me, eventually. [...] I cannot be bidden, I cannot be forced. I will do only that which I know to be right." (Death in Pratchett's "Mort")