// For front-end debugging // Anything to be tested that would otherwise need server logs, etc. // should go here function debugEffect(){ let damageAmount = document.getElementById("effectDamageAmount").value; if(damageAmount == ""){ damageAmount = null; } let targetId = document.getElementById("effectTargetId").value; if(targetId == ""){ targetId = null; } let targetId2 = document.getElementById("effectTargetId2").value; if(targetId2 == ""){ targetId2 = null; } let targetPlayer = document.getElementById("effectTargetPlayer").value; if(targetPlayer == ""){ targetPlayer = null; } let effectAddRemove = document.getElementById("effectAddRemove").value; if(effectAddRemove == ""){ effectAddRemove = null; } let effect = document.getElementById("effect").value; if(effect == ""){ effect = null; } debugEffectFunction(damageAmount, targetId, targetId2, targetPlayer, effectAddRemove, effect); } function debugEffectFunction(damageAmount = null, targetId = null, targetId2 = null, targetPlayer = null, effectAddRemove = null, effect = null){ if(effect == 'hurt'){ hurt(damageAmount, targetId, targetPlayer); } if(effect == 'heal'){ heal(damageAmount, targetPlayer); } if(effect == 'flight'){ console.log(targetId+' Flight: '+flight[targetId]); console.log(effectAddRemove); if(effectAddRemove == 'remove'){ removeFlight(targetId); }else{ giveFlight(targetId); } console.log(targetId+' Flight: '+flight[targetId]); } if(effect == 'reach'){ console.log(targetId+' Reach: '+reach[targetId]); console.log(effectAddRemove); if(effectAddRemove == 'remove'){ removeReach(targetId); }else{ giveReach(targetId); } console.log(targetId+' Reach: '+reach[targetId]); } if(effect == 'taunt'){ console.log(targetId+' Taunt: '+taunt[targetId]); console.log(effectAddRemove); if(effectAddRemove == 'remove'){ removeTaunt(targetId); }else{ giveTaunt(targetId); } console.log(targetId+' Taunt: '+reach[targetId]); } if(effect == 'draw'){ drawCard(damageAmount, targetPlayer); } if(effect == 'equip'){} board.drawBoard(); } function debugTrigger(){ let targetId = document.getElementById("triggerTargetId").value; if(targetId == ""){ targetId = null; } let trigger = document.getElementById("trigger").value; if(trigger == ""){ trigger = null; } let triggerAmount = document.getElementById("triggerAmount").value; if(triggerAmount == ""){ triggerAmount = null; } debugTriggerFunction(targetId, trigger, triggerAmount); } function debugTriggerFunction(targetId = null, trigger = null, triggerAmount = null){ if(targetId == null){ return false; } if(trigger == 'tap'){ triggerTap(targetId); } if(trigger == 'pay'){ triggerPay(triggerAmount); } board.drawBoard(); } // Builds console log for card effect (inc. // all triggers, etc) function debugGetCardEffects(itemKey){ let effectData = cardEffect[itemKey]; console.log(effectData); if(effectData === undefined){ return false; } effectData.forEach((effect, effectIndex) => { console.log('--- Effect '+ effectIndex +' ---'); console.log(effect['description']); // Loop the triggers for (const [key, value] of Object.entries(effect['trigger'])) { console.log('--- Trigger ---'); let effectTrigger = effect['trigger'][key]; console.log(triggerTypes[effectTrigger['triggerTypeId']]); console.log('--- Trigger Amount ---'); console.log(effectTrigger['amount']); // Loop targets for said trigger effectTrigger['target'].forEach((effectTriggerTarget) => { console.log('--- Trigger Target ---'); console.log(effectTriggerTarget.classId); console.log(effectTriggerTarget.colourId); console.log(effectTriggerTarget.passiveId); console.log(effectTriggerTarget.typeId); }); } // Loop the effects for (const [key, value] of Object.entries(effect['step'])) { // amoutn, basicEffectId, stepOrder, target (also itemfromstep) console.log(effect['step'][key]); console.log('--- Effect Step ---'); let effectStep = effect['step'][key]; console.log(basicEffects[effectStep['basicEffectId']]); console.log('--- Effect Step Amount ---'); console.log(effectStep['amount']); // Loop targets for effectStep effectStep['target'].forEach((effectStepTarget) => { console.log('--- Effect Step Target ---'); console.log(effectStepTarget.classId); console.log(effectStepTarget.colourId); console.log(effectStepTarget.passiveId); console.log(effectStepTarget.typeId); console.log(effectStepTarget.itemFromStep); }); } }); } function debugEffectCanTrigger(){ let ecTriggerTargetId = document.getElementById("ecTriggerTargetId").value; if(ecTriggerTargetId == ""){ ecTriggerTargetId = null; } let ecTriggerIndex = document.getElementById("ecTriggerIndex").value; if(ecTriggerIndex == ""){ ecTriggerIndex = 0; } let ecDoTrigger = document.getElementById("ecDoTrigger").value; if(ecDoTrigger == ""){ ecDoTrigger = 0; } if(doEffectTriggers(ecTriggerTargetId, ecTriggerIndex, true) != true){ console.log('Effect cannot be triggered'); //queueEffect(ecTriggerTargetId, ecTriggerIndex); //doNextInQueue(); //loopTriggerQueue(); return false; } console.log('Effect CAN be triggered'); if(ecDoTrigger){ // Do everything needed in triggers doEffectTriggers(ecTriggerTargetId, ecTriggerIndex); // Then queue the effects to happen (queued so they can be chained/countered) queueEffect(ecTriggerTargetId, ecTriggerIndex); // Do all effects in queue (for debug), in actual will do one, then allow chain triggers, etc. loopTriggerQueue(); } board.drawBoard(); }