Page 6 of 10 FirstFirst ... 4 5 6 7 8 ... LastLast
Results 101 to 120 of 186

  Click here to go to the first staff post in this thread.   Thread: Modding? Can we have it?

  1.   Click here to go to the next staff post in this thread.   #101
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    I mis-spoke a little about the random quest triggers. Looking at wld_boersgard.json, you see these locations:

    Code:
    {
    	"id": "random_quests",
    	"position": 25926
    },
    This refers to a trigger in saga1.json:

    Code:
    {
    	"actions": [
    		{
    			"happening": "random_refugees",
    			"prereqs": [
    				{
    					"varname": "rdm_refugees",
    					"varvalue": 0
    				}
    			],
    			"type": "HAPPENING"
    		},
    ...
    		{
    			"happening": "random_familyfeud2",
    			"prereqs": [
    				{
    					"varname": "rdm_familyfeud2",
    					"varvalue": 1
    				}
    			],
    			"type": "HAPPENING"
    		}
    	],
    	"id": "random_quests",
    	"random": true,
    	"triggers": [
    		{
    			"location": "random_quests",
    			"type": "LOCATION"
    		}
    	]
    },
    It's truncated but you see that there are 2 actions (and more represented by ...), and this happening spawns one of the actions randomly.

    So to add a random event, you would add a new happening to saga1.json, with a trigger on a location that you add in one of the wld_*.json travel files.

    Note above, that the actions being triggered are of type "HAPPENING". This means it calls another happening, in the 2nd case "random_familyfeud2". The contents of that happening is here, which spawns a popup that renders a conversation?

    Code:
    {
    	"actions": [
    		{
    			"type": "POPUP",
    			"url": "saga1/convo/part8/cnv_rdm_familyfeud2.json.z"
    		},
    		{
    			"suppress_flytext": true,
    			"type": "VARIABLE_SET",
    			"varname": "rdm_familyfeud2"
    		}
    	],
    	"id": "random_familyfeud2"
    },

  2. #102
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by John View Post
    I mis-spoke a little about the random quest triggers. Looking at wld_boersgard.json, you see these locations:
    ...
    This refers to a trigger in saga1.json:
    ...
    It's truncated but you see that there are 2 actions (and more represented by ...), and this happening spawns one of the actions randomly.

    So to add a random event, you would add a new happening to saga1.json, with a trigger on a location that you add in one of the wld_*.json travel files.
    ...
    Note above, that the actions being triggered are of type "HAPPENING". This means it calls another happening, in the 2nd case "random_familyfeud2". The contents of that happening is here, which spawns a popup that renders a conversation
    Hmmm, I didn't get something here: To add new random-events, do we also need to add dedicated triggers for them, in some locations of the wld_*.json travel files or are they randomly selected for the pool of eligible ones? Eligible means that (a) they haven't been encountered before, (b) they pass event-specific condition-checks. Before this last message of yours, I thought that to add a new random-event we just (i) properly "append" a new happening in the saga1.json\happenings\random_quests\actions and (ii) create, of course, the json file with that new happening/random-quest.

    Also, how does this "positioning" system work? It seems that the entries in scene\wld_*.json\landscape\travel\locations contain an "id" and a scalar/integer "position" identifier. Is there a look-up table, or a fuction/formula that maps those "position" identifiers to map-locations (e.g. in xy/pixel-coordinates)? I am guessing it should relate to the scene\wld_*.json\landscape\travel\splinex entries (a long 2-column array), but I can't see how... I am also guessing that there must be a hard-set and over-ruling "caravan route", along whose way do the various events --random and scripted-- pop up (when the locations/triggers are met).

    Finally, is there a way to "force" a random event to appear somewhere, in order to debug it? Or would we need to "plant" it, somewhere, as a new scripted-event? Is the procedure required for adding scripted events any different than the one we follow to add random ones? I am guessing that it will be a bit easier, e.g. bypassing the "declaration" in saga1.json if its scope is local, i.e. it applies only during/inside a specific scene\wld_*.json...

    I mean to get into creating/adding new battle-scenes, but lets leave that for later, after we get the hang of adding "simple" caravan pop-up events (random or scripted).
    Last edited by Aleonymous; 04-15-2014 at 07:29 AM.
    Together we stand, divided we fall.

  3.   Click here to go to the next staff post in this thread.   #103
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    To add a new random event that occurs whenever any other random event occurs, yes, just add an action to the happening saga1.json\happenings\random_quests.

    All the existing actions in saga1.json\happenings\random_quests\actions are actions that call other happenings, also defined in saga1.json\happenings. The aforementioned actions have prerequisites on them.

    In the example below, the action executes the happening called "random_refugees" if the variable "rdm_refugees" == 0 (in other words, is unset, or false):

    Code:
    {
    	"happening": "random_refugees",
    	"prereqs": [
    		{
    			"varname": "rdm_refugees",
    			"varvalue": 0
    		}
    	],
    	"type": "HAPPENING"
    },
    The positioning system specifies a scalar "position" which is the number of pixels along the spline, from its beginning. You can see the spline and its locations by hitting control-shift-T in the client (with --developer). You should see something like this:

    travel_spline.jpg



    By looking at what the numbers are for 2 given locations, you should be able to mentally extrapolate the position for a new location in between them.

    You can 'execute' a happening at any time with the command:

    Code:
    saga exec <happening_id>
    I believe it looks first in the happening list for the current scene, and failing that, in the global happening list defined in saga1.json.z

    And yes, if a travel scene contains a location, it can also contain the happening that listens for the location trigger on that location. I don't think the location triggered happenings all need to be in saga1.json.z

    JW

    Quote Originally Posted by Aleonymous View Post
    Hmmm, I didn't get something here: To add new random-events, do we also need to add dedicated triggers for them, in some locations of the wld_*.json travel files or are they randomly selected for the pool of eligible ones? Eligible means that (a) they haven't been encountered before, (b) they pass event-specific condition-checks. Before this last message of yours, I thought that to add a new random-event we just (i) properly "append" a new happening in the saga1.json\happenings\random_quests\actions and (ii) create, of course, the json file with that new happening/random-quest.

    Also, how does this "positioning" system work? It seems that the entries in scene\wld_*.json\landscape\travel\locations contain an "id" and a scalar/integer "position" identifier. Is there a look-up table, or a fuction/formula that maps those "position" identifiers to map-locations (e.g. in xy/pixel-coordinates)? I am guessing it should relate to the scene\wld_*.json\landscape\travel\splinex entries (a long 2-column array), but I can't see how... I am also guessing that there must be a hard-set and over-ruling "caravan route", along whose way do the various events --random and scripted-- pop up (when the locations/triggers are met).

    Finally, is there a way to "force" a random event to appear somewhere, in order to debug it? Or would we need to "plant" it, somewhere, as a new scripted-event? Is the procedure required for adding scripted events any different than the one we follow to add random ones? I am guessing that it will be a bit easier, e.g. bypassing the "declaration" in saga1.json if its scope is local, i.e. it applies only during/inside a specific scene\wld_*.json...

    I mean to get into creating/adding new battle-scenes, but lets leave that for later, after we get the hang of adding "simple" caravan pop-up events (random or scripted).
    Last edited by John; 04-15-2014 at 02:07 PM.

  4. #104
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    EDIT -- OK, I've sorted this out! My reasoning-out of this was correct, and it seems like the problem was caused --as always-- by a typo (a missing comma, an extra } where there shouldn't be etc ). I've found this quite cool online JSON editor ( https://www.jsoneditoronline.org/ ) who revealed that one my "stitches" (yes, the last one ) was out-of-line!


    John,

    Mayday, mayday. I have a hard time structuring the "story-flow" inside the \convo\...\cvn_pop events, using "divert", "linkPath" and "if-/notIf-Condition" as well as the global variables (battle_victory and others) Can you explain some things? Here's my understanding:
    • The first "stitch" to be visited is the one given by the "initial" entry of the JSON file.
    • The initial stitch is usually called "skip" and points to the next stitch via the "linkPath"
    • The "content" of a stitch is displayed (and any flagName operations are executed, e.g. morale/supplies/renown or global-var sets/resets) when the "ifCondition"- and "notIfCondition"-clauses, following the "content" of a stitch, are satisfied.
    • If there is a "divert" entry after the "content", then the flow is directed to that stitch
    • The JSON file is exited when the flow runs out of "divert" re-directs.

    Is my understanding correct? Or do the ifCondition- and nonIfCondition-clauses apply to whether or not to "divert"?

    Basically, I am trying to do a VERY simple thing, assuming we have a dependence from two boolean variables (e.g. A & B):
    1. if {A}AND{B} then... <outcome#1> end;
    2. if {A}AND{NOT{B}} then... <outcome#2> end;
    3. <outcome#3>

    where, <outcome#3> happens regardless of A&B (always), but comes after <outcome#1,2> (if applicable, depending on A & B). So, I had 1+3 stitches like that:

    Code:
    "skip": {
            "content": [
              "{skip}",
              {
                "ifConditions": null,
                "linkPath": "stitch_no1",
                "notIfConditions": null,
                "option": "{skip}"
              },
              {
                "pageNum": 1
              }
            ]
         },
    "stitch_no1": {
            "content": [
              "[char] blabla",
              {
                "divert": "stitch_no2"
              },
              {
                if{A}
              },
              {
                if{B}
              },
              {
                "flagName": "foobar1"
              }
            ]
         },
    "stitch_no2": {
            "content": [
              "[char2] blabla2",
              {
                "divert": "stitch_no3"
              },
              {
                if{A}
              },
              {
                notIf{B}
              },
              {
                "flagName": "foobar2"
              }
            ]
         },
    "stitch_no3": {
            "content": [
              "[char3] blabla3",
              {
                "flagName": "foobar3" 
              }
            ]
         }
    My problem is that the <outcome#3> (e.g. display the blabla-content & execute the foobar-operation) of "stitch_no3" NEVER happens, whereas the <outcomes> for "stitch_no1" & "_no2" happen as planned... Can you see my mistake?

    Thanks for your help!

    Aleo
    Last edited by Aleonymous; 04-27-2014 at 02:01 PM. Reason: Solved!
    Together we stand, divided we fall.

  5.   Click here to go to the next staff post in this thread.   #105
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    Yes, having a dedicated JSON editor or validator is crucial.

    For editing conversations, I highly recommend editing them in the Inkle tool itself, if possible.

    Here are the instructions we received from Inkle concerning importing a conversation JSON into a new story so you can edit it in the tool:

    To load up JSON into a new account is possible, but a bit fiddly. Here's how you do it.

    1) Sign into the account you want to write the new story into
    2) Go to https://writer.inklestudios.com/stories/new
    3) Fill in the title box
    4) Paste in only the section of the story JSON contained within the "data" object. This is 99% of the data, but misses out the URL key, the title (since that'd be repeated), and other extra-stuff.
    5) Hit go; and the story will open (in share mode, I think, but it'll now exist in your account).

  6. #106
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by John View Post
    For editing conversations, I highly recommend editing them in the Inkle tool itself, if possible.
    Hmmm, this Inkle takes a little getting used to, but I think it's the right tool for the job! It did feel a little too painstakingly difficult to create branching stories in the "text-editor" environment of the JSONs! Did you use Inkle right from the beginning of the design the game, or migrated to it at some later point? It seems like some of the earlier parts (e.g. Chapters 1-3) are written in a slightly different manner compared to later parts (e.g. Chapters 4-7)... or is it just me? Also, it's quite evident how Ch1&3 were meant to be one chapter, while the same holds true for Ch.2&4 and for Ch.5-7. Well, just curious...




    Since we were discussing conversation, do you mind explaining a bit about how the "mark" markup works? So, lets take an example, in a three person conversation, we usually find the following markup on the very first "stitch":

    Code:
    {skip} mark1=iver mark2=rook mark3=alette
    that loads the portraits of the characters that take part in the chat. In each piece of conversation, when the camera is looking at the person talking the markup is usually something like:

    Code:
    [rook] Blah, blah, blah
    Is there any particular rule to who-is-opposite-who, or whose back we're seeing while camera is on [rook] (e.g. mark2's back when we're looking at mark1)? Also, how do you make that: when the camera is on one character but the text appearing is said by another (possibly with a name-banner next to the text and/or a mini-portrait)? Some times the camera looks at two persons, so, the markup is like:

    Code:
    [rook alette] Blah, blah, blah
    Finally, some characters can be hidden/sent-off from a chat, by using:
    Code:
              {
                "flagName": "@hide=iver"
              }
    Is there a similar piece of code to make-appear a new person to the conversation?

    Thanks for the help Understanding all this through trial-and-error is many times a pain...

    Aleo
    Together we stand, divided we fall.

  7. #107
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    A small twitch-recording introducing my mods so far: https://www.twitch.tv/aleonymous/b/523905484 , here's what I've added/modded:

    • A new hero-character. She's a Siege-Archer, using the 2nd color variation from Factions (also available in the Saga), and her name is... Stoicmom! She appears at the beginning of Chapter 2, joining Rook & Alette while they are attacked in the forest by the Dredge. For all gameplay purposes, this new character is just like Tryggvi: she just helps in the battles and has no story events tied to her (yet!).
    • Some new conversation lines. After you meet Stoicmom, she interferes a bit in the Rook-Alette discussion. Her SWF-portrait, the siege_archer_v1 one, already existed in the game files. So, I just had to "create" the back of her portrait, which I did with recoloring Yrsa's back.
    • A new battle. While in the forest, if Rook chooses to try to save the ox-wagon, the heroes are attacked again by a three Dredge Grunts. The battle map is the same as previously (dead deer), but the deployment zones are reversed.
    • A new enemy unit. It's a red-hued Grunt, called "Lava Grunt", having much higher stats but "regular" otherwise. I just added a 4th grunt type, and did some image-editing to create its sprite from the other grunts. This Lava Grunt can be added in the "buckets" and be used as a "captain" of Grunt...
    • Some new popup event/outcomes. After the wagon is set en route to Skogr, you have a small narrative scene having to do with Stoicmom. If you won the 2nd battle, you get +15 Supplies. If you lost, Stoicmom manages to saves you & the wagon, and you only get +5 supplies. Finally, just by Stoicmom's joining, your "mini-caravan" gets a +30 Morale


    That said, here are the files I had to edit to introduce these stuff:
    1. \assets\saga1\cast1 (here's where I added the character types for the new hero & enemy unit, Stoicmom and Lava Grunt)
    2. \assets\saga1\caravan\caravan\hero_stoicmom.* (the caravan sprite clipfile+PNG)
    3. \assets\saga1\convo\part2\cnv_chat_alettedredge1 (popup, after 2nd battle)
    4. \assets\saga1\convo\part2\cnv_chat_alettedredge2 (dialogue, after 1st battle)
    5. \assets\saga1\scene\part1\cin_rook_alette\cin_rook _alette (both battles are actions of the "rook_chat" happening of this scene)
    6. \assets\saga1\scene\part2\btl_rook_alette_round2\b tl_rook_alette_round2 (the 2nd battle, basically a copy of the first!)
    7. \assets\saga1\scene\part2\wld_einartoft_1\wld_eina rtoft_1(the previous scene is invoked by this "higher" world/caravan-scene, I didn't actually change anything here)
    8. \assets\common\locale\en (here is where the names [Stoicmom, Lava Grunt, Stoicmom's Lore description] were added)
    9. \assets\common\character\character_classes (here is where I "defined" the fourth Grunt type/variation, the Lava Grunt)
    10. \assets\common\character\archer\siegearcher_v1.por trait_back.png (stoicmom's back portrait, from Yrsa's)
    11. \assets\common\character\dredge\dredge_grunt_v3.an im\*.* (the sprite files of the 4th Grunt type)
    12. \assets\common\character\dredge\drege_grunt_v3.* (the turn-queue portrait and other misc files for the 4th Grunt type)

    I might be forgetting something, but that's the most important ones.

    Fell free to comment/correct/discuss!

    Aleo
    Together we stand, divided we fall.

  8.   Click here to go to the next staff post in this thread.   #108
    Developer raven2134's Avatar
    Join Date
    May 2012
    Location
    Manila, Philippines
    Posts
    1,061
    Hey Aleo, seems your jumping in all the way. I'd actually be interested in being part of the modding outfit, just that it seemed John still has to get the tool/s fully fleshed out. I'll send you an email so I can see how I can help out

  9. #109
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    John,

    It seems that the JSON files of the game are all (?) loaded upon launching the client. Consequently, making any change to them while the game is running requires the closing-and-reloading of the client, which is time consuming... Is there anyway to skip this, and "reload" only a particular JSON? That would considerably facilitate debugging, especially for stuff like abilities***. Taking it even further, is it possible to save/load at the start of a battle, with the board and all units loaded and waiting at deployment?

    Thanks

    *** Speaking of abilities, I've started some more serious tests on modding them, with a small ground-breaking triumph: Now, resting a unit grants +1WP and +1STR!

    For those interested, you'll just need to edit assets\common\ability\_ability_index.json.z\ and, at the effects of the id:abl_rest ability-entry, just add one more CHANGE_STAT operation, as follows:
    Code:
    {
    "effects": [
            {
              "name": "change",
              "ops": [
                {
                  "id": "CHANGE_STAT",
                  "name": "change",
                  "params": {
                    "amount": 1,
                    "amount_stat_bonus": "REST_WILLPOWER",
                    "stat": "WILLPOWER"
                  }
                },
                {
                  "id": "CHANGE_STAT",
                  "name": "change",
                  "params": {
                    "amount": 1,
                    "stat": "STRENGTH"
                  }
                },
                {
                  "id": "CHANGE_STAT",
                  "name": "change",
                  "params": {
                    "amount": 0,
                    "amount_stat_bonus": "REST_ARMOR",
                    "stat": "ARMOR"
                  }
                }
              ],
              "phantasms": [
                {
                  "applyTime": 0,
                  "endTime": 0,
                  "results": [
                    "OK"
                  ]
                }
              ]
            }
          ],
          "id": "abl_rest",
          "maxMove": 0,
          "rangeMax": 0,
          "rangeMin": 0,
          "rangeType": "NONE",
          "tag": "END",
          "targetCount": 1,
          "targetRule": "SELF"
        },
    Together we stand, divided we fall.

  10. #110
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Here's my latest mod video description -- https://www.twitch.tv/aleonymous/c/5040209 (with voice-over; sorry! )



    What I did there is make the tutorial-battle (saving the Governor of Strand form the Skalfing chieftain's attack) fully-playable, without the annoying click-to-continue stops all the time Now, the Skalfing chieftain is equipped with a dedicated portrait, rank-3 Bloody-Flail, 15STR and a tendency to walk the length of the firepit! He also got four lackeys with full raider-like stats. They are pitted against a consistently statted Gunnulf (15STR/7ARM and 0EX!) and the now-named rank-0 Shieldbanger called "Sven" (no inspiration there; who wants to be him?). Ubin, lounging against the great-pillar, will have a much more interesting spectacle

    Most of my edits where on the \assets\saga1\scene\part1\btl_tut_greathall\btl_tu t_greathall.json date-file (actually just removing the line "tutorial": "game.saga.TutorialBattleStrandGreatHall" for the end, does the battle normally playable!), where, interestingly, the firepit-damage triggers were missing and had to be added. I also added two new character-classes (at \assets\common\character\character_classes.json), two cast-characters (at \assets\saga1\cast1.json) and localization-entries (Sven etc) along with fresh new portrait PNGs for the Chieftain and his backbiter-like henchmen.
    Last edited by Aleonymous; 03-01-2015 at 10:06 AM. Reason: updated steam snapshot image/link
    Together we stand, divided we fall.

  11.   Click here to go to the next staff post in this thread.   #111
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    I'm working on making modding a little easier. Documentation in progress, and Zeno update incoming:

    https://docs.google.com/document/d/1...it?usp=sharing

  12. #112
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by John View Post
    I'm working on making modding a little easier. Documentation in progress, and Zeno update incoming:

    https://docs.google.com/document/d/1...it?usp=sharing
    Awesome! Thanks, John So, the operations you are describing on the google-doc above are not yet available? If so, is there an ETA? Will they come with the official release of patch#2, or with an update to the localization-beta build?

    EDIT: I see that Zeno doesn't allow for ability tweaking. That makes sense, as it's far more complicated than adding "content" like dialogue, characters, battles etc (that are based on existing "entities"). Thankfully, I've started drafting a walk-through to ability modifiers and parameters, that I stopped when Zeno was announced... It seems that it might come in handy after all

    EDIT#2: Hmmm, OK. It seems that this "Mod Content" free-DLC is not yet become available to download/install. That must be the key-component you said was still missing. So, I guess we'll have to wait for that...
    Last edited by Aleonymous; 06-11-2014 at 12:54 PM.
    Together we stand, divided we fall.

  13. #113
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    @John -- I have a modding related question, in case you're still watching this thread Here goes: Do we have access at the 'formula' by which the game translates the 'danger' parameter of a battle into the number & rank of enemy units, as well as the deployment zone chosen? I understand that the types/classes of the units are determined by the 'buckets', so that shouldn't be part of that the 'formula'. Specifically, I would be interested to see if the number of heroes fielded, and/or their classes and stats, are taken into account here. For example, does the game spawn the same enemy team (putting the RNG aside for now) if the player chooses to bring six heroes or if he brings just two? It would be cool if the control-parameters of that formula were 'brought out' to an editable JSON file, to experiment with...

    As you suspect the reason I'm asking is the persistent remarks (appearing at each sales at the Steam forums) about the abuse of the 'Maim; Don't Kill' (MDK) strategy allowed by the turn-system. I keep arguing that this turn-system is fine in its core, and it just requires other tweaks/additions to mitigate its problems. Such additions could be, for example, (a) more battle-ending objectives, (b) more STR-independent damaging abilities for enemies, (c) smarter AI that maybe uses MDK itself.
    Together we stand, divided we fall.

  14.   Click here to go to the next staff post in this thread.   #114
    Technical Director John's Avatar
    Join Date
    Apr 2012
    Location
    Seattle, WA
    Posts
    413
    The Danger formula is in code and there aren't any parameters to affect it from scripting.

    The number and composition of the player's hero party does not affect battlefield bucket spawning. It simply spawns enemies from the bucket such that the sum of the enemy Ranks equals the Danger.

    Note that if the battlefield has any valid spawners, then these spawners are activated first and the ranks of the spawned enemies included in the total count of ranks.

    Note that in the camp training tent, the player's team composition _is_ considered, as it tries to give you a matchup that is relative to your party.

  15. #115
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Thanks for your prompt response!

    Quote Originally Posted by John View Post
    The Danger formula is in code and there aren't any parameters to affect it from scripting.

    The number and composition of the player's hero party does not affect battlefield bucket spawning. It simply spawns enemies from the bucket such that the sum of the enemy Ranks equals the Danger.
    Hmm, I see. However, I think that the game's balance would profit from a Factions-like approach, where (a) the two teams have the same number of units and approximately the same classes and (b) 'danger' acts as a modifier to the power of the enemy team, i.e. the ranks of the units, like the Underdog mechanic in Factions matchmaking. Hero ranks {1,2,3,4,5} map to enemy ranks {a,a,b,b,c}, respectively. Hero classes can be directly mapped to Dredge classes; when the bucket doesn't contain 2x2 units, then two grunts map to one Varl etc. For example, if the enemy fields three male-humans, two archers and one Varl then the Dredge team is made up of three Grunts, two Slingers and one Stoneguard/Scourge. You get the idea. Anyway, I guess it's just another way to do it...

    Quote Originally Posted by John View Post
    Note that in the camp training tent, the player's team composition _is_ considered, as it tries to give you a matchup that is relative to your party.
    I see how this is much easier to do, building on the Factions experience and the fact that you match units from the same classes. Human+Varl vs. Dredge is a bit more tricky, indeed. Now, coming back to modding, I guess the only way to try to implement the above mechanic for vs. Dredge fights is by massaging the 'danger' parameter Nevertheless, we'd also need access to variables that measure the player's team composition: (a) number of units, (b) classes, (c) ranks... And even if that was in hand, how would we massage 'danger'? Oh, it sounds un-do-able
    Together we stand, divided we fall.

  16. #116
    can someone make an endless camp (hero tent and training tent) that will use a save game with all characters without making impact on the current save games on the user computer (so you could do some kind of fun training [in the training tent] with classes not in TBS:F and maybe make a team composed of both a level 5 egil and a level 5 onef or 2 alettes or etc)?

  17. #117
    Skald Aleonymous's Avatar
    Join Date
    Mar 2013
    Location
    Greece
    Posts
    2,444
    Quote Originally Posted by shigad View Post
    can someone make an endless camp (hero tent and training tent) that will use a save game with all characters without making impact on the current save games on the user computer (so you could do some kind of fun training [in the training tent] with classes not in TBS:F and maybe make a team composed of both a level 5 egil and a level 5 onef or 2 alettes or etc)?
    What you ask can be done quite easily, simply by editing a "Resume" type save-game, that was saved while in a camp so that the training tent is available. What you'd need to do is: go to that save-game JSON-file, find the respective caravan section (e.g. Rook's caravan, if the save was in Ch. 2, 4 or 6) and add the desired heroes and possibly new ones (e.g. for rank-0 units). You should also edit the hero stats, to promote them to higher-ranks or change their attributes.
    Together we stand, divided we fall.

  18. #118
    ok, thanks

  19. #119
    Backer soldtoscience's Avatar
    Join Date
    Jan 2015
    Location
    Massachusetts
    Posts
    9
    testing!

  20. #120
    Can you help me modding font ?
    https://stoicstudio.com/forum/showthr...3-Font-modding
    I'm translating this game to Vietnamese language. Thanks

Page 6 of 10 FirstFirst ... 4 5 6 7 8 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •