Rumble wrote:Which part of the at-will display - when it comes up in chat? Or on the buttons? If I recall, the green used in MT changed, so you're right I need to go fix that for readability.
I'm talking about the buttons. It seems in old screen shots the green was much lighter, but on the current green the black is hard to read.
Rumble wrote:On the skill thing, that's not a bug, so I'm not going to change it.
Nooo. No work involved besides new macro -> copy - >paste. You previously did it in the slim framework.
I'm expanding on the
monster database so this would be helpful to make them universal. Else I have to include a small library myself.
If you do this I'd also suggest the management button be 68 width and it lines up perfectly that way.
Here is the code.
[h:locSkills = Skills]
[h:skillNames = json.fields(locSkills)]
[h:allNames = json.merge(json.fromList(getLibProperty("ABILITIES")), json.fromList(getLibProperty("SKILLS")))]
[h:allNames = json.toList(allNames)]
[h,if(macro.args != ""): chosenCheck = listFind(allNames, macro.args); chosenCheck = 0]
[h:abilList = json.append("[]", "Strength ("+if(Str>0, "+", "")+Str+")", "Constitution ("+if(Con>0, "+", "")+Con+")", "Dexterity ("+if(Dex>0, "+", "")+Dex+")", "Intelligence ("+if(Int>0, "+", "")+Int+")", "Wisdom ("+if(Wis>0, "+", "")+Wis+")", "Charisma ("+if(Cha>0, "+", "")+Cha+")")]
[h:skillarray="[]"]
[h,foreach(skillname, skillNames),CODE:
{
[skb = getProperty(skillname)]
[if(skb >0): sign="+"; sign=""]
[skillarray = json.append(skillarray, strformat("%{skillname} (%{sign}%{skb})"))]
}]
[h:finalCheckList = json.merge(abilList, skillarray)]
[h:status = input(
".|<html><h4>Skill and Ability Checks</h4></html>||label|span=true",
"whichCheck|"+json.toList(finalCheckList)+"|Select ability or skill|LIST|SELECT="+chosenCheck,
"modToCheck|0|Modifier to check (use negative numbers for penalties)",
".|<html><p width=400>Note: ½ Level value is included in skill bonus already, and will be automatically added if you select an ability check. You do not need to add it in yourself.</p></html>||label|span=true")]
[h:abort(status)]
[h:isAbilCheck = 1]
[h,switch(whichCheck),CODE:
case 0:
{
[h:checkBonus = Str]
[h:checkType = "Strength"]
};
case 1:
{
[h:checkBonus = Con]
[h:checkType = "Constitution"]
};
case 2:
{
[h:checkBonus = Dex]
[h:checkType = "Dexterity"]
};
case 3:
{
[h:checkBonus = Int]
[h:checkType = "Intelligence"]
};
case 4:
{
[h:checkBonus = Wis]
[h:checkType = "Wisdom"]
};
case 5:
{
[h:checkBonus = Cha]
[h:checkType = "Charisma"]
};
default:
{
[h:checkBonus = getProperty(listGet(skillNames, whichCheck - 6))]
[h:checkType = listGet(skillNames, whichCheck - 6)]
[h:isAbilCheck = 0]
};]
[h:d20roll = 1d20]
[h:finalCheckRoll = d20roll + checkBonus + if(isAbilCheck, HalfLevel, 0) + modToCheck]
[h:finalCheckBD = strformat("<html><table><tr><td>%d: 1d20</td></tr><tr><td>%d: Bonus</td></tr>%s<tr><td>%d: Misc. Modifier</td></tr></table></html>", d20roll, checkBonus, if(isAbilCheck, "<tr><td>"+HalfLevel+": Half Level</td></tr>", ""), modToCheck)]
[r,if(isGM()),CODE:
{
[r,g:strformat("<b>%{checkType}</b> check <span title='%{finalCheckBD}'><b>%{finalCheckRoll}</b></span>.")]
};
{
[r: strformat("<b>%{checkType}</b> check <span title='%{finalCheckBD}'><b>%{finalCheckRoll}</b></span>.")]
}]
Rumble wrote:I'll take a look at the monster parsing, though, to see if I can figure out what's happening. Can you attach a monster token that is boogered up like that? I'm not a DDI subscriber, so I can't do any importing anymore.
All the monsters that I'm importing are doing this. Also the class (IE: Soldier, lurker) is not being imported properly on SOME, but that's not as big of a deal
Attached is a pale reaver:
Pale Reaver
Medium shadow humanoid (undead)
Level 5 Lurker XP 200
Initiative +9 Senses Perception +7; darkvision
HP 49; Bloodied 24
AC 19; Fortitude 16, Reflex 17, Will 18
Immune disease, poison; Resist 10 necrotic; Vulnerable radiant (if the pale reaver takes radiant damage, it cannot use insubstantial transformation until the end of its next turn)
Speed 6
Deadly Mane (standard, at-will) Necrotic
Reach 2; +10 vs AC; 1d8+6 necrotic damage.
Blood Drain (standard; requires combat advantage against the target, recharges when an adjacent creature becomes bloodied) Healing
reach 2; +8 vs Fortitude; 2d12+6 damage, and the target loses a healing surge and is weakened (save ends). In addition, the pale reaver regains 12 hit points.
Image of Life (standard; encounter) Illusion
The pale reaver adopts the appearance of a living humanoid until it attacks or is hit by an attack.
Insubstantial Transformation (minor; at-will) Polymorph
The pale reaver becomes insubstantial and gains fly 6 (hover) and phasing until it attacks or becomes dazed, stunned, or unconscious.
Alignment Evil Languages Common
Skills Stealth +10
Str 6 (0) Dex 16 (+5) Wis 10 (+2)
Con 13 (+3) Int 10 (+2) Cha 17 (+5)
Also wanted to attach my praise - my group is starting soon and I've been spending a LOT of time with the framework - importing and setting everything up. I really appreciate all the work you did and this is an amazingly powerful tool.