Jump to content

Gemini Ascendant Campaign


Nolgroth

Recommended Posts

  • Replies 3.8k
  • Created
  • Last Reply

Top Posters In This Topic

Re: Gemini Ascendant Campaign

 

ghost-angel is there any way I can get some sort of HTML export of those character sheets? Preferably' date=' I would like them to look like the standard 6th Edition sheet. That one rocks in its simplicity and utility. If you can manage that, great. If not, I will create a spreadsheet for that purpose. Might even do so anyway in order to have them handy for editing.[/quote']

 

I haven't checked in the last few weeks, but there wasn't one that existed last time I looked.

 

As soon as there is one, no problem.

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Actually she is closer to 30 meters. About the size of a C-130 aircraft' date=' and her cargo [ods attach into a belly nich similar in profile to a Sykorski Sky Crane.[/quote']Well I meant feet anyway, but being tired and rushed led to mistakes. So 30m. I'll work on it, though I would not expect much in the way of "really fast" FTL. Probably will be limited to the "slow" FTL of the "Ion" drives. (Which is funny considering how slow real Ion drives are forecast to be. Oh well, dramatic license and all that. )
Link to comment
Share on other sites

Re: Gemini Ascendant CampaignThis the functional code for the khalha blade. Note: While it is fully functional, it needs some explanation. I am posting it here for access as I am borrowing my son's monitor (mine died) during the transition back to my laptop.

[h: status=input (       "CSLs",       "GMmod",       "damCSL| |Combat Skill Levels to Increase Damage",       "maOCV| |OCV Modifier from Martial Arts",    "maDC| |DC Modifier from Martial Arts ",    "tDef||Target's Resistant DEF - MUST BE HARDENED||",    "callShot|0|Called Shot?|Check",    "shotLoc|Head,Head,Head,Hands,Arms,Arms,Shoulders,Chest,Chest,Stomach,Vitals,Thighs,Legs,Legs,Feet,Feet|Choose Hit Location|LIST|SELECT=0 VALUE=NUMBER",    "shots|1,2,3,4,5|Sweep Attack?|LIST|SELECT=0 VALUE=NUMBER")][h: abort(status)][h, if (callShot==1): location = shotLoc+3 ; location = "default"] [h, switch (location):    case 3: locPenalty = -8;    case 4: locPenalty = -8;    case 5: locPenalty = -8;    case 6: locPenalty = -6;    case 7: locPenalty = -5;    case 8: locPenalty = -5;    case 9: locPenalty = -5;    case 10: locPenalty = -3;    case 11: locPenalty = -3;    case 12:  locPenalty = -7;    case 13: locPenalty = -8;    case 14: locPenalty = -4;    case 15:  locPenalty = -6;    case 16:  locPenalty = -6;    case 17:  locPenalty = -8;    case 18:  locPenalty = -8;    default: locPenalty= 0][h: basekilling = 1d6 +1d3][h: getProperty (str)][h: dcStr = ceil (str/5)][h: dcCSL = ceil (damCSL/2)][h: dcMA = maDC][h: dcBon = dcStr + dcCSL + dcMA][h: DCBoost = floor (dcBon / 4.5) ][h: bonusDice = (DCBoost)d3][h: output = add (basekilling + bonusDice)][h: killing = output][h: numShots=shots +1 ][h: hitRoll =3d6][h: dcvHit=11+ocv+CSLs+GMmod+locPenalty-hitRoll][h: result = dcvHit+2]Khalha Blade
I rolled a [r: hitRoll].
Called Shot Penalty: [r: locPenalty]
[r, c (numShots,"
"), code:       {    [h: bodyDone = killing -tDef]    [h: result=result -2]    [h, if (callShot==0): hitLoc=3d6 ; hitLoc=location]    DCV Hit: [t: result]    to Location: [tbl ("hit_loc", hitLoc )] for [t: ceil (bodyDone * tbl ("bodyx", hitLoc ))] Body and [t: killing  * tbl ("stunx", hitLoc)] Stun       }]

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Yeah, based on her size and makeup, I expect her FTL to be more of a short range slow type thing. She was really designed to use the Star Carrier for her primary means of long range transport. She is more of a short range armed cargo transport. Probably more nimble, sublight than a larger vessel like destroyers or carriers, but not quite as fast or nimble as a real fighter.

Link to comment
Share on other sites

Re: Gemini Ascendant CampaignThanks for the macro code. I can use those as a base for all ranged and HTH killing attacks.Here is my explosion macro. It works great except for the sort sequence, which has me stumped. Every few rolls is will sort at least one of the damages out of sequence. And then it will work correctly for a couple rolls, then be out of sequence again. Other than that it works great. Maybe you can see what I am doing wrong.

[h:input("CSLs", "GMmod", "Rmod")][h: fail=input("dice | 1 | How many dice? | TEXT","type | killing, normal, stun_only, flash | What type of attack? | LIST | VALUE=STRING","type2 | pd, ed | What type of attack? | LIST | VALUE=STRING","stun_type | 1d3, x3 | StunX? (If killing attack) | LIST","step | 1 | How many meters per step? | TEXT")][h: abort(fail)][h: roll_list= "0,"][h, c(dice): roll_list=roll_list + 1d6 + ","][h: total=0][h, FOREACH(add, roll_list): total=total+add][h: body_list=""][h, c(dice+1): body_list=body_list + table("body_count", listGet(roll_list, roll.count)) + ","][h: body_total=0][h, FOREACH(add, body_list): body_total=body_total+add][h: stunx= (1d6)-1][h, IF(stunx==0): stunx=1][h: stunx=if(stun_type==0, stunx, 3)]I attack with my hand grenade
I hit DCV [(11+ocv+CSLs+GMmod+Rmod)-3d6]
[r, for(dc, dice, 1, -1, ""), IF(type=="killing"), CODE: {[h: dam= eval("0 +" + table("dckilling", dc))][r: "*Killing(" + type2 + ") body/stun at " + (dice-dc) + " meters: " + dam + "/" + dam*stunx + "
"]}]
[r, c(dice, ""), IF(type=="normal" || type=="stun_only"), CODE: {[h: step_body_total=body_total][h: step_total=total][h: subtract= roll.count+1][r, IF(type=="normal"):"*Normal(" + type2 + ") body/stun at " + roll.count*step + " meters: "; "*Stun Only(" + type2 + ") stun at " + roll.count*step + " meters: "][h, c(subtract, ""): step_body_total=step_body_total-eval(listGet(body_list, roll.count))][h, c(subtract, ""): step_total=step_total-eval(listGet(roll_list, roll.count))][r, IF(type=="normal"): step_body_total + "/" + step_total + "
"; step_total + "
"]}]
[r, c(dice, ""), IF(type=="flash"), CODE: {[h: step_body_total=body_total][h: subtract= roll.count+1][r: "*Flash body at " + roll.count*step + " meters: "][h, c(subtract, ""): step_body_total=step_body_total-eval(listGet(body_list, roll.count))][r: step_body_total + "
"]}]

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Well you are welcome to the khalha code but I am going to change it pretty drastically. I don't like my damage adding method and it struck me that I could arrange a switch that translates DC into either Killing or Normal damage much more accurately that my current method.

 

Right now I have it adding whole 1/2d6's instead of of +1, +1/2d6, +1d6. It was relatively easy to code and gets somewhere in the ballpark, but also has some problems. If I do the switch, then it basically equates to me imputing the DC table from HERO Rules. The macro adds up all the DC (base + added damage / Total Advantage value) and then spits out exactly the correct dice needed to roll. That would be in line with the HERO mechanics a lot more than what I presently have.

 

And the bonus is, if I don't get the HEROcentric macro done in time for Wednesday's game, we can still fake it appropriately enough with the current one. And when we switch over, it will only be a few slight changes to the interface to get used to.

 

And, as another bonus, we can input Aid/Succor bonuses seamlessly.

 

Nice code on the grenade. Is it for Normal, Killing or either?

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

That is for a killing explosion.

 

I came across another thing we might want to consider, Doc has damage negation, and I assume we will run across the occasional bad guy that has it too. The way it works is you subtract however many DCs of damage negation from the damage roll of incoming attacks. The book says you reduce thew DCs before the damage roll. So in Docs case you would subtract 1 dc from any incoming attack. I am not sure how to approach this from a macro point of view.

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

I came across another thing we might want to consider' date=' Doc has damage negation, and I assume we will run across the occasional bad guy that has it too. The way it works is you subtract however many DCs of damage negation from the damage roll of incoming attacks. The book says you reduce thew DCs before the damage roll. So in Docs case you would subtract 1 dc from any incoming attack. I am not sure how to approach this from a macro point of view.[/quote']Well that is easy enough. You enter in somewhere in one of the input fields a -n where n is the levels of damage negation.
Link to comment
Share on other sites

Re: Gemini Ascendant CampaignAnd here is the updated code for the khalha blade. I added in some comments that I think are important. In regards to the damage negation thing, choose a -n and put it into maDC. I am loathe to put any more inputs as this is a pretty hefty list that covers just about everything. Of note, you would have to hard code in if the damage is Armor Piercing or Pentrating. With some modification to the code, we could probably handle Stun only attacks. For the moment, I figure we just ignore the Body done in those cases.What I would have liked to have done is roll the DC table up into another macro and called it with the MACRO option. The only problem is that it only accepts and returns a single value. The accepting part is okay, that would be finalDC. The output; killingBody, normalStun, normalBody would be a problem. I tried using a stringPropertyList, but that didn't work out as well. That's supposed to be the way you can do it (or use JSON) but I am just not able to get it to stick.EDIT: You can also take out the selection for Killing or Normal damage. I put it in there to be a prototype for all melee weapons.EDIT 2: It just struck me that we should likely have a STR Min field. I really wish that I could figure out the macro calls. We could hypothetically add a stringList to the token properties that would allows us to track which Standard and Martial maneuvers a character has and automatically call up the OCV and DC modifiers without having to manually enter them. For that matter, having a stringList of weapons that each character has would be cool too. I think it would be more intuitive to say " I attack with my khalha blade using the Fast Strike maneuver" than " I attack with my khalha blade (selects macro) using the Fast Strike (inputs +2 OCV and +2 DC) maneuver." Probably quicker too.Then again, I was trying to keep things fairly simple. Sheesh. Gotta find that "just right" balance between utility and complexity.Final EDIT: Okay. Did some code simplification. Added Strength Min. At the moment, everything must be hard coded for each new weapon. I left in the Normal vs Killing damage selection for those weapons that either have multiple sections or can be used either way. I left the default on killing since most of what we do falls into that. I commented everything. Probably put too many comments in. I just want to be able to look over the code later and remember just what the heck I was doing.

[h: status=input (   	"CSLs",   	"GMmod",	"maOCV| |OCV Modifier from Martial Arts",   	"damCSL| |Combat Skill Levels to Increase Damage",   	"maDC| |DC Modifier from Martial Arts ",	"dmgType|Normal,Killing|Choose Damage Type|LIST|SELECT=1 VALUE=STRING",	"rDef||Target's Resistant Defense (rPD or rED)||",	"tDef||Target's Total Defense (PD or ED)||",	"callShot|0|Called Shot?|Check",	"shotLoc|Head,Head,Head,Hands,Arms,Arms,Shoulders,Chest,Chest,Stomach,Vitals,Thighs,Legs,Legs,Feet,Feet|Choose Hit Location|LIST|SELECT=0 VALUE=NUMBER",	"shots|1,2,3,4,5|Sweep Attack?|LIST|SELECT=0 VALUE=NUMBER")][h: abort(status)][h, if (callShot==1): location = shotLoc+3 ; location = "default"] [h, switch (location):	case 3: locPenalty = -8;	case 4: locPenalty = -8;	case 5: locPenalty = -8;	case 6: locPenalty = -6;	case 7: locPenalty = -5;	case 8: locPenalty = -5;	case 9: locPenalty = -5;	case 10: locPenalty = -3;	case 11: locPenalty = -3;	case 12:  locPenalty = -7;	case 13: locPenalty = -8;	case 14: locPenalty = -4;	case 15:  locPenalty = -6;	case 16:  locPenalty = -6;	case 17:  locPenalty = -8;	case 18:  locPenalty = -8;	default: locPenalty= 0][h: baseDC = 5] [h: strMin = 5] [h: getProperty (str)][h: adjStr = str- strMin][h: dcStr = ceil (adjStr/5)][h: dcCSL = ceil (damCSL/2)][h: dcMA = maDC][h: dcBon = dcStr + dcCSL + dcMA][h: DCBoost = floor (dcBon /3 ) ] [h: finalDC = add (baseDC + DCBoost)][h, switch (finalDC):	case 0: killingBody = 0;	case 1: killingBody = 1;	case 2: killingBody = 1d3;	case 3: killingBody = 1d6;	case 4: killingBody = 1d6+1;	case 5: killingBody = 1d6+1d3;	case 6: killingBody = 2d6;	case 7: killingBody = 2d6+1;	case 8: killingBody = 2d6+1d3;	case 9: killingBody = 3d6;	case 10: killingBody = 3d6+1;	case 11: killingBody = 3d6+1d3;	case 12: killingBody = 4d6;	case 13: killingBody = 4d6+1;	case 14: killingBody = 4d6+1d3;	case 15: killingBody = 5d6;	case 16: killingBody = 5d6+1;	case 17: killingBody = 5d6+1d3;	case 18: killingBody = 6d6;	case 19: killingBody = 6d6+1;	case 20: killingBody = 6d6+1d3][h: normalStun= finalDC+d6h]  [h: normalBody= finalDC+d6b] [h: numShots=shots +1 ][h: hitRoll =3d6][h: dcvHit=11+ocv+CSLs+GMmod+locPenalty-hitRoll][h: result = dcvHit+2]  Khalha Blade
I rolled a [r: hitRoll].  
Called Shot Penalty: [r: locPenalty]  
[r, c (numShots,"
"), code:   	{	[h, if (dmgType == "Normal"): bodyDone= normalBody - tDef;  bodyDone = killingBody -rDef]	[h: result=result -2]	[h, if (callShot==0): hitLoc=3d6 ; hitLoc=location]	DCV Hit: [t: result]	to Location: [tbl ("hit_loc", hitLoc )] for [t: ceil (bodyDone * tbl ("bodyx", hitLoc ))] Body and [t, if (dmgType == "Normal"): normalStun * tbl ("nstunx", hitLoc) ;  killingBody  * tbl ("stunx", hitLoc)] Stun   	}]

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

One more note on the autofire and kahla blade macros..

 

On the Kahla blade it works intermittently. It will fire on 1 target everytime, but if you select to sweep more than one target sometimes it fires and sometimes it give the math error. I don't its a problem with the code, I think its a glich in MT itself and the way it is clearing the variable from memory.

 

On the Autofire it is consistent, I can select up to three shots and it fires... more than three and I consistently get the math error.

 

Also there are two types of autofire and both macros assume (hardcoded) the first type where there is a -2 DCV for each additional target/meter in the line of fire.

 

The second type that is not addressed is where you are firing multiple shots at a single target. In this case there is a cumulative -1 for each extra shot, and then all shots either hit or miss. For example if I AF 3 shots at Alvarez, I have a -3 to my OCV to hit and then either all three shots hit or miss.

 

I am going to post the math error to the RPtools board and see if there is a solution.

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Hmm... I am getting an illegal argument math.bigdecimal error on the Kahla blade if I select more than 2 on the sweep drop down' date=' and I get the same error if I select more than three shots on the J-88 Autofire macro.[/quote']One, make sure your Stack size is set to 2M. I don't think the macro is that big. Two, I get the same error if a token isn't selected. Try that. I'll run both again, but I've been able to do so without problems.
Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Went over the code line by line. If there is an error in the code, I am not sure where it would be. Both macros work fine for me as long as I have a character token selected. I normally test the macro from the Campaign window so I copied them over to a character token (Elvis in this case) and played with them there. Still ran flawlessly.

 

I can only guess that the Xss size has something to do with how they are responding.

 

Fixed the Charrel Laser Rifle macro. It now has a selection for Single or Multiple targets for autofire and accounts accordingly.

 

I have been leaving the server active so I can access it from work. I'll continue to do so in order for you to log in a test the macros there.

 

EDIT: Just discovered an "error" in the macro. Rather an oversight in the coding. Forgot to have the total defense subtract the Stun.:stupid:

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Good news. Rumble over at RPTools figured out the problem 'wolf was having. The original campaign file that 'wolf posted has an error in the tables. Where there are half dice, it has 1/2. It needs to have 0.5. I fixed that in the very early stages of this macro coding project and promptly forgot all about it until Rumble found it today. That is why I have not had any errors and 'wolf was. Whenever the BodyX table was hitting the 1/2 entry, it was feeding back an error. I'll post the updated campaign file in a short while. I need to tweak some more settings first.

Link to comment
Share on other sites

Re: Gemini Ascendant CampaignNew Laser Rifle code.This version:

  1. Armor Piercing has been added. It is only at a single level, so any Hardened defense is going to be a manual resolution.
  2. Re-wrote the code to implement the DC table that I used for the khalha blade macro. Adjusted the inputs to allow for Ranged Martial Arts maneuvers to add to the DC.
  3. Add input fields for target's Resistant and Total Defenses.
  4. Added some descriptive text to the input fields.
  5. Reworked the incremental reduction in the DCV hit to change between single (-1 per shot) and multiple (-2 per shot) targets.

This is probably the last version of the laser rifle I am going to work on. It will serve as the base code for any ranged attack. I was thinking for firearms, there could be an ammunition selector that adjusts parameters like Armor Piercing or extra DC. I may even have a way of increasing the stun multiple for that advantage. Maybe. I'll have to take a closer look.This is a somewhat complex macro with many input fields. I hope that it does not become too cumbersome to actually use.

[h: status=input (   "CSLs||Enter any Combat Skill Levels used to hit the target",   "Rmod||Range Modifier (enter negative number)",   "GMmod||Enter any situational modifiers assigned by GM",   "damCSL||Extra Damage Classes from Combat Skill Levels",   "maDC||Extra Damage Classes from Martial Arts or other methods",   "rDef||Target's Resistant Defense",   "tDef||Target's Total Defense",   "dmgLevel|Standard,High Intensity|Select Damage Level|LIST|SELECT=0 VALUE=STRING",   "callShot|0|Called Shot?|Check",   "shotLoc|Head,Head,Head,Hands,Arms,Arms,Shoulders,Chest,Chest,Stomach,Vitals,Thighs,Legs,Legs,Feet,Feet|Choose Hit Location|LIST|SELECT=0 VALUE=NUMBER",   "shots|1,2,3,,5,,,,,10|Number of shots fired?|LIST|SELECT=0 VALUE=NUMBER",   "numTargets|Single,Multiple|Single or Multiple Targets?|LIST|SELECT=0 VALUE=STRING")][h: abort(status)][h, if (callShot==1): location = shotLoc+3 ; location = "default"] [h, switch (location):    case 3: locPenalty = -8;    case 4: locPenalty = -8;    case 5: locPenalty = -8;    case 6: locPenalty = -6;    case 7: locPenalty = -5;    case 8: locPenalty = -5;    case 9: locPenalty = -5;    case 10: locPenalty = -3;    case 11: locPenalty = -3;    case 12:  locPenalty = -7;    case 13: locPenalty = -8;    case 14: locPenalty = -4;    case 15:  locPenalty = -6;    case 16:  locPenalty = -6;    case 17:  locPenalty = -8;    case 18:  locPenalty = -8;    default: locPenalty= 0][h, if (dmgLevel == "High Intensity"): numShots=1 ; numShots=shots +1 ][h: baseDC = 6] [h: dcCSL = ceil (damCSL/2)][h: dcMA = maDC][h: dcBon = dcCSL + dcMA][h, if (dmgLevel=="Standard"): DCBoost = dcBon ; DCBoost = floor (dcBon /1.5 ) ] [h: finalDC = add (baseDC + DCBoost)][h, switch (finalDC):    case 0: killingBody = 0;    case 1: killingBody = 1;    case 2: killingBody = 1d3;    case 3: killingBody = 1d6;    case 4: killingBody = 1d6+1;    case 5: killingBody = 1d6+1d3;    case 6: killingBody = 2d6;    case 7: killingBody = 2d6+1;    case 8: killingBody = 2d6+1d3;    case 9: killingBody = 3d6;    case 10: killingBody = 3d6+1;    case 11: killingBody = 3d6+1d3;    case 12: killingBody = 4d6;    case 13: killingBody = 4d6+1;    case 14: killingBody = 4d6+1d3;    case 15: killingBody = 5d6;    case 16: killingBody = 5d6+1;    case 17: killingBody = 5d6+1d3;    case 18: killingBody = 6d6;    case 19: killingBody = 6d6+1;    case 20: killingBody = 6d6+1d3][h: hitRoll =3d6][h: dcvHit=11+ocv+CSLs+GMmod+locPenalty-hitRoll][h, if(numTargets=="Single"): result = dcvHit+1 ; result = dcvHit+2][h, if (dmgLevel=="High Intensity"), code:     {    [rDef = rDef/2]    [tDef = tDef/2]    }]Charrell J-88 Laser Rifle
I rolled a [r: hitRoll].
Called Shot Penalty: [r: locPenalty]
[r, c (numShots,"
"), code:       {    [h: killing = killingBody]    [h: bodyDone = killing - rDef]    [h, if (numTargets == "Single"): result=result -1 ; result=result -2]    [h, if (callShot==0): hitLoc=3d6 ; hitLoc=location]    DCV Hit: [t: result]    to Location: [tbl ("hit_loc", hitLoc )] for [t: ceil (bodyDone * tbl ("bodyx", hitLoc ))] Body and [t: killing  * tbl ("stunx", hitLoc)-tDef] Stun       }]
[h, if (dmgLevel == "High Intensity"), code:     {    [output="Damage is Armor Piercing"]    [chargesUsed=2]    };     {    [output=""]    [chargesUsed=numShots]    }][r: output]
[chargesUsed]  Charge(s) used.

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Cool, I like the new macros all is working now. I fixed the 1/2 string error that you pointed out. Sorry I missed the server today... had grandson issues to deal with (he wanted me to take him to the park). In any case all is good and I will have completed Doc, TaRang, Wade tokens by Wednesday including weapons. I will have a basic ship toekn built too and then you can just tweak/add the properties and macros you desire.

Link to comment
Share on other sites

Re: Gemini Ascendant Campaign

 

Cool' date=' I like the new macros all is working now. I fixed the 1/2 string error that you pointed out. Sorry I missed the server today... had grandson issues to deal with (he wanted me to take him to the park). In any case all is good and I will have completed Doc, TaRang, Wade tokens by Wednesday including weapons. I will have a basic ship toekn built too and then you can just tweak/add the properties and macros you desire.[/quote']No problem. The server is persistently on as Windows will allow between crashes. You can log in whenever you like and toy with things. The DC in the macro code I posted is wrong I believe. I think it should be 9, not 6.

 

Confirm. 9 DC and only 3 shot bursts on Autofire. Macro fixed to represent.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...