Merge pull request #22 from thehappyanarchist/THA-Dev
Bug Fixes, Option to disable HFH settings, and new Deployment packagemaster
						commit
						9bc9230012
					
				
							
								
								
									
										10
									
								
								README.md
								
								
								
								
							
							
						
						
									
										10
									
								
								README.md
								
								
								
								
							|  | @ -2,8 +2,9 @@ | ||||||
| All the features you need to play ACKS in Foundry VTT. Forked off of Old School Essentials by U~Man and heavily modified. | All the features you need to play ACKS in Foundry VTT. Forked off of Old School Essentials by U~Man and heavily modified. | ||||||
| 
 | 
 | ||||||
| ## Features | ## Features | ||||||
| Defaulted to exploding 20s in combat from HFH optional rules\ | Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\ | ||||||
| Added BHR to the character sheet from HFH optional rules\ | Changed Ascending Armor Class to ACKS AC\ | ||||||
|  | Uncapped the dexterity and charisma bonuses\ | ||||||
| Changed Ascending Armor Class to ACKS AC\ | Changed Ascending Armor Class to ACKS AC\ | ||||||
| Uncapped the dexterity and charisma bonuses\ | Uncapped the dexterity and charisma bonuses\ | ||||||
| Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\ | Implemented ACKS encumbrance rules (uses coin weight instead of stone - 1000 coins to a stone)\ | ||||||
|  | @ -13,7 +14,10 @@ Changed "Slow weapon" to subtract 1 from initiative instead of making the charac | ||||||
| Added a HOLD TURN icon to the Combat Tracker to remind the judge that a player has held their action.\ | Added a HOLD TURN icon to the Combat Tracker to remind the judge that a player has held their action.\ | ||||||
| Modified the encumbrance bar to reflect ACKS standard movement penalties while encumbered, and to show that on the bar\ | Modified the encumbrance bar to reflect ACKS standard movement penalties while encumbered, and to show that on the bar\ | ||||||
| Changed default monster saves to match ACKS numbers (actually makes monsters a bit less resistant overall)\ | Changed default monster saves to match ACKS numbers (actually makes monsters a bit less resistant overall)\ | ||||||
| Added Auran languages and removed alignment tongues | Added Auran languages and removed alignment tongues\ | ||||||
|  | ### Optional | ||||||
|  | Added exploding 20s in combat from HFH optional rules\ | ||||||
|  | Added BHR to the character sheet from HFH optional rules | ||||||
| 
 | 
 | ||||||
| ## License | ## License | ||||||
| This Foundry VTT system requires ACKS Core Rules that you can find at http://autarch.co/buy-now. | This Foundry VTT system requires ACKS Core Rules that you can find at http://autarch.co/buy-now. | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							|  | @ -103,6 +103,8 @@ | ||||||
|   "ACKS.HealthShort": "HP", |   "ACKS.HealthShort": "HP", | ||||||
|   "ACKS.HitDice": "Hit Dice", |   "ACKS.HitDice": "Hit Dice", | ||||||
|   "ACKS.HitDiceShort": "HD", |   "ACKS.HitDiceShort": "HD", | ||||||
|  |   "ACKS.BHR": "Base Healing Rate", | ||||||
|  |   "ACKS.BHRShort": "BHR", | ||||||
| 
 | 
 | ||||||
|   "ACKS.movement.base": "Movement Rate", |   "ACKS.movement.base": "Movement Rate", | ||||||
|   "ACKS.movement.short": "MV", |   "ACKS.movement.short": "MV", | ||||||
|  | @ -137,8 +139,6 @@ | ||||||
|   "ACKS.AttacksShort": "ATT", |   "ACKS.AttacksShort": "ATT", | ||||||
|   "ACKS.Damage": "Damage", |   "ACKS.Damage": "Damage", | ||||||
|   "ACKS.Spellcaster": "Spellcaster", |   "ACKS.Spellcaster": "Spellcaster", | ||||||
|   "ACKS.BHR": "Base Healing Rate", |  | ||||||
|   "ACKS.BHRShort": "BHR", |  | ||||||
| 
 | 
 | ||||||
|   "ACKS.Language": "Language", |   "ACKS.Language": "Language", | ||||||
|   "ACKS.SpokenLanguages": "Spoken Languages", |   "ACKS.SpokenLanguages": "Spoken Languages", | ||||||
|  | @ -188,6 +188,10 @@ | ||||||
|   "ACKS.Setting.MovementAuto": "Calculate Movement", |   "ACKS.Setting.MovementAuto": "Calculate Movement", | ||||||
|   "ACKS.Setting.SignificantTreasure": "Significant Treasure Weight", |   "ACKS.Setting.SignificantTreasure": "Significant Treasure Weight", | ||||||
|   "ACKS.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance", |   "ACKS.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance", | ||||||
|  |   "ACKS.Setting.Explode20": "HFH: Exploding attack throws", | ||||||
|  |   "ACKS.Setting.Explode20Hint": "Heroic Fantasy Option: Attack throws explode on 20 - Critical if exceed target AC by 10", | ||||||
|  |   "ACKS.Setting.BHR": "HFH: Base Healing Rate", | ||||||
|  |   "ACKS.Setting.BHRHint": "Heroic Fantasy Option: Base Healing Rate per day varies by Max HP", | ||||||
| 
 | 
 | ||||||
|   "ACKS.items.Equip": "Equip", |   "ACKS.items.Equip": "Equip", | ||||||
|   "ACKS.items.Unequip": "Unequip", |   "ACKS.items.Unequip": "Unequip", | ||||||
|  |  | ||||||
|  | @ -51,6 +51,7 @@ export class AcksActorSheetCharacter extends AcksActorSheet { | ||||||
|     data.config.ascendingAC = game.settings.get("acks", "ascendingAC"); |     data.config.ascendingAC = game.settings.get("acks", "ascendingAC"); | ||||||
|     data.config.initiative = game.settings.get("acks", "initiative") != "group"; |     data.config.initiative = game.settings.get("acks", "initiative") != "group"; | ||||||
|     data.config.encumbrance = game.settings.get("acks", "encumbranceOption"); |     data.config.encumbrance = game.settings.get("acks", "encumbranceOption"); | ||||||
|  |     data.config.BHR = game.settings.get("acks", "bhr"); | ||||||
| 
 | 
 | ||||||
|     data.isNew = this.actor.isNew(); |     data.isNew = this.actor.isNew(); | ||||||
|     return data; |     return data; | ||||||
|  |  | ||||||
|  | @ -451,7 +451,12 @@ export class AcksActor extends Actor { | ||||||
| 
 | 
 | ||||||
|   rollAttack(attData, options = {}) { |   rollAttack(attData, options = {}) { | ||||||
|     const data = this.data.data; |     const data = this.data.data; | ||||||
|     const rollParts = ["1d20x="]; |     let rollParts = ["1d20"]; | ||||||
|  | 
 | ||||||
|  |     if (game.settings.get("acks", "exploding20s")) { | ||||||
|  |       rollParts = ["1d20x="]; | ||||||
|  |     } | ||||||
|  |      | ||||||
|     const dmgParts = []; |     const dmgParts = []; | ||||||
|     let label = game.i18n.format("ACKS.roll.attacks", { |     let label = game.i18n.format("ACKS.roll.attacks", { | ||||||
|       name: this.data.name, |       name: this.data.name, | ||||||
|  |  | ||||||
|  | @ -29,6 +29,11 @@ export class AcksDice { | ||||||
|       } else { |       } else { | ||||||
|         result.isFailure = true; |         result.isFailure = true; | ||||||
|       } |       } | ||||||
|  |     } else if (data.roll.type == "hitdice") { | ||||||
|  |       // RESULT CAN BE NO LOWER THAN 1
 | ||||||
|  |       if (roll.total < 1) { | ||||||
|  |         roll._total = 1; | ||||||
|  |       } | ||||||
|     } else if (data.roll.type == "table") { |     } else if (data.roll.type == "table") { | ||||||
|       // Reaction
 |       // Reaction
 | ||||||
|       let table = data.roll.table; |       let table = data.roll.table; | ||||||
|  | @ -197,6 +202,11 @@ export class AcksDice { | ||||||
|     const roll = new Roll(parts.join("+"), data).roll(); |     const roll = new Roll(parts.join("+"), data).roll(); | ||||||
|     const dmgRoll = new Roll(data.roll.dmg.join("+"), data).roll(); |     const dmgRoll = new Roll(data.roll.dmg.join("+"), data).roll(); | ||||||
| 
 | 
 | ||||||
|  |     // Add minimal damage of 1
 | ||||||
|  |     if (dmgRoll.total < 1) { | ||||||
|  |       dmgRoll._total = 1; | ||||||
|  |     } | ||||||
|  |      | ||||||
|     // Convert the roll to a chat message and return the roll
 |     // Convert the roll to a chat message and return the roll
 | ||||||
|     let rollMode = game.settings.get("core", "rollMode"); |     let rollMode = game.settings.get("core", "rollMode"); | ||||||
|     rollMode = form ? form.rollMode.value : rollMode; |     rollMode = form ? form.rollMode.value : rollMode; | ||||||
|  |  | ||||||
|  | @ -20,7 +20,21 @@ export const registerSettings = function () { | ||||||
|     default: true, |     default: true, | ||||||
|     scope: "world", |     scope: "world", | ||||||
|     type: Boolean, |     type: Boolean, | ||||||
|  |     config: false, | ||||||
|  |     onChange: _ => window.location.reload() | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   game.settings.register("acks", "encumbranceOption", { | ||||||
|  |     name: game.i18n.localize("ACKS.Setting.Encumbrance"), | ||||||
|  |     hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"), | ||||||
|  |     default: "detailed", | ||||||
|  |     scope: "world", | ||||||
|  |     type: String, | ||||||
|     config: true, |     config: true, | ||||||
|  |     choices: { | ||||||
|  |       detailed: "ACKS.Setting.EncumbranceDetailed", | ||||||
|  |       complete: "ACKS.Setting.EncumbranceComplete", | ||||||
|  |     }, | ||||||
|     onChange: _ => window.location.reload() |     onChange: _ => window.location.reload() | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  | @ -33,29 +47,23 @@ export const registerSettings = function () { | ||||||
|     config: true, |     config: true, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   game.settings.register("acks", "encumbranceOption", { |   game.settings.register("acks", "exploding20s", { | ||||||
|     name: game.i18n.localize("ACKS.Setting.Encumbrance"), |     name: game.i18n.localize("ACKS.Setting.Explode20"), | ||||||
|     hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"), |     hint: game.i18n.localize("ACKS.Setting.Explode20Hint"), | ||||||
|     default: "detailed", |     default: false, | ||||||
|     scope: "world", |     scope: "world", | ||||||
|     type: String, |     type: Boolean, | ||||||
|     config: true, |     config: true, | ||||||
|     choices: { |  | ||||||
| //      disabled: "ACKS.Setting.EncumbranceDisabled",
 |  | ||||||
| //      basic: "ACKS.Setting.EncumbranceBasic",
 |  | ||||||
|       detailed: "ACKS.Setting.EncumbranceDetailed", |  | ||||||
|       complete: "ACKS.Setting.EncumbranceComplete", |  | ||||||
|     }, |  | ||||||
|     onChange: _ => window.location.reload() |     onChange: _ => window.location.reload() | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
| //  game.settings.register("acks", "significantTreasure", {
 |   game.settings.register("acks", "bhr", { | ||||||
| //    name: game.i18n.localize("ACKS.Setting.SignificantTreasure"),
 |     name: game.i18n.localize("ACKS.Setting.BHR"), | ||||||
| //    hint: game.i18n.localize("ACKS.Setting.SignificantTreasureHint"),
 |     hint: game.i18n.localize("ACKS.Setting.BHRHint"), | ||||||
| //    default: 800,
 |     default: false, | ||||||
| //    scope: "world",
 |     scope: "world", | ||||||
| //    type: Number,
 |     type: Boolean, | ||||||
| //    config: true,
 |     config: true, | ||||||
| //    onChange: _ => window.location.reload()
 |     onChange: _ => window.location.reload() | ||||||
| //  });
 |   }); | ||||||
| }; | } | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| { | { | ||||||
|   "name": "acks", |   "name": "acks", | ||||||
|   "title": "Adventurer Conqueror King System", |   "title": "Adventurer Conqueror King System", | ||||||
|   "description": "Play using the ACKS system", |   "description": "Play B/X or other OSR compatible content using the ACKS system", | ||||||
|   "version": "0.5.0", |   "version": "0.5.1", | ||||||
|   "minimumCoreVersion": "0.6.2", |   "minimumCoreVersion": "0.6.2", | ||||||
|   "compatibleCoreVersion": "0.6.6", |   "compatibleCoreVersion": "0.6.6", | ||||||
|   "templateVersion": 2, |   "templateVersion": 2, | ||||||
|  | @ -41,5 +41,5 @@ | ||||||
|   "gridUnits": "ft", |   "gridUnits": "ft", | ||||||
|   "url": "https://github.com/thehappyanarchist/foundryacks", |   "url": "https://github.com/thehappyanarchist/foundryacks", | ||||||
|   "manifest": "https://github.com/thehappyanarchist/foundryacks/raw/master/src/system.json", |   "manifest": "https://github.com/thehappyanarchist/foundryacks/raw/master/src/system.json", | ||||||
|   "download": "https://github.com/thehappyanarchist/foundryacks/raw/master/package/acks-v0.5.0.zip" |   "download": "https://github.com/thehappyanarchist/foundryacks/raw/master/package/acks-v0.5.1.zip" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -38,19 +38,19 @@ | ||||||
|         }, |         }, | ||||||
|         "saves": { |         "saves": { | ||||||
|           "death": { |           "death": { | ||||||
|             "value": 15 |             "value": 0 | ||||||
|           }, |           }, | ||||||
|           "wand": { |           "wand": { | ||||||
|             "value": 17 |             "value": 0 | ||||||
|           }, |           }, | ||||||
|           "paralysis": { |           "paralysis": { | ||||||
|             "value": 16 |             "value": 0 | ||||||
|           }, |           }, | ||||||
|           "breath": { |           "breath": { | ||||||
|             "value": 17 |             "value": 0 | ||||||
|           }, |           }, | ||||||
|           "spell": { |           "spell": { | ||||||
|             "value": 18 |             "value": 0 | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         "movement": { |         "movement": { | ||||||
|  |  | ||||||
|  | @ -108,6 +108,7 @@ | ||||||
|                             data-dtype="String" /> |                             data-dtype="String" /> | ||||||
|                     </div> |                     </div> | ||||||
|                 </li> |                 </li> | ||||||
|  |                 {{#if config.BHR}} | ||||||
|                 <li class="attribute bhr"> |                 <li class="attribute bhr"> | ||||||
|                     <h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}"> |                     <h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}"> | ||||||
|                         <a>{{ localize "ACKS.BHRShort" }}</a> |                         <a>{{ localize "ACKS.BHRShort" }}</a> | ||||||
|  | @ -117,6 +118,7 @@ | ||||||
|                         {{data.hp.bhr}} |                         {{data.hp.bhr}} | ||||||
|                     </div> |                     </div> | ||||||
|                 </li> |                 </li> | ||||||
|  |                 {{/if}} | ||||||
|                 {{#if config.initiative}} |                 {{#if config.initiative}} | ||||||
|                 <li class="attribute"> |                 <li class="attribute"> | ||||||
|                     <h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}"> |                     <h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}"> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue