Mainline: Make plague work on villages

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderator: Forum Moderators

Forum rules
Before posting a new idea, you must read the following:
User avatar
Iris
Site Administrator
Posts: 6800
Joined: November 14th, 2006, 5:54 pm
Location: Chile
Contact:

Re: Mainline: Make plague work on villages

Post by Iris »

Insinuator wrote:Anyone who played this game for the first time and spammed WCs at the opponent, gleefully Plaguing away, would be disappointed and confused when they find it not working when they get to a village.
Not really “anyone”. When I saw that happen the first time I thought “oh, they knew someone would attempt to remote-steal a village like this when they designed this thing”. ;)

(By the way, don’t double-post. If you use quotes properly, we can tell who you are replying to in every part of your post.)
Author of the unofficial UtBS sequels Invasion from the Unknown and After the Storm.
User avatar
beetlenaut
Developer
Posts: 2867
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

Re: Mainline: Make plague work on villages

Post by beetlenaut »

Insinuator wrote:And why would it act to its detriment? At the very worst, as Reepur pointed out above, you would get a level 0 unit around ZofC. Remember, a skirmishing unit can do that too, and most of them are level one or above. Why are there no complaints about them?
You're completely missing the point. Currently, the game is balanced. No faction has a clear advantage over another. The balance includes having some units with skirmish to make up for other weaknesses in their faction, and limits on plague to keep the undead faction from being too powerful. Adding a small tactical advantage to a balanced system could unbalance it. That's the detriment Noy was talking about. You haven't given us a good enough reason to risk that.
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
Caphriel
Posts: 994
Joined: April 21st, 2008, 4:10 pm

Re: Mainline: Make plague work on villages

Post by Caphriel »

Insinuator wrote:
Caphriel wrote:And then you proceeded to reject all similar lore explanations for why plague has the exception it does :doh:
That was in response to someone else's realism argument. I believe that the current system is unrealistic, but that really isn't important, and I understand that. That's why it is not one of my main points. But putting forward a silly realism argument to counter a gameplay issue just bugs me.
Fair enough. Unfortunately, the majority of the Wesnoth community seems to think plague works reasonably and sensibly the way it is, so you're not convincing anyone from a gameplay approach, either. The description of plague says it doesn't work on units in villages, so I don't think anyone should be confused or disappointed by that. As someone pointed out earlier, it's entirely possible to do this using WML, so if you really want to zombify units on villages while playing campaigns, you can modify your game to do so. However, you're not likely to sell something that would change multiplayer balance based solely on your expectations of how the ability ought to work.

As a bit of anecdotal evidence, I watched a game today in which a player did spam walking corpses, and killed several units on villages with them. In at least two instances he had no other unit in range to grab the village, and in one instance that I recall chose to attack with a dark adept rather than claim the village. Since both players were paying upkeep, that would have been a swing of at least 6 gold each time. In one of the cases, the defending player had a surviving unit adjacent to the village and was able to hold it instead of losing it. The Undead play eventually won anyway, but plaguing units on villages would have significantly accelerated his win.

Right now, the primary objections to this change, as I recall the discussion are:
  • You're the only person who thinks it's broken and needs fixing
  • It would probably negatively impact multiplayer balance
  • It would break existing UMC that relies on plague's current behavior
If you want to convince people to support this proposed change, you'll have to provide stronger arguments than, "I don't find this sensible." "This is the way it's designed and balanced" is a perfectly good, sensible justification for the current implementation.
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

Well, I see that I can't convince with just words, so I'm going to make a "Village-Plaguing" unit and do a bunch of scenarios to see how it affects gameplay. I'll compare them with an identical number of "control" scenarios where Plague is used as is.
StDrake wrote:And if you want plagueing villages - it's a matter of an event firing off when a unit is killed by a plague attack and creating a new unit inside this event. Might want to limit the event only to villages so you don't break where plague works normally. Of course there's still the issue with handling what variation to use, unless you want to go lazy and just stick to the default 'human' ones.
Unfortunately for me, it's been 5 years since I've written any WML. I'm trying to figure out how to define an event that knows when the defending unit dies. As a side note, I think I can keep all the graphic renditions as they are if I just copy the Walking Corpse unit from mainline and add in my event. Right? :hmm:
EDIT: I'm trying to do this inside the unit_type tag. Might have to switch to scenario tag, would be easier.
User avatar
Reepurr
Posts: 1088
Joined: August 29th, 2010, 5:38 pm

Re: Mainline: Make plague work on villages

Post by Reepurr »

Insinuator wrote:Unfortunately for me, it's been 5 years since I've written any WML. I'm trying to figure out how to define an event that knows when the defending unit dies. As a side note, I think I can keep all the graphic renditions as they are if I just copy the Walking Corpse unit from mainline and add in my event. Right? :hmm:
EDIT: I'm trying to do this inside the unit_type tag. Might have to switch to scenario tag, would be easier.
The WC is absolutely impossible to understand. You will WANT to put it in your _main.cfg in the end, trust me on that one.

:eng:

Code: Select all

[event]
    name=die
    [filter_second]
        type=Walking Corpse,Soulless
    [/filter_second]
    [filter]
        [filter_location]
            terrain=*V*
        [/filter_location]
    [/filter]
    [kill]
       x,y=$x1,$y1
    [/kill]
    [unit]
        type=Walking Corpse # you might want to do something fancy
        x,y=$x1,$y1              # with variations, but I wouldn't recommend it
    [/unit]
[/event]
- Just so you can see for yourself what a bad idea this is a little faster.
"What do you mean, "a dwarvish dragonguard with marksman is overpowered"?"

Story of a Drake Outcast | The Nonsense Era
Played HttT-Underground Channels? Thought it was rubbish? Help us develop it here!
Caphriel
Posts: 994
Joined: April 21st, 2008, 4:10 pm

Re: Mainline: Make plague work on villages

Post by Caphriel »

Insinuator wrote:Well, I see that I can't convince with just words, so I'm going to make a "Village-Plaguing" unit and do a bunch of scenarios to see how it affects gameplay. I'll compare them with an identical number of "control" scenarios where Plague is used as is.
You'll also have to make a multiplayer era and provide replays of good players playing that, probably, because some of the objections are on multiplayer balance grounds.
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

I'm using a code very similar to Reepur's but I keep running across the problem of turning all units to side=1. Is there a command to store a side number at the beginning of the turn? From reading the wiki, I'm sure there is but I can't quite find it.

EDIT: Got it. Now I'm having trouble with the variations. I know I can do it with the standard WC, but I think the variations affect gameplay because the different WC iterations actually have different movetypes and defenses.
Last edited by Insinuator on March 15th, 2011, 6:45 pm, edited 1 time in total.
User avatar
Reepurr
Posts: 1088
Joined: August 29th, 2010, 5:38 pm

Re: Mainline: Make plague work on villages

Post by Reepurr »

Insinuator wrote:I'm using a code very similar to Reepur's but I keep running across the problem of turning all units to side=1. Is there a command to store a side number at the beginning of the turn? From reading the wiki, I'm sure there is but I can't quite find it.
Oh yeah, forgot that. Try side=second_unit.side in the [unit] tag.
"What do you mean, "a dwarvish dragonguard with marksman is overpowered"?"

Story of a Drake Outcast | The Nonsense Era
Played HttT-Underground Channels? Thought it was rubbish? Help us develop it here!
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

Actually, I used side=$side_number. Here's what I have so far. I put it all under a scenario tag because I couldn't figure out how to do one for a custom unit. You'll notice I haven't figured the variations out.

Code: Select all

    # Event to make Walking Corpses spawn on villages   
    [event]
    	name=die
    	first_time_only=no
    	[filter]
    		[filter_location]
    			terrain=*^V*
    		[/filter_location]
    	[/filter]
   		[filter_second]
    		special={WEAPON_SPECIAL_PLAGUE}
    	[/filter_second]
    	[kill]
    		x,y=$x1,$y1
    	[/kill]
    	[unit]
    		type=Walking Corpse
    		side=$side_number
    		x,y=$x1,$y1
    		moves=0
    	[/unit]
    [/event]
User avatar
Reepurr
Posts: 1088
Joined: August 29th, 2010, 5:38 pm

Re: Mainline: Make plague work on villages

Post by Reepurr »

Insinuator wrote:Actually, I used side=$side_number. Here's what I have so far. I put it all under a scenario tag because I couldn't figure out how to do one for a custom unit. You'll notice I haven't figured the variations out.

Code: Select all

    # Event to make Walking Corpses spawn on villages   
    [event]
    	name=die
    	first_time_only=no
    	[filter]
    		[filter_location]
    			terrain=*^V*
    		[/filter_location]
    	[/filter]
        [filter_second_attack]
    		special={WEAPON_SPECIAL_PLAGUE}
    	[/filter_second_attack]
    	[kill]
    		x,y=$x1,$y1
    	[/kill]
    	[unit]
    		type=Walking Corpse
    		side=$second_unit.side # this MUST happen in case a unit on a village attacks a WC and dies
    		x,y=$x1,$y1                  # because otherwise the suicidal unit would be replaced with
    		moves=0                       #  a WC on their side!
                attacks_left=0 # don't actually know if this works, but it would be nice
    	[/unit]
    [/event]
You'll observe I made some minor changes.
"What do you mean, "a dwarvish dragonguard with marksman is overpowered"?"

Story of a Drake Outcast | The Nonsense Era
Played HttT-Underground Channels? Thought it was rubbish? Help us develop it here!
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

Here's my latest work. You'll notice I'm trying to fit variable Walking Corpse units in, but it's proving to be a headache.

Code: Select all

    [event]
    	name=die
    	first_time_only=no
        [set_variable]
    		name=PlaguedGuy
    	[/set_variable]
    	[filter]  		
    		[filter_location]
    			terrain=*^V*
    		[/filter_location]
    		[not]
    			race=undead # This removes the possibility of accidentally creating WCs via defensive retaliation
    		[/not]
    	[/filter]
   		[filter_second]
    		special={WEAPON_SPECIAL_PLAGUE}
    	[/filter_second]
    	[store_unit]
    		[filter]
    			x,y=$x1,$y1
    		[/filter]
    		variable=PlaguedGuy
    	[/store_unit]
    	[kill]
    		x,y=$x1,$y1
    	[/kill]
    	[unit]
    		type=Walking Corpse
  			variation=$PlaguedGuy
    		side=$side_number
    		x,y=$x1,$y1
    		moves=0
    	[/unit]
    [/event]
@Reepur: I did see what you were talking about, but it didn't change when I input your code. I think that's because the Plagued unit has already been killed and his data is lost. So I did a workaround in the filter. This also accomplishes not being able to Plague Undead on villages, which I just realized I could before. I haven't yet seen any WML that allows me to strip attacks from a freshly minted WC, so that is on my to do list.
monochromatic
Posts: 1549
Joined: June 18th, 2009, 1:45 am

Re: Mainline: Make plague work on villages

Post by monochromatic »

Edited code with proper indentation. The variation thing is still not right, ask zookeeper about it.

Code: Select all

[event]
    name=die
    first_time_only=no

    [filter]
        [filter_location]
            terrain="*^V*"
        [/filter_location]
        [not]
            race=undead
        [/not]
    [/filter]
    [filter_second]
        special=plague
    [/filter_second]

    [kill]
        x,y=$x1,$y1
    [/kill]
    [unit]
        type=Walking Corpse
        variation=$unit.race # Not the best, but works for most races for now
        side=$second_unit.side
        x,y=$x1,$y1
        moves=0
        attacks_left=0
    [/unit]
[/event]
Last edited by monochromatic on March 15th, 2011, 10:59 pm, edited 1 time in total.
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

elvish_sovereign wrote:

Code: Select all

[{CLEAR_VARIABLE plague_unit_store}
What is this part for? And what exactly does "The variation thing is still not right" mean?
monochromatic
Posts: 1549
Joined: June 18th, 2009, 1:45 am

Re: Mainline: Make plague work on villages

Post by monochromatic »

Insinuator wrote:
elvish_sovereign wrote:

Code: Select all

[{CLEAR_VARIABLE plague_unit_store}
What is this part for? And what exactly does "The variation thing is still not right" mean?
Ah, was using that as the variable and then forgot I could use unit and second_unit. I'll edit it out.
In order for variation to work properly, you will need to store the unit_type of the unit.type, specifically unit_type.variation. For my knowledge it's not possible in WML, so I asked you to ask zookeeper if there is a way. Otherwise I'm pretty sure it can be done quite simply in Lua but I'm just too lazy to figure out how right now.
Insinuator
Posts: 707
Joined: January 6th, 2004, 10:42 pm
Location: Wichita, KS

Re: Mainline: Make plague work on villages

Post by Insinuator »

Ok, I understand now.

ZOOKEEPER! HEED MY CALL! I CALL UPON THY LIMITLESS KNOWLEDGE AND WISDOM! I BEG THY INDULGENCE FOR MY PETTY VARIABLE PROBLEMS! HEAR ME ZOOKEEPER! IS THERE A WAY?!
Last edited by Gambit on March 15th, 2011, 11:53 pm, edited 2 times in total.
Reason: Screaming is unnecessary, and against the posting guidelines.
Post Reply