private void CalculateItemCard(TempPlayer player)
        {
            ItemCard card = Constants.itemCards[player.selectedCardID];



            if (player.initiative && card.initiativeEffect != Constants.NoEffectID)
            {
                if (Constants.effects[card.initiativeEffect].selfEffect == 0)
                {
                    TempPlayer enemy = player == p1 ? p2 : p1;
                    enemy.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
                else
                {
                    player.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
            }


            //Use Pred Effects
            player.UseEffects(true);

            //No Actions here

            //Use Post Effects
            player.UseEffects(false);
        }
        private void CalculateAttackCard(TempPlayer player)
        {
            AttackCard card = Constants.attackCards[player.selectedCardID];

            //Add initiative if player was first
            if (player.initiative && card.initiativeEffect != Constants.NoEffectID)
            {
                if (Constants.effects[card.initiativeEffect].selfEffect == 0)
                {
                    TempPlayer enemy = player == p1 ? p2 : p1;
                    enemy.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
                else
                {
                    player.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
            }



            //Save temp results for match
            player.results.dmgPerBullet = card.damage;
            player.results.bulletsSpent = card.bullets;
            player.results.accuracy    += card.accuracy; //+ because default value for accuracy is 100

            //DETECT Other player for shooting
            TempPlayer other = player == p1 ? p2 : p1;

            switch (player.bodyPart)
            {
            case "Head":
                player.AddEffect(Constants.ShootInHeadEffectID, 0, 0);
                break;

            case "Arm":
                player.AddEffect(Constants.ShootInArmEffectID, 0, 0);
                break;

            case "Leg":
                player.AddEffect(Constants.ShootInLegEffectID, 0, 0);
                break;

            case "Body":
                player.AddEffect(Constants.ShootInBodyEffectID, 0, 0);
                break;
            }


            //Use PrefEffects
            player.UseEffects(true);



            player.MakeShots(other);

            //Use Post Effects
            player.UseEffects(false);
        }
        private void CalculateHealCard(TempPlayer player)
        {
            HealCard card = Constants.healCards[player.selectedCardID];

            if (player.initiative && card.initiativeEffect != Constants.NoEffectID)
            {
                if (Constants.effects[card.initiativeEffect].selfEffect == 0)
                {
                    TempPlayer enemy = player == p1 ? p2 : p1;
                    enemy.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
                else
                {
                    player.AddEffect(card.initiativeEffect, card.initiativeValue, card.initiativeDuration);
                }
            }

            player.results.healing += card.heal;


            switch (player.bodyPart)
            {
            case "Head":
                player.AddEffect(Constants.HealInHeadEffectID, 0, 0);
                break;

            case "Arm":
                player.AddEffect(Constants.HealInArmID, 0, 0);
                break;

            case "Leg":
                player.AddEffect(Constants.HealInLegID, 0, 0);
                break;

            case "Body":
                player.AddEffect(Constants.HealInBodyID, 0, 0);
                break;
            }

            player.UseEffects(true);



            player.UseEffects(false);
        }
 //Temporary just make reload when choose reload card;
 private void CalculateSpecialCard(TempPlayer player)
 {
     player.UseEffects(true);
     player.n_bullets = player.max_bullets;
     player.UseEffects(false);
 }
 private void CalculateNoCard(TempPlayer player)
 {
     player.UseEffects(false);
     player.UseEffects(true);
 }