Senior Member
|
Quote:
You can take the skill and the specialisation at character creation. If you do the specialisation stacks with the skill. i.e. attribute has 3 points, skill has 3 points and specialisation has 3 points. Final value for the skill is 6 points and 9 points for the specialisation. But you can take the specialisation without the skill. Once you are in the advancement phase of characters, increasing the skill does not increase the specialisation. And if you add a new specialisation, and have the skill, the specialisation adds the current (with advancements) value of the skill to the new specialisation. I am looking at using a field to store the skill value at specialisation creation time. I am currently playing with Advancements and figuring out how this part of the tool works. |
|
#11 |
Senior Member
|
|
#12 |
Senior Member
|
Understand now, it works as intended with the "then" simple syntax mistake
|
#13 |
Senior Member
|
Star Wars uses a Advancement style similar to Shadowrun's karma advancement.
How can you specify the cost to increase a skill based on the "rank" of the skill and not a default number? Same for attribute. |
#14 |
Senior Member
|
New Questions: Is it possible for an "Advancement" object to access the item it is advancing?
And if so how do you do this? (this is for determining the cost of upgrading skills and attributes) |
#15 |
Senior Member
|
Another question:
How can I change / set the race in the static form from he authoring kit from another item. example: - Star Wars has templates - Each template is assigned a race - I want to auto select the race when the template is selected or leave it blank if no template is selected |
#16 |
Senior Member
|
Syntax Question
If I have an optional linkage, how can I tell if the link exists in an "if" statement? |
#17 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,243
|
Quote:
What you're going to have to rely on here is that every advancement on the advances tab has that same script to add the actual bonus from advancement that's in the CanAdvance component in advancement.core, and that all advancements run that script in the order they're listed on the Advances tab, from oldest to newest. That means that if, in that script, you can tell your thing that it started life as a specialization that was added during advancement, you can have it look up the current value of the skill it's based on. Since all the scripts are running in order, that value will only have the bonuses from any advancements added to that skill before the "New Specialization" advancement was added - not those after. Those specializations that were added during character creation will have a different script on their component that looks up the user-added value + bonuses from races, etc., but not from advancement, and adds that to the value of the specialization. First, identifying whether a specialization was added during character creation or during advancement: Code:
origin.ishero = 0 So, in a script on the specialization component, you can look up the non-advancement parts of the associated skill and add them as a bonus to the specialty. Second, the advancement script. The first thing to do is to change the timing - you need it to come before the "Calc trtFinal" script, so that Calc trtFinal incorporates the amount this thing has been advanced, but since you also need to look up the user-added portion of the value (+ any bonus from races, etc. that apply to both the skill and specialty), you need your script to happen after the "Bound trtUser" script. So, Traits/1500 (or 2000 or 2500), if those other scripts are still using the timing from the Skeleton files. Then, in that script, you'll need to check whether the thing you're currently working on is a specialization added during advancement mode: Code:
if (tagis[component.SkillSpec] <> 0) then if (origin.ishero = 0) then field[spAssocSkl].value += field[trtUser].value + field[trtBonus].value + other values you need to sdd P.S. I like to use something other than trtBonus to store the bonus from advancement - I find it helpful to have the bonuses from races, etc. in trtBonus, and the bonuses from advancement in trtAdvance, or something like that, to make it easier to track down what came from what when I'm debugging. |
|
#18 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,243
|
Quote:
This is handled in the same script that's adding the +1 to that skill/attribute - that way, the cost you're calculating is based on that advancement, and all the advancements to the same thing that came before it, but not any of the advancements that came after it. I'm presuming that there's a fixed multiplier, and that all attributes have the same multiplier. All skills use the same multiplier as well (which is most likely different from the attribute multiplier). That value you can store on the advancement itself, in thing_advances.dat - add the following line to an advancement to get a x5 multiplier: Code:
<fieldval field="advCost" value="5"/> Code:
var basevalue as number ~advancements often need to reference their base value in a couple of different places, so put that in a variable now if (origin.parent.tagis[Advance.Increase] + origin.parent.tagis[Advance.Decrease] <> 0) then basevalue = linkage[basis].field[trtUser].value + linkage[basis].field[trtAdvance].value + linkage[basis].field[trtBonus].value + anything else that modifies the value that advancement cost is based upon endif if (origin.parent.tagis[Advance.Increase] > 0) then linkage[basis].field[trtAdvance].value += 1 origin.parent.field[advCost].value *= basevalue elseif (origin.parent.tagis[Advance.Decrease] > 0) then linkage[basis].field[trtAdvance].value -= 1 origin.parent.field[advCost].value *= basevalue endif Code:
origin.parent.field[advCost].value *= (basevalue + 1) |
|
#19 |
Senior Member
|
Thanks Mathias, I managed to get a little further than I thought over the weekend with this one, not sure if I am doing it right but it seems to be fairly stable.
What I have done is created a trtRacial field for all traits and a skSpecial field for skills where I add the value of the linked skill (only specialisations have linked skills). This seems to work well except for when adding a specialisation to a skill that has already been advanced as I need the advanced value at that time. I have some issues with how to determine if the linked skill is attached to the hero, and what the value of the skill is at the time a specialisation is created. This for determining the point cost of the skill, and the bonus it receives from the base skill. |
#20 |
|
|