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