Add tap/untap
parent
77bef59558
commit
fee1a3988e
@ -0,0 +1,146 @@
|
|||||||
|
function clearInteractionMenu(){
|
||||||
|
// Clear the existing interaction menu
|
||||||
|
gameData.inInteractionMenu = {};
|
||||||
|
gameData.interactionOption = {};
|
||||||
|
drawGameBoard();
|
||||||
|
}
|
||||||
|
function openInteractionMenu(entity){
|
||||||
|
|
||||||
|
console.log('open interaction menu: '+entity);
|
||||||
|
|
||||||
|
// Only one interaction menu up at once (for now)
|
||||||
|
clearInteractionMenu();
|
||||||
|
|
||||||
|
// Add the 'new' entity interactionMenu
|
||||||
|
gameData.inInteractionMenu[entity] = entity;
|
||||||
|
|
||||||
|
// Add the available interaction(s) with size+positions
|
||||||
|
|
||||||
|
// TODO: Actually add the corresponding interactions depending on card, and boardElement
|
||||||
|
if(entity in gameData.hand){
|
||||||
|
gameData.interactionOption['Play to Board'] = {
|
||||||
|
x: gameData.position[entity][0] + gameData.size[entity][0]*.1/2,
|
||||||
|
y: gameData.position[entity][1] + gameData.size[entity][1] - (35 * (Object.entries(gameData.interactionOption).length + 1)),
|
||||||
|
width: gameData.size[entity][0]*.9,
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
gameData.interactionOption['Play as Mana'] = {
|
||||||
|
x: gameData.position[entity][0] + gameData.size[entity][0]*.1/2,
|
||||||
|
y: gameData.position[entity][1] + gameData.size[entity][1] - (35 * (Object.entries(gameData.interactionOption).length + 1)),
|
||||||
|
width: gameData.size[entity][0]*.9,
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interact
|
||||||
|
|
||||||
|
// Attack
|
||||||
|
|
||||||
|
// Tap
|
||||||
|
// TAP (TEMP TODO: remove or add in a statement to hide)
|
||||||
|
if(entity in gameData.cardStatus.tapped){
|
||||||
|
gameData.interactionOption['Untap'] = {
|
||||||
|
x: gameData.position[entity][0] + gameData.size[entity][0]*.1/2,
|
||||||
|
y: gameData.position[entity][1] + gameData.size[entity][1] - (35 * (Object.entries(gameData.interactionOption).length + 1)),
|
||||||
|
width: gameData.size[entity][0]*.9,
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
gameData.interactionOption['Tap'] = {
|
||||||
|
x: gameData.position[entity][0] + gameData.size[entity][0]*.1/2,
|
||||||
|
y: gameData.position[entity][1] + gameData.size[entity][1] - (35 * (Object.entries(gameData.interactionOption).length + 1)),
|
||||||
|
width: gameData.size[entity][0]*.9,
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let addEffects = true;
|
||||||
|
if(entity in gameData.shield || entity in gameData.mana){
|
||||||
|
addEffects = false;
|
||||||
|
}
|
||||||
|
// Add interaction options for effects of the card
|
||||||
|
if(addEffects && gameData.cardData[entity] !== undefined && gameData.cardData[entity].effect.length > 0){
|
||||||
|
|
||||||
|
|
||||||
|
for(let i = 0; i < gameData.cardData[entity].effect.length; i++){
|
||||||
|
// TODO: Check if effect is triggerable from it's location
|
||||||
|
// If not don't add effect trigger. If it is, but criteria not met
|
||||||
|
// add but grey out (need to add this functionality to interaction menu)
|
||||||
|
gameData.interactionOption['Trigger Effect '+(i+1)] = {
|
||||||
|
x: gameData.position[entity][0] + gameData.size[entity][0]*.1/2,
|
||||||
|
y: gameData.position[entity][1] + gameData.size[entity][1] - (35 * (Object.entries(gameData.interactionOption).length + 1)),
|
||||||
|
width: gameData.size[entity][0]*.9,
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
drawGameBoard();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function interactionMenuAvailable(){
|
||||||
|
|
||||||
|
if(Object.entries(gameData.inInteractionMenu).length == 0){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Object.entries(gameData.interactionOption).length == 0){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function doiMenuPressed(iMenuKey){
|
||||||
|
console.log(iMenuKey);
|
||||||
|
|
||||||
|
// TODO: Checks for the actual entities position too
|
||||||
|
if(iMenuKey == 'Play to Board'){
|
||||||
|
iMenuPlayToBoard();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(iMenuKey == 'Play as Mana'){
|
||||||
|
iMenuPlayAsMana();
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Trigger effect
|
||||||
|
|
||||||
|
if(iMenuKey == 'Tap'){
|
||||||
|
iMenuTap();
|
||||||
|
}
|
||||||
|
if(iMenuKey == 'Untap'){
|
||||||
|
iMenuUntap();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
function iMenuPlayToBoard(){
|
||||||
|
requestPlayFromHand(gameData.listPosition[gameData.inInteractionMenu[Object.keys(gameData.inInteractionMenu)[0]]])
|
||||||
|
}
|
||||||
|
function iMenuPlayAsMana(){
|
||||||
|
requestPlayManaFromHand(gameData.listPosition[gameData.inInteractionMenu[Object.keys(gameData.inInteractionMenu)[0]]])
|
||||||
|
}
|
||||||
|
function iMenuTriggerEffect(){
|
||||||
|
console.log('iMenuTriggerEffect');
|
||||||
|
}
|
||||||
|
function iMenuTap(){
|
||||||
|
console.log('iMenuTap');
|
||||||
|
// This gets the entity ID (the key of entity that's iMenu has been clicked)
|
||||||
|
console.log(Object.keys(gameData.inInteractionMenu)[0]);
|
||||||
|
// TEMP for testing, should select all 'target' cards, and 'accept' then server will tap
|
||||||
|
// them all and return the new tapped list
|
||||||
|
requestTapCard(gameData.inInteractionMenu[Object.keys(gameData.inInteractionMenu)[0]]);
|
||||||
|
}
|
||||||
|
function iMenuUntap(){
|
||||||
|
// Like above, TEMP for testing TODO: get rid of these and let server do it when things are further on
|
||||||
|
console.log('iMenuTap');
|
||||||
|
// This gets the entity ID (the key of entity that's iMenu has been clicked)
|
||||||
|
console.log(Object.keys(gameData.inInteractionMenu)[0]);
|
||||||
|
requestUntapCard(gameData.inInteractionMenu[Object.keys(gameData.inInteractionMenu)[0]]);
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue