void ToggleBodyPart(CharacterGraphic charGraphic, BodyPart bodyPart, bool value)
        {
            switch (bodyPart)
            {
            case BodyPart.Hair:
                charGraphic.TogglePart(BodyPart.Hair, value);
                break;

            case BodyPart.Head:
                charGraphic.TogglePart(BodyPart.Head, value);
                break;

            case BodyPart.Torso:
                charGraphic.TogglePart(BodyPart.Torso, value);
                break;

            case BodyPart.ArmUpperRight:
                charGraphic.TogglePart(BodyPart.ArmUpperRight, value);
                break;

            case BodyPart.ArmLowerRight:
                charGraphic.TogglePart(BodyPart.ArmLowerRight, value);
                break;

            case BodyPart.RightHand:
                charGraphic.TogglePart(BodyPart.RightHand, value);
                break;

            case BodyPart.ArmUpperLeft:
                charGraphic.TogglePart(BodyPart.ArmUpperLeft, value);
                break;

            case BodyPart.ArmLowerLeft:
                charGraphic.TogglePart(BodyPart.ArmLowerLeft, value);
                break;

            case BodyPart.LeftHand:
                charGraphic.TogglePart(BodyPart.LeftHand, value);
                break;

            case BodyPart.Hips:
                charGraphic.TogglePart(BodyPart.Hips, value);
                break;

            case BodyPart.RightLeg:
                charGraphic.TogglePart(BodyPart.RightLeg, value);
                break;

            case BodyPart.LeftLeg:
                charGraphic.TogglePart(BodyPart.LeftLeg, value);
                break;

            default:
                break;
            }
        }
    void Awake()
    {
        storySheet         = Resources.Load("Data/" + dataLoadName) as Entity_Story1;
        storyID            = storySheet.param[readStartNumber].ID;
        storyCharacterName = storySheet.param[storyID].Name;
        storySheetText     = storySheet.param[storyID].Story;
        storyNumber        = storySheet.param[storyID].StoryNumber;

        c_graphic = GetComponent <CharacterGraphic>();

        c_graphic.storyID         = storyID;
        c_graphic.readStartNumber = readStartNumber;
    }
    CombatCard SelectPriorityCard(List<CombatCard> availableCards, CharacterGraphic character)
    {
        CombatCard priorityCard = availableCards[0];
        int maxStaminaCost = priorityCard.staminaCost;
        if (priorityCard.useUpAllStamina)
            maxStaminaCost = character.GetStamina();

        foreach (CombatCard card in availableCards)
        {
            int realCardStaminaCost = card.staminaCost;
            if (card.useUpAllStamina)
                realCardStaminaCost = character.GetStamina();
            if (realCardStaminaCost > maxStaminaCost)
            {
                priorityCard = card;
                maxStaminaCost = realCardStaminaCost;
            }
            else
            {
                if (realCardStaminaCost == maxStaminaCost)
                {
                    if (Random.value > 0.5f)
                        priorityCard = card;
                }
            }
        }
        //If no stamina-based card was chosen, choose an ammo-based card instead
        if (priorityCard == null)
        {
            int maxAmmoCost = 0;
            foreach (CombatCard card in availableCards)
            {
                if (card.ammoCost > maxAmmoCost)
                {
                    priorityCard = card;
                    maxAmmoCost = card.ammoCost;
                }
                else
                {
                    if (card.ammoCost == maxAmmoCost)
                    {
                        if (Random.value > 0.5f)
                            priorityCard = card;
                    }
                }
            }
        }

        return priorityCard;
    }
Esempio n. 4
0
    public void AssignFloatingText(int value, Transform startPoint, CharacterGraphic.Resource resourceType)
    {
        transform.SetParent(startPoint, false);

        numberText.text=value.ToString();
        if (resourceType == CharacterGraphic.Resource.Health)
            numberText.color = healthColor;
        if (resourceType == CharacterGraphic.Resource.Armor)
            numberText.color = armorColor;
        if (resourceType == CharacterGraphic.Resource.Stamina)
            numberText.color = staminaColor;
        if (resourceType == CharacterGraphic.Resource.Ammo)
            numberText.color = ammoColor;
        StartCoroutine(MoveUpdward());
    }
        public void Equip(GameObject target)
        {
            GameObject equipmentGraphic = null;
            BaseStats  baseStats        = target.GetComponent <BaseStats>();
            bool       isMale           = baseStats.IsMale();
            string     graphicName      = isMale ? maleGraphicGameObjectName : femaleGraphicGameObjectName;

            if (this.itemType == ItemEnum.WEAPON)
            {
                defaultAnimatorOverrideController = target.GetComponent <Animator>().runtimeAnimatorController;

                target.GetComponent <CharacterEquipmentSlot>().EquipOnSlot(bodyPart, this);
                target.GetComponent <WeaponManager>().weaponSlots[0].EquipWeapon(this as ScriptableWeapon);

                // Instantiate weapon graphic here
                // Hardcode for right hand for now
                // instance = Instantiate(this.weaponPrefab, target.GetComponent<WeaponManager>().weaponSlots[0].gameObject.transform);

                target.GetComponent <Animator>().runtimeAnimatorController = this.animatorOverrideController as RuntimeAnimatorController;

                return;
            }


            foreach (Transform t in target.GetComponentsInChildren <Transform>(true))
            {
                if (t.gameObject.name == graphicName)
                {
                    equipmentGraphic = t.gameObject;
                    break;
                }
            }

            if (equipmentGraphic == null)
            {
                return;
            }

            equipmentGraphic.SetActive(true);

            CharacterGraphic charGraphic = target.GetComponent <CharacterGraphic>();

            ToggleBodyPart(charGraphic, bodyPart, false);

            target.GetComponent <CharacterEquipmentSlot>().EquipOnSlot(bodyPart, this);
        }
Esempio n. 6
0
        /// <summary>Gets and converts BasicFontData to a BasicGraphic, then draws it.</summary>
        /// <param name="C"></param>
        /// <param name="Leftpos"></param>
        /// <param name="Toppos"></param>
        /// <param name="FG"></param>
        /// <returns></returns>
        private void DrawChar(Char C, int Leftpos, int Toppos, ConsoleColor FG)
        {
            //Draw a space
            if (C == ' ')
            {
                return;
            }

            //If the character is not in this font, draw a box.
            if (!ContainsChar(C))
            {
                DrawNullChar(Leftpos, Toppos, FG); return;
            }

            //Turn the BasicFontData into BasicGraphic
            BasicGraphic Character = new CharacterGraphic(GetChar(C), FG);

            //Draw it
            Character.Draw(Leftpos, Toppos);
        }
    public bool TrySelectCardToPlay(out CombatCard playedCard, CharacterGraphic character)
    {
        List<CombatCard> playableCards = SortOutPlayableEnemyCards(character);
        if (playableCards.Count > 0)
        {
            playedCard = SelectPriorityCard(playableCards, character);
            if (playedCard == null)
                throw new System.Exception("SelectPriorityCard failed to return a card!");
            if (playedCard == null)
                throw new System.Exception("character is null!");
            //print("Setting AI card user char");
            playedCard.SetUserChar(character);
            EnemyGraphic enemy = character as EnemyGraphic;
            //enemy.RemovePlayedCardFromHand(playedCard);

            return true;
        }
        else
        {
            playedCard = null;
            return false;
        }
    }
        public void Unequip(GameObject target)
        {
            GameObject equipmentGraphic = null;
            BaseStats  baseStats        = target.GetComponent <BaseStats>();
            bool       isMale           = baseStats.IsMale();
            string     graphicName      = isMale ? maleGraphicGameObjectName : femaleGraphicGameObjectName;

            if (this.itemType == ItemEnum.WEAPON)
            {
                target.GetComponent <CharacterEquipmentSlot>().EquipOnSlot(bodyPart, null);
                target.GetComponent <Animator>().runtimeAnimatorController = defaultAnimatorOverrideController as RuntimeAnimatorController;

                target.GetComponent <WeaponManager>().weaponSlots[0].UnequipWeapon();

                Destroy(instance);
                return;
            }


            foreach (Transform t in target.GetComponentsInChildren <Transform>(true))
            {
                if (t.gameObject.name == graphicName)
                {
                    equipmentGraphic = t.gameObject;
                    break;
                }
            }

            equipmentGraphic.SetActive(false);

            CharacterGraphic charGraphic = target.GetComponent <CharacterGraphic>();

            ToggleBodyPart(charGraphic, bodyPart, true);

            target.GetComponent <CharacterEquipmentSlot>().EquipOnSlot(bodyPart, null);
        }
Esempio n. 9
0
 void TriggerEffect(CharacterGraphic rangedCardPlayer, RangedCard playedCard)
 {
     if (rangedCardPlayer == appliedToCharacter)
         foreach (CharacterGraphic enemy in playedCard.targetChars)
             enemy.TryPlaceCharacterStipulationCard(new CrossFire(false));
 }
Esempio n. 10
0
 protected override bool ExtenderPrerequisitesMet(CharacterGraphic user)
 {
     return user.GetStamina()>0;
 }
Esempio n. 11
0
 void TriggerCard(CharacterGraphic cardPlayer, RangedCard playedCard)
 {
     if (cardPlayer == appliedToCharacter)
     {
         playedCard.SetIgnoresBlocks(true);
         //affectedCard = playedCard;
         //affectedCard.SetIgnoresBlocks(true);
         //appliedToCharacter.RemoveCharacterStipulationCard(this);
     }
 }
Esempio n. 12
0
 void PutCardToCharacter(ICombatCard playedCardObject, CharacterGraphic character)
 {
     if (character == null)
         throw new System.Exception("Null character!");
     playedCardObject.GetTransform().SetParent(character.appliedCardsGroup, false);
     playedCardObject.GetTransform().SetAsLastSibling();
 }
Esempio n. 13
0
 public void SelectEnemyCharacter(CharacterGraphic newSelectedCharacter)
 {
     selectedCharacter = newSelectedCharacter;
     EnemyCharacterSelectedInCombat();
     EnemyGraphic enemy = selectedCharacter as EnemyGraphic;
     enemy.StartedTurn();
 }
Esempio n. 14
0
 protected override bool ExtenderPrerequisitesMet(CharacterGraphic user)
 {
     if (user.GetAmmo() == 0)
         return true;
     else
         return false;
 }
Esempio n. 15
0
 protected override bool ExtenderPrerequisitesMet(CharacterGraphic user)
 {
     if (user.GetArmor() > 0 && !CombatCardTargeter.main.HasMeleeTargetEnemy())
         return true;
     else
         return false;
 }
    List<CombatCard> SortOutPlayableEnemyCards(CharacterGraphic character)
    {
        List<CombatCard> playableCards = new List<CombatCard>();
        EnemyGraphic enemy = character as EnemyGraphic;
        List<CombatCard> cardsInHand = enemy.GetCharacterHand();

        if (cardsInHand.Count > 0)
        {
            foreach (CombatCard card in cardsInHand)
            {
                if (combatManager.EligibleCombatCardType(card) && character.CharacterMeetsCardRequirements(card))
                    playableCards.Add(card);
            }
        }
        return playableCards;
    }
Esempio n. 17
0
    public bool SpecialPrerequisitesMet(CharacterGraphic user)
    {
        bool prerequisitesMet = true;

        if (targetType == TargetType.SelectFriendlyOther)
        {
            if (user.GetType() == typeof(EnemyGraphic))
                prerequisitesMet = CardsScreen.main.GetCurrentEnemyCount() > 1;
            if (user.GetType() == typeof(MercGraphic))
                prerequisitesMet = CardsScreen.main.GetCurrentMercCount() > 1;
        }
        if (!ExtenderPrerequisitesMet(user))
            prerequisitesMet = false;

        return prerequisitesMet;
    }
Esempio n. 18
0
 protected override bool ExtenderPrerequisitesMet(CharacterGraphic user)
 {
     return (user.GetStamina() > 0 && user.GetArmor()==0);
 }
Esempio n. 19
0
 public void PlayCard(CharacterGraphic playToCharacter)
 {
     if (addedCombatCards.Count>0)
         playToCharacter.AddCardsToCurrentDeck(addedCombatCards.ToArray());
     if (placedStipulationCard != null)
         playToCharacter.TryPlaceCharacterStipulationCard(placedStipulationCard);
 }
Esempio n. 20
0
 void Detonate(CharacterGraphic cardPlayer, MeleeCard playedCard)
 {
     if (cardPlayer.GetType() != typeof(MercGraphic))
     {
         CombatManager.main.RemoveRoomStipulationCard(this);
         cardPlayer.TakeDamage(damage);
     }
 }
Esempio n. 21
0
 void TriggerEffect(CharacterGraphic meleeCardPlayer, MeleeCard playedCard)
 {
     if (playedCard.targetChars.Contains(appliedToCharacter))
         appliedToCharacter.TakeDamage(damagePerMeleeAttack);
 }
 public void PlayAssignedCard(CharacterGraphic playToCharacter)
 {
     assignedCard.PlayCard(playToCharacter);
 }
 void TriggerEffect(CharacterGraphic rangedCardPlayer, RangedCard playedCard)
 {
     if (rangedCardPlayer.GetType() == appropriateAttackerType
         && playedCard.targetChars[0] == appliedToCharacter)
         appliedToCharacter.TakeDamage(damagePerRangedAttack);
 }
Esempio n. 24
0
 void NullifySelectedCharacter()
 {
     selectedCharacter = null;
     characterManager.ResetSelectionArrow();
 }
 void TryTriggerBlock(CharacterGraphic cardPlayer, RangedCard playedCard)
 {
     if (playedCard.targetChars.Contains(appliedToCharacter) && !playedCard.ignoresBlocks)
     {
         playedCard.targetChars.Remove(appliedToCharacter);
         RemoveStipulationCard();
     }
 }
Esempio n. 26
0
    public void CharacterKilled(CharacterGraphic killedCharGraphic)
    {
        if (selectedCharacter == killedCharGraphic)
            NullifySelectedCharacter();

        characterManager.DoCharacterDeathCleanup(killedCharGraphic);
    }
Esempio n. 27
0
 void ExplosionEffect(CharacterGraphic cardPlayer, RangedCard playedCard)
 {
     CombatManager.main.RemoveRoomStipulationCard(this);
     MissionCharacterManager.main.DamageOpposingTeam(damageToOpposingTeam);
 }
Esempio n. 28
0
 public void SetUserChar(CharacterGraphic userChar)
 {
     userCharGraphic = userChar;
 }
Esempio n. 29
0
 void Detonate(CharacterGraphic cardPlayer, MeleeCard playedCard)
 {
     CombatManager.main.RemoveRoomStipulationCard(this);
     cardPlayer.TakeDamage(damage);
 }
Esempio n. 30
0
    public void SetDefaultState()
    {
        damage=0;
        staminaDamage=0;
        ammoDamage = 0;
        damagePerStaminaPoint = 0;
        unarmoredBonusDamage = 0;
        usedUpStaminaPoints = 0;

        ammoCost=0;
        staminaCost=0;
        maxStaminaCost = 0;
        removeHealthCost = 0;
        takeDamageCost = 0;

        ignoresArmor = false;
        ignoresBlocks = false;
        userCharGraphic = null;
        targetChars.Clear();
        ExtenderConstructor();
    }
Esempio n. 31
0
 void ExplosionEffect(CharacterGraphic cardPlayer, RangedCard playedCard)
 {
     CombatManager.main.RemoveRoomStipulationCard(this);
     MissionCharacterManager.main.DamageAllCharacters(damageToEveryone);
 }
Esempio n. 32
0
 void TriggerEffect(CharacterGraphic rangedCardPlayer, RangedCard playedCard)
 {
     if (rangedCardPlayer.GetType() == typeof(MercGraphic))
         appliedToCharacter.IncrementArmor(armorGainPerRangedAttack);
 }
Esempio n. 33
0
 void Trigger(CharacterGraphic cardPlayer, RangedCard playedCard)
 {
     //CardsScreen.main.RemoveRoomCard(this);
     cardPlayer.TakeDamage(rangedAttackDamagePenalty);
 }
Esempio n. 34
0
    public void ActivateCard(CharacterGraphic applyCardTo)
    {
        if (!lastsIndefinitely)
        {
            CombatManager.ERoundIsOver += RoundOver;
            currentRoundsActive = 0;
        }
        appliedToCharacter = applyCardTo;

        if (addedCombatCards.Count > 0)
            appliedToCharacter.AddCardsToCurrentDeck(addedCombatCards.ToArray());
        ExtenderSpecificActivation();
    }
Esempio n. 35
0
 protected virtual bool ExtenderPrerequisitesMet(CharacterGraphic user)
 {
     return true;
 }