diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html
index 44c0445329..84cc0d641c 100644
--- a/ADnD_2E_Revised/2ESheet.html
+++ b/ADnD_2E_Revised/2ESheet.html
@@ -33536,6 +33536,7 @@
Miss! {{hitdmg}} |
{{/rollTotal() computed::hit 0}}
+ {{#aoesplash}}
Splash Hit: ({{aoesplash}} Feet Diameter) |
@@ -33553,6 +33554,7 @@
{{/rollTotal() computed::splash 0}}
{{/rollTotal() computed::hit 0}}
+ {{/aoesplash}}
@@ -72351,7 +72353,7 @@ on('change:repeating_monsterweapons:weaponname', function(eventInfo) {
on('clicked:grenade-miss', async function(eventInfo) {
let rollBuilder = new RollTemplateBuilder('2Egrenademiss');
- let grenade = await extractQueryResult('?{What grenade have been thrown?|Acid|Holy water|Oil (lit)|Poison|Other}');
+ let grenade = await extractQueryResult('?{What grenade have been thrown?|Acid|Holy water|Oil (lit)|Poison|Melf’s Minute Meteor|Otiluke’s Freezing Sphere - Globe of cold|Produce Flame|Fire Seed missile|Other}');
switch (grenade) {
case 'Acid': {
rollBuilder.push(
@@ -72393,6 +72395,46 @@ on('clicked:grenade-miss', async function(eventInfo) {
);
break;
}
+ case 'Melf’s Minute Meteor': {
+ rollBuilder.push(
+ 'name=Melf’s Minute Meteor',
+ 'aoe=[[1]]',
+ 'aoesplash=[[6]]',
+ 'hitdmg=[Damage](`/em rolls [[1d4]] fire damage using their Melf’s Minute Meteor! (Direct Hit))',
+ 'splashdmg=[Damage](`/em rolls [[1]] fire damage using their Melf’s Minute Meteor! (Splash))'
+ );
+ break;
+ }
+ case 'Otiluke’s Freezing Sphere - Globe of cold': {
+ rollBuilder.push(
+ 'name=Otiluke’s Freezing Sphere (Globe of cold)',
+ 'aoe=[[20]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[6d6]] cold damage using their Otiluke’s Freezing Sphere - Globe of cold! (Direct Hit))',
+ 'splashdmg='
+ );
+ break;
+ }
+ case 'Produce Flame': {
+ rollBuilder.push(
+ 'name=Produce Flame',
+ 'aoe=[[3]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[1d4+1]] fire damage using their Produce Flame! (Direct Hit))',
+ 'splashdmg='
+ );
+ break;
+ }
+ case 'Fire Seed missile': {
+ rollBuilder.push(
+ 'name=Fire Seed missile',
+ 'aoe=[[10]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[2d8]] fire damage using their Fire Seed missile! (Direct Hit))',
+ 'splashdmg='
+ );
+ break
+ }
case 'Other': {
let name = await extractQueryResult('?{Grenade name}');
let aoe = await extractQueryResult('?{Area of effect (Diameter in feet)|1}');
@@ -72413,7 +72455,17 @@ on('clicked:grenade-miss', async function(eventInfo) {
);
}
}
- let distanceName = await extractQueryResult('?{How far was it thrown?|Short|Medium|Long}');
+
+ let distanceName;
+ switch (grenade) {
+ case 'Melf’s Minute Meteor':
+ case 'Produce Flame':
+ case 'Fire Seed missile':
+ distanceName = 'Short';
+ break;
+ default:
+ distanceName = await extractQueryResult('?{How far was it thrown?|Short|Medium|Long}');
+ }
rollBuilder.push('direction=[[1d10]]', `distancename=${distanceName}`);
switch (distanceName) {
case 'Short': rollBuilder.push('distance=[[1d6cs1cf6]]'); break;
diff --git a/ADnD_2E_Revised/html/components/rolltemplates.html b/ADnD_2E_Revised/html/components/rolltemplates.html
index 79a9fa1dab..fe85371576 100644
--- a/ADnD_2E_Revised/html/components/rolltemplates.html
+++ b/ADnD_2E_Revised/html/components/rolltemplates.html
@@ -528,6 +528,7 @@
Miss! {{hitdmg}} |
{{/rollTotal() computed::hit 0}}
+ {{#aoesplash}}
Splash Hit: ({{aoesplash}} Feet Diameter) |
@@ -545,6 +546,7 @@
{{/rollTotal() computed::splash 0}}
{{/rollTotal() computed::hit 0}}
+ {{/aoesplash}}
diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js
index d9d9cc4e46..03b0abe8ca 100644
--- a/ADnD_2E_Revised/javascript/sheetWorkers.js
+++ b/ADnD_2E_Revised/javascript/sheetWorkers.js
@@ -2072,7 +2072,7 @@ on('change:repeating_monsterweapons:weaponname', function(eventInfo) {
on('clicked:grenade-miss', async function(eventInfo) {
let rollBuilder = new RollTemplateBuilder('2Egrenademiss');
- let grenade = await extractQueryResult('?{What grenade have been thrown?|Acid|Holy water|Oil (lit)|Poison|Other}');
+ let grenade = await extractQueryResult('?{What grenade have been thrown?|Acid|Holy water|Oil (lit)|Poison|Melf’s Minute Meteor|Otiluke’s Freezing Sphere - Globe of cold|Produce Flame|Fire Seed missile|Other}');
switch (grenade) {
case 'Acid': {
rollBuilder.push(
@@ -2114,6 +2114,46 @@ on('clicked:grenade-miss', async function(eventInfo) {
);
break;
}
+ case 'Melf’s Minute Meteor': {
+ rollBuilder.push(
+ 'name=Melf’s Minute Meteor',
+ 'aoe=[[1]]',
+ 'aoesplash=[[6]]',
+ 'hitdmg=[Damage](`/em rolls [[1d4]] fire damage using their Melf’s Minute Meteor! (Direct Hit))',
+ 'splashdmg=[Damage](`/em rolls [[1]] fire damage using their Melf’s Minute Meteor! (Splash))'
+ );
+ break;
+ }
+ case 'Otiluke’s Freezing Sphere - Globe of cold': {
+ rollBuilder.push(
+ 'name=Otiluke’s Freezing Sphere (Globe of cold)',
+ 'aoe=[[20]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[6d6]] cold damage using their Otiluke’s Freezing Sphere - Globe of cold! (Direct Hit))',
+ 'splashdmg='
+ );
+ break;
+ }
+ case 'Produce Flame': {
+ rollBuilder.push(
+ 'name=Produce Flame',
+ 'aoe=[[3]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[1d4+1]] fire damage using their Produce Flame! (Direct Hit))',
+ 'splashdmg='
+ );
+ break;
+ }
+ case 'Fire Seed missile': {
+ rollBuilder.push(
+ 'name=Fire Seed missile',
+ 'aoe=[[10]]',
+ 'aoesplash=',
+ 'hitdmg=[Damage](`/em rolls [[2d8]] fire damage using their Fire Seed missile! (Direct Hit))',
+ 'splashdmg='
+ );
+ break
+ }
case 'Other': {
let name = await extractQueryResult('?{Grenade name}');
let aoe = await extractQueryResult('?{Area of effect (Diameter in feet)|1}');
@@ -2134,7 +2174,17 @@ on('clicked:grenade-miss', async function(eventInfo) {
);
}
}
- let distanceName = await extractQueryResult('?{How far was it thrown?|Short|Medium|Long}');
+
+ let distanceName;
+ switch (grenade) {
+ case 'Melf’s Minute Meteor':
+ case 'Produce Flame':
+ case 'Fire Seed missile':
+ distanceName = 'Short';
+ break;
+ default:
+ distanceName = await extractQueryResult('?{How far was it thrown?|Short|Medium|Long}');
+ }
rollBuilder.push('direction=[[1d10]]', `distancename=${distanceName}`);
switch (distanceName) {
case 'Short': rollBuilder.push('distance=[[1d6cs1cf6]]'); break;
diff --git a/ADnD_2E_Revised/special-characters.txt b/ADnD_2E_Revised/special-characters.txt
new file mode 100644
index 0000000000..1d42e27612
--- /dev/null
+++ b/ADnD_2E_Revised/special-characters.txt
@@ -0,0 +1,10 @@
+— long dash
+– medium dash (avoid)
+- short dash
+• big bullet (preferred)
+· small bullet (avoid)
+’ apostrophe (preferred)
+✕ big multiplication sign (preferred)
+× small multiplication sign (avoid)
+“ left double quote (preferred)
+” right double quote (preferred)
\ No newline at end of file