Request for new add-on

General feedback and discussion of the game.

Moderator: Forum Moderators

Post Reply
JasonBaggins
Posts: 11
Joined: May 6th, 2018, 5:06 pm
Location: United States

Request for new add-on

Post by JasonBaggins »

Ok so this sounds kinda demanding and i really dont want it to come across that way im just throwing this out there because i thought of it today. So in wesnoth a lot of the time the game is almost impossible if you dont have high level healers but its also risky and fairly tedious to get the right combos to feed your healers kills. So i propose that healers gain XP based on heals and get much less from kills, for example in the game if you kill a level zero ruffian a normal character gets 4 XP but with this active if a heal based character gets the kill they only get 2 XP. The flip side to this is that every-time they heal an allied unit they get something like 2 XP. I just thought of this today and thought it would be a nice addition to the game. Thanks for reading :D :D
enclave
Posts: 936
Joined: December 15th, 2007, 8:52 am

Re: Request for new add-on

Post by enclave »

an idea itself is interesting ;) the practical part may be less of a joy :)
User avatar
beetlenaut
Developer
Posts: 2814
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

Re: Request for new add-on

Post by beetlenaut »

In the rules for the ideas forum, this is listed as idea number 7 that has been asked too many times and already been rejected by the development team:
Forum Moderators Team wrote: September 3rd, 2011, 1:58 am 7. Healing/leadership should give experience
Background: It is felt that leveling-up some units with healing or leadership abilities is too difficult, and they should get experience through user of their special ability.
Result: It is felt that allowing units to gain experience without risk would make leveling-up of such units inevitable. Further, one of the motivating examples of this is so that units such as shaman can have a hope to level up in multiplayer. It is pointed out that if the experience gains were high enough to allow shaman to level up in a single multiplayer game, then it would be trivial to gain the best type of healing unit in a campaign very quickly.
With some experience, you will find that setting up the correct combo to feed experience to a shaman (for example) is actually not that hard. I always have a druid by the end of the second scenario in HttT or AOI--often by the end of the first. My favorite technique is to work on two shamans at once. If the first one doesn't kill a weak unit, it still makes it less risky to attack with the second (usually). Also, you should purposely use attacks by other units that have a decent probability of leaving an enemy with just a couple hitpoints, and only a small probability of killing it. Sometimes that means using the bow of a fighter or sword of an archer. Also, remember that if the shaman is on forest, it's really hard to hit.
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
User avatar
skeptical_troll
Posts: 498
Joined: August 31st, 2015, 11:06 pm

Re: Request for new add-on

Post by skeptical_troll »

I think he's just asking for this as an add-on, not as a modification of the core game. So the 'only' problem is finding somebody willing to do it (or perhaps it already exists) :)
User avatar
Sapient
Inactive Developer
Posts: 4453
Joined: November 26th, 2005, 7:41 am
Contact:

Re: Request for new add-on

Post by Sapient »

I actually agree that trying to feed kills to a particular unit can be really frustrating and tempts me into save-scumming.

Sometimes the unit I want to weaken the enemy accidentally kills it instead, or then after weakening the enemy then the one I want to give exp misses all their hits.

My idea was a little different though: a Non-Lethal mod, where you can order one of your units not to completely kill the enemy. Then you can have your mage overkill somebody and it'll be left with exactly 1 hp. That gets rid of at least one half of the frustration.
http://www.wesnoth.org/wiki/User:Sapient... "Looks like your skills saved us again. Uh, well at least, they saved Soarin's apple pie."
RolfDhew
Posts: 55
Joined: March 4th, 2018, 11:41 am

Re: Request for new add-on

Post by RolfDhew »

I think this would change the gameplay too much
User avatar
Eagle_11
Posts: 759
Joined: November 20th, 2013, 12:20 pm

Re: Request for new add-on

Post by Eagle_11 »

Need to determine what happens when two healers are adjacent to same injured unit. can probably filter via ability_type_active to set a variable on actual healer, that will get filtered later to give exp to active healer per injured unit around itself.
The question is would this incorrectly catch both healers since at side turn begin where healing happens healing ability of both would be technically active ?
enclave
Posts: 936
Joined: December 15th, 2007, 8:52 am

Re: Request for new add-on

Post by enclave »

I probably don't have question on how to do the mod... (it might be hard, but not that much of impossible)
I have more questions on how it will feel when you actually play it.
For single player campaigns its great, enemy ai will not complain :)
For multiplayer it will break the balance like zunami.. :D The map will be full of level 1 units with lvl3 healers (because they will advance before everyone else), so the races without healers will have to face lvl2 sorcerers, lvl3 druids and will have no chance.. if it gains 2xp for lvl2 units then u can just intentionally make your leader slightly wounded all the time.
So without adding different advancements for healers, or healer units to non-healing races, Nobody would use this modification in multiplayer seriously.. only for fun. Which would quite a bit neglect the efford to create such add-on..
For single player yes, why not.. but I think ideally this would be some separate era with it's own units and advancements... not default.. the idea itself is quite cool and logical... the practical part of when you are actually playing it will not be fun with default era. You will soon become OP with lvl3-lvl4-lvl5 units against lvl1 units.. which is fun only for people who don't like complications and hard levels.. (with default era advancements)

It might be some cool campaign that would work very well this way.. with non-default units advancements or partly non-default units... that would for sure be fun and interesting...
Eagle_11 wrote: May 11th, 2018, 11:32 am Need to determine what happens when two healers are adjacent to same injured unit. can probably filter via ability_type_active to set a variable on actual healer, that will get filtered later to give exp to active healer per injured unit around itself.
The question is would this incorrectly catch both healers since at side turn begin where healing happens healing ability of both would be technically active ?
I wouldn't even probably mess with implementing this inside the ability... although it may be easier.. but it may be less controllable..
It could be done with side turn event and then compare health difference near healers in turn refresh event... then decide what to do with xp..
but i guess both healers could get xp, why not.. but i think it should all be limited to 1xp, nothing like xp per level... thinking of the idea less sceptical, it will take a while to level like this anyway... so it's not that bad or OP maybe... white mage would need to heal some 50 turns to level? :D maybe such add-on is not so bad idea after all :D but shamans would definitly become op... unless max xp would be increased or something..
JasonBaggins
Posts: 11
Joined: May 6th, 2018, 5:06 pm
Location: United States

Re: Request for new add-on

Post by JasonBaggins »

The general concept isn’t that healers gain XP by being near but gain XP per heal they performed so if you had six healers around one unit as long as they healed said unit they would gain XP.
JasonBaggins
Posts: 11
Joined: May 6th, 2018, 5:06 pm
Location: United States

Re: Request for new add-on

Post by JasonBaggins »

But again this is just something I thought of and wanted to throw out there.
User avatar
Zap-Zarap
Posts: 159
Joined: March 16th, 2015, 2:18 pm

Re: Request for new add-on

Post by Zap-Zarap »

Maybe it is not that trivial for WML to know, which one did the healing... probably that's done in the c++ core.
I like beavers.
User avatar
Eagle_11
Posts: 759
Joined: November 20th, 2013, 12:20 pm

Re: Request for new add-on

Post by Eagle_11 »

edit: if you have an idea on how this code can be extended, rewritten do tell.

Code: Select all

		[event]
			name=turn refresh
			first_time_only=no
			id=exi_healerxp_event
			[store_unit]
				variable=healer_units
				[filter]
					side=$side_number
					ability=healing
					#only if there was something like ability_active=
				[/filter]
			[/store_unit]
			{FOREACH healer_units I}
				[store_unit]
					[filter]
						side=$healer_units.side
						[not]
							[filter_wml]
								[status]
									poisoned=yes
								[/status]
							[/filter_wml]
						[/not]
						[filter_adjacent]
							x,y=$healer_units[$I].x,$healer_units[$I].y
						[/filter_adjacent]
					[/filter]
					variable=healed_units
				[/store_unit]

				{VARIABLE healing_xp 0}

				{FOREACH healed_units J}

					[if]
						[variable]
							name=healed_units[$J].hitpoints
							less_than_equal_to=$healed_units[$J].max_hitpoints
						[/variable]
						[then]
							#when doing properly
							#an healer adjacent to 2 injured units incorrectly gains +3xp instead +2xp, +5 instead +3 if adjacent to 3 units, and so on.
							{VARIABLE_OP healing_xp add 1}
							{VARIABLE_OP healer_units[$I].experience add $healing_xp}			

							[unstore_unit]
								#need to give correct lightblue color
								red,green,blue=50,50,200
								text="<span color='#cccc33'>" + _ "+ $healing_xp xp" + "</span>"
								variable=healer_units[$I]
							[/unstore_unit]

							#if you do this here healer gains flat +1 xp per usage of healing.
							{CLEAR_VARIABLE healed_units}

							#also the whole thing incorrectly stacks, 
							#two healers adjacent to one injured, one healer will perform the healing while both healers do get the xp.
						[/then]
					[/if]

				{NEXT J}
				#{CLEAR_VARIABLE healed_units}
				#clean the exp before moving to next healer
				{CLEAR_VARIABLE healing_xp}
			{NEXT I}

			{CLEAR_VARIABLE healer_units}
			#{CLEAR_VARIABLE healed_units}
		[/event]
Post Reply