public bool IsPlayable(string cardId) { VEntity cardEntity = ecsManager.GetVEntityById(cardId); CardZoneDataComponent cardZoneData = ecsManager.GetVSingletonComponent <CardZoneDataComponent>(); PlayerManaComponent mana = ecsManager.GetVSingletonComponent <PlayerManaComponent>(); CurrentLifecycleComponent currLifecycle = ecsManager.GetVSingletonComponent <CurrentLifecycleComponent>(); //HACK return(currLifecycle.currentLifecycle == VLifecycle.PlayerTurnExecute && (cardZoneData.zones[Zone.HAND].Contains(cardId) || (cardEntity.GetVComponent <CardNameComponent>().name == "Cantrip" && !ecsManager.GetSystem <CantripSystem>().cantripUsed)) && cardEntity.GetVComponent <ManaCostComponent>().cost <= mana.currMana); }
protected override void OnPlayerTurnStart(VEntity entity) { PlayerManaComponent playerMana = entity.GetVComponent <PlayerManaComponent>(); int oldMana = playerMana.currMana; playerMana.currMana = playerMana.maxMana; ecsManager.QueueAnimationEvent("ManaAnimation", component: new PlayerManaSetAnimation { oldMana = oldMana, newMana = playerMana.currMana, maxMana = playerMana.maxMana }); }
protected override void OnBeforeEvent(VEntity eventEntity) { CardPlayEvent cardPlayEvent = eventEntity.GetVComponent <CardPlayEvent>(); VEntity card = ecsManager.GetVEntityById(cardPlayEvent.cardId); PlayerManaComponent playerMana = ecsManager.GetVSingletonComponent <PlayerManaComponent>(); int prevMana = playerMana.currMana; playerMana.currMana -= card.GetVComponent <ManaCostComponent>().cost; ecsManager.QueueAnimationEvent("cardPlayedManaDrain", component: new PlayerManaSetAnimation { maxMana = playerMana.maxMana, newMana = playerMana.currMana, oldMana = prevMana, }); }