// A seperate list for components, so they're easy to recall // Done as object, so it can be added to different rooms with components = NEW component? const component = { // Entity Stuff item : [], itemCount : 0, roomId : null, turn : 0, playerTurn : 0, player : {}, cardCount : { deck : {}, hand : {}, board : {}, shield : {}, mana : {}, // For some of these, the length of object/array would be better... grave : {}, void : {}, }, // Card Stuff cardData : {}, cardFace : {}, cardStatus : { tapped : {}, attacking : {}, inspected : {}, }, cardAttack : {}, cardColours : {}, // Replace with colour colour : { white : {}, // entityId, amountOfColour blue : {}, red : {}, }, cardManaColour : {}, cardEffect : {}, // TODO: Split this into effect, trigger, step, targets. cardCost : {}, cardSprite : {}, // id, position in spritesheet [0,4] e.g. //cardPlayer = {}, // position 1..x, card, effect, effect part stack : {}, // Deck Stuff? deckIn : {}, deckData : {}, // UI (so users know what's been targetted) selected : {}, selectable : {}, // Effect (break it up?) effect : {}, effectTrigger : {}, // etc, etc. // Board Elements // loop component.shield for shield items boardElement : {}, // Replace with following deck : {}, inDeck : {}, hand : {}, board : {}, shield : {}, mana : {}, grave : {}, void : {}, // listPosition : {}, // position (clientside) // size (clientside) // Passives // component.passive.flight ? passive : { flight : {}, reach : {}, taunt : {}, }, type : { unit : {}, spell : {}, token : {}, }, classes : { orc : {}, human : {}, spirit : {}, }, }; // For front-end // position, size // These should be used as such (Not 100% as yet) // For onBoard()... for player()... for passive.flight()... // Check the board, items belonging to playerX, for flight passive? module.exports = { component }