Strange Legacy - 1.16 RPG World (Markets Upgrade)

Discussion and development of scenarios and campaigns for the game.

Moderators: Forum Moderators, Developers

Post Reply
User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

The problem about both proposals is the amount of work + my lack in understanding how arrays are effectively designed in WML. I will clarify the problems. So far we have 23 goods defined in an array with 220+ lines. An array for these who don't know it could be described as a table with several variables (as in excel).

For each town I now need to create an array - lets say its 20 towns, thus means 220*20 --> 4400 lines, I could however reduce this amount to 220 + 20 lines by using macros for them (at least if the prices are the same in every town). Than I have to overwork 20 towns and make individual prices for each, after all the are all in another array and need to be addressed correctly (they are not loaded automatically). For each town I have so far the same macro that calls the buy and selloptions according to the town, which is highly buggy if changed. The amount of time for that is enormous and is quite annoying for me, at least for now.

In the standard game you really have to mess around a lot to get hunted by factions. The lightsider or darksider raids can be easily avoided by reducing/increasing the fame.
The RPG mode is made to be unfair and roguelike. But there should be other ways to get rid of the faction raids (maybe by killing the leader of that faction / or negotiations). There won't be updates for the next week as I have to work over the weekend and the week after.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

I repaired summoner and wardogs. It is sufficient to insert after string advances_to a string
{AMLA_DEFAULT}
which is necessary in W12.5-12.6

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

Due to successful improvements of unit descriptions I can propose you some collaboration. I will edit unit descriptions using excellent Dugi's improvements. Of course one of us will ask Dugi for blessings :D .This will in further development help you to introduce easily necessary on higher level of infinite dungeons events allowing to improve some friendly NPC's and soldiers (for example finding books or unique weapons for them). I had some experience to modify Dugi's definitions to make some of his maps more hard and more interesting for me.

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

We should ask dugi before we do so, I however have no idea what you want to improve.
Before I don't know what you want to improve and how, I will not add these changes.

Most people underestimate the amount of testing required. What if I add changes which sound well on "paper", but will completely destroy the game for others.
I don't say its perfect what I do and how I coded the game, but I'm however still in 'control' and also having the responsibility not to mess the addon to much.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

I wish first of all use Dugi's ideas of AMLA for almost all units (friendly and enemy) not modifying basic units. They will be collected in the single main file like in Dugi's campaigns. All further modifications are subject of discussion after some experience. You could understand that I estimate amount of testing and would use some automation for it :) And of course it will be done only after Dugi's blessing.
For example we can replace Dwarvish Lord by

Code: Select all

[unit_type]
    id=Dwarvish Lord1
    name= _ "Dwarvish Lord"
    [base_unit]
        id=Dwarvish Lord
    [/base_unit]
    experience=150
    alignment=neutral
    advances_to=null
# Dugi's AMLA, somewhat weakened
    {AMLA 
        [advancement]
            id=axe
            max_times=1
            description= _ "striking stronger with axe"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=attack
                name=battle axe
                increase_damage=2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=axe2
            max_times=1
            description= _ "faster with axe"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="axe"
            [effect]
                apply_to=attack
                name=battle axe
                increase_attacks=1
                increase_damage=-1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=axe3
            max_times=1
            description= _ "faster with axe"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="axe,axe2"
            [effect]
                apply_to=attack
                name=battle axe
                increase_attacks=1
                increase_damage=-2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=axe4
            max_times=10
            description= _ "better with axe"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="axe,axe2"
            [effect]
                apply_to=attack
                name=battle axe
                increase_damage=1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hammer
            max_times=1
            description= _ "stronger with hammer"
            image=attacks/hammer-dwarven-runic.png
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=attack
                name=hammer
                increase_damage=2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hammer2
            max_times=1
            description= _ "stronger with hammer"
            image=attacks/hammer-dwarven-runic.png
            strict_amla=yes
            require_amla="hammer"
            [effect]
                apply_to=attack
                name=hammer
                increase_damage=2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hammer_speed
            max_times=1
            description= _ "faster with hammer"
            image=attacks/hammer-dwarven-runic.png
            strict_amla=yes
            require_amla="hammer2"
            [effect]
                apply_to=attack
                name=hammer
                increase_damage=-9
                increase_attacks=1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hammer3
            max_times=10
            description= _ "stronger with hammer"
            image=attacks/hammer-dwarven-runic.png
            strict_amla=yes
            require_amla="hammer2"
            [effect]
                apply_to=attack
                name=hammer
                increase_damage=1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hatchet
            max_times=1
            description= _ "stronger with hatchet"
            image=attacks/hatchet.png
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=attack
                name=hatchet
                increase_damage=2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hatchet2
            max_times=1
            description= _ "faster with hatchet"
            image=attacks/hatchet.png
            strict_amla=yes
            require_amla="hatchet"
            [effect]
                apply_to=attack
                name=hatchet
                increase_attacks=1
                increase_damage=-2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id=hatchet3
            max_times=10
            description= _ "stronger with hatchet"
            image=attacks/hatchet.png
            strict_amla=yes
            require_amla="hatchet2"
            [effect]
                apply_to=attack
                name=hatchet
                increase_damage=1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            max_times=5
            id=block
            description= _ "blocking better"
            image="icons/shield_tower.png"
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=defense
                replace=false
                [defense]
                    frozen=-4
                    castle=-2
                    sand=-4
                    village=-2
                    flat=-2
                    hills=-2
                    mountains=-2
                    swamp_water=-4
                    cave=-2
                    shallow_water=-4
                    reef=-2
                    forest=-4
                    fungus=-4
                [/defense]
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            max_times=2
            id=movement
            description= _ "faster"
            image=icons/boots_elven.png
            {AMLA_DEFAULT_BONUSES}
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=movement
                increase=1
            [/effect]
        [/advancement]
    )}
    cost=54
[/unit_type]
Last edited by Ravana on October 5th, 2016, 10:12 pm, edited 1 time in total.
Reason: Added [code]

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

You mean for maxed units, which can't advance any more? I think we could embed this, so far I've just made that for the three hero types.
As far as I know this is embedded already in some main campaigns. Dugi just used the concept and made it better.

Would be fun together with the equip unit feature, I see.

But I would rather stick with existing concepts such as strength (melee +1), dexterity (ranged +1), constitution (+5 hp), luck (defense up). Additionally I could even save the amount of dexterity or strength a unit has received by this max-levelup and than I could unlock new attacks or options when they have reached a specific amount.
E.g. unlock + 1 mp upgrade (speed) once dexterity is higher that 3/6/9 and so on.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

I see we understand this proposition almost identically. It is good. and your proposed development with additional states is excellent in priciple. But it needs much more programming and testing that mine :augh: I hope we will work together on it but not make it our nearest goal.

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

I can do this in maybe half an hour of development. I assume that testing is hardly required, as these are things I've already done before. By searching in the entire unit folder I can easily find and identify all units with null advancement and add a macro. Will however increase initial loading time.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

This is not so simple matter but simultaneously really not hard one :D Many units with null advancement are core units. For example Dwarvish Lord. I just added and tested thoroughly advancement for Dwarvish Lord which demands no copying of core definition. Moreover I tested accurately also whether can be added Dugi's (modified a bit) Dwarvish Hero as the advancement for Dwarvish Lord without any replicas of Dwarvish lord. I think that if we will not add new stage for core unit that we need a simple replica but maybe in many cases a formally new stage based on existing unit is preferrable in order not to modify at this time a lot of scenarios. But three advancements of Dugi I propose to borrow (of course after blessing and in somewhat weakened form): Dwarvish Lord (ideal in caves), Duke (we need commander for our soldiers) and next level of Elvish Shyde (otherwise healer moves in caves and over water incredibly slow). I hope I can made this work for almost all final advancements and test it during weekend.
Also I will propose to you my own modification of the initial unit. Volunteer is based on Peasant but can advance also to Sergeant. This does not demand modification of any Loyalist unit.
Best wishes!

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

Maybe we can find a solution for that. By adding a postadvance behaviour.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

Hi Heindal!
Now I can propose an (I hope) fully tested and generic solution. We add to directory utils a new file amla.cfg

Code: Select all

#define AMLA_DEFAULT_BONUSES
    [effect]
        apply_to=hitpoints
        increase_total=4
        heal_full=yes
    [/effect]
    [effect]
        apply_to=max_experience
        increase=2%
    [/effect]
    [effect]
        apply_to=max_experience
        {QUANTITY increase 20 22 25}	
    [/effect]
#enddef
#define ADDITIONAL_AMLA TYPE
        [advancement]
            id={TYPE}
            max_times=1
            description= _ "striking stronger with {TYPE}"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=attack
                name={TYPE}
                increase_damage=2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id={TYPE}2
            max_times=1
            description= _ "faster with {TYPE}"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="{TYPE}"
            [effect]
                apply_to=attack
                name={TYPE}
                increase_attacks=1
                increase_damage=-1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id={TYPE}3
            max_times=1
            description= _ "faster with {TYPE}"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="{TYPE},{TYPE}2"
            [effect]
                apply_to=attack
                name={TYPE}
                increase_attacks=1
                increase_damage=-2
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            id={TYPE}4
            max_times=100
            description= _ "better with {TYPE}"
            image=attacks/battleaxe.png
            strict_amla=yes
            require_amla="{TYPE},{TYPE}2"
            [effect]
                apply_to=attack
                name={TYPE}
                increase_damage=1
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
#enddef
#define GREATER_AMLA
        [advancement]
            max_times=10
            id=block
            description= _ "blocking better"
            image="icons/shield_tower.png"
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=defense
                replace=false
                [defense]
                    frozen=-4
                    castle=-2
                    sand=-4
                    village=-2
                    flat=-2
                    hills=-2
                    mountains=-2
                    swamp_water=-4
                    cave=-2
                    shallow_water=-4
                    reef=-2
                    forest=-4
                    fungus=-4
                [/defense]
            [/effect]
            {AMLA_DEFAULT_BONUSES}
        [/advancement]
        [advancement]
            max_times=2
            id=movement
            description= _ "faster"
            image=icons/boots_elven.png
            {AMLA_DEFAULT_BONUSES}
            strict_amla=yes
            require_amla=""
            [effect]
                apply_to=movement
                increase=1
            [/effect]
        [/advancement]
#enddef

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

And add to directory units a subdirectory advanced including it into main.cfg. Then for each core final unit used we add a likewise to there ones replica:

Code: Select all

[unit_type]
    id=Dragonguard A
    [base_unit]
        id=Dwarvish Dragonguard
    [/base_unit]
    advanced_from=Dwarvish Dragonguard
    hitpoints=63
    experience=150
    level=4
    advances_to=null
    cost=64
    description= _ "Dwarvish Dragonguard Advanced"
    name= _ "Dragonguard Advanced"
    [advancefrom]
        unit=Dwarvish Dragonguard
        experience=150
    [/advancefrom]
{ADDITIONAL_AMLA dagger}
{ADDITIONAL_AMLA dragonstaff}
{GREATER_AMLA}
[/unit_type]

Code: Select all

[unit_type]
    id=Bat A
    name= _ "Bat A"
    [base_unit]
        id=Dread Bat
    [/base_unit]
    advanced_from=Dread Bat
    hitpoints=36
    experience=100
    level=3
    alignment=chaotic
    advances_to=null
    cost=44
    description= _ "Dread Bat, advanced."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DRAIN}
    [advancefrom]
        unit=Dread Bat
        experience=100
    [/advancefrom]

{ADDITIONAL_AMLA fangs}
{GREATER_AMLA}
[/unit_type]
This is almost mechanical process. We need only list all attacks and all special notes of advanced unit. No modification of core units is demanded.
For our "native" units it is sufficient only to replace srtandard AMLA by ours.

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

I personally believe this concept is to complicated. You would need to change any mainline unit in the game. Why increasing the damage of one weapon, if you can just increase the melee damage? Most units just have one kind of attack. So the amount of work is in no relation to the possible benefit.

If a unit of side one receives a levelup, I will call the new amla menu, which is the same for every unit.
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

wardog_of_bad_moon
Posts: 54
Joined: September 8th, 2015, 6:27 am

Re: Strange Legacy - 1.12 RPG World - finished

Post by wardog_of_bad_moon »

I considered your demotivatory answer :twisted: and then reconsider it. First of all it is almost ready a script which makes from each final unit its replica. Because replicas are debugged thoroughly (also in extent whether they are compatible with your dynamic concept of recruiting< which is sympatic to me) and do not require any changes of core or imported units your estimation of hardiness is slightly overstated.
But in future this approach opens possibility to implement easily other perspective concept. It is reasonable to allow use unique artifacts only for NPC's and maxed units (heroes and veterans :mrgreen: ). If we adopt my conception it would be easy to create artifacts used only by definite unit(s).

User avatar
Heindal
Posts: 1058
Joined: August 11th, 2011, 9:25 pm
Location: Germany, Karlsruhe
Contact:

Re: Strange Legacy - 1.12 RPG World - finished

Post by Heindal »

Hi wardog,

i hope i didn't demotivated you too much, but currently I don't have much time. Currently I don't code much and would like to concentrate on another (secret) project, for now. As long as this version is stable I will not work on it much more. The next version will have the name "The Market" and I will try to embed the idea with the array for every town, maybe even adding consume and growth of cities and factions. But this will require testing. I will than embed some changes to the max_amla.

Kind regards

Heindal
The future belongs to those, who believe in the beauty of their dreams.
Developer of: Trapped, Five Fates, Strange Legacy, Epical
Dungeonmasters of Wesnoth, Wild Peasants vs Devouring Corpses

Post Reply