W40K-RPG_FW MOVED TO NEW THREAD

MapTool campaign files that encapsulate properties, tokens, and macros for a particular ruleset or game world. "Framework" is often abbreviated "FW".

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice

Forum rules
This forum is LOCKED. If a thread belongs here, use the "Report" feature of the post to let a moderator know to move it. General discussion should occur in the User Creations or MapTool forums.
Locked
User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

wow,

fat compliment, bug report, improvement suggestions, feat request and initiative to broaden the spectrum (wiki:DH) in one post. You nailed everything I created this thread for in one post, kudos!

so the answers:
Questions/Bugs
1) Does the "called shot" box currently deduct the -20? It seems as if it doesn't.
2) Weapon jams and their associated unjamming rolls don't seem to show up in global chat, so when my players jam and try to clear jams I can't see it.
3) I guess there is no way to target another token for your attack, so that the damage is automatically applied? Assuming this is the case, would it be possible to add a section for armor penetration to the Take Damage screen?
4) The Value for Critical States popup that appears when damage exceeds wounds is confusing. No matter what I enter I get a "java.lang.NumberFormatException: For input string: "Impact" error executing expression val = json.get(val, fld)." error.
1. could well be, will check it
2. yes... it does and not only that, also reloads, out of ammo and other stuff, that will be a pain to fix cause the macro is very very long and there is no way to break it off AND still show output to chat. Ofcourse its possible but very hard to establish AND might make the code really incomprehensible. Still Ill have a look
3. yes there is a way to target, rumble once started on it (very rudimentary) its quite a big task and more importantly not something I want, because my players like to roll dice and keep track of chars themselves. So unless someone else picks this up, its not gonna happen. Penetration, funny cause I was just working on that, I noticed I forgot that part, the rules about penetration though are non existent concerning cover and refraction shields, but I've house ruled these.(All AP are stacked, pen is deducted then damage is applied)
4. hmm I don't, can you give a step by step breakdown of what you do exactly?

Feature Requests
1) Rules to turn off Righteous Fury (rolling a 10 on 1d10) for npcs, as the Core rules suggests. With perhaps an optional toggle to renable it for some npcs. Ex: An Enable Righteous Fury checkbox on the attack popup screen that is unchecked by default if the token is an npc and checked by default if the token is a pc.
2) Showing the full break down of rolls would be incredibly awesome. Meaning, show the individual die results, plus each modifier added, preferably labeled, in the roll results. Could be a campaign toggle but would be great. So:

Modifiers: rangeMod = 10, miscMods = 30
Bob makes standard attack with Autogun with a fire selector Rolling against BS 74 (+40 modifiers).
Result: 42 Target is hit in the left arm and takes 10 Impact damage.

Would become:

Bob makes standard attack with Autogun with a fire selector
Rolling against a BS 74 [Base: 34 + short range: 10 + Half Aim: 10 + Misc: 20]
Result: 42 Target is his in the left arm and takes [1d10+4] = 10 Impact damage

It's a bit more verbose but it would very much help players understand the system, as well as make potential bugs more visible. Perhaps only show players this full text for pc's and gm's the full text for all tokens (if possible).

3) Allow for hidden rolls. Give the gm the option to have skill/attribute tests or other interactions send their results to the gm only, the same way [gm:1d10] would do for example.
1. I guess thats doable, ill have a look (note the growin list here ;)
2. yes.. that would be something. A week ago I downloaded rumbles latest submission of his D&D framework and noticed the tooltip with exactly what you mention and thought 'thats pretty s(l)ick. The sick part is the humungous amount of work it implies. I'll add it to the list though
3. that would require more buttons... how exactly would you want this, can you make a suggestion of the implementation (what how and where)
Finally perhaps it would be a good idea to set up a wiki (I wouldn't mind doing this) for your Dark Heresy Framework. There is quite a lot to learn for new users and maybe a wiki would help out with that, I would certainly be happy to contribute. Additionally we could share campaigns and assets there. I went through your campaign sharing from the original post, but I found having to deal with that service to be pretty off-putting. I'm sure we could find some other solution for sharing files that works a bit more fluidly.
You have my full support, but im not gonna set it up. First of my wiki-fu is void, I've tried to do some work in the existing MT wiki and had great trouble to do even that. If you set it up though I'll tag along. We could start with adding my houserule for suppressing fire, which was a real pain in the b#t to make

As for sharing campaigns... its not THAT bad, is it? Im all in for a better system, but this is what I currently could come up with. If you can setup a better way though, that would be awesome.

In all thnx for the great feedback!!

druski
Cave Troll
Posts: 98
Joined: Thu Jul 15, 2010 6:23 am

Re: [Framework] [Dark Heresy] Version 1.4

Post by druski »

wolph42 wrote: 1. could well be, will check it
2. yes... it does and not only that, also reloads, out of ammo and other stuff, that will be a pain to fix cause the macro is very very long and there is no way to break it off AND still show output to chat. Ofcourse its possible but very hard to establish AND might make the code really incomprehensible. Still Ill have a look
3. yes there is a way to target, rumble once started on it (very rudimentary) its quite a big task and more importantly not something I want, because my players like to roll dice and keep track of chars themselves. So unless someone else picks this up, its not gonna happen. Penetration, funny cause I was just working on that, I noticed I forgot that part, the rules about penetration though are non existent concerning cover and refraction shields, but I've house ruled these.(All AP are stacked, pen is deducted then damage is applied)
4. hmm I don't, can you give a step by step breakdown of what you do exactly?
I've started looking through the macro code, still getting to grips with how maptool does it, but it doesn't look *too* crazy.

1. CalledShot: I think the calledshot bug is because in CustomRangedAttack some of the time the calledShot variable is called "calledSHot" which if this is case sensitive, is probably the problem.
2. Print All Combat Info To Chat: I see you are using asserts to halt the progress of the script. I would guess one hacky way to do it would be to add the printed chat commands inside the if statements or as if statments themselves immediately before the assert line. So:


[assert(0, text+" Fail, weapon is still jammed", 0)]

would become:
"Fail, weapon is still jammed"
[assert(0, text+" Fail, weapon is still jammed", 0)]

I am going to try this out in my copy and see how it goes. I've *just* started taking a look at this stuff so I might be totally off base of course ;)

3. Target Damage: I can see what you mean. Perhaps instead of trying to impelement a targeting system, the TakeDamage macro could offer to use the damage caused by the last attack? So if person X shoots, the info about the attack (dmg, penetration, location, dmg type, etc) are stored into a variable which then TakeDamage accesses? I saw you do something similar to this with CustomRangeAttack to use the previous attack as a default. Might take a look at this myself too.
4. Critical States: Hmm I checked it out with Nihilus Faine in your base frameworks, and it works properly. This brings up a point though, how do I upgrade existing tokens with the updated macro code? For example my tokens with the broken critical states also lack the new pinning and cover buttons.


1. Righteous fury: I might take a look at doing this too, as it would be another good learning experience.
2. Verbose rolls/tooltips: Which framework is it that includes it?
3. Hmm, yeah I guess I need to think this one out some more.


I'm interested in poking around the code but I don't want to step on any toes, so let me know if you think I should avoid certain areas, or there are things you are already working on. As for the wiki, I'll see about setting one up and getting some basic info in there.

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

Ok. First off, before we start doing stuff double, heres my log up to now:
Basically rewrote Damage macro:
- added penetration to the damage
- added a lot of verbosity output when calculating damage
- made handling of refractor shield in damage macro more efficient
- fixed bug in damage handler concerning warp-type weapons vs power armour
- made handling of armour in damage macro more efficient

- somehow surestrike had made its way into ranged attack, this has been fixed
- called shot penalty wasn't applied for ranged shots, fixed (was tied with surestrike)
- added some verbosity in input screen for called shot penalty in case of deadeye shot and sharpshooter talents
- charsheet now shows entries sorted
- added explanatory texts to tokens on the base map
- fixed a couple of bugs in cover
- changed arm and leg to arms and legs in crit table, so excel sheet is also updated
so calledshot is fixed.
1. CalledShot: I think the calledshot bug is because in CustomRangedAttack some of the time the calledShot variable is called "calledSHot" which if this is case sensitive, is probably the problem.
2. Print All Combat Info To Chat: I see you are using asserts to halt the progress of the script. I would guess one hacky way to do it would be to add the printed chat commands inside the if statements or as if statments themselves immediately before the assert line. So:
2. Wont work, the assertion aborts ALL output to chat. The only way to omit this is replacing the assertion with an if statement where you set a quit boolean.
Note that in the above example the assertion has already been made. The assert function is only used to abort.
Assertion works like : assert(check if true, 'print this text to chat if check is false' and abort proces,0). so assert(0,print this,0) will always abort and assert(1,print this,0), will never abort (nor will it print the text).
The best way to tackle this is by adding a variable [h:quit=0] and replace assertion with [h:quit=1], put text to chat and turn every if(check): statement into if(check && !quit):
Obviously you do not need to change the if statements within an if statement.

And now the problem :D
There are two types of if statement that need to be changed (actually there are 3 but the third one isn't relevant)

Code: Select all

[if(check && !quit):do if true; do if not true]
and

Code: Select all

[if(check && !quit), CODE:{
    [do if true]
};{
    <!--else-->
    [do if not true]
}]
all these if statements with an 'else' statements need to be changed into

Code: Select all

[if(check && !quit):do if true]
[if(!check && !quit):do if not true]
and

Code: Select all

[if(check && !quit), CODE:{
    [do if true]
};{}]
[if(!check && !quit), CODE:{
    <!--else-->
    [do if not true]
};{}]
Note by the way that only two levels of 'CODE' statements are allowed (so if(),CODE:{if(),CODE{}} is permitted but if(),CODE:{if(),CODE{if(),CODE:{}}} wont work. To get that working you need to create a new submacro, and call that one. However this shouldn't pose any problem as you're only splitting up if and else statements
3. Target Damage: I can see what you mean. Perhaps instead of trying to impelement a targeting system, the TakeDamage macro could offer to use the damage caused by the last attack? So if person X shoots, the info about the attack (dmg, penetration, location, dmg type, etc) are stored into a variable which then TakeDamage accesses? I saw you do something similar to this with CustomRangeAttack to use the previous attack as a default. Might take a look at this myself too.
4. Critical States: Hmm I checked it out with Nihilus Faine in your base frameworks, and it works properly. This brings up a point though, how do I upgrade existing tokens with the updated macro code? For example my tokens with the broken critical states also lack the new pinning and cover buttons.
3. smart!! yes thats doable, I can work with that
4. hmm, I notice that that part is missing from my 'how to update your campaign' I quess the quickest way is:
1. drag clean token to map and let it populate
2. drag new buttons to campaign (or global) panel
3. select tokens to be updated
4. drag new buttons from campaign (or global) panel into the 'common' part of the selected token panel.
5. check if they work, if you get some 'no permission' error, right click on the macro, click options, and uncheck top checkbox 'allow players to edit this macro'
That would do the trick.
As for updating the rest of you campaign: see first post.
1. Righteous fury: I might take a look at doing this too, as it would be another good learning experience.
2. Verbose rolls/tooltips: Which framework is it that includes it?
3. Hmm, yeah I guess I need to think this one out some more.
1. have a go at it
2.
Have a look at the bottom screenshot (in 2nd post)
3. :D
I'm interested in poking around the code but I don't want to step on any toes, so let me know if you think I should avoid certain areas, or there are things you are already working on. As for the wiki, I'll see about setting one up and getting some basic info in there.
Feel free to poke around, though my experience with other coding into my code so far has resulted into more bugs. Mainly because they didn't know about 'the rest'. Nonetheless, if you make an update in a macro, just post the full macro here and highlight the changes. Highlighting can be as subtle as:

Code: Select all

<!--changed this-->
changed code
<!--end of change-->
Good luck!

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

forget about what i said about the if statements (assertion), its all true, but I found a very elegant way to handle this puppy, ill get to it as soon as ive got time!

FinCthulhu
Kobold
Posts: 1
Joined: Fri Jul 16, 2010 4:58 pm

Re: [Framework] [Dark Heresy] Version 1.4

Post by FinCthulhu »

Hello,

First, before I begin, I'll warn you that I don't know anything about coding. Second, this framework is awesome, almost everything is a convenient little button and almost everything gets worked out for me, so much better than scribbling into something.

And I have a problem. I don't know whether or not this has been asked before, as the search function turned up nothing. My problem is with the Take Damage button. For one reason or other, it does not work anymore. I click the button and the box pops up where you're supposed to type in the damage, where it goes and what not. After I'm done, nothing happens except that in the chat box reads: "Undefined function: pasue." I've no clue what this is or why this happened, it worked just fine before. I deleted the old ones and installed the newest versions of MapTool and the framework, thinking I had just made a stupid, yet the problem persists. Thing is, I haven't changed anything.

Frankly, I don't know what I need to tell in order to be of further assistance, so if someone can help, just ask whatever you need of this issue and I'll post it. Luckily, I'm in no immediate need for a solution, as the game I'm supposed to run is not until at least a week.

Thanks.

druski
Cave Troll
Posts: 98
Joined: Thu Jul 15, 2010 6:23 am

Re: [Framework] [Dark Heresy] Version 1.4

Post by druski »

Man, you are a tornado of code! I can't wait to see the changes. I didn't get to dig into the macro code as I had wanted to today, but I did open up a wikia wiki and added a few articles to it. Hopefully I'll get to add some more stuff this weekend as well as learn more about the macro code. My wiki-fu was pretty much non-existant as well, I had had the same experience as you of trying and failing to edit an entry a year or two back. However, now it's pretty darn easy with a wysiwyg editor built into wikia. Just need to add the content.

Btw, the 1.4 changes adding Cover and Pinning as well as the deflector/rosarius stuff are really really cool. I ran a game the other night where it ended up dragging a bit as I calculated cover by hand, so to see this functionality in now is great. It's amazing to me how fast you add features. One of the things I took a stab at writing up in the wiki was a features list, and it really knocked home to me once again how much of the game the DH Framework supports. Just incredible. Now my great wish would be for RPTools to add functionality to have the framework be abstracted out of a campaign map, so it would be easier to upgrade/maintain. Not that it's all that difficult right now though. My goal with the wiki is to hopefully make it less intimidating for people who've never touched maptool before to pick it up and use it. It definitely deserves to be used more!

http://darkheresyframework.wikia.com/wi ... letop_Wiki


druski
Cave Troll
Posts: 98
Joined: Thu Jul 15, 2010 6:23 am

Re: [Framework] [Dark Heresy] Version 1.4

Post by druski »

Created my first little macro today, might come in handy. It basically refreshes the macros on a token. This is handy when you upgrade the DHF version, and want to take advantage of new features like Cover and Pinning that were just added. Can also repair tokens where you have accidentally deleted macros or what have you.

I call it UpgradeMacro and put it on the CampaignBar. The purpose is to remove all of the macros on a token, except for the Attack Macros. The one exception is the Unarmed macro which I remove because it is recreated.

Upgrade Macros

Code: Select all

[H: allMacros = getMacros("json")]
[h, foreach(tMacro,allMacros), CODE:{
[h:macroId=listGet(getMacroIndexes(tMacro),0)]
[h:macroGroupName=getStrProp(getMacroProps(macroId),'group')]
[h, if((macroGroupName != "1. Melee Attacks" || tMacro=='Unarmed') && macroGroupName != "2. Ranged Attacks"): removeMacro(macroId)]
}]
[H:Initiate()]
Macros Refreshed!
This also requires that the following line is added to onCampaignLoad

Code: Select all

[defineFunction("Initiate", "Initiate@this")]

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

Nice job! I'll add it. It's funn case yesterday evening I spend some time figuring out how to do what you just did and also wrote the first rudimentary lines. Hadn't finished it though, so thnx. Isnt iniiate already a UDF?

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

@fndcthulu: sry mate I've completely missed your post up to now, don't know how that happened. Anyway what you have encountered is a small bug. 'pasue' should be pause and that is a debug command that I prolly forgot to remove. It's quite likely that's inside some check that became 'true' after you dud something. Which version is this?

You can try fix this yourself by locating the damage button on he dh:lib edit it and just remove that line.
It'll be removed with the next build

druski
Cave Troll
Posts: 98
Joined: Thu Jul 15, 2010 6:23 am

Re: [Framework] [Dark Heresy] Version 1.4

Post by druski »

I've written the RighteousFury toggle mod, it's very simple but changes code in the following places customRangedAttack, customMeleeAttack, getDamage, getExtraHits, so it's a bit verbose here. I've bolded the new parts, I've had to use quote rather than code because code doesn't allow for bolding. Sorry for the mega post, maybe this isn't the best way to share code? I didn't do it, but if you wanted to make this a houserule in the settings you could just change the line that sets the default state ([h, if( isPC()): allowRighteousFury=1;allowRighteousFury=0;]) to check if(isPC() || alwaysUseRighteousFury), or something like that.


customRangedAttack
this just needs to come before loading the lastAttack
[h: assert(!getState("Reloading_Secondary_Weapon"), "you are reloading a weapon",0)]

<!--Set Default For Righteous Fury-->
[h, if( isPC()): allowRighteousFury=1;allowRighteousFury=0;]


<!--INTIALISATION-->
if(hasTalent("Logis Implant"),"logis|"+logis+"|Do you wish to use you LOGIS Implant (+10 BS)|CHECK",""),
"allowRighteousFury|"+allowRighteousFury+"|Allow righteous fury?|CHECK",
"miscModBS|"+miscModBS+"|additional modifier on BS ('+'=bonus/ '-'=penalty)",
[LastAttack = json.set("{}", "actionTaken", actionTaken, "exoticTrained", exoticTrained, "aim", aim, "distance", distance, "sizeTarget", sizeTarget, "Visibility", Visibility, "shootInMelee", shootInMelee, "calledShot", calledShot, "sureStrike", sureStrike, "concealed", concealed, "prone", prone, "logis", logis, "miscModBS", miscModBS, "miscModDam", miscModDam, "allowRighteousFury", allowRighteousFury)]
[h,if(listFind(wpnSpec, "Tearing") != -1): finalDmg = max(getDamage(wpnUsed,modifiedChar,allowRighteousFury),getDamage(wpnUsed,modifiedChar,allowRighteousFury)); finalDmg = getDamage(wpnUsed,modifiedChar,allowRighteousFury)]
[h:extraHitsText = getExtraHits(locationName,extraShotsFullAuto,ExtraShotsSemiAuto,wpnUsed,modifiedChar,allowRighteousFury)]
customMeleeAttack
this just needs to come before loading the lastAttack

<!--Set Default For Righteous Fury-->
[h, if( isPC()): allowRighteousFury=1;allowRighteousFury=0;]


<!--If an attack was recently made, use the same settings as that attack-->
if(hasTalent("Logis Implant"),"logis|"+logis+"|Do you wish to use you LOGIS Implant (+10 WS)|CHECK",""),
"allowRighteousFury|"+allowRighteousFury+"|Allow righteous fury?|CHECK",
"miscModWS|"+miscModWS+"|additional modifier on WS ('+'=bonus/ '-'=penalty)",
[h:LastAttack = json.set("{}", "action", action, "exoticTrained", exoticTrained, "aim", aim, "outNumbered", outNumbered, "terrain", terrain, "Visibility", Visibility, "calledSHot", calledSHot, "sureStrike", sureStrike, "assStrike", assStrike, "higherGround", higherGround, "surprised", surprised, "stunned", stunned, "prone", prone, "hatred", hatred, "logis", logis, "miscModWS", miscModWS, "miscModDam", miscModDam,"allowRighteousFury", allowRighteousFury)]
[if(listFind(wpnSpec, "Tearing") != -1): finalDmg = max(getDamage(wpnUsed,modifiedChar,allowRighteousFury), getDamage(wpnUsed,modifiedChar,allowRighteousFury)); finalDmg = getDamage(wpnUsed,modifiedChar,allowRighteousFury)]


getDamage
<!-- [h:assert(argCount() == 3, "getDamage() requires exactly 3 arguments", 0)] -->

[h:wpnUsed = arg(0)]
[h:govChar = arg(1)]
[h:allowRighteousFury = arg(2)]
<!--Check Righteous Fury-->

[h,if(rf && allowRighteousFury),CODE:
getExtraHits
[h:assert(argCount() == 6, "getExtraHits() requires exactly 6 arguments", 0)]
[h:locationName = arg(0)]
[h:extraShotsFullAuto = arg(1)]
[h:extraShotsSemiAuto = arg(2)]
[h:wpnUsed = arg(3)]
[h:govChar = arg(4)]
[h:allowRighteousFury = arg(5)]
[r,if(extraShotsFullAuto > 0), count(extraShotsFullAuto), CODE: {
[r:"<b>"+table(extraTable, roll.count+1)+"</b> (<b>"+getDamage(wpnUsed,govChar,allowRighteousFury)+"</b> dmg)"]
[r,if(extraShotsSemiAuto > 0), count(extraShotsSemiAuto), CODE:{
[r:"<b>"+table(extraTable, roll.count+1)+"</b> (<b>"+getDamage(wpnUsed,govChar,allowRighteousFury)+"</b> dmg)"]

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

Thnx. I'll merge it with current work. Currently doing the assert thing. What a sh!t load of work that is. Brings up lots of bugs. Currently testing but when I'm done more testing is needed so I'm hoping you can assist there. I'll post the beta when Im done.

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

right I'm don adding your code (added it as a rule to 'Settings' as well). Attached is the beta, play around with it plz and see if you can find any irregularities/bugs.

build log so far:
Basically rewrote Damage macro:
- added penetration to the damage
- added a lot of verbosity output when calculating damage
- made handling of refractor shield in damage macro more efficient
- fixed bug in damage handler concerning warp-type weapons vs power armour
- made handling of armour in damage macro more efficient

- somehow surestrike had made its way into ranged attack, this has been fixed
- called shot penalty wasn''t applied for ranged shots, fixed (was tied with surestrike)
- added some verbosity in input screen for called shot penalty in case of deadeye shot and sharpshooter talents
- charsheet now shows entries sorted
- added explanatory texts to tokens on the base map
- fixed a couple of bugs in cover
- changed arm and leg to arms and legs in crit table, so excel sheet is also updated
- removed some redundant debug messages
- added (a slightly adjusted version of) Druski's 'Upgrade Macros' button to the campaign macros
- added some tooltips to campaign panel and also changed layout a tiny bit
- endState verbosity errors removed
- system now tells you when you're no longer fatiqued
- agi bonus when under flame attack is now automatically calculated
- renamed grenades (again) cause grenade macros didnt work. Might be other stuff that doesn't work now, but couldn't find any...
- adjusted pin check to the new houserules
- added UDF formatTooltip (for future use)
- added PC only can inflicht Righteous Fury in SETTINGS and attack input box (thnx to druski)
- added couple of tooltips to the settings macro
- rewrote verbosity output of the ranged attack macro. Less assertions are made (like jammed weapon) and all output is now shift to the end of the macro. Which means that LOTS of testing is necessary to see if anything is broken...
- added penetration to the melee attack
- added penetration to the ranged attack (was only in grenades)
- added setting that Take Damage can retrieve result of the last attack
edit: beta file is removed
Last edited by wolph42 on Wed Jul 21, 2010 6:24 am, edited 1 time in total.

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Framework] [Dark Heresy] Version 1.4

Post by wolph42 »

by the way your earlier remark:
Modifiers: rangeMod = 10, miscMods = 30
Bob makes standard attack with Autogun with a fire selector Rolling against BS 74 (+40 modifiers).
Result: 42 Target is hit in the left arm and takes 10 Impact damage.

Would become:

Bob makes standard attack with Autogun with a fire selector
Rolling against a BS 74 [Base: 34 + short range: 10 + Half Aim: 10 + Misc: 20]
Result: 42 Target is his in the left arm and takes [1d10+4] = 10 Impact damage
This already (partially) happens, though it shows the variables from which you have to deduce their meaning, e.g. visPenalty = Visibility Penalty.

Here is an example of an attack where the following is set (Autopistol, BS=90):
off hand attack, half action aim, not trained in weapon, full auto burst, long range, called shot, visibility:fog, additional modifier set (100), target is prone, target is concealed, shooting in melee, size of target is enormous

This will result to the following in the chat:
Modifiers: offhand = -20, trainedInWeapon = -20, burstBonus = 20, rangeMod = -10, callShotPenalty = -20, visPenalty = -20, miscMods = 100, targetProne = -10, concealed = -30, shootInMelee = -20, sizeTarget = 20 fires full auto burst with Autopistol Rolling against BS 80 (-10 modifiers). Result: 27 Target is hit in the left arm and takes 9 Impact damage . 5 additional round(s) hit: Arm (8 dmg) , Body (10 dmg) , Head (6 dmg) , Body (6 dmg) , Arm (4 dmg)

Note that the aim bonus is ignored due to full auto burst.

Ofcourse this set is close to ridiculous as you have an enormous prone target in melee but it is concealed.

What I want to do though is move these modifiers to a tooltip.

druski
Cave Troll
Posts: 98
Joined: Thu Jul 15, 2010 6:23 am

Re: [Framework] [Dark Heresy] Version 1.4

Post by druski »

Awesome... putting it through the paces now. Here's what I've found so far:
  • The last damage feature works great! However it doesn't support extra hits, something which I may work on if I get a chance.
  • Penetration works for cover, but doesn't seem to work for armor.
  • The Lightning Reflexes talent is not counted for Initiative (only paranoia is)
  • Dead tokens are no longer moved to object layer (dunno if this is a bug or intentional, I am ambivalent). It would be nice if dead tokens were removed from the initiative list though.
  • equipping the flamer on Faine (mono axe was previously equipped) leads to dialog asking to reload. clicking ok starts popping up dialogue boxes asking for locations [   Invalid condition in IF(inStr(locationName,"Right")) roll option. ] This also happens after weapon jam. Oh, I think I just realized this is because of the lastDamage debug window ;) so, not really a bug then.
Thanks for rearraning all the code so that we get more chat info. seeing weapon jams is awesome, now the players can't cheat ;)

I'll keep testing and see what I find, mostly though combat seems to be working fine right now!

Suggestions
[*]The stat sheet when you mouse over a token, appears to players as listing Per/Fel, Wearing, and Hands Main/Off. Armor and weapons makes sense to me and is exactly what I want, but why Per/Fel?
[*]If you adjust the Basic Campaign Properties to the following, then the GM can see everyones stats, and owners can see their own stats. So players would be able to see their own full stats sheets. Also, the bottom line lets everyone see the conditions/states of a token(thx http://forums.rptools.net/viewtopic.php ... stmeliamne)

Code: Select all

*@WS|BS:{WS}|{BS}
*@S|T:{S}|{T}
*@SB|TB:{SB}|{TB}
*@Ag|Int|WP:{Ag}|{Int}|{WP}
*@Per|Fel:{Per}|{Fel}
*@W|SW:{W}|{SW}
*@M|Chrg|Run:{M}|{M*3}|{M*6}
*@Fat|SFat:{Fatigue}|{TB}
*@IP|CP|FPool|FPoints:{InsanityPoints}|{CorruptionPoints}|{FatePool}|{FatePoints}
*@PR:{PsyRating}
*@AP-H|B|A|L:{HeadAP}|{BodyAP}|{ArmsAP}|{LegsAP}
*Wearing:{ArmourWearing}
*Hands Main|Off :{PrimaryWeapon}|{SecondaryWeapon}
*Condition:[h:theList = getTokenStates()][r, foreach(item, theList, ""): if(getState(item), item + ", ", "")]

Locked

Return to “Campaign Frameworks”