You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cardGame/public/js/debug.js

208 lines
5.5 KiB
JavaScript

// 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();
}