FIX: Combat ordering
							parent
							
								
									2490986d54
								
							
						
					
					
						commit
						e20c4bc98e
					
				|  | @ -36,6 +36,8 @@ | |||
|   "OSE.roll.exploration": "{exploration} test", | ||||
|   "OSE.roll.details.exploration": "Roll 1d6 <= {expl} for success", | ||||
|   "OSE.roll.reaction": "Reaction roll", | ||||
|   "OSE.roll.initiative": "Group {group} rolls for Initiative!", | ||||
|   "OSE.roll.individualInit": "{name} rolls for Initiative!", | ||||
| 
 | ||||
|   "OSE.table.treasure.roll": "Roll Treasure", | ||||
| 
 | ||||
|  |  | |||
|  | @ -36,6 +36,8 @@ | |||
|   "OSE.roll.exploration": "Test de {exploration}", | ||||
|   "OSE.roll.details.exploration": "Lancez 1d6 <= {expl} pour réussir", | ||||
|   "OSE.roll.reaction": "Jet de Réaction", | ||||
|   "OSE.roll.initiative": "Le groupe {group} tire son Initiative !", | ||||
|   "OSE.roll.individualInit": "{name} tire son Initiative!", | ||||
| 
 | ||||
|   "OSE.table.treasure.roll": "Trésor Aléatoire", | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ export class OseCombat { | |||
|     Object.keys(groups).forEach((group) => { | ||||
|       let roll = new Roll("1d6").roll(); | ||||
|       roll.toMessage({ | ||||
|         flavor: `${CONFIG.OSE.colors[group]} group rolls initiative`, | ||||
|         flavor: game.i18n.format('OSE.roll.initiative', {group: CONFIG[OSE].colors[group]}), | ||||
|       }); | ||||
|       groups[group].initiative = roll.total; | ||||
|     }); | ||||
|  | @ -31,12 +31,40 @@ export class OseCombat { | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   static individualInitiative(combat, data) { | ||||
|     let ids = []; | ||||
|     combat.data.combatants.forEach((cbt) => { | ||||
|       ids.push(cbt._id); | ||||
|   static async individualInitiative(combat, data) { | ||||
|     let updates = []; | ||||
|     let messages = []; | ||||
| 
 | ||||
|     combat.data.combatants.forEach((c, i) => { | ||||
|       // This comes from foundry.js, had to remove the update turns thing
 | ||||
|       // Roll initiative
 | ||||
|       const cf = combat._getInitiativeFormula(c); | ||||
|       const roll = combat._getInitiativeRoll(c, cf); | ||||
|       updates.push({_id: c._id, initiative: roll.total}); | ||||
| 
 | ||||
|       // Determine the roll mode
 | ||||
|       let rollMode = game.settings.get("core", "rollMode"); | ||||
|       if (( c.token.hidden || c.hidden ) && (rollMode === "roll") ) rollMode = "gmroll"; | ||||
|        | ||||
|       // Construct chat message data
 | ||||
|       let messageData = mergeObject({ | ||||
|         speaker: { | ||||
|           scene: canvas.scene._id, | ||||
|           actor: c.actor ? c.actor._id : null, | ||||
|           token: c.token._id, | ||||
|           alias: c.token.name | ||||
|         }, | ||||
|         flavor: game.i18n.format('OSE.roll.individualInit', {name: c.token.name}) | ||||
|       }, {}); | ||||
|       const chatData = roll.toMessage(messageData, {rollMode, create:false}); | ||||
| 
 | ||||
|       if ( i > 0 ) chatData.sound = null;   // Only play 1 sound for the whole set
 | ||||
|       messages.push(chatData); | ||||
|     }); | ||||
|     combat.rollInitiative(ids); | ||||
|     await combat.updateEmbeddedEntity("Combatant", updates); | ||||
|     await CONFIG.ChatMessage.entityClass.create(messages); | ||||
|     // Take the first combatant
 | ||||
|     data.turn = 0; | ||||
|   } | ||||
| 
 | ||||
|   static format(object, html, user) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue