Advertisement Create a free account

Multiple initiative values for a single character?

1537488265
Kraynic
Pro
Sheet Author
I am running the old Palladium Fantasy rpg.  At 1st level, everyone has 1 attack per melee turn.  As characters progress, they gain more.  This makes generating an initiative order interesting, because they don't use all these attacks at once like in D&D or Pathfinder.  Basically, each initiative for each character needs to be 20 below the previous.  I have already thought about altering the initiative macro (with a +60) so I'm not always in negative numbers.  So someone with 3 attacks rolls a 19.  They would be on the tracker at 79 for their first attack, 59 for their second, and 39 for their third. With this example, everyone engaged in that combat would have an attack/action in the 61-80 range, anyone with a second attack would act within the 41-60 range, anyone with a third attack would act within the 21-40 range, etc. until everyone has used all their attacks/actions. I could make multiple tokens for a character sheet, and dump them on the GM layer so that they wouldn't clutter up the screen for the players.  PlayerA would still be on the token layer, but PlayerA2 and PlayerA3 would be on the GM layer.  The player could roll their initiative.  Then I could write up a macro that allows me to select each copy, enter the original initiative roll, the macro would subtract 20 from that roll, and post it to the tracker.  I tried that and it works.  I can also see it as being a horrible pain in the rump once I get multiple npcs with multiple attacks.  I'd have the GM layer flooded with tokens who's only purpose is for me to generate an initiative roll. I could also just manually add turns, label them, and give them values.  This works also, and takes a bit of time, but might be easier than the multiple token idea. Is there an easier way to go about this?
1537495682

Edited 1537500421
The Aaron
Forum Champion
API Scripter
I haven't tested this yet, but it should let you select tokens and run: !dup-turn 3 to give a token multiple turns, each 20 less than the highest.  (3 would give it the token 3 total turns, turn order of 79 would yield 79, 59, 39) script: on('ready', () => { const multiplyTurn = (token_id,count) => { let to = JSON.parse(Campaign().get('turnorder')||'[]'); let turn = {pr:-10000}; to = to.filter((o) => { if(o.id !== token_id){ return true; } if( o.id === token_id ) { if(o.pr>turn.pr) { turn = o; } } return false; }); if(turn.id){ [...Array(parseInt(count)).keys()].forEach((n)=>{ to.push(Object.assign({},turn,{pr:(parseInt(turn.pr)-(20*n))})); }); } Campaign().set({ turnorder: JSON.stringify(to.sort((a,b)=>parseFloat(b.pr)-parseFloat(a.pr))) }); }; on('chat:message', (msg) => { if( 'api'===msg.type && /^!dup-turn/.test(msg.content) ){ let args = msg.content.split(/\s+/); let count = args[1]||2; msg.selected.forEach((m)=>multiplyTurn(m._id,count)); } }); }); If a token already has multiple turns, it will remove the duplicates and replace them with new duplicates.  It sorts the turn order from highest to lowest when it makes the change.
1537497564
Kraynic
Pro
Sheet Author
Thanks!  I will give it a try this weekend when I have time.
1537500436
The Aaron
Forum Champion
API Scripter
Tested and revised!  Should work now. =D
1537554329
Kraynic
Pro
Sheet Author
I ended up having time to mess with this earlier than I thought.  It works good written up as a macro with a query for how many attacks/actions I want that token to have.  Very nice!
1537561595
The Aaron
Forum Champion
API Scripter
Great!