Senior Member
Join Date: Jun 2010
Location: Florida
Posts: 235
|
In this setting, we don't have the usual Arcane Backgrounds. But a player can take an Edge that grants One power at selection. So I need to create a dropdown box when they select the Edge, that has a list of available powers.
I have this: <fieldval field="usrCandid1" value="component."/> Not sure how I direct to the Power list (if possible at all) <tag group="ChooseSrc1" tag="Hero"/> Or should this be Container or Things I am able to make my own select lists using something like this, never tried to pull from an existing list of something. Cheers |
#1 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Note that this will ignore any requirements that you might have for a power, including the Rank.
Menu #1 Source: All Things Menu #1 Tag Expression: component.Power I have not played with ways to narrow it down, to Novice only for example. What I did in my house rules was to make it so that rank gives a skill bonus or penalty. Novice casting Novice is +0, but is at +1 for every Rank above Novice. Novice casting higher than Novice is at a penalty equal to the rank difference. I figured that this still allows Novice characters to potentially know more powerful Powers, but it is harder, and the more experienced casters can cast the "easy stuff" quite easily. I put this Rank-checking modifier into a New Powers edge Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#2 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Oh yeah. It will also not show up on the Powers list. The only reference to it will be the Edge that selected it. That is fine for me, as the power summary list is only somewhat useful. It is often that we will just look up the power in the book as it is. There is often information that the quick summary lacks.
Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#3 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
I'm not entirely clear on how to program an Edge that gives a character a single, specific power and a few power points; I'm guessing using the regular Super Power Arcane background as a template is a good place to start, but its supposed to be one specific power (Boost Trait), no others, and no ability to apply any other Arcane modifiers.
On a similar, but unrelated note, I'm getting near the time when I want to do my XCOM psionics, which is a tier of four levels of ability, each of which comes with, and costs, some Power Points. It appears, if I'm reading it right, that I'm going to have to do this by bootstrapping Arcane Background, then having the Background access the powers, with the powers presumably have selection limits placed on them? I could do it just by the Edges themselves, but it appears if I do that the program won't display the power point anywhere, even if I use code to put them on the character. |
#4 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Power Points will show up if you put them somewhere else. For example, for my Magician, I have it show its own total of Power Points, and it adds to them by looking for the Power Points edge.
If you were to use spend them on other edges, say these Psionic Powers that you mention, you can by having it subtract points. Make up an edge called whatever, here I will call it Psionic Dude. This will show the total Power Points, and in this case, also the points that are spent. You can make an edge be free by giving it a cost of 0, and then have the Psionic Dude edge look for these other powers and apply a cost to them. The cost would be easiest to hard-code into the eval script of Psionic Dude. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#5 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
The power limitations based on Arcane Background are ignored if you add a power as listed a few posts above. That will just look through the power list, regardless of their requirements or rank. You could probably add some more limitations into the Menu Source syntax but I have not tried.
Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#6 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Quote:
So honestly, some of what you're answering adds up to "You can deal with the problem of the walls by flying." Well, yes, I'm sure that's true but... |
|
#7 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
To make it clear, since I was tired last night and more than a bit incoherent, I'm not sure how to tell a trait to display its power points in an obvious way, nor how to tell it to do a counter. Even the items you and Gumbytie posted earlier suffer from it not being clear whether these should be evalscripts or exactly what.
|
#8 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
At first I learned by seeing how something similar was done. I had not started programming until about two or so years ago. It just comes with practice.
For this example, we will assume that you can take Power Points once per rank. Hero Lab checks for validity after the fact, which is kind of silly. so I prefer to make up a new power points edge for each rank. Also, I will make up a power, assuming that you want it to spend the Power Points as described. You could probably make it complain to you if you spend too many or too few, but really, just look at the sheet and confirm that it is correct. Anyway, you want an eval script for your Psionic Dude edge. Traits 5000 (I find that this is good because it lets other things exist first). Code:
~Determine Total Power Points var PowP as number var Legendary as number var SpentPP as number PowP = 10 Legendary = 0 SpentPP = 0 ~Check for Rank-limited PP if (hero.tagis[Edge.edgPPPsi1] = 1) then PowP += 5 endif if (hero.tagis[Edge.edgPPPsi2] = 1) then PowP += 5 endif if (hero.tagis[Edge.edgPPPsi3] = 1) then PowP += 5 endif if (hero.tagis[Edge.edgPPPsi4] = 1) then PowP += 5 endif ~Check for Legendary PP foreach pick in hero from Edge if (eachpick.tagis[Edge.edgPPPsi5] <> 0) then Legendary += 1 endif nexteach PowP += Legendary * 5 ~Spend the PP on Powers ~Must specifically list powers here unless you play with tags if (hero.tagis[Edge.edgESP] = 1) then SpentPP += 5 endif foreach pick in hero from Edge if (eachpick.tagis[Edge.edgESPRng] <> 0) then SpentPP += 2 endif nexteach ~Print the results field[livename].text = "Psionic (PP " & PowP & "/ Spent " & SpentPP & ")" In my example I used ESP and ESP Range. You can have the ESP check the ESP Ranged edge as well and display the total range, similar to how I did above. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#9 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
I understood some of that, but I'm not sure I'm not having semantic confusion in part; first of all, the use of "Legendary" in that isn't particularly clear to me (I'm assuming it references the Legendary levels of advancement, but at that point I'm not sure what the purpose of the "Legendary = 0" is, and I'm not sure I understand how what you've done will create a power-point tracker, where it'll be or what it'll look like. It looks like you're adding some sort of automatic power points via rank, but I'm not quite sure why.
|
#10 |
|
|